El sitio permite la autenticación de contraseña parcial y completa; ¿Tienen mi contraseña en texto plano? [duplicar]

2

Mi banco proporciona servicios bancarios en línea como la mayoría de los bancos en estos días. En la web tienen autenticación de contraseña parcial. Aunque realmente no creo que el PPA brinde seguridad adicional, pero eso podría estar mal.

Mis alarmas empezaron a sonar cuando descargué su aplicación de banca móvil para mi teléfono inteligente. Esa aplicación solicita mi contraseña completa.

Suponiendo que la contraseña está cifrada o con hash, ¿cómo permite la autenticación de contraseña completa y PPA?

¿Son correctos mis temores de que posiblemente hayan almacenado mi contraseña en texto sin formato? En ese caso, presentaré una queja ante su departamento de TI y deshabilitaré mi cuenta por ahora porque todos los que están aquí saben mucho más que yo, lo inseguro que eso sería.

Editar:

¿Podrían estar almacenando cada carácter de mi contraseña cifrada individualmente? Eso permitiría entonces la autenticación PPA y la contraseña completa al comparar los caracteres disponibles con sus propias versiones cifradas. ¿Es esa una forma segura de almacenar contraseñas para PPA?

    
pregunta Hanky Panky 05.11.2014 - 09:44
fuente

3 respuestas

3

Para admitir "contraseñas parciales", el banco debe almacenar necesariamente la contraseña de texto sin formato, o al menos algunos valores que permitan una rápida reconstrucción de la contraseña completa. Se ve fácilmente de la siguiente manera: cuando el banco solicita, digamos, las letras tercera, cuarta y octava de la contraseña, entonces hay menos de un millón de posibilidades (suponiendo que las "letras" sean caracteres imprimibles). Sin embargo, el banco puede decidir de alguna manera si las tres cartas proporcionadas son las correctas o no. Por lo tanto, lo que sea que el banco almacene es suficiente para ejecutar un ataque de fuerza bruta en las letras 3, 4 y 8, y ese ataque tendrá éxito en menos de un millón de intentos.

El banco puede agregar capas de cifrado y hash, y lo que no, esto no cambiará ese hecho en bruto. Siempre que haya soporte para "contraseñas parciales", entonces hay un almacenamiento muy sensible en el lado del servidor. En ese sentido, la compatibilidad con contraseñas parciales disminuye la seguridad, en lugar de aumentarla. (Se puede argumentar que las contraseñas parciales aumentan la seguridad en el lado del cliente: hombro surfistas obtienen solo una vista parcial de la contraseña. Sin embargo, debe tener en cuenta que esto es un compromiso: más seguridad del lado del cliente por menos seguridad del lado del servidor.)

Para admitir la autenticación de contraseña completa, el banco debe almacenar algo que sea suficiente para verificar una contraseña completa. Se aplica el mismo razonamiento anterior, pero para un ataque de fuerza bruta en la contraseña completa, no en una contraseña parcial. Si un banco admite las autenticaciones de "contraseñas parciales" y de "contraseña completa", probablemente almacene una de las siguientes opciones:

  • La contraseña completa en un formato "recuperable" (texto sin formato o encriptado con una clave que el servidor conoce: que el cifrado es la protección contra atacantes informales en el lado del banco, por ejemplo, pasantes mal pagados).

  • Un hash de la contraseña completa y los hashes para todos los subconjuntos de contraseñas que el banco puede solicitar al usuario que se conecta.

La segunda posibilidad requiere mucha más complejidad de almacenamiento e implementación en el lado del banco, por lo que la considero improbable. Los desarrolladores de aplicaciones bancarias no son menos perezosos que sus compañeros humanos.

Tome nota de que su contraseña es no su activo más confidencial confiado al banco. El banco retiene su dinero . Y el dinero es lo que buscan los atacantes. Si un atacante secuestra completamente el servidor de autenticación, no se limitará a capturar contraseñas cifradas o con hash; Inmediatamente falsificará alguna autenticación exitosa y activará transferencias. ¿Quién necesita una llave para una puerta cuando ya está adentro?

Las discusiones sobre las contraseñas cifradas o con hash son relevantes para las violaciones parciales , por ejemplo. cuando el atacante encuentra una cinta de copia de seguridad para una base de datos u obtiene una vista de solo lectura a través de algún ataque de inyección de SQL. En ese tipo de escenario, lo que un atacante puede hacer depende en gran medida de los detalles sutiles de cómo se implementan las cosas en el servidor, por lo que es difícil hablar en general.

    
respondido por el Tom Leek 06.11.2014 - 14:27
fuente
1

Probablemente están almacenando la contraseña encriptada (es decir, no hash); el cifrado es reversible, por lo que no hay razón por la que no puedan usar el código que toma los caracteres de entrada del usuario, descifra la contraseña almacenada y verifica que la entrada coincida con los caracteres de la contraseña.

Si se realiza correctamente, el programa usado para hacer esto solo almacenaría temporalmente el texto sin formato en la memoria y eliminaría explícitamente esa memoria después de su uso (de modo que, en caso de un bloqueo, la contraseña no se escriba en un archivo legible).

Aunque, por supuesto, es posible (¿no es probable?) que estén usando contraseñas de texto sin formato.

Como nota aparte ... una forma de evitar la falta de contraseña (resultante de la funcionalidad PPA) es tener dos niveles de contraseña, mientras que esto no proporciona ninguna garantía adicional en sí misma, sino que significa que uno la contraseña se puede almacenar con hash (y siempre se usa en su totalidad) mientras que la otra está encriptada (y se usa para PPA).

El beneficio de PPA es que puede ayudar a derrotar las amenazas de registro de teclas, incluso si un atacante también tiene acceso a capturas de pantalla, deberá observar y capturar pulsaciones de teclas de múltiples eventos de inicio de sesión antes de tener suficiente información para iniciar una ataque exitoso.

    
respondido por el R15 06.11.2014 - 08:44
fuente
-1

Cotizando wikipedia :

  

Es una buena práctica no almacenar contraseñas en texto claro. En cambio cuando   Verificando una contraseña completa es común almacenar el resultado de pasar   La contraseña para una función hash criptográfica. Como el usuario no lo hace   suministre la contraseña completa, no se puede verificar con un archivo almacenado   Resumen de toda la contraseña. Algunos han sugerido almacenar el compendio   de cada combinación de letras que se pueden solicitar pero se anotan   que esto se traduce en la generación y almacenamiento de una gran cantidad de   digeridos Una mejor solución en términos de espacio de almacenamiento y   la seguridad es usar un esquema de intercambio secreto.

    
respondido por el Anonymous Coward 05.11.2014 - 10:39
fuente

Lea otras preguntas en las etiquetas