Je construis moi-même un nouveau site Web, pour des raisons de confidentialité et de sécurité. J'envisage d'essayer de le créer en https uniquement.
Les requêtes multimédia seront conviviales pour les mobiles, mais je m'inquiète - en particulier pour les utilisateurs de mobiles - de l'augmentation de la bande passante.
Combien cela augmentera-t-il ma bande passante ou mes temps de chargement? Pour les pages sur lesquelles je ne transfère pas d'informations sensibles, dois-je laisser des liens externes (vers une bibliothèque jQuery ou une police Web, par exemple) au format http?
En termes simples, j’ai lu des articles affirmant que l’ensemble du Web serait plus sûr si tout était en SSL, mais mes connaissances actuelles en matière de mise en œuvre se limitent aux passerelles de paiement et aux pages de connexion, etc. Je m'excuse pour la nature ouverte de la question, mais toute réponse, même simple, à des questions spécifiques est la bienvenue.
(Vous pouvez être intéressé par cette question connexe sur SO: . Rendre le site complet en HTTPS/SSL? Quels problèmes de performances et de meilleures pratiques s’appliquent encore en 2012? )
Combien cela augmentera-t-il ma bande passante ou mes temps de chargement?
Une fois la négociation terminée, le chiffrement est effectué à l'aide de clés symétriques. Il existe un peu de surcharge pour les enregistrements SSL/TLS, mais elle est en fait assez petite (selon ingénieurs de Google , il y a environ 2% de la surcharge de réseau).
Ce qui coûte cher, c'est la poignée de main (à la fois en termes de processeur et de réseau). Sans reprise de session, vous devrez obtenir le certificat de serveur (environ 1 Ko pour un certificat avec une clé RSA 2048 bits, cela dépend des attributs). Les allers-retours peuvent également augmenter la latence (et pourraient poser un problème plus grave sur les appareils mobiles). Je présume que certains appareils mobiles prennent en charge au moins la reprise de session.
Le trafic le plus important que j'ai constaté entre deux contacts est dû à une longue liste d'autorités de certification figurant dans le message TLS de demande de certificat, lors de l'utilisation de l'authentification par certificat client. Cela a été configuré avec un magasin de confiance par défaut (sur un serveur Java). Un bon paramètre de serveur peut éviter ce problème (lorsque vous utilisez l’authentification client-cert, vous pouvez généralement vous limiter à quelques autorités de certification que vous êtes prêt à accepter. Du point de vue du serveur, vous n’avez pas besoin de la liste par défaut. dans ce cas avait plus de 100 noms). Si vous n'utilisez même pas l'authentification par certificat client, assurez-vous de ne pas l'activer (même éventuellement) pour ne pas avoir ce problème.
Pour les pages sur lesquelles je ne transfère pas d'informations sensibles, dois-je laisser des liens externes (vers une bibliothèque jQuery ou une police Web, par exemple) au format http?
Oui, ne mélangez jamais le contenu. Cela va à l'encontre de l'objectif de HTTPS. Le problème avec le contenu mixte est que vous ne savez plus à quelle partie de la page vous pouvez faire confiance. C'est un problème d'interface utilisateur (et les navigateurs mobiles sont déjà assez pauvres pour clarifier les conditions de sécurité auxquelles vous êtes soumis).
Vous pouvez utiliser des CDN prenant en charge HTTPS si vous avez besoin ( API de bibliothèques Google fournissez des liens https://
, par exemple, y compris pour jQuery). Les navigateurs modernes devraient mettre en cache le contenu HTTPS par défaut, bien que certains ne le fassent pas, auquel cas vous pouvez utiliser l'en-tête Cache-Control: public
. Vous devez également empêcher la mise en cache des pages sensibles.
La bande passante ne devrait pas augmenter autant. Il y a un peu de négociation supplémentaire quand une connexion https est configurée, et parce que le chiffrement compense les choses pour une certaine taille de bloc, les pages peuvent devenir légèrement plus grandes.
Les temps de chargement peuvent augmenter en raison de la surcharge liée au chiffrement de la page par vos soins et au déchiffrement de la page par l'utilisateur. Je ne peux pas dire de combien car je ne connais pas votre matériel et nous ne savons pas à quel point les appareils mobiles de l'utilisateur sont puissants.
Si vous avez une page sécurisée avec un contenu non sécurisé, le navigateur de l'utilisateur peut afficher un message d'erreur inquiétant.
Je voudrais seulement chiffrer les pages contenant des informations sensibles.