25 diciembre 2021

Diceware el método más seguro para crear contraseñas a prueba de bombas

 

Diceware: Un método seguro de generar contraseñas






No he encontrado mejor manera de resumir este artículo que con este comic tan popular en internet de XKCD, y es que mucha gente quizás debido a una información incompleta ha llegado a pensar que toda la fortaleza de una contraseña se basa en lo antihumana que parezca, usando símbolos, números y alternando mayúsculas con minúsculas.
Bueno, pues parte de verdad hay en ello , pero si esa contraseña no tiene una longitud adecuada la entropía que generamos es ridícula y esa contraseña como se ve en el comic se podría romper con fuerza bruta en poco tiempo.

Llegados aquí creo que sería bueno explicar una serie de conceptos que deberíamos tener claros para entender en que se basa la seguridad de una contraseña y quitar de en medio los bulos que por ahí corren.

1- No es lo mismo que hayan hackeado o se haya visto comprometido la base de datos donde un servicio guarda los hash de las contraseñas que este hecho no haya ocurrido.
Vale, y alguno me dirá ¿qué narices es un hash?, pues bien, cuando nosotros creamos una contraseña para entrar en cualquier servicio sea del tipo que sea web, contraseñas de usuario de widows..., lo que se guarda no es la contraseña, eso no pasa NUNCA, y si pasase es que estaríamos tratando con unos auténticos ineptos.
Pues bien lo que se guarda es un hash o resumen, que es la aplicación de una función matemática muy compleja que transforma nuestra contraseña en un galimatías de una longitud fija que no tiene relación alguna con el texto original, es decir, es una función de un sólo sentido y a partir del hash es "imposible" obtener la contraseña desde la cual se generó.
Voy a poner un ejemplo muy sencillo con una función inventada por mi que desde luego no valdría porque no sería lo suficientemente compleja para ser segura pero vale para entenderlo:
Supongamos que creamos una contraseña: "matrix" , obtenemos el código ascii de cada caracter:
m  -> 109
a   ->  97
t   ->  116
r  ->   114
i   ->  105
x  ->  120

Dividimos entre 3 cada una de las cifras y nos quedamos con su parte entera.
Multiplicamos por 2 cada una de las cifras. Ahora sumamos los primeros resultados, sumamos independientemente los segundos y después multiplicamos el segundo y el primero y lo que nos de será el hash resultante.
109/3 = 36           109*2 = 218
97/3   = 32             97*2 = 194
116/3 = 38           116*2 = 232
114/3 = 38           114*2 = 228
105/3 = 35           105*2 = 210
120/3 = 40           120*2 = 240
---------------------       ---------------------
           +219                     +1322

hash = 1322*219 = 289518

Aunque esta función inventada no valdría como algo efectivo, porque cuando se crean estas funciones hay que tener en cuenta cantidad de conceptos matemáticos para entre otras cosas evitar colisiones, es decir, que dados dos textos distintos se obtenga un hash igual. En las funciones que se usan apenas hay colisiones, al menos que se conozcan.
Pero si se puede ver que del resultado es imposible saber el texto del que salió, y eso es lo que se guarda en el servidor y cuando nosotros introducimos la clave, se calcula el hash y se compara con el hash guardado y si coincide te darán acceso.
Y aquí viene la primera disyuntiva, en principio salvo que el pirata tenga los hash utilizar la fuerza bruta contra un servicio web es casi que imposible, por el tiempo entre cada intento a mayores de que muchos sólo permiten un numero pequeño de intentos, entonces si nuestra contraseña no es del tipo "1234" por corta que sea dificilmente el atacante la adivinará, salvo que cometamos el error de poner fechas de cumpleaños, nombres de familiares, mascotas, etc.
Pero como siempre hay que ponerse en lo peor y la experiencia ya ha demostrado que ha pasado hasta a los más grandes hay que pensar que que el pirata tiene los hash, y trabajando con ellos en local podrá ir probando por fuerza bruta y si la contraseña tiene pocos caracteres podrá sacarla en un tiempo razonable.
Además los piratas disponen de lo que se llaman "rainbow tables" que ya tienen hashes precalculados de cientos de contraseñas habituales para facilitar más las cosas.
2- Una vez entendido el primer concepto toca explicar el concepto de entropía tan usado en estos temas.
Cuanto mayor sea la entropía de una contraseña más segura será, esta viene dado tanto por la longitud como por el diccionario usado. Es decir no es igual de segura una contraseña de 8 caracteres de longitud usando sólo letras minúsculas que una contraseña de 8 caracteres de longitud que use todos los caracteres especiales y los números.
La fórmula para calcular la entropía de una contraseña es la siguiente:

