Articles Taggés ‘ssl’

SSL via GNUTLS sur apache2

12 mars 2011

Plop à tous …

Aujourd’hui j’ai joué a « qui a la plus grosse » config ssl et c’est là que j’ai remarqué que le mod_ssl d’apache ne supportait que les protocoles SSLv3 et TLSv1.0 (le TLSv1.1 est en cours de dev) ce qui donnait un score pitoyable à mon blog sur ssllabs (qui permet d’avoir une idée du niveau de sécurité de l’implémentation ssl/tls d’un serveur web).


(Au passage certaine banques françaises en sont encore au niveau F, donc c’était déjà pas trop mal pour un blog ^^).

» En lire plus:SSL via GNUTLS sur apache2

Utiliser plusieurs certificats SSL sur un seul serveur apache

1 mai 2010

Plop à tous …

Le but de l’article du jour est d’utiliser plusieurs certificats SSL sur une même machine via le SNI (ce qui était impossible il y a quelques années de cela cf. wikipedia, le premier patch étant sorti en 2004, les premières implémentation sur les serveurs apache se sont fait sur la version 2.2.12 en Juillet 2009).
» En lire plus:Utiliser plusieurs certificats SSL sur un seul serveur apache

Des certificats SSL gratuit et valide pour vos sites web

13 avril 2009

Bijour à tous … [cet article est une pub ^^]

Long discours qui sert à rien : Pour ce long week-end, pas grand-chose de nouveau sur le site, si ce n’est la migration vers un serveur dédié (RPS d’OVH) du blog et du site web (l’accès devenait trop laborieux, que ce soit depuis webhost ou redby, pour l’un le serveur http était à la ramasse, et pour l’autre, le serveur de base de données était surchargé et maintenant, j’ai tous mes sites sur un seul et même serveur, ce qui est plus simple pour administrer la chose ;) ).

J’ai profité de la migration du serveur pour revoir un peu la sécurité du blog, et en particulier l’utilisation des certificats (l’auto-signé n’étant pas très sécurisé) , j’ai donc cherché (pas trop longtemps … merci google) un PKI gratuit qui fournit des certificats SSL pour les sites web (mais aussi pour valider son identité via du x509 et pas mal d’autres services intéressant sont gratuits, bien sûr pour des chiffrements plus élevé et des options plus importantes du genre les ssl en wildcard et … faut s’y attendre, c’est plus gratuit mais bon ;) ).

Donc voilà, si ça vous intéresse, le chiffrement proposé est plutôt moyen (de l’AES 256), mais il n’y a pas a confirmer d’exception de sécurité (Note du 14 : Le certificat n’est pas valide sur IE et chrome) … ce qui est sympa, mais il parait qu’il faut faire vérifier le domaine tous les mois par le PKI ce qui peut être lourd à la longue …

Niveau configuration, startssl explique très bien comment installer la chose par ici

Sinon, pour faire simple la mienne ressemble à ça :

  1. DocumentRoot /var/www/blog
  2. SSLEngine on
  3. SSLProtocol all -SSLv2
  4. SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
  5.  
  6. SSLCertificateFile /etc/apache2/cert/ssl.crt
  7. SSLCertificateKeyFile /etc/apache2/cert/ssl.key
  8. SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.ca.crt
  9. SSLCACertificateFile /etc/apache2/cert/ca.crt
  10. SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
  11. CustomLog /var/log/apache2/ssl_request.log \
  12. "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Ensuite, il faut forcer le chiffrement de certaine partie du site … via un sympatique htaccess qui tire cette tête pour du wordpress (j’ai pas forcé le chiffrement pour les commentaires …) :

  1.  
  2. RewriteCond %{HTTPS} off
  3. RewriteRule ^wp-admin(.*) https://%{SERVER_NAME}/wp-admin$1 [R,L]
  4. RewriteCond %{HTTPS} off
  5. RewriteRule ^wp-login.php(.*) https://%{SERVER_NAME}/wp-login.php$1 [R,L]

Voilà amusez-vous bien … et vive le chiffrement ;)

Certificats auto-signés et ettercap … du ssl en clair.

10 janvier 2009

Bijour à tous …

Bé voilà, actuellement en licence Pro CDED, nous sommes en train de voir les certificats auto-signés via openssl …(ça fait un bail que l’on sait que l’auto-signé c’est le mal mais bon … c’est gratuit, instantanée et ça permet d’avoir un niveau de chiffrement assez sympa qui permet de se protéger des petits rigolos qui ne savent pas utiliser ettercap … ça existe encore ???).

Dans cet article je montrerais la simplicité de la mise en place d’un tel certificat sur … ubuntu (quoique la doc d’ubuntu est plutôt bien fournit sur ce plan là), ainsi qu’une possibilité pour « déchiffrer le traffic ssl » via ettercap (qui n’est pas vraiment du déchiffrement, plutôt une attaque de type MITM automatisée).

Donc on monte notre « environnement sécurisé » :

  1. sudo apt-get install apache2 && sudo a2enmode ssl && cd /etc/apache2/sites-available

