連載:wolfの仲間たち 第五回:最強のペア誕生 – cURLとwolfSSL

cURLをご存知ですか?ネット系のエンジニアの方は、一度は使ったことのあるコマンドではないでしょうか。
そのcURLの創始者 であるDaniel Stenbergが今年wolfSSL Inc.の一員として加わり、cURLとwolfSSLの組み合わせを対象に商用サポートの提供を開始したので、この連載でもご紹介します。

ご存知の方も多いかと思いますが、cURLは、よく利用される HTTP に限らずSMTP、IMAP、LDAP、POP3、SCP、SFTP、FTP をはじめとする、ありとあらゆるインターネットの転送プロトコルを一つに凝縮したコマンドです。ネットの世界では、データ転送の最強オープンソースツールとして世界中のエンジニアに利用されています。また、それをライブラリ化した libcurl は携帯電話、STBなど世界60億のデバイスに組み込まれ、各種プロトコルの実現に貢献しています。

それらの多くのプロトコルのセキュリティ層はTLSで実現されています。当然ながらwolfSSLとの組み合わせで、これまでも多くのお客さまにご使用いただいています。そのような場合に、これからはwolfSSLと同様にcURLやlibcurlにも長期的に安心できる商用サポートを提供できるようになりました。

さらに、この機会に、組込向けに特化しHTTP GETの機能だけに絞り込んだ小型のtiny-cURL、libcurlなどの新しい製品も準備中です。

 

拡張するwolfの世界を、今後もご紹介していきます。

連載:wolfの仲間たち
第一回:全員集合
第二回:安全なファームウェア更新を支えるwolfBoot
第三回:安全なリモートコンソールwolfSSH
第四回:ハードウェアレベルのセキュリティを支えるwolfTPMとセキュアエレメント

 

連載:wolfの仲間たち 第四回:ハードウェアレベルのセキュリティを支えるwolfTPMとセキュアエレメント

連載第四回は、wolfTPM、セキュアエレメントとIoTセキュリティについて紹介します。

IoTでは、デバイスが一般市場向けに販売されたり不特定多数の人々の手に渡るなど、第三者が簡単にアクセスできるような利用状況も少なくありません。こうしたケースでは、デバイス内の情報がハードウェアな手段で読み取られたり、悪意をもって改ざんされたりすることを想定しなければなりません。

そういう場合に活躍するのが、セキュアエレメント(SE)の耐タンパー性をもった暗号鍵の保護、管理機能です。SEでは、チップ内で暗号鍵を自己生成したり、製造時に書き込んでおいたりする機能、また、その鍵を使ってチップ内デジタル署名や検証を行う機能が内包されていて、鍵を一切チップの外に出さずに必要な機能を実現できるようになっています。

こうしたSEの標準インタフェースとしてTCG(Trusted Computing Group)が策定し、ISO/IEC標準にもなっているTPM(Trusted Platform Module )があり、現在は主に最新のTPM2.0が使われています。TPMに準拠したSEチップは、以前からPCや決済端末などの固体IDの管理などに広く使用されてきましたが、IoTのような考え方が普及するにつれてネットワークに接続されたデバイス全般のアイデンティティの管理への適用が考えられるようになってきました。

wolfTPMは、IoTデバイスの鍵管理に特化した組込向けのTPMライブラリです。TPM2.0に準拠しながらSSL/TLSのクライアントに必要な鍵管理、証明書管理機能にフォーカスすることで、従来大きくなりがちだったTPMライブラリを軽量の組込ライブラリとして整理しなおしたものです。整理され軽量になった一方で、容易にwolfSSLと連携してクライアント認証に必要な証明書や鍵管理が簡単に実現できるようなラッパーAPIもそなえているという特徴もあります。

【図:wolfSSLとwolfTPMの連携】

