MSN Chat fue la versión de Microsoft Network de IRCX ( extensiones de Internet Relay Chat de Microsoft ), que reemplazó a Microsoft Chat , un conjunto de servidores IRCX basados en Exchange disponibles por primera vez en el cliente Microsoft Comic Chat , aunque no era necesario Comic Chat para conectarse. [ cita requerida ]
Según el sitio web de MSN Chat, para utilizar el servicio de chat de MSN se requiere lo siguiente:
El control de chat de red de Microsoft se desarrolló como un objeto del modelo de objetos componentes (COM) de ActiveX . ActiveX, al ser una tecnología de Microsoft, proporcionaba una compatibilidad limitada con otros productos. Las otras plataformas principales, además de Internet Explorer , en las que se admitía MSN Chat eran Netscape Navigator y MSNTV (antes conocida como WebTV ). Para garantizar que solo los clientes autorizados se conectaran a la red de MSN Chat, Microsoft creó e implementó un paquete de autenticación de proveedor de servicios de seguridad basado en SASL conocido como GateKeeper. Este utilizaba una clave de sesión aleatoria para autorizar a los usuarios que no utilizaban el sistema Microsoft Passport (ahora cuenta Microsoft). Microsoft utilizaba otro SSP conocido como GateKeeperPassport, que funcionaba con el mismo método pero requería ciertos atributos relacionados con la cuenta del usuario.
Se han utilizado varios métodos para acceder a la red de chat de MSN mediante mIRC . La mayoría de ellos se realizaban mediante el propio control de chat de MSN, aunque otros eran más complicados.
Al principio, poco después de la migración de Microsoft Chat , la red de chat de MSN podía conectarse directamente a través de cualquier cliente de IRC a irc.msn.com en el puerto 6667. Quizás debido al abuso u otros factores, como el deseo de autenticar a los usuarios en función de su Microsoft Passport , Microsoft implementó GateKeeper y GateKeeperPassport, e integró ambos en su control de chat. La debilidad de GateKeeper y el hecho de que los primeros controles de chat de MSN (1.0−3.0) tuvieran funciones públicas para realizar la autenticación de GateKeeper parecían indicar que Microsoft quería que terceros pudieran acceder a su red como antes, pero querían poder controlar el abuso automatizado. En cualquier caso, estas funciones públicas permitieron que los clientes normales de IRC se autorizaran a sí mismos.
Con el lanzamiento de MSN Chat Control 4.0, se eliminaron las funciones públicas. Los usuarios encontraron una forma de autorizarse mediante un "método proxy", lo que obligó a Chat Control a establecer conexiones entre mIRC y la red de chat.
Con el lanzamiento de MSN Chat Control 4.2 y versiones posteriores, bloquearon este método proxy haciendo que el control de chat incluyera en la respuesta al desafío de autenticación la dirección IP del servidor al que se le había indicado que se conectara. Si se le indicaba al control que se conectara a cualquier dirección que no fuera la del servidor, no coincidiría con el hash del servidor y, por lo tanto, la autenticación fallaría. Algunos clientes de terceros posteriores podían autenticarse sin el control y se ajustaron para compensar este cambio.
Las versiones de MSN Chat fueron diseñadas desde IRC3 hasta IRC8. Incluso con las versiones más nuevas, MSN Chat aún tenía la posibilidad de replicar versiones anteriores de MSN Chat emitiendo el comando IRCVERS.
Se cree que IRC hacía referencia al IRC Daemon original y que IRC2 hacía referencia a IRCX.
No se prohibía el uso de aplicaciones de terceros en la red de chat de MSN, aunque no se admitía. Las aplicaciones de terceros debían utilizar los mismos métodos de autenticación que el control de chat de MSN.
El segundo cambio fue el más importante, ya que permitió que el control de chat uniera las conexiones entre el cliente y el servicio de chat de MSN.
Las aplicaciones de terceros más populares fueron mIRC, IRC Dominator y Viperbot.
Los scripts a menudo se descargaban de sitios como TechGear007.
Los mecanismos de autenticación GateKeeper (y el estrechamente relacionado GateKeeperPassport) son mecanismos de autenticación SASL tal como se definen en los borradores de IRCX.
Después de la introducción de la autenticación en MSN Chat, Gatekeeper era el único método de autenticación que el público podía usar. Durante el protocolo de enlace inicial, el cliente enviaba un paquete que solo contenía el encabezado de 16 bytes al servidor, y el servidor respondía con un encabezado, junto con un nonce criptográfico de 128 bits . Finalmente, el cliente creaba un hash criptográfico de 128 bits del nonce recibido del servidor utilizando una clave secreta, enviándolo como una respuesta de autenticación posterior después del encabezado e inmediatamente antes de un GUID de 16 bytes. La función hash criptográfica utilizada era hmac - md5 , y la clave secreta era "SRFMKSJANDRESKKC" (distingue entre mayúsculas y minúsculas).
Las primeras implementaciones del mecanismo de autenticación GateKeeper no crearon una barrera de entrada, ya que la API de autenticación que Microsoft había creado estaba disponible para otros desarrolladores de programas. Después de un tiempo, Microsoft eliminó la posibilidad de que los desarrolladores usaran o vieran la API que se había incorporado en el control de chat de MSN, y se puede suponer con seguridad que a partir de ese momento Microsoft quería que el acceso se realizara únicamente desde el control de chat oficial.
La autenticación GateKeeper hizo su aparición en el cliente WebTV/MSNTV.
Pronto se dieron cuenta de que también era posible conectarse mediante la creación de un proxy que cargaría el MSN Chat Control temporalmente según fuera necesario, retransmitiendo nonce y hashes entre el servidor y el control, antes de cerrar el control de chat. La dificultad con este método es que a menudo era lento, no funcionaba o podía bloquear las aplicaciones debido a que requería que el control ActiveX se usara en Microsoft Internet Explorer o en controles web basados en MSIE. Es posible que se pudiera haber utilizado un navegador alternativo (como Netscape Navigator, Firefox, etc.) para alojar el MSN Chat Control, ya que había una versión NPAPI disponible de Microsoft. En julio de 2002, un usuario llamado zmic realizó ingeniería inversa del MSN Chat Control y produjo un script de Python que podía iniciar sesión sin el uso del MSN Chat Control. El script de Python tenía errores, pero luego fue reescrito en varios lenguajes de programación por varios autores. El usuario eXonyte había escrito un código que se podía usar (a través de WINE) en Linux. Se cree que esta fue la primera vez que MSN Chat se utilizó fuera de Windows.
Cuando se introdujo la versión 3 de GateKeeper, se trataba de un cambio muy menor que añadía la cadena del nombre del servidor (tal como se define en el parámetro de control de chat "Servidor") al hash. La cadena adicional no incluiría dos puntos ni puerto si estuvieran presentes. Esto parecía ser un intento de derrotar al método proxy para acceder al servicio, pero se superó rápidamente cuando los usuarios compartieron la información de que se había añadido la IP al hash. Es probable que esta información la filtrara alguien de Microsoft, ya que había rumores sobre el próximo cambio antes de que se lanzara la nueva versión de GateKeeper.
No fue hasta alrededor de 2018 que el usuario JD se dio cuenta de que las distintas claves obtenidas mediante ingeniería inversa de zmic eran probablemente derivadas de otra clave, y pudo encontrar la clave de texto sin formato, antes de encontrar el algoritmo utilizado. Al compartir esta información con Sky, descubrieron rápidamente que la función hash criptográfica subyacente era HMAC-MD5.
Todavía quedan dos bytes desconocidos en el encabezado de autenticación de GateKeeper, pero se probó con el servidor de chat de MSN muchas veces y el servidor no pareció diferenciar entre los valores de esos dos bytes. Existe la posibilidad de que los dos bytes sean bytes aleatorios de memoria.
Al igual que GateKeeper, NTLM y NTLMPassport se implementaron como mecanismos de autenticación SASL según se define en el protocolo IRCX.
La autenticación NTLM no estaba disponible para su uso en el control de chat de MSN y la única implementación de cliente conocida se encuentra en el cliente de administración de chat de MSN, que es un cliente muy básico que se creó para que lo utilizara el personal de chat de MSN, basado en la versión 2.5 de MS Chat disponible públicamente. Las credenciales NTLM no estaban disponibles para los usuarios normales. Se cree que el personal de chat de MSN utilizó NTLM para autenticarse y que se autenticó a través del Active Directory de Microsoft . Es posible que el personal de chat de MSN estuviera conectado directamente a la red de Microsoft o a través de una red privada virtual (VPN).
El personal de MSN Chat también tenía la posibilidad de iniciar sesión a través del método USER/PASS menos seguro documentado en RFC 1459. Esto se usó mucho con los bots de chat oficiales, ya que no requería conocimiento de los mecanismos de autenticación SASL.
GateKeeperPassport y NTLMPassport eran extensiones de los mecanismos de autenticación GateKeeper y NTLM. Las extensiones Passport permitían al usuario identificarse con un «.net Passport» (más tarde conocido como Windows Live Passport, ahora conocido como Microsoft Passport).
Cuando un cliente intentaba registrarse utilizando una extensión de autenticación de pasaporte, en lugar de recibir los asteriscos habituales para indicar que la autenticación se realizó correctamente (como se indica en los borradores de IRCX), se le presentaba un comando de autenticación posterior adicional, con solo la cadena 'OK' como parámetro. El usuario luego enviaba de vuelta un comando de autenticación sin el encabezado, utilizando dos variables conocidas como PassportTicket y PassportProfile (tomadas de las cookies del navegador MSPAuth y MSPProf) para identificarse. Ambas variables estaban precedidas por una representación de cadena de un número hexadecimal de 8 dígitos que indicaba la longitud de la variable y se deben presentar en el orden correcto. Al utilizar GateKeeperPassport, el GUID especificado después del hash de GateKeeper debe ser un GUID nulo - Literalmente \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
.
Ejemplo de PassportTicket y PassportProfile que se envían:AUTH GateKeeperPassport S :0000000EPassportTicket0000000FPassportProfile\r\n
Si bien se supone que se utiliza el mismo formato con NTLMPassport, no se puede confirmar ya que no se ha observado el uso de NTLMPassport. El personal activo del chat de MSN utilizaba NTLM y se lo consideraba invitado, aunque no se aplicaba el prefijo de invitado ">", sino que se utilizaba el prefijo "'", que se indica que es un prefijo de apodo Unicode en los borradores de IRCX.
MSN Chat tenía los siguientes niveles de usuario:
Personal:
Usuarios:
Existen muchas redes de chat que intentan simular el servicio que proporcionaba Microsoft Network y que utilizan el "MSN Chat Control". Estas redes de chat simuladas suelen denominarse "clones de MSN Chat". Por lo general, se trata de redes de chat pequeñas que suelen depender de servidores IRC caseros o servidores IRCX. Muchos de los "clones de MSN Chat" no cumplen las normas y no siguen los estándares RFC 1459 (IRC) o "eXtensions to Internet Relay Chat" (IRCX) y, a menudo, contienen muchos errores o vulnerabilidades que pueden provocar una denegación de servicio con el MSN Chat Control.
Muchos de los clones de MSN Chat comenzaron a funcionar directamente después de que MSN cerrara sus servicios (2006), y desde entonces han seguido surgiendo otras redes. Se especula que estas redes de chat pueden haber alejado a posibles suscriptores de MSN Chat, lo que en última instancia provocó la desaparición de los servicios de chat por suscripción de MSN.
Si bien la mayoría de los sitios de chat de MSN Clone son gratuitos, la mayoría de ellos dependen de los anuncios para generar un pequeño ingreso. Además, algunos de los clones han comenzado a cobrar o a permitir donaciones.
La legalidad de los sitios que ofrecen el Control de chat de MSN ha estado en tela de juicio durante algún tiempo debido a que muchos "sitios clonados" alojan el Control de chat. La descarga del Control de chat está disponible públicamente a través de Microsoft en [1].
Hubo muchos problemas documentados por parte de los usuarios sobre la función de chat de MSN. La mayoría estaban dirigidos al "anfitrión del chat". Se trataba de una persona que entraba en la sala de chat con el nombre de "anfitrión" y actuaba en consecuencia regulando la sala. Este servicio era útil para controlar la sala, asegurarse de que todos se comportaran como corresponde, responder a las preguntas de los usuarios sobre las salas y otras tareas diversas. Si bien la idea de un supervisor tranquilizaría a muchos usuarios, se informó de que había desacuerdos entre los dos sobre lo que se consideraba apropiado.
Una razón importante para el cierre de MSN Chat fue que brindaba otra oportunidad para que los pedófilos y otros delincuentes sexuales tuvieran acceso a los jóvenes a través de las salas de chat. [1]
En 2001, Microsoft cerró el acceso a través de los clientes de IRC (incluido Comic Chat), y pidió a los usuarios que utilizaran exclusivamente su cliente de navegador. En 2003, Microsoft anunció que cerraría las salas de chat de MSN "no reguladas" en 28 países, incluida "la mayor parte de Asia", debido a problemas con el correo basura y preocupaciones sobre material de abuso sexual infantil, con planes de convertirlas en un modelo de suscripción para una "mejor rendición de cuentas". [2] [3] Los servicios de chat de Messenger permanecieron abiertos. [4] MSN Chat se convirtió en un servicio de suscripción por 20 dólares al año. [5]
El 31 de agosto de 2006, Microsoft anunció que MSN Chat ya no se ofrecería. El 16 de octubre de 2006, MSN Chat cerró sus servidores [6] aproximadamente a las 11:30 am EST. El servicio cerró porque supuestamente MSN ya no consideraba rentable funcionar como un servicio de suscripción.