工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> モノのインターネットテクノロジー

IoTデバイスでUART通信を保護する方法

暗号化ブロックがMCUに統合されたことで、開発者は、それ自体がセキュリティを提供しないUARTなどのインターフェイスを含むすべての通信チャネルを保護できるようになりました。

モノのインターネット(IoT)システムで注目を集めるデータとプライバシー侵害の数が増えるにつれ、企業と消費者は、接続された製品を購入する際のセキュリティの必要性をより強く認識しています。クラス最高の製品やサービスを提供するだけではもはや十分ではありません。適切なセキュリティを提供できないデバイスは、エンドツーエンドのセキュリティを提供するデバイスと競合できなくなります。

多くのプロトコルは、標準内にセキュリティを実装し、任意のコントローラの組み込み部分です。ただし、ユニバーサル非同期レシーバ-トランスミッタ(UART)を介して接続する組み込みデバイスは保護されません。 UARTは、デバイス間の最も単純なデジタル通信インターフェースの1つです。これは、ボーレートがわかっている場合にどのデバイスでも読み取ることができるACKなしの通信プロトコルです。

データがシステムに読み取られたり注入されたりしないようにするには、データを送受信するシステムによって通信チャネルを保護する必要があります。したがって、侵入者が正しいボーレートで通信チャネルにアクセスした場合でも、チャネルは保護されます。

対称および非対称のセキュリティ

多くの場合、通信チャネルは暗号化アルゴリズムを使用して保護されます。大まかに言えば、暗号化アルゴリズムは対称と非対称に分類できます。対称鍵アルゴリズムでは、送信者と受信者が単一の秘密鍵を共有します。送信者はキーを使用してメッセージを暗号化し、暗号化されたメッセージを受信者と共有します。次に、受信者は同じキーを使用してメッセージを復号化します。

対称鍵アルゴリズムの主なセキュリティ上の懸念は、送信者と受信者の間で秘密鍵を安全に交換する方法です。キー交換中にキーが別のエンティティによってキャプチャされた場合、そのエンティティは送信者によって送信されたメッセージを復号化することもできます。したがって、対称鍵アルゴリズムでは、鍵を送信者と受信者だけと安全に共有することが重要です。

安全な対称鍵交換を可能にするために、非対称鍵アルゴリズムが使用されます。非対称アルゴリズムは、暗号化プロセスと復号化プロセスに異なるキーを使用します。これらのキーは異なりますが、数学的に関連しています。対称鍵は、非対称鍵で暗号化し、受信者が関連する非対称鍵を使用して復号化することにより、安全に交換できます。非対称アルゴリズムの欠点は、複雑な数学的計算が必要であり、計算集約型になる傾向があることです。

最高レベルのセキュリティのために、RSA暗号化が非対称キーアルゴリズムとして使用されます。 RSAを使用すると、通信エンティティには公開鍵と秘密鍵があります。公開鍵は、その名前が示すように、公に共有され、誰でも利用できます。対照的に、秘密鍵は通信エンティティによってのみ保持されます。エンティティにメッセージを送信するために、送信者はエンティティの公開鍵を使用してメッセージを暗号化します。この暗号化されたメッセージは、秘密鍵によってのみ復号化できます。秘密鍵は目的の受信者のみが使用できるため、これにより、受信者のみがメッセージを復号化できます。

公開鍵と秘密鍵の暗号化

RSAは、指数計算と非常に大きな数の素因数分解を使用するため、安全性は高くなりますが、計算量も多くなります。さらに、RSAをリアルタイムで実装すると(通信の遅延を回避するため)、より高性能の処理エンジンが必要になるため、システムコストが増加します。多くの組み込みシステムは、このレベルのセキュリティを必要としません。代わりに、Advanced Encryption Standard(AES)のようなよりスリムな暗号化アルゴリズムを利用できます。これは、必要な処理リソースが少ないため、より実用的で費用効果が高くなります。

AESは対称暗号化アルゴリズムです。つまり、通信チャネルの両側で共通の秘密鍵が共有されます。上記のAESの制限は、外部エンティティに公開することなく、UART送信者と受信者の間でキーを安全に共有することにあります。これに対処するために、RSAを使用してAESキーを暗号化し、安全に交換することができます。共通キーは一度だけ共有する必要があるため、通信チャネルはRSAの複雑さと遅延に耐えることができます。つまり、RSAアルゴリズムの処理の遅延は、すべてのメッセージではなく、最初の鍵交換にのみ影響します。