E = n Log2 m
n = Longitud de la contraseña
m = n° de caracteres que se usan para        generar la contraseña

Hoy en día se considera que una contraseña empieza a ser segura a partir de 72 bits de entropía. Pero siempre hay que pensar que la tecnología avanza muy rápido y lo que hoy es válido dentro de 5 años está obsoleto.

Aquí os dejo una tabla en la que se puede ver más claramente la correspondencia entre la longitud usada y el número de caracteres usados:
3- Otro punto a tener en cuenta es la dificultad de memorizar la contraseña y que a su vez sea segura, y aunque no sea tanto de memorizar, el tenerla escrita escribirla con cierta soltura y sin equivocaciones.
Aquí os puedo poner mi propia experiencia, al principio creaba contraseñas tan enrebesadas con símbolos , números , mayúsculas, minúsculas sin sentido que cada vez que tenía que escribirlas aparte de tener la libreta delante, tardaba lo suyo en escribrirlas y muchas veces me equivocaba y tenía que volver a empezar.
Por lo que hay que buscar un equilibrio entre ambas cosas.

Y preguntareis ¿dónde se encuentra ese equilibrio?, pues en el método citado en el título: el método diceware.

Este método creado en 1995 por Arnold Reinhold crea una tabla de 7776 palabras numeradas desde el 11111 hasta el 66666 para ser usada con dados.
Esta tabla de palabras ha sido traducida a múltiples idiomas y podemos encontrarlas en este enlace.
La ventaja de estas tablas originales es que estando traducidas a muchos idiomas podrás elegir la de castellano para facilitar las cosas.
La desventaja es que usa muchas palabras extrañas, números, letras repetidas y de muy diferente longitud.
La EFF (Electronic Frontier Foundation) creó en 2016 una versión de la lista mucho más fácil de recordar y más homogenea, mucho mejor que la anterior, con el único incoveniente de que sólo esté en ingles.
Aquí en este enlace está la lista completa.

La que yo uso y la que voy a poner de ejemplo es la de la EFF mucho más sencilla de utilizar.

Bien, la forma de crear una contraseña con este método es tirar 5 dados y anotar los números que salieron de izquierda a derecha. 
Supongamos que tiramos los dados y nos salen 54312, con ese número buscamos en la tabla y corresponde a la palabra: "shrubs".
Repetimos el proceso X número de veces dependiendo del número de palabras que queramos en la clave (recomiendo mínimo 8).
Supongamos que tiramos los dados 7 veces más y nos salen los siguientes resultados:
23456 -> dispatch
15345 -> champion
44111 -> patient
36555 -> manly
43652 -> pastime
36524 -> mandarin
41235 -> mom

O sea que nuestra clave quedaría: "shrubs dispatch champion patient manly pastime mandarin mom".
Una clave que dado que cada palabra que añadimos suma una entropía de 12.9 bits (log2 6^5) , tenemos una contraseña de 12.9 * 8 = 103.5 bits totalmente irrompible a día de hoy. Y quizás aunque no seamos capaces de memorizarla que tampoco supondría un imposible, lo que si es cierto es que si tenemos que escribirla lo haríamos rapidamente y sin equivocarnos.
Incluso aún siende irrompible podemos dificultarla y subirle la entropía poniendo alguna mayúscula o añadiendo algún número y substituyendo algún espacio por un símbolo y ya sería a prueba de extraterrestres.
Lo que sí que es muy importante en este método es hacerlo todo fuera de linea. Se pueden imprimir las palabras pero hubo alguien que tuvo la genial idea de hacer un librito tamaño bolsillo para así poder consultar las palabras que corresponden a cada palabra. Pero aunque yo he comprado el libro es una tontería pues se pueden descargar la lista de la página de EFF


Lo cierto es que con estas dos cosas ya puedes crear fuera de línea contraseñas de lo más seguras.

Hay gente que llegando al nivel premium de paranoia usa dados de casino, que se supone que dan el número más aleatorio posible, peso son carísimos y cualquier dado es perfectamente válido para ello.

