電子ペーパーディスプレイを使って重要なIoTノードの致命的なエラーとセキュリティ侵害を示す

著者 Bill Giovino

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

モノのインターネット(IoT)ノードおよび産業用IoT(IIoT)ノードは、セキュリティ強化が絶えず行われるシステムで利用されており、そのようなシステムではネットワーク上にある個々のデバイスの機能よりも、ネットワーク全体のセキュリティと安全性が重視されます。これは、IoTノードの侵害が検出された場合または回復不能なファームウェアエラーが万一発生した場合、ノードにとって最も安全な対処は、実際上できるだけ早くノードをパワーダウンし、潜在的に危険な状況に陥らないようにノードとネットワークを保護することである、ということを意味します。

しかし、ノードをパワーダウンすると、揮発性メモリの内容がすべて失われます。デバッグデータをEEPROMやフラッシュなどの不揮発性メモリに保存するには時間や電力を消費し、潜在的な損害のリスクが高まります。さらに、電源投入シーケンスも侵害されていれば、パワーアップ時にデータを読み込んでも信頼できるデータを得られないような状況までシステムが毀損されている場合もあります。

この記事では、電子ペーパーディスプレイ(EPD)をIoTノードまたはIIoTノードに簡単に接続して最後の既知のエラーを表示する方法について説明します。これにより、パワーダウンイベントの原因を視覚的に示すことで、技術者は適切な対策を講じることができます。さらに記事では、Pervasive DisplaysおよびDisplay Visionsの電子ペーパーディスプレイの例を取り上げ、これらのディスプレイをマイクロコントローラに接続して電力を(ほぼ)消費せずに診断情報を提示するように構成する方法について解説します。

高度なセキュリティのIoTおよびIIoTノード

高度化し続けるセキュリティメソッドの導入によってホストマイクロコントローラの適切な動作を保証する上で、IoTおよびIIoTノード設計者が負う責任はますます重くなっています。一般的に、防御が必要なセキュリティ脅威には次の3種類があります。

  1. マイクロコントローラのファームウェアの誤動作
  2. センサ、キーパッド、シリアルペリフェラル、または他の外付けデバイスからの無効な入力データ
  3. 悪意ある攻撃者による行為

マイクロコントローラのファームウェアの誤動作は、インストールされているファームウェアのコーディングエラー、誤動作を発生させる無効な計算、またはごく稀に、マイクロコントローラのハードウェア誤動作など、さまざまな理由で発生します。通常は、適切に作成されたファームウェアであれば、サブルーチンや関数への入力をスクラブすることでこれを検出します。ファームウェアがロックまたはループ状態の極端なケースでは、ウォッチドッグのタイムアウトが、エラー制御サブルーチンへの誘導またはマイクロコントローラのハードリセット実施によってファームウェアを回復します。

無効な入力データの場合、たとえば外部センサが誤動作したり改ざんされたりした場合は、アプリケーションコードで適切に処理されない範囲外のデータになる可能性があります。たとえば、制御された居住空間の一室で周囲温度センサが誤って250°F(121℃)というとんでもない高温を記録した場合は、センサの誤動作、あるいは悪意ある不正変更の可能性があります。不注意なファームウェアプログラマは極端な高温測定値に対応するコードを記述していないかもしれず、それにより誤ったデータロギングのような些細なことならまだしも、侵入者をセキュリティ領域にアクセスさせるような重大な事態、または機器の故障や重大な人身事故を引き起こす制御アルゴリズム計算のエラーのような致命的な事案にまで至る可能性もあります。損害をともなう結果には、さまざまなケースが考えられます。

悪意ある攻撃者は、IoTノードをわざと誤動作させるという特徴的な意図がある点で異なります。ハッキング行為による誤動作は、セキュリティ対策によって侵入行為として検出される可能性があります。しかしそのような行為は、ファームウェアの誤動作または無効な外部入力データに見せかけている場合もあります。250°F(121℃)の周囲温度測定値の例で言えば、悪意ある攻撃者が侵入方法を探る目的で、このような高温が測定された場合のファームウェア動作を試していることが原因かもしれません。たとえば、周囲温度の測定値250°Fが誤って火災と判定されれば、ドアのロックが自動的に解除されることも考えられます。

ファームウェア誤動作への対応

