Ende-zu-Ende-Verschlüsselung

HPKE – Übersicht

Hybrid Public Key Encryption (HPKE) ist ein kryptografischer Mechanismus, mit dem eine Nutzlast mit einem öffentlichen Schlüssel verschlüsselt wird. Er wird als "hybrid" bezeichnet, weil die Nutzlast selbst mit einem symmetrischen Schlüssel verschlüsselt wird. HPKE leitet diesen symmetrischen Schlüssel mithilfe eines Diffie-Hellman-Schlüsselaustauschs ab.

HPKE-Modi

  • Base:Der häufigste Modus.
  • Auth: Verwendet den privaten Schlüssel des Absenders zur Authentifizierung.
  • PSK: Verwendet einen vorinstallierten Schlüssel mit hoher Entropie zur Authentifizierung.
  • AuthPSK: Kombiniert den privaten Schlüssel des Absenders und einen vorinstallierten Schlüssel mit hoher Entropie zur Authentifizierung.

Interaktion im Basismodus (Gerät und ausstellende Behörde)

Hier sehen Sie einen allgemeinen Ablauf, der ein Szenario darstellt, in dem ein Gerät vertrauliche Daten an eine ausstellende Behörde senden möchte.

Schritt 1: Schlüsselgenerierung und ‑austausch

  • Die ausstellende Behörde erstellt ein Verschlüsselungsschlüsselpaar: IE₍ₚₖ, ₛₖ₎, wobei ₚₖ der öffentliche Schlüssel und ₛₖ der private Schlüssel ist.
  • Die ausstellende Behörde sendet den öffentlichen Schlüssel (IEₚₖ) an das Gerät und gibt ihn für dieses frei.

Schritt 2: Verschlüsseln und Senden

Das Gerät führt Hybrid-Encrypt(Data, IEₚₖ, Context) aus.

  • Das Gerät generiert ein sitzungsspezifisches asymmetrisches Schlüsselpaar für die Verschlüsselung: ₍Eₚₖ, Eₛₖ₎.
  • Es leitet einen symmetrischen AES-Schlüssel ab, der als gemeinsames Secret (Shared Secret, SS) bezeichnet wird. Die Formel lautet: SS = ExtractAndExpand(Diffie-Hellman(IEₚₖ, Eₛₖ), _Context).
  • Das Gerät verschlüsselt die Daten mit diesem gemeinsamen Secret, um encData zu erstellen.
  • Es gibt { encData, Eₚₖ } frei und sendet es an die ausstellende Behörde.

Schritt 3: Entschlüsseln

Die ausstellende Behörde hat derzeit IE₍ₚₖ, ₛₖ₎ und die empfangenen { encData, Eₚₖ }. Sie führt Hybrid-Decrypt(encData, Eₚₖ, IEₛₖ, Context) aus.

  • Sie leitet den symmetrischen AES-Schlüssel (gemeinsames Secret, SS) mit der folgenden Formel ab: SS = ExtractAndExpand(Diffie-Hellman(IEₛₖ, Eₚₖ), _Context).
  • Sie entschlüsselt die encData mit SS.

Terminologie

Begriff Definition und Details
DIₚₖ Zertifikatskette des Berechtigungsnachweisschlüssels (Zertifikate der Geräteidentität): Eine X.509-Zertifikatskette für den Berechtigungsnachweisschlüssel, die den Berechtigungsnachweis gegenüber der ausstellenden Behörde identifiziert.
  • Enthält eine Android-Schlüsselspeicher-Bestätigungserweiterung, die den Schlüssel und seine Sicherheitshardware beschreibt.
  • Wird verwendet, um die Inhaberschaft des Berechtigungsnachweises zu belegen.
  • Der Aussteller MUSS diese Zertifikatskette sorgfältig prüfen (z.B. überprüfen, ob das Root-Zertifikat bekannt ist, ob Tag::IDENTITY_CREDENTIAL_KEY vorhanden ist, ob eine Challenge vorhanden ist, ob Tag::ATTESTATION_APPLICATION_ID korrekt ist, ob der überprüfte Start aktiviert ist und ob der Signatur-/Widerrufsstatus korrekt ist).
