web-dev-qa-db-fra.com

Qu'advient-il du navigateur de l'utilisateur si un certificat SSL est remplacé en cours de session?

À la lumière des navigateurs modernes suppression progressive certificats de sécurité signés à l'aide de l'algorithme de hachage SHA1, nous sommes en train de remplacer tous nos certificats SHA1 par SHA2. En règle générale, nous pourrions simplement remplacer les certificats par ces applications Web à usage principalement interne le soir ou le week-end, lorsque le trafic était faible, voire inexistant.

Que se passerait-il si, sans le savoir, j'étais au milieu d'une session chiffrée et que le certificat du domaine était remplacé?

Par sécurité, nous avons informé nos clients qu’ils pouvaient supposer que les utilisateurs en cours de session risquaient de voir leur session interrompue et d’éventuelles pertes de données non encore stockées dans la base de données. Si je me trouvais en cours de session pendant un remplacement de certificat, puis-je supposer que lors du chargement de la page suivante, mon navigateur verrait un certificat signé différent de celui dans lequel ma session avait été établie, et provoquait la session " flipper". Je m'attendrais à ce que tous les navigateurs traitent la situation de la même manière, mais veuillez m'éclairer si je me trompe.

J'ai passé pas mal de temps à chercher plus de détails sur la manière dont les navigateurs gèrent ce scénario, mais je n'ai pas eu beaucoup de chance de trouver des informations générales ou techniques. Je suis vraiment curieux et a décidé de poster cette question dans l’espoir d’obtenir une réponse qui réponde au Q de manière concise, en faisant référence à des sources crédibles à valider.

8
Dallas

... mon navigateur verrait un certificat signé différent de celui avec lequel ma session avait été établie, ce qui ferait paniquer la session.

Du point de vue du webmaster, et sans entrer dans les détails sur " le fonctionnement de SSL " (qui serait mieux discuté à Sécurité de l'information =) ...

La clé de session ne correspond plus, de sorte que le navigateur du serveur ou celui du client abandonne la connexion. Le navigateur client ferait alors une autre demande pour toutes les ressources non reçues de la page suivante, ce qui ouvrirait une nouvelle connexion en rétablissant l'établissement de la liaison SSL, le certificat, les échanges de clés et la clé de session (comme expliqué brièvement ci-dessous). ici ).

Etant donné que le nouveau certificat SSL serait émis sur le même domaine, les utilisateurs ne remarqueraient probablement rien car seul le certificat serait modifié (le verrou vert serait toujours affiché), ce que les utilisateurs ne consultent généralement pas, en particulier entre les pages de le même site.


Ce que vous ne pensez peut-être pas, c’est que lorsque vous installerez le nouveau certificat SSL, vous devrez de toute façon configurer et redémarrer votre serveur. Par conséquent, les sessions seront fermées et les navigateurs ne recevront pas n'importe quoi ...

Par conséquent, je suggérerais de rediriger temporairement tout le trafic vers une page "Maintenance" à l'aide d'un 2 redirect , avec une notification à l'avance affichée sur votre site indiquant l'heure à laquelle la maintenance aura lieu et la durée du traitement. le site sera indisponible.

Une alternative à la redirection consisterait à envoyer un code de réponse de serveur service 503 indisponible HTTP avec un champ de réponse en-tête nouvelle tentative HTTP pour indiquer quand le serveur sera à nouveau disponible.

Dernier point mais non le moindre, si vous avez plusieurs serveurs pour le serveur frontal du site, vous pouvez installer le certificat sur un autre serveur et rediriger les nouvelles connexions sur celui-ci pendant la mise à jour du ou des autres serveurs. Vous pouvez vérifier les connexions existantes dans Apache ici et IIS ici pour vous aider, si vous n'utilisez pas déjà une sécurité ou un chargement configuration de l'équilibrage.

7
dan