Uçtan uca şifreleme

HPKE'ye Genel Bakış

Karma Ortak Anahtar Şifreleme (HPKE), bir yükü ortak anahtarla şifrelemek için kullanılan bir kriptografik mekanizmadır. Yükün kendisi simetrik bir anahtarla şifrelendiği ve HPKE, bu simetrik anahtarı bir Diffie-Hellman anahtar değişimi kullanarak türettiği için "hibrit" olarak adlandırılır.

HPKE Modları

  • Temel: En yaygın moddur.
  • Kimlik doğrulama: Kimlik doğrulama için gönderenin özel anahtarını kullanır.
  • PSK: Kimlik doğrulama için önceden paylaşılmış, yüksek entropili bir anahtar kullanır.
  • AuthPSK: Kimlik doğrulama için gönderenin özel anahtarını ve önceden paylaşılan, yüksek entropili bir anahtarı birleştirir.

Temel mod etkileşimi (cihaz ve veren kuruluş)

Aşağıda, bir cihazın hassas verileri veren kuruluşa göndermek istediği senaryoyu gösteren üst düzey bir akış verilmiştir.

1. adım: Anahtar oluşturma ve anahtar değişimi

  • Düzenleyen Kuruluş bir Şifreleme Anahtar Çifti oluşturur: IE₍ₚₖ, ₛₖ₎ Burada ₚₖ ortak anahtar, ₛₖ ise özel anahtardır.
  • Düzenleyen Kuruluş, ortak anahtarı (IEₚₖ) cihaza gönderir ve cihazla paylaşır.

2. adım: Şifreleyin ve gönderin

Cihaz Hybrid-Encrypt(Data, IEₚₖ, Context) komutunu yürütüyor.

  • Cihaz, şifreleme için geçici bir asimetrik anahtar çifti oluşturur: ₍Eₚₖ, Eₛₖ₎.
  • SS = ExtractAndExpand(Diffie-Hellman(IEₚₖ, Eₛₖ), _Context) formülünü kullanarak paylaşılan gizli (SS) olarak bilinen simetrik bir AES anahtarı türetir.
  • Cihaz, encData oluşturmak için bu paylaşılan gizli bilgiyi kullanarak verileri şifreler.
  • { encData, Eₚₖ } bilgisini paylaşır ve Kartı Veren Kurum'a gönderir.

3. adım: Şifreyi çözün

Düzenleyen kuruluş şu anda IE₍ₚₖ, ₛₖ₎ ve alınan { encData, Eₚₖ } bilgilerini elinde tutmaktadır. Hybrid-Decrypt(encData, Eₚₖ, IEₛₖ, Context) yürütülür.

  • SS = ExtractAndExpand(Diffie-Hellman(IEₛₖ, Eₚₖ), _Context) formülünü kullanarak simetrik AES anahtarını (paylaşılan gizli, SS) türetir.
  • SS kullanarak encData öğesinin şifresini çözer.

Terminoloji

