Google Microsoft y Apple como login

Hace muchos años existió un proyecto de Microsoft llamado Microsoft Passport. No estaba mal, pero terminó siendo descontinuado. Sin embargo, durante un tiempo me permitió usar los precursores de OAuth; con apenas cuatro líneas de código en una pantalla y cinco en otra, se validaba el ingreso de usuarios al sistema de modo absolutamente seguro y resistente a las normas de auditoría de la época.

Me estremezco al pensar en el espanto técnico de Active Domain / Active Directory en servidores Microsoft Windows Server. Literalmente suele ser mejor en empresas medianas tener dados de alta a todos los usuarios en todos los servers por problemas de actualizaciones instaladas por Windows Update.

Pero con Microsoft Passport … Aunque la lógica dicta que debe haber una base de datos detrás, era suficiente con incluir un campo de correo electrónico (especificando dominios como hotmail.com) y un campo adicional que, si mal no recuerdo, le puse al campo validacion_online. Por defecto lo definía como SI en un VARCHAR(3). Debo aclarar que no utilizo booleanos para evitar problemas de compatibilidad al migrar entre motores de bases de datos.

Dejé de usar Passport cuando Microsoft lo descontinuó. En aquel entonces era una solución válida porque esos sistemas específicos eran de gestión (que representan cerca del 40% de mi trabajo). Un sistema de gestión que no esté en línea es posible, pero resulta relativamente inoperante. Ya superamos la época de Clipper y el USE DATABASE de dBase.

Hoy asumimos que ciertas funciones deben estar online, aunque siempre debemos ser resistentes a la mala conectividad. Tengo clientes en zonas rurales donde el login no puede depender exclusivamente de una conexión estable. Como dato curioso: aunque no uso Hotmail desde hace unos 14 años (salvo para la Xbox que compré para mis hijos en 2016), mi cuenta de Hotmail data de 1993, antes de que Microsoft la comprara. Mi primera cuenta de Gmail probablemente sea de 2009 o 2010.

Tengo una cuenta de Apple vinculada a un iPad Mini que compré para una presentación en 2012. Quizás compre otro algún día; las fotos eran fenomenales y lo usé durante años para digitalizar expedientes en juzgados civiles y penales. Sin embargo, no utilizo activamente la cuenta de Apple. Aunque se supone que ofrecen mayor privacidad, no sería mi primera opción; en mi experiencia, es el ecosistema preferido por directivos y «wannabes». Nunca he tenido un iPhone y solo tendría uno si no me quedara más remedio.

Me preocupa la lentitud reconocida con el paso de los años: es sabido que el sistema operativo de Apple degrada el rendimiento de las versiones anteriores de hardware para «ahorrar batería» pero en realidad para obligar a comprar un modelo más reciente. Desde un punto de vista ideológico, es un «no» rotundo. Además, en México no se justifica el gasto en una Mac a menos que la empresa la pague o te dediques al diseño gráfico. He conocido a pocos colegas de sistemas que usen Mac (incluyendo uno actual que programa en React con Go), pero siempre dependes de un hardware que no solo es caro, sino difícil de reemplazar en una emergencia.

Hoy, al cierre de mes, reflexionaba sobre los tiempos. Aunque un cliente (aquel que me pidió cometer un delito y me negué) me quedó a deber cinco meses el año pasado, he pasado los últimos ocho meses diversificando mis proyectos y cubriendo mis espaldas de los derivados legales de eso. Ese cliente era mi ingreso secundario. Ya van 13 meses sin ese ingreso y, francamente, no me afecta; podría vivir cómodamente con mis ingresos fijos. Esos ingresos perdidos entre el enero pasado y este, serían suficientes para comprar una casa en otra parte del país o un coche nuevo en la CDMX.

Pero no me interesa ni lo uno ni lo otro. Tengo propiedades y no necesito coche; otros ingresos secundarios vendrán. Mientras tanto, acabo de recibir el correo de inscripción para mi último semestre de la carrera. El servicio social se vuelve urgente, aunque no sea «importante». Ya lo he hecho dos veces antes, pero debido a aquel problema con la preparatoria en Guadalajara, fueron tiempo perdido. Vamos por la tercera.

