예. 가장 일반적인 WPA- 엔터프라이즈 구성은 PEAP 또는 TTLS를 사용하며 둘 다 802.1X를 통해 EAP를 통한 TLS를 구현합니다.
일반적으로 인증서는이 목적을 위해 네트워크 운영자가 이미 어딘가에 게시합니다. 사용자가 요구 해야하는 것이 아닙니다 .
안타깝게도 wpa_supplicant에는 디버그 모드에서도 인증서를 덤프 할 수있는 옵션이 없습니다. (더 나은 방법을 찾으면 이것을 업데이트하겠습니다.) 그래도 실제 EAPOL 인증 프로세스를 모니터링 할 수 있습니다. 먼저 Wireshark를 설치하십시오.
연결이 끊긴 상태에서 인터페이스를 수동으로 시작하고 캡처를 시작하십시오.
$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &
wpa_supplicant를 시작하면 곧 TLS 핸드 셰이크가 나타납니다.
서버는 ServerHello 직후에 인증서를 보냅니다. 첫 번째 패킷을 선택한 후
802.1X
└─Extensible Authentication Protocol
└─Secure Sockets Layer
└─Handshake Protocol: Certificatte
└─Certificates
"인증서 ( stuff )" 의 첫 번째 인스턴스를 마우스 오른쪽 단추로 클릭하고 "선택한 패킷 바이트 내보내기"를 선택하십시오. Wireshark는 파일을 이진 DER 형식으로 파일로 저장합니다. 다른 모든 인증서에 대해이 과정을 반복하십시오. 최상위 서버 (RADIUS 서버)에는 구성 할 수있는 정보가 있습니다 altsubject_match
. 마지막 것 (루트 CA)은 wpa_supplicant에로 주어져야합니다 ca_cert
.
이제 바이너리 DER 형식의 파일 이 몇 *.crt
개 *.der
있습니다. PEM "텍스트"형식으로 변환하십시오.
openssl x509 -inform DER < mycert.der > mycert.pem
당신의 wpa_supplicant를가 TLS 핸들러로 OpenSSL을를 사용하는 경우 (, 당신은 해야한다 그것에게 "루트 CA"인증서를주고, 그것을 작동하지 않습니다 서버의 인증서를 제공합니다.
Wireshark에 표시된 마지막 인증서가 루트 CA가 아니라 디렉토리 의 루트 CA 중 하나 에서만 발급 된/etc/ssl/certs
것일 수도 있습니다.이 경우 domain_suffix_match
에도 설정하십시오. 그렇지 않으면, 퍼블릭 CA를 사용하는 것은 안전하지 않습니다 (802.1X는 불행히도 "호스트 이름"을 확인할 대상을 알지 못합니다 (예 : HTTPS)).