Password cracking: diferència entre les revisions

Contingut suprimit Contingut afegit
Fusiono des d'Atacs a esquemes de contrasenyes
Robot estandarditza i catalanitza referències, catalanitza dates i fa altres canvis menors
Línia 4:
Abans de veure quins atacs es poden fer cal saber com es guarden les contrasenyes en els [[sistemes operatius]] que s'utilitzen diàriament( [[Windows]], [[Linux]] i [[Mac]]). Normalment les contrasenyes '''no''' es guarden amb el '''text en clar'''. Cada sistema operatiu té el seu mecanisme per xifrar els passwords, aquest mecanisme sol ser un [[Funció hash|hash]] del [[Cadena (informàtica)|string]] que conté la contrasenya. Més concretament, al guardar-se, al password se li aplica diverses iteracions d'un '''hash unidireccional'''. A més a més, en els hashos se'ls hi afegeix ''salt'' per dificultar encara més als possibles atacs.
===Unix===
En els sistemes precursors a [[Unix]], [[Multics]], l'emmagatzematge es basava a guardar els passwords en clar, però en un fitxer on només podia accedir algun usuari amb permisos d'administrador. Aquesta solució, amb el pas del temps, va resultar ser inefectiva, ja que van aparèixer atacs per poder obtenir aquests permisos i poder veure el fitxer. Seguidament, en els sistemes posteriors, es va adoptar el mètode de guardar el hash en un fitxer. Inicialment es podia trobar els hashos en el fitxer: ''/etc/passwd''. El problema que comportava aquest mètode era que aquest fitxer pot ser llegit per tots els usuaris, i van aparèixer múltiples atacs per trobar el [[password]] a partir del hash. Per afegir un nou nivell de seguretat, en els sistemes actuals, el fitxer ''"passwd"'' només es pot trobar informació sobre els usuaris del sistema, i els hashos de les contrasenyes es troben en el fitxer: ''/etc/shadow'', al que només es pot accedir amb permisos d'administrador. <ref name="Sam">Sam Martin and Mark Tokutomi. Password Cracking. https://www2.cs.arizona.edu/~collberg/Teaching/466-566/2012/Resources/presentations/2012/topic7-final/report.pdf</ref>
 
===Windows===
El sistema Windows funciona amb una estratègia '''semblant a la d'Unix'''. Hi ha un fitxer on es guarda tot el relacionat amb els passwords dels usuaris, aquest fitxer es troba a: ''\windows\system32\config\sam''. Aquest fitxer es coneix com a ''Security Accounts Manager''. La diferència entre aquest fitxer i els d'Unix és que només es pot accedir al SAM '''abans''' de què el sistema operatiu '''s'iniciï''', és a dir, un cop s'ha iniciat el Windows aquest fitxer es torna '''inaccessible'''. <ref name="Sam"/>
 
En sistemes més antics (com [[Windows XP]]) en el fitxer, hi havia dues contrasenyes per cada usuari, una de local''([[LAN]])'' i una de Windows, quan un usuari ficava una contrasenya i coincidia amb alguna d'aquestes, l'usuari podia accedir. Aquest sistema era fàcil d'atacar pel fet que la LAN es processava d'una forma molt poc segura. La LAN tenia un màxim de 14 [[caràcters]], i al guardar-se es dividia en dues parts de 7, el problema va aparèixer quan l'usuari no guardava una contrasenya de 14 caràcters. Quan succeïa això, els espais en blanc se substituïen per un Null. Això feia que enlloc de tenir contrasenyes xifrades de 14 caràcters es podia tenir una contrasenya de 7 caràcters i una plena de Nulls. Això provocava que diversos atacs fossin molt més ràpids, ja que podien atacar a una contrasenya amb la meitat de caràcters que els previstos.<ref>https://support.microsoft.com/es-es/help/102716/ntlm-user-authentication-in-windows</ref>
Línia 19:
Aquest atac consisteix a tenir un diccionari amb els '''passwords més utilitzats'''. Aquests passwords es poden trobar fàcilment per ''Internet'', ja que hi ha moltes estadístiques públiques informant dels passwords més típics o diccionaris ja fets per altra gent. Amb aquest diccionari es pot aconseguir augmentar bastant la probabilitat de trobar la contrasenya en '''poc temps''', encara que segueix sent un temps bastant elevat. D'aquest tipus d'atac podem trobar diverses modificacions segons el que tingui el diccionari.<ref name="Pass"/> Les dues més destacables són:
====Diccionaris en clar====
Al diccionari en clar es guarden les contrasenyes sense el seu hash, això fa que el diccionari ocupi molta menys memòria, però té el problema de tenir un cost de temps (al moment de fer l'atac) semblant a l'Atac per força bruta, ja que s'han de calcular els hashos per cada contrasenya què es provi. <ref>https://www2.cs.arizona.edu/~collberg/Teaching/466-566/2012/Resources/presentations/2012/topic7-final/report.pdf</ref>
 
====Diccionaris Pre-Computats====
Línia 49:
Amb aquest mètode s'aconsegueix que els diccionaris pre-computats i les Rainbow Tables costin molt més temps de fer, a més que els diccionaris ocuparan molta més memòria. Això és pel fet que en fer la pre-computació no es pot saber quina salt es ficarà, ja que varia segons cada usuari. A l'únic atac que no afecta és al de força bruta, ja que com s'ha de fer quan es té accés a la màquina ja es pot conèixer la salt, però en ser un atac molt poc viable de fer no representa cap problema.<ref>https://crackstation.net/hashing-security.htm#salt</ref>
===Augmentar dificultat de les contrasenyes===
Una altra solució és augmentar la dificultat de les contrasenyes. Segons molts estudis i investigacions molta gent utilitza contrasenyes molt fàcil d'endevinar, la contrasenya més utilitzada al món és la de:"123456" i la segona:"12345". <ref>https://www.imperva.com/docs/gated/WP_Consumer_Password_Worst_Practices.pdf</ref>Cal tenir a totes les contes una contrasenya suficientment llarga i barrejant el màxim de caràcters possible. Escollir una contrasenya molt llarga i difícil tampoc és una opció, ja que amb el temps s'acaba oblidant i llavors l'usuari és qui no pot accedir a la seva pròpia conta. La millor opció per escollir una contrasenya és utilitzar el sentit comú, agafar una contrasenya que sigui molt lògica i fàcil només per tú, i si pot contenir números, caràcters i lletres millor. <ref>https://www.lightbluetouchpaper.org/2011/11/08/want-to-create-a-really-strong-password-dont-ask-google/</ref>
 
==Probabilitats d'encertar un password==