Aₚₖ Authentifizierungsschlüssel: Dynamische X.509-Authentifizierungsschlüssel, die eine Zertifizierung erfordern und jeweils vom Berechtigungsnachweisschlüssel signiert werden.
  • Der Aussteller generiert statische Authentifizierungsdaten für jeden Schlüssel, sendet sie an das Gerät und das Gerät speichert sie über storeStaticAuthenticationData.
  • Dieser Schlüssel ist eine Nutzlast, die verschlüsselt wird, und wird nicht direkt für die Ende-zu-Ende-Verschlüsselung verwendet.
  • Nicht optionale X.509-Felder sind: Version (INTEGER 2), Seriennummer (INTEGER 1), Signatur (ECDSA), Betreff (CN auf „Android Identity Credential Authentication Key“ gesetzt), Aussteller (CN auf „Android Identity Credential Key“ gesetzt), Gültigkeit (aktuelle Zeit bis 365 Tage in der Zukunft) und subjectPublicKeyInfo (muss den bestätigten öffentlichen Schlüssel enthalten).
IE₍ₛₖ,ₚₖ₎ Verschlüsselungsschlüsselpaar des Ausstellers: Ein asymmetrischer Schlüssel, der vom Aussteller generiert wird. Das Gerät verwendet diesen Schlüssel, um die Hybridverschlüsselung beim Aussteller durchzuführen.
II₍ₛₖ,ₚₖ₎ Identitätsschlüsselpaar des Ausstellers: Ein asymmetrischer Schlüssel, der vom Aussteller generiert wird. Das Gerät verwendet diesen Schlüssel, um die Identität des Ausstellers zu überprüfen.
DE₍ₛₖ,ₚₖ₎ Geräteverschlüsselungsschlüsselpaar: Ein sitzungsspezifischer asymmetrischer Schlüssel, der vom Gerät pro Anfrage generiert wird. Der Aussteller verwendet diesen Schlüssel, um die Hybridverschlüsselung auf dem Gerät durchzuführen.
FE₍ₛₖ,ₚₖ₎ Feldverschlüsselungsschlüssel: Ein sitzungsspezifischer asymmetrischer Schlüssel, der während der Hybridverschlüsselung pro Feld generiert wird.

Ende-zu-Ende-Verschlüsselung in der Google Digital Credential Provisioning API

Schritt 1: Identitätsschlüssel und Verschlüsselungsschlüssel des Ausstellers abrufen

  • API-Endpunkte: /getIdentityKey, /getHybridEncryptionKey.
  • Gibt zurück: IIₚₖ, IEₚₖ.

Schritt 2: Nonce für die Geräteregistrierung abrufen

  • Generieren Sie eine Geräte-Referenz-ID (deviceReferenceId).
  • API-Endpunkt: Rufen Sie /getDeviceRegistrationNonce(deviceReferenceId) auf.
  • Gibt zurück: nonce.

Schritt 3: Gerät registrieren

  • Richten Sie den Android-Berechtigungsnachweis ein.
  • Rufen Sie IC.getCredentialKeyCertificateChain(nonce) auf. Dadurch wird ein in eine Nonce eingebetteter DIₚₖ zurückgegeben.
  • API-Endpunkt: Rufen Sie /registerDevice(deviceReferenceId, DIₚₖ) auf.
  • Die ausstellende Behörde muss diese Zertifikatskette sorgfältig prüfen, um sicherzustellen, dass das Root-Zertifikat bekannt ist, die Challenge vorhanden ist, die ATTESTATION_APPLICATION_ID mit der erwarteten App übereinstimmt, der überprüfte Start aktiviert ist, und Signaturen oder Widerrufe gültig sind.
  • Gibt zurück: ack.

