Está en la página 1de 25

Información personal

Nombre: Víctor Johanser Sirett Torres


Matrícula: 20-EISM-6-021

Información de asignatura

Asignatura: Fundamentos de seguridad informática


Profesor: Felipe Arturo Durán Rodriguez
Sección: 109(IS)
Introducción

¿Conoces la definición de hash? ¿La diferencia entre hash y función hash? A


continuación se desarrolla esta explicación y se abunda sobre su aplicación e
importancia. Además, veremos firmas digitales, certificados digitales y otros
elementos que aportan a mantener una seguridad en los datos que enviamos o
recibimos mediante de forma informática y validad la fiabilidad de los mismos.
Hash

Hash y función de hash no son lo mismo, el primero es el resultado y el segundo es


el proceso criptográfico mediante el cuál se obtiene. Los resultados son
identificadores únicos e irrepetibles a partir de una información dada.

En definitiva, este término es una pieza clave en la tecnología blockchain y para la


seguridad de la información digital de las empresas, siendo capaz de integrar sus
funcionalidades en herramientas que son ampliamente utilizadas como la firma
electrónica.

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.

Hash: ¿de qué trata esta tecnología?


Una función “hash” criptográfica es, como su nombre lo indica, una función
matemática utilizada en criptografía donde las más comunes agarran entradas de
longitudes versátiles para restituir salidas de una longitud permanente.

A su vez, combina las capacidades de paso de mensajes hash con propiedades de


ciberseguridad.

Entre los puntos claves para comprender este término encontramos:

● Transforman o “monitorean” un conjunto de datos mediante operaciones


matemáticas en una cadena de bits de tamaño constante, también conocido
como “valor hash”.

● Son empleados en criptografía, cuentan con niveles inconstantes de


complejidad.

● El uso más arraigado de esta tecnología es para las criptomonedas,


seguridad de contraseña y de mensajes.

Propiedades de hash

A decir verdad, ¿cómo funcionan las funciones hash?


Las funciones hash son estructuras de datos de uso común en los sistemas
informáticos para tareas, como verificar la integridad de los mensajes y autenticar la
información.

Agregan características de seguridad a las funciones típicas, lo que dificulta la


detección del contenido de un mensaje o información sobre destinatarios y
remitentes; en particular exhiben estas tres propiedades:
● Están libres de colisiones o “collision-free”: significa que no se deben asignar
dos hashes de entrada al mismo hash de salida.

● Pueden ocultarse: debería ser difícil adivinar el valor de entrada de una


función hash a partir de su salida.

● Deben ser amigables con los rompecabezas: tiende a ser complicado


seleccionar una entrada que proporcione una salida predefinida, por lo tanto,
debe ser elegida de una distribución que sea lo más amplia posible.

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

En sus inicios el algoritmo SHA (Secure Hash Algorithm o Algoritmo de Hash


Seguro) fue creado por la NSA y el NIST con el objetivo de generar hashes o
códigos únicos en base a una norma. En 1993 nació el primer protocolo SHA,
también llamado SHA-0, pero apenas se utilizó y no tuvo demasiada repercusión.
Un par de años más tarde, vio la luz una variante mejorada más resistente y segura,
el SHA-1, que se ha utilizado durante muchos años para firmar los certificados
digitales SSL/TLS de millones de webs. Unos años más tarde se creó SHA-2, que
tiene cuatro variantes según el número de bits de salida, son SHA2-224, SHA2-256,
SHA2-384 y SHA2-512. Actualmente, por seguridad ya no se utiliza SHA1, sino que
es muy recomendable utilizar SHA2 o SHA3 (dentro de la familia SHA).

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.

Archivos y medios digitales de hash

La integridad garantiza que los datos y la información estén completos y sin


alteraciones al momento de la adquisición. Esto es importante para saber cuando un
usuario descarga un archivo de Internet o un examinador forense busca la evidencia
en los medios digitales.

Para verificar la integridad de todas las imágenes de IOS, Cisco proporciona


checksums de MD5 y SHA en el sitio web de software de descarga de Cisco. El
usuario puede realizar una comparación de esta compendio de MD5 contra el
compendio de MD5 de una imagen de IOS instalada en un dispositivo. El usuario
puede estar tranquilo ahora de que nadie alteró ni modificó el archivo de imagen de
IOS.

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:

