Les clients telnet ou netcat peuvent-ils communiquer sur SSL?

Je voudrais tester les connexions client avec IMAP sur SSL, HTTPS et d'autres protocoles Internet sécurisés basés sur le texte sur SSL / TLS, de la même manière que j'utiliserais telnet ou netcat s'ils n'étaient pas équipés d'un protocole sécurisé. Existe-t-il un moyen d'obtenir telnet ou netcat pour passer par SSL / TLS, par exemple avec un pipeline ou un autre programme?

Il n'y a pas de client Telnet / Netcat: ce sont deux programmes distincts, et il existe au moins 10 clients Telnet différents et au moins 6 versions Netcat différentes (netcat original, GNU netcat, NetBSD netcat, ncat ncat, oublié le reste).

Les outils préférés proviennent des bibliothèques TLS elles-mêmes. Ils pourraient cependant être un peu détaillés.

  • GnuTLS dispose d'un outil client TLS sur Linux:

    gnutls-cli imap.gmail.com -p 993 

    Utilisez -s pour STARTTLS; Vous devrez entrer manuellement les commandes de protocole nécessaires et appuyer sur Ctrl D lorsque vous êtes prêt.

    Prend en charge IPv6, valide les certificats de serveur par défaut.

  • OpenSSL possède un outil client TLS:

     openssl s_client -connect imap.gmail.com:993 

    Ceci est disponible pour tous les systèmes d'exploitation. STARTTLS est pris en charge via les -starttls imap ou -starttls smtp , et le programme le négocie automatiquement. (Bien qu'il jette la réponse initiale du serveur après cela, mais c'est généralement bien.)

    La seule version ≥ 1.1 prend en charge IPv6.

    La seule version ≥ 1.0.2 (IIRC) valide par défaut le certificat du serveur; Les anciennes versions nécessitent une spécification manuelle -CApath.

(J'aimerais également avoir des outils pour tester NSS et SChannel, mais je n'ai pas trouvé de problème.)

Les programmes utilisent également les mêmes bibliothèques, mais peuvent avoir moins de boutons de configuration. Certains ignorent les vérifications par les pairs par défaut …

  • Socat :

     socat openssl:imap.gmail.com:993 stdio 

    Le mode readline peut être utilisé pour plus de commodité:

     socat ssl:imap.gmail.com:993 readline 

    STARTTLS n'est pas pris en charge.

  • Ncat de nmap prend en charge TLS (mais pas STARTTLS):

     ncat --ssl imap.gmail.com 993 
  • Certains clients Telnet, tels que le paquet telnet-ssl sur Debian, prennent également en charge TLS:

     telnet-ssl -z ssl imap.gmail.com 993 

    STARTTLS peut être activé à l'aide de starttls dans le menu d'échappement Ctrl ] .

Vous voudrez peut-être consulter openssl s_client , par exemple

 # openssl s_client -connect dummy.com:8443 

Ouais, il y a un programme appelé stunnel

Il a un fichier de configuration,

Vous dites à quel port écouter, quel port à transmettre.

Cela fonctionne pour le côté client, ou côté serveur, ou les deux.

De sorte qu'il peut transformer un serveur qui ne prend pas en charge ssl, de manière efficace.

Ou un client qui ne prend pas en charge ssl, effectivement en un qui le fait.

Ou faire un client et un serveur ont une connexion ssl.