{"id":25941,"date":"2023-02-13T02:52:44","date_gmt":"2023-02-13T08:52:44","guid":{"rendered":"https:\/\/latam.kaspersky.com\/blog\/?p=25941"},"modified":"2023-02-13T02:52:44","modified_gmt":"2023-02-13T08:52:44","slug":"authenticator-apps-compatibility","status":"publish","type":"post","link":"https:\/\/latam.kaspersky.com\/blog\/authenticator-apps-compatibility\/25941\/","title":{"rendered":"\u00bfGoogle Authenticator es irremplazable?"},"content":{"rendered":"<style>\ncode {overflow-x: scroll;  white-space: nowrap; width: 100%}\n<\/style>\n<p>Varios servicios online te permiten (y te obligan en ocasiones a) configurar la autenticaci\u00f3n en dos pasos (2FA) con c\u00f3digos de un solo uso. La aplicaci\u00f3n de autenticaci\u00f3n m\u00e1s conocida y usada para generar este tipo de c\u00f3digos es Google Authenticator, ya que es compatible con casi todos los servicios, de hecho, algunos hasta proporcionan un enlace a la aplicaci\u00f3n cuando configuras la 2FA. Pero \u00bfGoogle Authenticator es la \u00fanica opci\u00f3n o deber\u00edas darle una oportunidad a alguna de las diversas alternativas, como Microsoft Authenticator o Twilio Authy?<\/p>\n<p>Ya que existen estas alternativas y es claro que tienen una base de usuarios, podr\u00edan parecer un total reemplazo de Google Authenticator. Pero \u00bfser\u00e1 que hay una trampa escondida? Si no tienes tiempo de leer todo, la respuesta est\u00e1 aqu\u00ed: no te preocupes, Google Authenticator es completamente reemplazable. Pero si te da curiosidad descubrir todos los detalles, sigue leyendo\u2026<\/p>\n<h2>C\u00f3mo funcionan los autenticadores<\/h2>\n<p>Empecemos por c\u00f3mo funcionan en general estas aplicaciones de autenticaci\u00f3n. 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 cuales las aplicaciones se basan, junto con algunas otras cosas, pero que no incumben para esta publicaci\u00f3n.<\/p>\n<h3>El HOTP de la OATH<\/h3>\n<p>Corr\u00eda el 2005 cuando 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 apareci\u00f3, estableciendo los fundamentos de la autenticaci\u00f3n mediante c\u00f3digos de un solo uso que se generan en sincronizaci\u00f3n por parte del cliente y del servidor.<\/p>\n<p>La idea es que tanto la app como el servicio que uses 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 b\u00e1sicamente es un n\u00famero que crece cada vez que se genera un nuevo c\u00f3digo \u00fanico. Los datos para calcular este c\u00f3digo son los mismos de ambas partes, por lo que, de acuerdo con lo planeado, ambos c\u00f3digos ser\u00e1n id\u00e9nticos. Ya solo queda compararlos: si el c\u00f3digo que introduces coincide con el generado por el servidor, la autenticaci\u00f3n se habr\u00e1 logrado.<\/p>\n<p>Tras cada solicitud de una sesi\u00f3n de generaci\u00f3n, el valor del contador cambia para que el c\u00f3digo sea \u00fanico. Se usa un algoritmo que descarta c\u00e1lculos inversos y la extracci\u00f3n de la clave secreta de este c\u00f3digo. Por ende, incluso si alguien intercepta 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 hay dos problemas principales con el HOTP. Primero, los valores del contador se desincronizan f\u00e1cilmente. Por ejemplo, si solicitas al autenticador que genere un c\u00f3digo, pero al final no lo usas, el autenticador del lado del cliente cambiar\u00e1 el valor del contador, mientras que en el lado del servicio seguir\u00e1 siendo el mismo. Entonces, los c\u00f3digos generados ya no empatar\u00e1n. Segundo, el c\u00f3digo sigue siendo v\u00e1lido hasta que cambia el valor del contador, lo que puede dar tiempo a un atacante para usar el c\u00f3digo interceptado si es que lograra distraer a la v\u00edctima.<\/p>\n<h3>El TOTP de la OATH<\/h3>\n<p>En 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 como contador utiliza la hora actual. El principio es el mismo: una clave secreta conocida por ambas partes es usada 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 en intervalos regulares, Sin importar si se usa o no.<\/p>\n<p>Cualquier dispositivo que se conecte a Internet tiene 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 tendr\u00e1 poco tiempo para usarlo.<\/p>\n<h3>Los autenticadores y sus principios b\u00e1sicos<\/h3>\n<p>Estos dos est\u00e1ndares son los que las aplicaciones de autenticaci\u00f3n utilizan. El m\u00e1s com\u00fan es el TOTP, claro, solo porque es mejor en todos los sentidos, pero todav\u00eda se puede encontrar el HOTP en algunas implementaciones prehist\u00f3ricas.<\/p>\n<p>Al momento de crear un autenticador, el cliente y el servidor deben establecer un est\u00e1ndar com\u00fan y compartir la clave; esto es lo m\u00ednimo que se requiere para que la aplicaci\u00f3n del autenticador funcione. 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 cual nos lleva a la siguiente pregunta: \u00bfc\u00f3mo funcionan dichos c\u00f3digos?<\/p>\n<h2>Contenido del c\u00f3digo QR del autenticador<\/h2>\n<p>Hasta donde s\u00e9, no se est\u00e1 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\">establecido<\/a> por Google Authenticator. Pero, como sea, los sistemas de autenticaci\u00f3n basados en aplicaciones suelen usar c\u00f3digos QR, en los cuales 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 <em>otpauth<\/em> del principio).<\/li>\n<li>El est\u00e1ndar de autenticaci\u00f3n: HOTP o TOTP; TOTP en este caso.<\/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 mediante 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, una vez m\u00e1s, Google.<\/li>\n<li>El algoritmo usado 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: usualmente son 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_25946\" style=\"width: 1010px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2023\/02\/13023508\/authenticator-apps-compatibility-qr-alanna-1.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-25946\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2023\/02\/13023508\/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-25946\"><\/a><p id=\"caption-attachment-25946\" class=\"wp-caption-text\">Los c\u00f3digos QR pueden revelar toda una serie de par\u00e1metros de token de autenticaci\u00f3n<\/p><\/div>\n<p>De hecho, como ya dijimos, podr\u00edan omitirse varios de estos par\u00e1metros. La etiqueta del token y el nombre de usuario pueden ser arbitrarios, mientras que el nombre del servicio no nada necesario; esta informaci\u00f3n no tiene impacto alguno 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 deben establecer el est\u00e1ndar (HOTP o TOTP) y compartir la clave secreta. Por ende, 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_25947\" style=\"width: 1010px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2023\/02\/13023649\/authenticator-apps-compatibility-qr-whoever-2.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-25947\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/87\/2023\/02\/13023649\/authenticator-apps-compatibility-qr-whoever-2.png\" alt=\"C\u00f3digo QR para conectar una app de autenticaci\u00f3n sin la mayor\u00eda de los par\u00e1metros\" width=\"1000\" height=\"500\" class=\"size-full wp-image-25947\"><\/a><p id=\"caption-attachment-25947\" class=\"wp-caption-text\">Muchos par\u00e1metros de c\u00f3digo QR pueden ser omitidos o tener 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 verdad es que cualquier aplicaci\u00f3n de autenticaci\u00f3n puede leer dichos c\u00f3digos QR y convertirlos en tokens de autenticaci\u00f3n, que, a su vez, generan los c\u00f3digos de un solo uso. Por ende, en lugar de Google Authenticator, puedes utilizar la aplicaci\u00f3n que m\u00e1s te guste de entre las decenas de alternativas que existen.<\/p>\n<h2>La excepci\u00f3n que confirma la regla: servicios incompatibles con los autenticadores comunes<\/h2>\n<p>Por alg\u00fan motivo desconocido, no toda la industria TI sigue estos est\u00e1ndares: hay quien prefiere crear los propios. Aqu\u00ed 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 son generados mediante el sistema operativo en todos los dispositivos vinculados a una ID de Apple al mismo tiempo.<\/li>\n<li><strong>Valve y Blizzard<\/strong>. Para la seguridad en Steam y Battle.net, los desarrolladores ofrecen una 2FA de propia: Steam Guard (integrada en las aplicaciones Steam para Android e iOS) y Battle.net Authenticator, respectivamente. Hasta donde 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 debes introducir c\u00f3digo alguno: solo 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\">alternativa s\u00f3lida<\/a> ante Google Authenticator. Por cierto, no es necesaria 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 debes tocar un bot\u00f3n, no hay que enviar c\u00f3digo alguno. Te\u00f3ricamente, la app admite tambi\u00e9n la creaci\u00f3n de tokens para la autenticaci\u00f3n en servicios de terceros. No obstante, 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, \u00bfdebo usar Google Authenticator?<\/h2>\n<p>En realidad, no. Todos los servicios que funcionan con Google Authenticator te permitir\u00e1n configurar la autenticaci\u00f3n en dos pasos utilizando cualquier aplicaci\u00f3n parecida. Es m\u00e1s, muchos de ellos presentan varias ventajas ante a la aplicaci\u00f3n de Google.<\/p>\n<p>Por cierto, en <a href=\"https:\/\/latam.kaspersky.com\/blog\/best-authenticator-apps-2022\/23701\/\" 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. Por \u00faltimo, si le\u00edste este texto por completo, algo nos dice que podr\u00edan interesarte <a href=\"https:\/\/latam.kaspersky.com\/blog\/best-authenticator-apps-2022\/23701\/#andotp\" target=\"_blank\" rel=\"noopener\">andOTP<\/a> si usas Android y <a href=\"https:\/\/latam.kaspersky.com\/blog\/best-authenticator-apps-2022\/23701\/#otp-auth\" target=\"_blank\" rel=\"noopener\">OTP auth<\/a> para iOS.<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"kpm\">\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo funcionan las apps de autenticaci\u00f3n y cu\u00e1les son las alternativas a Google Authenticator.<\/p>\n","protected":false},"author":2726,"featured_media":25942,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2738],"tags":[2127,80,5855,5419],"class_list":{"0":"post-25941","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-mx","url":"https:\/\/latam.kaspersky.com\/blog\/authenticator-apps-compatibility\/25941\/"},{"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","url":"https:\/\/www.kaspersky.es\/blog\/authenticator-apps-compatibility\/28395\/"},{"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:\/\/latam.kaspersky.com\/blog\/tag\/2fa\/","name":"2FA"},"_links":{"self":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/25941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/users\/2726"}],"replies":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/comments?post=25941"}],"version-history":[{"count":5,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/25941\/revisions"}],"predecessor-version":[{"id":25949,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/posts\/25941\/revisions\/25949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media\/25942"}],"wp:attachment":[{"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/media?parent=25941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/categories?post=25941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/latam.kaspersky.com\/blog\/wp-json\/wp\/v2\/tags?post=25941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}