Ahora sí, lo que no recomiendo es usar páginas o programas que se supone que te dan ellos los números aleatorios por varias razones:
1- Un ordenador no genera números aleatorios sino pseudoaleatorios a partir de una semilla (hay algunos sistemas que si funcionan pero usando GPU y tomando la semilla del sonido ambiental)
2- Quien nos dice que esa página o aplicación que nos da los números no los guarda en una base de datos para así tener las contraseñas de la gente. (En estos temas mejor no fiarse de nadie)

Por lo tanto la mejor opción es usar dados y lista de palabras todo fuera de linea. Sobre todo si la contraseña a crear es importante, por ejemplo cuande tratamos con criptomonedas.
A la hora de crear la passphrase recomiendo usar este método.
Así como contraseñas wifi, o la clave de encriptación de un disco, o también la clave que nos guarda las contraseñas de un gestor de contraseñas.

24 diciembre 2021

El Caballero Verde

Si bien es cierto que en la mayoría de los casos la novela es mejor que su versión cinematográfica, en este caso puedo decir sin temor a equivocarme que en este caso es al contrario.
La productora A24 dio en el clavo con esta adaptación que a pesar de que hay que aclarar que no es para todo el mundo, sobre todo por su gran carga onírica que no seguro no es del gusto de mucha gente.

DIRECCIÓN Y REPARTO

La productora es A24 (aliada de Amazon Prime para distribución) y gran referente del cine independiente. La cual , también,  fue artífice de para mi otras dos grandes películas como son: "Ex Machina" y "La Bruja" (esta segunda tiene muchas similitudes con la aquí reseñada en carga onírica).

La dirección recae en David Lowery también director de "A Ghost Story", "The old man & the gun", "Peter y el Dragón" y un largo etcétera. 
Reparto:
Aquí quiero hacer una pequeña reseña porque a pesar de no compartir esa manía moderna de querer meter por la fuerza diversidad racial en lugares donde no pega ni con cola, un ejemplo reciente con lo tenemos en la miniserie "Ana Bolena", una serie que es más de lo mismo en cuanto al tema y quiere innovar poniéndonos una Ana Bolena de color que no pega ni con cola en esa época, para mi es como si hiciéramos una película sobre Nelson Mandela y se eligiese un actor blanco, aparte de no pegar se pondría el grito en el cielo, pero si es al revés se convierte en muy "progre".
Bueno en este caso tengo que decir que Dev Patel (británico de origen indio) que en principio no pega con la época por sus orígenes, hay que decir que lo hace tan bien que en este caso hasta llega a pegar. 
Hace un papelón y está a la altura del papel.
Alicia Vikander está sublime haciendo el doble papel de Essel y de mujer del Lord que acoje a Gawain.
En el papel del Lord tenemos a Joel Edgerton que para mí es quizás la mejor actuación de la película, y el papel le sienta como anillo al dedo.
Sean Harris como el rey Arturo también muy bien caracterizado y Sarita Choudhary como Morgana y madre de Gawain también está a la altura.
En general hay que decir que tanto la elección del reparto como las actuaciones están de sobra a la altura de la película.

EL LIBRO
El libro o más bien el relato medieval datado de finales del S.XIV , que está incluido en un manuscrito con otras tres obras ,con un caracter más religioso, aunque atribuidas al mismo autor anónimo.
   
hoja del manuscrito del S.XIV

Cabe decir que la historia contada en el libro difiere en muchos puntos con la de la película, y tengo que decir que todo un acierto.
Si bien es cierto que la novela en su época es un "rara avis" dentro del ciclo artúrico y en donde nos pintan un Gawain más humano que en otras obras del ciclo, en la película lo hacen mucho más humano.
Y el final para mí es mucho mejor el de la película.
Aunque yo recomiendo mucho leerlo, porque es muy cortito y se puede conseguir barato o incluso descargar si prefieres ahorrarte unas perras: 
Tolkien fue un auténtico fan y la primera versión traduccida al ingles moderno fue hecha por él e influyó mucho en su obra.
De hecho se compara a veces a Gawain con Frodo.