● ¿El examinador tiene los archivos que espera?

● ¿Los datos están dañados o modificados?

● ¿Puede el examinador probar que los archivos no están dañados?

Ahora el experto en informática forense puede examinar la copia en busca de


cualquier evidencia digital mientras deja el archivo original intacto y sin modificar.

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.

La comunidad criptográfica se unió para introducir funciones de hash diseñadas


específicamente para contraseñas, donde se incluye un «coste». Las funciones de
derivación de claves también se diseñaron con un «coste». Basándose en las
funciones de derivación de claves basadas en contraseñas y las funciones de hash
diseñadas específicamente para contraseñas, la comunidad diseñó varios
algoritmos para usarlos en la protección de contraseñas.

Los algoritmos más populares para proteger las contraseñas son:

1. Argon2 (KDF)
2. scrypt (KDF)
3. bcrypt
4. PBKDF2 (KDF)

La principal diferencia entre un KDF y una función de hash de contraseñas, es que


la longitud con los KDF es arbitraria, y en las típicas funciones hash de contraseñas
como MD5, SHA-1, SHA2-256, SHA2-512 tienen una salida de longitud fija.

Para el almacenamiento de contraseñas, la amenaza es que la base de datos de


claves se filtre a Internet, y que los crackeadores de contraseñas de todo el mundo
trabajen en los hashes de la base de datos para recuperar las contraseñas.

Tomando como ejemplo el almacenamiento de contraseñas en una base de datos,


cuando iniciamos sesión para acceder a un sitio web, siempre es necesario que el
hashing de la clave se haga rápido, para no tener que estar esperando sin poder
acceder, pero esto supone un problema, y es que se podría crackear de forma más
rápida, sobre todo si usamos la potencia de las GPU junto con Hashcat.

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:

- Creación de la dirección (Address Wallet)

Las direcciones de los monederos de criptomonedas son una representación segura


de las claves públicas de la cartera. Las claves públicas, por lo general, son muy
largas y complejas. Por este motivo, las blockchains utilizan funciones de hash para
derivar una dirección más corta. Este proceso se usa en varias ocasiones para
acortar la dirección y agregar una capa extra de seguridad.

- Proceso de Minería

El proceso de minería es otra fase trascendente de la tecnología blockchain donde


se usan las funciones hash. En Bitcoin, la minería hace un uso intensivo de cálculo
de hashes SHA-256 de forma distribuida en cada uno de sus nodos. Los mineros
son los responsables de calcular millones de hashes para crear nuevos bloques
Bitcoin. El proceso también se usa para verificar las transacciones que se hacen en
la red.

- Contratos Inteligentes (Smart Contracts)

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.

Estas aplicaciones son manejadas por un contrato público entre partes. No


obstante, muchos de estos datos son muy sensibles o muy grandes para ser
almacenados en una blockchain. Por lo que la mejor forma de solventar estos
escenarios es a través de funciones de hash.

A través de esto, todo el contrato es público pero la información enlazada o que se


quiere mantener privada no es publicada. Ya que entre estos datos pueden incluirse
nombres, direcciones, direcciones de monederos, datos de terceros participantes.
Es decir, información privilegiada y solo de interés entre partes.

Los hashes también se usan para hacer contratos de versiones. Es decir, un


contrato público tiene un hash único que viene dado por lo que dice el contrato. Si el
contrato es modificado, el contrato anterior es terminado y se genera uno nuevo con
un nuevo hash. Con este mecanismo, el hash determina el contrato correcto a usar
dentro de una aplicación descentralizando y facilitando su control. Otro uso de las
hash en contratos inteligentes es, por ejemplo, para marcar la validez y autenticidad
del mismo.

Además de estas funcionalidades de las hash en criptografía, también existen otras


prácticas en ciberseguridad donde se incluyen esta tecnología.

- Gestión de contraseñas

Habitualmente, los servicios online guardan y gestionan las contraseñas en formato


hash y no en texto, para una mayor privacidad y seguridad. De esta manera, en los
procesos de recuperación de contraseñas, también se utilizarían estos códigos en
lugar de expresiones de texto plano.

- Detección de malware