安全な鍵交換はいくつかの段階で行われます(図1)。まず、UART受信機がRSA鍵ペアを生成し、その公開鍵を送信者と共有します。公開鍵はUART受信者向けのメッセージの暗号化にのみ使用されるため、別のエンティティに公開鍵が表示されるかどうかは関係ありません。次に、送信者はランダムにAESキーを生成し、受信者の公開キーを使用して暗号化します。受信者は、RSA秘密鍵を使用してAES鍵を復号化します。


図1:RSA公開鍵と秘密鍵を使用したAES秘密鍵の安全な交換。 (出典:インフィニオン)

受信者のみがRSA秘密鍵にアクセスできるため、暗号化されたAES鍵は受信者のみが復号化できます。これにより、AESキーは送信者と受信者だけに認識され、通信チャネルにアクセスできる侵入者はキーを取得できなくなります。さらに、送信者と受信者の間の後続のすべてのメッセージはAESキーで暗号化されるため、これらのメッセージを受信することを意図していない他の関係者はこれらのメッセージにアクセスできなくなります。これにより、送信後、受信前のメッセージの変更を伴う中間者(MIM)攻撃の脅威も排除されます。

ファームウェアとハ​​ードウェア

ファームウェアを使用して組み込みデバイスにセキュリティアルゴリズムを実装すると、多くの設計上の課題が発生します。暗号化アルゴリズムは、その性質上、計算集約型になる傾向があります。また、メモリフットプリントが増加し、処理に遅延が追加され、システムが大幅に複雑になります。その結果、ファームウェアにセキュリティを実装すると、かなりのCPUサイクルとMCUリソースが消費されます。さらに、リアルタイムのアプリケーション要件を満たすには、より高性能なMCUが必要になり、システムコストが上昇します。

非常に多くのMCUリソースが使用される理由の一部は、MCUが汎用処理ユニットであるためです。このため、多くのMCUは、暗号化アルゴリズム用に特別に設計されたハードウェアを統合しています。統合された暗号化エンジンを使用すると、MCUは、ハードウェアベースの暗号化処理機能を備えていないMCUと比較して、はるかに小さいフットプリントで低コストでデータのリアルタイムの暗号化と復号化を提供できます。

インフィニオンのPSoC6MCUがその好例です。暗号化機能のハードウェアアクセラレーションを提供する専用の暗号化ブロックがあります。暗号化ブロックは柔軟性があり、さまざまな暗号化アルゴリズムをサポートしてデータを確実に保護するために使用できます。これにより、開発者は、AES、DES、TDES、RSAなどの暗号化標準とセキュアハッシュアルゴリズムなどの整合性チェックを使用して、組み込みIoTデバイスにセキュリティを導入できます SHA)および巡回冗長検査(CRC)。この方法でMCUから暗号化機能をオフロードすると、より強力なプロセッサを使用しなくても、ほぼすべての組み込みアプリケーションにコスト効率の高い方法でセキュリティを導入できます。

真の乱数

ただし、組み込みシステムを保護するには、通信を暗号化するだけでは不十分です。具体的には、システムが生成するAESキーはランダムである必要があります。ただし、MCUは決定論的であるため、生成されるキーも決定論的であり、ハッカーは「ブルートフォース」を使用して、考えられるさまざまなランダムシードを循環し、AESキーを導出できる可能性があります。したがって、ファームウェアには、AESキーのランダム性を確保するために真の乱数を生成する方法が必要であるため、ブルートフォース攻撃を行うことはできません。

これを行うには、暗号化ブロックにTrue Random Number Generator(TRNG)が含まれている必要があります。たとえば、PSoC 6暗号化ブロックでは、TRNGには物理的なノイズ源を提供する6つのリングオシレータがあります。リングオシレータには、リングオシレータの信号にジッターを導入する温度に敏感なインバータが含まれています。この信号により、MCUは真の乱数ソースにアクセスして、生成するAESキーのランダム性を確保できます。

