Antonio Rodríguez

A importancia dunha boa contrasinal


Por Antonio Rodríguez
 
16 octubre,2008

 

Hoxe en día topamonos en moitas facetas da nosa vida diaria coa necesidade de lembrar contrasinais e números PIN. O noso móvil, a tarxeta do banco, o correo electrónico... son tantas as claves que temos que moitas veces imos ó fácil e escollemos unha palabra ou número moi fácil de recordar ou moi obvio, o cal está compromentendo a nosa información privada.

Moita xente quitalle importancia a isto, a veces autoenganandose con frases como "de todas manerias dame igual que lean o meu correo, non teño nada que esconder", ou "a miña contrasinal é unha palabra que só eu coñezo".  Sen embargo, esas afirmacións non son máis que o producto de unha falsa sensación de seguridade e do descoñecemento do usuario medio do mecanismo das contrasinais á hora de protexer os datos.

É por iso que o 99% dos accesos non autorizados a unha información persoal ou clasificada baseanse na confianza e o descoñecemento do propio usuario.

Imos analizar os erros máis comúns á hora de escoller unha clave, os mitos sobre a importancia ou non de protexer uns datos determinados, e os mecanismos internos das contrasinais.

Erros e falsas escusas cando protexemos a nosa información

  • "Escollín unha clave que é o nome do meu plato favorito e un número":   Nunca empregues unha clave que teña algún sentido para ti, por remoto que sexa. Asume que a persoa que poida querer acceder ós teus datos vaite investigar e dará con ela. Asombraríavos cantas e cantas veces danse casos de este tipo, e con claves realmente rebuscadas.
  • "Escollín unha clave que non ten relación algunha comigo, son palabras ó azar":  Como comentaremos máis adiante, unha clave non se descubre co simple feito de probar unha e outra vez ata dar con ela, "crackease" informáticamente mediante forza bruta, normalmente empregando ataques de diccionario, e dicir, o programa que tenta descifrar esa clave emprega arquivos de texto que conteñen todalas palabras do diccionario para dar con ela.
  • "A miña clave é un número ó azar e moi largo":   Sempre que o sistema o permita, nunca empregues claves numéricas para protexer a tua información. Supoñendo que unha clave consta de 8 cifras numéricas, temos 10 elevado a 8 combinacións posibles, o que nos da 100 millóns de combinacións. Cun ordenador como os que temos calquera na nosa casa e dependendo do algoritmo criptográfico que se empregue para protexela, cun programa de forza bruta podemos comprobar ata 10 millóns de combinacións por segundo: 1 clave de 8 cifras numéricas require pouco máis de 1 minuto para ser *crackeada*. Emprega sempre claves que teñan números e letras (incluidas maiúsculas), e canto máis larga, mellor. Desa forma elevarás de forma exponencial o tempo requerido para crackeala.
  • "A miña clave só a coñezo eu e a miña parella":  O amor e a confianza mútua é moi bonito, pero a miudo tendemos a confundir "confianza" e "compartir" con cousas que non teñen nada que ver con elo, levandoo a extremos perxudiciais. Unha contrasinal ten que ser persoal e intransferible SEN EXCEPCIÓN. A túa moza, o teu marido, os teus fillos... non existe razón lóxica para que teñan que saber as tuas claves. No momento en que duas personas comparten unha clave, esa clave pasa a ser a metade de efectiva, xa que son duas persoas as que teñen posibilidades de equivocarse ou facer algo mal e deixar exposta esa información. Por outro lado, ningúen ten que coñecer o que escribes no teu email, ou a quen chamas co teu móvil; se queres compartilo só tes que falar coa outra persoa, pero non darlle acceso a esa información. Non estragues unha relación por querer demostrar o teu amor confiando ata as tuas contrasinais con outra persoa; é algo moi frecuente e que pode xerar moitos malos entendidos.
  • "So teñen 3 intentos para escribir a miña clave, así que é imposible que a descubran":   Un erro común é pensar que a persoa que quere acceder a túa información vai a empregar o ensaio-erro, escribindo claves a ver se soa a flauta e da coa correcta. As contrasinais están almacenadas nun ordenador de forma cifrada, como analizaremos máis adiante, polo que alguen podería acceder ó sistema empregando calquera tipo de vulnerabilidade informática e conseguir ese ficheiro de claves cifradas. O único que tería que facer sería empregar un programa especial para tratar de "descifrar" esas claves do propio ficheiro, e unha vez obtida a contrasinal, acceder ós datos. É dicir, esa persoa só precisa un intento.
  • "Teño a mesma clave para todo":  Non se debe utilizar a misma clave para todo, xa que se consiguen unha delas terán acceso a todo o demáis. Cando alguén consigue a clave de outra persoa, esa sempre é a primeira clave que probará noutros sitios para ver se tamén funciona.
  • "Teño unha clave boisima, tan boa que nin eu mesmo a recordo. Teñoa aquí apuntada":  As contrasinais non se deben apuntar nunca en ningún sitio. Hay que memorizalas. Ter unha clave en papel é fácil de perder ou de que a rouben, e aun peor se temos apuntada esa clave nun arquivo de ordenador, xa que se acceden a él poderan collerla.
  • "Non me importa que lean o meu correo electrónico, non teño nada que esconder":   Antes de analizar esta frase vou facer un incíso: Unha dirección de correo electrónico contemplase legalmente como dato persoal segundo a LOPD (Ley de Protección de Datos) española, independentemente da sua seguridade . Alguén con acceso ó teu correo electrónico non só ten a capacidade de ler o que lle escribes os teus amigos e coñecidos, ten a capacidade de suplantarte. Nestos días nos que a comunicación por internet cobra cada vez máis importancia, que alguén se faga pasar por ti é algo que non se pode pasar por alto, xa que o remite dunha mensaxe (a tua dirección de correo) ten para ben ou para mal maior credibilidade que a tua propia persoa, polo tanto podete traer moitos quebradeiros de cabeza, xa que vai ser moi dificíl explicarlle a outra persoa que non fuches ti quen escribeu a mensaxe cando a dirección do remite é a túa.  Por outro lado, as direccións electrónicas soen empregarse para acceder a servicios web, foros, e incluso para compra-venta en Internet (por exemplo, en eBay), polo que alguén con acceso á tua pode acceder a todolos servizos que teñas ligados a ela. Para rematar, pero non por elo menos importante: baixo as mensaxes (por insulsas que parezan) que mantés con outras persoas mediante o correo, agochase moita información sobre ti mesmo e sobre esas persoas, polo que alguén que as poida ler pode descubrir moitisimos detalles sobre a tua vida que non ten porque saber, especialmente se esa persoa é boa psicóloga.

