Pourquoi les certificats SSL expirent-ils généralement après une certaine période de temps? Cela ne peut-il pas vraiment être une fois appliqué et vérifié, alors ce devrait être une aventure à vie?
C'est une mesure de sécurité. Si de telles choses traînaient éternellement, cela donnerait aux crackers plus de temps pour obtenir le cert subrepticement. De cette façon, il y a un contrôle continu pour s'assurer que le certificat est toujours utilisé par une personne réelle ou une autre entité.
Un certificat X.509 (pas un certificat SSL dont tout le monde parle, SSL est mort depuis 20 ans, et les certificats peuvent être utilisés en dehors du monde TLS, et TLS peut également se faire sans certificats) peut décrire (authentifier) diverses entités différentes: un nom de domaine, un individu, une organisation, un email, une adresse IP, etc.
Il peut également être émis via différents types de mécanismes de validation: DV, OV ou EV par exemple.
Dans tous les cas, le contrôle/l'existence d'une chose donnée (contrôle d'un domaine, existence d'une entité ou d'une personne, etc.) évolue dans le temps. Il est donc logique de revalider les choses.
Imaginez que j'obtiens un certificat pour lifetime.example
nom de domaine. Mais ensuite, je transfère le nom de domaine à quelqu'un d'autre. Ou j'oublie de le renouveler (et donc n'importe qui d'autre peut l'enregistrer). Ou je meurs. Certaines raisons parmi tant d'autres à ce moment-là, la légitimité du certificat devrait être remise en question et, par conséquent, il devrait être délivré à nouveau. Et pour cela, le certificat précédent devrait être limité dans le temps (il existe des mécanismes pour révoquer les certificats existants, mais en pratique cela ne fonctionne pas assez bien).
C'est exactement le même cas que dans la vie réelle: pourquoi toutes les preuves d'identité émises par le gouvernement expirent-elles? Pourquoi devez-vous refaire votre passeport, votre carte d'identité nationale et ainsi de suite tous les 5 ou 10 ans?
De plus, les certificats utilisent la cryptographie. En théorie, une attaque par force brute serait au moins dans "un certain temps" capable de trouver la clé privée hors de la clé publique (seule une partie étant dans le certificat). Donc, la croyance commune est qu'il est bon de renouveler le matériel cryptographique "de temps en temps".
Cela permet également d'éliminer progressivement les algorithmes obsolètes, comme le passage de signatures basées sur SHA-1 à SHA-256 dans les certificats.
Les points ci-dessus sont également exactement ce qui est détaillé sur https://comodosslstore.com/blog/why-you-cant-ssl-certificate-for-more-than-3-years.html
Bien sûr, les cyniques diront que cela permet également à CA de simplement vous facturer annuellement (mais il y a maintenant des CA qui délivrent des certificats DV gratuitement ...).
Vous pouvez lire sur https://letsencrypt.org/2015/11/09/why-90-days.html quelques explications sur la raison pour laquelle le certificat Let's Encrypt n'est valide que pour 90 jours:
De notre point de vue, ces courtes durées de vie des certificats présentent deux avantages principaux:
- Ils limitent les dommages causés par les compromis clés et les erreurs d'émission. Les clés volées et les certificats délivrés à tort sont valables pour une période de temps plus courte.
- Ils encouragent l'automatisation, ce qui est absolument essentiel pour la facilité d'utilisation. Si nous allons déplacer l'intégralité du Web vers HTTPS, nous ne pouvons pas continuer à attendre des administrateurs système qu'ils gèrent manuellement les renouvellements. Une fois l'émission et le renouvellement automatisés, des durées de vie plus courtes ne seront pas moins pratiques que les plus longues.
L'un des documents clés utilisés par toutes les principales autorités de certification (les soi-disant exigences du CAB Forum Baselines) a mis en place des limites de validité sur les certificats: