Esta es una aplicación para autentificar a los usuarios a través de su teléfono celular, mediante el descifrado de una sola vez la contraseña cifrada al servidor mediante una clave pública. La aplicación se puede utilizar para cualquier servicio web que implementa este método de autenticación.
(Véase el rastreador github para obtener más información sobre cómo implementar esta autenticación en el lado del servidor)
La aplicación se puede utilizar con un número ilimitado de las partes de confianza, ya que la misma clave pública se utiliza con todas las partes. Una vez registrada la aplicación, la aplicación genera un par de claves específica del dispositivo que está presente durante todo el tiempo de vida de la aplicación (hasta su desinstalado). La actualización de la aplicación no se borrará la clave, sin embargo.
Github Tracker: https://github.com/sebastiannielsen/QRSA
Requisitos previos para la ejecución de la aplicación:
1. El teléfono debe ser compatible con el almacenamiento basado en hardware. Se trata de un dispositivo de almacenamiento que utiliza un "chip de seguridad" dentro del teléfono, por lo que es imposible copiar la clave de colgar el teléfono.
2. El almacén debe ser inicializado. A veces es posible inicializar el almacén mediante la creación de una pantalla de bloqueo de PIN, y luego simplemente generar una clave. Extracción de la pantalla de bloqueo por lo general a mantener la llave, a menos que las propiedades clave fue configurado para requerir la pantalla de bloqueo.
3. En algunos casos, se debe utilizar una pantalla de bloqueo de seguridad. Esto depende del modelo de teléfono.
4. El chip seguro en el interior del teléfono, debe ser compatible con las operaciones basadas en RSA de 2048 bits / BCE / PKCS1.5
5. En algunos casos, un teléfono raíces puede desactivar permanentemente el chip de seguridad por razones de seguridad.
Para inscribirse, debe lanzar el QRSA URL: // correo desde un navegador o similar. También puede inscribirse a través de un URL de respuesta, mediante el uso de QRSA: // u. Para usar u, debe agregar primero una "s" si desea utilizar HTTPS, o cualquier otra cosa para HTTP. Entonces, todo el URL que se llama, sin el esquema, en formato URLSafe Base64. La clave pública se añadirá al final de la URL. Si el dispositivo es incompatible, volverá INCOMPATIBLE_DEVICE y su su responsabilidad de devolver un mensaje de error significativos para el usuario.
Para autenticar, que inicie la QRSA url: // s o QRSA: // C seguido de URLSafe Base64 datos codificados del texto cifrado de clave pública RSA en el formato RELLENO :: :: OTP MENSAJE :: :: HASH relleno. La acción "s" está diseñado para eventos escaneados y se mostrará como texto en la pantalla OTP. La acción "c" está diseñado para eventos de clic. La diferencia es que los eventos de clic hará que el código OTP para ser puesto en el portapapeles del usuario en lugar, por lo que el usuario inmediatamente puede proceder a pegar el código dentro del campo de OTP.
HASH se construye mediante la creación de un MD5 de OTP + + MENSAJE OTP, donde + denota la concatenación de cadenas. Este hash protege contra algunas formas ásperas de los ataques de maleabilidad en el texto cifrado. La construcción intercalada evita que un atacante se mueva el separador entre OTP y el mensaje.
Tenga en cuenta que las capturas de pantalla de la aplicación ha sido censurado intencionadamente para impedir las infracciones de marcas registradas y / o derechos de autor (interfaz de usuario de aplicaciones de Android y otros están protegidos los derechos de autor), como la interacción de la aplicación se proporciona a través de un cuadro de diálogo que aparece en la parte superior de la vocación aplicación que causó la autenticación suceda.
Si hay algún problema en la aplicación, se pueden encontrar ejemplos de código y más instrucciones en la página pública GitHub, ya que esta aplicación es de código abierto.
Además, no dude para crear cualquier problema en el tracker github pública.