No estoy haciendo un cierre mental ni es un regreso a nada; la realidad es que nunca me he ido.

En el caso del cliente de los «monolitos», utilizaban Outlook corporativo en la nube, que en mi experiencia es una porquería, no solo por sus búsquedas deficientes. Yo recibo entre 30 y 50 correos diarios en días tranquilos (y no es spam). En octubre, por ejemplo, mi cuenta de Gmail (que funciona como mi concentradora principal ) registró 115 mensajes nuevos entre las 21:00 y las 05:15 horas.

A veces, mi celular deja de recibir la señal de SMS necesaria para la verificación de dos pasos (2FA). Sé cómo enviar SMS usando Twilio; hace tres años el costo era de unos 100 pesos al mes más 50 centavos por mensaje. Sin embargo, esa no es la solución de identidad digital que uno necesita en momentos críticos.

En septiembre, con otro cliente que sufría una fuga de información, no sabían si el problema radicaba en Barracuda (esa mezcla de firewall y bloqueador de correo que puede configurarse mal), en Outlook o en cuentas de Gmail. Era Virus y un sniffer. ¿Qué hice? Bajo el amparo de un convenio de confidencialidad (NDA), avisé que usaría una cuenta de Gmail ( evitando POP/IMAP para no exponerme a sniffers ) y, por ridículo que parezca, avisé y utilicé Eve Online, explicando las razones..

Sí, la pantalla de inicio de Eve Online es parte de un proceso de OAuth que permite gestionar varios personajes y envía notificaciones por correo. Creé un personaje llamado «Compliance Empresa X» (que ya borré) y lo usé para monitorear el acceso mientras detectaba el origen de la fuga. Es una medida extrema a la que no deberíamos estar obligados, pero que demuestra las fallas en los sistemas de identidad actuales.

Entre el año 2001 y 2003, solía usar Diablo II: Lord of Destruction para probar el rendimiento de red, audio y video en laptops de diseño. Años antes, Doom era la prueba definitiva para configurar la SoundBlaster y la red. No me he ido a ninguna parte ni estoy cerrando ciclos; simplemente uso lo que funciona.

He comentado anteriormente que prefiero utilizar mis propios servidores de Git (específicamente Gitea) y tengo razones de peso para evitar GitHub. Por acuerdos de confidencialidad (NDA) y estrictas reglas de manejo de información, gran parte de mi trabajo simplemente no puede estar en la nube de Microsoft.

Recientemente, en una de las alianzas de Eve Online en las que participo, me pidieron compartir el código de una aplicación de monitoreo de mercados y unos controles adicionales para la verificación de naves destruidas (reembolsos de alianza). Aunque el software de mercados no es problema, el otro módulo realiza labores de inteligencia. Ni siquiera eso puedo subirlo a GitHub por una cuestión de due diligence corporativo.

Lo irónico es que muchos proveedores donde contrato servidores permiten loguearse usando GitHub como identificador. Me parece un suicidio técnico: entre los bloqueos del gobierno de USA y las notificaciones por DMCA falsos, depender de esas validaciones de identidades es absurdo, inseguro y suicida. Incluso LinkedIn tiene problemas similares o peores. Al final, resulta que una alternativa como Facebook (que utilizo para loguearme en algunos sitios) termina siendo más «segura» o resistente por la granularidad de los datos, aunque no resulte evidente o intuitivo..

Es una completa estupidez.

Llevo desde 1995 manteniendo dentro de mi mente compartimientos estancos y separados, necesarios por seguridad. Un ejemplo clásico es la pared imaginaria que hubo muchos años en Microsoft entre aplicaciones y sistemas operativos: los dos equipos no se hablaban. Incluso a mí, en el cliente de los monolitos, me pidieron el año pasado que hiciera mi solución para otra dirección; pero al ser dos divisiones(estructuras) diferentes se podía manejar con cambios relativamente pequeños pero las reglas de negocio diferentes y usar mi código para ambas divisiones y  mantener comunicaciones separadas, pero un solo código que reaccionara solo.

