指紋認証を使用してマイクロコントローラベースのIoTデバイスのセキュリティを高める方法

著者 Bill Giovino

DigiKeyの北米担当編集者の提供

設計者は製品やシステムのセキュリティを確保しなければならない立場に置かれており、特にそれらがモノのインターネット(IoT)に接続される場合にその傾向はますます強まります。よく騒ぎになるハッキングでは、パスワードの脆弱性や、個人識別番号(PIN)コードがコピーされやすく、近距離無線通信(NFC)ベースのバッジも簡単に盗まれることが示されています。設計者はセキュリティ管理を厳しくすると同時に、コストと設計時間を抑えなければなりません。指紋識別(ID)は、この両方の目標を成し遂げる方法の1つです。

しかし、指紋によるセキュリティは一般的に実装が困難でした。マイクロコントローラまたはデジタルシグナルプロセッサ(DSP)を活用して指紋スキャニングシステムを最初から設計するための各種の技術には、指紋識別ファームウェア、データ処理/コンディショニング、さらにホスト通信などが含まれますが、これらは複雑になりがちで学習には努力も必要です。

しかし今では、指紋認識システムのあらゆる難しい作業に対応する既製のハードウェアとソフトウェアが登場しています。この記事では、まず指紋認識の基本について説明し、さらにDFRobotから提供されている自己完結型の指紋登録/検証ユニット、SEN0188をご紹介します。この製品は、ユニバーサル非同期レシーバ/トランスミッタ(UART)インターフェースを備えたあらゆるホストマイクロコントローラにインターフェースできます。

さらに、SEN0188を使用して、IoTネットワークを使用する施設に指紋認証セキュリティを加える方法をご紹介します。これにより、ハッキングや物理的な攻撃に対する施設の抵抗力が高まります。

指紋識別の基礎

指紋は、両手の指にある皮膚隆線の模様で、これにより物を簡単に掴めるようになります。部分的にDNAに起因しながら偶然の産物でもある指紋は、その模様が特定の個人に固有のものであり、2人の人物にまったく同じ指紋が見られる確立はほぼ皆無と言えます。指紋は一卵性双生児でも異なります。このため、指紋識別は高度なセキュリティシステムに適する優れた検出方法なのです。

指紋識別システムは、登録と検証の2つの操作に分けられます。指紋登録はきれいな指紋を認識し、後からそれを使用できるように保存するプロセスです。指紋は専用スキャナで1回または数回スキャンしデジタル化されます。デジタル化された指紋を分析し、有効な指紋であることを確認します。有効な指紋は、ID番号、名前、バッジ番号などの個人識別情報とともに、フラッシュメモリやEEPROMなどの不揮発性メモリに記憶します。指紋が無効であれば、指を再度スキャンする必要があります。

指紋の検証は、きれいな指紋をスキャンして、不揮発性メモリに保存されている指紋のデジタルデータと照合するプロセスです。指紋スキャンシステムは、スキャンされた指紋がメモリに保存済みの有効な指紋と一致するかどうか、または一致が無効かをホストに示します。

入場セキュリティとIoT

IoTは、スタンドアロンだった多くのシステムをネットワーク化します。その中には学校や企業など中程度のセキュリティを必要とするシステムもあります。しかし、水処理施設や電力網などの重要なシステムでは、もし違法に侵入されると壊滅的な影響が広がる可能性があるため、より高度なセキュリティが必要になります。そのようなシステムの場合、開発者は最小限のコストでセキュリティを確保する最善の方法を常に検討します。というのも、多くのIoTデバイス自体が安価を目的にしているためです。このようなケースでは、指紋識別システムをセキュリティバッジとともに簡単に追加できます。

これらのネットワークでのIoTの利点は、指紋のスキャン結果の通知をネットワーク経由で送信できることです。不正アクセスを検出したときは、アラーム音を発生させるか、より厳しい対応が必要な場合はIoTネットワークがすべてのシステムをロックダウンして、関係機関への電話連絡もできます。

