Un protocolo criptográfico es un protocolo abstracto o concreto que realiza una función relacionada con la seguridad y aplica métodos criptográficos , a menudo como secuencias de primitivas criptográficas . Un protocolo describe cómo se deben utilizar los algoritmos e incluye detalles sobre las estructuras y representaciones de datos, momento en el que se puede utilizar para implementar múltiples versiones interoperables de un programa. [1]
Los protocolos criptográficos se utilizan ampliamente para el transporte seguro de datos a nivel de aplicación. Un protocolo criptográfico suele incorporar al menos algunos de estos aspectos:
Por ejemplo, Transport Layer Security (TLS) es un protocolo criptográfico que se utiliza para proteger las conexiones web ( HTTPS ). [2] Tiene un mecanismo de autenticación de entidades, basado en el sistema X.509 ; una fase de configuración de clave, donde se forma una clave de cifrado simétrica empleando criptografía de clave pública; y una función de transporte de datos a nivel de aplicación. Estos tres aspectos tienen interconexiones importantes. TLS estándar no tiene soporte de no repudio.
Existen otros tipos de protocolos criptográficos, e incluso el término en sí tiene varias lecturas; los protocolos de aplicaciones criptográficas a menudo utilizan uno o más métodos de acuerdo de claves subyacentes , que a veces también se denominan "protocolos criptográficos". Por ejemplo, TLS emplea lo que se conoce como intercambio de claves Diffie-Hellman , que, aunque es solo una parte de TLS en sí , Diffie-Hellman puede verse como un protocolo criptográfico completo en sí mismo para otras aplicaciones.
Una amplia variedad de protocolos criptográficos van más allá de los objetivos tradicionales de confidencialidad, integridad y autenticación de datos para asegurar también una variedad de otras características deseadas de la colaboración mediada por computadora. [3] Las firmas ciegas se pueden utilizar para dinero digital y credenciales digitales para demostrar que una persona posee un atributo o derecho sin revelar la identidad de esa persona o las identidades de las partes con las que esa persona realizó transacciones. El sellado de tiempo digital seguro se puede utilizar para demostrar que los datos (incluso si son confidenciales) existían en un momento determinado. El cálculo multipartidario seguro se puede utilizar para calcular respuestas (como determinar la oferta más alta en una subasta) en función de datos confidenciales (como ofertas privadas), de modo que cuando el protocolo esté completo, los participantes solo conozcan su propia entrada y la respuesta. Los sistemas de votación auditables de extremo a extremo proporcionan conjuntos de propiedades deseables de privacidad y auditabilidad para realizar votaciones electrónicas . Las firmas innegables incluyen protocolos interactivos que permiten al firmante demostrar una falsificación y limitar quién puede verificar la firma. El cifrado denegable mejora el cifrado estándar al hacer imposible que un atacante pruebe matemáticamente la existencia de un mensaje de texto simple. Las mezclas digitales crean comunicaciones difíciles de rastrear.
En ocasiones, los protocolos criptográficos pueden verificarse formalmente a un nivel abstracto. Cuando esto se hace, es necesario formalizar el entorno en el que opera el protocolo para identificar amenazas. Esto se hace con frecuencia mediante el modelo Dolev-Yao .
Lógicas, conceptos y cálculos utilizados para el razonamiento formal de protocolos de seguridad:
Proyectos de investigación y herramientas utilizadas para la verificación formal de protocolos de seguridad:
Para verificar formalmente un protocolo, se suele abstraer y modelar utilizando la notación Alice & Bob . Un ejemplo sencillo es el siguiente:
Esto indica que Alice desea enviar un mensaje a Bob que consiste en un mensaje cifrado bajo una clave compartida .
{{citation}}
: CS1 maint: multiple names: authors list (link){{cite book}}
: CS1 maint: numeric names: authors list (link)