La utilización de códigos hash que identifican a determinados programas maliciosos


permiten detectarlos y eliminarlos de forma más eficiente y precisa. Por tanto, es
una tecnología muy utilizada en la industria de los antivirus.

- Detección de infracciones de derechos de autor

De forma similar al anterior caso, cuando determinados servicios que detectan


contenidos con derechos de autor, pueden asociarles un hash que sirva para
detectar posteriormente nuevos usos de ese material, de forma automática y muy
eficiente.

Hemos compartido qué es un hash y también algunas de sus aplicaciones donde


destacan las que tienen que ver con criptografía y la ciberseguridad.

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.

Un ataque de diccionario utiliza un archivo que contiene palabras, frases y


contraseñas comunes. El archivo contiene los hashes calculados. Un ataque de
diccionario compara los hashes del archivo con los hashes de la contraseña. Si un
hash coincide, el atacante conoce un grupo de contraseñas potencialmente buenas.

Un ataque de fuerza bruta intenta cada combinación posible de caracteres hasta


una longitud determinada. Un ataque de fuerza bruta lleva mucho tiempo del
procesador, pero solo es cuestión de tiempo para que este método descubra la
contraseña. Las contraseñas deben ser lo suficientemente largas para compensar el
tiempo que tarda en realizarse un ataque de fuerza bruta demasiado prolongado
para ser provechoso. Las contraseñas de hash permiten que sea más difícil para el
delincuente recuperar esas contraseñas.

¿Qué es el «salting»?

En programación, es muy común tener que gestionar contraseñas de usuarios, pues


existen muchas aplicaciones que cuentan con sistemas de registro. Sin embargo,
las credenciales confidenciales de las personas deben manejarse con cuidado,
debido a que son susceptibles a muchos ciberataques.

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.

Por todo esto, a continuación, veremos qué es el salting en criptografía y cómo


ayuda a prevenir estos ataques.

Prevención de ataques

El protocolo de inicio de sesión único implementado con un hash se trata de una


función útil para ahorrar a los usuarios tener que volver a ingresar sus credenciales.
El problema está en que los ciberdelincuentes se aprovechan de esta función inicio
de sesión único (SSO) para atacar equipos Windows y en menor medida también
sistemas Linux y Unix. Ahora vamos a explicar algunas medidas para evitar ser
víctima de un ataque Pass the Hash.

Activar la protección de credenciales


Por si no lo sabéis, Credential Guard de Windows Defender es una característica de
seguridad que tienen los sistemas Windows 10 y superiores. Gracias a ella vamos a
poder proteger la información confidencial almacenada en el sistema. El Servicio de
subsistema de autoridad de seguridad local (LSASS) aplica la política de seguridad
en el sistema Windows.

Esta característica la podemos activar mediante la directiva de grupo,


concretamente debemos irnos a la Consola de administración de directivas de
grupo, aquí tendremos que irnos a la sección de «Configuración del equipo /
Plantillas administrativas / Sistema / Device Guard«. Una vez que estemos en este
menú, debemos pinchar en «Activar la seguridad basada en la virtualización» y
habilitar la funcionalidad. En la parte inferior también tenemos que configurar el nivel
de seguridad de plataforma: arranque seguro, o bien usar protección de DMA y
arranque seguro.

Una vez que hayamos realizado esto, reiniciamos el ordenador y ya se aplicarán los
cambios.

Privilegio mínimo y autenticación dos factores


En un modelo de privilegio mínimo tenemos que limitar los derechos de acceso a los
usuarios para que solo puedan utilizar los recursos y archivos necesarios para
realizar su trabajo. También tenemos que eliminar los derechos de administrador
innecesarios y otorgar privilegios únicamente a las aplicaciones confiables. Además
conviene revisar todas las cuentas y eliminar las que no se utilicen especialmente
las de administrador. Esto reducirá los vectores de ataque que puede utilizar un
ciberdelincuente.

Por otra parte, también se debe aplicar una autenticación de dos factores utilizando
tokens.

Reinicia los equipos después de cerrar sesión


La razón para realizar esta tarea es que el sistema almacena el hash de la
contraseña en su memoria. Si reiniciamos nuestro ordenador después de cerrar la
sesión se eliminará ese hash de la memoria del sistema. Por este motivo, en lugar
de cerrar sesión y dejar el ordenador encendido, es muy recomendable reiniciarlo o
directamente apagarlo para borrar el hash de la memoria y mitigar en gran medida
este nuevo ataque.

