Vaya, lo siguiente es unicamente con fines educativos. Lo coloco en este tema para q puedas investigar y hacer las correciones del caso.
TUTORIAL: COMO DESENCRIPTAR LAS CONTRASEÑAS DE INTERNET ACCOUNT MANAGER v1.2Cuando uno desarrolla sistemas, donde involucran las contraseñas de usuarios, es de suma importancia tener muy en cuenta los cifrados y reglas de seguridad que debe de tener nuestra aplicacion. A su vez hay q informarse los algoritmos que se pueden utilizar, seguridad de la plataforma, xq no sabemos con que tipo de conocimiento cuenta nuestra atacante.
Anteriormente le pregunte a @CristianTorres, sobre el algoritmo de seguridad utilizado. Y m toco investigar un poco sobre el algoritmo ya que no lo conocia mucho. Cuando descubri q se ha comprobado q es altamente vulnerable a una decrypt en pocas horas. Bueno, fue un punto menos cuando estaba evaluando la aplicacion en aspectos de seguridad. Creo q ahorita uno d los algoritmos mas seguros es el AES, en mi caso ese hubiera sido la opcion para implementar en la aplicacion.
Ahora,
¿cual es el problema de Encriptar/Desencriptar contraseñas en una aplicacion?. Bueno si se trabaja con la plataforma .NET se ha comprobado que si no se toman en cuenta los aspectos de seguridad puede ser muy vulnerable nuestra aplicacion.
Por ejemplo, al desencriptar
guardar la contraseña en un tipo de datos STRING, ese es un grave error, ya que con el GC (Garbage Collector), no es muy preciso q digamos para borrarlo de la memoria RAM nuestra variables, asi algunos meses lei un articulo sobre como obtener datos contraseñas cuando utilizamos los tipos String.
Al igual, en la parte de Seguridad de MSDN, mencione esto como un gran riesgo, para ello, .NET ofrece una clase llamada
SecurityString, que es especialmente para esos propositos y corrije los errores de seguridad.
¿CUAL FUE EL FALLO EN INTERNET ACCOUNT MANAGER v1.2?Bueno, en si para entender como se cifran los datos, resulta que el algoritmo utilizado (TripleDES) para encriptar las contraseñas de nuestras cuentas, necesita una
KEY para poder ENCRIPTAR/DESENCRIPTAR, entonces,
¿q pasa si esa KEY, cae en manos equivocadas?, Simple, puede automaticamente saber todas nuestras contraseñas. No se necesitan grandes procesos, ni saber mucho matematicas, en cualquier Decrpty solo pongo el valor de mi contraseña, y la KEY, y puedo saber cualquier contraseña.
Entonces no es solo proteger mis contraseñas de los usuarios, sino tambien la
KEY[/b, que nos permite Encriptar/Desencriptar nuestras contraseas cuando desarrollamos.
PASOS PARA DESENCRIPTAR LAS CONTRASEÑAS DE INTERNET ACCOUNT MANAGER v1.2
- Descargamos el SQLLite Browser para poder ver los datos en la base de datos SQL Lite, yo utilice http://sourceforge.net/projects/sqlitebrowser/
- Bueno con el SQL Lite Browser, no necesito meter mis credenciales de Usuario/Password, ya que puedo ver toda la tabla de "REGISTROS", con eso me burlo la seguridad de Usuario/Contraseña de la aplicacion.
- Cuando abro la Base de datos en SQL Lite Browser, solo m voy al tab de "Browse Data" y busco la tabla "Registros"
- Alli aparecera el listado de todas mis cuentas, solamente que la contraseña estara encriptada con el algoritmo TripleDES
- Copio la contraseña que quiero Desencriptar y la pego en el sitio http://decrypt.click-system.net/ (lo hic solo con fines educativos)
- El sistema automaticamente descifrara la contraseña y nos devolvera la contraseña de la cuenta
Bueno eso seria todo, y al igual dejo el reto a CristianTorres, de cerrar ese brecha de seguridad en la aplicacion de credenciales.
Cualquier duda no duden en consultar.