独自の QR コードでドアのロックを解除する
ホームページホームページ > ブログ > 独自の QR コードでドアのロックを解除する

独自の QR コードでドアのロックを解除する

Aug 14, 2023

QR コードのサイズは 21x21 (行と列) から 177x177 までです。 そのグリッド内の各正方形は、位置、位置合わせ、およびエラー補正の正方形が差し引かれたビットを表します。 これらの減算を無視すると、QR コードは 441 ビットから 31,329 ビット (約 3.9 KB) まで保存できることになります。 したがって、最小の QR コードでも一意の 256 ビット暗号化キーを表すことができます。 TheIoTProject のエンジニアはその事実を利用して、QR コードを利用した独自のドア ロック システムを構築しました。

実際には、このシステムは、多くの人がオフィスに入るために使用する RFID カード スキャナーとよく似た働きをします。 これらのシステムの問題は、RFID カードの一意の ID が静的であり、セキュリティ上の脆弱性が発生することです。 悪意のある者が認証された RFID カードのクローンを作成できれば、ドアのロックを解除できます。 この QR コード システムは、使用するたびに新しい一時的な QR コードを生成できるという点で異なります。 誰かがドアのロックを解除する必要があるときは、アプリまたは Web サイトを使用して必要な QR コードを生成します。 これらでは、セキュリティを強化するために 2 要素認証が必要になる場合があります。 ユーザーが QR コードを使用してドアのロックを解除するか、一定時間が経過すると、システムはその QR コードを無効にし、悪意のある者がコピーして使用できないようにします。

有効な QR コードは SHA256 として暗号化されたアクセス コードを表すため、暗号化技術によるブルート フォースやリバース エンジニアリングはほぼ不可能になります。 考えられる脆弱性は、サーバーからユーザーのアプリへのコードの送信です。 しかし、標準的な無線暗号化と適切な IT 実践がそれを阻止し、有効な QR コードの寿命が限られているため、そのような攻撃の有用性は制限されます。

このシステムを実証するために、チームは、Raspberry Pi シングルボード コンピューター、USB QR コード スキャナー、および電子ロックを切り替えることができるリレー モジュールで構成される単純な実装をまとめました。 これはオープン ソース システムであるため、TheIoTProject GitHub ページでコードと詳細を調べることができます。