Una firma digital es el resultado de un proceso criptográfico que se usa para verificar la autenticidad de un conjunto de datos. Un algoritmo de firma digital permite estas dos operaciones:
una operación de firmado, en la que se usa una clave para producir una firma sobre datos sin procesar
una operación de verificación, en la que puede validar la firma una parte que no tiene conocimiento de la clave que se usó en la operación anterior
Los propósitos principales de una firma digital son los siguientes:
- verificar la integridad de los datos firmados
- no repudio en caso de que el firmante señale que la firma no es auténtica
Las firmas digitales dependen de la criptografía asimétrica, también denominada criptografía de clave pública. Una clave asimétrica consta de un par de clave pública/privada. La clave privada se usa para crear una firma y la clave pública correspondiente se usa para verificar esa firma.
Ejemplo de casos prácticos para una firma digital
Las firmas digitales pueden usarse para validar compilaciones. Por ejemplo, si tienes un objeto binario al que se le aplicó una firma digital con una clave privada, puedes verificar su validez con la clave pública correspondiente. Si la firma del objeto binario no es válida, significa que el objeto está dañado o que alguien lo alteró.
Otro ejemplo es la validación del sujeto de un certificado emitido por una autoridad certificada (CA). Una CA emite un certificado para un sujeto según la titularidad de ese sujeto sobre el elemento privado de una clave pública/privada. El certificado contiene una firma digital creada con la clave privada del sujeto. El certificado también contiene el elemento público de la clave pública/privada. Cuando una entidad interactúa con el sujeto, usa su clave pública, junto con reglas adicionales que permiten verificar el certificado, a fin de validar la firma. Si la firma no corresponde a los datos en cuestión o si no se cumplen las reglas de verificación que exige el certificado, se considera que la firma no es válida.
Flujo de trabajo de las firmas digitales
A continuación, se describe el flujo que se sigue para crear y validar una firma. Los dos participantes de este flujo de trabajo son un firmante y un destinatario de los datos.
El firmante crea una clave asimétrica que respalda la firma digital.
Esta clave puede usarse para crear varias firmas.
El firmante realiza una operación con la clave privada sobre los datos para crear una firma digital.
El firmante le brinda los datos y la firma digital al destinatario.
El destinatario usa el elemento público del par de clave pública/privada del firmante para verificar la firma digital. Si la verificación no se realiza correctamente, significa que alguien alteró los datos.
Algoritmos de firma
Cloud Key Management Service admite algoritmos de curva elíptica (EC) y de RSA para la firma digital. Estos dos algoritmos estándar de la industria ofrecen opciones en cuanto al tamaño de la clave y el algoritmo de resumen.
La criptografía de curva elíptica usa funciones de hash de un solo sentido y la multiplicación de puntos para calcular puntos sobre una curva elíptica, y saca provecho de la intratabilidad de determinar el multiplicando de un punto dado su origen. La ventaja criptográfica del método de la curva elíptica yace en la dificultad de determinar el multiplicando. Cuanto mayor es la curva, más difícil resulta calcular el multiplicando. Una de las ventajas de este método es que una clave de CE tiene un tamaño menor que una clave de RSA de solidez criptográfica equivalente.
La criptografía de RSA se basa en la dificultad de factorizar un número entero grande en dos o más factores. Cuanto mayor es el tamaño de la clave, más difícil es factorizar los números enteros.
Capacidades de firma digital en Cloud KMS
Cloud KMS ofrece las siguientes capacidades en cuanto a la creación y validación de firmas digitales:
La capacidad de crear una clave asimétrica con el propósito de clave de
ASYMMETRIC_SIGN
. Las claves de Cloud KMS para el firmado asimétrico son compatibles tanto con los algoritmos de firma de curva elíptica como con los algoritmos de firma de RSA.La capacidad de crear una firma digital
La capacidad de recuperar la clave pública de una clave asimétrica
Cloud KMS no ofrece un método directo para validar una firma digital. En su lugar, debes validar una firma digital con los SDK y las herramientas de disponibilidad general, como OpenSSL. Estos SDK y herramientas requieren la clave pública que recuperas de Cloud KMS. Para obtener información sobre cómo usar los SDK y las herramientas abiertos, consulta cómo validar una firma de curva elíptica y cómo validar una firma RSA.