본 글은 취약점은 Mathy Vanhoef의 Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2문서를 바탕으로 작성된 글임을 밝힙니다.
무선 연결 WIFI는 무선의 특성상 어느 단말기로도 연결할 수 있기 때문에 보안상 허점이 크다. 이 때문에 여러 보안 전문가는 공공장소에 있는 공유기 접속에 주의하고, 무선 연결을 WEP, WPA, WPA2와 같은 보안 설정을 하도록 권했다. 하도 이런 말을 많이 하던 덕인지, 이제는 컴퓨터를 잘 알지 못하는 이들도 무선 연결을 할 때는 비밀번호를 걸어놔야 한다는 생각을 점차 하고 있는 것 같다. 무선 연결을 할 때, 보안 방법에는 앞서 얘기한 것처럼 WEP, WPA, WPA2가 있는데, 누가 먼저라고 할 거 없이 어느 순간부터 WPA2를 권장하기 시작했다. 본래, WEP는 사용했던 키의 길이가 너무 짧아 몇 번만 쓰면 중복되는 키로 암호화 패킷이 발생해버리던 탓에 비밀번호를 유추할 수 있었다. 이런 허점을 보완하여 나온 것이 WPA였지만, 이 또한 패스워드 크래킹을 할 수 있으므로 그 이후에 권장하는 것이 WPA2였다. WPA2는 네트워크의 트래픽을 암호화하여 제3의 도청으로부터 업계 표준 권장사항이 되었다. 따라서, WPA2는 무선 네트워크 사용 시에 놓인 선택지 중 가장 안전했던 방법이었기 때문에 많은 이가 WPA2 사용을 권장했고 많은 이가 사용했다. 하지만 지난 15일, 수많은 이가 사용하던 WPA2에 취약점이 발견되면서 보안 전문가들이 술렁이기 시작했다. 바로, 키를 재설치하여 공격하는 KRACK이다.[1][2][3][4]
벨기에의 KU Leuven 보안 연구원인 Mathy Vanhoef 말에 따르면, WPA2의 암호화 프로토콜에 있는 몇 가지 취약점을 통해 보호되지 않는 데이터를 가로챌 수 있다고 한다. 또한, 가로챈 데이터를 수정하거나 새로운 데이터를 추가하여 상대방에 전할 수도 있으며, 가로챈 데이터로 명령을 조작하여 시스템을 제어할 수도 있다고 한다.[5] Mathy Vanhoef가 발견한 취약점을 이용하면 WPA2뿐만 아니라 보호된 무선 네트워크 연결에서 신용카드 정보, 암호, 채팅 메시지, 전자 메일 등 네트워크를 통하는 모든 정보를 도용할 수 있다. 더욱이 WPA2뿐만 아니라 보호된 모든 무선 네트워크 연결에는 WPA1, WPA2, 개인 및 기업 네트워크, 암호 WPA-TKIP, AES-CCMP 및 GCMP 등도 포함되어 단순히 무선 네트워크를 연결하는 일부 장치가 아닌 대다수 장치가 이 취약점에 노출되어 있을 것으로 보인다.[6] 이 말은 사용자가 설정해 놓은 암호가 전혀 효과를 발휘하지 못한다는 말로, 암호를 알지 못하더라도 오고 가는 데이터를 도청할 수 있다는 것이다. 즉, WIFI 연결을 지원하는 모든 기기는 이번에 발견된 취약점에 노출될 가능성이 매우 크다는 것이다.
자, 먼저 무선 네트워크 연결에서 암호화하는 키를 설정하는 WPA2 프로토콜의 암호화 프로세스를 이해해보자. WPA2 암호화 프로토콜에서는 AES-CTR를 기반으로 한 CCMP 암호화 방식을 사용한다.[7] CCMP 암호화 방식은 AES 블록 암호를 사용해 데이터의 비밀성과 무결성을 보장하기 위한 규칙들을 정의한다.[8][9] 이 절차에서 네트워크에 연결하려는 사용자와 네트워크를 제공하는 지점(AP)에서 서로 가지고 있는 자격 증명이 맞는지 확인하여 연결 여부를 결정한다. 이 과정으로 사용자가 네트워크를 사용할 수 있는지 알 수 있도록 키와 데이터를 교환하며, 사용자의 세션을 보호하기 위해 4단계의 프로세스를 통해 암호화 키를 생성한다. 이러한 과정을 4-way-handshake이라 일컫는데, 이렇게 서로의 자격 증명을 하기 위한 키와 데이터를 주고 받는 과정에서 취약점이 존재한다.[10][11]
handshake 초기 단계에서는 사용자와 AP간에 임시 WPA2 키를 생성하여 전송한다. 이 과정에서 공격자는 사용자가 잘못된 키를 통해 다시 설정하도록 유도하며, 이는 handshake의 메시지를 조작하여 이루어진다.[12] 즉, 사용자는 전송 패킷 번호와 수신 패킷 번호와 같은 매개 변수를 초깃값으로 재설정해버리는 것이다. 이와 같은 재설치 공격을 통해 무선 네트워크를 통해 보내는 모든 데이터를 해독할 수 있는 취약점을 만들어 낸다. 암호 해독은 키를 다시 재설치함으로써 전송된 패킷 번호가 0이 되므로 암호 해독이 가능해지는 것이다. 결과적으로 이전에 사용했던 같은 암호키를 가지고 있으므로 해독할 수 있단 얘기다.[13]
이 취약점을 통해 공격하기 위해서는 MitM(Man-in-the-Midddle) 공격이 필요로 하다. MitM은 무선으로 사용자와 연결하고 있는 AP의 실제 AP와 중간에 공격자가 통신하며 메시지를 조작할 수 있는 공격이다. 이 공격을 통해 메시지를 수정하거나 이미 사용 중인 암호화 키를 다시 설정할 수 있으며, 특정 키에 대해 얼마나 많은 패킷, 데이터 비트를 보내고 받았는지에 대한 카운터를 다시 설정하여 공격할 수 있다. 이와 같은 취약점은 현재 CVE-2017-13077, CVE-2017-13078, CVE-2017-13079로 등록되었다.[14]
이 외에도 Group-Key-handshake에 대해 그룹키(GTK)와 무결성 그룹키(IGTK)를 재설치하면서 공격할 수 있는 취약점이 있다. Group-Key-handshake는 AP가 그룹 키를 새로 고치거나 절전 모드에서 깨어나면서 사용자가 AP에서 지금의 그룹 키를 가져올 때, AP와 사용자 간에 수행되는 과정이다. Group-Key-handshake의 취약점은 AP에서 전송하는 메시지에서 발생한다. Group-Key-handshake과정이 시작되면 AP가 몇 개의 메시지를 사용자에게 전송하게 되는데, 앞서 얘기한 handshake의 취약점처럼 메시지를 조작하여 그룹 키를 다시 재설치할 수 있다. 이 역시, MitM 공격 조건이 필요하며, 이와 같은 취약점은 현재 CVE-2017-13080, CVE-2017-13081, CVE-2017-13087로 등록되었다.[15]
이 외에도 Mathy Vanhoef는 handshake과정 중에서 발견된 5개의 취약점과 함께 총 10개 취약점을 공개하였다.[16] Apple과 Microsoft는 handshake 과정 중에서 메시지의 재전송을 방지하기 위해 이와 같은 취약점을 보완한 iOS, Windows의 최신 버전을 내놓았다. 하지만 Apple과 Microsoft뿐만 아니라 이 취약점에 노출된 수백만 대의 장치를 해결해야지 좀 더 마음이 놓이지 않을까 싶다. 현재 이 취약점은 WPA2 표준에 따라 패치 할 수 있지만, 몇몇 회사에서는 프로토콜을 설치하는 방법이 조금씩 다르므로 취약점에 대한 보안 패치는 실제로 만들어야 할 것이다.[17] 사용자 측면에서 볼 때, WIFI 비밀번호를 변경하거나 새로운 라우터를 얻는다고 해서 이 공격으로부터 보호받을 수는 없으므로 제조업체와 소프트웨어 개발자가 제공하는 보안 패치를 업데이트하는 것을 추천한다.
현재 WPA2를 대체할 만한 보안 설정이 없으므로 지금 당장은 사용해야 하는 것이 맞다. 조금은 다행스럽게도 몇몇 회사에서는 패치를 제공하고 있으며, AP를 관리하는 측에서만 이런 취약점에 귀를 기울여 보안 패치를 적용하기만 하면 되므로 크게 문제가 될 것으로 보이진 않는다. 하지만 이런 취약점에 노출된 컴퓨터, IoT 장비 등등 WIFI 기능을 가진 수많은 기기가 KRACK공격에 노출되어 악용될 가능성은 충분히 있다. 따라서 이를 보호하기 위해 할 수 있는 최선의 방법은 가능한 한 많은 기기에 최신 업데이트를 설치하고, HTTPS와 같은 통신 암호화 사용하여 오가는 데이터를 보호할 수 있도록 하는 것이 최선의 방법이라 생각한다.[18]