数週間前、JerryRigEverything という名前の人が Tapplock Smart Bluetooth 指紋認証南京錠の分解ビデオを Youtube にアップロードしました。このビデオでは、粘着ベースを GoPro カメラで固定し、ドライバーを使用してタップロック ロックを簡単に開けることで、タップロック バック カバーを取り外すことができることを示しています。
それは少し信じられないことです。このビデオは、Tapplock スマート南京錠のセキュリティについて私の好奇心を呼び起こしました。このスマート南京錠には、指紋認識、携帯電話の Bluetooth、モールス信号のロック解除機能が備わっています。便利で、安全性はどのくらいですか? ?そこからTapplockについて研究を重ね、最終的に2秒以内にTapplockのロック解除を達成することができました。
Tapplock スマート南京錠は、硬化鋼と耐久性のあるダイカスト Zamak-3 亜鉛合金で作られています。 Zamak-3 亜鉛合金は、子供のおもちゃ、ドアハンドル、男性用カミソリなどのダイカスト製品によく使用されますが、厳密に言うと、この金属材料は強度があまり高くなく、400°C 以下で溶けたり変形したりする可能性があります。強力なロック 全体的に、これは適切な材料の選択ではありません。 Zamak-3 を使用すると、見た目が絶妙で重厚感があり、安全で頑丈に見える優れた鋳物を簡単に作成できます。
Tapplockスマート南京錠はAES 128ビット暗号化アルゴリズムを使用しており、暗号化強度は非常に高いです。
この暗号化強度は軍用レベルと同等ですが、IoT ハッカーにとって、この対称暗号化にはまだいくつかの欠点があり、特にここでの Tapplock の手順ではキーがまったくありません。 、共有、さらには基本認証さえもセキュリティ手順には含まれていません。したがって、このようなアプリケーション シナリオでは、AES-128 暗号化には依然として欠点があります。
さらに、Tapplock 南京錠のセキュリティについては、多くの論争があります。たとえば、「壊れない Tapplock は、それほど安全で信頼できるものではない」などです。この記事では、Tapplock ソフトウェアとハードウェアに関する多くのセキュリティ テストがリストされており、最終的には、タップロックはそれほど安全ではないということ。
Tapplock は、自社の南京錠が「非常に強力」であると公式に主張していますが、実際には、おそらく Abloy Protec のドア ロックとは比較にならないでしょう。タップロックの関係者らも、南京錠は「ほぼ壊せない」と主張しているが、最終的には4インチのボルトカッターで壊されたという。すべては自慢のためのマーケティング戦略のようです。
上記のさまざまなセキュリティ テストも私の好奇心を刺激したので、Tapplock スマート南京錠を購入して実際にテストしてみます。価格は 80 ユーロ、14 時間です。その後、Tapplock スマート南京錠が自宅に届きました。まず、JerryRigEverything の方法に従って、GoPro カメラ粘着マウントを使用して Tapplock バック カバーを接着しました。
30 分間完全に接着した後、接着ベースを強く引っ張りましたが、残念ながらタップロックの裏蓋を開けることができませんでした。裏蓋の内側には裏蓋の上部まで伸びるバネの先端があり、裏蓋が緩んだり回転したりしないように特別に設計されていることがわかりました。このバネの先端が壊れている可能性もありますが、カメラを頼りにベースに接着するだけでは十分ではない可能性があります。しかし、JerryRigEverything の Tapplock テスト ロックにはこの突き出たバネの先端がありませんが、私たちが購入した Tapplock のテスト ロックにはこのバネの先端があるため、カメラの粘着ベースを強く引っ張ってしまい、JerryRigEverything の方法ではついに開けることができませんでした。 。
次に、Bluetooth Low Energy (BLE) をテストに使用します。予期せぬことに、これによって驚くべきことがいくつか見つかりました。一般に、私は時間のかかる詳細なクリエイティブな IoT ハッキング記事を読むのが好きですが、ここでは迂回せずに本題に入りましょう。 45 分以内に、Tapplock のクラックとロック解除を完了する必要があります。
まず、Tapplock モバイル APP の HTTP 通信には、通信暗号化機構が存在しないことが判明しましたが、これは古代ではなく 2018 年のことであり、まったく驚くべきことでした。
上記のネットワーク分析からわかるように、BLE を使用して Tapplock に接続するたびに、「ランダムな」文字列が Tapplock 側に送信されます。これらの文字列は Tapplock に関連しているようです。 . 通信するためのコマンド。
ただし、Tapplock への接続リクエストを何度実行しても、これらの文字列データは変更されないことにも注意してください。次の Bluetooth エクスプロイト ツール gatttool のコマンド ライン実行からわかるように、Tapplock はリプレイ攻撃に対して脆弱でもあります。
Tapplock モバイル APP を使用すると、ユーザーは Tapplock 南京錠を他の人と共有したり、一定期間内に使用許可を取り消したりすることができるためです。そこで、他のユーザーとテスト ロックを共有し、BLE 通信データをキャプチャしたところ、ユーザー間で Tapplock を共有するこの方法は、通常の単一ユーザーによる Tapplock の制御と完全に同じであることがわかりました。他の共有ユーザーの権限をロック解除することはできますが、他のユーザーは通信データ パケット キャプチャを通じて認証ロックを解除するためのすべての情報を取得でき、この情報を使用して Tapplock を認証およびロック解除できます。これは単一の制御ユーザーと何ら変わりません。これは、高いロック解除権限を持つ別のユーザーを取り消すことができないという、Ring スマート ドアベルの問題に似ています。
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()); }
このメソッドでは、Tapplock南京錠が送信される 2 つの 2 バイト配列を含むコマンド CMD_PAIRING_REGULAR を修正しました。これら 2 つの 2 バイト配列は、次の対応する情報を読み取ります:
this.bluetoothCenterManager.regulatorPair(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 です。 bytes は SerialNo のシリアル番号です。
はい、Tapplock のロックを解除するために知っておく必要があるのは、Tapplock の Bluetooth MAC アドレスだけです。この MAC アドレスは Tapplock によってブロードキャストされます。私はすぐにこのセキュリティの貧弱さにショックを受け、別の Tapplock を注文し、Tapplock 南京錠とそのアプリが本物であることを確認しました。
最後に、Tapplock の南京錠をスキャンしてロックを解除する攻撃スクリプトを作成しました。このスクリプトは、高度な知識やスキルがなくても、2 秒以内に Tapplock のロックを解除できます。後で、このスクリプトを Android アプリケーションに移植して、ロック解除操作全体をより便利かつ高速にする予定です。全体として、Tapplock 南京錠のロックを解除するコストは非常に低くなっています。 Tapplock スマート南京錠の安全性は恥ずべきもので、このやり方は消費者に対して失礼であり、言葉を失います。
タップロックは、アンチシミングであると主張しており、ロックボルトに従来のアプローチを使用しており、ロックポートへの食い込みをさらにレベルアップしています。攻撃者がラッチをシミングするのを防ぎます。しかし、タップロックの咬合口は比較的薄く、関節の圧力点からやや離れています。
また、12 インチのボルト カッターを使用すると、タップロック ボルトを 10 秒以内に切り出すことができます:
スマート南京錠としての Tapplock のセキュリティ メカニズムは実際には非常に明確で、攻撃者が錠を開けるのを防ぎます。ロックのセキュリティ レベルは、ロック自体の脅威モデルの設計によって決まります。セキュリティ設計が適切であれば、ロックに対する攻撃者の攻撃をある程度遅らせることができ、悪用されるセキュリティの抜け穴はなくなります。 IoT時代のスマート南京錠としてセキュリティが気になるTapplockですが、2秒以内に解錠可能です。しかし、この問題を Tapplock の担当者に報告したところ、彼らは実際に次のような返事をくれました。注: 報告のリマインダー、私たちはこれらの問題を認識しています。
ああ、Tapplock の関係者はこれらの問題を認識していながら、修理しなかっただけでなく、消費者に知らせずにこれらのロックを販売し続けたことが判明しました。これには本当にショックを受けました。
以上がBluetooth 機能を使用して Tapplock スマート南京錠を 2 秒以内に攻撃してロック解除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。