Actualiza el sistema operativo


Actualizar nuestro sistema operativo es buena idea ya que se corrigen fallos de
seguridad que podrían ser explotados por los ciberdelincuentes.

Implementación de la técnica de «salting»

Cómo se ha analizado en apartados anteriores y como puede comprobarse con


ejercicios de cracking de claves, el uso de contraseñas largas con combinaciones
complejas de caracteres que incluyan mayúsculas, minúsculas, números y signos
de puntuación o símbolos, hace muchísimo más improbable el éxito de un atacante
a la hora de obtener las contraseñas de los usuarios, aunque lleguen a filtrarse los
hashes de las mismas, sin embargo, estás pueden complicarse aún más mediante
la técnica de salting, aunque existen distintas formas de aplicar esta técnica a las
contraseñas, lo más habitual es que el sistema añada siempre una cadena de texto
concreta a la contraseña definida por el usuario antes de calcular el Hash de forma
que, si se usa md5 por ejemplo, el hash será igual a calcular el algoritmo para la
contraseña seguida del hash.

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

la “salting” sea aleatoria, lo cual crea el problema de su almacenamiento, porque


cuando el usuario escribe su contraseña el sistema deberá saber qué “sal” añadirle
para calcular el hash. Para resolver este problema lo que se hace en ocasiones, por
ejemplo, es guardar la “sal” concatenada con el propio hash para que pase
desapercibida, entonces la “sal” deberá ser un valor expresado en hexadecimal, así
no se sabrá que parte de la cadena de texto almacenada es el hash y cuál la “sal2.
En el ejemplo anterior, si se supone que aleatoriamente ha correspondido la misma
“sal” que antes “1$A4f”, para generar el hash se hace el md5 de “password1S-A4f” y
se almacena dicho resultado, en este ejemplo se almacena el hash presidido por el
“sal” en formato hexadecimal, cuanto más larga sea la “sal”, más combinaciones
tendrá que probar un atacante para descubrir cuál es, dificultando tremendamente el
proceso. Lo que se aconseja es que la “sal” sea tan larga como el propio hash la
primera asunción qué se debe hacer siempre, es que el atacante sabe cómo
funciona el algoritmo de cifrado, este es el conocido como principio de Kerckhoffs, el
cual indica que todo lo relacionado con un algoritmo de cifrado debe ser público,
excepto la clave de cifrado. También se debe asumir que, si un atacante logra
acceso a la base de datos con los hashes y las contraseñas, también sabrá cómo se
generaron y como se agregó el salting a dichas contraseñas, por lo que el doble
hash o el hash del hash no tienen gran utilidad, así que, los consejos principales son
usar “sales” largas y nunca repetidas. La “sal” se añade delante o detrás de la
contraseña, es indiferente pero siempre en el mismo sitio. Además del salting de
contraseñas, se puede utilizar el método conocido como “Hashing lento”, el cual
consiste en aplicar determinadas iteraciones de hashing que hacen el cálculo
tremendamente pesado, para consultas de autenticación el tiempo consumido es
despreciable, pero para ataques de fuerza bruta o diccionario el tiempo se multiplica
en varios órdenes de magnitud, algunos de los algoritmos de este método son: •
Bcrypt • PKBDF2 Siempre es mejor utilizar estos algoritmos diseñados y probados
que no dedicarse simplemente a calcular hash del hash repetidamente en un
numero aleatorio de veces. Por último, sea cual sea el sistema de almacenamiento
de contraseñas que se use, una norma que se ve en muchos sitios y que nunca es
una buena idea, es obligar a los usuarios a tener contraseñas de longitud específica,
aunque apliquen salting a dichas contraseñas o se las utilicen con “Hashing lento”,
porque si un atacante conoce el método y los parámetros impuestos al usuario,
podrá desarrollar tablas mediante fuerza bruta con bastantes garantías de éxito.

En distintos boletines de Microsoft se puede ver indicaciones para fortalecer los


