Curso MIT "Seguridad de sistemas informáticos". Lección 17: Autenticación de usuario, Parte 2

Instituto de Tecnología de Massachusetts. Conferencia Curso # 6.858. "Seguridad de los sistemas informáticos". Nikolai Zeldovich, James Mickens. Año 2014


Computer Systems Security es un curso sobre el desarrollo e implementación de sistemas informáticos seguros. Las conferencias cubren modelos de amenazas, ataques que comprometen la seguridad y técnicas de seguridad basadas en trabajos científicos recientes. Los temas incluyen seguridad del sistema operativo (SO), características, gestión del flujo de información, seguridad del idioma, protocolos de red, seguridad de hardware y seguridad de aplicaciones web.

Lección 1: "Introducción: modelos de amenaza" Parte 1 / Parte 2 / Parte 3
Lección 2: "Control de ataques de hackers" Parte 1 / Parte 2 / Parte 3
Lección 3: “Desbordamientos del búfer: exploits y protección” Parte 1 / Parte 2 / Parte 3
Lección 4: “Separación de privilegios” Parte 1 / Parte 2 / Parte 3
Lección 5: “¿De dónde vienen los sistemas de seguridad?” Parte 1 / Parte 2
Lección 6: “Oportunidades” Parte 1 / Parte 2 / Parte 3
Lección 7: “Sandbox de cliente nativo” Parte 1 / Parte 2 / Parte 3
Lección 8: "Modelo de seguridad de red" Parte 1 / Parte 2 / Parte 3
Lección 9: "Seguridad de aplicaciones web" Parte 1 / Parte 2 / Parte 3
Lección 10: “Ejecución simbólica” Parte 1 / Parte 2 / Parte 3
Lección 11: "Ur / Lenguaje de programación web" Parte 1 / Parte 2 / Parte 3
Lección 12: Seguridad de red Parte 1 / Parte 2 / Parte 3
Lección 13: "Protocolos de red" Parte 1 / Parte 2 / Parte 3
Lección 14: "SSL y HTTPS" Parte 1 / Parte 2 / Parte 3
Lección 15: "Software médico" Parte 1 / Parte 2 / Parte 3
Lección 16: "Ataques de canal lateral" Parte 1 / Parte 2 / Parte 3
Lección 17: "Autenticación de usuario" Parte 1 / Parte 2 / Parte 3

Una de las cosas interesantes de las que habla este artículo es que si revisa todos estos esquemas de autenticación, entonces los autores dicen: "OK, estas son contraseñas, son una mierda, y hay otras cosas que proporcionan una seguridad mucho mejor". pero a menudo no se implementan, son incómodos de usar y similares ".



Este es un resultado interesante y al mismo tiempo decepcionante de este trabajo, que consiste en el hecho de que incluso si tenemos todas estas herramientas que proporcionan una mayor seguridad de protocolo, no podemos usarlas debido a inconvenientes extremos.

Entonces Telepathwords es solo un sitio divertido, afirman que no almacenan sus contraseñas, por lo que puede tomar su palabra si lo desea. Pero es muy interesante simplemente sentarse y pensar qué buena contraseña se me ocurrió. Y luego ingréselo aquí y vea lo fácil que es adivinarlo. Incluso le permite hacer cosas como el análisis heurístico de frases populares de varias palabras, de las cuales solo se selecciona la primera letra de cada palabra para la contraseña. Entonces esto es muy útil.

Otra cosa interesante es que sus contraseñas se pueden adivinar sin conexión. Esta vulnerabilidad, llamada preauth o "preauthentication", era inherente a Kerberos v4 y v5. Cualquiera podría solicitar un ticket cifrado con la contraseña del usuario de KDC.

Por lo tanto, KDC no autenticó las solicitudes del cliente. KDC devolvió un conjunto de varios bits en respuesta a la solicitud, que se cifró con la clave del cliente. Esto es lo que se devolvió al cliente. El problema era que el servidor no verificó quién envió este conjunto de cosas cifradas, por lo que, básicamente, el atacante podría obtener esto y luego tratar de adivinar qué es K_C.



Simplemente intente adivinar el valor de K_C, intente cifrarlo, vea si se ve así, si no, intente adivinar otro K_C, descifre, vea si se parece a la verdad, y así sucesivamente. La razón que permite a un atacante organizar este tipo de ataque es porque aquí, dentro de los corchetes, este TGT tiene un formato conocido. Hay algo como marcas de tiempo y campos de referencia internos consistentes, y todo esto ayuda al atacante a adivinar la contraseña. Porque si el atacante adivina K_C y recibe el contenido descifrado de los corchetes, pero los campos internos no están marcados, entonces el atacante comprende que eligió el K_C incorrecto y se toma para el siguiente.

