PROTECCIÓN CONTRA EL ACCESO NO AUTORIZADO. SISTEMA DE CONTRASEÑA.
MASYUK Mikhail Igorevich
PROTECCIÓN CONTRA EL ACCESO NO AUTORIZADO . SISTEMA DE CONTRASEÑA
El sistema de contraseñas, como componente integral del subsistema de control de acceso del sistema de seguridad de la información (IPS), es parte de la «primera línea de defensa» de todo el sistema de seguridad. Por lo tanto, el sistema de contraseñas se convierte en uno de los primeros objetos de ataque cuando un atacante irrumpe en un sistema protegido.
El subsistema de control de acceso del sistema de seguridad de la información cubre los siguientes conceptos:
ID de acceso: un atributo único del sujeto u objeto de acceso.
Identificación: asignación de un identificador a los sujetos y objetos de acceso y ( o) comparación del identificador presentado con la lista de identificadores asignados.
La contraseña es el identificador del sujeto de acceso, que es su secreto (el del sujeto).
Autenticación – comprobar que el sujeto de acceso posee el identificador presentado por él; confirmación de autenticidad.
También puede encontrar las siguientes interpretaciones de los términos ID de usuario y contraseña [1]:
Un identificador es una cantidad única de información que le permite distinguir entre usuarios individuales de un sistema de contraseñas (identificarlos). A menudo, el identificador también se denomina nombre de usuario o nombre de cuenta de usuario.
La contraseña es una cierta cantidad secreta de información conocida sólo por el usuario y el sistema de contraseñas, que es necesaria para completar la procedimiento de autenticación.
La cuenta es una combinación de ID de usuario y contraseña.
Uno de los componentes más importantes del sistema de contraseñas es la base de datos de la cuenta (base de datos del sistema de seguridad). Son posibles las siguientes opciones para almacenar contraseñas en el sistema:
- en forma clara;
- en forma de valores hash (hash (inglés) — mezcla, mezcolanza);
- cifrado con una determinada clave.
El segundo y tercer método, que tienen una serie de características, son los de mayor interés.
El hash no proporciona protección contra la adivinación de contraseñas utilizando un diccionario si un atacante obtiene la base de datos. Al elegir un algoritmo de hash para calcular los hashes de contraseñas, debe asegurarse de que los hashes generados a partir de diferentes contraseñas de usuarios no sean idénticos. Además, se debe proporcionar un mecanismo para garantizar que los valores hash sean únicos si dos usuarios eligen la misma contraseña. Para ello, a la hora de calcular cada valor hash, suelen utilizar una determinada cantidad de información “aleatoria”, producida por ejemplo por un generador de números pseudoaleatorios.
Al cifrar contraseñas, la forma en que se genera y almacena la clave de cifrado de la base de datos de la cuenta es de particular importancia. Las siguientes opciones son posibles:
- la clave se genera mediante programación y se almacena en el sistema, brindando la capacidad de reiniciarlo automáticamente;
- la clave se genera mediante programación y se almacena en medio externo, desde el cual se lee en cada inicio;
- la clave se genera en base a la contraseña elegida por el administrador, que se ingresa en el sistema cada vez que se inicia.
El almacenamiento más seguro de las contraseñas se garantiza mediante el hash y el posterior cifrado de los valores hash resultantes, es decir, con una combinación del segundo y tercer método para almacenar contraseñas en el sistema.
¿Cómo puede una contraseña caer en manos de un atacante? Los siguientes casos parecen más realistas:
- la contraseña que usted anotó fue encontrada por un atacante;
- la contraseña fue detectada por un atacante cuando la ingresó un usuario legal;
- un atacante obtuvo acceso a los datos del sistema de protección de la base de datos.
Las medidas para contrarrestar los dos primeros peligros son obvias.
En el último caso, el atacante necesitará un software especializado, ya que los registros de un archivo de este tipo rara vez se almacenan en texto sin cifrar. La solidez de un sistema de contraseñas está determinada por su capacidad para resistir un ataque de un atacante que ha tomado posesión de la base de datos de la cuenta y está intentando recuperar las contraseñas, y depende de la velocidad de implementación «más rápida posible» del algoritmo hash utilizado. . La recuperación de contraseña consiste en calcular hashes de posibles contraseñas y compararlos con hashes de contraseñas existentes, luego presentarlos de forma explícita y que distinga entre mayúsculas y minúsculas.
Desde la base de datos de la cuenta, la contraseña puede recuperarse de varias maneras: un ataque de diccionario, búsqueda secuencial (fuerza bruta) y un híbrido de ataque de diccionario y búsqueda secuencial.
En un ataque de diccionario, los valores hash se calculan secuencialmente para cada una de las palabras del diccionario o modificaciones de palabras del diccionario y se comparan con los valores hash de la contraseña de cada usuario. Si los valores hash coinciden, se encuentra la contraseña. La ventaja del método es su alta velocidad. La desventaja es que de esta manera sólo se pueden encontrar contraseñas muy simples que estén en el diccionario o que sean modificaciones de palabras del diccionario. El éxito de este ataque depende directamente de la calidad y el volumen del diccionario utilizado (es fácil encontrar diccionarios similares ya preparados en Internet).
La búsqueda secuencial de todas las combinaciones posibles (fuerza bruta) utiliza un conjunto de caracteres y calcula un valor hash para cada posible contraseña compuesta por estos caracteres. Al utilizar este método, la contraseña siempre se determinará si los caracteres que la componen están presentes en el conjunto seleccionado. El único inconveniente de este método es la gran cantidad de tiempo que puede llevar determinar la contraseña. Cuanto mayor sea el número de caracteres (letras de diferente caso, números, caracteres especiales) contenidos en el conjunto seleccionado, más tiempo podrá pasar hasta que se complete la búsqueda de combinaciones.
Al recuperar contraseñas que utilizan un híbrido de ataques de diccionario y búsqueda secuencial de cada palabra o modificación de una palabra del diccionario, se agregan caracteres a la derecha y/o izquierda (123parol). Además, se puede comprobar el uso de: nombres de usuario como contraseñas; repetición de palabras (perroperro); orden inverso de los caracteres de las palabras (elpoep); transliteración de letras (parol); reemplazo de letras cirílicas con el diseño latino (gfhjkm).
Para cada combinación resultante, se calcula un valor hash y se compara con los valores hash de las contraseñas de cada usuario.
¿Qué contraseña definitivamente se puede llamar débil en todos los aspectos (excepto en la memorización)? Un ejemplo típico: una contraseña de un número pequeño (hasta 5) caracteres/dígitos. Según algunos informes, de 967 contraseñas en uno de los servidores de correo de Internet pirateados, 335 (casi un tercio) consistían únicamente en números. La cantidad de contraseñas que incluían letras y números resultó ser 20. Las contraseñas restantes consistían principalmente en letras minúsculas con raras excepciones (2 contraseñas) que incluían caracteres especiales (“*”, “_”). Sin embargo, el carácter «_» se encontraba a menudo en los nombres de usuario. En 33 casos, el nombre de usuario y la contraseña eran los mismos. La contraseña más popular resultó ser 123 (apareció 35 veces, casi cada 27 contraseñas). En segundo lugar está la contraseña qwerty (20 contraseñas). Qué cómodo es escribir, ¿no? A esto le siguen: 666 (18 veces), 12 (17 veces), xakep (14 veces) y 1, 11111111, 9128 (10 veces cada uno). 16 contraseñas consistían en un carácter/número.
En la vida cotidiana, una persona moderna tiene que mantener en la memoria una cantidad considerable de información: códigos PIN de una tarjeta bancaria y de un teléfono móvil, combinaciones de cerraduras de combinación, contraseñas de acceso a Internet, varios tipos de recursos, buzones de correo electrónico. ¿Es necesario guardar todas las contraseñas en la memoria? Todo depende de evaluar el nivel de pérdidas resultantes de que su contraseña caiga en manos equivocadas. Nadie le molesta en anotar en un bloc de notas las contraseñas para acceder a Internet y a los recursos de la red, si no tiene miedo de que alguien inicie sesión en la red sin su conocimiento y se familiarice con el contenido de su buzón. Esta conclusión, sin embargo, no se aplica a las contraseñas utilizadas en el lugar de trabajo. Obtener acceso a una red local en su nombre puede, por determinadas razones, ser una opción tentadora. Tampoco está prohibido registrar en papel el código PIN de una tarjeta bancaria; la condición principal en este caso es el almacenamiento separado de la tarjeta y la combinación de códigos escrita sin explicación.
Surgen mayores requisitos de contraseña debido al grado de su importancia. Un ejemplo de «contraseña importante» es una contraseña que se utiliza para trabajar en sistemas automatizados que procesan información restringida (secretos de estado, información confidencial). Los documentos rectores de la Comisión Técnica Estatal de Rusia no brindan recomendaciones específicas para elegir una contraseña o calcular su seguridad, con la excepción de la longitud, que varía de 6 (clase 3B, 3A, 2B, 2A) a 8 (clase 1B , 1A) caracteres alfanuméricos y la necesidad de cambiar periódicamente la contraseña.
Existen métodos para evaluar cuantitativamente la solidez de los sistemas de contraseñas [2]:
(fórmula de Anderson ), donde
k – número de intentos de adivinación de contraseña por minuto;
M – período de validez de la contraseña en meses;
P es la probabilidad de adivinar la contraseña;
A1 es la potencia del espacio de la contraseña (A es la potencia del alfabeto de la contraseña, l es la longitud de la contraseña).
Por lo tanto, la mayor influencia en la probabilidad de divulgación de la contraseña se ve afectada por el valor l. Otros componentes de esta fórmula rara vez tienen un efecto sobre el valor de P que exceda un orden de magnitud. Aumentar la longitud de la contraseña en un solo carácter aumenta significativamente el tiempo necesario para que un atacante la descifre.
Los parámetros P, V, T y A1 están interconectados por la siguiente relación [1]:
, donde
P – la probabilidad de selección de la contraseña durante su período de validez (la selección se lleva a cabo continuamente durante todo el período de validez de la contraseña);
V – la velocidad de selección de la contraseña (la velocidad de procesamiento de un intento de registro por parte de la parte que confía o la velocidad de los valores de cálculo hash de una contraseña de prueba);
T – período de validez de la contraseña (especifica el período de tiempo después del cual se debe cambiar la contraseña);
A1 – potencia del espacio de la contraseña (A – potencia del alfabeto de la contraseña, l – longitud de la contraseña).
En el caso de que se desconozca la longitud exacta de la contraseña buscada, el tiempo máximo para adivinar la contraseña (Tmax) se calculará de acuerdo con la siguiente fórmula [3]:
Тmax |
Un conocimiento profundo de cómo se almacenan las cuentas de usuario en la base de datos del sistema de seguridad le permite optimizar los programas de recuperación (apertura) de contraseña. El conocimiento detallado de la organización del sistema de contraseñas de los sistemas operativos Windows NT/2000/XP permite a los autores de estos programas afirmar una velocidad de fuerza bruta de 3,9 millones de contraseñas/seg. hasta 5,4 millones de contraseñas/seg. en una PC con un procesador Athlon XP 1700+ o hable sobre la posibilidad de encontrar todas las contraseñas alfanuméricas en tres días en una PC con un procesador Pentium II/450.
Según Compulenta (http://compulenta.ru/2003/7/24/40961/), el investigador suizo Philipp Yokslin consigue descifrar contraseñas alfanuméricas de Windows en una media de 13,6 segundos. Para el hackeo se utilizó una computadora basada en un procesador Athlon XP 2500+ con 1,5 GB de RAM. La tabla en la que se almacenaban las opciones de contraseña ocupaba 1,4 GB y estaba completamente cargada en la RAM de la computadora, lo que permitió aumentar significativamente la velocidad de piratería. Con un tamaño de tabla de 20 GB y una contraseña que contiene letras, números y 16 caracteres especiales, la contraseña se descifra en un promedio de 30 segundos.
Entonces, ¿qué contraseña puede ofrecer una resistencia digna a los intentos de seleccionarla? Largo, compuesto por letras de diferente caso, números y caracteres especiales. Además, debe ser aleatorio, es decir. la elección de los caracteres se realiza de forma arbitraria (sin ningún sistema) y no se utiliza en ningún otro lugar, mientras que el único lugar donde se fija la contraseña debe ser la cabeza de una sola persona. Sin embargo, también hay que tener en cuenta el uso práctico de la contraseña. Una contraseña muy larga es difícil de recordar, especialmente si se tiene en cuenta que el usuario debe tener más de una contraseña. Tampoco es posible ingresar rápidamente una contraseña larga. Los caracteres seleccionados aleatoriamente se recordarán si su pronunciación en voz alta tiene una forma de sonido memorizada (eufonía) o si tienen una ubicación característica en el teclado; de lo contrario, es indispensable una hoja de referencia.
Ayuda al el usuario crea una contraseña para ciertos programas de generación de contraseñas que pueden cumplir con los criterios.
Uno de estos programas es Advanced Password Generatorle permite crear contraseñas utilizando un generador de números aleatorios o utilizando una palabra clave especificada por el usuario, y también contiene un algoritmo para crear palabras más cercanas al lenguaje natural (ruso o inglés). Cuando se utiliza este modo, las palabras se “recuerdan” pero no tienen significado. El término “memorable” debe entenderse como la eufonía de la combinación resultante. En este modo, el uso de números, caracteres especiales o letras mixtas se desactiva automáticamente.
Aquí hay algunas contraseñas «recordadas» creadas por el programa: ELASWOWA, DEDRYTON, BENEROMO, SARMANED. El programa te permite crear una contraseña de 4 a 32 caracteres. Una contraseña “recordada” de 32 caracteres se ve, por ejemplo, así: NONEERESSPYOVENAPARDERETOURVENFF.
Según el autor, la contraseña DV24*KK4 también se puede clasificar como “recordable”, a pesar de la presencia de números y un carácter especial.
La unicidad de una contraseña generada por dichos programas depende directamente del grado de «aleatoriedad» del generador utilizado para estos fines.
Los sistemas modernos de seguridad de la información limitan la longitud posible de la contraseña utilizada a entre 12 y 16 caracteres. La mayoría de las veces se trata de letras latinas, números y caracteres especiales.
La mayoría de los sistemas de seguridad de la información tienen las siguientes capacidades para aumentar la eficiencia del sistema de contraseñas:
- establecer una longitud mínima de contraseña;
- establecer un período máximo de validez de contraseña;
- establecer un requisito para que las contraseñas no sean repetibles (evita reemplazar una contraseña después de su fecha de vencimiento por una previamente usado);
- limitar el número de intentos de ingreso de contraseña (bloquea al usuario después de exceder un cierto número de intentos de ingreso consecutivos; no afecta la cuenta de administrador).
Para complicar el La tarea del atacante es obtenerla. Muchas bases de datos de sistemas de seguridad la almacenan en la memoria no volátil de su hardware.
Algunos sistemas de seguridad de la información contra el acceso no autorizado contienen mecanismos integrados para generar contraseñas y comunicarlas a los usuarios. Una desventaja evidente y el principal factor que empuja al usuario a escribir una contraseña es la imposibilidad de recordar una palabrería que consta, por ejemplo, de 8 caracteres alfanuméricos que no tienen ninguna relación entre sí.
Si el usuario necesita crear una contraseña de forma independiente, se pueden distinguir los siguientes criterios para elegir una contraseña:
- uso de letras de diferentes registros;
- uso de números y caracteres especiales junto con letras.
Al crear una contraseña, no se recomienda utilizar:
- su nombre de registro en cualquier formato (tal cual, al revés, en mayúsculas, duplicado, etc.);
- su nombre, apellido o patronímico en cualquier forma;
- nombres de parientes cercanos;
- información sobre usted que se puede obtener fácilmente. Incluye números de teléfono, números de cuentas personales, el número de su automóvil, el nombre de la calle donde vive, etc.;
- una contraseña compuesta solo por números o solo letras;
- una palabra que se puede encontrar en los diccionarios.
Debe recordar (intente no escribir) su contraseña. Si recordar una contraseña de alta calidad le resulta una tarea abrumadora, no escriba la contraseña completa, divídala en dos partes y escríbala en diferentes lugares. Simplemente no equipe estas entradas con comentarios como: «Esta es la primera parte de mi contraseña de Internet, la segunda parte está en la página siguiente». Si creó una contraseña usando una frase, entonces, por ejemplo, una entrada como: Todo el mundo*ama(la)libertad le recordará que su contraseña es: e*v(e)e (usó cada tercera letra con la adición de caracteres especiales). Un método más secreto consiste en ampliar lo grabado según un principio definido por el usuario. En este caso, la entrada encontrada: DeReVo no revelará automáticamente la contraseña real: *DterRee eV*o.
Y aún así, la contraseña utilizada para trabajar con información restringida debe recordarse y en ninguna parte no escribas.
Debe practicar ingresando su contraseña para que este procedimiento tome el menor tiempo posible. A pesar de que es recomendable poder introducir una contraseña sin mirar el teclado, utiliza al principio tu memoria visual. La regla principal: nadie más que tú debe conocer tu contraseña.
Aquí tienes varias opciones para seleccionar los elementos que componen la contraseña:
- seleccione una línea o dos líneas de una canción o poema y use la primera letra de cada palabra, agregue números (caracteres especiales);
- elija un dicho famoso (proverbio, eslogan, etc.) y use cada cuarto letra, agregar números (caracteres especiales);
- reemplazar una consonante y una o dos vocales en una palabra, agregar números (caracteres especiales);
- seleccionar dos palabras cortas y unirlas con un signo de puntuación entre ellos, agregue números (caracteres especiales).
En conclusión, es necesario señalar la existencia de la “paradoja del factor humano”. Consiste en que el usuario tiende a menudo a actuar como opositor del sistema de contraseñas, como también de cualquier sistema de seguridad cuyo funcionamiento afecte a sus condiciones de trabajo, más que como un aliado del sistema de seguridad, debilitando así él. De hecho, la necesidad de introducir una contraseña cada vez que inicia sesión, sin mencionar la necesidad de recordar una secuencia de caracteres compleja, no es conveniente. La única contramedida a esta circunstancia es desarrollar entre los usuarios un enfoque competente hacia los problemas de seguridad de la información.
Literatura
1. Fundamentos teóricos de la seguridad informática: Libro de texto. manual para universidades/P.N. Devyanin, O.O. Michalsky, D.I. Pravikov et al. M.: Radio and Communications, 2000. 192 p.: ill.
2. Hoffman L. Métodos modernos de protección de la información: Trans. Del inglés/Ed. VIRGINIA. Gerasimenko. M.: Radio soviética, 1980. 264 p. ill.
3. Emelyanov R. ¿Cómo almacenan los sistemas operativos sus contraseñas? //BYTE. 1999. N° 1(5).