sistemas, en este caso como impedir que Windows almacene un hash de
administrador de la red LAN de su contraseña en Active Directory y en bases de
datos locales de SAM, en estos boletines se pueden ver cómo implementar una
directiva “NoLMHash” para evitar que este algoritmo de hashing que es demasiado
endeble sea utilizado en los equipos de la organización.

¿Qué es un HMAC?

La función HMAC o “hash con clave” combina el “message authentication code”


(MAC) con el resultado de una función hash. Es una forma de ampliar el uso de las
funciones hash ya que el resultado no depende solo del hash del mensaje sino de
otro parámetro que puede ser la clave secreta del usuario. La definición y
explicación del HMAC esta descrita en el RFC 2104.

Funcionamiento del HMAC

La función HMAC tiene como parámetros de entrada el mensaje y la clave secreta.


Debe estar definida la función hash que se va a utilizar. En principio se puede utilizar
cualquier función hash que sea compatible con la longitud del mensaje de entrada.

Luego se realizan operaciones entre el mensaje y la clave y se le calcula el hash en


más de una ocasión. El resultado es un hash que depende del mensaje y la clave.
Para poder comprobar la autenticidad del mensaje también es necesaria la clave.

El HMAC no es un algoritmo de cifrado ya que, aunque se tengo el hash resultante y


la clave no se puede obtener el mensaje original.

Aplicaciones del uso HMAC

Ejemplos de uso de HMAC


● Solo los autorizados pueden comprobar la integridad del mensaje: Si el hash
se calcula a partir del texto del mensaje y una clave secreta, solo quien tenga
la clave secreta puede comprobar la integridad del mensaje.
● Autenticación multifactor: Como se explicó anteriormente las funciones hash
se utilizan para la autenticación de los usuarios y evitar almacenar en texto
claro sus contraseñas. Con HMAC se puede almacenar un hash que
dependa de más de un parámetro. Por ejemplo, la contraseña del usuario y
una clave calculada a partir de la identificación de la computadora. La clave
del usuario es el mensaje y la identificación de la computadora es la clave. Si
el resultado del HMAC se guarda en la base de datos, luego durante el
proceso de autenticación el usuario tiene que escribir su contraseña y estar
trabajando en la PC autorizada para poder autenticarse. Ese mismo proceso
se puede realizar para almacenar la contraseña del usuario y el hash del
resultado de un escáner de huella dactilar por poner otro ejemplo.

Se puede combinar mas de un HMAC para lograr un autenticación multifactor con


más de dos factores. Por ejemplo se puede calcular un HMAC entre el texto del
mensaje y una clave secreta. Luego el hash generado por el 1er HMAC puede
introducirse a un 2do HMAC y combinarlo con el hash de un escáner de retina. De
esa forma el hash resultante depende del mensaje, la clave privada y un escáner de
retina. La posibilidad de combinaciones depende de las necesidades de quien lo
necesite a utilizar.

¿Qué es una firma digital?

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, a diferencia de una firma tradicional, no es un nombre sino que


consta de dos "claves" o secuencias de caracteres separadas. Consiste en aplicar
mecanismos criptográficos al contenido de un mensaje o documento con el objetivo
de demostrar al receptor del mensaje que:

● El emisor del mensaje es real (autenticación);


● Éste no puede negar que envió el mensaje (no repudio);
● El mensaje no ha sido alterado desde su emisión (integridad).

¿Todas las firmas electrónicas son firmas digitales?

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".

Este tipo de firma electrónica no permite atribuir la firma electrónica de un firmante a


ese firmante en concreto, por lo que no reúne las características de la firma digital.

Por tanto, todas las firmas digitales son electrónicas, pero no todas las firmas
electrónicas son digitales.

La validez legal de la firma digital

La firma digital es legal, pero su objetivo no es dar fe de un acto de voluntad por


parte del firmante como la firma electrónica, sino tan sólo encriptar los datos de un
documento para conferirle mayor seguridad.

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.

¿Cómo funciona la firma digital?

Las firmas digitales se basan en la criptografía de clave pública, también conocida


como criptografía asimétrica. Normalmente hay tres algoritmos involucrados con el
proceso de firma digital:

● Generación de dos claves que están matemáticamente vinculadas: un