Lo procedente era comprar otro celular para manejar y poder dar soporte diferente por WhatsApp a grupos completamente aislados. Es lo que hice. Había un código de jQuery que yo no hice pero que era necesario y que funcionaba bien en el primer servidor (división uno, por sus fallas y PHP 7.x), pero que en uno medio bien configurado, el dos y PHP 8.1, no funcionaba. Parte de la solución tuvo que ver con arreglar eso; además, el primer jQuery reaccionaba a letras (construyendo un texto por cada una), y el segundo a palabras completas que en realidad eran series de números. Ejemplo: en el primero ‘DIA’ eran tres letras que creaban un texto en combinación única, pero en el segundo servidor las reglas eran que ‘9’ era válido, pero ’29’ también y ‘129’ también (¿370 SLOC de jQuery? más o menos…). Además, las letras ‘Ñ’ eran parte de la clave en los servidores, pero no tenían control de Unicode ni los módulos de PHP y mbstring necesarios. ¡Oh Dios! Y la 8.1 con todos sus bugs.

Tuve que usar CAST desde la base de datos y la experiencia en el uso de base64_encode sirvió, además del manejo avanzado de MySQL antiguo. Un servidor era MySQL y el otro MariaDB. Esto último era llamar al desastre, porque el 19 de septiembre de 2025 iba a quedar fuera de combate MariaDB para Azure Cloud, por lo que el segundo servidor no iba a servir y el primero iba a funcionar solo por su propia incompetencia. Tratar de migrarlo además iba a ser necesario pero espantoso. Y gratis ? No. Parte de lo que me pidieron hacer como delito era trabajar gratis con información confidencial durante meses, pero además resolver ese tipo de problemas en una red inestable era ridículo. Que me pidieran hacer el delito me permitió salir de manera limpia, y ellos se quedaron con un buen problema y sin el código (y cincuenta personas sin soporte incluyendo la dama Margarita). Migrarlo no es fácil. Supongo que se van a aventar tres o cuatro años con 7.x de php , además de por mPDF a version 8 y sin composer.

Quité mi solución de esa segunda dirección cuando estábamos por hacer las pruebas, porque no me habían pagado los cinco meses en la primera división; además, ya estaba dando soporte a 50 personas sin pago y poniendo yo el tiempo aire del primer teléfono. No iba a pagar tiempo aire de un segundo teléfono (y el equipo) ni a trabajar gratis para dos direcciones. Estaba más allá de la prueba de concepto y por empezar las capacitaciones, habiendo sido bendecido ya por el usuario final de la segunda división. La versión más avanzada era la de la segunda división y es la que borré. Si no me pagaban no iban a usarlo, no iba a darle mantenimiento, no iba a capacitar a nadie, y las adaptaciones de diferencias de la ley respectiva entre las dos divisiones me tomaron unos cuatro días, pero a otros programadores les tomaría meses, pues necesitarían entender bien el software de la primera división y las plataformas diferentes de manejadores de paquetes (dnf vs yum) y versiones de PHP. Así que borré la prueba de concepto bendecida por el usuario final y con reportes firmados aprobados, y dije que empezaba la capacitación en cuanto me dieran el pago de la primera y acordáramos lo de la segunda.»

Ahora esa dama de la segunda división sigue en Excel (me lo confirmó en persona en Noviembre). La primera dirección regresó a Excel. Actualizar el 7.4 a php 8.x no funcionaría y necesitarían ajustes que yo había resuelto como en doce horas. Pero en ese servidor y sin root, imposible.

Yo me quedé con un celular extra y con un código que no es de concepto sino funcional pero no iba a dar soporte ni atender gratis a otros 30 usuarios que me iban a buscar dos o tres veces por semana midiendo por la experiencia del sistema de dirección uno, los que me pidieron cometer delito y me negué.

Se le llama seguridad por aislamiento y, y a la base mental se le llama lógica radical.

Si me pagaron los años anteriores pero esos cinco meses no. Por eso esperé. Por lo general a las dos semanas sin pago me retiro, y esta es la tercera vez que me pasa en 34 años.

