Dieses Handbuch dokumentiert die neue AWS Wickr-Verwaltungskonsole, die am 13. März 2025 veröffentlicht wurde. Die Dokumentation zur klassischen Version der AWS Wickr-Verwaltungskonsole finden Sie im Classic Administration Guide.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verschlüsselung im Ruhezustand
AWS Wickr Data Retention Service verschlüsselt standardmäßig alle gespeicherten Nachrichten und Dateianhänge im Ruhezustand transparent. Sie müssen keine zusätzliche Konfiguration vornehmen, um sicherzustellen, dass Ihre Daten im Ruhezustand verschlüsselt sind. Der Data Retention Service wendet serverseitige Verschlüsselung für alle in Amazon S3 gespeicherten Kundendaten an.
Der Data Retention Service verschlüsselt gespeicherte Kundendaten mithilfe eines vom Kunden verwalteten KMS-Schlüssels (CMK). Wenn Sie den Data Retention Service über bereitstellen AWS Service Catalog, wird in Ihrem Konto automatisch ein symmetrischer CMK erstellt und als Standardverschlüsselungsschlüssel für alle gespeicherten Daten konfiguriert. Sie behalten die volle Kontrolle über diesen Schlüssel, einschließlich der Möglichkeit, die Nutzung zu überprüfen, den Schlüssel zu rotieren und den Zugriff zu widerrufen.
Verschlüsselung von Daten im Ruhezustand mithilfe von vom Kunden verwalteten KMS-Schlüsseln zur Datenspeicherung
Wie verwendet der Data Retention Service einen vom Kunden verwalteten KMS-Schlüssel
Wenn der Data Retention Service bereitgestellt wird, wird in Ihrem AWS Konto ein symmetrischer, vom Kunden verwalteter KMS-Schlüssel (RetentionKey) erstellt. Dieser Schlüssel wird verwendet, um die folgenden Ressourcen zu verschlüsseln:
-
Aufbewahrte Nachrichten — Alle Wickr-Nachrichten (Text, Reaktionen und andere), die vom Datenaufbewahrungs-Bot erfasst wurden, werden mit dem CMK verschlüsselt, bevor sie in Ihrem S3-Bucket gespeichert werden. Nachrichten werden innerhalb einer Nitro Enclave mithilfe des AWS Encryption SDK verschlüsselt und dann mit SSE-KMS demselben CMK auf Amazon S3 hochgeladen.
-
Beibehaltene Dateianhänge — Dateianhänge, die mit Nachrichten verknüpft sind, werden mit der Ende-zu-Ende-Verschlüsselung von Wickr innerhalb der Nitro Enclave entschlüsselt, mit dem CMK erneut verschlüsselt und in Amazon S3 mit gespeichert. SSE-KMS
-
Verschlüsselter Kontostatus — Die kryptografischen privaten Schlüssel und der Kontostatus des Datenaufbewahrungsbots werden mit dem CMK verschlüsselt und in DynamoDB gespeichert. Für die Entschlüsselung dieses Zustands ist eine Nitro Enclave-Bestätigung erforderlich.
-
S3-Bucket-Standardverschlüsselung — Der Aufbewahrungs-S3-Bucket ist so konfiguriert, dass der CMK als Standard-Verschlüsselungsschlüssel SSE-KMS verwendet wird. Eine Bucket-Richtlinie erzwingt, dass alle Objekte mit
aws:kmsserverseitiger Verschlüsselung hochgeladen werden müssen. -
Entschlüsselter Ausgabe-Bucket — Wenn Kunden die On-Demand-Entschlüsselung auslösen (über Step Functions State Machine), wird die entschlüsselte Ausgabe auch in einem separaten S3-Bucket gespeichert, der mit demselben CMK verschlüsselt ist.
Cross-account Rollenarchitektur
Der Data Retention Service arbeitet in einem Wickr-managed AWS Konto und greift über eine kontoübergreifende IAM-Rolle () auf Kundenressourcen zu. DRSCustomerCrossAccountRole-{networkId}-{region} Die Wickr DRS Enclave Role übernimmt diese kundenseitige Rolle und verwendet AWS STS eine externe ID (wickr-drs-{networkId}), um KMS- und S3-Operationen durchzuführen.
Nitro Enclave-Bescheinigung
Für direkte kms:Decrypt Anrufe (außerhalb von S3 SSE-KMS) ist eine Nitro Enclave-Bescheinigung erforderlich. Die KMS-Schlüsselrichtlinie legt fest, dass die kms:RecipientAttestation:PCR2 Bedingungenkms:RecipientAttestation:PCR0, und erfüllt sein müssenkms:RecipientAttestation:PCR1, sodass sichergestellt ist, dass die Entschlüsselung sensibler Daten (Kontostatus, Nachrichteninhalt) nur innerhalb der verifizierten Enklave erfolgen kann. Dadurch wird verhindert, dass Betreiber — einschließlich WICKR — Kundendaten außerhalb der Enklave entschlüsseln.
AWS Nitro Enclaves verarbeiten Nachrichten mithilfe Ihres KMS-Schlüssels, um die privaten Schlüssel des Datenaufbewahrungsmoduls zu entschlüsseln, den Wickr-encrypted Nachrichteninhalt zu entschlüsseln und ihn mit einem eindeutigen Datenschlüssel pro Nachricht erneut zu verschlüsseln, bevor sie in Ihrem S3-Bucket gespeichert werden.
Konfiguration von vom Kunden verwalteten KMS-Schlüsseln im Data Retention Service
Der Data Retention Service unterstützt symmetrische KMS-Schlüssel mit Schlüsselverwendung ENCRYPT_DECRYPT und SchlüsselspezifikationSYMMETRIC_DEFAULT. Die automatische Schlüsselrotation ist standardmäßig aktiviert, wenn der Schlüssel über Service Catalog erstellt wird.
Zusätzlich wird ein zweiter asymmetrischer KMS-Schlüssel (ECC_NIST_P384, KEY_AGREEMENT) für den Workflow zur Kennwortwiederherstellung erstellt. Dieser Schlüssel wird für die ECDH-Schlüsselvereinbarung verwendet und kann nicht für allgemeine Zwecke verwendet werden. encryption/decryption Dieser Schlüssel wird optional für Kunden verwendet, die von einer Docker-basierten Data Retention Bot-Architektur migrieren.
Anmerkung
Multi-region Schlüssel werden derzeit nicht unterstützt. Der KMS-Schlüssel muss sich in derselben Region befinden wie der S3-Bucket und die Data Retention Service-Bereitstellung.
Konfiguration von Berechtigungen zur Verwendung eines vom Kunden verwalteten KMS-Schlüssels
Die folgende wichtige Richtlinie wird bei der Bereitstellung über Service Catalog automatisch konfiguriert. Wenn Sie einen Schlüssel manuell konfigurieren müssen, verwenden Sie die folgende Richtlinie für geringste Rechte:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "YourExistingStatements", "Effect": "...", "...": "..." }, { "Sid": "EnclaveGenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{customer-account-id}:role/DRSCustomerCrossAccountRole-{networkId}-{region}" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringLike": { "kms:RecipientAttestation:PCR0": "*", "kms:RecipientAttestation:PCR1": "*", "kms:RecipientAttestation:PCR2": "*" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:wickr:network:id", "aws:wickr:app:id" ] } } }, { "Sid": "EnclaveDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{customer-account-id}:role/DRSCustomerCrossAccountRole-{networkId}-{region}" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "EnclaveDecryptWithAttestation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{customer-account-id}:role/DRSCustomerCrossAccountRole-{networkId}-{region}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringLike": { "kms:RecipientAttestation:PCR0": "*", "kms:RecipientAttestation:PCR1": "*", "kms:RecipientAttestation:PCR2": "*" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:wickr:app:id" } } }, { "Sid": "DRSDecryptionLambda", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{customer-account-id}:role/{DecryptionLambdaRoleName}" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:wickr:network:id" } } } ] }
Zweck jeder Aussage:
- IAM-Richtlinien aktivieren
-
Erlaubt Ihrem Account-Root, den Schlüssel zu verwalten. Dies ist die Standardanweisung eines Schlüsseladministrators.
- EnclaveGenerateDataKey
-
kms:GenerateDataKey— Wird von der Nitro Enclave aufgerufen, um Datenverschlüsselungsschlüssel für die Verschlüsselung von Nachrichteninhalten und Kontostatus vor dem Speichern in S3 zu generieren. Nur zulässig, wenn die Enklave ein gültiges Nitro Enclave-Bestätigungsdokument (PCR0/1/2Bedingungen) bereitstellt und ein Verschlüsselungskontextschlüssel von aws:wickr:network:id oder aws:wickr:app:id vorhanden ist. - EnclaveDescribeKey
-
kms:DescribeKey— Ermöglicht der Enklave, wichtige Metadaten (Schlüsselspezifikation, Verwendung, Status) zur Validierung während der Initialisierung abzurufen. - EnclaveDecryptWithAttestation
-
kms:Decrypt— Wird von der Nitro-Enklave aufgerufen, um den Kontostatus (private Schlüssel) zu entschlüsseln, der für die Entschlüsselung von Wickr-Nachrichten benötigt wird. Dies ist nur zulässig, wenn die Enklave ein gültiges Nitro-Enclave-Bestätigungsdokument (PCR0/1/2 Bedingungen) vorlegt und der Verschlüsselungskontextschlüssel aws:wickr:app:id vorhanden ist, wodurch sichergestellt wird, dass die Entschlüsselung nicht außerhalb der Enklave erfolgen kann. - DRSDecryptionLambda
-
kms:Decrypt— Wird vom On-Demand-Entschlüsselungs-Lambda aufgerufen, um gespeicherte Nachrichten zu entschlüsseln, wenn Sie die Entschlüsselungsstatusmaschine auslösen. Auf diese Rolle kann der Wickr-Dienst nicht zugreifen. Sie dient ausschließlich dazu, Ihre eigenen Nachrichten aus dem verschlüsselten S3-Bucket zu entschlüsseln.
Wenn eine Migration von einer vorherigen Datenaufbewahrungsinstallation erforderlich ist, müssen Sie Ihr Docker-bot Modulkennwort für den Dienst angeben, bevor die serverlose Datenspeicherung aktiviert werden kann. Weitere Informationen finden Sie unter Anleitung zur Passwortwiederherstellung. Einzelheiten zu den Richtlinien, die für Ihren Schlüssel zur Kennwortwiederherstellung erforderlich sind, finden Sie unterBenutzerdefiniertes KMS-Schlüssel-Setup für den Datenaufbewahrungsdienst.
Wenn Sie den KMS-Schlüssel manuell konfigurieren müssen, finden Sie Benutzerdefiniertes KMS-Schlüssel-Setup für den Datenaufbewahrungsdienst die Richtlinie mit den geringsten Zugriffsrechten für Ihren Schlüssel.
Erstellen einer neuen Datenaufbewahrungsbereitstellung mit einem vom Kunden verwalteten KMS-Schlüssel
Der Data Retention Service wird über bereitgestellt AWS Service Catalog. Wenn Sie das WickrDataRetentionProduct Produkt starten, führt die CloudFormation Vorlage automatisch Folgendes durch:
-
Erzeugt ein symmetrisches CMK mit Alias
wickr-drs-{networkId}-{region}-{suffix}-key -
Erzeugt ein asymmetrisches CMK (ECC P-384) für die Passwortwiederherstellung mit Alias
wickr-drs-{networkId}-{region}-{suffix}-password-recovery-key -
Erstellt einen S3-Bucket mit SSE-KMS Standardverschlüsselung unter Verwendung des symmetrischen CMK
-
Erstellt den
DRSCustomerCrossAccountRolemit den entsprechenden KMS-Berechtigungen -
Registriert den KMS-Schlüssel ARN und den S3-Bucket bei der Wickr Admin API über eine benutzerdefinierte Ressource Lambda
Der KMS-Schlüssel ARN wird auch über den Wickr Admin SDK-Endpunkt registriert:
PUT /networks/{networkId}/serverless-resources { "s3BucketName": "wickr-drs-{networkId}-{region}-{suffix}", "kmsKeyArn": "arn:aws:kms:{region}:{accountId}:key/{keyId}", "passwordRecoveryKmsKeyArn": "arn:aws:kms:{region}:{accountId}:key/{keyId}" }
Der kmsKeyArn Parameter muss ein gültiger KMS-Schlüssel-ARN sein. Die API validiert das ARN-Format, bevor es gespeichert wird.
Änderung der Verschlüsselungskonfiguration in einer vorhandenen Bereitstellung
Der Data Retention Service unterstützt derzeit keine Änderung des CMK nach der Bereitstellung. Der KMS-Schlüssel ist eng verknüpft mit:
-
Die Standardverschlüsselungskonfiguration des S3-Buckets
-
Der in DynamoDB gespeicherte verschlüsselte Kontostatus
-
Die wichtigste Richtlinie mit den Bescheinigungsbedingungen von Nitro Enclave
Um den Verschlüsselungsschlüssel zu ändern, müssen Sie:
-
Stellen Sie eine neue Data Retention Service-Instanz mit einem neuen KMS-Schlüssel bereit.
-
Zuvor gespeicherte Nachrichten, die mit dem alten Schlüssel verschlüsselt wurden, bleiben nur mit dem Originalschlüssel zugänglich.
Wichtig
Deaktivieren oder löschen Sie den ursprünglichen KMS-Schlüssel nicht, solange sich verschlüsselte Nachrichten im Aufbewahrungsbehälter befinden. Dadurch können diese Nachrichten dauerhaft nicht wiederhergestellt werden.
Einschränkung des Zugriffs auf den vom Kunden verwalteten KMS-Schlüssel
Nitro Enclave-Bescheinigung (primäre Zugriffskontrolle)
Der primäre Mechanismus für die Festlegung des Geltungsbereichs des Zugangs zum CMK ist die Nitro Enclave-Bescheinigung. Die wichtigste Richtlinie erfordert, und Bedingungen für kms:RecipientAttestation:PCR0 DirektanrufePCR1. PCR2 kms:Decrypt Dadurch wird Folgendes gewährleistet:
-
Nur die verifizierte Wickr DRS-Enklave-Binärdatei kann vertrauliche Daten entschlüsseln.
-
Selbst die kontoübergreifende Rolle kann keine Daten außerhalb der Enklave entschlüsseln.
-
CloudTrail Die Protokolle enthalten die tatsächlichen PCR-Werte für die Prüfung.
Verwirrter Abgeordneter, Schutz
Die kontoübergreifende Rolle verwendet eine externe ID (wickr-drs-{networkId}) im AssumeRole STS-Aufruf. Dies verhindert verwirrte Deputy-Angriffe, bei denen ein anderer Dienst versuchen könnte, die Wickr DRS-Enklave-Rolle für den Zugriff auf Ihre Ressourcen zu verwenden.
km: Zustand ViaService
Für SSE-KMS S3-Entschlüsselungsvorgänge wird die Bedingung verwendet. kms:ViaService Dadurch wird sichergestellt, dass die S3-mediated Entschlüsselung nur zulässig ist, wenn die Anfrage über den S3-Dienst eingeht.
Verschlüsselungskontext
S3 schließt SSE-KMS automatisch den S3-Objekt-ARN als Verschlüsselungskontext ein. Die Schlüsselrichtlinie verwendet diesen Verschlüsselungskontext, um die S3-Entschlüsselungsberechtigungen auf bestimmte Präfixe (z. B. das Präfix des Passwort-Tools) zu beschränken.
Überwachung der Interaktion des Data Retention Service mit AWS KMS
Sie können alle vom Data Retention Service getätigten KMS-API-Aufrufe mit überwachen CloudTrail. Verwenden Sie die CloudTrail Konsole oder den CloudTrail LookupEvents Vorgang, um nach CloudTrail Protokolleinträgen zu suchen.
Die folgenden CloudTrail Ereignisfelder können verwendet werden, um die KMS-Nutzung durch den Data Retention Service zu überprüfen:
| Feld | Erwarteter Wert |
|---|---|
eventName |
Encrypt, Decrypt,
GenerateDataKey |
userIdentity.arn |
arn:aws:sts::, drs-create-account oder drs-password-recovery |
requestParameters.keyId |
Ihr CMK-ARN (zum Beispielarn:aws:kms:) |
additionalEventData.recipient.attestationDocument |
Vorhanden für entschlüsselte Aufrufe mit Enklavenbeglaubigung (enthält PCR-Werte) |
requestParameters.encryptionContext |
SSE-KMSFür S3: {"aws:s3:arn":
"arn:aws:s3::: |
Wichtige Ereignisse, die überwacht werden müssen:
-
Verschlüsseln — Tritt auf, wenn die Enklave den Nachrichteninhalt oder den Kontostatus vor dem Speichern verschlüsselt. S3/DynamoDB
-
GenerateDataKey— Tritt auf, wenn S3 beim Hochladen von Objekten einen Datenschlüssel für die SSE-KMS Umschlagverschlüsselung generiert.
-
Entschlüsseln — Tritt auf, wenn die Enklave den Kontostatus (mit Bestätigung) entschlüsselt oder wenn S3 Objekte beim Lesen automatisch entschlüsselt.
-
DeriveSharedSecret— Tritt auf dem Kennwortwiederherstellungsschlüssel auf, wenn die Enklave während der Kennwortwiederherstellung die ECDH-Schlüsselvereinbarung einhält.
-
GetPublicKey— Tritt auf dem Kennwortwiederherstellungsschlüssel auf, wenn Ihr
collect.pySkript den öffentlichen Schlüssel für die lokale ECDH-Verschlüsselung abruft.
Darüber hinaus erstellt das Service Catalog-Produkt ein CloudWatch Dashboard (WickrDataRetentionService-), das Widgets für wichtige KMS-Erfolgsmetriken (Vorgänge verschlüsseln GenerateDataKey, entschlüsseln) und einen Alarm bei Entschlüsselungsfehlern enthält, der ausgelöst wird, wenn Entschlüsselungsfehler erkannt werden.{networkId}