Schritt 4a: Proofing-Anfrage senden

  • Für jedes Feld:
    • Führen Sie Hybrid-Encrypt(Data, IEₚₖ, Context=FieldName) aus, um encData und FEₚₖ zu generieren.
    • Rufen Sie IC.proveOwnership(SHA-256(Data + IEₚₖ)) auf, um sigData zu erhalten (eine COSE_Sign1-Datenstruktur, die vom Berechtigungsnachweisschlüssel signiert wurde, wobei die Nutzlast auf ProofofOwnership gesetzt ist).
  • API-Endpunkt: Rufen Sie /proofUser([encData, sigData, FEₚₖ]) auf.
  • Die ausstellende Behörde überprüft sigData mit DIₚₖ.
  • Die ausstellende Behörde führt Hybrid-Decrypt(encData, FEₚₖ, IEₛₖ, Context=FieldName) aus, um Data zu generieren.
  • Gibt zurück: ack.

Schritt 4b: Proofing-Status aktualisieren

  • Benachrichtigen Sie Google über eine Aktualisierung des Proofing-Status mit deviceReferenceId und proofingId.
  • API-Endpunkt: Rufen Sie /notifyProofingStatusUpdateAvailable(...) auf.
  • Google-Server rufen den Proofing-Status vom Aussteller ab, indem sie /getProofingStatus(deviceReferenceId, proofingId) aufrufen.

Schritt 5: Berechtigungsnachweis bereitstellen

  • Rufen Sie IC.proveOwnership(SHA-256(DEₚₖ)) auf, um sigDEₚₖ zu erhalten (COSE_Sign1-Struktur, die vom Berechtigungsnachweisschlüssel/DIₛₖ signiert wurde, wobei die Nutzlast auf ProofofOwnership gesetzt ist).
  • API-Endpunkt: Senden Sie deviceReferenceId, proofingId, credentialId und sigDEₚₖ über /provisionCredential(dRId, pId, cId, DEₚₖ, sigDEₚₖ) an den Aussteller.
  • Ausstellerseite:
    • Überprüfen Sie sigDEₚₖ mit DIₚₖ.
    • Verschlüsseln Sie den Berechtigungsnachweis (PersonalizationData + AccessControlProfiles).
    • Führen Sie Hybrid-Encrypt(Cred, DEₚₖ, Context=FieldName) aus, um encCred und FEₚₖ zu generieren.
    • Erstellen Sie sigCred, indem Sie COSE_Sign1 SHA-256(Cred + DEₚₖ) mit IIₛₖ signieren.
    • Geben Sie encCred, sigCred, FEₚₖ zurück.
  • Geräteseite:
    • Überprüfen Sie sigCred mit IIₚₖ.
    • Führen Sie Hybrid-Decrypt(encCred, FEₚₖ, DEₛₖ, Context=FieldName) aus, um Cred zu extrahieren.
    • Rufen Sie WC.personalize(Cred) auf, um sigCredReceipt zu erhalten (COSE_Sign1, signiert vom Berechtigungsnachweisschlüssel, Nutzlast ProofOfProvisioning).
    • Führen Sie Hybrid-Encrypt(sigCredReceipt, DEₛₖ, Context=FieldName) aus, um encReceipt und FE1ₚₖ zu generieren.
    • Rufen Sie IC.proveOwnership(SHA-256(encReceipt + IEₚₖ)) auf, um sigReceipt zu erhalten (COSE_Sign1, signiert vom Berechtigungsnachweisschlüssel, Nutzlast ProofofOwnership).
    • Generieren Sie Authentifizierungsschlüssel [Aₚₖ].

