Authentification des utilisateurs et des appareils IoT avec Mutual TLS

Apprenez à mettre en œuvre la mutualité TLS (mTLS) Authentification pour sécuriser les connexions des utilisateurs et des appareils IoT. Comprend la configuration étape par étape du certificat, la configuration du serveur, l'implémentation du client et les instructions de dépannage.

Rubriques connexes

Vous voulez continuer à apprendre?

Abonnez-vous à la newsletter SSL.com, restez informé et en sécurité.

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 un CertificateRequest 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 ligneAPI SWSet l'accès aux protocoles standard tels que SCEP facilitent l'émission, le renouvellement et la révocation de ces informations d'identification!
SSL.com offre plusieurs options pour l'émission et la gestion des certificats clients:

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.

Contactez un spécialiste SSL.com à propos de Mutual TLS et l'IoT

Restez informé et en sécurité

SSL.com est un leader mondial de la cybersécurité, PKI et les certificats numériques. Inscrivez-vous pour recevoir les dernières nouvelles de l'industrie, des conseils et des annonces de produits de SSL.com.

Nous aimerions recevoir vos commentaires

Répondez à notre enquête et faites-nous part de votre avis sur votre récent achat.