해커들, 300만 개 호텔 키카드 자물쇠를 열 수 있는 방법 발견
(wired.com)- 보안 연구팀이 공개한 Unsaflok은 Dormakaba Saflok RFID 호텔 잠금장치 여러 모델을 몇 초 안에 열 수 있어, 호텔 객실 출입 통제 자체의 신뢰를 흔듦
- 영향 범위는 전 세계 131개국 13,000개 숙박시설의 300만 개 문이며, 취약점은 Dormakaba 암호화와 MIFARE Classic RFID 약점을 함께 이용함
- 공격자는 같은 호텔의 키카드 1장을 확보한 뒤 $300 RFID 장치로 코드를 읽고, 직접 만든 카드 2장을 차례로 탭해 잠금장치 데이터를 바꾸고 문을 엶
- 연구팀은 2022년 11월 Dormakaba에 세부사항을 공유했지만, 2024년 3월 기준 설치된 Saflok 중 36%만 업데이트됐고 오래된 설치는 수정에 몇 달에서 몇 년이 걸릴 수 있음
- 투숙객은 NFC Taginfo 앱으로 키카드가 여전히 MIFARE Classic인지 확인할 수 있으며, 취약 가능성이 있으면 객실 내 귀중품 보관을 피하고 안에 있을 때는 문 체인을 거는 편이 안전함
Unsaflok 기법과 영향 범위
- 보안 연구자 Ian Carroll, Lennert Wouters와 팀은 Unsaflok이라는 호텔 키카드 해킹 기법을 공개함
- 이 기법은 스위스 잠금장치 제조사 Dormakaba가 판매한 Saflok 브랜드 RFID 기반 키카드 잠금장치 여러 모델을 거의 즉시 열 수 있게 함
- Saflok 시스템은 전 세계 300만 개 문, 13,000개 숙박시설, 131개국에 설치돼 있음
- 연구는 2022년 Las Vegas의 비공개 행사에서 호텔 객실 기기들을 해킹해보는 과정에서 시작됐고, 연구팀은 객실 문 잠금장치에 집중함
공격 방식: 키카드 1장과 두 번의 탭
- 공격자는 목표 호텔의 어떤 키카드든 1장을 먼저 확보해야 함
- 해당 호텔 객실을 예약하거나, 사용된 키카드가 담긴 상자에서 카드를 얻는 방식이 예시로 제시됨
- 만료된 키카드도 같은 호텔의 카드라면 조건을 충족함
- 이후 $300짜리 RFID 읽기/쓰기 장치로 카드에서 특정 코드를 읽고, 자체 키카드 2장을 작성함
- 첫 번째 카드는 잠금장치의 특정 데이터를 다시 씀
- 두 번째 카드는 문을 엶
- Wouters에 따르면 두 카드를 빠르게 탭하는 것만으로 문이 열리며, 이 방식은 호텔의 모든 문에서 작동함
- 최종 공격에는 Proxmark RFID 읽기/쓰기 장치와 빈 RFID 카드 2장이면 충분함
- Android 휴대폰이나 Flipper Zero도 신호를 연속으로 내보내는 데 사용할 수 있음
취약점의 기술적 구성
- Unsaflok은 두 종류의 취약점을 결합함
- 키카드에 데이터를 쓸 수 있게 하는 취약점
- 어떤 데이터를 써야 Saflok 잠금장치를 속여 열 수 있는지 알아내는 취약점
- Saflok 키카드는 MIFARE Classic RFID 시스템을 사용함
- 이 시스템은 10년 넘게 알려진 취약점이 있으며, 공격자가 키카드에 쓸 수 있음
- 기존 무차별 대입 과정은 최대 20초가 걸릴 수 있음
- 연구팀은 Dormakaba 자체 암호화 시스템의 일부인 키 파생 함수를 깨서 카드에 훨씬 빠르게 쓸 수 있게 함
- 이 단계만으로는 Saflok 키카드를 마음대로 복사할 수 있지만, 다른 객실용 카드를 생성할 수는 없음
- 더 중요한 단계는 Dormakaba가 호텔에 배포하는 잠금장치 프로그래밍 장치와 프런트 데스크 키카드 관리 소프트웨어를 확보해 역공학한 부분임
- 연구팀은 카드에 저장된 데이터 구조를 이해함
- 호텔별 속성 코드와 각 객실별 코드를 추출함
- Dormakaba 시스템처럼 값을 만들고 암호화해, 숙박시설 내 모든 객실을 여는 마스터 키처럼 동작하는 카드를 위조할 수 있게 됨
수정 현황과 배포 지연
- Carroll과 Wouters는 2022년 11월 Dormakaba에 해킹 기법의 전체 기술 세부사항을 공유함
- Dormakaba는 2023년 초부터 Saflok을 사용하는 호텔에 보안 결함을 알리고, 취약한 잠금장치를 수정하거나 교체하도록 돕고 있다고 밝힘
- 최근 8년 동안 판매된 많은 Saflok 시스템은 각 잠금장치의 하드웨어를 교체할 필요가 없음
- 호텔은 프런트 데스크 관리 시스템을 업데이트하거나 교체해야 함
- 기술자가 문마다 잠금장치를 비교적 빠르게 다시 프로그래밍해야 함
- 연구팀은 Dormakaba로부터 2024년 3월 기준 설치된 Saflok 중 36%만 업데이트됐다고 들음
- 잠금장치가 인터넷에 연결돼 있지 않고, 일부 오래된 잠금장치는 하드웨어 업그레이드가 필요해 전체 수정 배포에는 최소 몇 달이 더 걸릴 수 있음
- 일부 오래된 설치는 몇 년이 걸릴 수 있음
- Dormakaba는 즉각적인 완화책과 장기 해결책을 구현하기 위해 파트너들과 긴밀히 협력했다고 밝혔지만, “즉각적인 완화책”의 세부 내용은 공개하지 않음
공개 제한과 투숙객 확인 방법
- 연구팀은 공격의 일부 세부사항을 의도적으로 공개하지 않음
- 첫 번째 카드가 목표 객실의 고유 식별자를 추측하지 않고도 문을 열 수 있게 한다는 점만 밝힘
- 예비 침입자나 절도범에게 너무 명확한 절차를 제공하지 않기 위해 해당 요소를 비공개로 유지함
- 이는 2012년 Black Hat에서 공개된 Onity 호텔 키카드 해킹 사례와 대비됨
- 당시 공개는 누구나 Onity 잠금장치 1,000만 개를 여는 장치를 만들 수 있을 정도로 자세했음
- Onity가 하드웨어 업그레이드 비용을 부담하지 않고 고객에게 책임을 넘기면서 많은 호텔에서 문제가 남았고, 이후 적어도 한 건의 장거리 절도 사건에 악용됨
- 연구팀은 Dormakaba의 수정을 돕는 것과 투숙객에게 위험을 알리는 것 사이의 중간 지점을 택하려 함
- 투숙객은 취약한 잠금장치를 대체로 알아볼 수 있음
- 흔한 외형은 물결선이 지나가는 둥근 RFID 리더 디자인임
- 다만 이 디자인만으로 항상 식별할 수 있는 것은 아님
- 객실 문에 Saflok이 있다면 NXP의 NFC Taginfo 앱으로 키카드를 확인할 수 있음
- 잠금장치가 Dormakaba 제품이고 앱에서 키카드가 여전히 MIFARE Classic으로 표시되면, 여전히 취약할 가능성이 큼
- 취약한 경우 투숙객이 할 수 있는 일은 제한적임
- 객실에 귀중품을 두지 않는 것이 권장됨
- 객실 안에 있을 때는 문 체인을 걸어야 함
- 객실 데드볼트도 키카드 잠금장치가 제어하므로 별도 보호책이 되지 않음
- Dormakaba는 연구팀의 기법이 과거에 사용됐다는 사실을 알지 못한다고 밝혔지만, 연구팀은 이것이 은밀한 사용 가능성을 배제하지는 않는다고 봄
- Saflok 브랜드는 30년 넘게 판매됐고, 연구팀은 취약점이 오랫동안 존재했을 가능성이 크다고 판단함
댓글과 토론
Hacker News 의견들
-
출입 통제·통신 시스템을 만드는 회사에서 일함. 우리가 개발하는 리더기는 암호화되지 않은 EM-Marin, 오래전에 깨진 Mifare Classic부터 현대적인 Desfire EVx까지 다양한 ID 표준을 지원함
통계상 고객의 95% 이상은 여전히 비용이 낮고 운영이 쉽다는 이유로 가장 취약한 식별자를 계속 사용함
제조사가 계속 지원하더라도 유지보수 비용을 내야 해서 설치된 장비 다수가 제대로 관리되지 않고, 모든 장비가 네트워크로 원격 업데이트되거나 애초에 네트워크 연결을 가진 것도 아님
카드가 암호화되어 있어도 대부분의 카드 리더기가 컨트롤러와 Wiegand 프로토콜로 연결되는데, 이 프로토콜은 데이터 암호화를 제공하지 않아 식별자 ID가 두 가닥 선으로 평문 전송됨- 어느 시점부터는 제조사가 이미 취약하다고 알려진 표준을 계속 지원하기로 선택한 데에도 책임이 있지 않나 싶음
브라우저 중에 TLS_NULL_WITH_NULL_NULL 암호군을 지원하는 게 얼마나 될까? - 비슷한 분야에 있는데, 고객 상당수가 Flipper Zero가 자동화할 정도로 재전송 공격에 말도 안 되게 취약한 구식 Wiegand 저주파 배지를 계속 사용함
- 호텔 키카드 기술에 대해 오래 궁금했던 게 있음. 비접촉 키카드를 쓰는 호텔에 묵을 때마다, 보통 2~3박 동안 3~5개 방을 쓰는 그룹 기준으로 적어도 한 명은 키카드를 재발급받아야 했음
왜 그런 걸까? 직장의 스마트카드나 비접촉 은행카드는 몇 년씩 계속 잘 작동함 - 사실상 모든 물리 자물쇠도 쉽게 딸 수 있는 것과 비슷함. 그래도 사무실 문 자물쇠를 피킹 저항성 기준으로 사는 사람은 없음
도둑은 어차피 부수고 들어올 테니까 - 암호화된 카드도 리더기와 컨트롤러 사이가 Wiegand라면 평문으로 식별자가 지나간다는 건 맞음. 차라리 열쇠와 자물쇠로 돌아가는 편이 나아 보임
- 어느 시점부터는 제조사가 이미 취약하다고 알려진 표준을 계속 지원하기로 선택한 데에도 책임이 있지 않나 싶음
-
내가 세 들어 사는 건물은 Scantron(https://scantron.dk/) 도어락을 쓰고, RFID 키로 잠금을 여는 방식임. 작년에 MiFare Classic의 약한 암호화 때문에 아무 키에서나 마스터키를 만들 수 있는 방법이 발견됨
집주인이 문제를 이해하기까지 기자와 많은 이메일·전화가 필요했고, Scantron도 집주인에게 문제를 축소해서 말했을 것 같음
결국 굴복해서 모든 도어락을 더 나은 암호화 방식으로 업그레이드하고 키를 재발급함
우리 건물은 197세대이고 각 세대에 최소 2개 키가 있으니, 내 집이 털리지 않으려면 모든 세입자와 그들의 지인까지 신뢰해야 함. 실제로 털려도 침입 흔적이 없을 가능성이 커서 보험이 보장하지 않을 수 있음- 평생 세입자로 살아왔고, 늘 제일 먼저 하는 일은 모든 자물쇠 교체였음. 크기가 다른 고보안 실린더 자물쇠를 몇 개 갖고 있고, 어떤 실린더도 절대 피킹 불가능하진 않지만 내 것은 꽤 만족함
- 그 이메일들을 공유할 수 있을까? 나도 그런 아파트 단지에 살고 있고 자물쇠가 장난감 수준이라는 건 알았지만, 관리회사를 설득할 수 있을 거라고는 생각 못 했음
- 예전에 세 들어 살던 아파트에서도 비슷했음. 안타깝게도 고치려 하지 않아서 도어락 배터리를 빼고 물리 키만 사용함
마지막으로 확인했을 때 내 복제된 출입 태그는 아직도 거기서 작동했음
-
여러 사람과 함께 이 연구를 진행했으니 질문 있으면 답할 수 있음. 공개 내용도 https://unsaflok.com에 있음
- 공격의 기술적 세부사항은 언제 공개할 계획인가? 도어락의 긴 교체 주기를 생각하면 10년 이상 교체되지 않을 것도 많을 텐데
- Saflok은 어떻게 대응했나? 협조적이었는지, 아니면 협박하거나 정보 공개를 막으려 했는지 궁금함
- 취약점을 찾으려고 시작한 건지, 아니면 우연히 발견한 건지 궁금함
취약점을 찾으려 한다면 어디서부터 시작하나? 이런 작업에서 “IDE 열고 print("hello world") 쓰기”에 해당하는 출발점은 무엇인가? - 이 부분이 눈에 띄었음: “이 정보는 dormakaba Saflok 시스템에만 적용되며, MIFARE Classic 키카드를 쓰는 여러 다른 잠금장치 제조사는 Unsaflok 취약점의 영향을 받지 않는다”
그러면 Saflok의 MIFARE Classic 구현 방식이 문제였을 가능성이 커 보임. 이 프로토콜을 더 읽어봐야겠음 - 그런 잠금장치가 있는 호텔에 묵는다면 영향을 받는지 어떻게 알 수 있나? 호텔이 패치하지 않았다면 호텔에 문제를 일으키지 않고 내 방 문만 직접 패치할 수 있을까?
-
“공격자가 건물 내 아무 키카드 하나만 읽으면, 그 건물의 모든 문을 공격할 수 있다”는 건 꽤 심각한 취약점임. 사실상 호텔 투숙객이기만 하면 충분하다는 뜻임
- 호텔은 체크아웃 때 키카드를 반납하라고 하지 않는 경우도 많아서 그냥 쓰레기통에 버려짐. 악의적인 사람은 쓰레기통에서 하나 꺼내기만 해도 되고, 호텔 투숙객일 필요조차 없음
-
연구자들이 2022년 11월 Dormakaba에 해킹 기법의 전체 기술 세부사항을 공유했는데, 이번 달 기준 설치된 Saflok 중 36%만 업데이트됐다고 Dormakaba가 말했다면, Dormakaba가 이걸 최우선 총력 과제로 삼지 않은 건가?
아니면 설치처의 3분의 2에는 제때 무료 수정이 제공됐는데 어떤 이유로 미루고 있는 건가?
“우리 고객과 파트너 모두 보안을 매우 진지하게 여기며, 이 사안을 책임 있게 처리하기 위해 모든 합리적 조치가 취해질 것이라 확신한다”는 PR 문구에서 “합리적”이라는 단어가 수상함
Wikipedia에 따르면 dormakaba Holding AG는 스위스 Rümlang에 본사를 둔 글로벌 보안 그룹이고, 50개국 이상에서 15,000명 넘게 고용하고 있음
호텔 고객에게 잠재적으로 매우 나쁜 일이 생기기 전에 해결하려는 의지만 있다면 자원은 충분해 보임
SIX Swiss Exchange에 상장되어 있음
https://www.google.com/finance/quote/DOKA:SWX?comparison=INDEXSP%3A.INX&window=5Y
https://www.google.com/finance/quote/DOKA:SWX?comparison=INDEXSP%3A.INX&window=1Y- 호텔과 호텔 금고 잠금장치는 원래부터 보안이 의심스러운 경우가 많았음
-
찬물을 끼얹는 얘기지만 대부분의 잠긴 문은 여러 방법으로 “몇 초 만에” 열 수 있음. 대체로 잠긴 상태는 실질적 강제 수단이라기보다 출입 금지 신호에 가까움
- 고등학교 때 학생증을 문과 문틀 사이 틈에 밀어 넣어 걸쇠를 젖히면 어떤 잠긴 문도 열 수 있었음. 40년이 지난 지금도 이 취약점은 남아 있을 것 같음
- 특히 호텔에서 잠긴 문은 모든 사람을 영원히 막기 위한 게 아님. 청소 직원 접근부터 의료 응급상황까지, 그렇게 설계되면 끔찍할 이유가 수십 가지 있음
목적은 무단 접근을 충분히 번거롭거나 시끄럽게 만들어 누군가 알아차리고 매니저에게 알리게 하는 것임 - 그래도 그런 방법 중 일부는 시끄럽고, 특수 장비나 기술이 필요하며, 침입이 있었다는 흔적을 명확히 남김
- 대부분의 잠긴 문은 잠금 해제보다 더 빠른 다른 방식으로 우회할 수 있음. 예를 들면 창문에 돌을 던지는 것
-
호텔 카드키가 어떻게 작동하는지 내가 잘못 이해하고 있었던 듯함. 항상 키에는 무작위 UUID가 들어 있고, 체크인할 때 임의의 카드가 내 방에 연결되어 건네지는 방식이라고 생각했음
문을 열려고 하면 카드 ID를 객실 데이터베이스와 비교해서 열지 판단하는 줄 알았음
그게 아닌가? 암호화나 카드에 뭔가를 실제로 쓰는 방식보다 그쪽이 더 단순해 보이는데- 프런트 데스크의 카드 발급기가 카드에 메시지를 씀. “301번 잠금장치야, 이 카드는 시각 X부터 너를 열 수 있고, 시각 X 이전의 모든 카드는 이제 무효야” 같은 내용임
오래된 전자 잠금장치 대부분은 9V 배터리로 동작하고 중앙 서버에 배선되어 있지 않음 - 잠금장치에 네트워크 연결이 없어서 확인할 방법이 없음. 접근 권한은 키 만료와 교체로 관리해야 함
네트워크 연결형 시스템도 있지만 설치 비용이 훨씬 비쌀 수 있음 - 네트워크가 끊기거나 데이터베이스가 손상되어 문이 작동하지 않는 상황은 더 단순하지도, 더 낫지도 않아 보임
- UUID는 변조된 카드로 복제할 수 있음. 내용을 읽기 위해 Key A/B가 필요 없으니 복제 공격이 오히려 더 쉬워질 수 있음
- 전기 없이 공개키 챌린지에 응답할 수 있는지 궁금함
- 프런트 데스크의 카드 발급기가 카드에 메시지를 씀. “301번 잠금장치야, 이 카드는 시각 X부터 너를 열 수 있고, 시각 X 이전의 모든 카드는 이제 무효야” 같은 내용임
-
누군가 이걸 수행하는 Flipper Zero 스크립트를 만드는 건 시간문제처럼 보임
- 더 중요한 건 RFID 취약점이 이제야 대중의 관심을 받기 시작했다는 점임. RFID는 잠금장치에 쓸 수 있는 통신 프로토콜 중 보안이 가장 약한 축이고, 최소한 NFC가 표준이어야 함
RFID 리더기를 깨려는 의도와 지식이 있는 사람은 그런 하드웨어 도구를 만들 수 있음. Flipper Zero가 그런 도구를 제공하나? 그렇긴 함
윤리를 지킬 책임이 사용자에게 있나? 논쟁의 여지는 있지만, 개인적으로는 당연히 그렇다고 봄
누군가 자물쇠 따기 도구 세트를 들고 다니고 사용법을 배운다면 허용될 수 있지 않나? 우리는 자물쇠를 딸 수 있는 사람이 존재한다는 사실을 받아들이고, 미국 주의 80%는 자물쇠 따기 도구의 소지와 합법적 사용을 허용함
- 더 중요한 건 RFID 취약점이 이제야 대중의 관심을 받기 시작했다는 점임. RFID는 잠금장치에 쓸 수 있는 통신 프로토콜 중 보안이 가장 약한 축이고, 최소한 NFC가 표준이어야 함
-
여행할 때 도어 재머를 가지고 다님. 내가 본 호텔 도어락 대부분은 밖에서 열 수 있게 설계되어 있음
도어 재머는 문을 쐐기처럼 고정해 닫힌 상태로 버티게 해줌. 그걸 쓰면 밤에 더 잘 잠- 나도 본능적으로는 그렇게 하고 싶지만, 여행하는 관할권에 따라 직원이 문을 열려다가 샤워 중이거나 Ambien 먹고 자는 중인 당신 때문에 강제로 들어오기로 했다면, 그 손해에 대해 책임을 질 수도 있음