algoritmo proporciona una clave privada junto con su clave pública
correspondiente.
● Firma: este algoritmo produce una firma al recibir una clave privada y el
mensaje que se está firmando.
● Verificación: este algoritmo comprueba la autenticidad del mensaje al
verificarlo junto con la firma y la clave pública.

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.

Usos de la firma digital

1. Consentimiento informado

En el sector salud la firma electrónica toma una relevancia especial. Mediante la


firma digital del consentimiento informado las personas asumen sus propias
responsabilidades en la toma de decisiones sanitarias reduciendo de manera
considerable los tiempos de gestión.

2. Peticiones públicas

La Unión Europea lleva años impulsando la digitalización de las Administraciones


Públicas y lo mismo sucede en muchos países de América Latina. Por lo tanto, no
es de extrañar que cada vez sea más recurrente el uso de la firma electrónica para
gestionar trámites con la administración.

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.

En este caso, también es especialmente importante destacar la seguridad que


aporta la firma electrónica y la digitalización de documentos, algo que no caracteriza
a la gestión en papel.

4. Acuerdos con proveedores

Una de las principales ventajas que ofrece la firma digital es la posibilidad de


utilizarla desde cualquier dispositivo, en cualquier lugar y en el momento que se
desee. Todo esto permite que las empresas puedan continuar con su actividad
comercial.

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

El departamento de recursos humanos es uno de los principales beneficiados con la


introducción de la firma electrónica en las empresas. Las relaciones contractuales
con los empleados se pueden realizar de manera telemática tras la introducción de
la firma digital, lo que reduce de forma drástica los tiempos de gestión y mejora de
imagen de la empresa de cara a sus empleados.

Comparación de los algoritmos de firma digital

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

Ambas operaciones requieren la encriptación y el descifrado de clave.

El DSA utiliza la factorización de números grandes. Los gobiernos utilizan el DSA


para las firmas, a fin de crear firmas digitales. El DSA no se extiende más allá de la
firma del mensaje.

El RSA es el algoritmo más común de la criptografía de clave pública en la


actualidad. El RSA se denomina así por las personas que lo crearon en 1977: Ron
Rivest, Adi Shamir, Adi Shamir y Leonard Adleman. El RSA depende del cifrado
asimétrico. El RSA cubre la firma y también cifra el contenido del mensaje.

El DSA es más rápido que el RSA como un servicio de firma de un documento


digital. El RSA es el más adecuado para las aplicaciones que requieren la firma y la
verificación de documentos electrónicos y encriptación de mensaje.

Al igual que la mayoría de las áreas de la criptografía, el algoritmo RSA se basa en


dos principios matemáticos; factorización de módulos y de números primos. Haga
clic aquí para obtener más información sobre cómo RSA utiliza la factorización de
módulos y de números primos.

ECDSA es el algoritmo de firma digital más nuevo que está reemplazando


gradualmente a RSA. La ventaja de este nuevo algoritmo es que puede utilizar
tamaños de clave mucho más pequeños para la misma seguridad y requiere menos
cómputo que RSA.
¿Qué es un certificado digital?

De forma muy sencilla, podemos decir que el certificado digital es un archivo o


documento en formato electrónico que se vincula con una determinada persona y
sirve para identificarla, a través de una clave pública y de forma fehaciente.

En este sentido, aunque a veces se confundan ambos conceptos, es importante


tener clara la diferencia entre certificado digital y firma digital. Así, esta última sería,
simplemente, una serie de datos electrónicos que se vinculan con la información
asociada al firmante.

Las principales características de los certificados digitales son las siguientes:

● Permiten identificar tanto a una persona física como a una persona jurídica,
como luego veremos.

● Se emiten por parte de una autoridad de certificación, como es nuestro caso


a través de IvSign.

● El archivo que contiene el certificado digital puede instalarse en las siguientes


ubicaciones:

○ El navegador que se utilice para el acceso a internet.

○ Una tarjeta criptográfica física ad hoc, como sería el caso del DNI
electrónico (DNIe).

○ Un dispositivo USB específico, de tipo criptográfico.

○ Un módulo de seguridad de hardware (Hardware Security Module o


HSM), que es un dispositivo físico que se utiliza para generar,
almacenar y proteger claves criptográficas.

Uso de certificados digitales

Efectivamente, el certificado digital tiene una gran variedad de posibles aplicaciones