Schritt 6: MSO und StaticAuthData generieren

  • Geräteseite:
    • Führen Sie für jeden Authentifizierungsschlüssel Hybrid-Encrypt(AuthKey, IEₚₖ, Context=FieldName) aus, um encAuthKey und FEₚₖ zu generieren.
    • Rufen Sie IC.proveOwnership(SHA-256(AuthKey + IEₚₖ)) auf, um sigAuthKey zu erhalten.
    • API-Endpunkt: Rufen Sie /provisionMSOs(.., encReceipt, sigReceipt, [encAuthKey, sigAuthKey, FEₚₖ], DEₚₖ, sigDEₚₖ) auf.
  • Ausstellerseite:
    • Überprüfen Sie sigReceipt und sigDEₚₖ mit DIₚₖ, um den Empfang zu bestätigen.
    • Führen Sie für jedes [encAuthKey, sigAuthKey, FEₚₖ] die Funktion Hybrid-Decrypt(encAuthKey, FEₚₖ, IEₛₖ, Context=FieldName) aus, um den AuthKey zu extrahieren.
    • Generieren Sie das MSO (einschließlich des AuthKey) und generieren Sie staticAuthData (SAD), einschließlich digestIdMapping und issuerAuth.
    • Führen Sie Hybrid-Encrypt(SAD, DEₚₖ, Context=FieldName) aus, um encSAD und FEₚₖ zu generieren.
    • Signieren Sie mit COSE_Sign1 SHA-256(SAD + DEₚₖ) mit IIₛₖ, um sigSAD zu erstellen.
    • Geben Sie [encSAD, sigSAD, FEₚₖ] zurück.
  • Geräteseite (final)
    • Überprüfen Sie für jedes encSAD, sigSAD, FEₚₖ zurückgegebene die Signatur sigSAD mit IIₚₖ.
    • Führen Sie Hybrid-Decrypt(encSAD, FEₚₖ, DEₛₖ, Context=FieldName) aus, um SAD zu extrahieren.
    • Rufen Sie storeStaticAuthenticationData mit SAD auf, um den Vorgang abzuschließen.

Rotationsanforderungen

Der Identitätsschlüssel des Ausstellers sollte einmal pro Jahr rotiert werden. Während des Rotations zeitraums sollte der Aussteller den alten und den neuen Schlüssel hosten und das Gerät wird diesen beiden Schlüsseln vertrauen. Sobald der Aussteller vollständig auf die Verwendung des neuen Identitätsschlüssels des Ausstellers umgestellt hat, sollte der Aussteller den alten Schlüssel nicht mehr hosten und das Gerät wird ihm nicht mehr vertrauen.

Der Schlüssel des Ausstellers zur Hybridverschlüsselung sollte alle drei Monate rotiert werden. Während des Rotationszeitraums sollte der Aussteller nur noch den neuen Schlüssel hosten und das Gerät wird mit dem neuen Schlüssel verschlüsseln. Der Aussteller muss für einen angemessenen Zeitraum die Entschlüsselung mithilfe des alten und des neuen Schlüssels unterstützen, um Ausfallzeiten zu vermeiden.

AAD-Werte

Verwenden Sie die folgenden Kontextwerte für AAD.

Felder Kontextwerte
preAuthorizationCode PreAuthorizationCode

AAD-Werte für andere Nachweistypen erhalten Sie von Ihrem Google-Ansprechpartner.

Testvektoren für die Ende-zu-Ende-Verschlüsselung digitaler Berechtigungsnachweise

Testvektoren für die Ende-zu-Ende-Verschlüsselung digitaler IDs bestehen aus einer Reihe von vordefinierten Nachrichten und den zugehörigen verschlüsselten Versionen, die zum Testen der Richtigkeit des Verschlüsselungsalgorithmus verwendet werden.

HPKE-Verschlüsselungsparameter:

  KEM = DHKEM(P-256, HKDF-SHA256), id = 0x0010
  KDF = HKDF-SHA256, id = 0x0001
  AEAD = AES-256-GCM, id = 0x0002
  • Additional Associate Data (AAD) ist eine Eingabe an HPKE CtxInfo, AAD für die (symmetrische) AES-Verschlüsselung ist NULL (leer).
  • Binärdaten in JSON-Strukturen sind Base64-codiert, Zwischenwerte in diesem Dokument sind Hex-codiert.
  • Signaturformat in dieser Dokumentation:
    • Gerät → Aussteller, Aussteller → Gerät: COSE_Sign1

Client → Aussteller, Aussteller → Client

Beispiel für die Kommunikation in beide Richtungen.

Beispiel für verschlüsseltes Anfragefeld

Klartext = „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"
  }
}

Im Detail:

>> 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

Beispiel für Verschlüsselungsschlüssel des Ausstellers oder Geräts

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

Im Detail:

>> 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

Testschlüssel und ‑zertifikate

Folgende Testschlüssel können Sie bei der Implementierung verwenden.

