Este texto será uno de los capítulos reescritos del manual sobre protección de la información del Departamento de Ingeniería de Radio y Sistemas de Control, así como, a partir de este código de capacitación, el Departamento de Protección de Información del Instituto de Física y Tecnología de Moscú. El tutorial completo está disponible en github (ver también versiones preliminares ). Tengo la intención de subir nuevas piezas "grandes" en el centro, en primer lugar, para recopilar comentarios y observaciones útiles, y en segundo lugar, para dar a la comunidad más material general sobre temas útiles e interesantes.Conceptos basicos
Para el cumplimiento exitoso de cualquier objetivo de protección de la información, es necesario participar en el proceso de protección de varias entidades que, de acuerdo con ciertas reglas, realizarán acciones técnicas u organizativas, operaciones criptográficas, interactuarán entre sí, por ejemplo, transmitiendo mensajes o verificando las identidades de cada uno.
La formalización de tales acciones se realiza a través de una descripción de protocolo.
Protocolo : una descripción de un algoritmo distribuido en el proceso en el que dos o más participantes realizan secuencialmente ciertas acciones e intercambian mensajes (en adelante, en esta sección, las definiciones se dan en base a
[Cheremushkin: 2009] ).
Por un participante (sujeto, parte) del protocolo se entiende no solo personas, sino también aplicaciones, grupos de personas u organizaciones enteras. Formalmente, los participantes se consideran solo aquellos que juegan un papel activo dentro del protocolo. Aunque al crear y describir los protocolos, tampoco debe olvidarse de los lados pasivos. Por ejemplo, un criptoanalista pasivo no participa formalmente en los protocolos, pero muchos protocolos se desarrollan teniendo en cuenta la protección de dichos "no participantes".
El protocolo consiste en
ciclos (
ronda de inglés) o
pases (
pase de inglés). Un ciclo es un intervalo de tiempo de actividad de un solo participante. Con la excepción del primer ciclo de protocolo, generalmente comienza con la recepción de un mensaje y termina con el envío.
Un ciclo (o pasaje) consta de
pasos (acciones,
paso en inglés
, acción ): acciones completadas específicas realizadas por un participante del protocolo. Por ejemplo:
- generación de un nuevo valor (aleatorio);
- cálculo de valores de función;
- verificación de certificados, claves, firmas, etc.
- Recibir y enviar mensajes.
Una implementación pasada o incluso teóricamente descrita del protocolo para participantes específicos se llama
sesión . Cada participante en la sesión realiza uno o más
roles . En otra sesión de protocolo, los participantes pueden cambiar de roles y realizar funciones completamente diferentes.
Podemos decir que el protocolo describe prescriptivamente las reglas para el comportamiento de cada rol en el protocolo. Una sesión es una descripción descriptiva (posiblemente teóricamente) de una implementación de protocolo que tuvo lugar en el pasado.
Un ejemplo de una descripción de protocolo.
- Un participante con el rol Remitente debe enviar un mensaje a un participante con el rol Destinatario.
- Un participante con el rol Destinatario debe recibir un mensaje de un participante con el rol Remitente.
Un ejemplo de una descripción de sesión de protocolo.
- El 1 de abril, a las 13:00, Alice le envió un mensaje a Bob.
- El 1 de abril, a las 13:05, Bob recibió un mensaje de Alice.
Un protocolo protegido o
un protocolo de seguridad se denominará protocolo que proporciona al menos una función de protección
[ISO: 7498-2: 1989] :
- autenticación de partes y fuente de datos,
- control de acceso
- confidencialidad
- integridad
- incapacidad para rechazar el hecho de enviar o recibir.
Si un protocolo seguro está diseñado para realizar las funciones de seguridad de un sistema criptográfico, o si se utilizan algoritmos criptográficos durante su ejecución, dicho protocolo se denominará
criptográfico .
Grabación de protocolo
Para registrar protocolos relacionados con la implementación de funciones de protección de la información, no use expresiones como "participante con el rol de" Remitente ", sino reemplácelas con anotaciones cortas como" remitente "o use
ejemplos generalmente aceptados: Alice, Bob, Clara, Eva, etc. e) Se utilizan los siguientes acuerdos.
- Alice, Bob (del inglés A, B ) - remitente y receptor.
- Karl, Clara, Charlie (del inglés. C ) - un tercero igual.
- Eve (del inglés espía ) es una criptoanalista pasiva.
- Mellory (del inglés malicioso ) es un criptoanalista activo.
- Trent (del inglés trust ) es una parte confiable.
No existe un formato de grabación de protocolo universalmente aceptado; pueden diferir tanto en apariencia como en la integridad de la descripción. Por ejemplo, aquí está el formato de grabación de protocolo Diffie-Hellman más completo.
- Etapa preliminar
- Todas las partes han elegido común g y p .
- Pase 1.
- Alice genera al azar un .
- Alice calcula A = g a b m o d p .
- Alice envía a Bob Un .
- Pase 2.
- Bob toma de Alice Un .
- Bob genera al azar b .
- Bob está calculando B = g b b m o d p .
- Bob envía a Alice B .
- Bob está calculando s = A b b m o d p .
- Pase 2.
- Alice se quita a Bob B .
- Alice calcula s = B a b m o d p .
- El resultado del protocolo.
- Las partes calcularon una clave de sesión compartida s .
Ahora compare con un registro corto del mismo protocolo.
- A a B : A = g a b m o d p
- B a A : B = g b b m o d p
En un breve registro, inicialización y requisitos previos, se omiten los cálculos de datos no transmitidos (en este ejemplo, una clave de sesión común)
s ), así como cualquier cheque.
En este tutorial nos quedaremos con un formato de grabación intermedio.
- Alice genera un .
Alice \ to \ left \ {A = g ^ a \ bmod p \ right \} \ a Bob . - Bob genera b .
Bob está calculando s=Ab bmodp .
Bob \ to \ left \ {B = g ^ b \ mod p \ right \} \ para Alice . - Alice calcula s=Ba bmodp .
También acordamos las reglas para registrar el caso cuando un criptoanalista activo (Mellory) se hace pasar por un usuario legal.
\ begin {array} {llllc} (1) & A & \ to M \ left (B \ right) &: & A = g ^ a \ bmod p, \\ (2) & M \ left (A \ right ) & \ to B &: & A ^ * = g ^ {a ^ *} \ bmod p, \\ (3) & B & \ to M \ left (A \ right) &: & B = g ^ b \ bmod p, \\ (4) & M \ left (B \ right) & \ to A &: & B ^ * = g ^ {b ^ *} \ bmod p. \\ \ end {array}
O asignando una columna separada para cada participante.
\ begin {array} {lllclllc} (1) & A & \ to & M \ left (B \ right) & {} & {} &: & A = g ^ a \ bmod p, \\ (2) & {} & {} & M \ left (A \ right) & \ to & B &: & A ^ * = g ^ {a ^ *} \ bmod p, \\ (3) & {} & {} & M \ left (A \ right) & \ gets & B &: & B = g ^ b \ bmod p, \\ (4) & A & \ gets & M \ left (B \ right) & {} & {} & : & B ^ * = g ^ {b ^ *} \ bmod p. \\ \ end {array}
Para reducir la descripción y simplificar la comparación de diferentes protocolos, use las siguientes convenciones para la designación de los datos transmitidos.
- A , B , C etc. - identificadores de los participantes del protocolo: Alice, Bob y Clara, respectivamente.
- M (del mensaje en inglés): un mensaje en su forma original, texto sin formato, independientemente de la codificación. Es decir, bajo M el texto fuente puede entenderse como texto o, por ejemplo, sonido, o ya un cierto número o una matriz de bits que corresponde únicamente a este mensaje.
- K (de la clave inglesa) - alguna clave. Sin más elaboración, generalmente denota una clave de sesión secreta.
- KA - una clave secreta compartida entre Alice y Trent (para criptosistemas simétricos).
- KA - Clave pública de Alice (para criptosistemas asimétricos).
- EK left( puntos right) (del cifrado en inglés): datos cifrados en la clave K .
- EA left( puntos right) , EB left( puntos right) - datos encriptados en las claves de Alice y Bob, respectivamente.
- L (de la vida en inglés): la vida útil de, por ejemplo, un certificado.
- SK left( puntos right) (del signo en inglés) - datos y la firma digital correspondiente en la clave pública K .
- TA , TB (de la marca de tiempo en inglés): marcas de tiempo de los respectivos participantes.
- RA , RB (del inglés al azar ): números aleatorios seleccionados por los respectivos participantes.
Ejemplos de uso de notación.
- E K B ( M ) o solo E B ( M ) - mensaje M cifrado con la clave de Bob K B .
- S A ( R A ) - número aleatorio R A generado por Alice y firmado por ella. Es decir, el mensaje contendrá un número aleatorio (en texto plano) y una firma electrónica de este número.
- S T ( A , K A , T T , L ) - El identificador y la clave de Alice, la marca de tiempo y la vida útil de este registro, todos juntos firmados por la clave pública del centro de confianza (Trent). De hecho, ese es el certificado clave de Alice.
Propiedades de seguridad de protocolo
Un sistema seguro y, en consecuencia, un protocolo seguro puede realizar varias funciones de seguridad. Muchas de estas funciones u objetivos (objetivos en inglés) pueden formularse como resistencia a una clase particular de ataques. Se considera que la más completa y relevante es la lista e interpretación de estos objetivos en el documento del proyecto AVISPA (
Validación Automatizada en Inglés
de Aplicaciones y Protocolos de Seguridad de Internet )
[AVISPA] , que resume las descripciones de varios documentos de IETF (
Internet Engineering Task Force ). Se considera que estos objetivos están
formalizados , es decir, que para los protocolos individuales existe la oportunidad de probar o refutar formalmente el logro de estos objetivos.
- Autenticación (unidireccional).
Ingles Autenticación (unicast) .
- (G1) Autenticación del sujeto.
Ingles Autenticación de entidad (Autenticación de entidad par) .
Una garantía para un lado del protocolo a través de la presentación de evidencia y / o credenciales de la segunda parte que participa en el protocolo y que la segunda parte realmente participó en la sesión actual del protocolo. Por lo general, se realiza mediante la presentación de dichos datos que solo podrían ser generados por el otro lado. La autenticación del sujeto implica que los datos recibidos pueden rastrearse sin ambigüedades hasta el sujeto del protocolo, lo que implica la autenticación de la fuente de datos. - (G2) Autenticación de mensaje.
Ingles Autenticación de mensajes (autenticación de origen de datos) .
Una garantía de que el mensaje recibido o parte de los datos fue creado por un determinado sujeto en algún momento (generalmente no especificado) en el pasado, y que estos datos no fueron dañados ni manipulados. Pero sin proporcionar singularidad u oportunidad. La autenticación de mensajes implica su integridad. - (G3) Repita la protección.
Ingles Protección de repetición
Protección contra la situación en la que alguna parte grabará algún mensaje y lo reproducirá más tarde (posiblemente en otra sesión de protocolo), lo que conducirá a una interpretación incorrecta de este lado como autenticado.
- Autenticación al enviar a muchas direcciones o al conectarse a un servicio de suscripción / notificación.
Ingles Autenticación en multidifusión o mediante un servicio de suscripción / notificación .
- (G4) Autenticación explícita del destinatario.
Ingles Autenticación de destino implícita .
El protocolo debe garantizar que el mensaje enviado sea legible solo para destinatarios legítimos. Es decir, solo los participantes autorizados legalmente tendrán acceso a información relevante, un mensaje de multidifusión o una sesión de comunicación grupal. Incluye grupos de distribución con membresías muy dinámicas. - (G5) Autenticación de fuente.
Ingles Autenticación de fuente .
Los destinatarios legales podrán autenticar la fuente y el contenido de la información o la comunicación grupal. Incluye casos en que los miembros del grupo no confían entre sí.
- (G6) Autorización (por un tercero de confianza).
Ingles Autorización (por un tercero de confianza) .
La garantía de la capacidad de autorizar (en términos del protocolo) a un sujeto para acceder al recurso de otro utilizando un tercero de confianza. Implica que el propietario del recurso puede no tener sus propias listas de acceso (Ing. Lista de control de acceso, ACL ) y depende de las del lado de confianza. - Generación de clave conjunta.
Ingles Propiedades clave del acuerdo .
- (G7) Autenticación de clave.
Ingles Autenticación de clave .
Una garantía para una de las entidades de que solo los usuarios legales pueden acceder a una clave secreta específica. - (G8) Prueba de propiedad de la clave.
Ingles Confirmación clave (prueba clave de posesión) .
Una garantía para una de las entidades de que la otra entidad posee una clave secreta particular (o la información necesaria para obtener dicha clave). - (G9) Perfecto secreto directo.
Ingles Perfect Forward Secrecy (PFS) .
Garantizar que el compromiso futuro de las claves maestras no comprometa las claves de sesión de las sesiones de protocolo anteriores. - (G10) Generación de nuevas claves.
Ingles Derivación clave fresca .
Garantizado para crear nuevas claves de sesión para cada sesión de protocolo. - (G11) Una oportunidad segura para acordar la configuración de seguridad.
Ingles Negociación de capacidades seguras (resistencia contra degradación y ataques de negociación) .
La garantía no es solo que las partes legales tengan la oportunidad de acordar los parámetros de seguridad, sino también que la parte ilegal no intervino en el protocolo y no condujo a la selección de sus parámetros de seguridad preferidos (posiblemente los más débiles).
- (G12) Confidencialidad.
Ingles Confidencialidad (secreto) .
La garantía de que un elemento de datos específico (parte del mensaje que se transmite) sigue siendo desconocido para el atacante. Para este propósito, no se considera el secreto de la clave de sesión, la autenticación de la clave o la confiabilidad de las claves maestras a largo plazo. - Anonimato
Ingles Anonimato
- (G13) Protección de los identificadores de la escucha (no conectividad).
Ingles Protección de identidad contra espías .
La garantía de que el atacante (el espía) no puede conectar los mensajes del sujeto con su identidad real. - (G14) Protección de identificadores de otras partes.
Ingles Protección de identidad contra pares .
Una garantía de que el participante en la correspondencia no puede conectar los mensajes del sujeto con una persona real, sino solo con un cierto seudónimo.
- (G15) Protección limitada contra ataques de denegación de servicio.
Ingles Resistencia (limitada) de denegación de servicio (DoS) .
Asegurarse de que el protocolo sigue ciertos principios que reducen la probabilidad (complicando el uso) de ciertas clases de ataques de denegación de servicio. - (G16) Invarianza del remitente.
Ingles Invariancia del remitente .
Una garantía para una de las partes de que la fuente del mensaje sigue siendo la misma que la que inició la comunicación, aunque la identificación real de la fuente no es importante para el destinatario. - Irrefutabilidad.
Ingles No repudio .
- (G17) Responsabilidad.
Ingles Responsabilidad
Capacidad garantizada para rastrear las acciones de los sujetos en los objetos. - (G18) Prueba de origen.
Ingles Prueba de origen .
Garantía de evidencia irrefutable de la fuente del mensaje. - (G19) Prueba de entrega.
Ingles Prueba de entrega .
Garantía de evidencia irrefutable del hecho de recibir el mensaje.
- (G20) Propiedad temporal protegida.
Ingles Propiedad temporal de seguridad .
La garantía de la capacidad de demostrar que el hecho de que el sistema está en uno de los estados significa que una vez en el pasado el sistema estuvo al menos una vez en otro estado. Por ejemplo, que obtener un acceso de sujeto a un recurso significa que una vez en el pasado el sujeto pagó con éxito por este acceso.
En la tabla se dan ejemplos de propiedades de seguridad implementadas por varios protocolos.

