몇 주 전, JerryRigEverything이라는 이름의 YouTube 누군가가 Tapplock Smart Bluetooth 지문 인식 자물쇠의 분해 동영상을 업로드했습니다. 영상에서는 접착 베이스를 고프로(GoPro) 카메라로 고정한 뒤, 드라이버를 이용해 탭락락(Tapplock lock)을 쉽게 열면 탭락(Tapplock) 뒷면 커버를 분리할 수 있는 모습이 나와 있다.
이 영상을 보고 Tapplock 스마트 자물쇠의 보안에 대한 호기심이 생겼습니다. 이 스마트 자물쇠에는 지문 인식, 휴대폰 블루투스 및 모스 부호 잠금 해제 기능이 있지만 얼마나 안전합니까? 이를 통해 Tapplock에 대해 조사한 결과, 마침내 2초 이내에 Tapplock 잠금 해제를 달성했습니다.
Tapplock 스마트 자물쇠는 강화 강철과 내구성이 뛰어난 다이캐스트 Zamak-3 아연 합금으로 만들어졌습니다. Zamak-3 아연 합금은 어린이 장난감, 문 손잡이, 남성용 면도기 등의 다이캐스트 제품에 자주 사용됩니다. 엄밀히 말하면 이 금속 재료는 그다지 강하지 않으며 400°C 이하에서 녹아 변형될 수 있습니다. 자물쇠 몸체 말하자면 이것은 좋은 재료 선택이 아닙니다. Zamak-3을 사용하면 정교해 보이고 견고한 느낌을 주는 고급 주물을 쉽게 만들 수 있으며 안전하고 견고해 보입니다.
Tapplock 스마트 자물쇠는 AES 128비트 암호화 알고리즘을 사용하며 암호화 강도가 매우 높습니다.
이 암호화 강도는 군사 등급과 동일하지만 IoT 해커의 경우 이 대칭 암호화에는 여전히 몇 가지 단점이 있습니다. 특히 여기 Tapplock 지침에는 키 페어링, 교환 및 공유 규정이 없으며 기본 인증조차 없습니다. 보안 지침에 포함되어 있습니다. 따라서 이와 같은 애플리케이션 시나리오에서 AES-128 암호화에는 여전히 단점이 있습니다.
또한 "깨지지 않는 Tapplock은 그다지 안전하고 신뢰할 수 없다"는 등 Tapplock 자물쇠의 보안에 대한 많은 논란이 있습니다. 기사에는 Tapplock 소프트웨어 및 하드웨어에 대한 많은 보안 테스트가 나열되어 있으며 마침내 Tapplock은 그렇지 않다는 것을 발견했습니다. 안전한.
Tapplock은 자사의 자물쇠가 "매우 강력하다"고 공식적으로 주장하지만 실제로는 Abloy Protec 도어 잠금 장치와 비교할 수 없을 것입니다. Tapplock 관계자는 또한 자물쇠가 "거의 깨지지 않는다"고 주장하지만 결국 4인치 볼트 커터로 부러졌습니다. 모든 것이 자랑하기 위한 마케팅 전략인 것 같습니다.
위의 다양한 보안 테스트도 호기심을 불러일으키기 때문에 실제로 테스트하기 위해 Tapplock 스마트 자물쇠를 구입했고 14시간 후에 Tapplock 스마트 자물쇠가 집으로 배달되었습니다. 먼저 JerryRigEverything의 방법에 따라 GoPro 카메라 접착 마운트를 사용하여 Tapplock 후면 커버를 접착했습니다.
완전접착 30분후 접착베이스를 세게 잡아당겼으나 아쉽게도 탭락 뒷커버는 열리지 않았습니다. 알고 보니 뒷커버 내부에는 뒷커버 상단까지 뻗은 스프링 팁이 있는데, 이는 뒷커버가 풀리거나 회전하는 것을 방지하기 위해 특별히 고안된 것입니다. 이 스프링 팁이 손상될 수 있지만 카메라를 베이스에 부착하는 것만으로는 충분하지 않을 수 있습니다. 그런데 JerryRigEverything의 Tapplock 테스트 잠금장치에는 이런 튀어나온 스프링 팁이 없는데 저희가 구매한 Tapplock 테스트 잠금장치에는 이런 스프링 팁이 있어서 저희는 카메라 접착 베이스를 세게 잡아당겨 결국 JerryRigEverything의 뒷커버를 열지 못했습니다. .
이제 저전력 블루투스(BLE)를 테스트해 보았는데, 의외로 이를 통해 놀라운 사실을 발견했습니다. 일반적으로 저는 시간이 많이 걸리고 깊이 있고 창의적인 IoT 해킹 기사를 읽는 것을 좋아하지만 여기에서 바로 요점을 다루지는 않겠습니다. 45분 이내에 Tapplock의 크랙 및 잠금 해제를 완료해야 합니다.
우선 Tapplock 모바일 앱의 HTTP 통신에 전송 암호화 메커니즘이 없다는 사실을 발견했습니다. 이는 고대가 아닌 2018년이라는 점에서 매우 놀랍습니다.
위의 네트워크 분석에서 볼 수 있듯이 BLE를 사용하여 Tapplock에 연결할 때마다 Tapplock 끝으로 "임의의" 문자열이 전송됩니다. 이 문자열은 Tapplock과 통신하기 위한 명령인 것 같습니다.
그러나 Tapplock에 대한 연결 요청을 몇 번이나 수행하더라도 이러한 문자열 데이터는 변경되지 않는다는 점도 주목할 가치가 있습니다. Bluetooth 익스플로잇 도구 gatttool의 다음 명령줄 실행에서 볼 수 있듯이 Tapplock은 재생 공격에도 취약합니다.
Tapplock 모바일 앱을 사용하면 Tapplock 자물쇠를 다른 사람과 공유하거나 특정 기간 내에 사용 권한을 취소할 수 있기 때문입니다. 따라서 테스트 잠금을 다른 사용자와 공유한 후 BLE 통신 데이터를 캡처한 결과 이러한 사용자 간 Tapplock 공유 방법은 일반 단일 사용자의 Tapplock 제어, 즉 Tapplock을 취소한 경우에도 완전히 동일하다는 것을 확인했습니다. 다른 공유 사용자의 권한을 잠금 해제하지만 다른 사용자는 통신 데이터 패킷 캡처를 통해 잠금 해제 인증을 위한 모든 정보를 얻을 수 있습니다. 이 정보는 단일 제어 사용자와 다르지 않은 Tapplock을 인증하고 잠금 해제하는 데 사용할 수 있습니다. 이는 높은 잠금 해제 권한을 가진 다른 사용자를 취소하는 것이 불가능한 Ring Smart Doorbell의 문제와 약간 비슷합니다.
Tapplock 스마트 자물쇠에는 적절한 공장 초기화 메커니즘이 장착되어 있지 않습니다. 계정을 사용하면 해당 자물쇠 정보만 삭제할 수 있으며 해당 잠금 해제 데이터는 삭제할 수 없습니다. 보유된 잠금 해제 데이터는 서버에서 Tapplock으로 전송되거나 서버에서 Tapplock으로 전송됩니다. 따라서 네트워크의 적절한 위치에 있는 공격자가 이러한 잠금 해제 데이터를 가로채서 이 데이터를 사용하여 Tapplock을 간접적으로 잠금 해제할 수 있습니다.
이것은 작은 문제가 아닙니다. 쓸데없는 소리는 그만하세요. 잠금을 해제할 수 있는 것이 핵심입니다. 이제 우리는 이러한 무작위 데이터가 어떻게 잠금을 해제할 수 있는지 분석해야 합니다.
몇 분 간의 조사 및 분석 끝에 Tapplock 자물쇠 잠금 해제 프로세스와 결합된 특정 기능 방법을 발견했습니다.
public void regularPair(String str, byte[] bArr, byte[] bArr2) { bArr = getCMD(CMD_PAIRING_REGULAR, bArr, bArr2); send(str, bArr); str = TAG; bArr2 = new StringBuilder(); bArr2.append("Regular pair called, send "); bArr2.append(BluetoothTool.byteToStr(bArr)); Log.e(str, bArr2.toString()); }
이 방법에서는 두 개의 더블 바이트 배열이 포함된 고정 명령 CMD_PAIRING_REGULAR가 Tapplock 자물쇠. 이러한 두 개의 더블바이트 배열은 다음과 같은 해당 정보를 읽습니다.
this.bluetoothCenterManager.regularPair(lockMacAddress, BluetoothTool.strToBytes(lockInfo.getKey1()), BluetoothTool.strToBytes(lockInfo.getSerialNo()));
유효한 정보는 Key1과 SerialNo입니다. 어디서 전송됩니까? 자물쇠가 처음 페어링될 때 위 정보는 keyAndSerialNo 메서드를 통해 Tapplock 자물쇠의 Bluetooth MAC 주소로 간접적으로 변환되는 것으로 나타났습니다. keyAndSerialNo 메서드는 다음과 같습니다.
public static String keyAndSerialNo(String str, String str2) { str = AndroidTool.md5(str.toUpperCase()).toUpperCase(); if (str2.equals(KEY_ONE) { str = str.substring(0, 8); } else if (str2.equals(KEY_TWO) { str = str.substring(8, 16); } else if (str2.equals(SERIAL_NO) { str = str.substring(16, 24); } return str; }
여기에서는 Tapplock 자물쇠의 Bluetooth MAC 주소를 대문자로 사용한 다음 이를 MD5 해시 값으로 변환합니다. 이 중 0~7자는 key1이고 16~23바이트는 SerialNo입니다. 일련 번호.
예, Tapplock을 잠금 해제하기 위해 알아야 할 유일한 것은 Tapplock의 Bluetooth MAC 주소이며, 이 MAC 주소는 Tapplock에 의해 브로드캐스트됩니다. 나는 보안이 취약한 것에 즉시 충격을 받았기 때문에 Tapplock을 하나 더 주문하고 Tapplock 자물쇠와 해당 앱의 진위 여부를 확인했습니다.
마지막으로 Tapplock 자물쇠를 스캔하고 잠금을 해제하는 공격 스크립트를 작성했습니다. 이 스크립트는 고급 지식이나 기술 없이도 2초 이내에 모든 Tapplock을 잠금 해제할 수 있습니다. 나중에 이 스크립트를 Android 애플리케이션에 이식하여 전체 잠금 해제 작업을 더욱 편리하고 빠르게 만들겠습니다. 전반적으로 Tapplock 자물쇠를 잠금 해제하는 데 드는 비용은 매우 낮습니다. Tapplock 스마트 자물쇠의 보안은 부끄럽습니다. 이러한 접근 방식은 소비자에게 무례하며 할 말이 없습니다.
Tapplock은 잠금 볼트에 전통적인 방법을 채택하여 잠금 장치의 물림 수준을 한 단계 더 확장하여 공격자가 래치를 열 수 없도록 합니다. 다만, 탭락의 바이트 오프닝은 상대적으로 얇으며, 관절압력점에서 조금 떨어져 있습니다.
또한 12인치 볼트 커터를 사용하면 Tapplock 볼트를 10초 이내에 절단할 수 있습니다.
스마트 자물쇠인 Tapplock의 보안 메커니즘은 실제로 매우 clean , 이는 공격자가 잠금 장치를 열지 못하도록 방지하는 것입니다. 잠금 장치의 보안 수준은 자체 위협 모델 설계에 따라 달라집니다. 올바른 보안 설계는 잠금 장치에 대한 공격자의 공격 속도를 어느 정도 늦출 수 있으며 악용될 수 있는 보안 허점이 없습니다. IoT 시대의 스마트 자물쇠인 Tapplock의 보안은 걱정스러울 뿐입니다. 2초 이내에 잠금 해제가 가능합니다. 하지만 제가 이 문제를 Tapplock 관계자에게 보고했을 때 그들은 실제로 다음과 같은 답변을 받았습니다.
"메모해 주셔서 감사합니다. 우리는 이러한 메모에 대해 잘 알고 있습니다."
보고 알림을 보내주셔서 감사합니다. 우리는 이미 이러한 문제를 알고 있습니다.
아 알고 보니 탭락 관계자들은 이러한 문제를 인지했음에도 불구하고 수리에 실패했을 뿐만 아니라, 소비자에게 알리지 않은 채 이러한 자물쇠를 계속 판매한 것으로 드러났습니다. 이것은 나에게 완전히 충격을 주었다.
위 내용은 블루투스 기능을 이용해 2초 안에 Tapplock 스마트 자물쇠를 공격하고 잠금 해제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!