만약 스타벅스 매장 등에 있는, KT의 공공 와이파이에 리눅스 노트북으로 접속해 보셨다면 연결에 실패하는 것을 겪어보셨을 겁니다. 제 경우에는 KDE가 비밀번호가 틀렸다고 경고를 했는데, 비밀번호가 틀릴 수 없는게 안드로이드 폰에선 똑같은 비밀번호로 와이파이에 연결이 잘 됐거든요.
만약 로그를 확인하신다면 다음과 같은 것을 보셨을 겁니다:
Dec 26 16:39:14 kernel: wlp3s0: associate with 06:09:b4:78:b3:13 (try 1/3)
Dec 26 16:39:14 kernel: wlp3s0: associate with 06:09:b4:78:b3:13 (try 2/3)
Dec 26 16:39:14 kernel: wlp3s0: RX AssocResp from 06:09:b4:78:b3:13 (capab=0x431 status=0 aid=1)
Dec 26 16:39:14 kernel: wlp3s0: associated
Dec 26 16:39:14 wpa_supplicant[1408]: wlp3s0: Associated with 06:09:b4:78:b3:13
Dec 26 16:39:14 wpa_supplicant[1408]: wlp3s0: CTRL-EVENT-EAP-STARTED EAP authentication started
Dec 26 16:39:14 wpa_supplicant[1408]: wlp3s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
Dec 26 16:39:17 wpa_supplicant[1408]: wlp3s0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
Dec 26 16:39:17 wpa_supplicant[1408]: wlp3s0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected
Dec 26 16:39:17 wpa_supplicant[1408]: SSL: SSL3 alert: write (local SSL3 detected an error):fatal:protocol version
Dec 26 16:39:17 wpa_supplicant[1408]: OpenSSL: openssl_handshake - SSL_connect error:0A000102:SSL routines::unsupported protocol
Dec 26 16:39:17 wpa_supplicant[1408]: wlp3s0: CTRL-EVENT-EAP-FAILURE EAP authentication failed
Dec 26 16:39:17 kernel: wlp3s0: disassociated from 06:09:b4:78:b3:13 (Reason: 23=IEEE8021X_FAILED)
Dec 26 16:39:17 wpa_supplicant[1408]: wlp3s0: CTRL-EVENT-DISCONNECTED bssid=06:09:b4:78:b3:13 reason=23
Dec 26 16:39:17 wpa_supplicant[1408]: wlp3s0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid="KT_starbucks_Secure" auth_failures=2 duration=31 reason=AUTH_FAILED
Dec 26 16:39:17 wpa_supplicant[1408]: wlp3s0: Added BSSID 06:09:b4:78:b3:13 into ignore list, ignoring for 10 seconds
Dec 26 16:39:17 wpa_supplicant[1408]: wlp3s0: BSSID 06:09:b4:78:b3:13 ignore list count incremented to 2, ignoring for 10 seconds
이게 왜 실패하냐면, KT의 와이파이는 WPA2-Enterprise를 사용하는데, TLS v1.2보다 더 낮은 버전을 사용해서 그렇습니다. 보안 문제 때문에 OpenSSL에선 이 버전들을 기본으로 비활성화하거든요. 심지어 Arch 위키에도 서술되어 있습니다.
대략적으로 2021년 3월경에 TLS v1.0과 1.1이 드디어 지원 종료된 건 맞지만, TLS v1.2는 2008년부터 사용할 수 있었고, (최신 버전인) TLS v1.3은 2018년부터도 사용이 가능했습니다. 아직까지도 KT가 구식 보안 프로토콜을 사용하는 것에 대해 핑계도 댈 수 없죠.
해결하기 위해 보안이 취약한 TLS 버전을 활성화하는 것보다, 그냥 비밀번호가 걸려있지 않은 와이파이에 접속한 다음 Tailscale의 출구 노드 (exit node) 기능을 사용해서 연결을 암호화시켰습니다. 덜 번거롭고 정보 탈취도 막아주니까요.
맨날 TV에 AI 기술의 최강자라고 홍보하고 다니는 회사 맞습니다. 혹시 KT는 수치심이란 걸 알까요?