En Kerberos versión 5, el cliente debe pasar una marca de tiempo al KDC, después de lo cual la etiqueta se cifrará con K_C. Todo esto se envía al servidor, el servidor mira esta solicitud y la comprueba antes de enviar algo al cliente. Por lo tanto, cualquier cliente aleatorio puede venir y pedirle esto al servidor.

Estudiante: ¿ aparece la marca de tiempo en el mensaje? ¿Podría un atacante tomar y descifrar este mensaje usando la fuerza bruta?

Profesor: a ver. ¿Puede un atacante recibir este mensaje K_C de {time stapm}?

Estudiante: sí, este es un mensaje cifrado.



Profesor: es decir, ¿cree que un atacante podría, por ejemplo, simplemente fingir este mensaje?

Estudiante: no, usaría la fuerza bruta para igualar K_C.

Profesor: Ya veo, en otras palabras, le preocupa que alguien pueda espiar el contenido de estos corchetes. Creo que el contenido está dentro de lo cifrado que pertenece al servidor, o la clave que pertenece al servidor, para evitar tal ataque, pero esta es solo mi opinión. Pero, en general, tiene razón, si un atacante logra averiguar la marca de tiempo en la solicitud de un cliente, será de gran beneficio para él. En este caso, puede adivinar en qué rango pueden estar las marcas de tiempo vecinas, y usar esto para un ataque similar.

Estudiante: en este caso, el atacante debería ser "un hombre en el medio".
Profesor: esto es así, el atacante debe estar en algún lugar de la red entre el cliente y el servidor para "olfatear" tales cosas.

Otra cosa importante es la recuperación de contraseña. El punto es que si pierde su contraseña, entonces debe ir a la oficina y pedir una contraseña diferente. Pero antes de obtener esta contraseña, de alguna manera debe demostrar que es usted.

Entonces, ¿cómo funciona? ¿Cómo puedo recuperar mi contraseña? Curiosamente, las personas a menudo se centran en la entropía de la contraseña en sí. Pero el problema es que si las preguntas utilizadas para recuperar la contraseña o el esquema de recuperación de contraseña tienen poca entropía, esto afecta la entropía del esquema general de autenticación. En otras palabras, la fortaleza del esquema de autenticación general es igual a la entropía mínima de la contraseña y la entropía mínima del problema para la recuperación de la contraseña. Hay muchos escenarios y reglas, hay suficientes casos bien conocidos, como el caso de Sarah Palin. Alguien pudo recuperar su contraseña de manera fraudulenta porque sus preguntas de recuperación de contraseña eran tales que cualquier extraño podría encontrar una respuesta para ellos, por ejemplo, leyendo un artículo de Wikipedia sobre ella que escribió a qué escuela fue y etc.



Muy a menudo estas preguntas de recuperación de contraseña no son lo suficientemente buenas por varias razones. A veces, estas cosas tienen una entropía muy baja. Por ejemplo, si su pregunta para la recuperación de la contraseña es "cuál es su color favorito", las respuestas más populares serán "azul" y "rojo". Nadie responderá "blanco", "fucsia" o "púrpura". Por lo tanto, algunos de estos problemas de recuperación son inherentemente incapaces de proporcionar suficiente entropía.

Otro problema es que a veces las respuestas a las preguntas para la recuperación de la contraseña se pueden filtrar a través de las redes sociales. Por ejemplo, si una de las preguntas para la recuperación de contraseña es "cuál es su película favorita", entonces hay mucho más espacio para adivinar, por ejemplo, puedo mirar su perfil en IMDB o Facebook y encontrar el nombre de su película favorita allí que usted mismo me dijo .

Y otro problema, el más divertido, es que los propios usuarios tienen preguntas de recuperación muy débiles, por ejemplo, ¿qué será 2 más 3? Es decir, el usuario piensa que para alguien será un gran problema dar la respuesta correcta a tales preguntas, pero la mayoría de las personas que pasan la prueba de Turing pueden responderlas con éxito y usar su contraseña.



Estudiante: ¿es posible utilizar información adicional en lugar de preguntas para la recuperación de la contraseña, tal como insertamos nuestro nombre en un correo electrónico o describimos brevemente el contenido de la carta en el encabezado? ¿Puede este enfoque garantizar la seguridad de cosas de este tipo?

Profesor: No conozco ninguna investigación de este tipo, pero en realidad estas cosas son mucho mejores. Lo sé porque intenté ayudar a mi novia a superar este proceso. Perdió el control de su cuenta de Gmail e intentó demostrar que era su cuenta. Y los propietarios del sitio le preguntaron sobre cosas como, por ejemplo, cuándo creó su cuenta, si habló con alguien sobre su cuenta, por ejemplo, Hezbolá, antes de perder el control sobre ella, y cosas por el estilo. En realidad, este es un proceso que consume bastante tiempo, pero al final, la información adicional es más importante que las preguntas de recuperación de contraseña. No conozco ningún estudio oficial sobre este tema, pero parece que esto es obvio.

