b'\n_START_ARTICLE_\nPassword cracking\n_START_PARAGRAPH_\nEl password cracking \xc3\xa9s un proc\xc3\xa9s inform\xc3\xa0tic que consisteix a desxifrar la contrasenya de determinades aplicacions seleccionades per l\'usuari. Es busca codificar els codis de  xifrat en tots els \xc3\xa0mbits de la inform\xc3\xa0tica. Es tracta del trencament o desxiframent de les  claus (passwords). Normalment en un sistema com aquest, les contrasenyes s\'utilitzen per poder autenticar la identitat de l\'usuari i aix\xc3\xad poder establir un nivell de seguretat per entrar al sistema. Aquests atacs s\xc3\xb3n de molt d\'inter\xc3\xa8s per als hackers, ja que, si es poguessin aconseguir la Contrasenya podrien entrar com si fossin l\'usuari, i tenir els seus permisos per fer qualsevol tipus d\'acci\xc3\xb3 a l\'equip afectat. Aquestes accions poden anar des de la modificaci\xc3\xb3 o eliminaci\xc3\xb3 de fitxers a la publicaci\xc3\xb3 o filtraci\xc3\xb3 de dades privades i personals.\n_START_SECTION_\nSistema de contrasenyes\n_START_PARAGRAPH_\nAbans de veure quins atacs es poden fer cal saber com es guarden les contrasenyes en els sistemes operatius que s\'utilitzen di\xc3\xa0riament( Windows, Linux i Mac). Normalment les contrasenyes no es guarden amb el text en clar. Cada sistema operatiu t\xc3\xa9 el seu mecanisme per xifrar els passwords, aquest mecanisme sol ser un hash del string que cont\xc3\xa9 la contrasenya. M\xc3\xa9s concretament, al guardar-se, al password se li aplica diverses iteracions d\'un hash unidireccional. A m\xc3\xa9s a m\xc3\xa9s, en els hashos se\'ls hi afegeix salt per dificultar encara m\xc3\xa9s als possibles atacs.\n_START_SECTION_\nUnix\n_START_PARAGRAPH_\nEn els sistemes precursors a Unix, Multics, l\'emmagatzematge es basava a guardar els passwords en clar, per\xc3\xb2 en un fitxer on nom\xc3\xa9s podia accedir algun usuari amb permisos d\'administrador. Aquesta soluci\xc3\xb3, amb el pas del temps, va resultar ser inefectiva, ja que van apar\xc3\xa8ixer atacs per poder obtenir aquests permisos i poder veure el fitxer. Seguidament, en els sistemes posteriors, es va adoptar el m\xc3\xa8tode de guardar el hash en un fitxer. Inicialment es podia trobar els hashos en el fitxer: /etc/passwd. El problema que comportava aquest m\xc3\xa8tode era que aquest fitxer pot ser llegit per tots els usuaris, i van apar\xc3\xa8ixer m\xc3\xbaltiples atacs per trobar el password a partir del hash. Per afegir un nou nivell de seguretat, en els sistemes actuals, el fitxer "passwd" nom\xc3\xa9s es pot trobar informaci\xc3\xb3 sobre els usuaris del sistema, i els hashos de les contrasenyes es troben en el fitxer: /etc/shadow, al que nom\xc3\xa9s es pot accedir amb permisos d\'administrador.\n_START_SECTION_\nWindows\n_START_PARAGRAPH_\nEl sistema Windows funciona amb una estrat\xc3\xa8gia 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\xc3\xa8ncia entre aquest fitxer i els d\'Unix \xc3\xa9s que nom\xc3\xa9s es pot accedir al SAM abans de qu\xc3\xa8 el sistema operatiu s\'inici\xc3\xaf, \xc3\xa9s a dir, un cop s\'ha iniciat el Windows aquest fitxer es torna inaccessible. _NEWLINE_En sistemes m\xc3\xa9s 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\xc3\xa0cil d\'atacar pel fet que la LAN es processava d\'una forma molt poc segura. La LAN tenia un m\xc3\xa0xim de 14 car\xc3\xa0cters, i al guardar-se es dividia en dues parts de 7, el problema va apar\xc3\xa8ixer quan l\'usuari no guardava una contrasenya de 14 car\xc3\xa0cters. Quan succe\xc3\xafa aix\xc3\xb2, els espais en blanc se substitu\xc3\xafen per un Null. Aix\xc3\xb2 feia que enlloc de tenir contrasenyes xifrades de 14 car\xc3\xa0cters es podia tenir una contrasenya de 7 car\xc3\xa0cters i una plena de Nulls. Aix\xc3\xb2 provocava que diversos atacs fossin molt m\xc3\xa9s r\xc3\xa0pids, ja que podien atacar a una contrasenya amb la meitat de car\xc3\xa0cters que els previstos.\n_START_SECTION_\nPasswords en p\xc3\xa0gines web\n_START_PARAGRAPH_\nEn moltes p\xc3\xa0gines web tamb\xc3\xa9 existeix un sistema de contrasenyes, el problema \xc3\xa9s que aquest molts cops no est\xc3\xa0 estandarditzat. Hi ha webs que no guarden els passwords d\'una forma segura, ja qu\xc3\xa8 el sistema de contrasenyes no ha estat fet amb una forta capa de seguretat per darrere. Per exemple, hi han hagut algunes companyies o p\xc3\xa0gines que han tingut vulnerabilitats diverses. I s\'ha pogut observar com guardaven les contrasenyes dels usuaris, en una base de dades SQL, en clar, \xc3\xa9s a dir, sense cap xifratge.\n_START_SECTION_\nPossibles atacs\n_START_PARAGRAPH_\nTots els atacs tenen els seus avantatges i els seus inconvenients. Depenent de la situaci\xc3\xb3, i de quines mesures de protecci\xc3\xb3 tingui la v\xc3\xadctima, alguns atacs tindran millors resultats, encara que semblin molt poc \xc3\xb2ptims. Per poder atacar un sistema de contrasenyes cal trobar el password que doni un hash igual al que est\xc3\xa0 guardat en l\'ordinador. La funci\xc3\xb3 hash que cal aplicar dependr\xc3\xa0 del sistema al qual s\'est\xc3\xa0 atacant, per\xc3\xb2 aquesta informaci\xc3\xb3 \xc3\xa9s p\xc3\xbablica per tant tothom la pot saber. Hi ha atacs que ja porten els hashos precomputats i altres que s\'han de computar mentres s\'executa l\'atac.\n_START_SECTION_\nAtac per for\xc3\xa7a bruta\n_START_PARAGRAPH_\nAquest atac \xc3\xa9s el m\xc3\xa9s simple de fer per\xc3\xb2 tamb\xc3\xa9 el que comporta m\xc3\xa9s temps d\'execuci\xc3\xb3. L\'atac en si consisteix a anar provant passwords en clar, calcular el seu hash, i veure si aquest hash coincideix amb el guardat al sistema. El principal inconvenient \xc3\xa9s el temps d\'execuci\xc3\xb3, ja que l\'atac pot durar molt de temps. Per exemple si la contrasenya tingu\xc3\xa9s 10 car\xc3\xa0cters Asci hi hauria:  possibilitats. En general aquest atac no \xc3\xa9s molt utilitzat degut al cost que comporta el c\xc3\xa0lcul de tants hashos, ja que \xc3\xa9s m\xc3\xa9s interessant aconseguir penetrar, i aconseguir el password, de la m\xc3\xa0quina objectiu estant poc temps amb la m\xc3\xa0quina.\n_START_SECTION_\nAtac per diccionaris\n_START_PARAGRAPH_\nAquest atac consisteix a tenir un diccionari amb els passwords m\xc3\xa9s utilitzats. Aquests passwords es poden trobar f\xc3\xa0cilment per Internet, ja que hi ha moltes estad\xc3\xadstiques p\xc3\xbabliques informant dels passwords m\xc3\xa9s t\xc3\xadpics 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. Les dues m\xc3\xa9s destacables s\xc3\xb3n:\n_START_SECTION_\nDiccionaris en clar\n_START_PARAGRAPH_\nAl diccionari en clar es guarden les contrasenyes sense el seu hash, aix\xc3\xb2 fa que el diccionari ocupi molta menys mem\xc3\xb2ria, per\xc3\xb2 t\xc3\xa9 el problema de tenir un cost de temps (al moment de fer l\'atac) semblant a l\'Atac per for\xc3\xa7a bruta, ja que s\'han de calcular els hashos per cada contrasenya qu\xc3\xa8 es provi.\n_START_SECTION_\nDiccionaris Pre-Computats\n_START_PARAGRAPH_\nAquest tipus de diccionari guarda els hashos de les contrasenyes a m\xc3\xa9s de les contrasenyes en clar. Tot el cost computacional de calcular els hashos es fa pr\xc3\xa8viament a l\'atac, aix\xc3\xb2 comporta una reducci\xc3\xb3 significativa del temps que es trigar\xc3\xa0 a trobar la contrasenya a la m\xc3\xa0quina objectiu. Per\xc3\xb2 tot t\xc3\xa9 un preu, aquesta reducci\xc3\xb3 es veu afectada per l\'espai en mem\xc3\xb2ria necessari per emmagatzemar el diccionari, ja que amb els hashos la mida augmenta significativament. Com m\xc3\xa9s passwords es vulguin tenir precomputats m\xc3\xa9s espai es necessitar\xc3\xa0.\n_START_SECTION_\nRainbow Tables\n_START_PARAGRAPH_\nCom els diccionaris Pre-Computats ocupen molt i els diccionaris en clar segueixen sent molt lents apareixen les Rainbow Tables. L\'estructura d\'una Rainbow Table es basa en cadenes de passwords on a cada un dels passwords se li aplica una funci\xc3\xb3 hash(H) i una funci\xc3\xb3 de reducci\xc3\xb3 (R). Aquestes funcions s\'apliquen alternament, \xc3\xa9s a dir, es comen\xc3\xa7a aplicar una funci\xc3\xb3 H i seguidament s\'aplica una funci\xc3\xb3 R, i es va seguint aix\xc3\xad fins a obtenir un nombre espec\xc3\xadfic de combinacions. En aquest atac \xc3\xa9s important la funci\xc3\xb3 R, aquesta funci\xc3\xb3 no retorna l\'invers del hash, en lloc d\'aix\xc3\xb2 retorna un password en clar qualsevol. Tant el hash com la R les escull qui fa la Rainbow Table Per exemple:_NEWLINE_De tota aquesta cadena, que pot ser tan gran com es vulgui, en una Rainbow Table es pot veure el primer i l\'\xc3\xbaltim element. I en el fitxer es troben diferents entrades on cada una d\'elles \xc3\xa9s una cadena._NEWLINE_Per poder fer un atac amb una Rainbow Table cal mirar si el Hash en el sistema coincideix amb algun \xc3\xbaltim element d\'alguna cadena. Quan es trobi alguna coincid\xc3\xa8ncia s\'agafa el primer valor de la cadena i es reconstrueix fent servir les funcions R i H. S\'anir\xc3\xa0 expandint la cadena fins que algun hash coincideixi amb el guardat al sistema. Quan s\'ha trobat la coincid\xc3\xa8ncia la contrasenya ser\xc3\xa0 el valor anterior. Per exemple:_NEWLINE_Amb aquest atac s\'aconsegueix un temps per atacar a la m\xc3\xa0quina molt redu\xc3\xaft, a m\xc3\xa9s de necessitar poc espai de memoria, ja que nom\xc3\xa9s s\'emmagatzema el primer i l\'\xc3\xbaltim element de cadenes que poden ser molt grans. Per\xc3\xb2 tot i aix\xc3\xb2 no es un atac perfecte, en les cadenes es poden produir bucles infinits, o m\xc3\xa9s d\'una cadena diferent pot tenir el mateix \xc3\xbaltim element( tamb\xc3\xa9 conegut com a col\xc2\xb7lisi\xc3\xb3)._NEWLINE_Per solucionar aix\xc3\xb2 s\'han d\'utilitzar diferents funcions de reducci\xc3\xb3 dins d\'una mateixa cadena.\n_START_SECTION_\nSalt\n_START_PARAGRAPH_\nLa salt \xc3\xa9s el m\xc3\xa8tode m\xc3\xa9s utilitzat per tal de fer que els atacs siguin molt m\xc3\xa9s complicats de fer. Una salt \xc3\xa9s un valor de X bits, depenent del sistema ser\xc3\xa0 d\'un nombre de bits o d\'un altre, que es guardar\xc3\xa0 en clar conjuntament amb la contrasenya. Aquest valor varia \xc3\xa9s aleatori i canvia de valor per a cada un dels usuaris del sistema. En el moment de fer el hash es far\xc3\xa0:_NEWLINE__NEWLINE_ _NEWLINE_Amb aquest m\xc3\xa8tode s\'aconsegueix que els diccionaris pre-computats i les Rainbow Tables costin molt m\xc3\xa9s temps de fer, a m\xc3\xa9s que els diccionaris ocuparan molta m\xc3\xa9s mem\xc3\xb2ria. Aix\xc3\xb2 \xc3\xa9s pel fet que en fer la pre-computaci\xc3\xb3 no es pot saber quina salt es ficar\xc3\xa0, ja que varia segons cada usuari. A l\'\xc3\xbanic atac que no afecta \xc3\xa9s al de for\xc3\xa7a bruta, ja que com s\'ha de fer quan es t\xc3\xa9 acc\xc3\xa9s a la m\xc3\xa0quina ja es pot con\xc3\xa8ixer la salt, per\xc3\xb2 en ser un atac molt poc viable de fer no representa cap problema.\n_START_SECTION_\nAugmentar dificultat de les contrasenyes\n_START_PARAGRAPH_\nUna altra soluci\xc3\xb3 \xc3\xa9s augmentar la dificultat de les contrasenyes. Segons molts estudis i investigacions molta gent utilitza contrasenyes molt f\xc3\xa0cil d\'endevinar, la contrasenya m\xc3\xa9s utilitzada al m\xc3\xb3n \xc3\xa9s la de:"123456" i la segona:"12345".Cal tenir a totes les contes una contrasenya suficientment llarga i barrejant el m\xc3\xa0xim de car\xc3\xa0cters possible. Escollir una contrasenya molt llarga i dif\xc3\xadcil tampoc \xc3\xa9s una opci\xc3\xb3, ja que amb el temps s\'acaba oblidant i llavors l\'usuari \xc3\xa9s qui no pot accedir a la seva pr\xc3\xb2pia conta. La millor opci\xc3\xb3 per escollir una contrasenya \xc3\xa9s utilitzar el sentit com\xc3\xba, agafar una contrasenya que sigui molt l\xc3\xb2gica i f\xc3\xa0cil nom\xc3\xa9s per t\xc3\xba, i si pot contenir n\xc3\xbameros, car\xc3\xa0cters i lletres millor.\n_START_SECTION_\nProbabilitats d\'encertar un password\n_START_PARAGRAPH_\nLa probabilitat d\'\xc3\xa8xit d\'aconseguir un password es pot mesurar amb la f\xc3\xb3rmula d\'Anderson\'s. Aquesta \xc3\xa9s la seg\xc3\xbcent:_NEWLINE_Com es pot veure la probabilitat d\'\xc3\xa8xit anir\xc3\xa0 relacionada amb la quantitat de possibilitats que s\'hagin d\'avaluar, per aix\xc3\xb2 la import\xc3\xa0ncia d\'escollir un bon password.'