Comment puis-je télécharger le certificat d'un point d'accès sans fil en utilisant 802.1X?

11

Autant que je sache, les points d'accès sans fil utilisant WPA-Enterprise (c'est-à-dire WPA plus 802.1X) peuvent envoyer un certificat de clé publique à un client pendant la configuration de la connexion. Le client peut vérifier ce certificat pour s'assurer qu'il ne se connecte pas à un point d'accès non autorisé (similaire à la validation de certificat dans HTTPS).

Des questions:

  • Ai-je bien compris cela?
  • Si oui, existe-t-il un moyen de télécharger le certificat AP? Idéalement, j'aimerais une solution qui fonctionne sous Linux.

Je voudrais télécharger un certificat auto-signé, pour l'utiliser pour vérifier les tentatives de connexion ultérieures. Ce serait plus simple que de demander à l'opérateur de l'AP un fichier.

sleske
la source
Je ne connais pas d'outil spécifiquement pour télécharger et enregistrer le certificat, mais il apparaît en clair, vous pouvez donc le capturer avec Wireshark ou tcpdump. Il me semble que je me souviens avoir vu des données de cert dans les journaux de débogage / verbose wpa_supplicant, vous pouvez donc également y jeter un œil. L'une ou l'autre de ces approches peut nécessiter un peu de transfert de données pour l'obtenir du formulaire pcap / log dans un fichier X.509 .cer approprié.
Spiff

Réponses:

11

Oui, les configurations WPA-Enterprise les plus courantes utilisent PEAP ou TTLS, les deux implémentant TLS sur EAP sur 802.1X.

Habituellement, le certificat est déjà publié quelque part par les opérateurs de réseau à cet effet. Ce n'est pas quelque chose que l'utilisateur devrait demander .

Malheureusement, wpa_supplicant n'a pas d'option pour vider les certificats même en mode débogage. (Je mettrai à jour cela si je trouve un meilleur moyen.) Vous pouvez toujours surveiller le processus d'authentification EAPOL réel, cependant. Tout d'abord, installez Wireshark.

Une fois déconnecté, ouvrez l'interface manuellement et lancez une capture dessus:

$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &

Démarrez wpa_supplicant et bientôt vous verrez la prise de contact TLS:

Le serveur enverra ses certificats immédiatement après ServerHello. Sélectionnez le premier de ces paquets, puis explorez:

802.1X
└─Extensible Authentication Protocol
  └─Secure Sockets Layer
    └─Handshake Protocol: Certificatte
      └─Certificates

Cliquez avec le bouton droit sur la première instance de "Certificat ( substance )" et choisissez "Exporter les octets de paquets sélectionnés". Wireshark l'enregistrera sous forme de fichier, au format DER binaire. Répétez cette opération pour tous les autres certificats. Le premier (serveur RADIUS) contient des informations que vous pouvez configurer altsubject_match; la dernière (racine CA) doit être donnée à wpa_supplicant as ca_cert.

Vous en avez maintenant quelques-uns *.crtou des *.derfichiers au format DER binaire. Convertissez-les au format "texte" PEM:

openssl x509 -inform DER < mycert.der > mycert.pem

(Si votre wpa_supplicant utilise OpenSSL comme gestionnaire TLS, vous devez lui donner le certificat "root CA"; lui donner le certificat du serveur ne fonctionnera pas.

Notez qu'il est également possible que le dernier certificat vu dans Wireshark ne soit pas une autorité de certification racine, mais uniquement émis par l' une des autorités de certification racine de votre /etc/ssl/certsrépertoire ... Si tel est le cas, assurez-vous de le définir domain_suffix_matchégalement - sinon, l'utilisation d'autorités de certification publiques ne serait pas sécurisée (802.1X ne sait malheureusement pas contre quel "nom d'hôte" il faut vérifier, comme par exemple HTTPS.)

user1686
la source
Merci pour l'écriture détaillée. Cela semble un peu compliqué; mais si c'est la façon la plus simple de le faire, je vais essayer.
sleske
Oui, ça a vraiment fonctionné, j'ai téléchargé l'échange EAP avec tpcpdumpmais j'ai travaillé comme un charme. C'est drôle, mon flux n'avait qu'un seul serveur Bonjour, Certificat, ... entrée
mTorres
Dans mon exemple, le message TLS est fragmenté sur plusieurs paquets EAP car il est trop volumineux (surtout s'il envoie un tas de certificats RSA volumineux). Ce n'est toujours qu'un seul serveur TLS au total.
user1686
Veuillez faire preuve de patience si je dis quelque chose de incorrect. Une telle activité est nécessaire pour télécharger un certificat et l'appliquer sur des appareils qui ne permettent pas de télécharger et d'accepter le certificat lors de la première connexion.
Mauro