Si no tiene preguntas, podemos comenzar el tema de la conferencia de hoy descrita en el artículo. Por lo tanto, los autores proponen considerar una serie de factores que pueden usarse para evaluar la efectividad de los esquemas de autenticación. Lo que es realmente genial en este artículo es que dice que la mayoría de nosotros en la comunidad de seguridad luchamos solo por principios estéticos. Por ejemplo, "tenemos que elegir esto porque me gusta cómo se ven las llaves en la prueba", o "tenemos que elegir esto porque usa muchos métodos matemáticos".

Dicen, ¿por qué no intentamos establecer algunos criterios para evaluar la efectividad? Quizás algunos de estos criterios sean un poco subjetivos, pero intentemos sistematizar los métodos para evaluar los esquemas de autenticación. Veamos cómo se apilan estos diversos patrones en pilas separadas.

Los autores del artículo propusieron tres parámetros de alto nivel para evaluar estos esquemas. El primer parámetro es la usabilidad. El primer requisito en este parámetro es la facilidad de aprender el método de autenticación. Su idea principal es lo fácil que es para los usuarios interactuar con el esquema de autenticación. Aquí notan un par de propiedades características, por ejemplo, ¿es fácil aprender este método y este esquema de identificación de usuario es fácil de aprender?

Algunas de estas categorías son bastante simples, algunas incluyen algunos trucos, pero eso tiene mucho sentido. Si observa las contraseñas, entonces cumplen con este requisito, ya que todos están acostumbrados a usar contraseñas, por lo que diremos que su uso es fácil de aprender y responderemos "sí".

El segundo requisito es la rareza de los errores de autenticación. Esto significa que si usted es un usuario real del sistema, no debería haber errores al intentar autenticarlo. Y aquí, con respecto a las contraseñas, los autores dicen que corresponden condicionalmente a este parámetro. "Condicionalmente" en este caso significa que los autores reconocen la presencia de subjetividad en su evaluación. Por lo tanto, a la pregunta de si los errores rara vez ocurren durante la autenticación con contraseñas, definitivamente no podemos responder "sí" o "no".

Como regla general, puede autenticarse, pero, por ejemplo, cuando intenta acceder al servidor de correo a las 3 a.m., mientras piensa mal, e ingresa la contraseña incorrecta varias veces, en este caso puede reconocer un error del sistema de autenticación. Por lo tanto, creen que las contraseñas cumplen condicionalmente este requisito.

El siguiente requisito es la escalabilidad para los usuarios. La idea principal aquí es que si un usuario tiene un montón de servicios diferentes en los que quiere autenticarse, ¿este esquema se adapta bien? ¿Debe el usuario recordar algo nuevo para cada uno de los esquemas? Aquí, con respecto a las contraseñas, los autores dicen claramente "no", ya que la autenticación con contraseñas no cumple con este requisito. Porque en la práctica, es muy difícil para los usuarios recordar una contraseña diferente para cada sitio que visitan. De hecho, esta es una de las razones por las cuales las personas a menudo usan la misma contraseña para la autenticación en diferentes servicios.

Otro requisito de usabilidad es la facilidad de recuperación. Es decir, ¿qué sucede si pierde el token para la autenticación, en este caso su contraseña, es fácil restablecerla? En este caso, la respuesta para las contraseñas es sí. De hecho, son incluso demasiado fáciles de restablecer, como discutimos hace unos minutos.

El siguiente requisito es no requerir nada extra, no llevar ningún medio adicional para la autenticación. Por ejemplo, los fantásticos protocolos de autenticación requieren que ejecute algún tipo de aplicación de teléfono inteligente o que tenga algún tipo de token de seguridad, tarjeta inteligente y similares. Entonces esta es una carga pesada. Tal vez no haya tantos problemas con el teléfono inteligente, es suficiente instalar la aplicación para la autenticación, pero llevar uno de los otros dispositivos todo el tiempo es bastante inconveniente. Por lo tanto, una buena propiedad de las contraseñas es que debe llevarlas consigo solo en su cerebro, lo que siempre debe llevar consigo.



Estos son los criterios para la usabilidad de un esquema de autenticación. En un sentido general, es interesante cómo las personas en la comunidad de seguridad no están de acuerdo sobre la importancia de estos criterios. Por ejemplo, dicen: "esto usa un millón de piezas de entropía, y solo una catástrofe universal puede romperlo", mientras olvida que los requisitos anteriores también son importantes para los esquemas de autenticación.

