Implementación del protocolo IMAP en el servidor de referencia
El servidor IMAP de la UW fue [2] la implementación del servidor de referencia del Protocolo de acceso a mensajes de Internet . [4] [5] [6] [7] [8] [9] Fue desarrollado en la Universidad de Washington por Mark Crispin y otros. [4] [5] [6] [7] [8] [9]
Historia
El desarrollo de UW-IMAP comenzó alrededor de 1988. [6]
En 2003, UW IMAP se encontraba entre los tres paquetes de servidores IMAP de software libre más populares , junto con Cyrus IMAP y Courier IMAP . [11] [12] [13] En 2005, cuando su base de código había sufrido una extensa reescritura, [6] se encontraba entre los dos primeros, junto con Cyrus IMAP. [14] [15]
En mayo de 2008, la Universidad de Washington finalizó el desarrollo de UW IMAP. [2]
El 4 de agosto de 2008, el personal de la Universidad de Washington que había participado en el desarrollo de UW IMAP, Pine y Alpine, [ cita requerida ] anunció que "cambiarían nuestro esfuerzo del desarrollo directo a un papel más de consulta y coordinación para ayudar a integrar las contribuciones de la comunidad", [16] a raíz de los despidos en la división de tecnología de la Universidad de Washington. [17]
Entre enero y agosto de 2009, los mantenedores de Debian GNU/Linux, un importante distribuidor de UW IMAP, comenzaron a retirar sus paquetes de UW IMAP. [18] [19]
En septiembre de 2009, [ cita requerida ] Mark Crispin, el autor principal de UW IMAP, anunció una bifurcación llamada Panda IMAP. [2] Crispin falleció a fines de 2012. [20]
Al menos un entusiasta de UW IMAP mantiene un repositorio de código fuente público que contiene el historial de commits de UW IMAP y Panda IMAP desde el inicio del proyecto hasta el lanzamiento final de Crispin. [21]
Elogios y críticas
Durante gran parte de la década de 2000, UW IMAP se consideró una buena opción debido a su fácil disponibilidad, su inclusión en todas las principales distribuciones de Linux, su soporte tanto para POP como para IMAP y su facilidad de instalación. [22] [14] También recibió elogios por su facilidad de administración y por su compatibilidad con formatos de buzón de larga data, [7] y por su pequeño tamaño y simplicidad. [24]
A diferencia de los servidores IMAP posteriores, UW IMAP vinculó las cuentas de usuario IMAP a las cuentas de usuario en el sistema operativo subyacente del servidor. [25] Esta característica, junto con el uso predeterminado de archivos de buzón monolíticos de UW IMAP, tenía como objetivo garantizar la compatibilidad con los sistemas operativos heredados y las prácticas de administración de correo electrónico, [ cita requerida ] pero recibió críticas de algunos comentaristas. [27] En particular, Sam Varshavchik, desarrollador del servidor competidor Courier IMAP, sugirió que la decisión de Crispin de no agregar soporte para maildir (un formato de buzón no monolítico popular) a UW IMAP puede haber surgido de un resentimiento persistente por un desacuerdo anterior que Crispin había tenido con el diseñador de maildir, Daniel J. Bernstein . [29] La insistencia de Crispin en mantener el soporte de UW IMAP para archivos planos como almacenes de correo fue criticada, por los mantenedores del servidor competidor Citadel IMAP, por causar una complejidad innecesaria en el protocolo IMAP. [30]
Además, Varshavchik señaló que a pesar de la insistencia de Crispin en que otros servidores IMAP cumplieran con las especificaciones IMAP, el servidor IMAP de UW y su contraparte cliente IMAP, Pine, usaban una extensión IMAP privada que no estaba documentada en esa especificación. [9] UW IMAP también fue criticado por su susceptibilidad a desbordamientos de búfer y por su falta de separación de privilegios en relación con sus competidores Cyrus y Courier, [24] A partir de 2007, existían programas informáticos capaces de explotar vulnerabilidades de seguridad en instalaciones de UW IMAP sin parches o configuradas incorrectamente. [31] y por su soporte SSL poco fiable.
Componentes y características
UW IMAP fue diseñado para ser compatible con los sistemas y almacenes de correo heredados existentes, y para ser instalado "plug-and-play" sin requerir ninguna configuración específica del sitio. [ cita requerida ]
UW IMAP utiliza el motor de correo c-client que también utilizan los clientes de correo electrónico Alpine [ cita requerida ] y Pine . [6] c-client admite varios formatos de almacenamiento de correo, incluidos los spools de noticias de Usenet , [ cita requerida ] MIX , [ cita requerida ] mbox , mbx, mx, mh, tenex, mtx, MMDF y phile. [6] c-client también incluye soporte para los protocolos de Internet IMAP , POP3 , NNTP y SMTP . [ cita requerida ]
También se incluyen con UW IMAP los servidores POP2 y POP3 , [33] el programa de utilidad mailutil y los agentes de entrega de correo dmail y tmail . [3]
En 2005, la base de código de UW IMAP constaba de 135.000 líneas de código , de las cuales el propio servidor IMAP comprendía 4.000 líneas y c-client comprendía el resto. [6]
Extensibilidad y compatibilidad con maildir
UW IMAP no admite oficialmente el formato maildir. Sin embargo, UW IMAP puede ser parcheado para admitir otros formatos, como maildir. Gluelogic ofrece un parche para admitir maildirs en Pine. [35] [ fuente de terceros necesaria ] La instancia de Pine parcheada se puede utilizar para compilar UW IMAP con soporte nominal de maildir. [ cita necesaria ] Sin embargo, esto produce un servidor con errores que no distinguirá correctamente entre mensajes no vistos y recientes. [ cita necesaria ] Hay un parche disponible para Alpine que se puede utilizar de manera similar, pero con menos inconvenientes. [36] [ fuente de terceros necesaria ]
Enlaces externos
- Página de inicio de UW IMAP (consultado el 28 de octubre de 2019)
- Lista de correo IMAP de la UW Archivado el 5 de noviembre de 2018 en Wayback Machine
Véase también
Referencias
- ^ ab "Documentación del servidor IMAP de la UW: RELNOTES". Universidad de Washington . 22 de julio de 2011. Consultado el 4 de noviembre de 2018 .
- ^ abcd "Página de inicio de Panda IMAP". Archivado desde el original el 16 de julio de 2012. Consultado el 23 de septiembre de 2008. Panda
IMAP se bifurcó de UW IMAP 2007b cuando se terminó el desarrollo de UW IMAP en mayo de 2008. Desde entonces, la Universidad de Washington solo ha realizado cambios menores de soporte a UW IMAP (UW IMAP 2007f) para algunos problemas críticos (pero no todos). Todos los cambios de UW IMAP 2007f, o mejores, están en Panda IMAP.
A diferencia de UW IMAP, Panda IMAP pasa completamente todas las pruebas de estado de cumplimiento del servidor IMAP. Panda IMAP es uno de los tres servidores que lo hacen; los otros son Dovecot y SurgeMail.
La versión actual de Panda IMAP es imap-2010...
Panda IMAP está disponible mediante donación. Comuníquese con nosotros para obtener más detalles por correo electrónico al administrador de correo de panda.com...
No ofrecemos soporte para UW IMAP ni Alpine. Ambos son proyectos inactivos. Es poco probable que UW realice más actualizaciones para alguno de ellos.
- ^ ab "IMAP Information Center". Universidad de Washington . 23 de julio de 2009. Consultado el 4 de noviembre de 2018.
La Universidad de Washington licencia el código fuente del kit de herramientas IMAP de la UW, imap-2006 y posteriores, bajo la Licencia Apache, Versión 2.0.
El kit de herramientas IMAP de la UW incluye lo siguiente:
- Biblioteca c-client: una API (interfaz de programación de aplicaciones) utilizada para crear clientes y servidores de correo electrónico, que incluye compatibilidad con los protocolos IMAP, POP3, SMTP y NNTP y para el acceso a archivos de buzones locales en Unix y Windows
- Servidores POP2 (ipop2d), POP3 (ipop3d) e IMAP4rev1 (imapd) de la UW
- mailutil: un programa de utilidad que ayuda a administrar buzones de correo electrónico (tanto locales como IMAP/POP3/NNTP)
- dmail: un MDA (Agente de entrega de correo) para usar con procmail
- tmail: un MDA para utilizar con el sistema de correo (por ejemplo, sendmail, postfix, etc.)
- ^ ab Christenson 2003, p. 110: "UW IMAP es la implementación de referencia del protocolo IMAP. Puede adaptarse de forma flexible a una amplia variedad de formatos de almacenamiento de mensajes, aunque la mayoría de las veces utiliza una edición ligeramente modificada del formato de carpeta de la 7.ª edición. Para servidores más pequeños, UW IMAP funciona adecuadamente, pero carece de algunas de las características de otros sistemas IMAP. Debido a sus características de rendimiento relativamente pobres, este paquete rara vez se utiliza en entornos exigentes".
- ^ ab Gareiss, Robin (4 de febrero de 2010). "UC y código abierto: cómo encontrar la LAMP mágica". Network World .
¿Cuál es la pila LAMP de [comunicaciones unificadas]? ... Nemertes define los sistemas UC como aquellos que proporcionan, como mínimo, VOIP, mensajería unificada, mensajería instantánea/presencia y conferencias (audio, video, web); las características adicionales pueden incluir la funcionalidad de contacto, clientes móviles, integración con sistemas de video y telepresencia basados en salas e integración con plataformas de computación social. Veamos las opciones de código abierto en las categorías principales. ... Yo estaría a favor de IMAP, específicamente la implementación de referencia UW IMAP de los protocolos IMAP, o la bifurcación Panda IMAP de ese árbol.
- ^ abcdefg Golubitsky 2005, pág. 12: "UW-IMAP está escrito y mantenido en la Universidad de Washington por Mark Crispin, el autor del RFC original de IMAP. El propósito de este paquete es proporcionar un servidor IMAP simple y flexible para sistemas multiusuario. El paquete parte del supuesto de que IMAP será uno de los muchos métodos de inicio de sesión a través de los cuales los usuarios remotos pueden acceder al sistema. En particular, las diferencias funcionales entre el acceso IMAP y un método de acceso de shell como SSH deberían ser únicamente que el acceso IMAP está optimizado para el correo electrónico. lectura. Restringir el acceso a IMAP más allá del acceso permitido a un usuario de shell no es un objetivo de diseño.
El servidor UW-IMAP ha estado en desarrollo activo desde 1988, aunque todo el código base ha sido reescrito varias veces desde entonces. El código actual se considera Si nos remontamos sólo a la versión imap-2000 de 2000, encontramos una superposición de código de aproximadamente el 20 % entre imap-2004c1 (la versión más reciente al momento de escribir esto) y la versión imap-4 de 1996. versión, y no hay superposición entre imap-2004c1 y ninguna versión anterior a imap-4.
La base de código actual contiene 135.000 líneas de código y 40.000 líneas de otros archivos. De este código, el servidor IMAP en sí comprende solo 4.000 líneas, mientras que el resto de El código consta de una biblioteca interna (compilada) llamada c-client. Esta biblioteca también es el backend del cliente de correo electrónico Pine.
La compilación de imapd proporciona un único binario con un único propósito. Un programa externo como inetd debe ser Se utiliza para escuchar en los puertos IMAP apropiados. Cuando se establece una conexión, se genera un proceso imapd, que maneja esa única conexión y luego finaliza. Dado que el lugar de UW imapd en el sistema es simple, se reduce la cantidad de código necesario para su implementación. La contrapartida es una mayor dependencia de otros programas para realizar funciones básicas, en particular la entrega de correo y la escucha de puertos. El programa imapd tampoco requiere un archivo de configuración: las opciones de configuración se deben seleccionar en el momento de la compilación.
Otra característica notable de UW-IMAP es que no tiene en cuenta los formatos de buzón. De manera predeterminada, la instalación de UNIX UW se compila con soporte para los tipos de buzón mbox, mbx, mx, mh, tenex, mtx, mmdf y phile. Este soporte "Se proporciona mediante controladores de buzón de correo. Se utiliza una lógica interna para adivinar el tipo de buzón de correo y luego la ejecución se pasa al controlador apropiado". - ^ abc Koka & Lipasti 2004, p. 2: "El servidor IMAP de la Universidad de Washington es una implementación de referencia de código abierto de IMAP escrita por Mark Crispin, el inventor de IMAP. Es popular por su facilidad de administración, flexibilidad y compatibilidad con los formatos de buzón existentes".
- ^ ab Blum 2001, p. 468: "El paquete POP3 e IMAP más común utilizado en la plataforma Unix fue desarrollado en la Universidad de Washington. Aunque el paquete de software se llama IMAP, incluye un servidor POP3 así como un servidor IMAP4rev1. ... Muchas distribuciones de Linux ya vienen con un paquete binario UW IMAP. Puede optar por instalar UW IMAP desde la distribución que vino con su sistema Unix, o puede descargar el archivo de código fuente actual y compilarlo usted mismo".
- ^ abc Varshavchik 2014: "UW-IMAP y Pine, las llamadas "implementaciones de referencia" de IMAP, utilizan una extensión IMAP privada y no documentada (enlace original)".
- ^ Bauer 2003: "Los tres servidores IMAP de código abierto más populares son University of Washington IMAP (UW IMAP), Cyrus IMAP de Carnegie Mellon University y Courier IMAP de Inter7 Internet Technologies".
- ^ Christenson 2003, p. 5: "Los tres servidores IMAP de código abierto más comunes son Cyrus [CYR], UW-IMAP [UWI] y los paquetes Courier IMAP [COU]".
- ^ Christenson 2003, p. 108: "Existen tres soluciones de servidor IMAP de código abierto populares: las soluciones IMAP de la Universidad de Washington (UW), Cyrus y Courier. Cada una tiene su propio nicho y características que la convierten en la mejor opción en determinadas circunstancias".
- ^ ab Bautts, Dawson & Purdy 2005, p. 259: "[La] facilidad de configuración e instalación de UW IMAP a menudo lo hace más atractivo [que otros servidores IMAP]. En este capítulo, nos centraremos principalmente en los dos servidores IMAP más comunes: UW IMAP, debido a su popularidad y facilidad de instalación, y Cyrus IMAP, debido a sus funciones de seguridad adicionales".
- ^ Golubitsky 2005, p. 10: "[Hay] tres servidores IMAP de código abierto disponibles gratuitamente que comparten la mayor parte del mercado: UW-IMAP, Cyrus y Courier-IMAP".
- ^ "Estatus alpino". Archivado desde el original el 28 de julio de 2014. Consultado el 22 de noviembre de 2016 .
- ^ Perry, Nick (21 de mayo de 2008). "La Universidad de Wisconsin despide a trabajadores de tecnología". The Seattle Times . Consultado el 22 de noviembre de 2016 .
- ^ "Re: [notas de la versión] Paquetes obsoletos, número de versión de Squeeze". lists.debian.org .
- ^ "Re: ¿uw-imapd descontinuado por Squeeze?". lists.debian.org .
- ^ "Mark Reed Crispin". Cookfamilyfuneralhome.com . Consultado el 4 de noviembre de 2018 .
- ^ "jonabbey/panda-imap". GitHub . 9 de mayo de 2022.
- ^ Smith 2003, pág. 527: "Dado que está fácilmente disponible, se entrega con todas las distribuciones principales de Linux y admite tanto POP como IMAP, esta sección [del libro] describe la instalación y configuración de UW IMAP".
- ^ ab Golubitsky 2005, pp. 13, 20: "El principal beneficio de UW-IMAP es que es el más pequeño y simple de los tres servidores, tanto en términos de tamaño de código como de las principales funciones que ofrece, y en que proporciona un conjunto más pequeño de métodos API IMAP que los otros servidores. (El pequeño conjunto de API puede deberse en parte al hecho de que el autor de UW escribió el RFC IMAP, que define el conjunto mínimo permitido de funciones API).
Sin embargo, los inconvenientes son muchos y parecen deberse a la filosofía de diseño del paquete. El código no es modular en absoluto... y dado que la mayor parte de la funcionalidad la proporciona una biblioteca c-client que también es el backend del cliente de correo Pine, es posible que se pueda compilar en el servidor UW la funcionalidad que realmente solo es necesaria o deseable para la operación del cliente...
A pesar del historial de desbordamientos de búfer de UW-IMAP, las instancias de funciones de cadena que no realizan comprobación de longitud (como sprintf
) aún abundan dentro del código...
[Según] la métrica de atacabilidad utilizada aquí, Courier es el menos vulnerable de los servidores, mientras que UW y Cyrus tienen puntuaciones similares... A pesar del gran tamaño de la base de código de Cyrus, su atacabilidad es similar a la de UW-IMAP, lo que indica que Cyrus tiene una buena separación de privilegios mientras que UW-IMAP no la tiene". - ^ Glennon 2000, p. 385: "La gestión de un servidor de estilo UW está más estrechamente vinculada al sistema operativo en el que se ejecuta. En otras palabras, si ejecuta el servidor UW-IMAP en un sistema UNIX, prepárese para administrar cuentas UNIX, así como aspectos del servicio IMAP... Si, por otro lado, elige Cyrus IMAP como su solución, es posible que nunca [necesite] crear o administrar ninguna cuenta de usuario UNIX. Sin embargo, su conocimiento de la implementación de IMAP y las utilidades para mantenerla deberá ser más amplio".
- ^ Bauer 2003: "[En comparación con Cyrus IMAP y Courier IMAP,] UW IMAP es el menos flexible, ya que solo admite la entrega de archivos de correo a cuentas de usuario locales; la bandeja de entrada de cada usuario local se almacena como un único archivo plano.
/var/mail/myusername
Esto tiene dos desventajas: cada usuario de correo también debe ser un usuario del sistema y solo un proceso puede escribir en la bandeja de entrada de un usuario determinado en un momento dado, lo que puede dar lugar a complicaciones de bloqueo de archivos". - ^ Varshavchik 2014: "En mayo de 1992, Dan Bernstein sugirió... usar el RFC 931 para derrotar ciertas clases de encabezados de correo falsificados. Mark Crispin se opuso por varios motivos técnicos... Bernstein finalmente ganó este argumento, a pesar de que otros problemas técnicos con el documento RFC 931 trabajaban a favor de Crispin (y apoyaban su posición). [Finalmente] el RFC 931 fue revisado y actualizado para convertirse en el RFC 1413 [con crédito otorgado a Bernstein, no a Crispin].
Bernstein continuó escribiendo el servidor Qmail. Qmail introdujo un nuevo método de archivo para almacenar correo electrónico, maildirs, [que] solucionó varias deficiencias de larga data del tradicional... formato de correo mbox (el formato de correo predeterminado utilizado por el servidor UW-IMAP)...
Entre 1995 y 1999, Qmail ganó popularidad hasta convertirse en el segundo servidor de correo más popular en Internet. Con la creciente popularidad de Qmail, la gente comenzó a preguntarle a Crispin sobre agregar soporte para Los directorios de correo de Qmail al servidor UW-IMAP. Crispin, todavía furioso por haber perdido la batalla por el RFC 931, aprovechó esta oportunidad al máximo. Parecía disfrutar rechazando cada una de esas solicitudes..." - ^ "¿Qué es la "expurgación instantánea" y cuándo debo usarla?". Grupo de Comunicaciones Sin Censura. Archivado desde el original el 4 de noviembre de 2018. Consultado el 4 de noviembre de 2018.
La expurgación instantánea es una configuración configurable por el sitio que hace que el servicio IMAP de Citadel se comporte de manera sensata al eliminar mensajes, a diferencia del comportamiento definido por RFC 3501.
El protocolo IMAP no tiene una forma directa de eliminar mensajes. En cambio, el cliente debe establecer una bandera "Eliminado" en cualquier mensaje que se vaya a eliminar y luego realizar una operación de "Expurgación" posteriormente para eliminar realmente los mensajes del buzón. Se diseñó de esta manera porque la implementación de referencia (UW IMAP) almacena buzones completos en archivos planos y eliminar un solo mensaje requiere reescribir el archivo completo. En lugar de corregir las limitaciones de este almacén de mensajes, Mark Crispin decidió implementar una solución alternativa y luego definir esa solución alternativa como parte del estándar. Al "borrar" un buzón de correo en un momento posterior, el archivo se reescribe solo una vez.
Obviamente, esta función es obtusa e innecesariamente complicada para cualquier otro sistema de correo, en particular uno como Citadel que almacena los mensajes en una base de datos.
- ^ McNab 2007, págs. 304-305: "[Enumeramos] vulnerabilidades de UW IMAP y Courier IMAP explotables de forma remota... Los siguientes scripts de explotación públicos están disponibles para varias de estas vulnerabilidades..."
- ^ Blum 2001, p. 458: "El programa IMAP de la Universidad de Washington admite tanto POP3 como IMAP".
- ^ "Glue Logic LLC - Parches PINE". www.gluelogic.com .
- ^ "Parche Maildir para Alpine". alpine.x10host.com . Archivado desde el original el 2018-06-19 . Consultado el 2018-06-19 .
Bibliografía
- Bauer, Mick (2003). "Paranoid penguin: correo seguro con LDAP e IMAP, Parte I". Linux Journal . 2003 (115, noviembre de 2003): 12 – vía ACM .
- Bautts, Tony; Dawson, Terry; Purdy, Gregor N. (2005). Guía del administrador de red Linux. O'Reilly Media . ISBN 9780596005481.
- Blum, Richard (2001). Postfix. SAMS . ISBN 9780672321146.
- Christenson, Nick (2003). Ajuste del rendimiento de Sendmail. Addison-Wesley Professional. ISBN 9780321115706.
- Elprin, Nick; Parno, Bryan (2003). Un análisis de servidores de correo basados en bases de datos. 17.ª Conferencia de administración de sistemas de grandes instalaciones (LISA '03). USENIX .
- Glennon, Katharine, ed. (2000). Manual de protección contra virus de correo electrónico: proteja su correo electrónico de caballos de Troya, virus y ataques de código móvil. Elsevier . ISBN 9780080477534.
- Golubitsky, Chaos (2005). Hacia una comparación automatizada de vulnerabilidades de servidores IMAP de código abierto (PDF) . 19.ª Conferencia de administración de sistemas de grandes instalaciones (LISA '05). USENIX .
- Koka, Pranay; Lipasti, Mikko H. (2004). Caracterización de un servidor IMAP en un multiprocesador de memoria compartida. 7º Taller sobre CAECW.
- McNab, Chris (2007). Evaluación de la seguridad de la red: conozca su red. O'Reilly Media . ISBN 9780596519339.
- Mullet, Dianna; Mullet, Kevin (2000). Gestión de IMAP. O'Reilly Media . ISBN 9780596000127.
- Sill, Dave (2003). Manual de Qmail. Apress . ISBN 9781430211341.
- Smith, Roderick W. (2003). Herramientas potentes para Linux. Wiley. ISBN 9780782142266.
- Smith, Roderick W. (2011). Guía de estudio para la certificación LPIC-2 Linux Professional Institute: exámenes 201 y 202. John Wiley & Sons . ISBN 9781118100448.
- Soyinka, Wale (2008). Administración de Linux: guía para principiantes, quinta edición. McGraw Hill Professional. ISBN 9780071546256.
- Varshavchik, Sam (2014). "FUD". Servidor de correo Courier .
- Ziobrzynski, Peter (2006). "El correo electrónico oculto al rescate". Linux Journal . 2006 (143, marzo de 2003) – vía ACM .