Ir al contenido

Google Authenticator

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 02:10 11 ago 2013 por WaimlSkyman (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

Google Authenticator es un software basado en autenticación con contraseña de un solo uso desarrollado por Google. Google Authenticator ofrece un número de seis dígitos que el usuario debe proporcionar además de su nombre de usuario y password para acceder a los servicios de Google. Google Authenticator puede también generar códigos para aplicaciones de terceras partes, tales como Gestor de contraseñas o Servicio de alojamiento de archivos.


Implementaciones

Google ofrece versiones de Google Authenticator para Android,[1]BlackBerry y iOS,[2]​.

Existen también varias implementaciones de terceras partes;

Descripción Técnica

Google Authenticator project incluye implementaciones para la generación de códigos de autenticación con contraseña de un solo uso destinado a varias plataformas móviles, así como un módulo de autenticación (PAM) conectable. Los códigos One-time son generados haciendo uso de standards abiertos desarrollados por The Initiative for Open Authentication (OATH) (no guarda relación con OAuth).


Estas implementaciones soportan el algoritmo HMAC-Based One-time Password (HOTP) especificado en la RFC 4226 y el algoritmo Time-based One-time Password (TOTP) especificado en la RFC 6238.

El proveedor de servicio genera una clave secreta de 80 bits para cada usuario. Esta se suministra como una cadena de 16 caracteres codificados en base32 o como un QR code. El cliente crea un HMAC-SHA1 usando esta clave secreta. El mensaje así generado puede ser:


  • El número de periodos de 30 segundos transcurridos desde Unix epoch; o
  • El contador que es incrementado con cada nuevo código.

Una porción de la HMAC se extrae y es convertida a un código de 6 dígitos.


Pseudo código para Time OTP

 function GoogleAuthenticatorCode(string secret)
     key := base32decode(secret)
     message := current Unix time ÷ 30
     hash := HMAC-SHA1(key, message)
     offset := last nibble of hash
     truncatedHash := hash[offset..offset+3]  //4 bytes starting at the offset
     Set the first bit of truncatedHash to zero  //remove the most significant bit 
     code := truncatedHash mod 1000000
     pad code with 0 until length of code is 6
     return code 

Pseudo código para Event/Counter OTP

 function GoogleAuthenticatorCode(string secret)
     key := base32decode(secret)
     message := counter encoded on 8 bytes
     hash := HMAC-SHA1(key, message)
     offset := last nibble of hash
     truncatedHash := hash[offset..offset+3]  //4 bytes starting at the offset
     Set the first bit of truncatedHash to zero  //remove the most significant bit 
     code := truncatedHash mod 1000000
     pad code with 0 until length of code is 6
     return code 

Uso

Google Authenticator puede ser usado entre otros en los siguientes websites y aplicaciones:

Referencias

Enlaces externos