stringtranslate.com

Lógica de Burrows-Abadi-Needham

La lógica Burrows-Abadi-Needham (también conocida como lógica BAN ) es un conjunto de reglas para definir y analizar protocolos de intercambio de información. En concreto, la lógica BAN ayuda a sus usuarios a determinar si la información intercambiada es fiable, está protegida contra escuchas no autorizadas o ambas cosas. La lógica BAN parte de la suposición de que todos los intercambios de información se producen en medios vulnerables a la manipulación y al control público. Esto ha evolucionado hasta convertirse en el popular mantra de seguridad: "No confíes en la red".

Una secuencia lógica BAN típica incluye tres pasos: [1]

  1. Verificación del origen del mensaje
  2. Verificación de la frescura del mensaje
  3. Verificación de la confiabilidad del origen.

La lógica BAN utiliza postulados y definiciones (como todos los sistemas axiomáticos ) para analizar los protocolos de autenticación . El uso de la lógica BAN suele acompañar la formulación de la notación de un protocolo de seguridad y, a veces, se incluye en artículos.

Tipo de idioma

La lógica BAN y las lógicas de la misma familia son decidibles : existe un algoritmo que toma hipótesis BAN y una conclusión propuesta, y que responde si la conclusión es o no derivable de las hipótesis. Los algoritmos propuestos utilizan una variante de los conjuntos mágicos . [2]

Alternativas y críticas

La lógica BAN inspiró muchos otros formalismos similares, como la lógica GNY. Algunos de ellos intentan reparar una debilidad de la lógica BAN: la falta de una buena semántica con un significado claro en términos de conocimiento y universos posibles. Sin embargo, a partir de mediados de la década de 1990, los protocolos criptográficos se analizaron en modelos operacionales (asumiendo una criptografía perfecta) utilizando verificadores de modelos, y se encontraron numerosos errores en protocolos que se "verificaron" con la lógica BAN y formalismos relacionados. [ cita requerida ] En algunos casos, se razonó que un protocolo era seguro según el análisis BAN, pero en realidad era inseguro. [3] Esto ha llevado al abandono de las lógicas de la familia BAN en favor de métodos de prueba basados ​​en el razonamiento de invariancia estándar. [ cita requerida ]

Reglas básicas

Las definiciones y sus implicaciones se encuentran a continuación ( P y Q son agentes de red, X es un mensaje y K es una clave de cifrado ):

El significado de estas definiciones se recoge en una serie de postulados:

P debe creer que X es reciente. Si no se sabe si X es reciente, entonces podría tratarse de un mensaje obsoleto, reproducido por un atacante.

Con esta notación se pueden formalizar los supuestos en los que se basa un protocolo de autenticación. Mediante los postulados se puede demostrar que ciertos agentes creen que pueden comunicarse utilizando determinadas claves. Si la prueba falla, el punto de fallo suele indicar un ataque que compromete el protocolo.

Análisis de la lógica BAN del protocolo Wide Mouth Frog

Un protocolo muy simple –el protocolo Wide Mouth Frog– permite que dos agentes, A y B , establezcan comunicaciones seguras, utilizando un servidor de autenticación confiable, S, y relojes sincronizados en todas partes. Utilizando la notación estándar, el protocolo se puede especificar de la siguiente manera:

AS : A , { T A , K AB , B } K AS
SB : { T S , K AB , A} K BS

Los agentes A y B están equipados con claves K AS y K BS , respectivamente, para comunicarse de forma segura con S. Por lo tanto, tenemos las siguientes suposiciones:

A cree clave ( K AS , AS )
S cree en la clave ( K AS , AS )
B cree en la clave ( K BS , BS )
S cree en la clave ( K BS , BS )

El agente A desea iniciar una conversación segura con B. Por lo tanto , inventa una clave, K AB , que utilizará para comunicarse con B. A cree que esta clave es segura, ya que la ha creado él mismo:

A cree clave ( K AB , AB )

B está dispuesto a aceptar esta clave, siempre que esté seguro de que proviene de A :

