

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Protocolo de seguridad industrial
Tipologia: Notas de aula
1 / 3
Esta página não é visível na pré-visualização
Não perca as partes importantes!


Un protocolo de seguridad es un conjunto de intercambios en los que intervienen normalmente dos o tres entidades: La entidad iniciadora del protocolo ( entidad a ), la entidad receptora ( entidad b ) y una tercera entidad opcional ( entidad c ) con la misión de autenticación de los intercambios, distribución de claves públicas y/o claves de sesión.
El objetivo principal de un protocolo de seguridad es distribuir una clave de sesión de forma segura entre las entidades a y b con el objetivo de tener un canal seguro de datos entre estas entidades.
Una forma de definir los intercambios que comprenden un protocolo de seguridad es utilizar especificaciones formales. En la figura vemos la especificación formal que utilizaremos para representar protocolos de seguridad. En este ejemplo solo intervienen dos entidades a y b :
PROTOCOL SPECIFICATION CONSTANTS a,b:address; hola,req,ok:data. MESSAGES 1:a->b:KPA; 2:b->a:encrypt(KPA,KS). 3:a->b:encrypt(KS,hola). RELATIONS 1:public_key(a,KPA); 2:sesion_key(KS).
Fig 1: Ejemplo de especificación formal de protocolo de seguridad
La especificación formal que utilizaremos para representar protocolos de seguridad se compone de cuatro campos Identificador de inicio de la especificación, Declaración de Constantes, Mensajes implicados en el protocolo de seguridad, Declaración de Relaciones asociadas a mensajes :
Identificador de inicio de la especificación : Este elemento determina el comienzo de la especificación formal de un protocolo de seguridad y está formado únicamente por la cadena de caracteres “ PROTOCOL SPECIFICATION ”.
Declaración de Constantes : Este elemento contiene las cadenas de caracteres que denominaremos identificadores constantes que se utilizarán en la definición del protocolo de seguridad. Es decir este campo comienza con la cadena de caracteres “ CONSTANTS ” seguida en líneas distintas de los identificadores presentes en la especificación agrupados por tipos. Cada tipo de constantes aparecerá en una línea y separado del siguiente por el carácter “;” y a su vez los identificadores asociados a un tipo concreto aparecerán dentro del tipo separados por comas (“,”). El elemento finaliza con el carácter (“.”) después del último tipo de identificadores.
Mensajes implicados en el protocolo de seguridad : Este campo contiene los mensajes implicados en el protocolo de seguridad identificados por un número entero y precedidos por la entidad origen y destinataria del mensaje (entidad_origen Æentidad_destino). Un mensaje es una secuencia de identificadores constantes y/o variables y/o elementos de cifrado. Los identificadores constantes aparecen representados por cadenas en minúsculas (este es su valor) y los identificadores variables aparecen representados por cadenas en mayúsculas. La sintaxis de un elemento cifrado es: “encrypt(clave, datos a cifrar)” , donde se representa un conjunto de datos cifrados por la clave. El cifrado puede ser simétrico o asimétrico dependiendo de la naturaleza de la clave. El valor de los identificadores variables hay que evaluarlo a partir de las funciones definidas en el campo RELATIONS o bien a partir de los mensajes anteriores recibidos (u opcionalmente creados por una entidad). La estructura de este campo es la siguiente: Comienza con la cadena de caracteres “ MESSAGES ” seguida en líneas distintas de los mensajes implicados en el protocolo de seguridad que aparecerán en líneas distintas y separados por el carácter “;”. El elemento finaliza con el carácter (“.”) a continuación del último mensaje.
Declaración de Relaciones asociadas a mensajes. Este elemento contiene un conjunto de funciones o procedimientos que una entidad debe aplicar a la hora de obtener los identificadores variables que aparecen en un mensaje. Este campo comienza con la cadena de caracteres “ RELATIONS” seguida en líneas distintas de las relaciones asociadas a cada uno de los mensajes implicados en el protocolo de seguridad. Las relaciones asociadas a un mensaje concreto aparecerán en una línea específica separadas por comas (“,”) y en su conjunto separadas de las relaciones asociadas a otro mensaje por el carácter “;”.El elemento finaliza con el carácter (“.”) a continuación de las relaciones aplicables al último mensaje. Puede ocurrir que un mensaje no tenga ninguna relación asociada.
Las relaciones que utilizaremos serán las siguientes: obtención de clave pública, obtención de clave privada, obtención de clave de sesión, generación de sello de tiempo, generación de número aleatorio.
La especificación “ public_key(propietario_clave, clave pública)” significa que la entidad correspondiente tiene que obtener la clave pública de una entidad. Por ejemplo, “public_key(a, KPA)” significa que el identificador variable KPA es la clave pública de la entidad a , que deberá obtener a partir de un fichero o memoria. La clave pública de una entidad puede ser conocida por otras entidades.
La especificación “secret_key(propietario_clave, clave privada)” significa que la entidad correspondiente tiene que obtener la clave secreta o privada de una entidad. Por ejemplo, “secret_key(a, KSA)” significa que el identificador variable KSA es la clave secreta de la entidad a , que deberá obtener a partir de un fichero o memoria. Lógicamente, solo la entidad a puede poseer y obtener su clave secreta.
La especificación “sesion_key(clave_sesion)” significa que la entidad correspondiente tiene que obtener una clave de sesión. Por ejemplo, “sesion_key(KS)” significa que el identificador variable KS es una clave de sesión generada por una entidad. La forma de generar la clave puede ser simplemente a través de una función generadora de números psedoaleatorios.