セキュリティ認証用の指紋の登録は、指紋が正しく登録されたかを確認する専門技術者やセキュリティ担当者の立ち会いのもとで最も適切に行うことができます。登録は、スキャナと指紋の両方がきれいな状態で行う必要があります。専門スタッフはスキャンされた個人の本人確認を確実に行う必要があります。正しく登録したら、セキュリティ担当者が個人の名前や従業員ID番号など他の情報も追加できます。

指紋スキャンシステムを最初から設計する場合に必要な各種の技術は、予算が限られている設計者にとって非常に高額なものでした。今では、DFRobotが提供する自己完結型の指紋登録/検証用ユニット、SEN0188指紋センサなど、指紋認識システムのあらゆる面倒な作業が可能なハードウェアが市販されています(図1)。

図1:DFRobotのSEN0188指紋センサユニットは、指紋の登録/検証に必要なすべてのハードウェア/ファームウェアを備えており、UARTインターフェース経由でマイクロコントローラと通信します。(画像提供:DFRobot)

SEN0188は3.8~7.0Vで動作し、最大130mA(ミリアンペア)を消費します。動作温度範囲は-20°C~+60°Cと広く、80%までの相対湿度に耐えられるので、さまざまな屋外環境に適します。

図1では、ユーザーは左側の光学式指紋センサに自分の指を置きます。登録または検証用に指紋の画像を取得する時間は1秒未満です。それぞれの指紋は、内蔵フラッシュメモリに512バイトのテンプレートファイルとして保存されます。SEN0188の内蔵フラッシュメモリには最大1000件の指紋を保存できます。

SEN0188のUARTにはセンサの下側からアクセスできます(図2)。

図2:DFRobotのSEN0188指紋センサの下側にはUART接続端子があります。(画像提供:DFRobot)

SEN0188の電源投入時のデフォルトのボーレートは57600bps(ビット/秒)です。ボーレートは9600bps~115200bpsの間で調整できます。UART接続では以下の信号が使われます。

ピン番号 信号名 方向 説明
1 VTOUCH - 接続なし
2 SOUT - 接続なし
3 VIN 入力 電源入力(3.8~7.0V)
4 TD (Tx)
OUT UART送信データ出力
5 RD (Rx)
入力 UART受信データ入力
6 GND   信号グランド

表1:SEN0188のピン配置は、非同期UART接続を使用してホストと通信します。(表提供:DFRobot)

UARTインターフェースは、PCやラップトップにあるDFRobotソフトウェアにも接続できるので、指紋識別システム開発の登録/検証ファームウェアのデバッグ作業などに役立ちます。

マイクロコントローラシステムでのDFRobot SEN0188の使用

自己完結型マイクロコントローラシステムで使用する場合、SEN0188は十分に高機能なマイクロコントローラと、センサ上の指紋の状態を可視化するインジケータの両方を備えた基板とインターフェースする必要があります。STMicroelectronicsSTM32F7308-DK Discoveryキットは、自己完結型の指紋識別システムに必要なあらゆる機能を備えています。このキットは、Arm® Cortex®-M7コアに基づく高機能なSTM32F730I8K6マイクロコントローラを使用しています。基板には、高速クロック用に25MHz(メガヘルツ)発振器と低速クロック用に32.768kHz(キロヘルツ)発振器が実装されています。64KB(キロバイト)オンチッププログラムフラッシュメモリ、追加の64MB(メガバイト)外付けフラッシュメモリ、および256KBのシステムSRAMによりサポートされます。

ペリフェラルのサポートと通信用に、3つのI2Cおよび5つのSPIインターフェースを含む複数シリアルインタフェースを備えています。また、4つのUART/USARTを備え、SEN0188と簡単に通信できます。3.6Vの電力供給により、STM32F730I8K6マイクロコントローラはDFRobotの指紋センサのTTLロジックレベルインターフェースとの互換性を備えます。