prácticas:

● En el ámbito privado, puede utilizarse para identificar a su titular en cualquier


trámite online, así como para firmar todo tipo de contratos o documentos.

● En el ámbito público, sus aplicaciones son de lo más variado. Entre otras,


podemos mencionar las siguientes:
○ Presentación y liquidación de impuestos (IRPF, IVA, etc.).
○ Realización de trámites ante la Seguridad Social.
○ Presentación de recursos y reclamaciones.
○ Cumplimentación de los datos del censo de población y viviendas.
○ Consulta e inscripción en el padrón municipal.
○ Tramitación y consulta de multas de tráfico.
○ Consulta y trámites para solicitud de subvenciones.
○ Consulta de asignación de colegios electorales.
○ Firma electrónica de todo tipo de documentos y formularios oficiales.

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.

¿Qué es una autoridad de certificación?

En Internet, sería poco práctico intercambiar continuamente la identificación entre


todas las partes. Por lo tanto, las personas acuerdan aceptar la palabra de un
tercero neutral. Probablemente, el tercero realiza una investigación exhaustiva antes
de emitir las credenciales. Después de esta investigación exhaustiva, el tercero
emite credenciales que son difíciles de falsificar. Desde ese momento, todas las
personas que confían en el tercero simplemente aceptan las credenciales que emite
el tercero.

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ó.

¿Qué contiene un certificado digital?

Siempre y cuando un certificado digital siga una estructura estándar, cualquier


entidad podrá leer y comprenderlo, independientemente del emisor. El X.509 es un
estándar de la infraestructura de clave pública (PKI) para administrar los certificados
digitales. La PKI consta de las políticas, las funciones y los procedimientos
necesarios para crear, administrar, distribuir, utilizar, almacenar y revocar los
certificados digitales.

El proceso de validación

Los navegadores y las aplicaciones realizan una comprobación de validación antes


de confiar en un certificado para asegurarse de que es válido. Los tres procesos
incluyen lo siguiente:

● La detección de certificados valida el trayecto de certificación al marcar cada


certificado desde el comienzo con el certificado de la CA raíz
● La validación del trayecto selecciona un certificado de la CA de emisión para
cada certificado de la cadena

● La revocación determina si el certificado fue revocado y por qué

El trayecto del certificado

Una persona obtiene un certificado para una clave pública de un CA comercial. El


certificado pertenece a una cadena de certificados llamada cadena de confianza. El
número de certificados en la cadena depende de la estructura jerárquica de la CA.

Existe una CA de raíz sin conexión y una CA subordinada en línea. El motivo de la


estructura de dos niveles es que la firma X.509 permite una recuperación más
sencilla en caso de riesgo. Si existe una CA sin conexión, puede firmar el nuevo
certificado de CA en línea. Si no hay ninguna CA sin conexión, el usuario debe
instalar un nuevo certificado de CA de raíz en cada máquina, teléfono o tablet
cliente.

Integridad de datos

Las bases de datos proporcionan una forma eficiente de almacenar, recuperar y


analizar datos. A medida que la recopilación de datos aumenta y los datos se
vuelven más sensibles, es importante que los profesionales de la ciberseguridad
protejan el creciente número de bases de datos. Piense en una base de datos como
un sistema de llenado electrónico. La integridad de datos se refiere a la precisión, la
uniformidad y la confiabilidad de los datos almacenados en una base de datos. La
responsabilidad de la integridad de los datos depende de los diseñadores de bases
de datos, desarrolladores y la administración de la organización.

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.

● Integridad de dominio: Todos los datos almacenados en una columna deben


seguir el mismo formato y tener la misma definición.

● Integridad referencial: Las relaciones entre tablas deben permanecer


congruentes. Por lo tanto, un usuario no puede eliminar un registro que se
relaciona con otro.

● Integridad definida por el usuario: Un conjunto de reglas definidas por un


usuario que no pertenece a una de las demás categorías. Por ejemplo, un
cliente realiza un pedido nuevo. El usuario primero verifica si este es un
cliente nuevo. Si lo es, el usuario agrega al cliente nuevo a la tabla de
clientes.

Controles del ingreso de los datos

El ingreso de datos implica introducir datos en un sistema. Un conjunto de


