Commit Graph

188 Commits

Author SHA1 Message Date
Tucker Sylvestro
8f75adc624 Add the onDeviceOffBody API method to KeyStore
am: b32aae2a46

Change-Id: Idbf7f1d505b1d446a3d648dcf1b0f334a629110a
2016-10-06 16:13:48 +00:00
Tucker Sylvestro
b32aae2a46 Add the onDeviceOffBody API method to KeyStore
This is necessary for allowing the KeyStore to lock keys that remain
authorized as long as the device is on-body.

Bug 28911985

Change-Id: If50bc84d5a1cb23f9b01b1950c3676d1519cc4f5
2016-09-23 15:11:42 -04:00
Chad Brubaker
94c395549a Avoid NPE on certificates that cannot be read am: 01e9682cab
am: 92a534325d

Change-Id: Ie650d94e36498c78ca7c2e49d75510966c351b16
2016-09-06 21:44:54 +00:00
Chad Brubaker
01e9682cab Avoid NPE on certificates that cannot be read
Skip certificates in a DirectoryCertificateSource that cannot be read to
due IOExceptions or CertificateExceptions, this prevents a NPE but
connections will still fail due to the certificate being unusable and no
valid trust-anchor existing.

This also logs the error since this really shouldn't happen.
Bug: 29997695

Change-Id: I9f7327efc302a259fb951f1f61f7fc4d647821fa
2016-09-02 13:15:39 -07:00
Chad Brubaker
6e1f860c6a Merge "Add stub isCTVerificationRequired methods"
am: 5b63231a31

Change-Id: Ica40dc0da1821aa47825e615f0f3b629e0358568
2016-08-09 19:43:50 +00:00
Chad Brubaker
bd62098a54 Add stub isCTVerificationRequired methods
Bug: 28746284
Change-Id: Iebeecba7356ac57fedb06d71de63aa9900f2ccd8
2016-08-02 07:57:16 -07:00
Chad Brubaker
9f779ab4af Add getApplicationConfigForPackage
getApplicationConfigForPackage will be used by system components that
need to make connections for apps, e.g. DownloadManager, so that their
secure connections have the same configuration as those from the app
itself.

Bug: 29505888
Change-Id: Idf1cac6307431911eda34529d3fd50f9ca0da314
2016-06-20 12:40:20 -07:00
TreeHugger Robot
c738e48ed6 Merge "Use NoPreloadHolder for certificate sources" into nyc-dev 2016-06-14 00:35:49 +00:00
Chad Brubaker
319f9fe102 Use NoPreloadHolder for certificate sources
The static instances of SystemCertificateSource and
UserCertificateSource depend on the current user, avoid triggering their
static initializer when preloaded.

Bug: 29258379
Change-Id: I5088366ae67145b8bc928d6c04118529c82a7fc3
2016-06-13 15:51:40 -07:00
Chad Brubaker
c3a6c78fed Don't depend directly on AppplicationInfo
ApplicationInfo is mutable and unfortunately some apps do actually
modify the flags. Due to the lazy loading nature of the network security
config this may lead to issues. Instead cache the needed flags and
resources at application startup.

Bug: 29063413

(cherry picked from commit 276ee969be)

Change-Id: If638a716fd903b4e9dbabcbecb38bd4e26fef08c
2016-06-08 21:48:45 -07:00
Chad Brubaker
c845b2a21c Use an attribute for the network security config resource
Originally we went with the meta-data approach to make unbundling
easier, however with the amount of platform changes that the config
ended up relying on it would be better to focus on exposing it through
the platform.

Bug:28763009
Change-Id: Iaf80001b1980220cd2e1e05faf2dc86af41700e1
2016-05-19 17:25:41 -07:00
Chad Brubaker
d4b6c696e1 Support TrustedCertificateStore.findAllIssuers
(cherry-picked from commit aa6c3c3e25)
Change-Id: I176ec42c9907e50ee218e4fb352b530ca797be46
2016-05-12 11:15:47 -07:00
Chad Brubaker
00a4e29969 Fix isUserAddedCertificate
Check if the CA is in the user store directly instead of delegating to
the TrustManager. This removes one more reflection dependency between
X509TrustManagerExtensions and the default X509TrustManager.

Bug: 28138736
Change-Id: I16c17bf6230becdc0a1948b1d184212f83ee25f0
2016-04-13 10:20:08 -07:00
Chad Brubaker
5116ac0d22 Add implemention for isSameTrustConfiguration
Bug: 27672565
Change-Id: Id5291a4a5f2ca75fdf84db4d51363735f1a76845
2016-04-12 13:04:43 -07:00
Chad Brubaker
0f5d386a76 Use X509ExtendedTrustManagers
Move the X509TrustManagers for the Network Security Config from
X509TrustManagers to X509ExtendedTrustManagers.

