RX MCUを活用して、IoTアプリケーションを手軽に設計!パート2
前回に引き続き、IoT機器の設計手法に関する情報をお届けします。
昨今さらに、IoT機器の低消費化、小型化が求められています。一方でIoT機器のセキュリティ性向上も求められています。IoT機器のIoTとはInternet of Thingsのことで、インターネットのセキュリティといえば、インターネット通信を暗号化する標準方式であるTLS(Transport Layer Security)です。インターネット通信を行うIoT機器はTLSによる暗号通信が実現できなければなりません。
TLSの処理内容は大きく分けて、以下2フェーズに分けられます。
- ①: 通信相手と通信セッションを確立し、一時的なセッション鍵を交換し共有する
- ②: 通信相手と暗号通信を行う
①の処理にはRSAや楕円曲線暗号に代表される「公開鍵暗号方式」が使われます。またこの公開鍵方式により通信相手の認証とセッション鍵交換を行います。 ②の処理にはAESに代表される「共通鍵暗号方式」が使われます。①で交換したセッション鍵を用いて通信相手と暗号通信を行います。
①②を実現する課題は大きく以下2点があげられます。
(a) ①②で利用される各種鍵を漏洩および改竄から保護する必要がある
(b) ①②の演算を暗号処理に特化したハードウェアロジック回路等で高速に実行する必要がある
(a)(b)の課題を対策しない場合、IoT機器は以下の状態で市場投入されます。
- 悪意のある第三者によるリバースエンジニアリングにより、IoT機器内部に保存されている鍵データを抽出され、以下現象を引き起こす
- 現象1: セッション鍵を抽出され、暗号通信を解読される
- 現象2: 認証情報を抽出され、AWSやAzure等のクラウドサーバ側に不正ログインされる
- ①をソフトウェアのみで処理する場合、サーバ接続に数秒~数分の時間がかかる場合がある ②をソフトウェアのみで処理する場合、通信速度が数百Kbps~数Mbps程度しか見込めない
上述した課題(a)(b)が対策可能なソリューションとして、ルネサス製のセキュリティIP「Trusted Secure IP」をRXファミリに搭載しています。さらに「Trusted Secure IP」を制御するドライバソフトウェアを用意しております。 また、主要なTLSの実装体としてFreeRTOSで使われるMbed TLSをセキュリティIP「Trusted Secure IP」を連動させる方法をアプリケーションノートとしてまとめました。 - RXファミリ TSIPドライバを用いたTLS実装方法 (Azure RTOSで使われるNetX DuoとセキュリティIP「Trusted Secure IP」を連動させる方法については開発中です)
本アプリケーションノートで紹介しているサンプルコードはRX72N Envision Kitで動作します。 「Trusted Secure IP」を搭載するRX65NやRX671等の別製品にも適用可能です。
本アプリケーションノートで紹介しているサンプルコードを活用することで、上述した課題(a)(b)が以下のように解決します。
- 各種鍵を漏洩および改竄から保護することができ、暗号通信が解読されたり、不正ログインされるリスクを低減
- サーバ接続にかかる時間および、通信速度に関して10倍近い性能向上を達成 (以下表はアプリケーションノートからの抜粋)
本ソリューションにより、100MHz級のMCUベースシステムにおいても、高性能・高セキュリティを確保したIoT機器開発が可能になりました。セキュリティ性については、第2回でお話させていただいたNIST FIPS140-2 CMVP level3相当の水準が期待されます。一方で導入にはまだまだ敷居が高いものとなっており、FreeRTOSやAzure RTOSの一機能としてより簡単にお客様システムに組み込んでいただけるよう、AWSやMicrosoftと協議しながらさらなる改善検討を進めています。
TLSはインターネット標準の暗号通信規格ですが、100MHz級のMCUベースシステムには少々荷が重いものでした。ですが、セキュリティIP「Trusted Secure IP」をRXファミリに搭載することにより性能面、セキュリティ面両面で、十分に実用可能な水準に引き上げることができました。これによりIoT機器をより低消費電力、低価格にできると考えています。今後さらに低消費電力を突き詰めた製品開発およびソリューション開発を目指していきたいと考えています。