Discoveryの基板には、Arduino™互換のドーターボードが付属しています(図3)。この基板は開発時に役立つこともありますが、この指紋識別アプリケーションには不要なのでメインボードから切り離してかまいません。

図3:STMicroelectronicsのSTM32F7308-DK Discoveryの基板には、自己完結型の指紋認証システムに必要なあらゆる機能が含まれています。左上に装着されている基板はArduinoドーターボードをサポートし、右下のESP-01コネクタはあらゆる互換ESP8266基板をサポートします。(画像提供:STMicroelectronics)

Discoveryの基板には240 x 240ピクセルのTFT LCDディスプレイも含まれており、指紋の合否を可視化して示すために使用できます。

STM32F7308-DK Discoveryキットには、Wi-Fiネットワークとの接続用に業界標準のESP8266 Wi-Fi基板に接続するためのソケットがあります。たとえば、SparkFun ElectronicsWRL-13678はESP8266互換の基板です(図4)。

図4:SparkFun ElectronicsのWRL-13678はESP8266互換の基板で、ESP-01ヘッダコネクタを備えています。STMicroelectronicsのDiscoveryの基板に差し込むと、Wi-Fiに容易にアクセスできます。(画像提供: SparkFun Electronics)

この基板は、Discoveryの基板右下にあるESP-01コネクタ(図3)に差し込むことができます。WRL-13678には独自のオンボードアンテナがあり、Discoveryの基板を2.4GHz(ギガヘルツ)Wi-Fiネットワークに簡単に接続できます。

Wi-Fiネットワーク化されたIoTセキュリティシステムでは、あらゆるセキュリティアクセスまたはアクセス拒否をあらゆるIoTノードに送信できます。これは、厳しく制限された他の区域やシステムへのアクセスを可能にするのに役立ちます。たとえば、施設内の厳しく制限された区域への入場が要求されたとき、どの入口でもその情報で入場した人物の記録が指紋スキャナになく、スキャナによる報告の形跡もなければ、システムはセキュリティ違反の可能性がある要求と判断し、適切に対処できます。

このセキュリティレベルを備えた施設では、施設からの退出の際にも本人確認を要求することが稀ではありません。これにより、すべての入退場を記録できる他にも、無許可で入場した人物を建物から出さずにセキュリティ担当者に通報することもできます。

指紋セキュリティの実装

SEN0188センサは、UARTインターフェース経由でホストのSTMicroelectronicsのDiscovery基板と通信しますが、この通信に単純なコマンドセットを使用します。合計22のコマンドがあり、指紋の登録/検証/削除、各種の検索コマンド、内蔵フラッシュメモリとの直接読み書き、ステータスの読み込み、センサのセキュリティ設定などが含まれます。センサは、保存済みの指紋ビットマップ画像を取得してそれをホストに送信し、Discovery基板がそれをTFT LCDに表示することもできます。

指紋の登録は、指紋識別ステーションでPINまたはパスワードを使用して有効にできます。ただしより安全な登録方法は、ネットワーク上のいずれかの場所、たとえば保安ステーションなどから、Discovery基板のIoTエンドポイントにコマンドを送信して登録を有効にする方法です。別の方法には、電話やタブレットなどのモバイル機器を使用して登録を承認する方法もあります。正しく登録できたかどうかも、モバイル機器で確認できます。

SEN0188の光学式指紋センサ部分にはLEDバックライトがあり、OpenLEDコマンドとCloseLEDコマンドを使用してホストから簡単にオン/オフできます。これにより、指紋識別システムが指紋を受容できるときに限り指紋センサを点灯できるので、安全な環境を確保するために便利です。入場を制限するセキュリティイベントが発生した場合には、関係者でさえも許可されないことを示すように、指紋識別システムのバックライトをオフにできます。

