Què és una funció hash criptogràfica?

Taula de continguts:

Què és una funció hash criptogràfica?
Què és una funció hash criptogràfica?
Anonim

Una funció hash criptogràfica (CHF) és un algorisme que es pot executar amb dades com ara un fitxer individual o una contrasenya per produir un valor anomenat suma de comprovació.

L'ús principal d'un CHF és verificar l'autenticitat d'una dada. Es pot suposar que dos fitxers són idèntics només si les sumes de control generades a partir de cada fitxer, utilitzant la mateixa funció hash criptogràfica, són idèntiques.

Algunes funcions hash criptogràfiques que s'utilitzen habitualment inclouen MD5 i SHA-1, encara que també n'hi ha moltes altres. Sovint s'anomena "funcions hash", però això no és tècnicament correcte. Una funció hash és un terme genèric que inclou CHF juntament amb altres tipus d'algorismes com les comprovacions de redundància cíclica.

Funcions hash criptogràfiques: un cas d'ús

Diguem que baixeu la darrera versió del navegador Firefox. Per algun motiu, calia descarregar-lo des d'un lloc diferent del de Mozilla. Com que no s'allotja en un lloc en el qual hàgiu après a confiar, us agradaria assegurar-vos que el fitxer d'instal·lació que acabeu de baixar sigui exactament el mateix que ofereix Mozilla.

Usant una calculadora de suma de verificació, calculeu una suma de verificació mitjançant una funció hash criptogràfica concreta, com ara SHA-2, i després la compareu amb la publicada al lloc de Mozilla. Si són iguals, podeu estar raonablement segur que la descàrrega que teniu és la que Mozilla volia tenir.

Image
Image

Les funcions hash criptogràfiques es poden invertir?

Les funcions hash criptogràfiques estan dissenyades per evitar la possibilitat de revertir les sumes de control que creen als textos originals. Tanmateix, tot i que són pràcticament impossibles de revertir, no estan garantits al 100% per salvaguardar les dades.

Els pirates informàtics poden utilitzar una taula de l'arc de Sant Martí per esbrinar el text senzill d'una suma de verificació. Les taules de l'arc de Sant Martí són diccionaris que enumeren milers, milions o fins i tot milers de milions de sumes de control juntament amb el seu valor de text sense format corresponent.

Tot i que tècnicament això no està invertint l'algoritme hash criptogràfic, també podria ser-ho, atès que és tan senzill de fer. En realitat, com que cap taula de l'arc de Sant Martí pot enumerar totes les possibles sumes de control existents, normalment només són útils per a frases senzilles com les contrasenyes febles.

Aquí hi ha una versió simplificada d'una taula de l'arc de Sant Martí per mostrar com funcionaria si s'utilitzaria la funció hash criptogràfica SHA-1:

Exemple de taula de l'arc de Sant Martí
text en pla SHA-1 Checksum
12345 8cb2237d0679ca88db6464eac60da96345513964
contrasenya1 e38ad214943daad1d64c102faec29de4afe9da3d
ilovemydog a25fb3505406c9ac761c8428692fbf5d5ddf1316
Jenny400 7d5eb0173008fe55275d12e9629eef8bdb408c1f
dallas1984 c1ebe6d80f4c7c087ad29d2c0dc3e059fc919da2

Un pirata informàtic ha de saber quin algorisme criptogràfic hash s'ha utilitzat per generar les sumes de control per esbrinar els valors.

Per a una protecció addicional, alguns llocs web que emmagatzemen contrasenyes d'usuari realitzen funcions addicionals a l'algoritme hash criptogràfic després de generar el valor, però abans d'emmagatzemar-lo. Aquest procés produeix un valor nou que només el servidor web entén i que no coincideix amb la suma de comprovació original.

Per exemple, després d'introduir una contrasenya i generar la suma de comprovació, es pot separar en diverses parts i reorganitzar-la abans d'emmagatzemar-la a la base de dades de contrasenyes, o bé es poden intercanviar determinats caràcters per altres. Quan s'intenta autenticar la propera vegada que l'usuari iniciï la sessió, el servidor inverteix aquesta funció addicional i es torna a generar la suma de comprovació original per verificar que la contrasenya d'un usuari és vàlida.

Prendre aquests passos limita la utilitat d'un pirateig on es roben totes les sumes de control. La idea és realitzar una funció que es desconeix, de manera que si el pirata informàtic coneix l'algoritme hash criptogràfic però no el personalitzat, saber les sumes de comprovació de la contrasenya no és útil.