comandos garantiza que los usuarios introduzcan los datos correctos.

Despliegue los controles de datos principales

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.

Controles de validación del campo de datos

Configure las reglas para las verificaciones básicas, que incluyen:

● Entrada obligatoria que garantiza que un campo obligatorio contenga datos

● 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)

● Cantidades positivas en dólares

● Los rangos de datos garantizan que un usuario ingrese datos dentro de un


rango determinado (como una fecha de nacimiento introducida como
01-18-1820, por ejemplo)
● Aprobación obligatoria de segundas personas (un cajero del banco recibe
una solicitud de depósito o de retiro superior al valor especificado lo cual
requiere una segunda o tercera aprobación)

● Activador de modificador de registro máximo (si la cantidad de registros


modificados supera un número predeterminado dentro de un período
específico bloquea a un usuario hasta que el administrador identifica si las
transacciones eran legítimas o no)

● Indicador de actividad inusual (un sistema se bloquea cuando reconoce


actividad inusual)

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:

● Tamaño: Controla la cantidad de caracteres en un elemento de datos

● Formato: Controla que los datos se ajusten a un formato específico

● Coherencia: Controla la coherencia de los códigos en los elementos de datos


relacionados

● Rango: Controla que los datos se encuentran dentro de un valor mínimo y un


valor máximo

● Dígito de control: Proporciona un cálculo adicional para generar un dígito de


control para la detección de errores.

Validación del tipo de datos

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

Uno de los aspectos más vulnerables de la administración de la integridad de la


base de datos es controlar el proceso de entrada de datos. Muchos ataques
conocidos se ejecutan contra una base de datos e insertan datos malformados. El
ataque puede confundir, colapsar o hacer que la aplicación divulgue demasiada
información al atacante. Los atacantes usan los ataques de entrada automatizados.

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

La detección de anomalías se refiere a la identificación de patrones en los datos que


no se ajustan al comportamiento esperado. Estos patrones no se ajustan son
anomalías, valores atípicos, excepciones o aberraciones o sorpresas en diferentes
aplicaciones de bases de datos. La detección y verificación de anomalías es una
contramedida o protección importante en la identificación de la detección de fraudes.
La detección de anomalías en la base de datos puede identificar fraudes en tarjetas
de crédito y seguros. La detección de anomalías en la base de datos puede proteger
los datos de la destrucción o los cambios masivos.

La verificación de anormalías requiere solicitudes o modificaciones de datos de


verificación cuando el sistema detecta patrones inusuales o sorpresivos. Un ejemplo
de esto es una tarjeta de crédito con dos transacciones en ubicaciones de solicitud
muy diferentes en poco tiempo. Si una solicitud de transacción de la ciudad de
Nueva York se realiza a las 10:30 a. m. y una segunda solicitud proviene de Chicago
a las 10:35 a. m., el sistema activa una verificación de la segunda transacción.

Un segundo ejemplo se produce cuando una cantidad inusual de modificaciones en


la dirección de correo electrónico se produce en un número inusual de registros de
la base de datos. Dado que los datos de correo electrónico lanzan ataques de
denegación de servicio, la modificación de correo electrónico de cientos de registros
podría indicar que un atacante utiliza la base de datos de una organización como
herramienta para su ataque de denegación de servicio.

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

Otro concepto importante es la relación entre los diferentes sistemas o tablas de


llenado. La base de la integridad referencial es la clave externa. Una clave externa
en una tabla hace referencia a una clave principal en una segunda tabla. La clave
principal de una tabla identifica de manera única a las entidades (filas) de la tabla.
La integridad referencial mantiene la integridad de las claves externas.

Integridad del dominio

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: Keep Cooding


● https://keepcoding.io/blog/que-es-un-hash/
● https://keepcoding.io/blog/que-es-el-salting-en-criptografia/

Sitio: DocuSign
● https://www.docusign.mx/blog/hash

Sitio: Issuu
● https://issuu.com/agregoriobeltran/docs/seguridad-inform_tica/s/12668145

Sitio: Just Cryptography


● https://justcryptography.com/funciones-hash-criptograficas-y-hmac/

Sitio: Group Seres


● https://blog.groupseres.com/5-usos-de-la-firma-digital

También podría gustarte