Terim Tanım ve ayrıntılar
DIₚₖ Kimlik Bilgisi Anahtarı Sertifika Zinciri (Cihaz Kimliği Sertifikaları): Kimlik bilgisini veren kuruluşa tanımlayan CredentialKey için bir X.509 sertifika zinciri.
  • Anahtarı ve güvenlik donanımını açıklayan bir Android Anahtar Deposu onay uzantısı içerir.
  • Kimlik bilgisinin sahipliğini kanıtlamak için kullanılır.
  • Düzenleyen, bu sertifika zincirini dikkatli bir şekilde incelemelidir (ör. kök sertifikanın iyi bilindiğini, Tag::IDENTITY_CREDENTIAL_KEY varlığını, sorgu varlığını, doğru Tag::ATTESTATION_APPLICATION_ID'yi, doğrulanmış başlatmanın etkin olduğunu ve imza/iptal durumunu doğrulamak).
Aₚₖ Kimlik Doğrulama Anahtarları: Her biri CredentialKey tarafından imzalanmış, sertifika gerektiren dinamik X.509 kimlik doğrulama anahtarları.
  • Düzenleyen kuruluş, her anahtar için statik kimlik doğrulama verileri oluşturur, bunları cihaza gönderir ve cihaz, bu verileri storeStaticAuthenticationData aracılığıyla depolar.
  • Bu anahtar, uçtan uca şifreleme için doğrudan kullanılmayan, şifrelenecek bir yükdür.
  • Zorunlu olmayan X.509 alanları şunlardır: version (INTEGER 2), serialNumber (INTEGER 1), signature (ECDSA), subject (CN "Android Identity Credential Authentication Key" olarak ayarlanır), issuer (CN "Android Identity Credential Key" olarak ayarlanır), validity (geçerli saatten 365 gün sonrasına kadar) ve subjectPublicKeyInfo (onaylanmış ortak anahtarı içermelidir).
IE₍ₛₖ,ₚₖ₎ Veren Şifreleme Anahtar Çifti: Veren tarafından oluşturulan asimetrik anahtar. Cihaz, bu anahtarı kullanarak Düzenleyen'e karma şifreleme uygular.
II₍ₛₖ,ₚₖ₎ Düzenleyici Kimliği Anahtar Çifti: Düzenleyici tarafından oluşturulan asimetrik anahtar. Cihaz, Düzenleyen'in kimliğini doğrulamak için bu anahtarı kullanır.
DE₍ₛₖ,ₚₖ₎ Cihaz Şifreleme Anahtarı Çifti: Cihaz tarafından istek başına oluşturulan kısa ömürlü bir asimetrik anahtar. Düzenleyen, bu anahtarı kullanarak Cihaz'da karma şifreleme gerçekleştirir.
FE₍ₛₖ,ₚₖ₎ Alan Şifreleme Anahtarı: Karma şifreleme sırasında alan başına oluşturulan kısa ömürlü bir asimetrik anahtar.

Google Digital Credential Provisioning API'de E2EE

1. adım: Düzenleyen kimliği anahtarını ve şifreleme anahtarını alın

  • API uç noktaları: /getIdentityKey, /getHybridEncryptionKey.
  • İadeler: IIₚₖ, IEₚₖ.

2. adım: Cihaz kaydı nonce'ını alın

  • Cihaz Referans Kimliği oluşturun (deviceReferenceId).
  • API Uç Noktası: /getDeviceRegistrationNonce(deviceReferenceId) çağrısı yapın.
  • İade sayısı: nonce.

3. adım: Cihazı kaydettirin

  • Android kimlik belgesini ayarlayın.
  • IC.getCredentialKeyCertificateChain(nonce) işlevini çağırın. Bu işlev, nonce yerleştirilmiş bir DIₚₖ döndürür.
  • API Uç Noktası: /registerDevice(deviceReferenceId, DIₚₖ) çağrısı yapın.
  • Veren Yetkili, kök sertifikanın iyi bilindiğinden, sorgulamanın mevcut olduğundan, ATTESTATION_APPLICATION_ID değerinin beklenen uygulamayla eşleştiğinden, doğrulanmış başlatmanın etkinleştirildiğinden ve imzaların veya iptallerin geçerli olduğundan emin olmak için bu sertifika zincirini dikkatlice incelemelidir.
  • İade sayısı: ack.

4a. adım: Düzenleme isteği gönderin

  • Her alan için:
    • encData ve FEₚₖ oluşturmak için Hybrid-Encrypt(Data, IEₚₖ, Context=FieldName) komutunu çalıştırın.
    • sigData (COSE_Sign1 veri yapısı, CredentialKey tarafından imzalanmış ve yükü ProofofOwnership olarak ayarlanmış) almak için IC.proveOwnership(SHA-256(Data + IEₚₖ)) numaralı telefonu arayın.
  • API Uç Noktası: /proofUser([encData, sigData, FEₚₖ]) çağrısı yapın.
  • Kimliği Veren Yetkili Makam, DIₚₖ kullanarak sigData kimliğini doğrular.
  • Kimliği veren yetkili makam, Hybrid-Decrypt(encData, FEₚₖ, IEₛₖ, Context=FieldName) çalıştırarak Data oluşturur.
  • İade sayısı: ack.

4b. adım: Düzenleme durumu güncellemesi

  • deviceReferenceId ve proofingId kullanarak Google'ı bir düzeltme durumu güncellemesi hakkında bilgilendirin.
  • API Uç Noktası: /notifyProofingStatusUpdateAvailable(...) çağrısı yapın.
  • Google sunucuları, /getProofingStatus(deviceReferenceId, proofingId)'ı çağırarak veren kuruluştan doğrulama durumunu alır.

5. adım: Kimlik bilgisi sağlama

  • IC.proveOwnership(SHA-256(DEₚₖ)) numaralı telefonu arayarak sigDEₚₖ (COSE_Sign1 yapısı, CredentialKey/DIₛₖ ile imzalanmış ve yük olarak ProofofOwnership'e sahip) alın.
  • API Uç Noktası: deviceReferenceId, proofingId, credentialId ve sigDEₚₖ değerlerini /provisionCredential(dRId, pId, cId, DEₚₖ, sigDEₚₖ) üzerinden veren kuruluşa gönderin.
  • Veren taraf:
    • sigDEₚₖ alanını DIₚₖ ile doğrulayın.
    • Kimlik bilgisini (PersonalizationData + AccessControlProfiles) şifreleyin.
    • encCred ve FEₚₖ oluşturmak için Hybrid-Encrypt(Cred, DEₚₖ, Context=FieldName) komutunu çalıştırın.
    • sigCred, COSE_Sign1 SHA-256(Cred + DEₚₖ) öğesini IIₛₖ ile imzalayarak oluşturulur.
    • encCred, sigCred, FEₚₖ ürünlerini iade edin.
  • Cihaz Tarafı:
    • IIₚₖ kullanarak sigCred alanını doğrulayın.
    • Cred öğesini çıkarmak için Hybrid-Decrypt(encCred, FEₚₖ, DEₛₖ, Context=FieldName) komutunu çalıştırın.
    • sigCredReceipt (COSE_Sign1, CredentialKey tarafından imzalanmış, yük ProofOfProvisioning) almak için WC.personalize(Cred) numaralı telefonu arayın.
    • Hybrid-Encrypt(sigCredReceipt, DEₛₖ, Context=FieldName) oluşturma encReceipt ve FE1ₚₖ işlemlerini yürütün.
    • sigReceipt (COSE_Sign1, CredentialKey tarafından imzalanmış, yük ProofofOwnership) almak için IC.proveOwnership(SHA-256(encReceipt + IEₚₖ)) numaralı telefonu arayın.
    • Kimlik doğrulama anahtarları oluşturun [Aₚₖ].

6. adım: MSO ve StaticAuthData oluşturun

  • Cihaz Tarafı:
    • Her kimlik doğrulama anahtarı için: Hybrid-Encrypt(AuthKey, IEₚₖ, Context=FieldName) komutunu çalıştırarak encAuthKey ve FEₚₖ oluşturun.
    • sigAuthKey özelliğini edinmek için IC.proveOwnership(SHA-256(AuthKey + IEₚₖ)) numaralı telefonu arayın.
    • API Uç Noktası: /provisionMSOs(.., encReceipt, sigReceipt, [encAuthKey, sigAuthKey, FEₚₖ], DEₚₖ, sigDEₚₖ) çağrısı yapın.
  • Veren taraf:
    • Makbuzu doğrulamak için sigReceipt ve sigDEₚₖ değerlerini DIₚₖ ile karşılaştırarak doğrulayın.
    • Her [encAuthKey, sigAuthKey, FEₚₖ] için: AuthKey öğesini ayıklamak üzere Hybrid-Decrypt(encAuthKey, FEₚₖ, IEₛₖ, Context=FieldName) komutunu çalıştırın.
    • MSO'yu (AuthKey dahil) ve digestIdMapping ile issuerAuth'u içeren staticAuthData'yı (SAD) oluşturun.
    • encSAD ve FEₚₖ oluşturmak için Hybrid-Encrypt(SAD, DEₚₖ, Context=FieldName) komutunu çalıştırın.
    • IIₛₖ ile COSE_Sign1 SHA-256(SAD + DEₚₖ) kullanarak imzalayın ve sigSAD oluşturun.
    • Dönüş [encSAD, sigSAD, FEₚₖ].
  • Cihaz Tarafı (Son):
    • Döndürülen her encSAD, sigSAD, FEₚₖ için: sigSAD ile IIₚₖ'yi doğrulayın.
    • SAD öğesini çıkarmak için Hybrid-Decrypt(encSAD, FEₚₖ, DEₛₖ, Context=FieldName) komutunu çalıştırın.
    • İşlemi tamamlamak için SAD ile storeStaticAuthenticationData'ı arayın.

Rotasyon şartları

Veren kimliği anahtarı yılda bir kez döndürülmelidir. Rotasyon döneminde, veren kuruluş eski ve yeni anahtarı barındırmalıdır. Cihaz ise bu anahtarların her ikisine de güvenir. Düzenleyen, yeni Düzenleyen Kimliği Anahtarı'nı kullanmaya tamamen geçtikten sonra eski anahtarı barındırmayı durdurmalıdır. Bu durumda cihaz, eski anahtara artık güvenmez.

Düzenleyen Hibrit Şifreleme Anahtarı 3 ayda bir döndürülmelidir. Döndürme süresi boyunca veren kuruluş yalnızca yeni anahtarı barındırmaya başlamalıdır ve cihaz yeni anahtarla şifrelemeye başlar. Kartı veren kuruluş, hizmet kesintisini önlemek için makul bir süre boyunca hem eski hem de yeni anahtarla şifre çözmeyi desteklemelidir.

AAD Değerleri

AAD için aşağıdaki bağlam değerlerini kullanın.

Alanlar Bağlam Değerleri
preAuthorizationCode PreAuthorizationCode

Diğer kanıt türlerinin AAD değerleri için Google temsilcinizle iletişime geçin.

Dijital Kimlik Bilgileri Uçtan Uca Şifrelemesi için Test Vektörleri

Dijital kimlik uçtan uca şifreleme için test vektörleri, şifreleme algoritmasının doğruluğunu test etmek için kullanılan, önceden tanımlanmış bir dizi mesaj ve bunların şifrelenmiş sürümleridir.

HPKE şifreleme parametreleri:

  KEM = DHKEM(P-256, HKDF-SHA256), id = 0x0010
  KDF = HKDF-SHA256, id = 0x0001
  AEAD = AES-256-GCM, id = 0x0002
  • Ek İlişkili Veriler (AAD), HPKE CtxInfo'nun girişidir. AES (simetrik) şifreleme için AAD, NULL'dur (boş).
  • JSON yapılarındaki ikili veriler Base64 ile kodlanır. Bu belgedeki ara değerler ise onaltılık (Hex) ile kodlanır.
  • Bu dokümandaki imza biçimi:
    • Cihaz → Veren kuruluş, Veren kuruluş → Cihaz: COSE_Sign1

İstemci → Düzenleyen, Düzenleyen → İstemci

Her iki yönde iletişim için örnek.

Örnek Şifrelenmiş İstek Alanı

Plaintext = "Hello, world!", associated-data = "field1"

{
  "field1": {
    "encryptedValue": "yGFWT9MkgV6/IZfYUZjqGEf3k2M/HQhz9XnKWyI\u003d",
    "encapsulatedKey": "BOpBC2LGh1RWk99iIm6ISsaPbtrNnu9hIgHeby5khXY6PG+ZmDOYmorEUne7uzhDmD6JCVYyME1+A8ueJ0CZvAI\u003d",
    "signature": "hEOhASagWE+EcFByb29mT2ZPd25lcnNoaXB4GG9yZy5pc28uMTgwMTMtNS4yMDE5Lm1kbFggTOsHXzsgDgh/2chekltve8rJsFFb6DTtBjY98H58gjb0WEBUnwNT3gvbavE8QoaAKaELqF7JKqh0+ivPisQg6RerTmx8Zsk/tCjW/y1cxhGKatl2EjASemns67r1/lZumEqZ",
    "recipientKeyId": "4D7E5D8B9460810A"
  }
}

Ayrıntılı inceleme:

>> plaintext = "Hello, world!"
48656C6C6F2C20776F726C6421

>> associated-data = "field1"
6669656C6431

## AES key = 
2831F07355FEAB3A8654EADEEC2E2D497B9FD3C76CB8B5E776DB03583F302332

## AES initialization vector = 
64620929032C85B352156528

## AES associated data (empty) = 

>> encrypted-value = HPKE(plaintext, associated-data)
C861564FD324815EBF2197D85198EA1847F793633F1D0873F579CA5B22

>> encapsulated-key (ephemeral) =
04EA410B62C687545693DF62226E884AC68F6EDACD9EEF612201DE6F2E648576
3A3C6F999833989A8AC45277BBBB3843983E89095632304D7E03CB9E274099BC
02

>> tbs-data = plaintext || issuer-encryption-key
48656C6C6F2C20776F726C6421044F1FC726AFFFC32EAA1275B5B49D67018ADE
7D8599DE53FE049996C0EC45D26EA3375BF467B631CF8AB0F284E4B628E287C8
99107465529DCA93DCF5F7A7EA5F

>> sha-256(tbs-data)
4CEB075F3B200E087FD9C85E925B6F7BCAC9B0515BE834ED06363DF07E7C8236

>> proof-of-ownership (cbor array)
847050726F6F664F664F776E65727368697078186F72672E69736F2E31383031
332D352E323031392E6D646C58204CEB075F3B200E087FD9C85E925B6F7BCAC9
B0515BE834ED06363DF07E7C8236F4

>> signature (cose_sign1)
8443A10126A0584F847050726F6F664F664F776E65727368697078186F72672E
69736F2E31383031332D352E323031392E6D646C58204CEB075F3B200E087FD9
C85E925B6F7BCAC9B0515BE834ED06363DF07E7C8236F45840549F0353DE0BDB
6AF13C42868029A10BA85EC92AA874FA2BCF8AC420E917AB4E6C7C66C93FB428
D6FF2D5CC6118A6AD9761230127A69ECEBBAF5FE566E984A99

Örnek veren kuruluş veya cihaz şifreleme anahtarı örneği

{
  "deviceEncryptionKey": {
    "publicKey": "BP5vgzZ+UTozzb6cmaZ8tkof2nh2Q2oHVAsggvc8V8SR6C9wWU6W9JEq0AmsGbou3jYw4BLftJP2XQeCB3uD/to\u003d",
    "signature": "hEOhASagWE+EcFByb29mT2ZPd25lcnNoaXB4GG9yZy5pc28uMTgwMTMtNS4yMDE5Lm1kbFgg7641tE2UhuT5Tw9p1u9yEDpyYzDf1Jf9m//mIQfd4Kf0WEBB7PvHbfWozCYlFUqMJ6x+QWzoUU/OT10F1J1zoB8MTELPqfC9acF6IX5oMmsgLn2RtPS7QfylRqEAfG0FyYli",
    "keyIdentifier": "F29BA6298BC93156D2D50EA7E2233FC4"
  }
}

Ayrıntılı inceleme:

>> ec-point
04FE6F83367E513A33CDBE9C99A67CB64A1FDA7876436A07540B2082F73C57C4
91E82F70594E96F4912AD009AC19BA2EDE3630E012DFB493F65D0782077B83FE
DA

>> sha-256(ec-point)
EFAE35B44D9486E4F94F0F69D6EF72103A726330DFD497FD9BFFE62107DDE0A7

>> proof-of-ownership (cbor array)
847050726F6F664F664F776E65727368697078186F72672E69736F2E31383031
332D352E323031392E6D646C5820EFAE35B44D9486E4F94F0F69D6EF72103A72
6330DFD497FD9BFFE62107DDE0A7F4

>> signature (cose_sign1)
8443A10126A0584F847050726F6F664F664F776E65727368697078186F72672E
69736F2E31383031332D352E323031392E6D646C5820EFAE35B44D9486E4F94F
0F69D6EF72103A726330DFD497FD9BFFE62107DDE0A7F4584041ECFBC76DF5A8
CC2625154A8C27AC7E416CE8514FCE4F5D05D49D73A01F0C4C42CFA9F0BD69C1
7A217E68326B202E7D91B4F4BB41FCA546A1007C6D05C98962

Test Anahtarları ve Sertifikaları

Uygulama sırasında aşağıdaki test anahtarlarını kullanabilirsiniz.

Test Yayınlayıcı Kimliği (İmza) Anahtarı

  • Özel anahtar

    -----BEGIN PRIVATE KEY-----
    MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCBSDJqogkjkqD7O8mX5
    FcUvwOxFp0CxPOGnMD8BfSbcyw==
    -----END PRIVATE KEY-----

  • Ortak Anahtar Sertifikası

    -----BEGIN CERTIFICATE-----
    MIIBkDCCATegAwIBAgIIIi7oI6UIMEYwCgYIKoZIzj0EAwIwNzE1MDMGA1UEAxMs
    Ly9leHBlcmltZW50YWwvdXNlcnMvaWdhcmlldi9jcnlwdG86U2lnbkNlcnQwHhcN
    MjIxMjEyMjAyNDA0WhcNMjMxMjEyMjAyNDA0WjBSMQ8wDQYDVQQLEwZXYWxsZXQx
    DzANBgNVBAoTBkdvb2dsZTEuMCwGA1UEAxMlVEVTVCBEQVRBIElzc3VlciBJZGVu
    dGl0eSAoU2lnbmF0dXJlKTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABHV9uYlT
    wGV3UB+SM62fXcW6QzFfSoxq2gU34xG+XVMjxk9JDP9UTE34zX72WIfZ9nqRN9y/
    SsbSxw5WrSQdGY2jEjAQMA4GA1UdDwEB/wQEAwIHgDAKBggqhkjOPQQDAgNHADBE
    AiBnMgsyJhdfelqpOFvT4H63dWSrNPxyrKEdxTwbYMfCKQIgOh2n2gCETH07tjxR
    l9HQfUcb6vqQY4EoPz2O0wNs6yc=
    -----END CERTIFICATE-----

Test veren kuruluş şifreleme anahtarı

  • Özel anahtar

    -----BEGIN PRIVATE KEY-----
    MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCDZMUnwmygUdKXSujXS
    ye7YbVnk1Zy/qwnQtzlZs3pQFQ==
    -----END PRIVATE KEY-----

  • Ortak Anahtar Sertifikası

    -----BEGIN CERTIFICATE-----
    MIIBpjCCAUygAwIBAgIIIVwLEOrrzm0wCgYIKoZIzj0EAwIwNzE1MDMGA1UEAxMs
    Ly9leHBlcmltZW50YWwvdXNlcnMvaWdhcmlldi9jcnlwdG86U2lnbkNlcnQwHhcN
    MjIxMjIyMjA1NzIzWhcNMjMxMjIyMjA1NzIzWjBIMQ8wDQYDVQQLEwZXYWxsZXQx
    DzANBgNVBAoTBkdvb2dsZTEkMCIGA1UEAxMbVEVTVCBEQVRBIElzc3VlciBFbmNy
    eXB0aW9uMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETx/HJq//wy6qEnW1tJ1n
    AYrefYWZ3lP+BJmWwOxF0m6jN1v0Z7Yxz4qw8oTktijih8iZEHRlUp3Kk9z196fq
    X6MxMC8wDgYDVR0PAQH/BAQDAgMYMB0GA1UdDgQWBBQKFb7K4eZjtp70DLoCHWe7
    v/toXzAKBggqhkjOPQQDAgNIADBFAiEAwN1gOwiSx3999Zxc980eKv3p2H8kA4J6
    9aWH6jiVaGMCIA7lLkebHFhD0fItGqXv1f5fwiMBV0605KZFh5+RBj/W
    -----END CERTIFICATE-----

Cihaz Kimliği (İmza) anahtarı, diğer adıyla Kimlik Bilgisi Anahtarı

  • Ortak Anahtar Sertifika Zinciri (X.509)
    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

Daha fazla bilgi için Android'in Anahtar Onaylama belgelerini inceleyin.

Cihaz Şifreleme Anahtarı

  • Özel anahtar

    -----BEGIN PRIVATE KEY-----
    MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCBJY8n7A1v+thMM63np
    m0wr+rAoMFEYmMZ+mWzBIj2CiQ==
    -----END PRIVATE KEY-----

  • Ortak Anahtar Sertifikası

    -----BEGIN CERTIFICATE-----
    MIIBhzCCAS2gAwIBAgIIAyJ+NkzueMUwCgYIKoZIzj0EAwIwNzE1MDMGA1UEAxMs
    Ly9leHBlcmltZW50YWwvdXNlcnMvaWdhcmlldi9jcnlwdG86U2lnbkNlcnQwHhcN
    MjMwMTA5MjMwOTIwWhcNMjQwMTA5MjMwOTIwWjBIMQ8wDQYDVQQLEwZXYWxsZXQx
    DzANBgNVBAoTBkdvb2dsZTEkMCIGA1UEAxMbVEVTVCBEQVRBIERldmljZSBFbmNy
    eXB0aW9uMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/m+DNn5ROjPNvpyZpny2
    Sh/aeHZDagdUCyCC9zxXxJHoL3BZTpb0kSrQCawZui7eNjDgEt+0k/ZdB4IHe4P+
    2qMSMBAwDgYDVR0PAQH/BAQDAgMYMAoGCCqGSM49BAMCA0gAMEUCIQD9syewRhvK
    KcyaM7fLwuuCidpiIVd/CZxFCLOo9adCPAIgNd3FMcT710KtYptJBZQ/i7N+C7G5
    pLbHmAUoFwNuB2E=
    -----END CERTIFICATE-----