Contrasenyes i funcions hash criptogràfiques

Una base de dades desa les contrasenyes dels usuaris d'una manera similar a una taula de l'arc de Sant Martí. Quan s'introdueix la vostra contrasenya, es genera la suma de comprovació i es compara amb la registrada amb el vostre nom d'usuari. Aleshores se't concedeix accés si els dos són idèntics.

Atès que un CHF produeix una suma de comprovació no reversible, és segur que la contrasenya sigui tan senzilla com 12345, en lloc de 12@34 $5, simplement perquè no es poden entendre les sumes de control? No, i aquí teniu el perquè.

Aquestes dues contrasenyes són impossibles de desxifrar només mirant les sumes de control:

MD5 per a 12345: 827ccb0eea8a706c4c34a16891f84e7b

MD5 per 12@34$5: a4d3cc004f487b18b2ccd4853053818b

A primera vista, potser penseu que està bé utilitzar qualsevol d'aquestes contrasenyes. Això és cert si un atacant intenta esbrinar la teva contrasenya endevinant la suma de comprovació MD5, cosa que ningú fa, però no és cert si es realitza un atac de força bruta o de diccionari, que és una tàctica habitual.

Un atac de força bruta es produeix quan es fan diverses punyalades aleatòries per endevinar una contrasenya. En aquest cas, seria fàcil endevinar 12345, però bastant difícil esbrinar-ne l'atzar. Un atac de diccionari és similar en què l'atacant pot provar cada paraula, nombre o frase d'una llista de contrasenyes habituals (i no tan habituals), i 12345 és una d'aquestes contrasenyes habituals. contrasenyes.

Tot i que les funcions hash criptogràfiques produeixen sumes de comprovació difícils o impossibles d'endevinar, encara hauríeu d'utilitzar una contrasenya complexa per a tots els vostres comptes d'usuari en línia i locals.

Més informació sobre les funcions hash criptogràfiques

Podria semblar que les funcions hash criptogràfiques estan relacionades amb l'encriptació, però les dues funcionen de maneres diferents.

El xifratge és un procés bidireccional en què alguna cosa es xifra perquè es torni il·legible i després es desxifra per tornar-la a utilitzar amb normalitat. Podeu xifrar els fitxers que hàgiu emmagatzemat perquè ningú que hi accedeixi no els pugui utilitzar, o podeu utilitzar el xifratge de transferència de fitxers per xifrar els fitxers que es mouen per una xarxa, com els que pengeu o baixeu en línia.

Les funcions hash criptogràfiques funcionen de manera diferent, ja que les sumes de comprovació no s'han de revertir amb una contrasenya de dehashing especial. L'únic objectiu que serveixen els CHF és comparar dues dades, com ara quan es baixen fitxers, emmagatzemen contrasenyes i extreu dades d'una base de dades.

És possible que una funció hash criptogràfica produeixi la mateixa suma de comprovació per a diferents peces de dades. Quan això succeeix, s'anomena col·lisió, que és un gran problema tenint en compte que el punt de la funció és fer sumes de control úniques per a cada entrada de dades.

Es poden produir col·lisions perquè cada CHF produeix un valor d'una longitud fixa independentment de les dades d'entrada. Per exemple, la funció hash criptogràfica MD5 genera 827ccb0eea8a706c4c34a16891f84e7b, 1f633b2909b9c1addf32302c7a497983 i e10adc3949ba59a16891f84e7b per a un total de tres blocs diferents de dades diferents.

La primera suma de comprovació és de 12345. El segon es va generar a partir de més de 700 lletres i números, i el tercer és de 123456. Les tres entrades tenen longituds diferents, però els resultats sempre tenen només 32 caràcters, ja que es va utilitzar la suma de comprovació MD5.

No hi ha límit en el nombre de sumes de control que es podrien crear perquè se suposa que cada petit canvi en l'entrada produirà una suma de control completament diferent. Com que hi ha un límit en el nombre de sumes de control que pot produir un CHF, sempre hi ha la possibilitat que us trobeu amb una col·lisió.

És per això que s'han creat altres funcions hash criptogràfiques. Mentre que MD5 genera un valor de 32 caràcters, SHA-1 genera 40 caràcters i SHA-2 (512) en genera 128. Com més gran sigui el nombre de caràcters que tingui la suma de verificació, menys probabilitats es produeixi una col·lisió.

Recomanat: