Server-Side Encryption with Customer-Provided Keys (SSE-C)
O SSE-C é cumprido em objetos. Solicitações para ler ou gravar objetos ou seus metadados que usam chaves gerenciadas pelo cliente enviam as informações de criptografia necessárias como cabeçalhos nas solicitações de HTTP. A sintaxe é a mesma que a API S3 e as bibliotecas compatíveis com S3 que suportam o trabalho SSE-C conforme esperado no IBM Cloud® Object Storage.
Qualquer solicitação que use cabeçalhos SSE-C deve ser enviada usando SSL. Os valores ETag em cabeçalhos de resposta não são o hash MD5 do objeto, mas uma sequência hexadecimal de 32 bytes gerada aleatoriamente.
Uma solicitação típica de objeto PUT pode usar os seguintes cabeçalhos:
| Cabeçalho | Tipo | Descrição |
|---|---|---|
x-amz-server-side-encryption-customer-algorithm |
Sequência | Esse cabeçalho é usado para especificar o algoritmo e o tamanho da chave a serem usados com a chave de criptografia armazenada no cabeçalho x-amz-server-side-encryption-customer-key. Esse valor deve ser configurado como a sequência
AES256. |
x-amz-server-side-encryption-customer-key |
Sequência | Esse cabeçalho é usado para transportar a representação em sequência de bytes codificados em base 64 da chave AES 256 usada no processo de criptografia do lado do servidor. |
x-amz-server-side-encryption-customer-key-MD5 |
Sequência | Esse cabeçalho é usado para transportar a compilação MD5 de 128 bits codificada em base64 da chave de criptografia de acordo com o RFC 1321. O armazenamento de objeto usa esse valor para validar que a chave que passa no x-amz-server-side-encryption-customer-key não foi corrompida durante o processo de transporte e codificação. A compilação deve ser calculada na chave ANTES de a chave ser codificada em base 64. |
Um comando cURL pode ser semelhante ao seguinte:
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"