Bug: 27271561
Change-Id: I084a6c6022fe69730192d2bdcbabaf58e8f92f04
2016-03-28 10:48:41 -07:00
Chad Brubaker
bf9a82a643 Add handleTrustStorageUpdate
This pruns all the stored trusted issuers so that changes to the system
or user CA store are detected. Currently this is only exposed as a
TestApi, but it can be hooked up to the trusted storage change event
in a future commit.

Bug: 27526668
Change-Id: Ic426254babab9a3177c968bc05b45e95eaac1fdd
2016-03-25 14:48:44 -07:00
Chad Brubaker
7cc736da82 Properly handle whitespace in domain entries
Domain entries can contain whitespace (or newlines) which should be
ignored to avoid unexpectedly failing to match a domain.

Bug: 27816377
Change-Id: I3691aa4abd409e7be97ad0cf1eb0195725e1b0ab
2016-03-23 15:28:41 -07:00
Chad Brubaker
567f6f2474 Allow debug-overrides to be specified in an extra resource
An application can specify its debug-overrides in an extra resource with
the same name suffixed with "_debug" (e.g. res/xml/security_config.xml and
res/xml/security_config_debug.xml).

By specifying the debug-overrides in an extra file release builds can
strip out the file (and any certificate resources that the
debug-overrides depend on) to prevent including testing configuration
information in the release build of an application.

Bug: 27418003
Change-Id: Ibfebc376360ca474fc0f9f2fd565faa0cffd9549
2016-03-01 12:42:54 -08:00
Chad Brubaker
c1b0236d70 Merge "Dont trust the user added CA store by default for apps targeting N" into nyc-dev 2016-02-25 00:02:37 +00:00
Chad Brubaker
32d2a1024f Dont trust the user added CA store by default for apps targeting N
Android's security model is such that the applications data is secure by
default unless the application specifically grants access to it.
Application data in transit should have similar security properties.

Bug: 27301579
Change-Id: I72f106aefecccd6edfcc1d3ae10131ad2f69a559
2016-02-24 10:36:27 -08:00
Chad Brubaker
62df07eee1 Merge "Use provided context directly" into nyc-dev 2016-02-22 19:11:51 +00:00
Chad Brubaker
7879b8f4ab Use provided context directly
getApplicationContext may return null so use the provided context
instead.

Bug:27293859
Change-Id: Ic3b218bf5b0c23982c75a793f0374870bd8e9da1
2016-02-22 11:08:59 -08:00
Shawn Willden
0f900c02d9 Merge "Add support for extending key validity while on body." into nyc-dev 2016-02-18 12:51:50 +00:00
Shawn Willden
adef49640d Add support for extending key validity while on body.
Bug: 21563854
Change-Id: I3b622d2af77ec4ac3ba42407fc391112c153ef0f
2016-02-18 05:50:21 -07:00
Chad Brubaker
da449afbfe Merge "Fix getAcceptedIssuers" into nyc-dev 2016-02-17 22:20:36 +00:00
Chad Brubaker
efb4f91bdb Fix getAcceptedIssuers
Delegating to the TrustManagerImpl doesn't work correctly with
getAcceptedIssuers, do it in NetworkSecurityTrustManager instead.

Bug: 27124116
Change-Id: Ie527d63aaa115e6137396e07c7d134b1c42bfe87
2016-02-17 10:31:14 -08:00
Shawn Willden
8d8c747774 Add attestation API to Android KeyStore.
Bug: 22914603
Change-Id: I7c6162dc7a390aa48a2542494780959b01c23bd4
2016-02-08 19:29:54 +00:00
Chad Brubaker
05dd853526 Merge "Support TrustedCertificateStore.findAllIssuers" 2016-01-26 23:49:00 +00:00
Chad Brubaker
d321954f72 Merge "Add getApplicationConfigForPackage" am: 7519dce8c2
am: 8500093a35

* commit '8500093a351c40fdd2077fcd724396f72b51d3ba':
  Add getApplicationConfigForPackage
2016-01-25 18:18:39 +00:00
Chad Brubaker
056e8b5a5a Add getApplicationConfigForPackage
This allows services which make network connections on behalf of
applications to honor the application's network security policy.

Change-Id: I562b7bd0eb20f2f8c9f8342c211166d4e3397780
2016-01-22 22:04:20 -08:00
Chad Brubaker
aa6c3c3e25 Support TrustedCertificateStore.findAllIssuers
Change-Id: I176ec42c9907e50ee218e4fb352b530ca797be46
2016-01-13 15:19:45 -08:00
Chad Brubaker
25e34339ba Unhide hostname aware isCleartextTrafficPermitted
Change-Id: Id2bde5889d963ca2820fdecce1628dce022b510b
2016-01-05 11:36:43 -08:00
Chad Brubaker
d8844613a3 Merge "Add ConfigNetworkSecurityPolicy" am: 2786002bd5
am: a35d617cce

