Mejorando la seguridad en contraseñas

    • TiltMak3r
      TiltMak3r
      Bronce
      Registro: 02-10-2010 Artículos: 2.274
      Buenas navegando por ahi me encontre este articulo que yo creo que deberia de pasarselo a los de stars para que sustituyeran el pin de 6 digitos por algo como esto que ademas haya ke clikear los numeros

      Es largo pero vale la pena,abajo os dejo la fuente y el articuo en ingles por que la traduccion no es demasiado precisa

      COTRASEÑAS ASOCIATIVAS - UN NUEVO CONCEPTO
      COMO MEJORAR LA SEGURIDAD DE CONTRASEÑAS EN LOS SISTEMAS INFORMÁTICOS


      Con la consolidación de Internet, sistemas que antes estaban limitados a algunos centenares de usuarios, pasaron a ser accesibles a millones e personas en forma inmediata. Hasta algunos años atrás, para tratar de quebrar el código de una cuenta corriente, era necesario llegar físicamente hasta un cajero automático, o hasta un terminal conectado a la red interna del banco. Pero ahora, centenas de millones de personas tienen el poder manosear cuentas y contraseñas, cómodamente sentadas en sus casas, en cualquier lugar del planeta.

      La cantidad de cuentas y usuarios para ser probados es tan elevada, que los modernos hackers usan una estrategia mucho mas lucrativa que adivinar una contraseña: ellos escogen una sola contraseña sencilla, por ejemplo '1234', y se pasan el tiempo probando la misma contra muchas cuentas simultáneamente, con la garantía de que, en poco tiempo, alguna de estas cuentas se encajará bien en aquella contraseña.

      Mismo en sistemas tradicionales, que no operan conectados a la Internet, la seguridad de las viejas contraseñas está mostrándose vulnerable a la moderna tecnología. Recientemente, el Ministerio de Hacienda del Brasil descubrió un esquema de cancelamiento de deudas, realizado por funcionarios deshonestos en las mismas computadoras (ordenadores) del Ministerio. Estos funcionarios robaban las contraseñas de otros funcionarios legalmente habilitados, usando un pequeño aparato conectado al puerto externo de la computadora.

      Lo interesante es que, muchas instituciones financieras están gastando gran cantidad de recursos para proteger las contraseñas de usuarios en Internet, usando herramientas bastante avanzadas, y substituyendo el teclado por el ratón (teclado virtual) para escribir las contraseñas. Mismo así, insisten en el viejo esquema de la contraseña única y fija como protección, cuando estos recursos podrían ser usados de forma mucho mas practica. Muchos bancos usan duplo chequeo (dos contraseñas diferentes), y muestran tablas de conversión aleatorias para escribir los caracteres, de forma que los valores digitados no sean los valores reales de la contraseña. Estos procesos, si bien aumentan la seguridad del sistema, por otro lado tornan la vida de los usuarios mas difícil.

      Mismo así, el actual esquema de bancos y financieras es muy vulnerable. Suponga que un usuario va hasta un caber café para realizar una operación bancaria. La institución financiera tuvo el trabajo de substituir el teclado por el ratón, de usar tablas aleatorias de conversión y otros artificios, con el objetivo de evitar que una máquina extraña se apodere de sus informaciones. Pero reconozcamos que la tecnología también juega a favor de los malhechores, y nada impide que una pequeña cámara de TV, imperceptible al ojo, grabe todo lo que pasa a las espaldas de esta persona en el caber café. En este caso, la cámara registrará lo que esta siendo 'tecleado virtualmente' por el ratón, cuales son las tablas de conversión aleatoria que aparecen en pantalla, y que es lo que esta siendo tecleado manualmente (aparte de numero de cuenta, nombres y otras informaciones sigilosas).

      En este trabajo, es presentado un esquema mucho mas sencillo y seguro que el tradicional basado en contraseñas fijas. En lugar de usar códigos formados por 'caracteres fijos' (como por ejemplo el numero de la placa del automóvil, o el nombre de la chica), es mas seguro y barato usar contraseñas de posiciones fijas y caracteres variables, con lo que toda tentativa para descubrirla, deja de tener valor. El sistema mostrado aquí es tan practico, que el usuario puede incluso mostrar la contraseña que esta tecleando para otras personas, con la seguridad de que nadie podrá acceder a su cuenta de ninguna forma.

      Imagine que un usuario llamado Alberto va retirar dinero de una máquina ATM (automatic teller machine), y esta le presenta un pequeño cuadriculado (como este aquí) para introducir la contraseña:



      entonces Alberto sabe que 'su contraseña' está formada por la primera posición de arriba, seguida por la diagonal, doblando abajo a la izquierda, y luego a la derecha, tal como representado por las letras a,b,c,d , en ese orden





      Así, Alberto teclea '1332' como contraseña para retirar el dinero, la máquina compara lo que Alberto tecleó contra las posiciones 'abcd', y valida la operación.

      IMPORTANTE: Alberto NO toca el tablero cuadriculado para introducir la contraseña, sino que solo mira al mismo, y teclea los números en un teclado convencional, que puede ser el de la máquina ATM, de la computadora, o del teléfono celular. Así, no existe rastro del camino escogido en el tablero para construir la contraseña.

      Este tablero es cubierto por números aleatorios a cada vez que solicita una contraseña, de manera que los números serán siempre diferentes, importando apenas la posición de los caracteres digitados. Es evidente que cada usuario tendrá una secuencia diferente de posiciones para formar su contraseña. Por ejemplo un usuario que juega ajedrez podría escoger los movimientos del caballo en diversas posiciones, mientras que otro podría sencillamente hacer el movimiento del reloj. Así, el banco pedirá ahora al cliente que 'memorice un camino en el tablero', en lugar de pedir que memorice una determinada contraseña.

      Visto que es imposible a un espía saber cual es el número que el cliente observa en el tablero cuando elige los dígitos tecleados (mismo usando cámaras muy sofisticadas que encuadren el ojo del usuario, esto seria imposible), entonces nunca podrá saber cual fue la posición del número escogido. Es evidente que la maquina debe tener el cuidado de mostrar siempre varios números repetidos, para evitar que alguien identifique cual fue la posición seleccionada. En nuestro ejemplo, el número '1' puede originarse en 3 posiciones diferentes, el '2' en cuatro posiciones, y el '3' en dos posiciones, totalizando 3 x 2 x 2 x 4 = 48 combinaciones (o caminos) diferentes por los cuales la contraseña '1332' pudo formarse.

      En la próxima operación, luego de informar su cuenta, la maquina mostraría un tablero como el siguiente para Alberto:



      y entonces el código para validar esta operación ahora sería '2123', diferente de la anterior. Note que mismo si un observador muy cuidadoso (como la foto de un chico mirón que aparece en las maquinas pagadoras) pudiese observar la contraseña, esta no tendría ningún valor para la próxima operación. En el caso del fraude del Ministerio de Hacienda, de nada servirían los aparatos recolectores de información para memorizarlas.

      Es evidente que si un observador consigue varias muestras de contraseñas digitadas por el mismo usuario (y los tableros generadores), podrá deducir cuales fueron las posiciones seleccionadas, luego de un cuidadoso trabajo de eliminación. Pero el trabajo de recolectar 'varias muestras' se torna difícil, porque las contraseñas siempre continuarán a ser mostrados como comodines '*' en los terminales, y por el hecho que, generalmente el cliente y su perseguidor se encontrarán frente a frente una sola vez en la vida, por ejemplo en una caja electrónica bancaria, en un cyber café, u otro tipo de contacto que permita recoger informaciones a través de artificios, como aquellos conocidos programas que memorizan el tecleado en forma escondida.

      Es fácil mostrar que, dado un tablero con P posiciones, la cantidad óptima de símbolos diferentes que deberían ser mostrados al usuario, para dificultar la identificación, esta dado por la formula sqr(P). Si el tablero escogido es un cuadrado donde P = N x N (N = lado), entonces la cantidad óptima de símbolos es igual a sqr(P) = N.

      Para llegar a esta conclusión, hay que notar que existe un compromiso (trade off) entre la cantidad de símbolos (o caracteres) mostrados, y la cantidad de caminos posibles para construir una dada contraseña. Si una seña tiene tamaño T de caracteres, y pueden ser usados S símbolos diferentes para construirla, entonces la cantidad de combinaciones posibles para adivinar la contraseña por acaso está dado por S^T. Como ejemplo, en un alfabeto de 26 letras (S=26), si la seña tiene tamaño 4 (T=4), la cantidad de combinaciones posibles es de 26^4 = 456.976, y adivinar una seña por acaso tiene una probabilidad de 1/456.976 = 0,0000021 .

      Por otro lado, si el tablero muestra muchos símbolos diferentes (para optimizar el valor anterior), un observador puede deducir fácilmente cual fue el camino utilizado. Por ejemplo, si el tablero inicial tiene un dígito diferente en cada casa, existe un único camino para construir la contraseña, y aunque adivinarla por suerte sea muy difícil, una vez conocida la seña (y el tablero), inmediatamente se conoce el (único) camino para construirla, arriesgando así la seguridad de todo el sistema.

      Dados S símbolos diferentes, cada uno con una cantidad Q1, Q2... Qs en el tablero, el total de caminos diferentes para construir una seña está dado por Q(s1) x Q(s2) x ... x Q(st). Por ejemplo, si el tablero contiene 2 caracteres '1' y 3 caracteres '2', y suponiendo que el espía haya visto que la seña era '1122' (o sea, T=4), entonces la cantidad de caminos posibles para formar esta seña es de 2 x 2 x 3 x 3 = 36 .

      En el otro extremo, si el tablero contiene apenas un solo símbolo (digamos el '3'), la cantidad de caminos posibles para construirla es el máximo posible (dadas las combinaciones), pero al mismo tiempo, adivinar por suerte esta seña se convierte en un juego de niños, ya que existe una sola contraseña posible, que es '3333', sea cual sea el camino. Esto se puede traducir como 'cuanto mas caminos existan, menor será la cantidad de señas posibles' y vice versa.

      Así, debemos conseguir que el valor S^T (cantidad de señas posibles) sea el máximo, y debemos hacer que la cantidad de caminos posibles para construirla, también sea el máximo posible. Una forma de solucionar el problema, es colocar la misma cantidad de símbolos en el tablero, así Q1 = Q2 = ... = Qs, y entonces la cantidad de caminos para formar una seña será de Q1 x ... x Qt = Q^T .

      Si existen S símbolos diferentes en un cuadrado de P posiciones, entonces cada símbolo aparecerá P/S veces, luego Q = P/S, y la ecuación se reduce a conseguir que (P/S)^T = máximo. Haciendo los dos máximos iguales (cantidad de caminos y cantidad de señas), tenemos que (P/S)^T = S^T = máximo, y así P/S = S, o S = srq(T) = N, que es el lado del cuadrado (caso el tablero sea un cuadrado con N x N posiciones).

      Esto quiere decir que, si usamos un cuadrado de 3 x 3 para presentar la seña, entonces lo mas seguro es permitir que la seña tenga hasta 3 caracteres diferentes, y cada uno de ellos debe aparecer 3 veces en el tablero. Estos valores dificultan al máximo tanto la adivinación de la seña por tentativa y error, cuanto la deducción del camino una vez conocida la seña.

      Es evidente que el cuadrado de 3 x 3 posiciones aquí presentado puede ser modificado de varias maneras, y cuando los sistemas evolucionen suficiente, el frío tablero puede ser substituido por fotografías de rostros, paisajes, o cualquier otra imagen en forma cuadriculada, de manera que el usuario se sienta confortable cuando navegue en su 'contraseña particular’ a la hora de escoger los dígitos. Por ejemplo, un tablero de 20 x 20 posiciones puede parecer muy complicado para un cliente mirar y escoger los números, pero si este tablero tiene como fondo la imagen de un rostro, el usuario puede inmediatamente saber que sus dígitos están 'en el ojo derecho, la oreja izquierda y en la boca' de la imagen. Así, las chances de un una persona extraña deducir la contraseña correcta prácticamente se evaporan. En un tablero de 20 x 20 posiciones, la cantidad de caminos posibles para formar una contraseña se torna astronómico.


      Usando los recursos de imágenes y colores, hoy disponibles en la mayor parte de los sistemas informáticos, es posible extender la seguridad de contraseñas a niveles muy elevados. Uno de los puntos débiles en el esquema aquí presentado, reside en el hecho de que la información transmitida para el teclado (los números), también están presentes en el tablero generador. Así, si un hacker se apodera de por lo menos dos contraseñas y sus respectivos tableros, tiene cierta chance de contornar la seguridad. Esto es un avance enorme si comparado a los sistemas actuales, donde apenas el conocimiento de una única seña pone en peligro todo el sistema. Mismo así, es una brecha que puede ser cerrada al eliminar la información de los tableros generadores.

      Sin esta información, un hacker no tiene ninguna chance de entrar al sistema, mismo consiguiendo apoderarse de centenas de contraseñas y tableros. Inclusive en aquel cyber café, donde un usuario es grabado a escondidas por una pequeña cámara de TV, un hacker no tendría chance.

      Para implementar un sistema así, el usuario debe memorizar dos cosas, a) el camino a ser seguido en el tablero, y b) una pequeña tabla asociativa entre imágenes y números. En un primer ejemplo, supongamos que Alberto, nuestro usuario, aparte de escoger el camino ya citado para su contraseña, también es obligado a recordar la siguiente tabla: blanco = cero, negro = uno, rojo = dos y azul = 3.

      Cuando Alberto realiza una transacción, la maquina puede presentar el siguiente tablero:

      y entonces, recordando la tabla de colores asociada, Alberto teclearía '3321' como contraseña. Observe que ahora, un presunto espía que se apodere de ambos, la contraseña '3321' y el tablero de colores, no puede saber que colores fueron escogidas como '3', '2' o '1', ya que esta información está presente apenas en la cabeza de Alberto, y en la computadora que controla al sistema.

      Existen muchos esquemas similares al de colores que pueden ser aplicados, por ejemplo, cuando Alberto va hasta el banco para crear su contraseña, el funcionario puede presentarle una lista de animales que sean asociativos con el dígito en cuestión. Así, 'cebra' puede ser el cero, 'oso'(ursus) el uno, 'dinosaurio' el dos y 'tigre' el tres. En este caso, Alberto puede ver un tablero como el siguiente al introducir la contraseña:

      con lo que teclearía '1211' (urso-dino-urso-urso) para validar la operación. Observe que pueden ser colocados objetos que desvíen la atención de un posible espía, como pájaros y otros animales, de manera que no pueda deducir cual es la asociación que el usuario está realizando mentalmente. No es imposible que el usuario ponga sus propias imágenes personales (foto de la novia, la madre y su gato preferido), asociándolos con números. Estas imágenes nada dirán a una persona extraña, pero serán fácilmente clasificadas por el usuario en su mente.

      Una tecnica de 'camuflage' interesante puede ser pensada al hacer asociaciones 'fuzzy' sobre objetos. En lugar de relacionar figuras o dibujos fijos con los números a ser tecleados (los cuales pueden ser rastreados por un hacker experto), se podria hacer asociación con 'clases de objetos'. Por ejemplo: el usuário es obligado a memorizar una regla como esta - 'si en el cuadrado aparece un dibujo animado, usted tecla 1, si aparece una fotografia a color, tecla 2, y si aparece una letra cualquiera, tecla 3 en el campo de la contraseña', o sea, tres clases de objetos facilmente diferenciados unos de otros. Así, un hacker siempre verá dibujos, fotografias y letras diferentes (docenas de ellos) para un mismo usuário, y no podrá deducir cual exatamente es la asociación que este hace con los números teclados. En el caso de colocar figuras fijas (por ej. 'tweety', 'garfield' e 'victoria'), estas pueden ser mapeados sobre un número suficiente de muestras colectadas y asi descubrir el camino original.

      Las rutinas de 'tecleado de seña por medio del ratón' ya fueron desarrolladas por casi todos los bancos para transacciones en Internet, y con esto el tecleado 'por localización' en lugar de 'por carácter fijo' es apenas una cuestión de costumbre para el usuario. Un sencillo cambio de habito puede salvar mucho tiempo, dinero y esfuerzos, pero aparentemente las instituciones se resisten a cambiar de habito, y acaban pagando un alto precio por ello.

      Fuente http://www.meucat.com/passe.html

      El articulo en ingles http://www.meucat.com/passi.html
  • 4 respuestas