SEN0188のデフォルトのUARTフレームでは、スタートビット1、データビット8、ストップビット1を使用します。データ最下位ビット(LSB)が最初に送信されます。電源投入時は、SEN0188は自己テストの初期化と実行を300ms(ミリ秒)で行います。次に、1バイトの55hをホストに送信し、動作可能な状態を示します。ホストがGetEchoコマンドをセンサに送信し、55h確認コードを要求する場合もあります。ホストがこのバイトを受信しない場合は、SEN0188の動作異常、SEN0188とホスト間の通信の中断、またはSEN0188への電力供給がないことを示していると考えられます。

SEN0188は、指紋認証のための安全な環境を実現できるように設計されており、パスワード保護など多くのセキュリティ機能を備えています。出荷時のデフォルトの4バイトのパスワードは00000000hですが、指紋システムを現地に設置する前にこれを変更する必要があります。パスワードは、センサのパスワード設定コマンドSetPwdを使用してセンサ内のフラッシュに保存されています。

セキュリティ強化のために、このセンサコマンドセットにはパスワード読み取りコマンドは含まれません。センサのパスワードを喪失すると、SEN0188センサは使用できなくなり、センサの回復または保存済み指紋の復元を可能にするハードウェアリセットやソフトウェアリセットはありません。

センサにはデフォルトの4バイトアドレスFFFFFFFFhがあり、内蔵フラッシュに保存されています。これは、SetAddrコマンドを使用して変更できます。

すべての指紋認証と指紋の記憶はセンサの内部で行われます。これにより、保存済みの指紋や検証プロセスの改ざんを防止できます。

初めて使用する前に、指紋スキャナに保存されているすべての指紋を削除することが、セキュリティ対策として賢明な方法です。これを行うにはEmptyコマンドを使用します。このコマンドで、センサの内蔵フラッシュメモリに保存されているすべての指紋テンプレートが削除されます。

まとめ

入場セキュリティは、組み込みシステムやIoTシステムにとってますます重要な用途になりつつありますが、コスト、簡潔さ、セキュリティ実効性の適切なバランスをとりながら効果的に実現する必要があります。この記事では、DFRobotのSEN0188指紋センサを使用することで、指紋識別システムのプロトタイプ作成、開発を迅速に行い、制限区域への入場セキュリティを実現できることを示しました。TFT LCDディスプレイを備えるSTM32F7308-DK DiscoveryキットやSparkFun ElectronicsのWRL-13678 Wi-Fi基板と接続することで、簡潔でしかも信頼性が高く使いやすいセキュリティシステムを開発できます。

DigiKey logo

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

著者について

Image of Bill Giovino

Bill Giovino

Bill Giovino氏は、シラキュース大学のBSEEを持つエレクトロニクスエンジニアであり、設計エンジニアからフィールドアプリケーションエンジニア、そしてテクノロジマーケティングへの飛躍に成功した数少ない人の1人です。

Billは25年以上にわたり、STMicroelectronics、Intel、Maxim Integratedなどの多くの企業のために技術的および非技術的な聴衆の前で新技術の普及を楽しんできました。STMicroelectronicsでは、マイクロコントローラ業界での初期の成功を支えました。InfineonでBillは、同社初のマイクロコントローラ設計が米国の自動車業界で勝利するように周到に準備しました。Billは、CPU Technologiesのマーケティングコンサルタントとして、多くの企業が成果の低い製品を成功事例に変えるのを手助けしてきました。

Billは、最初のフルTCP/IPスタックをマイクロコントローラに搭載するなど、モノのインターネットの早期採用者でした。Billは「教育を通じての販売」というメッセージと、オンラインで製品を宣伝するための明確でよく書かれたコミュニケーションの重要性の高まりに専心しています。彼は人気のあるLinkedIn Semiconductorのセールスアンドマーケティンググループのモデレータであり、B2Eに対する知識が豊富です。

出版者について

DigiKeyの北米担当編集者