Como funcionan as claves

Aínda que con pequenas variacións, imonos centrar no mecanismo criptográfico básico que se emprega para o almacenamento de claves nun servidor e como se acada a autentificación empregando esas claves.

Cando creamos un usuario nun sistema operativo, ou nunha páxina web, ou en case calquera sistema que empregue usuario/contrasinal como método de autentificación, tanto o nome como a clave (así como outros datos) quedan gardadas nun arquivo ou base de datos  de un servidor para nun futuro poder acceder a ese usuario. A contrasinal, como dato crítico que é gardase como un hash, unha cadea de texto criptografiada, para que ninguen con acceso a ese servidor sexa capaz de ler a clave tal cal é, nin sequera os administradores do mesmo.

Ese hash xérase cifrando a clave orixinal empregando un algoritmo criptográfico de un só sentido; isto é, unha vez criptográfiada a clave, non existe un algoritmo inverso para descifrala.  Algúns dos algoritmos de un só sentido máis empregados son o triple DES, MD5, SHA...

Cando tentamos autentificarnos no sistema co noso usuario e a nosa clave, o sistema non trata de descifrar o hash que está almacenado para ver se e a correcta; o que fai é cifrar a clave que nos lle damos, e cotexalo co que está gardado, e se coinciden significa que a clave é a correcta para deixanos pasar.

Ainda que este é o método máis seguro hoxe en día para este tipo de autentificación, e aínda que existen multitude de mecanismos para protexer os arquivos desa base de datos para que non poidan ser accedidos, non está libre de ser violado, xa que aínda que a clave gardada non se pode descifrar, si se pode tentar descubrir empregando software de forza bruta.

Se algunha persoa conseguise acceder o servidor onde se gardan as claves, e saltarse a seguridade desa máquina para acceder os arquivos de claves, o único que protexe a túa clave é a forza do algoritmo empregado para cifrala (o tempo que lle costa a un ordenador cifrar unha palabra calquera con ese algoritmo), e o boa que sexa a túa clave.

Forza bruta e ataques de diccionario

