Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Información de asignatura
Lee hasta el final este contenido, te vamos a conversar más sobre qué es el hash,
sus propiedades y 4 de sus principales usos prácticos.
Propiedades de hash
Las tres propiedades que acabamos de describir son deseables, sin embargo, no
siempre pueden implementarse en la práctica.
Por ejemplo, la disparidad en los espacios de muestra para valores hash de entrada
y las salidas asegura que las colisiones sean posibles
Algoritmos de hash
SHA2
SHA-3
SHA3 es el algoritmo de hash que pertenece a la familia SHA más nuevo, fue
publicado por el NISH en 2015, pero aún no se está utilizando ampliamente. Aunque
forma parte de la misma familia, su estructura interna es bastante diferente. Este
nuevo algoritmo de hash se basa en la «construcción de esponjas». La construcción
de esta esponja se basa en una función aleatoria o permutación aleatoria de datos,
permite ingresar cualquier cantidad de datos y generar cualquier cantidad de datos,
además, la función es pseudoaleatoria con respecto a todas las entradas anteriores.
Esto permite a SHA-3 tener una gran flexibilidad, el objetivo está en sustituir a SHA2
en los típicos protocolos TLS o de VPN que utilicen este algoritmo de hash para
comprobar la integridad de los datos y la autenticidad de los mismos.
SHA-3 nació como una alternativa a los SHA2, pero no porque usar SHA-2 sea
inseguro, sino porque querían tener un plan B en caso de un ataque exitoso contra
SHA2, de esta forma, tanto SHA-2 como SHA-3 convivirán durante bastantes años,
de hecho, SHA-3 no se utiliza masivamente como sí ocurre con SHA-2.
El campo de informática forense digital usa el hash para verificar todos los medios
digitales que contienen archivos. Por ejemplo, el examinador crea un hash y una
copia de bit por bit de los medios que contienen archivos para producir un clon
digital. El examinador compara el hash de los medios originales con la copia. Si los
dos valores coinciden, las copias son idénticas. El hecho de que un conjunto de bits
sea idéntico al conjunto original de bits establece fijación. La fijación ayuda a
responder algunas preguntas:
Algoritmos de contraseñas
La diferencia entre KDF (Key Derivation Function) y una función de hash para
contraseñas, es que la longitud con KDF es diferente, mientras que una función de
hash para contraseñas siempre tendrá la misma longitud de salida. Dependiendo de
si estamos hasheando claves de cifrado o contraseñas almacenadas en una base
de datos, es recomendable utilizar unos algoritmos de hashing u otros. Por ejemplo,
en el caso de las contraseñas almacenadas, es recomendable que el algoritmo hash
tarde un tiempo de por ejemplo 5 segundos en calcularse, pero que luego sea muy
robusto y sea muy costoso el poder crackearlo.
Los desarrolladores menos expertos que no conozcan todas las posibilidades de los
algoritmos hash KDF, pensarán que son mejores las funciones de hash
criptográficas genéricas unidireccionales de longitud fija y resistentes a colisiones,
como son SHA2-256 o SHA2-512, sin pensar dos veces en el posible problema que
estas pueden tener. El problema de los hashes de longitud fija es que son rápidas,
esto permite a un atacante crackear la contraseña muy rápidamente con un
ordenador potente. Los hashes de longitud variable son más lentos, esto es ideal
para que los crackeadores de contraseñas tarden más tiempo en obtenerla.
1. Argon2 (KDF)
2. scrypt (KDF)
3. bcrypt
4. PBKDF2 (KDF)
Aplicaciones
Debido a que las funciones hash son rápidas, eficientes, económicas
computacionalmente y únicas son muy usadas en la tecnología blockchain. De
todos los usos de las funciones de hash en blockchain se pueden destacar los
siguientes casos:
- Proceso de Minería
Esta es otra área donde se usan mucho las funciones de hashes. Las blockchains
como Bitcoin, Ethereum, NEO o TRON hacen uso de contratos inteligentes para
potenciar distintas aplicaciones.
- Gestión de contraseñas
- Detección de malware
Desciframiento de hashes
Para descifrar un hash, un atacante debe adivinar la contraseña. Los dos ataques
principales utilizados para adivinar las contraseñas son los ataques de diccionario y
de fuerza bruta.
¿Qué es el «salting»?
Un ciberataque muy común consiste en filtrar las bases de datos de una aplicación
web. Esto ocurre cuando la ciberseguridad de un sitio no se encuentra bien
configurada. Por medio de un ataque de inyección SQL o métodos de OSINT, es
posible acceder a bases de datos sensibles para luego usarlas de forma maliciosa.
Es común que los usuarios usen la misma contraseña para varias de sus cuentas,
ya que es difícil recordar una diferente y compleja para cada registro. Por eso,
cuando se filtra una base de datos, los atacantes usarán las contraseñas
encontradas en plataformas como Google, Facebook, etc., con el fin de hackear
cuentas vulnerables.
Prevención de ataques
Una vez que hayamos realizado esto, reiniciamos el ordenador y ya se aplicarán los
cambios.
Por otra parte, también se debe aplicar una autenticación de dos factores utilizando
tokens.
Técnica del salting para la creación de contraseñas. Fuente: elaboración propia. Por
ejemplo, si un usuario determinado pone una contraseña muy débil, en este caso
“password” y una “sal=1$-A4f”, sin la técnica de salting se calcularía el hash md5 de
la contraseña que daría este resultado “Hash =
5F4DCC3B5AA765D61D8327DEB882CF99”, mientras que, si se concatena la “sal”,
el hash resultante cambia a “$salted_hash=MD5($c+$sal)”. Obviamente el hash
resultante no es ni más ni menos complicado, pero se ha hecho que la contraseña
pase de 8 a 14 caracteres incluyendo no sólo minúsculas cómo había puesto el
usuario, sino que, además se ha añadido mayúsculas, números y símbolos. Un
ataque por fuerza bruta sólo por el aumento de longitud tendrá pocas probabilidades
de éxito y mediante diccionario la dificultad se ha disparado también. En estos casos
la única posibilidad de tener un éxito razonable es que el atacante pueda saber si se
está usando la técnica de salting o no y puede llegar a descubrir cuál es, sin
embargo, si la “sal” empleada en todas las contraseñas que se cifran es siempre la
misma, eventualmente el atacante podría por fuerza bruta conseguir averiguar dicha
“sal” y generaría un ataque de diccionario o también de fuerza bruta convencional al
que siempre se añadiesen dicha “sal”, para esto se recomienda que
¿Qué es un HMAC?
Una firma digital, que no debe confundirse con un certificado digital, es una técnica
matemática utilizada para validar la autenticidad e integridad de un mensaje,
software o documento digital.
La firma digital es por tanto una parte fundamental de la firma electrónica avanzada
y de la firma electrónica cualificada, pero no de la firma electrónica simple.
Una firma electrónica simple sería por ejemplo, un número de identificación personal
(PIN) ingresado en un cajero automático del banco o hacer clic en "aceptar" o "en
desacuerdo" en un contrato electrónico de "términos y acuerdos".
Por tanto, todas las firmas digitales son electrónicas, pero no todas las firmas
electrónicas son digitales.
Añadir además que la firma digital se puede aplicar a una gama más amplia de tipos
de archivos, como películas, sonidos, música, etc., haciéndola más versátil que la
tradicional firma de papel.
Lo primero que debemos conocer si queremos entender qué es una forma digital es
el término hash. Los funciones de resumen o hash son algoritmos que consiguen
crear a partir de una entrada (ya sea un texto, una contraseña o un archivo, por
ejemplo) una salida alfanumérica de longitud normalmente fija, que representa un
resumen de toda la información que se le ha dado. Es decir, a partir de los datos de
la entrada crea una cadena que solo puede volverse a crear con esos mismos
datos.
Para crear una firma digital, el software de firma crea un hash unidireccional de los
datos electrónicos que se deben firmar. La clave privada se usa para encriptar el
hash. El hash cifrado junto con otra información es la firma digital.
1. Consentimiento informado
2. Peticiones públicas
3. Acuerdos de confidencialidad
Se trata de uno de los documentos más importantes y críticos para las empresas,
puesto que, en el caso de que existiese un fraude, significaría la perdida de la
propiedad intelectual e implicaría el inicio de un litigio, lo que supondría, entre
muchos otros inconvenientes, un gasto innecesario de dinero y de tiempo para la
empresa.
El proceso de firma digital es rápido y sencillo, los proveedores no tendrán que estar
esperando durante días la documentación que necesitan, sino que podrán disponer
de ella de forma instantánea, lo que facilita en gran medida su trabajo y contribuye a
mejorar las relaciones comerciales.
5. Trámites de recursos humanos
Los tres algoritmos comunes de firma digital son el Algoritmo de firma digital (DSA),
Rivest-Shamir-Adleman (RSA y el Algoritmo de firma digital de curva elíptica
(ECDSA). Los tres generan y verifican firmas digitales. Estos algoritmos dependen
de las técnicas de cifrado asimétrico y de clave pública. Las firmas digitales
requieren dos operaciones:
1. Generación de claves
2. Verificación de claves
● Permiten identificar tanto a una persona física como a una persona jurídica,
como luego veremos.
○ Una tarjeta criptográfica física ad hoc, como sería el caso del DNI
electrónico (DNIe).
Como puedes ver, se trata de una herramienta de gran utilidad que permite ahorrar
desplazamientos, realizar trámites de forma más rápida y eficiente e incrementar la
seguridad en todo tipo de procedimientos online.
Por ejemplo,, Alice solicita una licencia de conducir. En este proceso, presenta
evidencia de su identidad, como partida de nacimiento, identificación con fotografía,
etc. a una oficina gubernamental de otorgamiento de licencias. La oficina valida la
identidad de Alice y permite que Alice complete el examen de conducir. Al
completarlo exitosamente, la oficina de otorgamiento de licencias emite una licencia
de conducir a Alice. Posteriormente, Alice debe cobrar un cheque en el banco. Al
presentar el cheque al cajero del banco, el cajero del banco le solicita la Id. El
banco, debido a que confía en la oficina gubernamental de otorgamiento de
licencias, verifica su identidad y cobra el cheque.
Una autoridad de certificación (CA) funciona de la misma manera que una oficina de
otorgamiento de licencias. La CA emite certificados digitales que autentican la
identidad de las organizaciones y de los usuarios. Estos certificados también firman
mensajes para asegurarse de que nadie los manipuló.
El proceso de validación
Integridad de datos
Las cuatro reglas o restricciones de integridad de los datos son las siguientes:
● Integridad de la entidad: Todas las filas deben tener un identificador único
llamado Clave principal.
Cuente con una opción desplegable para las tablas principales en lugar de solicitar a
las personas que introduzcan los datos. Un ejemplo de despliegue de controles de
datos principales implica el uso de la lista de ubicaciones del sistema de dirección
postal de EE. UU. para estandarizar las direcciones.
● Máscaras de entrada que evitan que los usuarios ingresen datos no válidos o
ayuden a garantizar que introducen datos constantemente (como un número
de teléfono, por ejemplo)
Reglas de validación
Una regla de validación verifica que los datos se incluyan en los parámetros
definidos por el diseñador de la base de datos. Una regla de validación ayuda a
garantizar la integridad, la precisión y la coherencia de los datos. Los criterios
utilizados en una regla de validación incluyen los siguientes:
La validación del tipo de datos es la validación de datos más simple y verifica que un
usuario que ingresa datos concuerde con el tipo de caracteres esperados. Por
ejemplo, un número de teléfono no debería contener caracteres alfabéticos. Las
bases de datos permiten tres tipos de datos: Números enteros, cadenas y
decimales.
Validación de entrada
Por ejemplo, los usuarios completan un formulario a través de una aplicación web
para suscribirse a un boletín. Una aplicación de base de datos genera y envía
automáticamente confirmaciones por correo electrónico. Cuando los usuarios
reciben las confirmaciones por correo electrónico con un enlace URL para confirmar
su suscripción, los atacantes modifican el enlace URL. Estas modificaciones
incluyen el cambio de nombre de usuario, dirección de correo electrónico o estado
de suscripción. El correo electrónico regresa al servidor que aloja la aplicación. Si el
servidor web no verificó que la dirección de correo electrónico u otra información
enviada de la cuenta coincide con la información de suscripción, el servidor recibió
información falsa. Los hackers pueden automatizar el ataque para colmar la
aplicación web con miles de suscriptores no válidos en la base de datos del boletín.
Verificación de anomalías
Integridad de la entidad
Una base de datos es como un sistema de llenado electrónico. Mantener un
archivado correcto es fundamental para mantener la confianza y la utilidad de los
datos en la base de datos. Las tablas, los registros, los campos y los datos dentro
de cada campo conforman una base de datos. Para mantener la integridad del
sistema de archivado en la base de datos, los usuarios deben cumplir con
determinadas reglas. La integridad de la entidad es una regla de integridad, que
afirma que cada tabla debe tener una clave primaria y que la columna o las
columnas elegidas para ser la clave principal deben ser únicas y no NULAS. El
término «nulo» en una base de datos hace referencia a valores faltantes o
desconocidos. La integridad de la entidad permite la organización adecuada de los
datos para ese registro.
Integridad referencial
La integridad del dominio garantiza que todos los elementos de datos de una
columna se incluyan en un conjunto definido de valores válidos. Cada columna de
una tabla tiene un conjunto definido de valores, como el conjunto de todos los
números para los números de tarjetas de crédito, los números de seguridad social o
las direcciones de correo electrónico. La limitación del valor asignado a una
instancia de esa columna (un atributo) aplica la integridad de dominio. La aplicación
de la integridad del dominio puede ser tan simple como elegir el tipo de datos, la
longitud y el formato correcto para una columna.
Conclusión
Hashing ha sido y sigue siendo un valioso mecanismo de seguridad para hacer que
los datos sean ilegibles para el ojo humano, evitando que personas
malintencionadas los intercepten y proporcionando una forma de validar su
integridad. A lo largo de los años, los algoritmos hash se han vuelto más seguros y
más avanzados, lo que dificulta que los malos actores realicen ingeniería inversa de
los valores hash. Aunque los hashes siempre se podrán descifrar, las complejas
operaciones matemáticas detrás de ellos junto con el uso de sales y nonces hacen
que sea menos posible sin grandes cantidades de poder de cómputo.
Bibliografía
Sitio: Signaturit
● https://blog.signaturit.com/es/que-es-un-hash
● https://blog.signaturit.com/es/que-es-una-firma-digital
● https://blog.signaturit.com/es/certificado-digital-que-es
Sitio: RedesZone
● https://www.redeszone.net/tutoriales/seguridad/criptografia-algoritmos-hash/
● https://www.redeszone.net/tutoriales/seguridad/que-es-ataque-pass-the-hash-
protegerse/
Sitio: DocuSign
● https://www.docusign.mx/blog/hash
Sitio: Issuu
● https://issuu.com/agregoriobeltran/docs/seguridad-inform_tica/s/12668145