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"