セキュアエレメントの持つ耐タンパー性は「ファームウェアの安全な更新」のような利用シナリオでも重要な役割を果たします。連載第二回で紹介したwolfBootは、wolfSSLの暗号エンジンであるwolfCryptと連携し、ソフトウェアレベルでのファームウェアの安全な更新を実現することもできますが、より安全なファームウェア更新のためにwolfTPMと連携して容易に耐タンパー性をもったセキュリティレベルを実現するとができます。

wolfTPMの製品詳細はこちらでご紹介しています。

連載:wolfの仲間たち
第一回:全員集合
第二回:安全なファームウェア更新を支えるwolfBoot
第三回:安全なリモートコンソールwolfSSH

連載:wolfの仲間たち 第三回:安全なリモートコンソールwolfSSH

連載第三回は、wolfの仲間たちのなかでもやや地味目なwolfSSHを紹介しましょう。wolfSSHはその名の通りSSHプロトコルで組込デバイスとコマンドコンソールの間の安全な通信機能を提供します。これまでtelnetのように保護されない通信で実現していたリモートコンソール機能をそのままに、開かれたネットワークであっても安全な通信が確保される環境に移行するというような用途に最適な製品です。

wolfSSHはサーバーまたはクライアント、どちら側としても機能しますが、まずは代表的なサーバー側としての利用場面で説明しましょう。wolfSSHはサーバーとして組込デバイスの上で動作します。コンソールの役割を果たすクライアント側はパソコン上のTera Term、PuTTYと言ったような既存のターミナルエミュレータを利用することができます。この場合wolfSSHは、ターミナル側からのサーバー認証や鍵やパスワードによるユーザー認証、そして確立したSSH接続を使った安全なストリーム通信をアプリケーションに提供します。デバイス側のアプリケーションは、ターミナルからのコマンドなど、ストリームの内容によってデバイスの状態表示や、指示された設定をするなどの役割を担います。


【wolfSSHの構成例】

wolfSSHのクライアント機能は、今の例と逆のパターンで使用することができます。例えば、SSHサーバーの組み込まれた制御装置などを小さな組込デバイスから監視、制御したい場合などにデバイス側にクライアントとしてのwolfSSHを組み込んで使用します。

SSHのプロトコルはインターネットの標準化団体IETFのRFCに準拠したプロトコルを実現しています。このプロトコルはSSL、TLSとは若干違っているので、製品の組み合わせとしては、wolfSSLではなくwolfCryptを組み合わせて使用することになります。おなじSSH系のプロトコルを使用するものとしてファイル転送のSFTPやSCPがありますが、wolfSSH製品の中にはこれらのファイル転送機能も含まれていて必要に応じて利用することができるようになっています。

wolfSSHの製品詳細はこちらでご紹介しています。

連載:wolfの仲間たち
第一回:全員集合
第二回:安全なファームウェア更新を支えるwolfBoot

 

wolfSSHについてさらに詳しい情報は、弊社問い合わせ窓口 info@wolfssl.jp までご連絡ください。

 

 

連載:wolfの仲間たち 第二回:安全なファームウェア更新を支えるwolfBoot

連載第二回は、wolfの新しいメンバー wolfBootを紹介します。
wolfBootはその名の通りブートローダーの仲間ですが、wolfの暗号技術、セキュリティ技術を使って安全なファームウェアの更新、起動を実現したセキュアなブートローダーです。

従来この領域は、組込まれるハードウェアやシステム構成、要求されるセキュリティレベルなどさまざまな条件に依存してしまうため、なかなか汎用のコンポーネントとして提供することは難しいとされてきました。その一方で、現実に利用されるIoTデバイスや組込システムでは、長期化する製品ライフサイクルの中で、進化させていかなければならないファームウェアをいかに安全に速やかに更新するかが重要な課題になってきています。

そんな中で、wolfBootは

1) 更新内容の一貫性や署名の検証
2) どんなタイミングで障害が発生しても必ず安全で完全なロールバック