On génère notre superbe certificat : (Vous pouvez mettre tout et n’importe quoi à tous les champs SAUF au champ « Common Name », où il faudra mettre votre nom de domaine, dans mon cas www.portable.lan)

  1. sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key

On modifie le fichier default-ssl (nettoyage puis ajout des bonnes options de configuration pour utiliser le certificat et révision de sed ;-) )

  1. sudo cat default-ssl | sed '5,168 d' | sed "3a\\\tSSLEngine On\n\tSSLCertificateFile /etc/apache2/server.crt\n\tSSLCertificateKeyFile /etc/apache2/server.key" > ssl-conf && sudo a2ensite ssl-conf

Le sed ’5,168 …’ risque de ne pas marcher si vous le faites sur une distrib différentes d’ubuntu 8.10, car il supprime les lignes 5 à 168 de la config fournit par défaut par le paquet apache2 (contenant pas mal de truc assez moche, à supprimer quoi ;) )

Un zoli sudo /etc/init.d/apache2 restart permettra de prendre en compte tous ça, il suffit ensuite d’ouvrir le navigateur sur l’url https de votre serveur et l’on tombe sur cette superbe page :

cap1

Et ouai … comme je l’ai dit les certificats auto-signés c’est le mal, si l’on veut visiter ce superbe site il va falloir « confirmer une exception de sécurité » sur le site, ce qui n’est pas très sécurisant en sommes :s. Mais bon passons  … ce qui nous donne ceci :

cap2

A partir de maintenant, on peut commencer par analyser le traffic lors de la connexion à notre site ultra-pas-du-tout-protégé-par-du-ssl-qui-rox-pas-sa-race, et comme on peut l’imaginer … le traffic est chiffré (ce qui signifie que le couple login/mot-de-passe qui a été rentré par le visiteur et ben on pourra pas le choper) :

capture

Ce qui aurait été le cas si l’on c’était loggué à partir du site non-sécurisé, qui donne la capture suivante :

capture2

Dans cette capture l’on arrive à récupérer le mot de passe en clair …donc on se dit que c’est quand même classe avec le certificat on a évité une catastrophe nationale … mon super login/password ne s’est pas fait prendre … et là on se rappel le titre de mon article « du ssl en clair » … pour le moment ce n’est pas le cas.

C’est donc là qu’intervient ettercap … que j’ai déjà présenté ici et .

Pour l’installer :

  1. sudo apt-get install ettercap

Puis il faut modifier le fichier /etc/etter.conf (façon l33t h4x0r encore une fois … histoire de faire kikoo)

  1. sudo cat /etc/etter.conf | sed '/^.*redir_command_on = \ »ipt/ s/#//'|sed '/^.*redir_command_off = \ »ipt/ s/#//' > /etc/etter.conf

La ligne précédente dé-commente les deux lignes qui permettent de rediriger les flux  … il aurait peut-être été possible de mettre les deux sed en un … mais sudo cat /etc/etter.conf | sed ‘/^.*redir_command_o(n|ff) = \ »ipt/ s/#//’ > /etc/etter.conf ne semble pas fonctionner … dommage … j’aurais pu passer pour un boss de la ldc :s une autre fois peut-être ^^.

Ensuite, il faut permettre le forwarding : (quoique ça marche aussi sans)

  1. sudo sysctl net.ipv4.ip_forward=1

et lancer ettercap :

  1. ettercap -Tqi ath0 -M arp:remote /192.168.0.101/ /192.168.0.10/

qui aura pour effet de faire de l’arp poisonning pour les communications entre 192.168.0.101 (le client) et 192.168.0.10 (le serveur HTTPS) et le pirate en 192.168.0.100 (oui les ips ont changés depuis le début de l’article … ^^).

capture4

Le « -M:arp-remote » quand à lui permet l’attaque MITM qui va « renvoyer » un faux certificat (avec les mêmes informations que le certificats d’origine):

capture5

Et comme le pirate (192.168.0.100 qui est invisible dans cette trame) a généré le certificat, et que le traffic transite par son ordinateur, il peut ainsi récupérer le login et mot de passe chiffré :

capture3

Bien entendu … comme ce n’est pas le même certificat, il faut de nouveau « confirmer une exception de sécurité » (ce qui n’a pas été le cas pour moi … mais normalement ^^) et là avec son pauvre certif’ auto-signé ont se sent un peu nue, car le certificat générer est aussi auto-signé et contient toutes les caractéristiques fournient lors de la génération du premier certificat … donc le client ne peut pas savoir si c’est le bon certificat qu’il est en train d’autoriser (en vrai, il faudrait qu’il retienne la signature du certificat … mais IRL c’est assez rare de voir des parannos qui retiennent les signatures de leurs certificats).

Donc voilà … en espérant avoir découragé l’utilisation de certificat auto-signés (je viens de plomber le TP de mon prof :p).

A noter qu’avec ettercap, il est aussi possible de déchiffrer des certificats émis par Verisign et …, mais dans ce cas ettercap génère aussi un certificat auto-signé … révélant l’utilisation d’un MITM.

Mais pas mal de gens sont encore prêts à cliquer ok lors d’une « confirmations d’exception de sécurité » pour google, facebook ou … donc en sécurité, le problème restera toujours l’utilisateur :s