Esta seguridad compartimentada o por contenedores supongo que es lo que llevó a crear Docker y Kubernetes. Pero el problema de fondo no es la necesidad de conectividad a internet; son dos: uno, que por default muchas veces estás expuesto a las IP de tus vecinos por desplazamiento horizontal; y dos, que perder dos horas en un hardening básico y cuatro días en uno profundo es absolutamente estúpido.

Veo una serie: El regreso del juez. No tiene que ver con el Juez Dredd.

No juzgo; la seguridad preventiva evita crímenes y disminuye la necesidad de jueces. Así que me preparo. Poner en línea ciertas cosas implica usar nuevas cuentas o nuevos dominios. Siempre el mismo hombre. Problema: varias de las herramientas que uso ya solo dan tres opciones: Apple, Google o Microsoft.

Unas cuentas te dejan usar GitHub, que además de ser de Microsoft, es igual o peor. Incluso si tuviera que crear una cuenta nueva de GitHub, no la haría con una cuenta de Hotmail ni de Apple; sería con Google.

Hay un problema en el ecosistema.

No estoy juzgando. Como DevOps y contador (o literalmente administrador de sistemas, que es como antes se les llamaba a los DevOps), me encuentro con una serie de disyuntivas, no de soberanía digital, sino de validación de identidad por medios deficientes.

Eve Online es más robusto. Puedo hacer, y he hecho, OAuth/JWT más robustos. Usar Microsoft Passport permitía esto. El problema es que, a la larga, ciertas cosas quedan segmentadas no tanto por el DevOps, sino por una dependencia técnica innecesaria, por decirlo de algún modo. Aunque puedo hacer interfaces de acceso basadas en PayPal, no son robustas; también puedo crear métodos que usen tarjetas de crédito virtuales como modo de identificación, las cuales puedo interrumpir desde mi propio lado, no solo desde mi celular. Puedo cerrar eso directamente en un navegador.

Pero esto no es un problema de seguimiento; es tener que establecer lazos innecesarios. Por ejemplo, las huellas biométricas son el modo de validación más inseguro que existe: pueden poner tu dedo, incluso ya muerto, en un celular para liberarlo, y es algo que no puedes cambiar. Es como el mecanismo de los PIN de Microsoft, solo que más «intuitivo».

Dice la tradición y un libro que lei:

«Vive libre, eso es todo. Vive libre aunque tu cuerpo esté encadenado. Toda libertad tiene su precio, pero la de la   mente es inestimable».

No tengo problema en dar acceso, si es necesario en un trabajo, a agentes de código. Pero tienen menos capacidad de retención que yo. Incluso he estado en lugares donde uso tres computadoras diferentes propias, formateadas aparte y con cuentas independientes para actividades distintas, para así evitar la contaminación.

No se trata de paranoia; es ser consciente de los riesgos. Pero Google, por ejemplo, tiene sus problemas. No me gusta la idea de que a veces no recibo los mensajes con el código numérico para poder entrar a un sitio web como, por ejemplo, el de la universidad donde estoy por acabar la carrera (que es un plan de reserva y no una necesidad ni un deseo).

OPSEC: Seguridad operativa.

Por razones varias, tengo varias casas. No las rento. Tengo este blog por… OPSEC y OSINT. Seguridad a través de la exposición. Es más seguro vivir donde vivo que en otro lado, de momento, y no por criminalidad. Han ocurrido mejoras desde el último intento de intrusión en este conjunto; no es bonito, pero es seguro.

Como una terminal de Bash o el antiguo command.com. Si sabes lo que haces

Así que, en cierto modo, extraño el Passport de Microsoft. Poder loguear en algún lugar con Facebook, Xbox o Steam es un plus. Pero algo está mal. Es un tema para pensar.

Mientras tanto, pienso cómo voy a separar la información de mercados para la alianza y mi propio control de pendientes y favoritos para ponerlos online y dejar el código de manera libre porque no requiere NDA.En este caso me lo pidieron y no veo problema.