IBM Cloud Docs
Serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)

Serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln (SSE-C)

SSE-C (Server-Side Encryption with Customer-Provided Keys; serverseitige Verschlüsselung mit vom Kunden bereitgestellten Schlüsseln) wird für Objekte umgesetzt. Anforderungen zum Ausführen von Lese- oder Schreiboperationen für Objekte oder deren Metadaten mithilfe von vom Kunden verwalteten Schlüsseln senden die erforderlichen Verschlüsselungsinformationen als Header in den HTTP-Anforderungen. Die Syntax ist identisch mit der Syntax der S3-API und S3-kompatible Bibliotheken, die SSE-C unterstützen, können für IBM Cloud® Object Storage wie erwartet ausgeführt werden.

Jede Anforderung, die SSE-C-Header verwendet, muss mit SSL gesendet werden. Beachten Sie hierbei, dass ETag-Werte in Antwortheadern nicht den MD5-Hashwert des Objekts darstellen, sondern eine nach dem Zufallsprinzip generierte 32-Byte-Hexadezimalzeichenfolge.

Eine typische PUT object -Anforderung kann die folgenden Header verwenden:

Überschrift Typ Beschreibung
x-amz-server-side-encryption-customer-algorithm Zeichenfolge Dieser Header wird verwendet, um den Algorithmus und die Schlüsselgröße anzugeben, die mit dem Verschlüsselungsschlüssel verwendet werden sollen, der im Header x-amz-server-side-encryption-customer-key gespeichert wird. Dieser Wert muss auf die Zeichenfolge AES256 gesetzt werden.
x-amz-server-side-encryption-customer-key Zeichenfolge Dieser Header wird verwendet, um die Base64-codierte Bytefolgedarstellung des AES-256-Schlüssels zu transportieren, die im serverseitigen Verschlüsselungsprozess verwendet wird.
x-amz-server-side-encryption-customer-key-MD5 Zeichenfolge Dieser Header wird verwendet, um den Base64-codierten 128-Bit-MD5-Digest-Wert des Verschlüsselungsschlüssels gemäß RFC 1321 zu transportieren. Der Objektspeicher verwendet diesen Wert, um zu validieren, dass der in x-amz-server-side-encryption-customer-key übergebene Schlüssel während des Transports und des Codierungsprozesses nicht beschädigt wurde. Der Digest-Wert muss für den Schlüssel berechnet werden, BEVOR der Schlüssel im Base64-Format codiert wird.

Ein cURL -Befehl könnte wie folgt aussehen:

curl -v -T $FILE https://$ENDPOINT/$BUCKET  \
   -H "Authorization: bearer $TOKEN" \
   -H "Content-MD5: $MD5_OBJECT_HASH" \
   -H "x-amz-server-side-encryption-customer-algorithm: AES256" \
   -H "x-amz-server-side-encryption-customer-key:$ENCRYPTION_KEY" \
   -H "x-amz-server-side-encryption-customer-key-MD5:$MD5_KEY_HASH"