PELÍCULA CON SPOILERS
Hubo otras dos adaptaciones al cine anteriores, una de 1973 y otra de 1984 en la que Sean Connery hace de caballero verde.
Tengo que decir que de la primera hablan pestes y de la segunda pude visionarla porque está en Amazon Prime para verla, y la verdad es que es infumable, nada que ver con la aquí reseñada.
Y así como el libro recomiendo leerlo aunque sea en pdf las otras versiones anteriores hay que ser muy cafetero para poder aguantarlas.
Pasemos ahora a analizar la película que nos atañe.
La película la dividen en capítulos bien diferenciados. Hay muchas diferencias con la historia original y muchas añadiduras, unas que aunque no salgan en el relato como la aparición de Santa Winefrida, los estudiosos comparaban ya el tema de la Santa con la historia por el tema de las cabezas cortadas (también de origen celta), y otras como el rebaño de gigantes un invento onírico del director.
La historia resumida sería:
En la fiesta de Navidad en la corte del Rey Arturo (fin de año en el libro), aparece un inesperado invitado.
Este invitado es el caballero verde, en la película ya con apariencia más sobrenatural (parece un ent de El Señor de los Anillos), en el libro lo pintan como un humano con armadura verde.
Pues al entrar reta a todos a un juego de Navidad, dice que aquel caballero que desee podra jugar con él a un juego, el se dejará dar una estocada sin ofrecer resistencia alguna, pero de salir vivo de allí a un año el subsodicho deberá presentarse en la capilla verde y el le devolverá la misma acometida.
Aquí se presenta voluntario Sir Gawain y le corta la cabeza, este magicamente recoje su cabeza y le recuerda que dentro de un año deberá encontrar la capilla verde y allí encontrarse con él para terminar el juego.
Ese año pasa volando tanto en el libro como en la película y llegado su momento sale en su búsqueda, en la película un poco forzado por Arturo (como ya dije en la película menos al final que hace su último acto heroico en el resto deja mucho que desear a nivel de caballero).
Antes de marchar su madre le da un cinturón de tela verde que le promete que mientras lo tenga nada le ocurrirá.
En su viaje (que en libro no cuentan pero dicen que hace miles de maravillas) 
se topa con unos ladrones que le despojan de casi todo, incluido el mágico cinturón (en el libro no sale) tal aventura.
Llega a un castillo donde encuentra refugio, el señor del castillo hace un trato con Gawain y le dice que cuando salga a cazar lo que consiga se le dará a Gawain y el le deberá dar lo que consiga en el castillo. Aquí comienza un juego de seducción entre la mujer del señor del castillo y Sir Gawain, en la cual en el libro resiste estoicamente y sólo peca en aceptar el cinturón verde protector, en el libro es la primera referencia a él, en la película aparece aquí por segunda vez.
Al final llega a la capilla verde y aquí es donde más se diferencia la película y el libro, en el libro se descubre que el caballero verde era en realidad el lord que lo acogió en el castillo disfrazado poniéndolo a prueba, y en la película sigue siendo un ser sobrenatural que estuvo hibernando en la capilla verde. Pero en ambas versiones el cinturón verde es el símbolo de su cobardía.
En el libro recibe un pequeño corte por haberlo aceptado y no cumplir su palabra de haber intercambiado lo conseguido en ausencia del lord (muy pequeño fallo), y en la película se hace como un flash en la que ve el futuro escapando de su destino, en la que a pesar de convertirse en rey se convierte en un capullo total y pierde a su propio hijo en una guerra además de más calamidades. Y entonces vuelve de ese flash y haciendo un acto de valentía final le pide al caballero verde que espere un minuto y se quita el cinturón para no tener protección y así aceptar su destino.
El caballero verde le da la enhorabuena y dice que ahora ya puede recibir la estocada, y ahí termina la película sin saber si al final se le corta la cabeza o no.
En el libro no se la corta pero en la película parece que sí.
En cualquier caso cuando le preguntaron al director contestó que eso ya daba igual porque Sir Gawain cumplió su cometido y eso es lo más importante.
Y no puedo estar más de acuerdo, creo que tal como está planteada la película no haber dejado este final abierto hubiera sido un error. 
Para mí un final brillante para una película brillante.
Hay que decir que tanto la música como la fotografía son de 10 y te meten en la película, quizás para poder disfrutarla a tope debería verse a oscuras o con poca luz por lo oscuro de muchas escenas.
En definitiva una gran película que no es para todos, pero que si es para tí la vas a amar eso seguro.

Diceware el método más seguro para crear contraseñas a prueba de bombas

  Diceware: Un método seguro de generar contraseñas No he encontrado mejor manera de resumir este artículo que con este comic tan popular e...