Identitätsschlüssel (Signatur) des Testausstellers

  • Privater Schlüssel

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

  • Public-Key-Zertifikat

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

Verschlüsselungsschlüssel des Testausstellers

  • Privater Schlüssel

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

  • Public-Key-Zertifikat

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

Identitätsschlüssel (Signatur) des Geräts

  • Public-Key-Zertifikatskette (X.509)
    MIICujCCAmCgAwIBAgIBATAKBggqhkjOPQQDAjA5MQwwCgYDVQQKEwNURUUxKTAnBgNVBAMTIDFjOTJhYjA1MzI0OWFjNDE0ZWFmMTg5NTY2Njg2NmFmMB4XDTcwMDEwMTAwMDAwMFoXDTQ4MDEwMTAwMDAwMFowHzEdMBsGA1UEAxMUQW5kcm9pZCBLZXlzdG9yZSBLZXkwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARLTpfw/CcG1/+nXnMP9QRBm5JjaNJBhNg77tmzk4F7L7uXnNGWIoToq9KHyX2iUDn6Ubv/mwiMlMSm5nM88RGdo4IBcTCCAW0wDgYDVR0PAQH/BAQDAgeAMIIBWQYKKwYBBAHWeQIBEQSCAUkwggFFAgIAyAoBAQICAMgKAQEEEDYjEBLEZTpwr93t4ptmsuoEADB3v4U9CAIGAYhT/hkxv4VFZwRlMGMxPTAbBBZjb20uZ29vZ2xlLmFuZHJvaWQuZ3NmAgEhMB4EFmNvbS5nb29nbGUuYW5kcm9pZC5nbXMCBA3XF2wxIgQgGXWy8XF3vIml3/MfnmSmyuKBpT3B0dWbHRR/4cgq+gAwgaehCDEGAgECAgEDogMCAQOjBAICAQClCDEGAgEEAgEGqgMCAQG/g3cCBQC/hT4DAgEAv4VATDBKBCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAoBAgQghzYolDg9mxJKvBXCPbyAefMb/019dGERKGxClYvGYri/hUEFAgMB+9C/hUIFAgMDFkK/hU4GAgQBNLHNv4VPBgIEATSxzTAKBggqhkjOPQQDAgNIADBFAiEAxDZmUvasdVI9TYmxCH00xlss++qNbxziuwu3GcP+YeQCIGVa5yuWtAc4dOHjUVXHwPJCW7NVQ12z42+PHR4wnne6
    MIIBwjCCAWmgAwIBAgIQHJKrBTJJrEFOrxiVZmhmrzAKBggqhkjOPQQDAjApMRMwEQYDVQQKEwpHb29nbGUgTExDMRIwEAYDVQQDEwlEcm9pZCBDQTMwHhcNMjMwNDI2MTgwMTIxWhcNMjMwNTI2MTgwMTIxWjA5MQwwCgYDVQQKEwNURUUxKTAnBgNVBAMTIDFjOTJhYjA1MzI0OWFjNDE0ZWFmMTg5NTY2Njg2NmFmMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaZUxql/Q7FOtJy8UBFCAdnJ2mVB5RTe0b73Mr24fdqEi/92BDTnEe6cU7OD313G+KiCWrj21KnFLVCXhsKNJiKNjMGEwHQYDVR0OBBYEFNIlTq1EOm+XCcucFptH3inlTMEyMB8GA1UdIwQYMBaAFMNOzZHngCQ1SXStZ0KE/5Jr4WPIMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMAoGCCqGSM49BAMCA0cAMEQCIGnOBO9oVZL51EUXJPk0IU2BT1Za9RbOM585CEm/KEkyAiBGuxsUVp+OaqV0HorqI930jbKqEG6oMpjWWdurmF//JQ==
    MIIB2DCCAV2gAwIBAgIUAMpPi14T/VLTtDvuZpzGh7aT4cgwCgYIKoZIzj0EAwMwKTETMBEGA1UEChMKR29vZ2xlIExMQzESMBAGA1UEAxMJRHJvaWQgQ0EyMB4XDTIzMDQyODE1MDIwOVoXDTIzMDYwMjE1MDIwOFowKTETMBEGA1UEChMKR29vZ2xlIExMQzESMBAGA1UEAxMJRHJvaWQgQ0EzMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+rRR6wzN3SA8Ub8lGFGnHjgTV2j6nxB7h+QiVQo2cGc2eJOwTG+VhZiTEtMEbRHwTpa8J8o1HPjiFCpcfe3GB6NjMGEwDgYDVR0PAQH/BAQDAgIEMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMNOzZHngCQ1SXStZ0KE/5Jr4WPIMB8GA1UdIwQYMBaAFDmYBwY6MxKe9RQGOoBBDHGAzhqtMAoGCCqGSM49BAMDA2kAMGYCMQDt8fk0uaYvpsXXCvppEbjBBGOC5CNL9x515k85nMKhzePXVpWqZSVzxdmLQaATmc4CMQDn/B4Xlzliu1RWrhacos2fZXvMxhhOW1w2waoFnTS8mExHwzKuTbfMVPHYdj3KhtI=
    MIIDgDCCAWigAwIBAgIKA4gmZ2BliZaGDzANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MB4XDTIyMDEyNjIyNTAyMFoXDTM3MDEyMjIyNTAyMFowKTETMBEGA1UEChMKR29vZ2xlIExMQzESMBAGA1UEAxMJRHJvaWQgQ0EyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE/t+4AI454D8pM32ZUEpuaS0ewLjFP9EBOnCF4Kkz2jqcDECp0fjy34AaTCgJnpGdCLIU3u/WXBs3pEECgMuS9RVSKqj584wdbpcxiJahZWSzHqPK1Nn5LZYdQIpLJ9cUo2YwZDAdBgNVHQ4EFgQUOZgHBjozEp71FAY6gEEMcYDOGq0wHwYDVR0jBBgwFoAUNmHhAHyIBQlRi0RsR/8aTMnqTxIwEgYDVR0TAQH/BAgwBgEB/wIBAjAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAD0FO58gwWQb6ROp4c7hkOwQiWiCTG2Ud9Nww5cKlsMU8YlZOk8nXn5OwAfuFT01Kgcbau1CNDECX7qA1vJyQ9HBsoqa7fmi0cf1j/RRBvvAuGvg3zRy0+OckwI2832399l/81FMShS+GczTWfhLJY/ObkVBFkanRCpDhE/SxNHL/5nJzYaH8OdjAKufnD9mcFyYvzjixbcPEO5melGwk7KfCx9miSpVuB6mN1NdoCsSi96ZYQGBlZsE8oLdazckCygTvp2s77GtIswywOHf3HEa39OQm8B8g2cHcy4u5kKoFeSPI9zo6jx+WDb1Er8gKZT1u7lrwCW+JUQquYbGHLzSDIsRfGh0sTjoRH/s4pD371OYAkkPMHVguBZE8iv5uv0j4IBwN/eLyoQb1jmBv/dEUU9ceXd/s8b5+8k7PYhYcDMA0oyFQcvrhLoWbqy7BrY25iWEY5xH6EsHFre5vp1su17Rdmxby3nt7mXz1NxBQdA3rM+kcZlfcK9sHTNVTI290Wy9IS+8/xalrtalo4PA6EwofyXy18XI9AddNs754KPf8/yAMbVc/2aClm1RF7/7vB0fx3eQmLE4WS01SsqsWnCsHCSbyjdIaIyKBFQhABtIIxLNYLFw+0nnA7DBU/M1e9gWBLh8dz1xHFo+Tn5edYaY1bYyhlGBKUKG4M8l
    MIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNVBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAzNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdSSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggjnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGqC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQoVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+OJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/EgsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRiigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+MRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9EaDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5UmAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1UdIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnuXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83Uh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cnoL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2okQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vAD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAImMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoWFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91oeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09ojm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUBZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCHex0SdDrx+tWUDqG8At2JHA==

Weitere Informationen finden Sie in der Dokumentation zur Schlüsselbestätigung von Android .

Geräteverschlüsselungsschlüssel

  • Privater Schlüssel

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

  • Public-Key-Zertifikat

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