¿Por qué usamos el número de puerto 22 para el SSH de shell seguro?

EDITAR:

El inventor de SSH Tatu Ylonen ahora está en Quora y señala en un comentario a esta respuesta que la historia autorizada está documentada en https://www.ssh.com/ssh/port/

RESPUESTA ORIGINAL:

Todos los números de puerto TCP y UDP son administrados por la Autoridad de Números Asignados de Internet.

Los números bajos han existido por mucho tiempo. El último RFC para los números asignados de 1994 (RFC1700) muestra que el puerto 22 estaba “sin asignar”.

Si profundiza en el número de RFC asignado histórico, puede ver que RFC 739 asigna solo números impares solo a los puertos, por lo que todos los números pares no fueron asignados, aunque no sé por qué se omitieron históricamente los puertos pares.

Antes de la invención de SSH, Telnet (RFC 854 – Especificación de protocolo Telnet) había sido la principal forma de hacer una conexión de terminal virtual utilizando una conexión TCP insegura. Telnet era originalmente el puerto 1, porque era muy común, pero la reescritura de telnet especificada por RFC 854 (“Nuevo Telnet”) eligió el puerto 23 , el siguiente puerto impar disponible en la lista en ese momento.

El desarrollador de SSH probablemente eligió el “puerto 22” no utilizado debido a su ubicación próxima al puerto 23 de Telnet, ya que SSH se ha propuesto como un reemplazo para Telnet. La arquitectura de protocolo RFC para Secure Shell (SSH) no llama al puerto 22 específicamente, pero parece que la mayoría de las implementaciones han terminado allí.

Por cierto, el desarrollo de la SSH fue una telenovela larga y prolongada por muchas razones, relacionadas con la ley de cifrado, los problemas de propiedad intelectual y las personalidades fuertes. Alguien debería escribir un libro.

Idealmente, este sería un A2A para Tatu Ylönen o Chris Lonvick, ninguno de los cuales está en Quora.

(EDITAR: en una conversación con Chris Lonvick, señala que SSH originalmente pretendía ser el reemplazo seguro de rsh, y otras cosas como rcp y rlogin. Por supuesto, también era un reemplazo natural para telnet. Reitera que Tatu Ylönen será la fuente autorizada para una respuesta aquí.)

En ssh.com, su historia histórica se explica como La historia de obtener el puerto 22 de SSH;

Escribí la versión inicial de SSH en la primavera de 1995. Era una época en que telnet y FTP se usaban ampliamente.

De todos modos, diseñé SSH para reemplazar tanto telnet (puerto 23) como ftp (puerto 21). El puerto 22 estaba libre. Estaba convenientemente entre los puertos para telnet y ftp . Pensé que tener ese número de puerto podría ser una de esas pequeñas cosas que darían un cierto aura de credibilidad. Pero, ¿cómo podría obtener ese número de puerto? Nunca había asignado uno, pero conocía a alguien que había asignado un puerto.

El proceso básico para la asignación de puertos era bastante simple en ese momento. Internet era más pequeño y estábamos en las primeras etapas del auge de Internet. Los números de puerto fueron asignados por IANA (Autoridad de Números Asignados de Internet). En ese momento, eso significaba un estimado pionero de Internet llamado Jon Postel y Joyce K. Reynolds. Entre otras cosas, Jon había sido editor de estándares de protocolo menores como IP (RFC 791), ICMP (RFC 792) y TCP (RFC 793). Algunos de ustedes pueden haber oído hablar de ellos.

¡Para mí, Jon se sintió completamente aterrador al haber creado todas las RFC principales de Internet!

De todos modos, justo antes de anunciar ssh-1.0 en julio de 1995, envié este correo electrónico a IANA:

De ylo lun 10 de julio 11:45:48 +0300 1995
De: Tatu Ylonen < [correo electrónico protegido] >
Para: Autoridad de Números Asignados de Internet < [correo electrónico protegido] >
Asunto: solicitud de número de puerto
Organización: Universidad Tecnológica de Helsinki, Finlandia.

Estimado señor,

He escrito un programa para iniciar sesión de forma segura de una máquina a otra
sobre una red insegura. Proporciona importantes mejoras en seguridad.
y funcionalidad sobre los protocolos existentes de telnet y rlogin y
implementaciones En particular, evita IP, DNS y enrutamiento
suplantación de identidad Mi plan es distribuir el software libremente en el
Internet y ponerlo en uso lo más amplio posible.

Me gustaría obtener un número de puerto privilegiado registrado para
software. El número debe estar preferiblemente en el rango 1-255 para que
se puede usar en el campo WKS en los servidores de nombres.

Adjuntaré el borrador de RFC para el protocolo a continuación. El software tiene
ha estado en uso local durante varios meses y está listo para su publicación
excepto por el número de puerto. Si la asignación del número de puerto puede ser
arreglado a tiempo, me gustaría publicar el software ya esta semana.
Actualmente estoy usando el número de puerto 22 en la prueba beta. Podría ser
genial si este número pudiera usarse (actualmente se muestra como
Sin asignar en las listas).

El nombre del servicio para el software es “ssh” (para Secure Shell).

Tuyo sinceramente,

Tatu Ylonen < [correo electrónico protegido] >

… Seguido de la especificación de protocolo para ssh-1.0

Al día siguiente, recibí un correo electrónico de Joyce esperando en mi buzón:

Fecha: lunes 10 de julio de 1995 15:35:33 -0700
De: [correo electrónico protegido]
Para: [correo electrónico protegido]
Asunto: Re: solicitud de número de puerto
Cc: [correo electrónico protegido]

Tatu

Hemos asignado el número de puerto 22 a ssh, con usted como punto de
contacto.

Joyce

Ahí estábamos! ¡El puerto SSH era 22!

¡¡Bastante impresionante!!

Esta pregunta es un poco confusa.

Si quiere decir ¿Por qué usamos el puerto 22 (o un puerto específico) para SSH? la respuesta es esta: cada servicio tiene un puerto aceptado donde se espera que se encuentre en ejecución. SSH es el puerto 22, SMTP es el puerto 25 y más. Esto se hace para que un cliente sepa dónde buscar el servidor cuando intenta contactarlo.

Si quiere decir ¿Por qué usamos el puerto 22 para SSH? La respuesta es mucho menos clara. Los puertos son elegidos por una autoridad particular, y no estoy seguro del proceso. En cualquier caso, sospecho que esta no es la pregunta que quería responder.