どのようなエラー要因であっても、高度なセキュリティのIoTおよびIIoTノード用のマイクロコントローラファームウェアは、フォールトイントレラントであることが必要です。あらゆる故障は、コード化して捕捉する必要があります。サブルーチンと関数への入力をスクラブし、すべてのセンサ入力データを検証する必要もあります。またウォッチドッグタイマは、既知の実行時間に照らして時間がかかりすぎるロックまたはループコードを検出する目的でプログラムする必要があります。

高度なセキュリティのIoTまたはIIoTノードでファームウェアの誤動作が検出された場合は、誤動作が偶然か故意かを問わず、ファームウェアによってそのイベントをできるだけ早急に捕捉する必要があります。一般的な対処には、誤動作を補償する対応が含まれます。常に範囲を超えた誤動作を起こすセンサの場合、ファームウェアは、そのセンサが交換されるまで不良データを補償できるように「リンプモード」を備えている場合もあります。不正な結果を返すファームウェアルーチンは、再初期化することもできます。多くの場合、ネットワーク全体にエラーコードが送信され、ネットワークホストに問題が通知されます。

しかし、高度なセキュリティのIoTまたはIIoTノードの一部には、補償や対策ができない、またはすべきでない特別な誤動作カテゴリがあります。その中には、物理的な不正変更の検出、内部のチェックサム障害、一部の組み込みセルフテスト(BIST)障害、および毀損されたファームウェアまたはハッキングされたシステムが原因のあらゆる障害が含まれます。これらの高度なセキュリティの状況では、ノードを直ちに、しかも安全にパワーダウンすることが唯一の選択肢かもしれません。ネットワークホストは、ノードがネットワーク要求への応答に失敗した場合、ノードがパワーダウンしたと判断します。ノードがホストへのエラーレポート送信なしにパワーダウンした場合、およびノードが再起動のネットワークコマンドを無視した場合は、致命的な障害が生じたことを示しているため、技術者を派遣してノードを物理的に調べ、原因を究明する必要があります。

しかし、ノードが一旦パワーダウンすると、すべての揮発性メモリの内容とステータスデータが即座に消去されます。これにより、シャットダウンの原因を診断することが、不可能でないまでも、きわめて難しくなります。任意の選択で、ノードのパワーダウンの前に、診断データをEEPROMやフラッシュメモリなどの不揮発性メモリに保存することもできます。この場合の問題は、この種のメモリへの書き込みに時間がかかり、その間ノードはアクティブなままでなければならないため、さらに損害が生じる可能性があることです。

電子ペーパーによる致命的なエラーの診断

EPDはほとんど電力を消費せず、ノードのパワーダウンの直前にエラーおよび診断情報を保存および表示するために使用できます。ひとたびノードがパワーダウンすると、EPDは電力を消費せずに、その表示内容を数日間または数週間にわたり維持できます。ディスプレイに表示される情報を頼りに、技術者はシャットダウンの理由を視覚的に把握し、IoTノードを安全にパワーアップできるか、またはノードをネットワークから外して詳しく分析する必要があるかを判断できます。

診断情報の表示に適したEPDの例として、Pervasive DisplayのE2271CS091 EPDモジュールがあります。このEPDモジュールは、SPIシリアルインターフェースを介して任意の互換マイクロコントローラと接続できます。付属のディスプレイは2.71インチで高コントラストです(図1)。

Pervasive DisplaysのE2271CS091 EPDモジュールの画像図1:E2271CS091 EPDモジュールは、解像度264 x 176ピクセルの高コントラスト2.71インチディスプレイを備えています。視野角が広く、SPIインターフェースを介して互換マイクロコントローラと接続できます。(画像提供:Pervasive Displays)

E2271CS091 EPDモジュールはアクティブマトリックス薄膜トランジスタ(TFT)ディスプレイを使用しており、そのネイティブ解像度は264 x 176ピクセル、ドットピッチは117dpiです。これにより、ディスプレイには技術者の診断をアシストする多くの情報を表示できます。反射防止スクリーンは約180度の広視野角を持つため、特殊な設置場所でもディスプレイを容易に見ることができます。このEPDは3.0V電源で駆動します。

ホストマイクロコントローラから、ディスプレイの24ピンリボンコネクタのSPIインターフェースを介してEPDにデータが送信されます。SPIデータ通信は、ホストマイクロコントローラからEPDへの一方向に限られます。EPDからホストマイクロコントローラへの通信はリボンコネクタの「デバイスビジー」ピンのみで、インターフェースが大幅に簡素化され、表示される診断データの信頼性が高められています。