O contrario do que pode parecer, a forza bruta non trata sobre introducir usuarios e claves o azar ata dar coa correcta, de feito existen mecanismos para evitar ese tipo de cousas, como poñer un número limitado de intentos e despois bloquear o sistema unhas horas. A forza bruta realizase directamente sobre os arquivos onde se almacenan esas claves cifradas no caso de que conseguisen violar a seguridade do sistema e obtelos.

O que fai un software de forza bruta e comezar a cifrar palabras, e comparalas cos hash almacenados nese arquivo, e as que coincidan son válidas. Falabamos da forza do algoritmo criptográfico con que esas claves están cifradas; isto non é máis que o tempo que necesita un ordenador para cifrar unha palabra, canto máis tempo lle leve, menos comparacións por segundo pode facer o cracker. Poderiamos dicir "¿por qué non utilizar un algoritmo que precise de unha hora para cifrar unha clave?". A resposta e obvia: precisamos encontrar o equilibrio entre "forza" e "usabilidade", xa que non sería razoable ter que esperar unha hora cada vez que queremos acceder ó noso correo electrónico.

Os programas de forza bruta empregan algoritmos sofisticados para optimizar o seu rendemento, é dicir, tratan de comparar so "posibles" claves, en lugar de probar tódalas palabras.

Por exemplo, se non empregasen ningún tipo de discriminación, comezarían probando con "a", despois "b", despois "c"... despois "aa", "ab", "ac"... ata cousas como "AsJJsuYS3". Considerando que unha clave pode conter tanto números como maiúsculas como minusculas, as combinacións posibles son enormes, e podería levarlle anos dar coa correcta.

Aparece entón o concepto de ataques de diccionario, nos que o programa xa non compara claves o azar, senón que toma palabras sacadas dun diccionario (un arquivo de texto cheo de palabras), nomes propios, e un largo etcetera, xa que o máis habitual é que alguén empregue palabras reais, e non números e letras sen sentido. Con eso reducen infinitamente o tempo necesario para probar todas esas combinacións.

Pero imos mais alá. Istos programas son moi listos, e non só proban esas palabras de diccionario, senon que ademais fan permutacións sobre elas para abarcar un maior campo.

Tomada a palabra "camion", ou "pepito", o programa vai probar con "itopep", "otipep", "PePiTo", "PEPITO", "P3p1t0", "pepito1", "pepito2", etc, etc. Incluso probará combinacións de varias palabras, como "camionpepito", e "pepitocamion". Existen incluso algoritmos moito máis sofisticados que empregan coñecementos psicolóxicos sobre o ser humano para saber cal é a forma habitual de escoller unha clave por parte do usuario medio, de forma que poden chegar a formar comparacións como "ocamiondepepito" (ou sexa, empregar conxuncions da lingua).

Cando un ataque de este tipo non é efectivo, en lugar de probar con palabras ó azar, van a probar primeiro a xerar palabras aleatorias, pero seguindo un patrón de sílabas, xa que como persoas que somos o máis normal e que poñamos algo pronunciable como "puFicruMo" e non "uIDNs3udywO"

Visto esto deducimos que unha boa clave e unha clave larga, que empregue maiusculas, minusculas e números, que non estea basada nunha palabra real, e que non siga un patrón silábico. Desta forma poñeremosllo moi difícil á forza bruta.

Sabemos e entendemos que unha clave deste tipo é complicada de memorizar, máis se cabe cando temos que memorizar máis de unha, e que non debemos apuntalas en papel. Para iso imos usar algúns trucos.

Trucos para escoller unha boa clave

Non existe unha fórmula maxistral para escoller unha contrasinal en condicións (e se existíse xa non serviría, ¿recordades o de non seguir patróns coñecidos?).

Se és unha persoa con boa memoria, o ideal é que xeres unha o azar seguindo os consellos que demos antes, e tratar de memorizala. Sen embargo, podes empregar algúns trucos como os seguintes (non os tomes o pé da letra, son só suxerencias para que ti mesmo crees o teu propio truco).

  • Colle as iniciais dos teus fillos, despois os 3 ultimos números do teu teléfono, e despois as duas últimas letras de cada un dos teus apelidos (a primeira en maiúscula, e a segunda en minúscula).
  • Dalle a volta ó teu nóme, alterna cada letra (maiúscula-minúscula-maiúscula...) e intercala os dixitos do teu DNI co resultado: Ex. antonio -> oinotna -> oInOtNa -> o4I4n8O2t3N6a

Agora que sabes todo isto, ¿é a túa clave segura?