diff options
author | Matthew Miller <matthew@millerti.me> | 2021-08-02 13:38:02 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2021-08-02 13:38:58 -0700 |
commit | 2fb1d596a80dc887eba8dc316e228be253af74d8 (patch) | |
tree | 7b95291b8598e8e7afaa934c9febea6183fa9edf | |
parent | c0192bfcd6f668b0d5a96617b63b689a6aa97c9f (diff) |
Register current root certs with service
-rw-r--r-- | packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts | 22 | ||||
-rw-r--r-- | packages/server/src/attestation/verifications/verifyApple.ts | 22 | ||||
-rw-r--r-- | packages/server/src/services/defaultRootCerts/Apple_WebAuthn_Root_CA.pem | 14 | ||||
-rw-r--r-- | packages/server/src/services/defaultRootCerts/GSR2.crt | bin | 0 -> 958 bytes | |||
-rw-r--r-- | packages/server/src/services/settingsService.ts | 28 |
5 files changed, 42 insertions, 44 deletions
diff --git a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts index 8d8cc4a..3c4522c 100644 --- a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts +++ b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts @@ -130,28 +130,6 @@ export default async function verifyAttestationAndroidSafetyNet( return verified; } -/** - * This "GS Root R2" root certificate was downloaded from https://pki.goog/gsr2/GSR2.crt - * on 08/10/2019 and then run through `base64url.encode()` to get this representation. - * - * The certificate is valid until Dec 15, 2021 - */ -const GlobalSignRootCAR2 = - 'MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UEC' + - 'xMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhc' + - 'NMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEGA' + - '1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKb' + - 'PJA6-Lm8omUVCxKs-IVSbC9N_hHD6ErPLv4dfxn-G07IwXNb9rfF73OX4YJYJkhD10FPe-3t-c4isUoh7SqbKSaZeqKeMW' + - 'hG8eoLrvozps6yWJQeXSpkqBy-0Hne_ig-1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjNS7SgfQx' + - '5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ_gk' + - 'wpRl4pazq-r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQY' + - 'wDwYDVR0TAQH_BAUwAwEB_zAdBgNVHQ4EFgQUm-IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0c' + - 'DovL2NybC5nbG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjANBgk' + - 'qhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0_WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk' + - '7mpM0sYmsL4h4hO291xNBrBVNpGP-DTKqttVCL1OmLNIG-6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavSot-3i9DAgBkcRcA' + - 'tjOj4LaR0VknFBbVPFd5uRHg5h6h-u_N5GJG79G-dwfCMNYxdAfvDbbnvRG15RjF-Cv6pgsH_76tuIMRQyV-dTZsXjAzlA' + - 'cmgQWpzU_qlULRuJQ_7TBj0_VLZjmmx6BEP3ojY-x1J96relc8geMJgEtslQIxq_H5COEBkEveegeGTLg'; - type SafetyNetJWTHeader = { alg: string; x5c: string[]; diff --git a/packages/server/src/attestation/verifications/verifyApple.ts b/packages/server/src/attestation/verifications/verifyApple.ts index 952a753..937c3f8 100644 --- a/packages/server/src/attestation/verifications/verifyApple.ts +++ b/packages/server/src/attestation/verifications/verifyApple.ts @@ -77,25 +77,3 @@ export default async function verifyApple(options: Options): Promise<boolean> { return true; } - -/** - * Apple WebAuthn Root CA PEM - * - * Downloaded from https://www.apple.com/certificateauthority/Apple_WebAuthn_Root_CA.pem - * - * Valid until 03/14/2045 @ 5:00 PM PST - */ -const AppleWebAuthnRootCertificate = `-----BEGIN CERTIFICATE----- -MIICEjCCAZmgAwIBAgIQaB0BbHo84wIlpQGUKEdXcTAKBggqhkjOPQQDAzBLMR8w -HQYDVQQDDBZBcHBsZSBXZWJBdXRobiBSb290IENBMRMwEQYDVQQKDApBcHBsZSBJ -bmMuMRMwEQYDVQQIDApDYWxpZm9ybmlhMB4XDTIwMDMxODE4MjEzMloXDTQ1MDMx -NTAwMDAwMFowSzEfMB0GA1UEAwwWQXBwbGUgV2ViQXV0aG4gUm9vdCBDQTETMBEG -A1UECgwKQXBwbGUgSW5jLjETMBEGA1UECAwKQ2FsaWZvcm5pYTB2MBAGByqGSM49 -AgEGBSuBBAAiA2IABCJCQ2pTVhzjl4Wo6IhHtMSAzO2cv+H9DQKev3//fG59G11k -xu9eI0/7o6V5uShBpe1u6l6mS19S1FEh6yGljnZAJ+2GNP1mi/YK2kSXIuTHjxA/ -pcoRf7XkOtO4o1qlcaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUJtdk -2cV4wlpn0afeaxLQG2PxxtcwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA -MGQCMFrZ+9DsJ1PW9hfNdBywZDsWDbWFp28it1d/5w2RPkRX3Bbn/UbDTNLx7Jr3 -jAGGiQIwHFj+dJZYUJR786osByBelJYsVZd2GbHQu209b5RCmGQ21gpSAk9QZW4B -1bWeT0vT ------END CERTIFICATE-----`; diff --git a/packages/server/src/services/defaultRootCerts/Apple_WebAuthn_Root_CA.pem b/packages/server/src/services/defaultRootCerts/Apple_WebAuthn_Root_CA.pem new file mode 100644 index 0000000..59c0421 --- /dev/null +++ b/packages/server/src/services/defaultRootCerts/Apple_WebAuthn_Root_CA.pem @@ -0,0 +1,14 @@ +-----BEGIN CERTIFICATE----- +MIICEjCCAZmgAwIBAgIQaB0BbHo84wIlpQGUKEdXcTAKBggqhkjOPQQDAzBLMR8w +HQYDVQQDDBZBcHBsZSBXZWJBdXRobiBSb290IENBMRMwEQYDVQQKDApBcHBsZSBJ +bmMuMRMwEQYDVQQIDApDYWxpZm9ybmlhMB4XDTIwMDMxODE4MjEzMloXDTQ1MDMx +NTAwMDAwMFowSzEfMB0GA1UEAwwWQXBwbGUgV2ViQXV0aG4gUm9vdCBDQTETMBEG +A1UECgwKQXBwbGUgSW5jLjETMBEGA1UECAwKQ2FsaWZvcm5pYTB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABCJCQ2pTVhzjl4Wo6IhHtMSAzO2cv+H9DQKev3//fG59G11k +xu9eI0/7o6V5uShBpe1u6l6mS19S1FEh6yGljnZAJ+2GNP1mi/YK2kSXIuTHjxA/ +pcoRf7XkOtO4o1qlcaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUJtdk +2cV4wlpn0afeaxLQG2PxxtcwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA +MGQCMFrZ+9DsJ1PW9hfNdBywZDsWDbWFp28it1d/5w2RPkRX3Bbn/UbDTNLx7Jr3 +jAGGiQIwHFj+dJZYUJR786osByBelJYsVZd2GbHQu209b5RCmGQ21gpSAk9QZW4B +1bWeT0vT +-----END CERTIFICATE----- diff --git a/packages/server/src/services/defaultRootCerts/GSR2.crt b/packages/server/src/services/defaultRootCerts/GSR2.crt Binary files differnew file mode 100644 index 0000000..4d93718 --- /dev/null +++ b/packages/server/src/services/defaultRootCerts/GSR2.crt diff --git a/packages/server/src/services/settingsService.ts b/packages/server/src/services/settingsService.ts index d697103..fb3ddcb 100644 --- a/packages/server/src/services/settingsService.ts +++ b/packages/server/src/services/settingsService.ts @@ -43,4 +43,32 @@ class SettingsService { const settingsService = new SettingsService(); +// Initialize default certificates +/** + * Google GlobalSign R2 + * + * Downloaded from https://pki.goog/gsr2/GSR2.crt + * + * Valid until 2021-12-15 @ 00:00 PST + */ +settingsService.setRootCertificate({ + attestationFormat: 'android-safetynet', + certificate: fs.readFileSync(path.resolve(__dirname, './defaultRootCerts/GSR2.crt')), +}); + +/** + * Apple WebAuthn Root CA PEM + * + * Downloaded from https://www.apple.com/certificateauthority/Apple_WebAuthn_Root_CA.pem + * + * Valid until 2045-03-14 @ 17:00 PST + */ +settingsService.setRootCertificate({ + attestationFormat: 'apple', + certificate: fs.readFileSync( + path.resolve(__dirname, './defaultRootCerts/Apple_WebAuthn_Root_CA.pem'), + { encoding: 'utf-8' }, + ), +}); + export default settingsService; |