Entonces, el siguiente parámetro de alto nivel que usan los autores del artículo para evaluar el esquema de autenticación es la capacidad de implementación. Describe lo fácil que es implementar este sistema de autenticación en los servicios de red existentes. Por ejemplo, analizan la compatibilidad del servidor, es decir, ¿es fácil integrar este esquema en servidores modernos en los que la autenticación se basa en el uso de contraseñas de texto? En este sentido, las contraseñas cumplen totalmente con este requisito, por lo que podemos responder "sí".

El segundo requisito es la compatibilidad del navegador, es similar al anterior y dice: ¿puedo usar este esquema de autenticación para los navegadores populares existentes sin la necesidad de instalar un complemento o algo así? Nuevamente, aquí las contraseñas ganan por defecto.

Otro requisito interesante es la accesibilidad, el exceso. Es decir, las personas con alguna discapacidad física podrán usar este esquema de autenticación, por ejemplo, ciegos o con problemas de audición, con habilidades motoras insuficientes y similares. Esto es realmente un requisito bastante importante.

Aquí los autores una vez más dicen "sí", lo cual es un poco extraño, porque no está claro cómo las personas con discapacidad pueden usar contraseñas, pero los autores dicen que sí.



Estos son los requisitos que debe considerar con respecto a la capacidad de implementar este esquema de autenticación. La razón de la importancia particular de la implementación es que es extremadamente difícil actualizar todas estas cosas para implementar un nuevo esquema, porque puede ser difícil lograr que las personas actualicen algo. Quiero decir, a menudo las personas ni siquiera quieren reiniciar sus máquinas e instalar una nueva actualización del sistema operativo. Por lo tanto, surgen grandes dificultades si el esquema de autenticación requiere cambios en el servidor que obliguen a las personas que sirven al servidor a realizar operaciones adicionales. Esto es relevante para su pregunta, ¿por qué no utilizamos información adicional o para mejorar la seguridad de la contraseña? Las características de implementación en muchos casos son muy, muy importantes para las personas.

Entonces, el último parámetro que consideraremos es la seguridad. ¿Qué tipos de ataques puede prevenir este esquema? Denotaré esta característica por Res: adaptabilidad a foo, donde foo es cualquier efecto que puede causar daño.

Por ejemplo, la primera característica indica la estabilidad del sistema a la observación física, "espiar" o "espiar". El punto es que el atacante no pudo hacerse pasar por el usuario real después de observar varias veces su autenticación en el sistema. Imagina que estás en una clase de informática y que alguien está detrás de ti y observa lo que escribes. Tal vez alguien lo esté filmando en video, tal vez alguien tenga un micrófono que "quite" la firma acústica de su teclado e intente extraer algo de él, y así sucesivamente.

Los autores del artículo dicen que las contraseñas no cumplen con este requisito, porque un atacante puede ver el video y descubrir con bastante facilidad qué letras escribió. Hay ataques que utilizan huellas digitales acústicas en el teclado para identificar caracteres imprimibles. Entonces las contraseñas no son resistentes a las observaciones físicas.

– , . , - – , , , , , . , , - , , , , , . « – ».
, , , - - , .

, . – . , , , Antihammering. , , «». , „“, , , , . .

– . , , . , . , «» , .

, , .

. , , , , , , , . , , , .

- , , . . .

, , . — . , , , DNS - , , . , : «, , , ». , , .



. : . , , . , , , , . , , .

, , , , , , , . . , , , , , , , .

, , , .

– , . , , . , . , – , .
, , , HTTPS . , CA, . - , , .



, , «». , . , - Gmail, Facebook.

, , . , .

, . , , . , , , , .

Una de las características interesantes de la biometría es la dimensión de las claves, que determina el grado de entropía. La dimensión de las teclas no es tan grande como debería ser. Por ejemplo, para las huellas digitales, la dimensión clave es de aproximadamente 13.3 bits, para escanear la retina del ojo es de 19.9 bits, el reconocimiento de voz tiene una dimensión clave o un índice de entropía del orden de 11.7 bits.

54:15 seg

Curso MIT "Seguridad de sistemas informáticos". Lección 17: "Autenticación de usuario", parte 3


La versión completa del curso está disponible aquí .

Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendándolo a sus amigos, un descuento del 30% para los usuarios de Habr en un análogo único de servidores de nivel de entrada que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de $ 20 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps hasta diciembre de forma gratuita al pagar por un período de seis meses, puede ordenar aquí .

Dell R730xd 2 veces más barato? Solo tenemos 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV desde $ 249 en los Países Bajos y los EE. UU. Lea sobre Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

Source: https://habr.com/ru/post/es429682/


All Articles