Tout peut arriver dans ce bas monde, y compris d’avoir de drôles de certificats. Elément de confiance essentiel, il peut y avoir quelques ratés.
Continuer la lectureArchives de catégorie : PKI, certificats & TLS
DNS et TLS (DoH et DoT)
Derrière ce titre abscons se cache un enjeu important : sécuriser les requêtes DNS, souvent oubliées de toutes les études de sécurité.
Continuer la lectureCertificat (contrôle)
Bien beau d’avoir un certificat, encore faut-il savoir s’il est fiable et valide. La norme utilisée étant quasiment toujours X509, étudions-en les caractéristiques.
Usage
SNI
Server Name Indication
Sources
Scan SSL
La confiance n’exclut pas le contrôle, dit-on souvent. Il existe d’excellents outils pour évaluer la sécurité et la robustesse d’un serveur proposant une communication SSL.
Pour ma part, je recommande SSLScan, dont il existe plusieurs variantes. En fouillant un peu, celle qui me semble la plus pertinente est celle de rbsec, car elle est à peu près à jour (elle intègre les versions 1.1 et 1.2 de TLS), et ne mixe pas les technologies puisqu’il s’agit uniquement d’un programme en langage C. Ca permet d’éviter de trop nombreuses dépendances, et ça évite de cumuler les vulnérabilités de multiples technologies (bien que cet aspect puisse être débattu).
Continuer la lectureBug SSL (Apple)
Je classe la vulnérabilité CVE-2014-1266 parmi les énigmes de sécurité informatique, comme l’affaire TrueCrypt, car les circonstances entourant ce bug SSL sont mystérieuses, et n’ont pas l’air d’avoir été éclaircies (en 2018).
Comme son nom l’indique, cette faille a été découverte en 2014.
Certificat
Un certificat (en réalité un certificat numérique, mais je simplifie la terminologie car je ne parle que de sécurité informatique) est un document informatique permettant de prouver l’authenticité et l’intégrité d’un élément (une clé) de chiffrement public.
Il existe plusieurs types de certificats, ayant des caractéristiques et des niveaux de garantie assez différents.
Caractéristiques principales
Classes de certificats
Bien qu’il n’y ait pas de standard en la matière, les autorités de confiance délivrant les certificats proposent différents niveaux de garanties, déclinées souvent en classes.
Etendue de la validation
Il y a trois grand types de validation :
Domain Validation (DV)
C’est le type le plus simple de validation pour un certificat. L’autorité de certification (AC) émettra un certificat de validation de domaine à toute personne apparaissant comme contact administratif dans le registre public associé à chaque nom de domaine (ou suivant des contrôles assez simples se basant sur une adresse mail). La seule garantie obtenue est que le nom de domaine est bien celui qui apparaît, ce qui peut suffire à certains usages. Cela permet toutefois de chiffrer le trafic entre l’internaute et le site en question, et d’établir un minimum de confiance de façon assez rapide (pour le propriétaire du site).

Organization Validation (OV)
Ici, l’Autorité de Certification contrôle également l’identité de l’entreprise et de la personne formulant la demande de certificat. C’est un niveau supérieur, qui permet d’associer une identité à un nom de domaine, ce qui peut trouver son utilité quand des noms de domaines peuvent être ambigus.
Extended Validation (EV)
Édictées par le CA Browser Forum1, les directives EV2 obligent l’Autorité de Certification à effectuer une vérification beaucoup plus poussée de l’identité de l’entreprise ou de la personne demandant le certificat. Le niveau de garantie est supérieur à un certificat OV, ce qui est attesté par une barre verte contenant le nom de l’organisation dans certains navigateurs. En général, ils ne permettent pas le multi-domaine (SAN) ni le wildcard.

Type de certificat
Wildcard

Multi-domaine (SAN)
Usage
Validité d’un certificat
Que doit-on vérifier pour pouvoir dire qu’un certificat est valide ?
- Le certificat doit avoir un format valide ;
- le certificat doit être valide au moment de son utilisation (date de fin mais aussi date de début) ;
- il doit être issu d’une autorité de confiance (CA) reconnue et fiable ;
- le nom du service correspond bien à celui que l’on veut (champ CN du sujet) ;
- l’usage du certificat est conforme à celui qu’on veut en faire, en vérifiant :
- Basic constraints : indique notamment s’il s’agit d’un certificat racine ou non (
CA:FALSEpar exemple) - Key Usage : signature, chiffrement, etc.
- Extended Key Usage : authentification du site web, par exemple ;
- Basic constraints : indique notamment s’il s’agit d’un certificat racine ou non (
- le certificat ne doit pas avoir été révoqué (mais c’est bien rare que cette vérification soit faite…).
Applications
SSL/TLS
SSL et TLS sont deux noms différents pour la même chose. Enfin presque : il y a eu plusieurs versions de SSL (notamment v2 et v3) puis l’appellation TLS a remplacé SSL. Nous avons donc eu TLS 1.0, puis TLS 1.1 et maintenant TLS 1.2.
SSL est un protocole permettant de sécuriser des échanges de flux réseaux. Comme tout protocole, il n’est constitué que de spécifications : on dit quoi faire et comment. Après, ce sont des programmes (des librairies…) qui implémentent (mettent en oeuvre en pratique) ce protocole.
Continuer la lecture