など、安全なファームウェア更新のために必要となる機能のみにフォーカスした組込み製品です。他のwolfの製品同様、組込向けを強く意識して小型、軽量であると同時にハードウェア依存部分を最大限に局所化しています。一方で、一貫性や署名の検証のための暗号アルゴリズムエンジンにはwolfCryptが使用されているので、楕円曲線暗号(ECC)はもちろんEd25519による署名検証など、最新の暗号アルゴリズムを使用した妥協のない安全で高速な検証を実現することができます。

さらに、耐タンパー性などハードウェアレベルのセキュリティに対応するためのwolfTPMとの連携、遠隔からの安全な更新のためのwolfMQTTwolfSSLなどの安全な通信チャネルとの連携など、トータルなファームウェアライフサイクル管理ソリューション構築のためのコンポーネントとして重要な役割を担っています。

・wolfBootの製品詳細はこちらでご紹介しています。
・wolfBootマニュアルはこちらにあります。
・連載:wolfの仲間たち第一回:全員集合

さらに詳しい情報は弊社問い合わせ窓口 info@wolfssl.jp までご連絡ください。

連載:wolfの仲間たち 第一回:全員集合

さて新しい連載では、「wolfの仲間たち」と題して中核製品のwolfSSL/wolfCrypt、そしてそれをベースにIoTシステムのセキュリティを様々な角度からを支えるwolfSSLの製品群について紹介していきたいと思います。

中核となるのはwolfSSLです。組み込みシステムに安全なネットワーク通信を実現するC言語ライブラリです。小型軽量ながらTLSやDTLSの標準に完全準拠の機能を提供している一方で、特定目的の組込製品のために必要な機能、不要な機能を自由に追加削除できるなど構成の柔軟性も大きな特長です。最新のTLS1.3やDTLS1.2対応バージョンを商用組込向けとしては世界に先駆けて提供を開始しているのも、専門ベンダー製品としての特長です。

そのプロトコルの基盤を支えるのがwolfCrypt暗号エンジン。日々進歩する新しい暗号アルゴリズムをいち早く取り入れつつも、FIPS認証取得など高い信頼性も実証しています。各社のハードウェア暗号エンジンにも対応。大規模なデータの暗号処理も安心です。

もちろん、このSSL/TLS基盤を利用して自社のアプリケーションのためのプロトコルのセキュリティを実現することができるわけですが、この上にIoTのセキュリティで特に重要な役割をはたすアプリケーション層のプロトコル製品をwolfSSL製品としても特別に提供しています。

wolfMQTTが提供するMQTTは小型軽量のパブリッシュ・サブスクライブモデルの通信プロトコルです。小規模のトランザクションを軽量に実現したり、ファームウェア更新のような多数のデバイスに対する不定期なトランザクションの処理をシンプルに実現したりするのを得意としています。

wolfSSHはSSHプロトコルで組込みデバイスに安全なコンソール機能を実現。SSHのサーバ機能、クライアント機能と共にscpやsftpのようなファイル転送機能も提供します。

一方、IoTデバイスの世界ではハードウェアレベルのセキュリティが要求されることも多くなってきています。従来から標準化が進んでいるTPM2.0をサポートするwolfTPMをはじめ、各種のオフチップ型のセキュア・エレメント。また、TrustZone、SGXのようにMPU上に安全な領域やモードを実現する方式など、各種のハードウェア層のセキュリティ機能をベースに統一されたインタフェースでSSL/TLSと統合するwolfSSL セキュアエンクレーブという形で提供しています。

また、実用的なIoTシステムを考えるとき、システムの長いライフサイクルを通じた安全なファームウェア更新は大きな課題です。これまでこの領域はそれぞれの製品ハードウェアへの依存性が強く、個別対応とならざるをえない領域とされてきました。wolfSSLでは、ハードウェア依存性を極限まで局所化して、安全なファームウェア更新を実現するための共通の基盤となる技術コンポーネント、wolfBootを開発しました。これからのIoTシステムのキーコンポーネントの一つとなっていくはずです。

今回の連載では、こうした技術コンポーネントの一つ一つについて次回からもう一歩掘り下げてその役割と効果を紹介して行く予定です。