







Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
algoritmo para obtener la huella digital de un fichero
Tipo: Apuntes
1 / 13
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!








IES MIGUEL ROMERO ESTEO
1.- Función hash 2.- Algoritmo MD 3 .- Algoritmo SHA- 1 4.- Algoritmo NTLM 5.- Autenticación en Windows 6.- Autenticación en Linux 1.- Función hash A las funciones resumen también se les llama funciones hash o funciones digest. Una función hash H es una función computable mediante un algoritmo tal que: H: U → M x → h(x) Tiene como entrada un conjunto de elementos, que suelen ser cadenas, y los convierte en un rango de salida finito, normalmente cadenas de longitud fija. Es decir, la función actúa como una proyección del conjunto U sobre el conjunto M. Normalmente el conjunto U tiene un número elevado de elementos y M es un conjunto de cadenas con un número más o menos pequeño de símbolos. Por esto se dice que estas funciones resumen datos del conjunto dominio. La idea básica de un valor hash es que sirva como una representación compacta de la cadena de entrada. Por esta razón decimos que estas funciones resumen datos del conjunto dominio. Al conjunto U se le llama dominio de la función hash. A un elemento de U se le llama preimagen o, dependiendo del contexto, clave o mensaje. Al conjunto M se le llama imagen de la función hash. A un elemento de M se le llama valor hash, código hash o simplemente hash. Se dice que se produce una colisión cuando dos entradas distintas de la función de hash producen la misma salida. De la definición de función hash podemos decir que U, el dominio de la función, puede tener infinitos elementos. Sin embargo M, el rango de la función, tiene un número finito de elementos debido a que el tamaño de sus cadenas es fijo. Por tanto la posibilidad de existencia de colisiones es intrínseca a la definición de función hash. Una buena Unidad 1 - Funciones Hash
Adicionalmente se inicializa, con un valor fijo, un buffer de 128 bits. Este buffer puede verse como 4 registros de 32 bits (A,B,C,D) y son inicializados con los siguientes valores hexadecimales: A=67452301; B=EFCDAB89; C=98BADCFE; D= Durante varias rondas de procesamiento el algoritmo toma bloques de 512 bits de la entrada y los mezcla con los 128 bits del buffer. Este proceso es repetido hasta que todos los bloques de entrada han sido consumidos. El valor resultante en el buffer es el hash del mensaje. Ejemplos de salida pueden ser: 9A659FE04DB6E4FEB497B9CF7731BB AE3CCB55457C53BECF8C20546031C Que se corresponden con dos cadenas que varían sólo en un carácter. Esto demuestra que una pequeña variación en la cadena de entrada provoca una gran variación en la cadena de salida. 3.- Algoritmo SHA- 1 NIST presentó en 1993 un algoritmo basado en las mismas técnicas que MD5 y denominado SHA (Secure Hash Algorithm). El primer miembro de la familia fue publicado en 1993 es oficialmente llamado SHA. Sin embargo, hoy día, no oficialmente se le llama SHA‐0 para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de SHA‐1. Este algoritmo en 1995 la Agencia de Seguridad Nacional (NSA) lo sustituyó por una versión mejorada que actualmente se conoce como SHA-1 y que se considera más seguro que MD5. Produce un código hash de 160 bits para mensajes de longitud máxima 264 bits, aunque existen otras variantes poco utilizadas todavía que producen códigos de mayor longitud. En general, SHA1 se considera el mejor algoritmo de la familia de Algoritmos HASH o de resumen y es el que se aplica en la mayoría de las aplicaciones de firma electrónica. Por lo tanto es muy habitual aplicar SHA1 seguido de RSA para realizar una firma electrónica de un documento, o bien el algoritmo DSA específico para firma electrónica que también utiliza SHA1 internamente. La codificación hash vacía para SHA‐1 corresponde a: SHA1(“”) = da39a3ee5e6b4b0d3255bfef95601890afd
Características: Es imposible encontrar dos diferentes mensajes que producen el mismo mensaje. Si un mensaje se cambia incluso de un solo carácter, el resultado será un mensaje totalmente diferente. SHA‐0 y SHA‐1 producen una salida resumen de 160 bits (20 bytes) de un mensaje que puede tener un tamaño máximo de 264 bits, y se basa en principios similares a los usados por el profesor Ronald L. Rivest del MIT en el diseño de los algoritmos de resumen de mensaje MD4 y MD5. El procesamiento consta de cinco pasos los cuales se explican a continuación: Se incorporan bits de relleno al mensaje de entrada de tal modo que cumpla: El relleno consiste en un uno seguido de los ceros que sean necesarios. Aunque el mensaje ya tenga la longitud deseada, se debe efectuar el relleno, por lo que el número de bits de dicho relleno está en el rango de 1 a 512 bits. A la salida del paso 1, se le añade un bloque de 64 bits que represente la longitud del mensaje original antes de ser rellenado. Se inicializa la memoria temporal MD, la cual consta de 160 bits y su finalidad es almacenar los resultados intermedios y finales de la función de dispersión. La MD consta de 5 registros (A,B,C,D,E) de 32 bits cada uno, los valores con los que se inicializan son los siguientes (valores hexadecimales): A=67452301 B=EFCDAB89 C=98BADCFE D=10325476 E= C3D2E1F Se procesa el mensaje por bloques de 512 bits, cada uno pasa por un módulo que consta de 4 rondas de procesamiento de 20 pasos cada una. Las rondas tienen una estructura similar, con la excepción de que cada una ocupa una función lógica primitiva diferente (f1, f2, f3 y f4). La entrada a cada ronda consta del bloque de 512 bits que se esté procesando (Yq) y los 160 bits de la memoria MD, nótese que cada bloque de 512 bits actualizará el valor de la memoria temporal. Cada ronda también hace uso de la constante aditiva Kt, donde 0<= t <= 79 indica uno de los 80 pasos a lo largo de las cuatro rondas. Una vez que se procesan los L bloques de 512 bits, el resumen del mensaje son los 160 bits de salida del último bloque. Aplicaciones de SHA‐ SHA‐1 puede ser usado en una variedad de aplicaciones:
Desafío/Respuesta para autenticarse como LM. NTLM es el proveedor predeterminado de autenticación e Windows NT, Windows 2000 y Windows Server 2003 mientras no sean miembros de un dominio de Active Directory, y aun así se utiliza por diversas funciones. Para respetar compatibilidad hacia atrás, el hash LM se envía junto al Hash NT. Si eliminamos los hashes LM de la BD al crear contraseñas mayores de 14 caracteres o modificando la llave NoLMHash del registro, el sistema crea un valor nulo para el hash LM. Aunque este valor nulo no sirve para autenticar al usuario se sigue enviando junto al hash NT. NTLMv Segunda versión del protocolo NTLM, apareció con el SP4 de Windows NT 4.0 y se incluye en Windows 2000 y posteriores. Sigue las mismas reglas que NTLM, sin embargo usa un proceso de autenticación ligeramente distinto. NTLMv2 necesita además que la posible diferencia horaria entre clientes y servidores no supere los 30 minutos. Si el cliente y el servidor son compatibles con NTLMv2, se consigue una sesión de seguridad mejorada. Esta seguridad mejorada proporciona claves separadas para confidencialidad e integridad del mensaje, proporciona una entrada al cliente al desafío para impedir ataques específicos de texto plano, y usa un hash basado en el algoritmo MD5 y el código de autenticación de mensaje (HMAC) para la comprobación de la integridad del mensaje. 5.- Autenticación en Windows. La autenticación es el proceso mediante el cual el sistema valida la información de inicio de sesión o el inicio de sesión del usuario. Nombre de usuario y la contraseña se comparan con una lista autorizada, y si el sistema detecta a una coincidencia, se concede acceso a la extensión especificada en la lista de permisos para dicho usuario. Como parte de una arquitectura extensible, los sistemas operativos Windows Server implementan un conjunto predeterminado de proveedores de compatibilidad de seguridad de autenticación, que incluyen Negotiate, el protocolo de Kerberos, NTLM, Schannel (canal seguro) y Digest. Los protocolos utilizados por estos proveedores permiten la autenticación de usuarios, equipos y servicios, y permite que el proceso de autenticación de usuarios y servicios autorizados tener acceso a recursos de forma segura. 5.1 Autoridad de seguridad local La autoridad de seguridad Local (LSA) es un subsistema protegido que autentica e inicia sesión en el equipo local a los usuarios. Además, LSA mantiene información sobre todos los aspectos de seguridad local en un equipo (estos aspectos se conocen colectivamente como la directiva de seguridad local). También proporciona diversos servicios para la traducción entre nombres e identificadores de seguridad (SID). El Administrador de cuentas de seguridad (SAM, por sus siglas en inglés) de Windows Server 2012 es una base de datos que almacena cuentas de usuario e información de seguridad para los usuarios que acceden al sistema. La base de datos se ejecuta automáticamente como un proceso cuando se inicia el sistema. SAM está en la carpeta Windows dentro de la carpeta System 32 y trabaja en conjunto con otros procesos del sistema.
El subsistema de seguridad realiza un seguimiento de las directivas de seguridad y las cuentas que se encuentran en un sistema informático. El Servicio de Subsistema de Autoridad de Seguridad Local (LSASS) es un proceso en los sistemas operativos Microsoft Windows, responsable de hacer cumplir la política de seguridad en el sistema. Verifica que los usuarios inicien sesión en un equipo o servidor Windows, gestiona los cambios de contraseñas y crea tokens de acceso. También escribe en el registro de seguridad de Windows. La terminación forzada de lsass.exe provoca un reinicio de la máquina. El fichero SAM tiene la siguiente estructura: Administrador: 500::c691a4e531c95817ca88e6fe67bff2f6::: disabled Invitado:501::31d6cfe0d16ae931b73c59d7e0c089c0::: usuario: 1000::f2ab082fa1b21c772eea4193d454d7b0::: profesor: 1001::31d6cfe0d16ae931b73c59d7e0c089c0::: ASPNET: 1010::1edb3ed5e858a8e1065c41d2bff5a686::: pepe: 1013::c780c78872a102256e946b3ad238f661::: Cada línea corresponde a un usuario registrado en el sistema. La primera columna es el nombre de usuario, la siguiente es el identificador de usuario y la tercera la codificación HASD de la contraseña. Opcionalmente, puede aparecer la etiqueta disabled para indicar que la cuenta está deshabilitada.
con independencia de propietarios y permisos. Controla la administración de cuentas de usuarios. Ejecuta tareas de mantenimiento del sistema. Usuarios especiales Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc. Se les llama también cuentas del sistema. No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen distintos privilegios de root. Lo anterior es para proteger al sistema de posibles formas de vulnerar la seguridad. No tienen contraseñas pues son cuentas que no están diseñadas para iniciar sesiones con ellas. Se crean generalmente automáticamente al momento de la instalación de Linux o de la aplicación. Generalmente se les asigna un UID entre 1 y 100 (definido en /etc/login.defs) Usuarios normales Se usan para usuarios individuales. Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home. Cada usuario puede personalizar su entorno de trabajo. Tienen solo privilegios completos en su directorio de trabajo o HOME. Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root, y cuando se requiera hacer uso de comandos solo de root, utilizar el comando su. En las distribuciones actuales de Linux se les asigna generalmente un UID superior a 500. 6.2 El fichero /etc/passwd Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el archivo de configuración 'passwd', ubicado dentro del directorio /etc. Este archivo es de texto tipo ASCII, se crea al momento de la instalación con el usuario root y las cuentas especiales, más las cuentas de usuarios normales que se hayan indicado al momento de la instalación. El archivo /etc/passwd contiene una línea para cada usuario, similar a las siguientes: root:x:0:0:root:/root:/bin/bash sergio:x:501:500:Sergio Pere<:/home/sergio:/bin/bash La información de cada usuario está dividida en 7 campos delimitados cada uno por ':' dos puntos.
Red hat y derivados entre 1 y 499. Debian y derivados entre 1 y 999.
Pero no es todo… pues si dos contraseñas fueran iguales o supieramos el algoritmo usado quizás podríamos descifrarlo sabiendo unas cuantas contraseñas básicas y comparando el digest hasta sacar unas equivalencias. Para evitar esto y cerrar completamente el cerco de seguridad de la contraseña, se le añaden los bit salt, que son datos al azar añadidos a la contraseña para posteriormente cifrar con el hash. Digamos que lo enmascaramos en más datos y así no sabremos si qué parte es la contraseña real y cuales son los datos sin valor. Teniendo la contraseña de ejemplo de antes: $6$OrqRmooe$2XSkIJNgd3Te/xPUd6S1wdysNgPhFrT7UFHkbhvjECkt/L9Z3rmqBUbRDBcfLf4sz/ Z775X.WgJTaijVG7mhn Todo lo marcado en azul serían los salt bits, desde el segundo “$” hasta el siguiente. Los cifrado con bits salt se usan en muchos sistemas modernos, desde seguridad de credenciales a Seguridad en Internet. Hacen mucho más lentos los ataque por diccionario y fuerta bruta para el crackeo. Sin estos como introducimos anteriormente un atacante que descifra una contraseña, sólo necesita adivinarla una vez y con ella tiene la llave para aligerar la velocidad de crackeo de las demás. En la autenticacion pam se pueden definir el tipo de algoritmo usado en particular para servicios En Red Hat se define el tipo de cifrado en este fichero como ejemplo: [root@nexolinux ~]# cat /etc/pam.d/system-auth password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok