自律アクセス制御システムの問題 - 予想外の場所

全てにおいて良い日。 私がこの研究を行うきっかけとなった背景から始めますが、その前に警告しておきますが、すべての実際的な行動は統治機構の同意を得て実行されました。 この素材を使用して、立ち入る権利なしに立ち入り禁止区域に入ろうとする試みは犯罪となります。

すべては、テーブルを掃除しているときに、誤って RFID エントランス キーを ACR122 NFC リーダーの上に置いたときに始まりました。Windows が新しいデバイスを検出する音を再生し、LED が緑色に変わったときの私の驚きを想像してみてください。 この瞬間まで、私はこれらのキーが Proximity 標準でのみ機能すると信じていました。
自律アクセス制御システムの問題 - 予想外の場所
しかし、読者がそれを見たということは、キーが ISO 14443 標準 (別名近距離無線通信、13,56 MHz) の上位プロトコルの 1 つを満たしていることを意味します。 鍵セットを完全に処分し、玄関の鍵を携帯電話に保存する機会があったため、掃除はすぐに忘れられました(アパートには長い間電子錠が装備されていました)。 調査を開始したところ、プラスチックの下に Mifare 3k NFC タグが隠されていることがわかりました。これは企業バッジや交通カードなどと同じモデルです。 セクターの内容に侵入する試みは最初は成功しませんでしたが、最終的にキーが解読されたとき、XNUMX番目のセクターのみが使用され、チップ自体のUIDがその中に複製されていることが判明しました。 あまりにも簡単そうに見えて、実際その通りでした。すべてが計画通りに進んでいたら記事はありません。 それで、鍵のもつを受け取りました。その鍵を同じ種類の別の鍵にコピーする必要がある場合は問題ありません。 しかし、タスクはキーをモバイルデバイスに転送することでしたので、それを実行しました。 ここから楽しいことが始まりました - 私たちは電話を持っています - iPhone SE インストールされた状態で iOS 13.4.5 ベータ版ビルド 17F5044d NFC を自由に操作するためのいくつかのカスタム コンポーネント - いくつかの客観的な理由により、これについては詳しく説明しません。 必要に応じて、以下で説明する内容はすべて Android システムにも適用されますが、いくつか簡略化されています。

解決すべきタスクのリスト:

  • キーの内容にアクセスします。
  • デバイスによってキーをエミュレートする機能を実装します。

前者ではすべてが比較的単純でしたが、後者では問題が発生しました。 エミュレータの最初のバージョンは動作しませんでした。 この問題はすぐに発見されました。エミュレーション モードのモバイル デバイス (iOS または Android) では、UID は動的であり、画像に何が組み込まれているかに関係なく、UID は変動します。 XNUMX 番目のバージョン (スーパーユーザー権限で実行) では、選択したバージョンのシリアル番号が厳密に固定され、ドアが開きました。 しかし、私はすべてを完璧にやりたかったので、Mifare ダンプを開いてエミュレートできる完全なバージョンのエミュレーターをまとめることにしました。 突然の衝動に負けて、セクターキーを任意のものに付け替えてドアを開けてみた。 そして彼女は… オープンしました! しばらくして、開店していることに気づきました 任意の 元のキーが合わなかったドアにも、このロックが付いています。 これに関連して、完了すべきタスクの新しいリストを作成しました。

  • キーの操作を担当するコントローラーの種類を確認する
  • ネットワーク接続と共通基盤があるかどうかを理解する
  • 事実上判読不可能なキーがなぜ普遍的なものになったのかを知る

管理会社のエンジニアに話を聞いたところ、シンプルな Iron Logic z5r コントローラーは外部ネットワークに接続せずに使用されていることが分かりました。

CP-Z2 MF リーダーと IronLogic z5r コントローラー
私には実験用の器具一式が与えられました。

自律アクセス制御システムの問題 - 予想外の場所

ここから明らかなように、システムは完全に自律的であり、非常に原始的です。 最初はコントローラーが学習モードになっているのかと思いました。つまり、コントローラーがキーを読み取り、メモリに保存し、ドアを開けるということです。このモードは、すべてのキーを記録する必要がある場合、たとえば、コントローラーを交換する場合に使用されます。アパートの建物に閉じ込める。 しかし、この理論は確認されていません。このモードはソフトウェアでオフになっており、ジャンパーは動作位置にあります。それでも、デバイスを起動すると、次のことがわかります。

デバイス上のエミュレーション プロセスのスクリーンショット
自律アクセス制御システムの問題 - 予想外の場所
...そしてコントローラーはアクセスが許可されたことを知らせます。

これは、コントローラーまたはリーダーのソフトウェアに問題があることを意味します。 リーダーをチェックしてみましょう - iButton モードで動作するので、Bolid セキュリティ ボードを接続しましょう - リーダーからの出力データを表示できるようになります。

ボードは後で RS232 経由で接続されます
自律アクセス制御システムの問題 - 予想外の場所

複数のテストの方法を使用すると、認証が失敗した場合にリーダーが同じコードをブロードキャストすることがわかります: 1219191919

状況は明らかになり始めていますが、現時点では、なぜコントローラーがこのコードに肯定的に応答するのかはわかりません。 データベースがいっぱいになったとき、偶然または意図的に他のセクターキーを持つカードが提示されたとき、リーダーがこのコードを送信し、コントローラーがそれを保存したという仮定があります。 残念ながら、コントローラ キー データベースを調査できる IronLogic の専有プログラマはいませんが、問題が存在するという事実に注意を向けることができれば幸いです。 この脆弱性への対処方法のビデオデモが利用可能です リンク.

PS ランダム追加理論は、クラスノヤルスクのあるビジネスセンターでも同じ方法を使用してドアを開けることができたという事実によって反対されます。

出所: habr.com

コメントを追加します