
Acer Wireless Keyboard SK-9662의 약한 암호화로 인해 물리적으로 근접한 공격자가 무선 키 입력을 복호화하고 임의의 무선 키 입력을 주입할 수 있습니다.
Acer 무선 키보드 SK-9662 (FCC ID: H4IKB9662)의 무선 프로토콜에서 사용되는 취약한 암호화를 발견했습니다. 이 취약한 암호화로 인해 공격자가 키 입력을 쉽게 모니터링 및 로깅하고 임의의 키 입력을 주입할 수 있습니다.
이 키보드는 Texas Instruments CC2545 칩을 사용하며, Nordic Semiconductors에서 개발한 Enhanced Shockburst 프로토콜을 사용하여 데이터를 전송합니다. 페이로드는 12바이트로 구성되며, 첫 번째 바이트는 상수 값(테스트 결과 0x48)으로 보입니다. 두 번째 바이트는 수정자 바이트(ctrl, shift 등)이고, 세 번째와 네 번째 바이트는 소비자 및 전원 제어 키입니다. 다섯 번째부터 열 번째 바이트는 키 코드입니다. 열한 번째 바이트는 체크섬 역할을 하며, 열두 번째 바이트는 암호화에 사용되는 난수입니다.
페이로드 암호화는 무선 잡음에서 난수 바이트를 생성하는 것으로 시작됩니다. 펌웨어에 저장된 다른 바이트(keyvalue)가 AES의 키로 사용됩니다. 키와 난수 바이트는 모두 128비트로 제로 패딩되어 CC2545의 AES 코프로세서로 전송됩니다. AES 코프로세서는 null IV와 함께 CBC 모드로 구성됩니다. AES 코프로세서의 출력을 xorkey라고 합니다. 페이로드의 처음 11바이트는 xorkey의 해당 바이트와 XOR됩니다. 난수 바이트는 수신기가 페이로드를 복호화할 수 있도록 페이로드의 마지막 바이트입니다.
페이로드의 복호화는 암호화와 유사합니다. 페이로드의 열두 번째 바이트(난수 값)와 keyvalue(수신기가 미리 알고 있음)를 사용하여 xorkey를 생성하고 암호화된 페이로드와 XOR합니다.
이 암호화 방식은 1바이트 AES 키만 사용하기 때문에 쉽게 우회됩니다. 키가 256개의 가능한 값으로 제한되므로 키는 몇 초 내에 쉽게 무차별 대입될 수 있습니다. 이 저장소의 Python 스크립트는 캡처된 암호화 패킷의 무차별 대입 복호화를 보여줍니다.
이 취약점을 악용하려면 공격자가 2.4GHz 무선 트래픽을 캡처할 수단이 있어야 합니다. 이를 위해서는 대상 키보드에 물리적으로 가까이 접근해야 합니다. 그러나 패킷 하나만 캡처되면 AES 키를 몇 초 내에 무차별 대입할 수 있으며 실시간 키로깅 및 키 입력 주입이 가능해져 피해자의 컴퓨터에 접근할 수 있습니다. 인기 있는 무선 해킹 도구 jackit(https://github.com/insecurityofthings/jackit)을 확장하여 저렴한 2.4GHz USB 동글 하나로 근처 SK-9662 키보드의 스니핑 및 키 입력 주입을 지원할 수 있습니다.
SK-9662 키보드는 단종된 제품입니다. 이 키보드에는 업데이트 메커니즘이 없으며 사용자는 취약한 키보드 사용을 중단해야 합니다. Acer는 최신 키보드 제품으로 전환할 것을 권장합니다.