Clasificación de protocolo
No existe una clasificación universalmente aceptada de protocolos de seguridad. Sin embargo, se puede distinguir un conjunto de características
objetivas e inequívocas que clasifican los protocolos.
- Clasificación por el número de participantes del protocolo:
- bilateral
- tripartito, etc.
- multilateral.
- Clasificación por el número de mensajes transmitidos:
- interactivo (con la presencia de mensajes mutuos);
- no interactivo (con mensajes únicos), a menudo llamados esquemas . La definición no está completamente completa. Cualquier esquema implica al menos dos etapas. En la primera etapa preliminar, el centro de confianza distribuye cierta información entre los participantes pares. En la segunda etapa (sesiones de protocolo específicas), los participantes intercambian esta información, recibiendo el secreto original o una nueva clave de sesión secreta. Además, el intercambio de información puede ir entre más de dos participantes. Sin embargo, después del intercambio mutuo de información, no se requieren pases adicionales para lograr los objetivos del esquema.
- Clasificación por número de pases (rondas):
- Clasificación por sistemas criptográficos utilizados:
- basado solo en criptosistemas simétricos;
- basado en la inclusión de criptosistemas asimétricos.
- Clasificación por propiedades de protocolo protegido:
- (G1) proporciona o no autenticación del primer, segundo lado del protocolo, etc.
- (G2) proporciona o no autenticación de mensaje;
- (G3) proporciona o no protección contra la repetición;
- etc.
- Clasificación por tipo de participantes:
- De igual a igual, cuando todos los participantes pueden realizar cualquier función dentro del protocolo;
- con un intermediario de confianza cuando un tercero de confianza siempre está involucrado en el protocolo;
- con un árbitro de confianza, cuando un tercero de confianza puede participar en el protocolo, si los demás participantes no lo han aceptado.
También se puede introducir una clasificación menos objetiva y sin ambigüedades basada en una evaluación subjetiva de los protocolos.
- Clasificación según el propósito del protocolo:
- ... asegurando la integridad
- ... firmado digitalmente
- ... identificación
- ... privacidad
- ... distribución de claves,
- ... etc.
- Clasificación de la "integridad" de las funciones realizadas:
- primitivo, se utilizan como un componente básico en la construcción de protocolos de aplicación;
- intermedio
- aplicado, diseñado para resolver problemas prácticos.
La clasificación por propósito también puede reformularse como una clasificación por las propiedades protegidas del protocolo para el que se desarrolló. En este caso, será necesario resaltar las "propiedades básicas" (por ejemplo, G10 - la formación de nuevas claves), y la mayoría del resto se atribuirá a otras adicionales (por ejemplo, G7 - autenticación de clave, y G8 - confirmación de propiedad de clave). Determinar cuáles de las propiedades son "básicas" y cuáles son "adicionales" creará una ambigüedad en la clasificación de acuerdo con el propósito del protocolo. Si todas las propiedades del protocolo se denominan "básicas", dicha clasificación se volverá demasiado detallada.
La clasificación por "integridad" de las funciones realizadas es problemática debido al hecho de que ningún protocolo puede llamarse completamente "aplicado". Cualquier protocolo en sí mismo es solo parte de un determinado sistema de información (u organización), que solo realiza la función requerida por los usuarios. Sin embargo, podemos decir que los protocolos individuales (por ejemplo, TLS) son protocolos de un nivel más alto que los protocolos, por ejemplo, Diffie-Hellman, ya que este último a menudo actúa como una parte integral del mismo protocolo TLS.
Ataques de protocolo
Las propiedades protegidas de los protocolos pueden declararse cuando los propios autores del protocolo las declaran (y, por lo general, dan varios argumentos a favor de realizar estas funciones), e implican cuando los autores de un sistema confían en la implementación de propiedades protegidas por un determinado protocolo.Un ataque a un protocolo seguro es un intento de analizar mensajes de protocolo y / o realizar acciones no previstas por el protocolo para violar las propiedades declaradas o implícitas del protocolo. (Se utiliza la definición modificada de [Cheremushkin: 2009] . La diferencia es que Cheryomushkin en su definición no describe qué es el "mal funcionamiento del protocolo" y deja casos ambiguos de violación, por ejemplo, las propiedades G9 / PFS y G20 / STP).Un ataque se considera exitoso si se viola al menos una de las propiedades declaradas o implícitas del protocolo.En caso de un ataque exitoso a las propiedades implícitas, aclararemos que el ataque al uso del protocolo en algún sistema es exitoso . Esto hablará, por supuesto, no sobre las fallas del protocolo en sí, sino sobre la elección incorrecta del protocolo (o su configuración) por parte de los autores del sistema.Hay muchos tipos de ataques de protocolo. Muchos ataques tienen algunos principios comunes, lo que hace posible distinguir las clases de ataque para simplificar el análisis y el desarrollo de protocolos que son resistentes a clases de ataque completas.- MitM « »
. man-in-the-middle attack
, , , , , , , . , ( G1). —. - Replay
. replay attack
, , , , . , , - . - TF
. type flaw attack
, , () ( ). , , Wide-Mouth Frog, —, Yahalom —. - PS
. parallel-session attack
, . , , —. - STS
. short-term secret attack - KN
. known-key attack
, , (, ), , , . - UKS
. unknown key-share attack
, ( , , ), . , , -.
Es importante tener en cuenta que, a menos que se indique lo contrario, en el marco del análisis de protocolos criptográficos (no sistemas específicos), se utiliza la suposición de la fuerza de todas las primitivas criptográficas utilizadas. Por ejemplo, se supone que si bien hay un intercambio seguro de información utilizando una clave de sesión generada en una sesión de algún protocolo criptográfico, el atacante no tendrá suficientes recursos y tiempo para obtener esta clave de sesión a través de un ataque a los cifrados utilizados o funciones hash criptográficamente resistentes.Por otro lado, se debe suponer que el atacante obtendrá las claves de sesión obtenidas en el marco de las sesiones de protocolo (sin embargo, serán mucho más largas que la sesión de comunicación) (clases de ataque STS y KN). Y después de mucho más tiempo, el atacante podrá obtener acceso a las claves "maestras", claves de uso a largo plazo, por lo que se deben desarrollar protocolos con la generación de claves de sesión, incluida la propiedad G9 / PFS.(Las secciones que siguen describen los protocolos específicos).Referencias
Epílogo
El autor estará agradecido por los hechos y otros comentarios sobre el texto.
La presentación y el texto fueron preparados en gran parte en la excelente conferencia de Cheryomushkin (enlace de arriba).