SSE-C
Funciones
Con SSE-C utilizado, OBS utiliza las claves y los valores de MD5 proporcionados por los clientes para la encriptación del lado del servidor.
Encabezados recién agregados
OBS no almacena sus claves de encriptación. Si los perdiste, perdiste los objetos. Se añaden seis encabezados para soportar SSE-C.
En la siguiente tabla se enumeran los encabezados que se requieren cuando se utiliza SSE-C para cifrar objetos.
Elemento |
Descripción |
---|---|
x-obs-server-side-encryption-customer-algorithm |
Indica el algoritmo de encriptación del objeto cuando se utiliza SSE-C. Ejemplo: x-obs-server-side-encryption-customer-algorithm: AES256 |
x-obs-server-side-encryption-customer-key |
Indica la clave para cifrar objetos cuando se utiliza SSE-C. Su valor es una clave de 256 bits codificada en Base64. Ejemplo: x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= |
x-obs-server-side-encryption-customer-key-MD5 |
Indica el valor MD5 de la clave para cifrar objetos cuando se utiliza SSE-C. Su valor es un hash MD5 codificado en Base64. El valor MD5 se utiliza para comprobar si se produce algún error durante la transmisión de la clave. Ejemplo: x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== |
Las API donde se aplican los encabezados recién agregados:
- Carga de objetos - PUT
- Carga de objetos - POST
- Copia de objetos (los encabezados recién agregados se aplican a las copias de objetos)
- Consulta de metadatos de objetos
- Descarga de objetos
- Inicio de una carga multiparte
- Carga de piezas
- Copia de piezas: Los encabezados recién agregados se aplican a las piezas de destino.
En la siguiente tabla se enumeran tres encabezados que se agregan para las operaciones de CopyObject y UploadPart-Copy para admitir objetos de origen cifrados mediante SSE-C.
Elemento |
Descripción |
---|---|
x-obs-copy-source-server-side-encryption-customer-algorithm |
Indica el algoritmo para descifrar el objeto de origen cuando se utiliza SSE-C. Ejemplo: x-obs-server-side-encryption-customer-algorithm: AES256 |
x-obs-copy-source-server-side-encryption-customer-key |
Indica la clave para descifrar el objeto de origen cuando se utiliza SSE-C. Ejemplo: x-obs-copy-source-server-side-encryption-customer-algorithm: K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= |
x-obs-copy-source-server-side-encryption-customer-key-MD5 |
Indica el valor MD5 de la clave para descifrar el objeto de origen cuando se utiliza SSE-C. El valor MD5 se utiliza para comprobar si se produce algún error durante la transmisión de la clave. Ejemplo: x-obs-copy-source-server-side-encryption-customer-key:4XvB3tbNTN+tIEVa0/fGaQ== |
Ejemplo de solicitud: Carga de un objeto cifrado con SSE-C
1 2 3 4 5 6 7 8 9 10 11 12 |
PUT /encryp2 HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: Wed, 06 Jun 2018 09:12:00 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mZSfafoM+llApk0HGOThlqeccu0= x-obs-server-side-encryption-customer-algorithm:AES256 x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== Content-Length: 5242 [5242 Byte object contents] |
Ejemplo de respuesta: Carga de un objeto cifrado con SSE-C
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D45E0017055619BD02B8 ETag: "0f91242c7f3d86f98ae572a686d0696e" x-obs-server-side-encryption-customer-algorithm: AES256 x-obs-server-side-encryption-customer-key-MD5: 4XvB3tbNTN+tIEVa0/fGaQ== x-obs-id-2: 32AAAUgAIAABAAAQAAEAABAAAQAAEAABCSSAJ8bTNJV0X+Ote1PtuWecqyMh6zBJ Date: Wed, 06 Jun 2018 09:12:00 GMT Content-Length: 0 |
Ejemplo de solicitud: Copiar un objeto cifrado SSE-C y guardarlo como un objeto cifrado KMS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
PUT /kmsobject HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: Wed, 06 Jun 2018 09:20:10 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mZSfafoM+llApk0HGOThlqeccu0= x-obs-copy-source-server-side-encryption-customer-algorithm:AES256 x-obs-copy-source-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= x-obs-copy-source-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== x-obs-server-side-encryption: kms x-obs-copy-source: /examplebucket/encryp2 Content-Length: 5242 [5242 Byte object contents] |
Ejemplo de respuesta: Copiar un objeto cifrado SSE-C y guardarlo como un objeto cifrado KMS
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BB7800000164848E0FC70528B9D92C41 ETag: "1072e1b96b47d7ec859710068aa70d57" x-obs-server-side-encryption: kms x-obs-server-side-encryption-kms-key-id: region:783fc6652cf246c096ea836694f71855:key/522d6070-5ad3-4765-9737-9312ddc72cdb x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTkkRzQXs9ECzZcavVRncBqqYNkoAEsr Date: Wed, 06 Jun 2018 09:20:10 GMT Content-Length: 0 |
Ejemplo de solicitud: Carga de un objeto cifrado SSE-C mediante una URL firmada
PUT /encrypobject?AccessKeyId=H4IPJX0TQTHTHEBQQCEC&Expires=1532688887&Signature=EQmDuOhaLUrzrzRNZxwS72CXeXM%3D HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* x-obs-server-side-encryption-customer-algorithm: AES256 x-obs-server-side-encryption-customer-key:K7QkYpBkM5+hca27fsNkUnNVaobncnLht/rCB2o/9Cw= x-obs-server-side-encryption-customer-key-MD5:4XvB3tbNTN+tIEVa0/fGaQ== Content-Length: 5242 Expect: 100-continue [5242 Byte object contents]
Ejemplo de respuesta: Carga de un objeto cifrado SSE-C mediante una URL firmada
1 2 3 4 5 6 7 8 9 |
HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: OBS x-obs-request-id: 804F00000164DB5E5B7FB908D3BA8E00 ETag: "1072e1b96b47d7ec859710068aa70d57" x-obs-server-side-encryption-customer-algorithm: AES256 x-obs-server-side-encryption-customer-key-MD5: 4XvB3tbNTN+tIEVa0/fGaQ== x-obs-id-2: 32AAAUJAIAABAAAQAAEAABAAAQAAEAABCTlpxILjhVK/heKOWIP8Wn2IWmQoerfw Content-Length: 0 |