Por favor ayúdame. Ayúdame a terminar este documento.
Resumen El protocolo de autenticación de identidad es la parte más crítica del sistema de autenticación de identidad La investigación y análisis del protocolo de autenticación de identidad del sistema es una condición necesaria. para garantizar una comunicación de red segura. Kerberos es un protocolo de autenticación de identidad típico que utiliza un servidor dedicado para la autenticación de identidad unificada y la gestión de autoridad, pero debido al entorno de uso inicial. Kerberos es un protocolo de autenticación típico que utiliza un servidor dedicado para la autenticación unificada y la gestión de permisos. Sin embargo, debido al entorno de uso, no utiliza un sistema de clave pública, lo que afecta la escalabilidad y capacidad de administración del sistema. Este artículo explica la idea de diseño del protocolo de autenticación del sistema de autenticación, utiliza la clave pública para mejorar el protocolo Kerberos y utiliza la lógica BAN para analizar la seguridad del protocolo. Palabras clave Verificación de identidad Protocolo de verificación de identidad
El protocolo de verificación de identidad es la parte más crítica del sistema de verificación de identidad, que afecta directamente la eficiencia y seguridad del sistema. Kerberos es un protocolo de autenticación típico. Utiliza un servidor dedicado para la autenticación unificada y la gestión de permisos. Sin embargo, debido al entorno de uso original, no utiliza un sistema de clave pública, lo que afecta la escalabilidad y capacidad de administración del sistema. Esto afecta la escalabilidad y manejabilidad del sistema. Este artículo presenta la idea de diseño de un protocolo de autenticación del sistema de autenticación, utiliza claves públicas para mejorar el protocolo Kerberos y utiliza la lógica BAN para demostrar que el protocolo es altamente seguro. 1 Análisis del protocolo Kerberos Kerberos es un protocolo de autenticación de seguridad de red típico. Utiliza claves simétricas para autenticar con precisión las aplicaciones cliente/servidor. Kerberos es principalmente un mecanismo de autenticación de sistema abierto que proporciona servicios confiables de terceros para comunicaciones de red. Siempre que un usuario (Cliente) solicita un programa de servicio (Servidor), el usuario y el programa de servicio primero solicitarán a Kerberos que se autentique entre sí, y la base de la autenticación es la confianza del usuario y el programa de servicio en Kerberos. Al solicitar autenticación, tanto el cliente como el servidor se consideran usuarios del servicio de autenticación Kerberos. Para distinguirlos de los usuarios de otros servicios, Kerberos se refiere colectivamente a los usuarios y servidores como participantes. Por tanto, los principios pueden ser tanto de usuarios como de servicios. La relación entre autenticadores y Kerberos se muestra en la Figura 1. Figura 1 Relación de autenticación entre Kerberos Cuando un usuario inicia sesión en una estación de trabajo, Kerberos realiza la autenticación inicial en el usuario. Los usuarios que pasan la autenticación pueden obtener los servicios correspondientes durante todo el período de inicio de sesión. Kerberos no depende del terminal a través del cual el usuario inicia sesión en el sistema ni del mecanismo de seguridad del servicio solicitado por el usuario. En cambio, depende del servicio de autenticación proporcionado por él mismo para completar la autenticación del usuario. Trabajo de certificación. La tecnología de marca de tiempo se utiliza para proteger contra posibles ataques de repetición. Kerberos crea y mantiene una base de datos que contiene el nombre y la clave privada de cada participante en el dominio de la red, de modo que sólo el participante y la base de datos de Kerberos tengan acceso a la clave privada de un participante. Utilizando claves privadas, Kerberos puede autenticar a los participantes. Además, Kerberos genera aleatoriamente una clave de sesión que se utiliza para cifrar información específica entre las partes que se comunican. Kerberos tiene las siguientes limitaciones: 1) El servicio de autenticación original puede almacenarse o reemplazarse. Aunque la marca de tiempo está diseñada específicamente para evitar ataques de repetición, aún puede funcionar durante el período de validez del ticket. Se supone que todos los relojes dentro de Kerberos. El dominio de autenticación es sincrónico, los paquetes recibidos dentro del rango de tiempo especificado (asumiendo que el tiempo especificado es de 5 minutos) se considerarán paquetes nuevos. Un mensaje se considera nuevo si se recibe dentro de un período de tiempo específico (digamos 5 minutos). De hecho, un atacante puede preparar mensajes falsificados con anticipación y, una vez que se emite un boleto falsificado, será difícil verificarlo en 5 minutos.
(2) La exactitud del ticket de verificación se basa en la sincronización de todos los relojes de la red. Si la hora del host es incorrecta, se puede reemplazar el ticket de verificación original. Dado que los protocolos horarios de la mayoría de las redes son inseguros, esto provocará problemas extremadamente graves en los sistemas informáticos distribuidos. 3) Kerberos es muy débil a la hora de prevenir ataques de adivinación de contraseñas. Un atacante puede recopilar una gran cantidad de tickets mediante una escucha prolongada y luego adivinar las contraseñas mediante cálculos y análisis de claves. Cuando la contraseña elegida por el usuario no es lo suficientemente segura, los ataques de adivinación de contraseña no se pueden prevenir de manera efectiva. 4) El secreto entre el servidor Kerberos y el usuario es la contraseña del usuario. El servidor no verifica la autenticidad del usuario, pero asume que solo los usuarios legítimos tienen la contraseña y responde. Si un atacante registra la información de respuesta de la aplicación, es fácil realizar un ataque de libro de códigos. (5) De hecho, los ataques más graves son los ataques de malware. El protocolo de autenticación Kerberos se basa en la absoluta confiabilidad del software Kerberos. Un atacante puede reemplazar el software Kerberos de todos los usuarios con un software que implemente el protocolo Kerberos y registrar la contraseña del usuario para lograr el propósito del ataque. En términos generales, el software de cifrado instalado en computadoras no seguras enfrenta este problema. (6) En un sistema distribuido, los centros de autenticación están dispersos y la cantidad de claves de sesión entre dominios es asombrosa. La administración, distribución y almacenamiento de claves son problemas graves. 2 Diseño preliminar del protocolo de autenticación Kerberos evitó utilizar el sistema de clave pública cuando se diseñó inicialmente porque algunas condiciones para aplicar el sistema de clave pública no estaban completamente maduras en ese momento. Sin embargo, con el paso del tiempo y el avance de la tecnología, se han cumplido o se están cumpliendo algunas condiciones para el uso de sistemas de clave pública. Especialmente desde la perspectiva del desarrollo futuro, es una tendencia general introducir sistemas de clave pública en los sistemas existentes. . Del análisis de las limitaciones de Kerberos, podemos ver que muchas de sus fallas son causadas por el uso puro de tecnología de clave simétrica. Si la tecnología de clave pública puede integrarse orgánicamente en Kerberos, se podrán superar sus deficiencias, como la débil confidencialidad y la escasa escalabilidad. Con base en esta consideración, este artículo diseña un protocolo de autenticación. En este protocolo, se utiliza una "*** variable compartida" N que representa el número de veces que un usuario accede al sistema para evitar repeticiones.
Descripción del símbolo: CA: centro de certificación; ◆AA: agente de autenticación; ◆C: identificador único del cliente; ◆S: identificador único del servidor de aplicaciones; ◆PRIx: clave privada de X; la clave pública de X; ◆CERTc: el número de serie del certificado de C; ◆(Info)SIGNx: la clave privada de )K: clave simétrica K para cifrado de información; ◆T: T: clave simétrica K para cifrado de información; : clave simétrica K para cifrado de información. Cifrado de información; ◆Ts: el ticket emitido por el agente de autenticación para que el usuario C acceda al servidor S; ◆Nc: el número entero guardado por el usuario C para registrar el número de visitas del usuario; S para evitar la reproducción; ◆N: un número entero utilizado para evitar la reproducción en la información del protocolo. Su valor está determinado por Nc. Aquí se denomina "variable de sincronización". El flujo de trabajo específico del protocolo es el siguiente: 1) Solicitud de ticket Cuando el cliente C quiere acceder al servidor S, el programa cliente le pedirá que ingrese la contraseña de la clave privada para descifrar el archivo de clave privada. incorrecto, se prohíbe al usuario continuar operando. Si es correcto, envíe un mensaje Ticket_req al agente de autenticación AA: C-gt; AA: (C, S, N) SIGNc, CERTc El mensaje Ticket_req se construye de la siguiente manera: el usuario obtiene el Nc almacenado localmente y luego hace N=. Nc 1, y luego firmar la clave privada del identificador de usuario C y la clave privada del usuario al que se accederá al servidor de aplicaciones S para demostrar su identidad. Esta firma prueba la propia identidad.
Para facilitar la autenticación de identidad, el cliente también necesita transmitir su propio número de serie de certificado CERTc a AA. El uso del parámetro N es principalmente para mantener la actualización de la información enviada por el usuario cuando se emite la solicitud. prepararse para la próxima sesión, es necesario utilizar Nc =Nc 1. (2) Después de recibir el mensaje Ticket_req, el servidor proxy de autenticación de facturas AA primero obtiene la identidad del usuario de la CA o el búfer local de acuerdo con CERTc, obtiene el certificado de usuario de la CA o el búfer local y usa CRL para completar la verificación del certificado. validez. Si se supera la verificación del certificado, obtenga su clave pública PUBc del certificado del terminal de usuario C y utilice esta clave pública para verificar la firma de C en el mensaje (C, S, N). Si la verificación de la firma falla, envíela al cliente. Mensaje de error de autenticación. Una vez pasada la verificación de la firma, AA descubrirá el servidor S al que C desea acceder y comprobará si tiene permiso para acceder a la información en el servidor S. Si se cumple el permiso, se genera un mensaje Ticket_rep: AA- gt; C: Ts, ((Kcs , N)SIGNAA)ENCpubc donde, Ts=((C, S, Kcs, N)SIGNAA)ENCpubs es el ticket utilizado por el usuario para acceder al servicio: AA primero genera una clave de sesión. Kcs, que se utiliza para generar el ticket Ts. En Ts, se debe agregar la información de identidad del usuario C para indicar que este boleto es propiedad del usuario C y no puede ser utilizado por otros. Se debe agregar la información de identidad de S para indicar que este boleto se usa para acceder de C a S; ; para garantizar que el ticket esté actualizado; luego firme la información para demostrar que la información fue firmada por AA y que otros no pueden falsificarla ni alterarla; finalmente cifrela con la clave pública de S para que otros no puedan ver la clave de sesión Kcs. Después de generar el ticket Ts, se debe informar al usuario C de la clave de sesión Kcs, similar al ticket Ts. La nota Ts primero se firma con la clave privada de AA y luego se cifra con la clave pública de C para evitar que otros vean la clave de sesión Kcs. Para mantener actualizada la clave de sesión Kcs, se le agrega N. 3) Solicitud de servicio Cuando el usuario recibe el mensaje Ticket_rep, el usuario C descifra ((Kcs, N) SIGNAA) ENCpubc con su propia clave privada. El usuario verifica si la N obtenida es válida, se prueba su actualidad; si Nlt; Nc se considera datos de reproducción y se descarta; si Ngt se considera un error del programa. Luego, C usa el certificado de AA para verificar la firma de AA en los datos anteriores; si la verificación es exitosa, significa que la información fue enviada por AA y no falsificada por otros. Una vez pasadas todas las verificaciones anteriores, C guarda el ticket Ts y la clave de sesión Kcs y los utiliza para solicitar servicios del servidor. El mensaje S_req que solicita servicios del servidor S es el siguiente: C-gt; S: Ts, (C, S, N) Kcs S_req se construye de la siguiente manera: C usa sesión La clave Kcs se cifra y luego se envía al servidor S juntos. con Ts. Aquí no podemos simplemente enviar Ts directamente a S, porque si hacemos esto, el usuario ilegal puede interceptar Ts en el segundo paso y luego ir al servidor para autenticarse. Si se agrega (C, S, N) Kcs, se puede demostrar que este mensaje fue enviado por el usuario con Kcs, y el uso de N asegura su actualidad. (4) Después de que el servidor de la aplicación de autenticación del servidor S recibe la solicitud de servicio, primero debe verificar el ticket Ts: primero use su propia clave privada para descifrarlo y verifique si C y S pueden saber si el ticket fue enviado por el usuario C o enviado poseer; luego obtenga N, verifique si Ngt; el certificado de AA verifica su firma y envía un mensaje de error si la firma es incorrecta.
Después de verificar el boleto en sí, también debe verificar el titular del boleto: use Kcs para desbloquear (C, S, N) Kcs, verifique si C, S, N son consistentes con los del boleto para evitar que los atacantes ilegales realicen conversiones. diferentes Ts y (C, S, N) Kcs combinados. Después de la verificación, se debe hacer Ns=N para evitar la repetición. Después de autenticar al usuario, el servidor S envía un mensaje s_rep al cliente C para probar su identidad: S-gt; C: (N 1)Kcs Después de que el cliente C recibe el mensaje, primero usa Kcs para desvincularse y verificar N 1=Nc. 1 es válido, el servidor S se considera legítimo, porque solo S puede desvincular el ticket Ts y obtener Kcs. Después de eso, las dos partes pueden usar la clave de sesión Kcs para comunicarse. 3. La idea de diseño de mejorar aún más el protocolo de autenticación. En Kerberos, el método de emisión de tickets se utiliza para lograr una gestión centralizada de los permisos. También nos basamos en esta idea, es decir, el usuario confirma su identidad. agente de autenticación AA y obtiene un ticket. En este punto, el agente de autenticación puede decidir si emitir un ticket al usuario según los permisos del usuario. Cuando el servidor de aplicaciones S recibe una solicitud de servicio, S debería poder verificar la identidad del emisor del billete y del titular del billete. Debido al uso de un sistema de clave pública, la identidad del usuario ya está incluida en el certificado; el uso de una firma garantiza la autenticidad, la integridad y el no repudio de la fuente del mensaje; el uso de la clave pública del destinatario para el cifrado garantiza que sólo el destinatario pueda hacerlo; descifre sus datos, al tiempo que garantiza la integridad y confidencialidad de los datos; el uso de la variable de sincronización N guardada localmente que pertenece a cada parte puede garantizar la frescura del mensaje. El uso de una variable de sincronización N guardada localmente propiedad de cada parte garantiza la actualidad de la información. En un entorno de red a gran escala donde las entidades están dispersas, la sincronización horaria de varias partes del sistema puede resultar muy difícil. Este sistema utiliza la variable de sincronización N para reemplazar la marca de tiempo en Kerberos. La variable de sincronización N debería ser un número entero con un número de dígitos suficientemente grande. En el uso inicial, dado que no existe una variable local N en el cliente C y el servidor S, podemos suponer que su valor está vacío y es menor que cualquier número entero. Cuando el cliente transmite por primera vez, debe tomar N = Nc 1, es decir, N = nulo 1. En este caso, puede tomar un número aleatorio en el rango apropiado para que sea la primera sesión. Use N. Cuando el servidor de aplicaciones S recibe N, puede establecer el valor de la variable local N para el usuario. En el protocolo anterior, el usuario debe solicitar un ticket al agente de autenticación AA cada vez que interactúa con el servidor, lo que obviamente genera inconvenientes para el usuario y también supone una carga para el agente de autenticación AA. En base a estas dos consideraciones, se puede introducir un parámetro de período de validez del boleto en el protocolo anterior. Durante este período, el usuario puede reutilizar el boleto sin volver a solicitarlo al agente de autenticación AA. El período de validez del billete puede ser especificado por el propio servidor de la aplicación o puede ser proporcionado por el agente de autenticación AA al emitir el billete. Este sistema utiliza el último método. Del análisis se puede ver que en el protocolo anterior, la firma en el primer paso es innecesaria, porque el usuario ilegal no puede obtener la clave de sesión en absoluto, ni puede demostrarle al servidor de la aplicación que es el titular del certificado, por lo que también lo eliminamos. Este paso se realiza para reducir cálculos innecesarios.
El protocolo mejorado es el siguiente 1) Solicitud de boleto (Ticket_req), C-gt; AA: C, S, N, CERTc 2) Emisión de boleto (Ticket_rep), AA-gt: Ts, ((Kcs, N) SIGNAA; ) ENCpubc Ts=((C, S, Kcs, N, vida útil) SIGNAA) ENCpubs 3) Solicitud de servicio (S_req), C-gt: S: Ts, (N, ra, seq, opinión) Kcs 4) Verificación del servidor ( S_rep ), S-gt; C: (ra)Kcs (opcional según opiniones) La descripción del símbolo es la siguiente:
◆Lifetime: tiempo de supervivencia del ticket, (calculado desde la primera vez que el servidor recibe un solicitud de servicio); ◆ra: clave de sesión aleatoria; ◆seq: número de secuencia de solicitud de servicio; ◆opinión: si el usuario necesita autenticarse en el servidor, 1 significa requerido, 0 significa no requerido. En el segundo paso, el agente de autenticación AA agrega la vida útil del ticket al ticket, indicando la vida útil de este ticket. En el tercer paso, el usuario C agrega ra y seq al servidor de aplicaciones S según el protocolo inicial. En el protocolo inicial, Kcs se usa como clave de sesión, y aquí ra se usa como dos claves de sesión, porque el usuario C puede acceder repetidamente al servidor S durante el período de validez del ticket. Por razones de seguridad, se usa una clave de sesión diferente para. cada sesión. clave de sesión ra. seq comienza en 1 y aumenta en 1 cada vez. Para el servidor S, además de retener la variable de sincronización N, también retiene el tiempo de vencimiento Texp del ticket del usuario y el número de secuencia seq de la última solicitud de servicio del usuario. Cuando el servidor S recibe la solicitud de información de servicio del usuario, obtendrá N en el ticket: 1) Ngt; indica que la solicitud utiliza un nuevo ticket después de pasar todas las verificaciones de la solicitud, Ns = N, establezca el tiempo de vencimiento. Texp = vida útil de Tnow, y haga que la secuencia guardada localmente se convierta en la secuencia en esta solicitud; 2) N = N, lo que indica que la solicitud es una solicitud de nuevo inicio de sesión, verifique que Tnowgt en este momento verifique si el ticket ha caducado y verifica el ticket Después del emisor y titular de la solicitud, también es necesario verificar si el número de secuencia en la solicitud es mayor que el número de secuencia de la última solicitud almacenada localmente. Si es válido, la secuencia se actualiza al. número de secuencia de esta solicitud; de lo contrario, se considera mensaje retransmitido. 3) Si Nlt; Ns, esta información se considera información de repetición y se descarta. Si opinión = 1, el usuario solicita autenticación al servidor y el servidor S necesita devolver el mensaje 4. Si opinión = 0, el servidor no necesita devolverse el mensaje de autenticación 4 del usuario. En el paso 4, el servidor cifra ra y lo devuelve al usuario C. Debido a la aleatoriedad de ra, el atacante no puede hacerse pasar por él ni reproducirlo, verificando así la autenticidad y actualidad del mensaje. 4 Análisis de seguridad del protocolo de verificación Al analizar la seguridad de este protocolo, lo analizamos principalmente desde el aspecto lógico del protocolo, porque ataques como la denegación de servicio deben ser bloqueados por firewalls o sistemas de detección de intrusos. Aquí utilizamos principalmente la lógica BAN para analizar la seguridad del protocolo. La lógica BAN es un método de análisis lógico formal basado en conocimientos y creencias. Se desarrolla gradualmente desde la creencia inicial del sujeto hasta la final al recibir y enviar información durante la operación. protocolo de autenticación. Dado que la prueba del protocolo es larga, se omite aquí. Después del razonamiento, se demuestra que este protocolo de autenticación finalmente obtiene la creencia de primer nivel y la creencia de segundo nivel. 5 Resumen Al diseñar el protocolo de autenticación, este artículo utiliza principalmente Kerberos, que se basa en claves públicas, y elimina algunos pasos innecesarios según la situación real. La autenticación y autorización de los usuarios son manejadas por el servidor proxy de autenticación. Todo el proceso del protocolo se divide en cuatro etapas: solicitud de boleto, emisión de boleto, solicitud de servicio y autenticación del servidor. Los dos primeros pasos son principalmente la interacción entre el usuario y el agente de autenticación, y los dos últimos pasos son principalmente la interacción entre el usuario y el servidor de aplicaciones.
Una vez autenticado el usuario, se puede establecer dinámicamente una clave de sesión compartida entre el usuario y el servidor de aplicaciones. Este protocolo de autenticación es más conciso que el protocolo de autenticación Kerberos, pero al utilizar la lógica BAN, se demuestra que este protocolo es más seguro y. tiene cierto valor de aplicación. Referencias ⑴ Brian Tung.Criptografía de clave pública para autenticación inicial en Kerberos.draft-ietf-cat- kerberos-pk-init- 15.txt ⑵ Matthew Hur.Criptografía para autenticación en tiempo real en Kerberos.draft-ietf-cat-kerberos - pk-cross- 08.txt ⑶ M. Sirbu, J. Chuang.Autenticación distribuida en Kerberos usando clave públicaRFC 1510: El servicio de autenticación de red Kerberos (V5).1993-09