たとえば、16バイトのキーを生成するには、乱数が16回生成され、前の番号に追加されます。これにより、2 ^ 128キーの可能性があります。 「AES」キーがブルートフォースされたり推測されたりするのを防ぐには十分すぎるほどです。

一部の暗号攻撃は、キャプチャされた通信の分析に焦点を当てています。十分なリソースがあれば、どのキーも最終的には壊れてしまう可能性があります。この可能性に対処し、通信チャネルの全体的なセキュリティを強化するために、再起動のたびにAESキーが生成されます。これは、組み込みシステムのセキュリティを強化するためのシンプルですが効果的な手段です。つまり、侵入者によってキーが識別されたとしても、そのキーが悪用されるまでには、そのキーは使用されていない可能性があります。

自信を持ってセキュリティ

この時点で、UARTインターフェースを安全だと考えたくなるかもしれません。ただし、UARTはACKなしの通信プロトコルです。これは、受信者が受信したメッセージがa)完全であり、b)破損していないことを保証するメカニズムがプロトコルにないことを意味します。

メッセージの整合性を確認するには、最終的なセキュリティ段階が必要です。これを実現するための効果的な方法は、SHAアルゴリズムを使用してメッセージをハッシュすることです。 SHAのような暗号化ハッシュ関数を介してメッセージを実行すると、固定長の出力であるハッシュが生成されます。ハッシュ関数は不可逆的な一方向性関数であるため、特定のハッシュを生成したメッセージを識別する唯一の方法は、すべての可能な入力のブルートフォース検索を試みることです。


図2:ハッシュ関数は、安全な鍵交換およびメッセージ転送中の通信の整合性を保証します。 (出典:インフィニオン)

メッセージが送信される前に、メッセージ全体のハッシュがメッセージに追加されます(図2)。次に、メッセージとハッシュがAESキーを使用して暗号化されます。このように、ハッシュは整合性チェックとして機能できます。受信者は、復号化後、復号化したメッセージのハッシュを計算します。次に、受信者は受信したハッシュと計算されたハッシュを比較します。それらが同じである場合、メッセージは変更されていません。ただし、ハッシュが一致しない場合は、メッセージの整合性が影響を受けていることを示しています。これは、ハッカーがメッセージを変更しようとしたか、送信中にエラーが発生したために発生する可能性があります。いずれにせよ、通信は失敗しました。

送信者の秘密鍵を使用してメッセージに署名することにより、通信チャネルの信頼性をさらに強化できることに注意してください。署名されたメッセージは、送信者の公開鍵を使用して確認し、送信者のみがメッセージを送信できたことを確認できます。言い換えると、送信者の秘密鍵を持っていないため、他の当事者が送信者を模倣することはできず、メッセージの信頼性が保証されます。その他のアイデアについては、他のエンジニアによる多くのプロジェクトを含むコミュニティコードの例をご覧ください。

組み込みIoTシステムの設計では、セキュリティの実装が必要な考慮事項になっています。接続されているすべてのデバイスが安全であり、ユーザーデータが危険にさらされないように保護することが重要です。暗号化ブロックがMCUに統合されたことで、開発者は、それ自体がセキュリティを提供しないUARTなどのインターフェイスを含むすべての通信チャネルを保護できるようになりました。

—HarigovindAとRakshithM Bは、インフィニオンテクノロジーズのシニアアプリケーションエンジニアです。

>>この記事は、もともと姉妹サイトであるEDNで公開されました。 。


モノのインターネットテクノロジー

  1. 5Gが産業用IoTをどのように加速するか
  2. IoTが職場をどのように接続しているか
  3. 世界的なメリットを提供するIoT
  4. IoTはエンタープライズモビリティをどのように形作っていますか?
  5. IoTネットワークを自宅で安全に保つための7つの重要なヒント
  6. IoTの支払い:収益性の高いIoTビジネスモデルを構築する方法
  7. サイバーレジリエンスを通じて数十億のIoTデバイスに安全な未来を提供する
  8. IoTに対するキルチェーン攻撃の脅威はどれほど危険ですか?
  9. IoTは職場の安全にどのように革命をもたらしていますか?
  10. IoTが顧客体験をどのように強化しているか
  11. 製造業における4つの主要なIoTアプリケーション