* commit 'a35d617cce6c9b1b1cba7e7c786849d21ea42d3e':
  Add ConfigNetworkSecurityPolicy
2016-01-04 20:54:00 +00:00
Chad Brubaker
2786002bd5 Merge "Add ConfigNetworkSecurityPolicy" 2016-01-04 20:26:56 +00:00
Chad Brubaker
2eae60271a Don't use IntegralToString
Fix master build

(cherry picked from commit 7845e44c0c)

Change-Id: Ic99a5e868b5d42e7bf72ef5388e30f070b6655d8
2015-12-22 13:41:08 +00:00
Chad Brubaker
3d27be827b Merge "Add hostname aware isCleartextTrafficPermitted" am: a2f2c5c340
am: c642e052f0

* commit 'c642e052f095d42882f46c2667d609136e269069':
  Add hostname aware isCleartextTrafficPermitted
2015-12-21 19:05:01 +00:00
Chad Brubaker
a2f2c5c340 Merge "Add hostname aware isCleartextTrafficPermitted" 2015-12-21 18:52:48 +00:00
Chad Brubaker
c136cb0abd Add ConfigNetworkSecurityPolicy
ConfigNetworkSecurityPolicy is a NetworkSecurityPolicy based on an
ApplicationConfig.

Change-Id: I623854090f9eaa1c2bd3561dce6ce8268850c819
2015-12-14 15:20:19 -08:00
Chad Brubaker
827c3498eb Merge "Use the application\'s usesCleartextTraffic flag" am: d16f5f121e
am: a1c0bea895

* commit 'a1c0bea89518d020b615740215bff7fc4356e991':
  Use the application's usesCleartextTraffic flag
2015-12-14 12:05:20 -08:00
Chad Brubaker
4b4a252931 Merge "Check for null hostnames in RootTrustManager" am: 49ce7dc2ba
am: 15ea45c848

* commit '15ea45c848fbf9e70bbfe6afbfb25d39ce406c80':
  Check for null hostnames in RootTrustManager
2015-12-14 12:03:22 -08:00
Chad Brubaker
d16f5f121e Merge "Use the application's usesCleartextTraffic flag" 2015-12-14 19:31:08 +00:00
Chad Brubaker
49ce7dc2ba Merge "Check for null hostnames in RootTrustManager" 2015-12-14 19:30:44 +00:00
Chad Brubaker
8d28e4f07f Use the application's usesCleartextTraffic flag
When no config is specified use the application's usesCleartextTraffic
flag when building the default config.

Change-Id: I07378f88da47b49f63e9089fca7f1e99efede272
2015-12-11 12:35:11 -08:00
Chad Brubaker
2907274f1d Merge "Add null check to getConfigForHostname" am: fe1eac7a19
am: 14cf68c284

* commit '14cf68c284fa611528c8f466c1fb41d5264cb0c2':
  Add null check to getConfigForHostname
  Work on issue #25467052: System lagged out
2015-12-11 10:26:09 -08:00
Chad Brubaker
fe1eac7a19 Merge "Add null check to getConfigForHostname" 2015-12-11 18:02:34 +00:00
Chad Brubaker
dd586a46c9 Check for null hostnames in RootTrustManager
Even if the hostname aware method is called if the hostname is null then
the destination is unknown and the configuration can be ambiguous.

Change-Id: I7cacbd57a42604933fdc882371f143dc0a20902d
2015-12-10 18:32:40 -08:00
Chad Brubaker
9613157d5e Add null check to getConfigForHostname
bug: 26144676
Change-Id: I18f50940846f1ce8109560c63ce2a87ce084d9e5
2015-12-10 18:12:59 -08:00
Chad Brubaker
2091ab9456 Add hostname aware isCleartextTrafficPermitted
Change-Id: I22b9ea277407846f9c333ce0cc37c25a2be1381e
2015-12-10 10:30:33 -08:00
Chad Brubaker
1edf850235 Merge "Use a custom TrustedCertificateStore" am: 95f15495a2
am: 5a12cf5cb7

* commit '5a12cf5cb703dd531ca8207e8db87b019eb6d477':
  Use a custom TrustedCertificateStore
2015-12-09 23:15:42 +00:00
Chad Brubaker
8d92314e5f Merge "Expose findByIssuerAndSignature" am: b27d820920
am: f1870eee34

* commit 'f1870eee348179ccfc796956fd366d77f77ab850':
  Expose findByIssuerAndSignature
2015-12-09 23:13:41 +00:00