802.1X를 사용하여 무선 AP의 인증서를 어떻게 다운로드 할 수 있습니까?


11

내가 아는 한 WPA-Enterprise (예 : WPA와 802.1X)를 사용하는 무선 액세스 포인트는 연결 설정 중에 클라이언트에 공개 키 인증서를 보낼 수 있습니다. 클라이언트는이 인증서를 확인하여 Rogue AP (HTTPS의 인증서 유효성 검사와 유사)에 연결되어 있지 않은지 확인할 수 있습니다.

질문 :

  • 이것을 올바르게 이해 했습니까?
  • 그렇다면, AP 인증서를 다운로드하는 방법이 있습니까? 이상적으로는 Linux에서 작동하는 솔루션을 원합니다.

자체 서명 된 인증서를 다운로드하여 후속 연결 시도를 확인하는 데 사용하고 싶습니다. 이것은 AP 운영자에게 파일을 요청하는 것보다 간단합니다.


인증서를 다운로드하고 저장하기위한 도구를 모르는 것은 분명합니다. Wireshark 또는 tcpdump로 캡처 할 수 있습니다. 디버그 / 자세한 wpa_supplicant 로그에 인증서 데이터가 표시되는 것을 기억하는 것 같습니다. 이러한 방법 중 하나를 pcap / log 형식에서 적절한 X.509 .cer 파일로 가져 오려면 약간의 데이터가 필요합니다.
Spiff

답변:


11

예. 가장 일반적인 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)).


자세한 내용을 작성해 주셔서 감사합니다. 조금 복잡하게 들립니다. 그러나 그것이 가장 간단한 방법이라면 시도하겠습니다.
sleske

그렇습니다. 실제로 EAP 교환을 다운로드 tpcpdump했지만 매력처럼 작동했습니다.
재밌지

내 예제에서 TLS 메시지는 너무 크기 때문에 (특히 많은 RSA 인증서를 보내는 경우) 여러 EAP 패킷에 걸쳐 조각화됩니다. 그러나 항상 총 하나의 TLS ServerHello입니다.
user1686

내가 틀린 말을한다면 나와 함께 해주세요. 이러한 활동이 필요하면 인증서를 다운로드하여 처음 연결시 인증서를 다운로드하여 수락 할 수없는 장치에 적용해야합니다.
Mauro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.