Les internautes sont aujourd'hui plus nombreux que jamais, et depuis plus d'endroits.
Nous sommes connectés à nos ordinateurs portables, téléphones et tablettes, et assez vite à des appareils et accessoires personnels. Nous accédons à Internet à partir de réseaux non fiables et parfois même hostiles. La plupart de nos vies étant en ligne, il est impératif de prendre des mesures pour protéger nos données et celles de nos utilisateurs.
Avant tout, les développeurs doivent comprendre l'utilité et le caractère pratique de la technologie SSL.
Qu'est-ce que SSL ? Il s'agit d'un protocole cryptographique, conçu pour assurer la sécurité des communications sur Internet. Elle garantit la confidentialité, grâce au chiffrement et à l'intégrité, pour empêcher l'espionnage ou la falsification de votre connexion Internet. La technologie SSL a ses défauts, mais c'est le principal moyen (et le seul moyen) d'assurer la sécurité des communications de données sur Internet.
Selon SSL Pulse, nous avions adopté la technologie SSL il y a un peu moins de 15 %, maintenant plus de 50 %.
Deux acronymes:
TLS:pour la plupart des intents et des fins, le protocole SSL est identique à ce protocole. Plus précisément, SSL 3.1 a été renommé TLS et TLS est le nom standard de l'IETF. Mais ils sont interchangeables !
HTTPS:il s'agit du protocole HTTP sur SSL, qui correspond à la combinaison des fonctionnalités de sécurité SSL et HTTP standard. Tout d'abord, le handshake client-serveur, qui utilise la cryptographie à clé publique/privée pour créer une clé partagée, qui est utilisée par la deuxième partie du protocole SSL pour chiffrer la communication.
La mise en réseau sur Internet peut sembler sûre, immédiate et rapide. C'est comme si nous parlions directement au site Web. Mais en réalité, il ne s'agit pas d'un lien direct. Nos communications passent par un routeur Wi-Fi, un FAI et potentiellement d'autres proxys intermédiaires entre votre appareil et le site Web. Sans HTTPS, toutes nos communications se font en texte brut.
Le problème est que les utilisateurs saisissent rarement une URL complète spécifiant HTTPS ou cliquent sur un lien via HTTP. Pire encore, il est possible de monter une attaque (« wo)man-in-the-middle » et de remplacer HTTPS par HTTP. C'est précisément ce que propose un outil appelé SSLstrip introduit en 2009. Firesheep, en 2010, écoutait en clair les cookies qui étaient envoyés en clair sur des réseaux Wi-Fi ouverts. Cela signifiait que vous pouviez écouter les messages sur le chat ou vous connecter au compte Facebook de quelqu'un.
Mais SSL est (relativement) bon marché, rapide et facile à déployer (consultez ssllabs.com et l'ouvrage "High Performance Browser Networking" d'Ilya Grigorik). Pour une utilisation non commerciale, vous pouvez même obtenir des certificats sans frais depuis startssl.com ! L'épinglage de clé publique permet aux opérateurs de sites Web de limiter les autorités de certification autorisées à émettre des certificats pour leurs sites.
"En janvier de cette année (2010), Gmail est passé à HTTPS par défaut pour tout. Pour ce faire, nous n'avons dû déployer aucune machine supplémentaire, ni aucun matériel spécial. Sur nos machines frontend de production, le protocole SSL représente moins de 1% de la charge du processeur, moins de 10 Ko de mémoire par connexion et moins de 2% de la surcharge réseau...
Si vous arrêtez de lire maintenant, vous n'avez qu'une seule chose à retenir: SSL n'est plus gourmand en ressources de calcul."
– Overclocking SSL, Adam Langley (Google)
Pour finir, voici quelques-uns des bugs les plus courants:
- Contenu mixte:sites qui utilisent les protocoles HTTP ainsi que HTTPS. L'utilisateur sera contrarié, car il devra cliquer sur un bouton d'autorisation pour charger le contenu. En réalité, Chrome et Firefox éliminent le contenu mixte des cadres iFrame. Assurez-vous que toutes les ressources d'une page HTTPS sont chargées via HTTPS, en utilisant des URL relatives ou à schéma relatif (par exemple,
<style src="//foo.com/style.css">
). - Cookies non sécurisés:envoyés en clair via une connexion HTTP. Pour éviter cela, définissez l'attribut "secure" au niveau des en-têtes de cookie. Vous pouvez également utiliser un nouvel en-tête "Strict Transport Security" pour exiger le service SSL Transport Security (HSTS).
Prises de possession
- Si vous vous souciez de la confidentialité et de l'intégrité des données de vos utilisateurs, vous devez utiliser SSL. Plus rapide, plus simple et moins cher que jamais.
- Évitez les problèmes courants liés à l'implémentation, tels que les bugs dans les contenus mixtes ou le fait de ne pas définir les bits d'en-tête HTTP appropriés.
- Utilisez des URL relatives ou des URL relatives au schéma.
- Découvrez quelques-unes des nouveautés, comme HSTS et l'épinglage de certificats
Diapositives:Vous avez besoin de SSL ?