Openssl pour du telnet en mode sécurisé

Pourquoi openSSL ?

L’article suivant nous montrait l’intérêt que pouvait avoir le Telnet pour vérifier des services sur un serveur distant. Pour cela, il suffit d’indiquer l’hôte et le port distant à la commande telnet. Cependant dans le cas d’un service sécurisé avec SSL, la commande Telnet ne peut plus fonctionner. L’objectif de cet article est de montrer à travers l’exemple d’une connexion en IMAPS (IMAP en SSL) l’utilisation de la commande openSSL sous Linux en mode « client Telnet ».

La commande s’utilisera de la manière suivante:

openssl s_client -connect hote:port

Exemple en IMAPS

Prenons l’exemple du serveur IMAPS d’Alinto : secure.alinto.net avec lequel nous souhaiterions valider une connexion IMAP sur le port 993 (il s’agit du port standard de l’IMAPS) :

openssl s_client -connect secure.alinto.net:993
CONNECTED(00000003)
depth=0 serialNumber = Hkr4ShehK4QSlBlYu9jFlttlWPVlAiys, C = FR, O = *.alinto.net, OU = GT75940822, OU = See www.rapidssl.com/resources/cps (c)10, OU = Domain Control Validated - RapidSSL(R), CN = *.alinto.net
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 serialNumber = Hkr4ShehK4QSlBlYu9jFlttlWPVlAiys, C = FR, O = *.alinto.net, OU = GT75940822, OU = See www.rapidssl.com/resources/cps (c)10, OU = Domain Control Validated - RapidSSL(R), CN = *.alinto.net
verify error:num=27:certificate not trusted
verify return:1
depth=0 serialNumber = Hkr4ShehK4QSlBlYu9jFlttlWPVlAiys, C = FR, O = *.alinto.net, OU = GT75940822, OU = See www.rapidssl.com/resources/cps (c)10, OU = Domain Control Validated - RapidSSL(R), CN = *.alinto.net
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/serialNumber=Hkr4ShehK4QSlBlYu9jFlttlWPVlAiys/C=FR/O=*.alinto.net/OU=GT75940822/OU=See www.rapidssl.com/resources/cps (c)10/OU=Domain Control Validated - RapidSSL(R)/CN=*.alinto.net
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIID/jCCA2egAwIBAgIDFLVsMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwOTI5MTA1ODAyWhcNMTIxMTMwMTEyNzMy
WjCB3zEpMCcGA1UEBRMgSGtyNFNoZWhLNFFTbEJsWXU5akZsdHRsV1BWbEFpeXMx
CzAJBgNVBAYTAkZSMRUwEwYDVQQKDAwqLmFsaW50by5uZXQxEzARBgNVBAsTCkdU
NzU5NDA4MjIxMTAvBgNVBAsTKFNlZSB3d3cucmFwaWRzc2wuY29tL3Jlc291cmNl
cy9jcHMgKGMpMTAxLzAtBgNVBAsTJkRvbWFpbiBDb250cm9sIFZhbGlkYXRlZCAt
IFJhcGlkU1NMKFIpMRUwEwYDVQQDDAwqLmFsaW50by5uZXQwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCSME3C+1Qk3mgpRlKminqDRziajC3zYx2nQzNr
vnxumWzynRS6eLlWQ7MSnGx9uZPyKQD+cIlblmCyiReoLFZWK911RU1ai9vZB9w5
9xJALUM7IQR1+eYNfIEZASmbcLBEE1CnIBE0LEhbmyVMtMWk9vMb5t1f6cuWbCOS
4TLBwGaVofwMwIrG+5m17pfjACzC5MT+YleZzn6YY6qjUkB5Yj+j9d+p1L2LLioT
3SxCJJTGAMrFBhmWRNMUFxD9271fAhtwEAH1BJ/ezCpERQNuJr2T82JGtr+Ik0qo
oaLQmVvCu/YJR9adtMLviFgFrknmgF9pySmetOc/m3Z0+p6DAgMBAAGjgdMwgdAw
HwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9QwDgYDVR0PAQH/BAQDAgTw
MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAjBgNVHREEHDAaggwqLmFs
aW50by5uZXSCCmFsaW50by5uZXQwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2Ny
bC5nZW90cnVzdC5jb20vY3Jscy9zZWN1cmVjYS5jcmwwHQYDVR0OBBYEFChMrpnx
v9N1PD8RMZDfdRajotD4MA0GCSqGSIb3DQEBBQUAA4GBAKC/EvbzG+Hs0cAB+Ljm
4dXlOhQE5WBEjb5dty7+dmY1yI5wIvlZPYcAhugmsA9Ot4WtnxFMRvBd1T3cAA1Z
qxYSCZ1v6VU/f46BEtfLSqi1oHVftsj2XA0JtzlsxOA5aPSiwDBi3Xs572Dv7ZQl
xU3feFHbVl0y3ni/rQe26lXC
-----END CERTIFICATE-----
subject=/serialNumber=Hkr4ShehK4QSlBlYu9jFlttlWPVlAiys/C=FR/O=*.alinto.net/OU=GT75940822/OU=See www.rapidssl.com/resources/cps (c)10/OU=Domain Control Validated - RapidSSL(R)/CN=*.alinto.net
issuer=/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
No client certificate CA names sent
---
SSL handshake has read 1204 bytes and written 479 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : SSLv3
    Cipher    : AES256-SHA
    Session-ID: 58107CB350857475C7A884FB069C910B1A5A265BE0B5852A4B748AD1702D7118
    Session-ID-ctx: 
    Master-Key: 9A8BD3D995928B29AAAFC31011BBF112D9D5B87BD67B0C7A40BC48387B747953B895B37E3E46BBA885D960F3B4589FFE
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1350295026
    Timeout   : 7200 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=PLAIN AUTH=PLAIN] IMAP server ready.

La dernière ligne nous indique que nous sommes connectés sur le serveur et prêts à envoyer des commandes IMAP. Il s’agit d’ailleurs de la même ligne que nous aurions eu en Telnet avec de l’IMAP non sécurisé:

telnet imap.alinto.net 143
Trying 83.145.109.160...
Connected to imapa.alinto.net.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=PLAIN] IMAP server ready.

Comprendre la chaîne de certification

Vous pourrez remarquer que l’outil openSSL renvoie également toute la chaîne de certification:

Certificate chain
 0 s:/serialNumber=Hkr4ShehK4QSlBlYu9jFlttlWPVlAiys/C=FR/O=*.alinto.net/OU=GT75940822/OU=See www.rapidssl.com/resources/cps (c)10/OU=Domain Control Validated - RapidSSL(R)/CN=*.alinto.net
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority

La ligne commençant par 0 présente le certificat du serveur ainsi que l’autorité de certification dont il est issu.
Les lignes 1, 2… si elles existent peuvent reprendre le certificat de l’autorité précédente et y ajouter l’autorité de certification de niveau supérieur etc.
Ici la chaîne ne comporte qu’un certificat, ce dernier étant l’autorité de certification la plus haute qui se trouve dans les magasins de certificats des différents client IMAP.

Conclusion

Grâce à openSSL nous avons vu que nous pouvions nous connecter, et dialoguer avec un serveur au dessus d’un protocole sécurisé, SSL. L’IMAP est un des exemple d’application, mais le SMTPS, le HTTPS, le POPS, le LDAPS…

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *