Crittografia lato server con chiavi fornite dal cliente (SSE-C)

SSE-C viene applicato agli oggetti. Le richieste di lettura o scrittura degli oggetti o dei loro metadati che utilizzano le chiavi gestite del cliente inviano le informazioni di crittografia richieste come intestazioni nelle richieste HTTP. La sintassi è la stessa dell'API S3 e le librerie compatibili con S3 che supportano SSE-C funzionano come previsto su IBM Cloud® Object Storage.

Qualsiasi richiesta che utilizza le intestazioni SSE-C deve essere inviata utilizzando SSL. I valori ETag nelle intestazioni della risposta non sono l'hash MD5 dell'oggetto, ma una stringa esadecimale a 32 bit generata casualmente.

Una richiesta PUT object tipica può utilizzare le seguenti intestazioni:

Intestazione Immettere Descrizione
x-amz-server-side-encryption-customer-algorithm Stringa Questa intestazione viene utilizzata per specificare l'algoritmo e la dimensione chiave da utilizzare con la chiave di crittografia archiviata nell'intestazione x-amz-server-side-encryption-customer-key. Questo valore deve essere impostato sulla stringa AES256.
x-amz-server-side-encryption-customer-key Stringa Questa intestazione viene utilizzata per trasportare la rappresentazione della stringa di byte con codifica base64 della chiave AES 256 utilizzata nel processo SSE (server-side encryption).
x-amz-server-side-encryption-customer-key-MD5 Stringa Questa intestazione viene utilizzata per trasportare il digest MD5 a 128 bit con codifica base64 della chiave di crittografia in base all'RFC 1321. L'archivio oggetti utilizza questo valore per convalidare che la chiave che viene passata in x-amz-server-side-encryption-customer-key non è stata danneggiata durante il trasporto e il processo di codifica. Il digest deve essere calcolato sulla chiave PRIMA che la chiave diventi con codifica base64.

Un comandocURL potrebbe essere simile al seguente:

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"