B cree que ( A tiene jurisdicción sobre la clave ( K , AB ) )

Además, B está dispuesto a confiar en que S le transmita con precisión las claves de A :

B cree que ( S tiene jurisdicción sobre ( A cree que la clave ( K , AB ) )

Es decir, si B cree que S cree que A quiere usar una clave particular para comunicarse con B , entonces B confiará en S y también lo creerá.

El objetivo es tener

B cree en la clave ( K AB , AB )

A lee el reloj, obtiene la hora actual t , y envía el siguiente mensaje:

1 AS : { t , clave( K AB , AB )} K AS

Es decir, envía su clave de sesión elegida y la hora actual a S , cifrada con su clave de servidor de autenticación privada K AS .

Dado que S cree que key( K AS , AS ) , y S ve { t , key( K AB , AB )} K AS , entonces S concluye que A en realidad dijo { t , key( K AB , AB )} . (En particular, S cree que el mensaje no fue inventado por algún atacante).

Dado que los relojes están sincronizados, podemos asumir

S cree fresco( t )

Dado que S cree que fresh( t ) y S cree que A dijo { t , key( K AB , AB )} , S cree que A realmente cree que key( K AB , AB ) . (En particular, S cree que el mensaje no fue reproducido por algún atacante que lo capturó en algún momento en el pasado).

S luego envía la clave a B :

2 SB : { t , A , A cree clave ( K AB , AB )} K BS

Como el mensaje 2 está cifrado con K BS , y B cree en key( K BS , BS ) , B ahora cree que S dijo { t , A , A cree en key( K AB , AB )} . Como los relojes están sincronizados, B cree en fresh( t ), y por lo tanto fresh( A cree en key( K AB , AB ) ). Como B cree que la afirmación de S es fresh, B cree que S cree que ( A cree en key( K AB , AB ) ). Como B cree que S tiene autoridad sobre lo que A cree, B cree que ( A cree en key( K AB , AB ) ). Como B cree que A tiene autoridad sobre las claves de sesión entre A y B , B cree en key( K AB , AB ) . B ahora puede contactar a A directamente, utilizando K AB como clave de sesión secreta.

Ahora supongamos que abandonamos la suposición de que los relojes están sincronizados. En ese caso, S recibe el mensaje 1 de A con { t , key( K AB , AB )} , pero ya no puede concluir que t es reciente. Sabe que A envió este mensaje en algún momento en el pasado (porque está cifrado con K AS ) pero no que este es un mensaje reciente, por lo que S no cree que A necesariamente quiera seguir usando la clave K AB . Esto apunta directamente a un ataque al protocolo: un atacante que puede capturar mensajes puede adivinar una de las antiguas claves de sesión K AB . (Esto puede llevar mucho tiempo). El atacante luego reproduce el antiguo mensaje { t , key( K AB , AB )} y lo envía a S . Si los relojes no están sincronizados (quizás como parte del mismo ataque), S podría creer este antiguo mensaje y solicitar que B use nuevamente la antigua clave comprometida.

El documento original sobre Lógica de autenticación (cuyo enlace se encuentra a continuación) contiene este ejemplo y muchos otros, incluidos análisis del protocolo de enlace Kerberos y dos versiones del protocolo de enlace RPC de Andrew Project (una de las cuales es defectuosa).

Referencias

  1. ^ "Material del curso sobre lógica BAN" (PDF) . UT Austin CS.
  2. ^ Monniaux, David (1999). "Procedimientos de decisión para el análisis de protocolos criptográficos mediante lógicas de creencias". Actas del 12º Taller sobre Fundamentos de Seguridad Informática del IEEE . págs. 44–54. doi :10.1109/CSFW.1999.779761. ISBN 0-7695-0201-6.S2CID11283134  .​
  3. ^ Boyd, Colin; Mao, Wenbo (1994). "Sobre una limitación de la lógica BAN". Taller EUROCRYPT '93 sobre la teoría y aplicación de técnicas criptográficas en los avances en criptología : 240–247. ISBN 9783540576006. Recuperado el 12 de octubre de 2016 .

Lectura adicional