{"id":28395,"date":"2023-02-10T15:19:11","date_gmt":"2023-02-10T13:19:11","guid":{"rendered":"https:\/\/www.kaspersky.es\/blog\/?p=28395"},"modified":"2023-02-10T15:19:11","modified_gmt":"2023-02-10T13:19:11","slug":"authenticator-apps-compatibility","status":"publish","type":"post","link":"https:\/\/www.kaspersky.es\/blog\/authenticator-apps-compatibility\/28395\/","title":{"rendered":"\u00bfEs irremplazable Google Authenticator?"},"content":{"rendered":"<style>\ncode {overflow-x: scroll;  white-space: nowrap; width: 100%}\n<\/style>\n<p>Muchos servicios online te permiten (y en ocasiones te exigen) configurar la autenticaci\u00f3n en dos pasos (2FA) con c\u00f3digos de un solo uso. Google Authenticator es la aplicaci\u00f3n de autenticaci\u00f3n m\u00e1s conocida y utilizada para la generaci\u00f3n de este tipo de c\u00f3digos, ya que es compatible con casi todos los servicios.<\/p>\n<p>De hecho, algunos incluso brindan un enlace a la aplicaci\u00f3n cuando configuras la 2FA. Pero, \u00bfes Google Authenticator la \u00fanica opci\u00f3n o deber\u00edas darle una oportunidad a alguna de las muchas alternativas, como Microsoft Authenticator o Twilio Authy?<\/p>\n<p>Dado que estas alternativas existen y claramente tienen una base de usuarios, podr\u00edan parecer un reemplazo total de Google Authenticator. Pero \u00bfd\u00f3nde est\u00e1 la trampa, si es que la hay? Si no tienes tiempo para leer hasta el final, aqu\u00ed est\u00e1 la respuesta: no te preocupes, Google Authenticator es totalmente reemplazable. Pero si tienes curiosidad por descubrir todos los detalles, sigue leyendo\u2026<\/p>\n<h2>C\u00f3mo funcionan los autenticadores<\/h2>\n<p>Comencemos por c\u00f3mo funcionan las aplicaciones de autenticaci\u00f3n en general. Se han creado varios est\u00e1ndares abiertos para una autenticaci\u00f3n fuerte bajo el paraguas de la Iniciativa para la Autenticaci\u00f3n Abierta (OATH por sus siglas en ingl\u00e9s) en los que se basan las aplicaciones, junto con algunas otras cosas, pero que no son el tema de esta publicaci\u00f3n.<\/p>\n<h3>El HOTP de la OATH<\/h3>\n<p>All\u00e1 por el 2005, apareci\u00f3 el est\u00e1ndar de autenticaci\u00f3n <a href=\"https:\/\/es.wikipedia.org\/wiki\/Algoritmo_de_contrase%C3%B1a_de_un_solo_uso_basado_en_HMAC\" target=\"_blank\" rel=\"nofollow noopener\">HOTP<\/a> (contrase\u00f1a de un solo uso basada en hash) de la OATH, que estableci\u00f3 los fundamentos de la autenticaci\u00f3n utilizando c\u00f3digos de un solo uso que se generan en sincronizaci\u00f3n desde el lado del cliente y del servidor.<\/p>\n<p>La idea es que tanto la aplicaci\u00f3n como el servicio que est\u00e9s utilizando recuerden la misma clave secreta. A continuaci\u00f3n, se aplica un algoritmo cifrado para generar un c\u00f3digo \u00fanico basado en esta clave y un valor de contador, que es b\u00e1sicamente un n\u00famero que se incrementa cada vez que se genera un nuevo c\u00f3digo \u00fanico. Los datos para calcular este c\u00f3digo son los mismos en ambos lados, por lo que, si todo sale seg\u00fan lo planeado, los dos c\u00f3digos ser\u00e1n id\u00e9nticos. Ya solo queda compararlos: si el c\u00f3digo que has introducido coincide con el generado por el servidor, habr\u00e1s conseguido la autenticaci\u00f3n.<\/p>\n<p>Despu\u00e9s de cada solicitud de una sesi\u00f3n de generaci\u00f3n, el valor del contador cambia para que el c\u00f3digo sea \u00fanico. Se utiliza un algoritmo que descarta los c\u00e1lculos inversos y la extracci\u00f3n de la clave secreta de este c\u00f3digo. Por tanto, aunque alguien intercepte este c\u00f3digo \u00fanico, no podr\u00e1 calcular la clave secreta, reproducir el autenticador y generar sus propios c\u00f3digos nuevos.<\/p>\n<p>Pero el HOTP presenta dos problemas principales. En primer lugar, los valores del contador se desincronizan f\u00e1cilmente. Por ejemplo, si solicitas al autenticador que genere un c\u00f3digo, pero no lo usas al final, el autenticador del lado del cliente cambiar\u00e1 el valor del contador, mientras que en el lado del servicio permanecer\u00e1 igual. Como resultado, los c\u00f3digos generados ya no coincidir\u00e1n. En segundo lugar, el c\u00f3digo sigue siendo v\u00e1lido hasta que cambia el valor del contador, lo que puede conceder tiempo al atacante para que use el c\u00f3digo interceptado si de alguna forma lograra distraer a la v\u00edctima.<\/p>\n<h3>El TOTP de la OATH<\/h3>\n<p>En el 2011, se present\u00f3 un nuevo est\u00e1ndar: el <a href=\"https:\/\/es.wikipedia.org\/wiki\/Algoritmo_de_contrase%C3%B1a_de_un_solo_uso_basada_en_el_tiempo\" target=\"_blank\" rel=\"nofollow noopener\">TOTP<\/a> (contrase\u00f1a de un solo uso basada en el tiempo) de la OATH, que utiliza la hora actual como contador. El principio sigue siendo el mismo: se utiliza una clave secreta conocida por ambas partes para calcular un c\u00f3digo de un solo uso con el mismo algoritmo cifrado. Y, como el contador se basa en el <a href=\"https:\/\/es.wikipedia.org\/wiki\/Tiempo_Unix\" target=\"_blank\" rel=\"nofollow noopener\">sistema de tiempo Unix<\/a>, el c\u00f3digo cambia autom\u00e1ticamente a intervalos regulares, independientemente de si se usa o no.<\/p>\n<p>Ahora cualquier dispositivo conectado a Internet sabe la hora exacta, por lo que no hay que preocuparse de que los c\u00f3digos de un solo uso no est\u00e9n sincronizados. Y como el intervalo en el que cambia el c\u00f3digo es bastante corto (30 segundos por defecto), si se intercepta un c\u00f3digo \u00fanico, el atacante no tendr\u00e1 mucho tiempo para usarlo.<\/p>\n<h3>Principios b\u00e1sicos de los autenticadores<\/h3>\n<p>Estos dos est\u00e1ndares son los que utilizan las aplicaciones de autenticaci\u00f3n. El TOTP es el m\u00e1s com\u00fan, por supuesto, simplemente porque es mejor en todos los sentidos, pero el HOTP todav\u00eda se puede encontrar en algunas implementaciones prehist\u00f3ricas.<\/p>\n<p>A la hora de crear un autenticador, el cliente y el servidor deben establecer un est\u00e1ndar com\u00fan y compartir la clave; este es el m\u00ednimo absoluto requerido para que funcione la aplicaci\u00f3n del autenticador. Tambi\u00e9n se pueden establecer par\u00e1metros adicionales para crear tokens. Pero, \u00bfc\u00f3mo llegan a un acuerdo la aplicaci\u00f3n y el servicio? En la mayor\u00eda de los casos, mediante un c\u00f3digo QR, lo que nos lleva a la siguiente pregunta: \u00bfc\u00f3mo funcionan estos c\u00f3digos?<\/p>\n<h2>Contenido del c\u00f3digo QR del autenticador<\/h2>\n<p>Hasta donde yo s\u00e9, no se encuentra entre los est\u00e1ndares desarrollados por la OATH, sino m\u00e1s bien como una adhesi\u00f3n voluntaria al formato <a href=\"https:\/\/github.com\/google\/google-authenticator\/wiki\/Key-Uri-Format\" target=\"_blank\" rel=\"nofollow noopener\">establecid<\/a>o por Google Authenticator. Pero, de cualquier forma, los sistemas de autenticaci\u00f3n basados en aplicaciones tienden a usar c\u00f3digos QR, en los que se codifica un enlace (estrictamente hablando, un <a href=\"https:\/\/es.wikipedia.org\/wiki\/Identificador_de_recursos_uniforme\" target=\"_blank\" rel=\"nofollow noopener\">identificador de recursos uniforme o URI<\/a>) que contiene toda la informaci\u00f3n necesaria, por ejemplo: <\/p>\n<p><code> otpauth:\/\/totp\/Google:alanna@gmail.com?secret=IN2XE2LPOVZSYIDBOJSW4J3UEB4W65J7&amp;issuer=Google&amp;algorithm=SHA1&amp;digits=6&amp;period=30<\/code><\/p>\n<p>Como puedes ver, se transfieren toda una serie de par\u00e1metros en el c\u00f3digo QR, que indican lo siguiente:<\/p>\n<ul>\n<li>El prop\u00f3sito del URI: la creaci\u00f3n de un token de autenticaci\u00f3n (para eso es el otpauth del principio).<\/li>\n<li>El est\u00e1ndar de autenticaci\u00f3n: HOTP o TOTP; en este caso TOTP.<\/li>\n<li>La etiqueta del token que se mostrar\u00e1 dentro de la aplicaci\u00f3n; en nuestro ejemplo, Google.<\/li>\n<li>El nombre de usuario, en este caso, alanna@gmail.com.<\/li>\n<li>La clave secreta a partir de la cual se generan los c\u00f3digos (en formato <a href=\"https:\/\/es.wikipedia.org\/wiki\/Base32\" target=\"_blank\" rel=\"nofollow noopener\">Base32<\/a>): la parte m\u00e1s importante, una larga cadena de caracteres aleatorios.<\/li>\n<li>El nombre del servicio que ha creado el URI; en nuestro ejemplo, Google nuevamente.<\/li>\n<li>El algoritmo utilizado para generar los c\u00f3digos, en este caso, <a href=\"https:\/\/en.wikipedia.org\/wiki\/SHA-1\" target=\"_blank\" rel=\"nofollow noopener\">SHA1<\/a>.<\/li>\n<li>La longitud de los c\u00f3digos generados: habitualmente seis caracteres, como se muestra aqu\u00ed, pero se aceptan otras variantes.<\/li>\n<li>El periodo de tiempo despu\u00e9s del cual caduca el c\u00f3digo, generalmente 30 segundos, pero se pueden configurar otros intervalos.<\/li>\n<\/ul>\n<p>As\u00ed se ve el c\u00f3digo QR correspondiente:<\/p>\n<div id=\"attachment_28399\" style=\"width: 1010px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2023\/02\/10144345\/authenticator-apps-compatibility-qr-alanna-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28399\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2023\/02\/10144345\/authenticator-apps-compatibility-qr-alanna-1.png\" alt=\"C\u00f3digo QR para conectar una aplicaci\u00f3n de autenticaci\u00f3n, especificando todos los par\u00e1metros disponibles\" width=\"1000\" height=\"500\" class=\"size-full wp-image-28399\"><\/a><p id=\"caption-attachment-28399\" class=\"wp-caption-text\">Los c\u00f3digos QR pueden pasar un mont\u00f3n de par\u00e1metros de autenticaci\u00f3n<\/p><\/div>\n<p>De hecho, como ya hemos mencionado anteriormente, muchos de estos par\u00e1metros se podr\u00edan omitir. La etiqueta del token y el nombre de usuario pueden ser arbitrarios, mientras que el nombre del servicio no se necesita para nada; esta informaci\u00f3n no tiene ning\u00fan impacto en la generaci\u00f3n de c\u00f3digo y est\u00e1 ah\u00ed principalmente por conveniencia. Otros par\u00e1metros tampoco son obligatorios. El autenticador utiliza el algoritmo de generaci\u00f3n de c\u00f3digo predeterminado (SHA1) y genera un c\u00f3digo de seis d\u00edgitos con un periodo de actualizaci\u00f3n de 30 segundos, a menos que se codifique de otra forma en el URI.<\/p>\n<p>B\u00e1sicamente, el servicio y el autenticador solo necesitan establecer el est\u00e1ndar (HOTP o TOTP) y compartir la clave secreta. Por tanto, el siguiente c\u00f3digo URI y QR generar\u00eda exactamente el mismo token de autenticaci\u00f3n en t\u00e9rminos funcionales que la pareja anterior:<\/p>\n<p><code>otpauth:\/\/totp\/Whenever:Wherever?secret=IN2XE2LPOVZSYIDBOJSW4J3UEB4W65J7<\/code><\/p>\n<div id=\"attachment_28398\" style=\"width: 1010px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2023\/02\/10144226\/authenticator-apps-compatibility-qr-whoever-2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-28398\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/88\/2023\/02\/10144226\/authenticator-apps-compatibility-qr-whoever-2.png\" alt=\"C\u00f3digo QR para conectar una aplicaci\u00f3n de autenticaci\u00f3n sin la mayor\u00eda de los par\u00e1metros\" width=\"1000\" height=\"500\" class=\"size-full wp-image-28398\"><\/a><p id=\"caption-attachment-28398\" class=\"wp-caption-text\">Muchos par\u00e1metros de c\u00f3digo QR se pueden omitir o establecer en valores arbitrarios; lo principal es compartir la clave secreta y establecer el est\u00e1ndar: HOTP o TOTP<\/p><\/div>\n<p>La conclusi\u00f3n es que la mayor\u00eda de los servicios que utilizan c\u00f3digos generados por aplicaciones funcionan con c\u00f3digos QR y lo cierto es que cualquier aplicaci\u00f3n de autenticaci\u00f3n puede leer esos c\u00f3digos QR y convertirlos en tokens de autenticaci\u00f3n, que, a su vez, generan los c\u00f3digos de un solo uso. Por tanto, en lugar de Google Authenticator, puedes elegir la aplicaci\u00f3n que m\u00e1s te guste entre las decenas de alternativas que encuentres.<\/p>\n<h2>La excepci\u00f3n que confirma la regla: servicios incompatibles con los autenticadores comunes<\/h2>\n<p>Por alg\u00fan motivo que desconozco, no toda la industria TI sigue los est\u00e1ndares anteriores: hay quien prefiere crear los suyos propios. Estas son algunas empresas cuyos servicios y programas no son compatibles con aplicaciones de autenticaci\u00f3n de terceros (incluido Google Authenticator).<\/p>\n<ul>\n<li><strong>Apple<\/strong>. Los de Cupertino, California, tienen su propio sistema 2FA, que no utiliza ninguna aplicaci\u00f3n de terceros. En su lugar, los c\u00f3digos de un solo uso se generan mediante el sistema operativo simult\u00e1neamente en todos los dispositivos vinculados a una ID de Apple.<\/li>\n<li><strong>Valve y Blizzard<\/strong>. Para la seguridad en Steam y Battle.net, los desarrolladores ofrecen una 2FA de creaci\u00f3n propia: Steam Guard (integrada en las aplicaciones Steam para Android e iOS) y Battle.net Authenticator, respectivamente. Hasta donde yo s\u00e9, solo hay una aplicaci\u00f3n de autenticaci\u00f3n de terceros compatible con estos sistemas: <a href=\"https:\/\/www.kaspersky.es\/blog\/best-authenticator-apps-2022\/26679\/#winauth\" target=\"_blank\" rel=\"noopener\">WinAuth<\/a>.<\/li>\n<li><strong>Microsoft<\/strong>. Para la autenticaci\u00f3n de la cuenta de Microsoft, debes instalar Microsoft Authenticator. Lo bueno es que no tienes que introducir ning\u00fan c\u00f3digo: simplemente hay que confirmar el inicio de sesi\u00f3n tocando un bot\u00f3n de la aplicaci\u00f3n. Adem\u00e1s, Microsoft Authenticator tambi\u00e9n genera tokens de autenticaci\u00f3n est\u00e1ndar, lo que lo convierte en una <a href=\"https:\/\/www.kaspersky.es\/blog\/best-authenticator-apps-2022\/26679\/#microsoft-authenticator\" target=\"_blank\" rel=\"noopener\">s\u00f3lida alternativa<\/a> a Google Authenticator. Por cierto, no necesitas una cuenta de Microsoft para usarlo.<\/li>\n<li><strong>Adobe<\/strong>. El desarrollador de software de dise\u00f1o gr\u00e1fico ofrece su propia aplicaci\u00f3n de 2FA, Adobe Account Access, que funciona con una l\u00f3gica similar a Microsoft Authenticator: para acreditar el inicio de sesi\u00f3n en tu cuenta de Adobe solo tienes que tocar un bot\u00f3n, nada de enviar ning\u00fan c\u00f3digo. En teor\u00eda, la aplicaci\u00f3n tambi\u00e9n admite la creaci\u00f3n de tokens para la autenticaci\u00f3n en servicios de terceros. Sin embargo, para que funcione el acceso a la cuenta de Adobe, primero debes vincular la aplicaci\u00f3n a tu cuenta de Adobe, lo cual, bas\u00e1ndonos en las rese\u00f1as de <a href=\"https:\/\/apps.apple.com\/us\/app\/adobe-account-access\/id1514571935\" target=\"_blank\" rel=\"nofollow noopener\">App Store<\/a> y <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.adobe.ims.accountaccess\" target=\"_blank\" rel=\"nofollow noopener\">Google Play<\/a>, no es nada recomendable.<\/li>\n<\/ul>\n<h2>Entonces, \u00bftengo que usar Google Authenticator?<\/h2>\n<p>No necesariamente. Todos los servicios que funcionan con Google Authenticator te permitir\u00e1n configurar la autenticaci\u00f3n en dos pasos utilizando cualquier otra aplicaci\u00f3n similar. Es m\u00e1s, muchos de ellos presentan importantes ventajas frente a la aplicaci\u00f3n de Google.<\/p>\n<p>Por cierto, en <a href=\"https:\/\/www.kaspersky.es\/blog\/best-authenticator-apps-2022\/26679\/\" target=\"_blank\" rel=\"noopener\">esta publicaci\u00f3n<\/a> de nuestro blog puedes leer sobre los autenticadores m\u00e1s interesantes para los principales sistemas operativos: Android, iOS, Windows y macOS. Y por \u00faltimo, si has le\u00eddo este texto al completo, algo nos dice que podr\u00edan interesarte <a href=\"https:\/\/www.kaspersky.es\/blog\/best-authenticator-apps-2022\/26679\/#andotp\" target=\"_blank\" rel=\"noopener\">andOTP<\/a> si usas Android y <a href=\"https:\/\/www.kaspersky.es\/blog\/best-authenticator-apps-2022\/26679\/#otp-auth\" target=\"_blank\" rel=\"noopener\">OTP auth<\/a> para iOS.<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"kaspersky-password-manager\">\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo funcionan las aplicaciones de autenticaci\u00f3n y cu\u00e1les son las alternativas a Google Authenticator.<\/p>\n","protected":false},"author":2726,"featured_media":28396,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2019],"tags":[1396,182,3520,3521],"class_list":{"0":"post-28395","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-technology","8":"tag-2fa","9":"tag-aplicaciones","10":"tag-autenticacion-en-dos-pasos","11":"tag-autenticadores"},"hreflang":[{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/authenticator-apps-compatibility\/28395\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/authenticator-apps-compatibility\/25158\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/authenticator-apps-compatibility\/20654\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/authenticator-apps-compatibility\/27789\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/authenticator-apps-compatibility\/25491\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/authenticator-apps-compatibility\/25941\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/authenticator-apps-compatibility\/34625\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/authenticator-apps-compatibility\/47063\/"},{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/authenticator-apps-compatibility\/20115\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/authenticator-apps-compatibility\/20694\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/authenticator-apps-compatibility\/29758\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/authenticator-apps-compatibility\/33242\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/authenticator-apps-compatibility\/25833\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/authenticator-apps-compatibility\/31532\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/authenticator-apps-compatibility\/31246\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.es\/blog\/tag\/2fa\/","name":"2FA"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts\/28395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/users\/2726"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/comments?post=28395"}],"version-history":[{"count":5,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts\/28395\/revisions"}],"predecessor-version":[{"id":28403,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/posts\/28395\/revisions\/28403"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/media\/28396"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/media?parent=28395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/categories?post=28395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.es\/blog\/wp-json\/wp\/v2\/tags?post=28395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}