エラーまたはハッキング行為が検出された場合、およびエラーがノードのシャットダウンを必要とするほど深刻な場合は、ファームウェア、ウォッチドッグ、またはその他の方法で最初にエラーを捕捉する必要があります。次に、データをEPDに送信するエラーロギングルーチンに、制御を移す必要があります。このエラーロギングルーチンは、データの中断や破損を防ぐための最も優先度の高いタスクと考える必要があります。最大限の信頼性を得るために、エラーロギングルーチンは完全に自己完結型で、外部のサブルーチンや関数を呼び出さないことをお勧めします。理想的には、エラーロギングルーチンは永続的に書き込み保護されたフラッシュにあり、ファームウェア更新後もコードの整合性が保証される必要があります。

エラーデータによってEPDを更新するには、最初にホストマイクロコントローラからSPIインターフェース経由でソフトリセットコマンドがEPDに送信され、表示がクリアされる必要があります。次に、白黒の表示情報が一連のバイトシーケンスで送信されます。バイトの各ビットは、EPD上のピクセルを表します。このシーケンスが完了すると、エラーロギングルーチンによってマイクロコントローラをシャットダウンできます。これはアーキテクチャおよびマイクロコントローラメーカによって異なるため、マイクロコントローラメーカごとに独自のシャットダウン方法があります。状況により、およびセキュリティ上の理由で、メーカーには文書化されていないマイクロコントローラシャットダウンの方法もあり、要求に応じてのみその方法が提示されます。オプションで、外部回路を使用してマイクロコントローラへの給電を停止する場合もあります。しかしこの場合、システムがより複雑になるため信頼性が低下します。このため、マイクロコントローラのファームウェアによるシャットダウン制御が望ましい方法と言えます。

EPDを使用した開発を支援するため、Pervasive DisplayからはB3000MS034 EPD拡張キットが提供されています(図2)。このキットは、24ピンEPDディスプレイ用のコネクタを備えた拡張ボード、および40ピンおよび26ピンコネクタを必要とする他のPervasive Displays製EPD用のコネクタを備えています。拡張ボードは、Texas InstrumentsLaunchPad開発および評価キットと互換性がありますが、他の開発キットとも使用できます。20ピンのブリッジケーブルを20ピンの90度ヘッダコネクタに接続できるとともに、ヘッダコネクタを拡張ボードにはんだ付けすれば、開発の途上でEPDへの制御信号を監視できます。

Pervasive DisplaysのE2271CS091 EPDモジュール用拡張キットの画像図2:Pervasive DisplaysのE2271CS091 EPDモジュール用拡張キットには、ディスプレイの24ピンリボンケーブル用の24ピンコネクタが拡張ボードに搭載されています。また、ブリッジケーブルと90度20ピンヘッダコネクタも同梱されています。(画像提供:Pervasive Displays)

もう1つのEPDオプションは、Display VisionsのEA EPA20-Aです(図3)。

Display VisionsのEA EPA20-A EPDの画像図3:Display VisionsのEA EPA20-A EPDは172 x 72ディスプレイであり、電源接続なしでディスプレイの表示状態を維持できます。(画像提供:Display Visions)

172 x 72のグレースケールディスプレイを備えるこのEPDも、ホストマイクロコントローラとの通信にSPIインターフェースを使用します。このEPDは非常に低電力で、3.3Vの単一電源で駆動し、ディスプレイの変更中に40mWしか消費しません。Display VisionsのEA EPA20-A EPDは、給電がないときにもディスプレイの表示を維持できます。

まとめ

高度なセキュリティのIoTおよびIIoTノードは、致命的なファームウェアエラーまたは脅威検出に応じて、場合によりパワーダウンする必要があります。これは、ホストマイクロコントローラの内部ステータスを含むすべての揮発性データの喪失につながる可能性があります。しかしEPDを接続すれば、ステータスデータや診断データがシャットダウンの前にEPDに送信され、数日または数週間にわたりその情報が表示されます。これにより技術者は、シャットダウンの原因を特定するために必要な情報、および必要に応じて、ノードおよびネットワークを保護する将来的な予防策に必要な情報を得ることができます。

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の北米担当編集者