Cifrado de sobres
Las operaciones criptográficas son solo API. Cifrar, descifrar, generar clave de datos, firmar y verificar no tienen controles de consola. La consola crea las teclas, las inspecciona y las desactiva; las operaciones que usan una tecla se ejecutan desde su aplicación, junto al texto plano sobre el que actúan.
POST /v1/keys/{key_id}/encrypt envía el texto sin cifrar a KMS y obtiene el texto cifrado. Eso está bien para algo pequeño y raro: un valor de configuración, un token de API. Es la forma equivocada para cualquier otra cosa, porque cada byte cruza la red dos veces y cada operación cuesta un viaje de ida y vuelta.
La alternativa es una clave de datos: KMS acuña una clave nueva al azar, le entrega dos copias de la misma y nunca la almacena.
- API
- CLI
- Go
plaintext, luego tira plaintext y almacena ciphertext junto a los datos que protege. Para leer los datos de nuevo, envíe ciphertext a POST /v1/keys/{key_id}/decrypt y tendrá la clave de datos de nuevo.
Los datos masivos nunca salen de su proceso, una llamada KMS cubre un lote completo y la clave KMS sigue siendo una clave de cifrado de claves, lo único que envuelve son otras claves.
number_of_bytes acepta 16, 32 o 64 y nada más — 16 para AES-128, 32 para AES-256 (el valor por defecto), 64 para HMAC-SHA512. Cualquier otro valor falla.
Cuando se agota el cifrado directo
Una clave simétrica no tiene un techo algorítmico comparable, pero el cuerpo de la solicitud aún tiene que caber en una llamada HTTP y aún pagas un viaje de ida y vuelta por operación. Trate el cifrado directo como una conveniencia para valores pequeños e infrecuentes, y busque una clave de datos para todo lo demás.Contexto de cifrado
aad es opcional y son datos adicionales autenticados. Está enlazado a la etiqueta AES-GCM, por lo que un texto cifrado solo se abrirá si se presenta el mismo contexto de nuevo, útil para fijar un blob a la cosa a la que pertenece, por lo que un texto cifrado robado no se puede reproducir contra un registro diferente.

