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"