xref: /aosp_15_r20/external/cronet/net/data/ssl/symantec/README.md (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Symantec Certificates
2*6777b538SAndroid Build Coastguard Worker
3*6777b538SAndroid Build Coastguard WorkerThis directory contains the set of known active and legacy root certificates
4*6777b538SAndroid Build Coastguard Workerthat were operated by Symantec Corporation. In order for certificates issued
5*6777b538SAndroid Build Coastguard Workerfrom these roots to be trusted, it is required that they comply with the
6*6777b538SAndroid Build Coastguard Workerpolicies outlined at <https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html>.
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard WorkerThe exceptions to this are:
9*6777b538SAndroid Build Coastguard Worker  * Pre-existing independently operated sub-CAs, whose keys were and are not
10*6777b538SAndroid Build Coastguard Worker    controled by Symantec and which maintain current and appropriate audits.
11*6777b538SAndroid Build Coastguard Worker  * The set of Managed CAs in accordance with the above policies.
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard WorkerIn addition to the above, no changes exist from the Certificate Transparency
14*6777b538SAndroid Build Coastguard Workerrequirement outlined at <https://security.googleblog.com/2015/10/sustaining-digital-certificate-security.html>
15*6777b538SAndroid Build Coastguard Worker
16*6777b538SAndroid Build Coastguard Worker## Implementation Details
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard WorkerPolicies related to these certificates are based on the hash of the
19*6777b538SAndroid Build Coastguard WorkersubjectPublicKeyInfo, rather than of the certificate, and without considering
20*6777b538SAndroid Build Coastguard Workerthe Subject Distinguished Name.
21*6777b538SAndroid Build Coastguard Worker
22*6777b538SAndroid Build Coastguard WorkerThe choice of using subjectPublicKeyInfo is two-fold:
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard Worker* If there are any concerns with the how the key material has been protected,
25*6777b538SAndroid Build Coastguard Worker  those concerns apply to all subject names, not just the known subject names.
26*6777b538SAndroid Build Coastguard Worker  By limiting trust in the SPKI, the underlying issue is addressed. This also
27*6777b538SAndroid Build Coastguard Worker  helps address any concerns with potential cross-signs in the future, as has
28*6777b538SAndroid Build Coastguard Worker  been seen in past CA remediation efforts.
29*6777b538SAndroid Build Coastguard Worker* Simultaneously, if there are no concerns with the SPKI, such as due to being
30*6777b538SAndroid Build Coastguard Worker  on the exclusions list, then we want to ensure ecosystem flexibility in the
31*6777b538SAndroid Build Coastguard Worker  event that the certificates themselves need to be reissued. The most likely
32*6777b538SAndroid Build Coastguard Worker  cause for reissusance of Excluded Sub-CAs may be presumed to be either
33*6777b538SAndroid Build Coastguard Worker  expiration or due to wanting to add additional extensions (such as to reduce
34*6777b538SAndroid Build Coastguard Worker  the scope of issuance). To avoid unduly limiting the ecosystem flexibility
35*6777b538SAndroid Build Coastguard Worker  in the event of those changes, excluding by SPKI allows for some limited
36*6777b538SAndroid Build Coastguard Worker  agility, while being grounded in the objective evaluation of the key and how
37*6777b538SAndroid Build Coastguard Worker  the key material has been operated and protected. In the context of Managed
38*6777b538SAndroid Build Coastguard Worker  CAs, this ensures that additional (effectively cross-signed) versions of the
39*6777b538SAndroid Build Coastguard Worker  Managed Partner Infrastructure can be introduced as needed, while ensuring no
40*6777b538SAndroid Build Coastguard Worker  additional code changes or updates are necessary.
41*6777b538SAndroid Build Coastguard Worker
42*6777b538SAndroid Build Coastguard WorkerThus, identifying 'roots' (which may appear anywhere in the chain) by SPKI help
43*6777b538SAndroid Build Coastguard Workerensure the appropriate restrictions are applied, regardless of cross-signs or
44*6777b538SAndroid Build Coastguard Workerself-signed variations, while identifying 'exclusions' by SPKI helps ensure the
45*6777b538SAndroid Build Coastguard Workernecessary flexibility to respond to ecosystem changes.
46*6777b538SAndroid Build Coastguard Worker
47*6777b538SAndroid Build Coastguard Worker## Roots
48*6777b538SAndroid Build Coastguard Worker
49*6777b538SAndroid Build Coastguard WorkerThe full set of roots are in the [roots/](roots/) directory, organized by
50*6777b538SAndroid Build Coastguard WorkerSHA-256 hash of the certificate file.
51*6777b538SAndroid Build Coastguard Worker
52*6777b538SAndroid Build Coastguard WorkerThe following command can be used to match certificates and their key hashes:
53*6777b538SAndroid Build Coastguard Worker
54*6777b538SAndroid Build Coastguard Worker`` for f in roots/*.pem; do openssl x509 -noout -pubkey -in "${f}" | openssl asn1parse -inform pem -out /tmp/pubkey.out -noout; digest=`cat /tmp/pubkey.out | openssl dgst -sha256 -c | awk -F " " '{print $2}' | sed s/:/,0x/g `; echo "0x${digest} ${f##*/}"; done | sort ``
55*6777b538SAndroid Build Coastguard Worker
56*6777b538SAndroid Build Coastguard Worker## Excluded Sub-CAs
57*6777b538SAndroid Build Coastguard Worker
58*6777b538SAndroid Build Coastguard Worker### Apple
59*6777b538SAndroid Build Coastguard Worker
60*6777b538SAndroid Build Coastguard Worker[WebTrust Audit](https://cert.webtrust.org/ViewSeal?id=1917)
61*6777b538SAndroid Build Coastguard Worker[Certification Practices Statement](http://images.apple.com/certificateauthority/pdf/Apple_IST_CPS_v2.0.pdf)
62*6777b538SAndroid Build Coastguard Worker
63*6777b538SAndroid Build Coastguard Worker  * [17f96609ac6ad0a2d6ab0a21b2d1b5b2946bd04dbf120703d1def6fb62f4b661.pem](excluded/17f96609ac6ad0a2d6ab0a21b2d1b5b2946bd04dbf120703d1def6fb62f4b661.pem)
64*6777b538SAndroid Build Coastguard Worker  * [3db76d1dd7d3a759dccc3f8fa7f68675c080cb095e4881063a6b850fdd68b8bc.pem](excluded/3db76d1dd7d3a759dccc3f8fa7f68675c080cb095e4881063a6b850fdd68b8bc.pem)
65*6777b538SAndroid Build Coastguard Worker  * [6115f06a338a649e61585210e76f2ece3989bca65a62b066040cd7c5f408edd0.pem](excluded/6115f06a338a649e61585210e76f2ece3989bca65a62b066040cd7c5f408edd0.pem)
66*6777b538SAndroid Build Coastguard Worker  * [904fb5a437754b1b32b80ebae7416db63d05f56a9939720b7c8e3dcc54f6a3d1.pem](excluded/904fb5a437754b1b32b80ebae7416db63d05f56a9939720b7c8e3dcc54f6a3d1.pem)
67*6777b538SAndroid Build Coastguard Worker  * [ac2b922ecfd5e01711772fea8ed372de9d1e2245fce3f57a9cdbec77296a424b.pem](excluded/ac2b922ecfd5e01711772fea8ed372de9d1e2245fce3f57a9cdbec77296a424b.pem)
68*6777b538SAndroid Build Coastguard Worker  * [a4fe7c7f15155f3f0aef7aaa83cf6e06deb97ca3f909df920ac1490882d488ed.pem](excluded/a4fe7c7f15155f3f0aef7aaa83cf6e06deb97ca3f909df920ac1490882d488ed.pem)
69*6777b538SAndroid Build Coastguard Worker
70*6777b538SAndroid Build Coastguard Worker### DigiCert
71*6777b538SAndroid Build Coastguard Worker
72*6777b538SAndroid Build Coastguard Worker[WebTrust Audit](https://cert.webtrust.org/ViewSeal?id=2228)
73*6777b538SAndroid Build Coastguard Worker[Certification Practices Statement](https://www.digicert.com/CPS)
74*6777b538SAndroid Build Coastguard Worker
75*6777b538SAndroid Build Coastguard Worker  * [8bb593a93be1d0e8a822bb887c547890c3e706aad2dab76254f97fb36b82fc26.pem](excluded/8bb593a93be1d0e8a822bb887c547890c3e706aad2dab76254f97fb36b82fc26.pem)
76*6777b538SAndroid Build Coastguard Worker  * [b94c198300cec5c057ad0727b70bbe91816992256439a7b32f4598119dda9c97.pem](excluded/b94c198300cec5c057ad0727b70bbe91816992256439a7b32f4598119dda9c97.pem)
77*6777b538SAndroid Build Coastguard Worker
78*6777b538SAndroid Build Coastguard Worker### Google
79*6777b538SAndroid Build Coastguard Worker
80*6777b538SAndroid Build Coastguard Worker[WebTrust Audit](https://cert.webtrust.org/ViewSeal?id=1941)
81*6777b538SAndroid Build Coastguard Worker[Certification Practices Statement](http://static.googleusercontent.com/media/pki.google.com/en//GIAG2-CPS-1.3.pdf)
82*6777b538SAndroid Build Coastguard Worker
83*6777b538SAndroid Build Coastguard Worker  * [c3f697a92a293d86f9a3ee7ccb970e20e0050b8728cc83ed1b996ce9005d4c36.pem](excluded/c3f697a92a293d86f9a3ee7ccb970e20e0050b8728cc83ed1b996ce9005d4c36.pem)
84*6777b538SAndroid Build Coastguard Worker
85*6777b538SAndroid Build Coastguard Worker## Excluded Managed CAs
86*6777b538SAndroid Build Coastguard Worker
87*6777b538SAndroid Build Coastguard Worker### DigiCert
88*6777b538SAndroid Build Coastguard Worker
89*6777b538SAndroid Build Coastguard Worker  * [7cac9a0ff315387750ba8bafdb1c2bc29b3f0bba16362ca93a90f84da2df5f3e.pem](managed/7cac9a0ff315387750ba8bafdb1c2bc29b3f0bba16362ca93a90f84da2df5f3e.pem)
90*6777b538SAndroid Build Coastguard Worker  * [ac50b5fb738aed6cb781cc35fbfff7786f77109ada7c08867c04a573fd5cf9ee.pem](managed/ac50b5fb738aed6cb781cc35fbfff7786f77109ada7c08867c04a573fd5cf9ee.pem)
91