Mutuel TLS (mTLS) L'authentification crée un cadre sécurisé pour authentifier les utilisateurs et les appareils IoT. Ce guide vous guidera dans la mise en œuvre de mTLS pour assurer une authentification bidirectionnelle sécurisée entre les clients et les serveurs.
Guide Rapide
Mise en place d'une mutuelle TLS suit un processus simple. Tout d'abord, générez les certificats serveur et client nécessaires. Ensuite, configurez votre serveur pour qu'il exige des certificats client. Configurez ensuite vos clients avec leurs certificats et implémentez une validation de certificat appropriée. Enfin, testez la connexion pour vous assurer que tout fonctionne comme prévu.
SSL unidirectionnel et mutuel /TLS Authentification
L'une des caractéristiques déterminantes du SSL /TLS protocole est son rôle dans l'authentification de parties autrement anonymes sur les réseaux informatiques (comme Internet). Lorsque vous visitez un site Web avec un SSL /TLS certificat, votre navigateur peut vérifier que le propriétaire du site Web a réussi à démontrer son contrôle sur ce nom de domaine à une autorité de certification (CA) tierce de confiance, telle que SSL.com. Si cette vérification échoue, le navigateur Web vous avertira de ne pas faire confiance à ce site. Pour la plupart des applications, SSL /TLS utilise ce genre de authentification unidirectionnelle d'un serveur à un client; un client anonyme (le navigateur Web) négocie une session cryptée avec un serveur Web, qui présente un SSL /TLS certificat pour s'identifier lors de la SSL /TLS poignée de main: Authentification mutuelle, dans lequel les deux serveurs et client dans le SSL /TLS session sont authentifiés, est également possible et peut être très utile dans certaines circonstances. Dans l'authentification mutuelle, une fois que le serveur est authentifié lors de la prise de contact, il enverra unCertificateRequest
message au client. Le client répondra en envoyant un certificat au serveur pour authentification:
Authentification du client via mutuelle TLS exige qu'un certificat comprenant le Client Authentication (1.3.6.1.5.5.7.3.2)
Extended Key Usage (EKU) est installé sur la machine cliente. Tous les SSL.com Certificats de signature de courrier électronique, de client et de document inclure l'authentification client.
Guide de mise en œuvre détaillé
Comprendre la mutuelle TLS
Traditionnel TLS fournit l'authentification et le cryptage du serveur, mais la mutualité TLS va plus loin en exigeant que les deux parties présentent des certificats numériques. Cette vérification bidirectionnelle garantit l'authenticité du serveur, permet l'authentification du client, établit un canal de communication crypté et empêche les attaques de type « man-in-the-middle ». Le résultat est une connexion hautement sécurisée adaptée aux applications sensibles et à la communication des appareils IoT.
Pré-requis
Avant de commencer la mise en œuvre, assurez-vous d'avoir accès à OpenSSL ou à un outil de gestion de certificats similaire. Votre serveur Web doit prendre en charge TLS, et vous aurez besoin d'un accès à un Autorité de certification (CA) ou la possibilité de créer une autorité de certification privée. Vos clients doivent également prendre en charge l'authentification basée sur les certificats.
Étape 1 : Génération et gestion des certificats
Commencez par générer les certificats nécessaires à l'authentification du serveur et du client. La configuration du certificat du serveur nécessite la création d'une clé privée, générer une demande de signature de certificatet signer le certificat avec votre autorité de certification.
# Générer la clé privée du serveur
openssl général -en dehors clé.serveur 2048
?
# Créer une demande de signature de certificat de serveur (CSR)
openssl req -Nouveau -clé clé.serveur -en dehors serveur.csr
?
# Signez le certificat du serveur avec votre autorité de certification
openssl x509 -req -in serveur.csr -CA ca.crt -Clé CA ca.clé -CAcrée une série -en dehors serveur.crt
Pour les certificats clients, suivez un processus similaire pour créer leurs informations d'identification uniques :
# Générer la clé privée du client
openssl général -en dehors client.key 2048
?
# Créer un client CSR
openssl req -Nouveau -clé client.key -en dehors client.csr
?
# Signer le certificat client
openssl x509 -req -in client.csr -CA ca.crt -Clé CA ca.clé -CAcrée une série -en dehors client.crt
Étape 2 : configuration du serveur
Le serveur doit être configuré pour exiger et valider les certificats clients. Voici un exemple de configuration pour Nginx :
serveur {
écouter 443 ssl;
nom du serveur exemple.com;
?
ssl_certificate /chemin de/serveur.crt;
ssl_certificate_key /chemin de/serveur.clé;
certificat_client_ssl /chemin/vers/ca.crt;
ssl_verify_client sur;
protocoles_ssl TLSv1.2 TLSv1.3;
SSL_ciphers HAUTE:!aNULL:!MD5;
chiffrements_du_serveur_ssl_prefer sur;
}
Pour les serveurs Apache, utilisez cette configuration :
<VirtualHost *:443>
Nom du serveur example.com
Moteur SSL on
FichierCertificat SSL /chemin/vers/serveur.crt
Fichier de clé de certificat SSL /chemin/vers/serveur.key
Fichier de certificat SSLCAC /chemin/vers/ca.crt
Client SSLVerify exigent
SSLVerifyDepth 1
Étape 3 : Mise en œuvre du client
L'authentification basée sur le navigateur nécessite l'importation du certificat client dans le magasin de certificats de votre navigateur. Chaque navigateur gère ce processus différemment, mais en général, vous trouverez l'option dans les paramètres de sécurité ou de confidentialité.
Pour les appareils IoT, vous devrez implémenter l'authentification basée sur les certificats dans votre code. Voici un exemple utilisant la bibliothèque de requêtes de Python :
importer demandes
?
client_cert = ('client.crt', 'client.key')
ca_cert = 'ca.crt'
?
RAPIDE = demandes.obtenez('https://exemple.com',
cert=client_cert,
vérifier=ca_cert)
Étape 4 : Validation du certificat
La validation correcte des certificats est essentielle pour la sécurité. Votre implémentation doit vérifier l'intégrité de la chaîne de certificats, contrôler les dates d'expiration, valider l'état de révocation et garantir une utilisation correcte des clés. Voici un exemple d'implémentation :
de la cryptographie importer x509
de la cryptographie.hazmat.backends importer backend par défaut
?
def valider_certificat(chemin_cert):
au ouvert(chemin_cert, 'rb') as fichier_cert:
données_certificat = fichier_cert.lire()
cert = x509.charger_pem_x509_certificat(données_certificat, backend par défaut())
if cert.non_valide_après < datetime.datetime.maintenant†
augmenter Erreur de valeur(« Le certificat a expiré »)
Essai:
clé_usage = cert.extensions.obtenir_extension_pour_classe(x509.Utilisation des clés)
if ne sauraient clé_usage.Plus-value.signature_numérique:
augmenter Erreur de valeur(« Certificat non valide pour la signature numérique »)
sauf x509.extensions.Extension non trouvée:
augmenter Erreur de valeur(« Extension d'utilisation de clé requise non trouvée »)
Cas d'utilisation de l'authentification mutuelle
Mutuel TLS L'authentification peut être utilisée à la fois pour authentifier les utilisateurs finaux et pour l'authentification mutuelle des appareils sur un réseau informatique.Authentification d'utilisateur
Les entreprises et autres organisations peuvent distribuer des certificats clients numériques aux utilisateurs finaux tels que les employés, les sous-traitants et les clients. Ces certificats clients peuvent être utilisés comme facteur d'authentification pour l'accès aux ressources d'entreprise telles que le Wi-Fi, les VPN et les applications Web. Lorsqu'il est utilisé à la place (ou en plus) des informations d'identification traditionnelles de nom d'utilisateur / mot de passe, TLS offre plusieurs avantages de sécurité:- Mutuel TLS l'authentification n'est pas vulnérable au vol d'informations d'identification via des tactiques telles que phishing. Verizon Rapport d'enquêtes sur la violation de données 2020 indique que près d'un quart (22%) des violations de données sont dues au phishing. Les campagnes de phishing sont destinées à obtenir des informations d'identification faciles à collecter, telles que les mots de passe de connexion au site Web, et non les clés privées des certificats clients des utilisateurs. Comme défense supplémentaire contre le phishing, tous les sites SSL.com Signature d'e-mails, de clients et de documents les certificats incluent la confiance publique S/MIME pour les e-mails signés et chiffrés.
- Mutuel TLS l'authentification ne peut pas être compromise par une mauvaise hygiène des mots de passe ou des attaques par force brute sur les mots de passe. Vous pouvez exiger que les utilisateurs créent des mots de passe forts, mais comment savoir qu'ils n'utilisent pas le même mot de passe «sécurisé» sur 50 sites Web différents, ou comment le faire écrire sur une note autocollante? UNE Sondage Google 2019 indique que 52% des utilisateurs réutilisent les mots de passe pour plusieurs comptes et que 13% des utilisateurs réutilisent le même mot de passe pour tous de leurs comptes.
- Les certificats clients offrent une chaîne de confiance, et peut être géré de manière centralisée. Avec mutuelle TLS, la vérification de l'autorité de certification (CA) qui a émis les informations d'identification d'un utilisateur est intégrée directement dans le processus d'authentification. SSL.com outils de gestion en ligne, API SWSet l'accès aux protocoles standard tels que SCEP facilitent l'émission, le renouvellement et la révocation de ces informations d'identification!
- Les particuliers ou les organisations ne nécessitant qu'un ou plusieurs certificats peuvent commander Certificats de signature de courrier électronique, de client et de document à la carte de SSL.com.
- Des protocoles tels que SCEP, EST et CMP peuvent être utilisés pour automatiser l'inscription et le renouvellement des certificats clients pour les appareils appartenant à l'entreprise et BYO.
- Pour les clients nécessitant une grande quantité de certificats, des rabais de gros sont disponibles via notre Programme de revendeurs et d'achats en volume.
Meilleures pratiques de sécurité
Une sécurité renforcée nécessite plus que la simple mise en œuvre de mTLS:
- Mettre en œuvre une rotation automatisée des certificats pour garantir que les certificats sont régulièrement mis à jour
- Maintenir une liste de révocation de certificats pour invalider rapidement les certificats compromis
- Utilisez des tailles de clés fortes d'au moins 2048 bits pour les clés RSA
- Configurez vos serveurs pour accepter uniquement les connexions sécurisées TLS versions et suites de chiffrement fortes
Votre stratégie de sécurité client doit inclure la protection des clés privées à l'aide de contrôles d'accès stricts. Des audits de sécurité réguliers contribueront à maintenir l'intégrité du système au fil du temps.
Dépannage des problèmes courants
Problèmes de chaîne de certificats
Lors de la mise en œuvre de mTLS, vous pouvez rencontrer des problèmes de chaîne de certificats. Ceux-ci proviennent généralement de :
- Chaînes de certificats incomplètes
- Certificats intermédiaires mal installés
Pour résoudre ces problèmes :
- Vérifiez que la configuration de votre ancre de confiance est correcte
- Assurez-vous que tous les certificats nécessaires sont présents
Problèmes de connexion
Les problèmes de connexion sont souvent liés à :
- Blocage des paramètres du pare-feu TLS circulation
- Autorisations de certificat incorrectes
Pour dépanner:
- Vérifiez que vos certificats sont correctement nommés
- Assurez-vous qu'ils correspondent à l'usage auquel ils sont destinés
Considérations relatives aux performances
Les considérations de performances deviennent importantes à grande échelle. Pour optimiser les performances :
- Implémenter la mise en cache des sessions pour réduire la charge liée aux poignées de main répétées
- Choisissez des suites de chiffrement efficaces qui équilibrent sécurité et performances
- Surveillez votre processus de validation de certificat pour vous assurer qu'il ne crée pas de surcharge inutile
Conclusion
Mutuel TLS fournit une sécurité robuste pour l'authentification des utilisateurs et des appareils IoT. Ce guide vous a accompagné tout au long des étapes essentielles de la mise en œuvre, de la génération de certificats à la résolution des problèmes courants. En suivant ces directives et en maintenant de bonnes pratiques de sécurité, vous pouvez créer un système d'authentification sécurisé qui protège contre les attaques basées sur le réseau tout en garantissant une identification fiable du client.