IoT機器とネットワークに求められるセキュリティの注意点と対応策
世の中のあらゆる分野に浸透しつつある IoT。それは、同時にセキュリティの危険性の拡大も意味しています。事実、数年前から、IoT に対する脅威が数多く報告され始めています。今まさに、IoT にも強力なセキュリティ対策が求められているのです。
IoT には、接続するネットワークのセキュリティ、そこにつながる機器のセキュリティとそのソフトウェアのセキュリティなど、多彩なセキュリティ対策が必要とされています。
ここでは、IoT に求められる主なセキュリティ技術をご紹介します。
IoT で注意すべき2つのセキュリティ ポイント
各端末をつなぐネットワーク、安全に機能していますか
IoT とは Internet of Things の略。モノや機器がインターネットで結ばれている状態を指しています。これまでは、インターネットは主にコンピュータ同士の通信に使われていましたが、IoT では、モノの状態や動き、自然現象、そして生物の動きなどをセンサーなどでデータ化して通信しています。このため、IoT では、ネットワーク上でさまざまなデータが受け渡しされているのです。

IoT のセキュリティを考える時、まず検証しなくてはならないのが、このネットワークのセキュリティです。主なチェックポイントは、次の3点です。
そのネットワーク通信は、正しい相手と接続されているか。
ネットワーク経路の途中で盗み見されていないか。
通信の途中でデータが加工されてしまってはいないか。
つまり、インターネットの出入り口と途中の経路のすべてにセキュリティの危機が潜んでいることになります。そのすべてに、しっかりとしたセキュリティ対策をしておくことが必要です。
直接操作やスマホアプリの改ざんに要注意
多くの機器が接続されている IoT。その中には、例えば、中古車ディーラーの駐車場の防犯カメラや、畑に設置された監視カメラなどのように、一日中、人が見ていることが不可能な事象を監視する機器や、そもそも、人の目が届かない場所に設置されている機器も数多く含まれています。
屋外に設置されている監視カメラは、夜間、人の目がない時に、悪意を持った人にソフトウェアを書き変えられたり、スキを見て何か細工をされたりする危険性があります。
最近では、多くのカーシェアリングの車が IoT対応になっており、そのセキュリティに対する不安も指摘されています。個人所有の車であれば、キーの管理さえしっかりしておけば、誰かに車のソフトウェアなどに細工をされるという危険はほとんどありません。しかし、カーシェアリングの車は、自分の前に誰が乗ったか分からない状態であるため、何かをされていても分かりません。
今日では、カーシェアリングの車だけでなく、多くの車がインターネットにつながりつつあります。平成27年度版の情報通信白書によれば、2025年にはインターネットにつながっている「コネクテッドカー」は世界で6,000万台を超えると予想されています。これからの時代、車のネットワーク関連のセキュリティにも注意が必要となってきます。

現在、ほとんどの IoT機器には、初めからソフトウェアが埋め込まれています。そのソフトウェアにぜい弱性が見つかった場合に備えて、アップデートするための「口」が機器に設けられているのが普通です。その「口」の存在を知っている人が悪意を持っている人だとしたらどうでしょう。「口」を悪用して、不正な改造を施したソフトウェアでアップデートをかけられてしまう恐れもあります。こうした IoT機器への直接操作に対しても、警戒が必要です。
また、スマートフォンやタブレットPC などから操作できる IoT機器の普及も見逃せません。テレビコマーシャルなどで見るように、スマートフォンの操作で車を車庫入れしたり、車のエアコンをつけたりすることもできるようになってきています。こうしたシステムの場合、IoT の機器側でしっかりとセキュリティ対策をしていたとしていても、遠隔操作のコマンドを送るスマートフォン側のソフトウェアに不正な改造がされてしまっていた場合、車の誤動作や盗難などの恐れが出てきます。IoT機器側だけでなく、そこに連携している機器のセキュリティも考えておく必要があります。
IoT を守るための2つのセキュリティソリューション
IoT機器に対するセキュリティについては、さまざまな技術が開発され、導入されています。しかし、セキュリティの危機は複雑化しており、単独のセキュリティ技術だけで防御することは難しくなっていることも事実です。どのセキュリティ技術があなたのIoT機器に適しているのかを見極めて、導入していくことが重要です。
ここでは、2つのセキュリティ技術をご紹介します。
ネットワークのセキュリティ危機を防御する Transport Layer Security (TLS)
前述の「各端末をつなぐネットワーク、安全に機能していますか」では、ネットワークのセキュリティに対して3つのチェックポイントがあることをご紹介しました。
そのネットワーク通信は、正しい相手と接続されているか。
ネットワーク経路の途中で盗み見されていないか。
通信の途中でデータが加工されてしまってはいないか。
というものです。この3つのセキュリティ危機のそれぞれに有効な防止策を備えているのが TLS なのです。TLS とは、TCP/IPネットワークで、セキュアなチャンネル(通信路)を利用できるようにしたプロトコルです。以前は SSL と呼ばれていたプロトコルが、IETF により標準化され TLS という名称に変更されました。

- 正しい相手と接続されているか
TLS では、認証機能で相手を確認できるようになっています。サーバと IoT機器が通信を始めるときは、『証明書』が送信されます。その証明書が正しく発行されたものか、通信先が証明書に記載されている通信の相手なのかを確認することで、意図しない相手と通信してしまうというセキュリティの危機を防止することができます。
- ネットワーク経路の途中で盗み見されていないか
TLS では『暗号化』で防御します。通信相手と接続する際、相手を認証すると同時に、暗号に使用する『鍵』を共有し、その鍵を使って、通信するデータを暗号化します。このため、ネットワーク経路の途中での盗み見を防止することができます。
- 通信の途中でデータ加工されていないか
大きなデータを短いデータに要約する『ハッシュ関数』が使われています。通信を受信した時、このハッシュ関数を使って要約されたデータ内容を照合することで、通信の途中でデータが加工されてしまっていないかを確認することができます。
このように、ネットワークに関する3つのセキュリティ危機は、すべて TLS で守ることができます。
なお、TLS は、現在、TLS1.3 がリリースされています。この最新バージョン TLS1.3 では、セキュリティ機能が強化されただけでなく、機器同士が通信を始める前に相互で交わされるハンドシェイクも軽量化されています。これまでは暗号データの送受信の前には2往復の通信による接続処理が必要でしたが、TLS1.3 では、この接続処理の完了を待たずに、すぐに通信を開始することができるようになりました。
この TLS1.3 の登場によって、通信コストが軽減されるだけでなく、これまで重い通信が苦手であった小型の IoT機器でも、簡単に TLS が使いやすくなりました。
『難読化・改ざん検知』で直接操作を阻止
「直接操作やスマホアプリの改ざんに要注意」で、IoT機器が脅かされる点として、「直接操作の危険性」、「IoT機器のソフトフェア改ざんの危険性」があると紹介しました。これらの対策としては、ソフトウェア自体を保護する『難読化』『改ざん検知』などのセキュリティ技術が高い評価を受けています。

『改ざん検知』機能とは、ソフトウェアを構成しているいくつかの関数にチェック処理を埋め込み、改ざんされているかどうかを、ソフトウェアの実行中に動的にチェックする機能です。ソフトウェアの随所に埋め込まれたチェック処理が、相互に監視しあうことで、ソフトウェアの全領域の安全性を確実にチェックすることができます。
また、『難読化』とは、プログラムの流れを複雑化して、ソフトウェアを不正に解析されてしまうのを防ぐ機能です。例えば、ソフトウェアの中で条件分岐する選択肢の数が分かると、攻撃者にバイナリ解析の手掛かりを与えてしまうことになります。そこで、難読化技術により、その解析をしにくくさせることがセキュリティ対策として効果的なのです。
ただし、万全を期すあまり難読化をかけ過ぎると、パフォーマンスの低下を招いてしまうことがあります。現在では、難読化を細かくチューニングできる機能が開発されています。これにより、機器の処理速度をできる限り落とさずに、リバースエンジニアリングを阻止することが可能となってきました。
複雑化する IoT に対しセキュリティ技術も高度化
高信頼性のセキュリティライブラリ『GUARD FIPS Security Toolkit』
ネットワークの3つのセキュリティ危機のそれぞれに有効な防止策として、Transport Layer Security (TLS) をご紹介いたしました。
当社では、2006年から、セキュリティソリューション企業であるベリマトリックス株式会社と協業しており、2015年からは、同社のセキュリティライブラリ『GUARD FIPS Security Toolkit』の活用をご提案しています。
この『GUARD FIPS Security Toolkit』は、暗号ライブラリ/TLSプロトコルライブラリであり、FIPS 140-2認証取得済みの高信頼の暗号ライブラリと、TLS1.3規格にも対応した TLSプロトコルライブラリで構成されています。
TLS1.3 ではセキュリティ機能の強化とハンドシェイクの軽量化が実現しており、組込みシステム向けの最適なセキュリティソリューションです。
『GUARD FIPS Security Toolkit』は、オープンソースの代表的な TLSライブラリである OpenSSL と比較して、大変軽量となっており、組込みシステムへの実装に最適です。この軽量化により処理の無駄も省かれ、高速動作が可能となっています。さらに小規模な組込みシステムのために、RAMサイズが600byte程度の Tinyエディション「GUARD TLS Tiny」も用意されています。

暗号アルゴリズムは、システム全体の安全性に関わってくるため、信頼性の高い暗号アルゴリズムが正しく実装されているかどうかがポイントとなります。『GUARD FIPS Security Toolkit』は、米国基準である NIST による FIPS140-2認証取得済みの暗号ライブラリであり、信頼できる暗号アルゴリズムを選択することができます。FIPS が必要ない場合は、nonFIPS版も用意されており、FIPS と nonFIPS は動的に切り替えることができます。
最近、暗号ライブラリに対して、Heartleed や POODLE など、多数の脆弱性が発見されていますが『GUARD FIPS Security Toolkit』は、これらの脆弱性の影響を受けていません。
ソフトウェアプロテクション 『Code Protection』と『WhiteBox』
IoT の普及に伴って、IoT につながる機器の数が急激に増加しています。毎年、3割強の割合で増加しており、2020年には世界で200億台を超えると予測されています。そして、数の増加だけでなく、IoT では機器がアメーバ状につながっており、IoTシステムそのものが複雑化しています。
また、IoT と連携するデバイスそのものが、単純なものから複雑なものへと進化してきています。さらに、攻撃側の技術力も日々、巧妙化しています。
このため、現在では、特に、IoT と連携するスマートフォンなどのモバイルデバイスのセキュリティがポイントとなっています。モバイルデバイスなどのダウンロード型アプリケーションは手軽に利用できる反面、組込みソフトウェアに比べてセキュリティが低く、証明書や権利鍵などをどのように保護していくかが課題となっています。
特に、最近では、ネットワーク接続やアプリケーションの追加、動的なアプリケーションのアップデートなどの機能が強化されているため、その脅威も増加しています。この脅威に対応していくためには、アプリケーションそのものにセキュリティ対策を施していくことが重要です。
そのセキュリティ対策として有効な技術が『難読化』および『暗号鍵の秘匿』です。ベリマトリックス株式会社のソフトウェアプロテクション『Code Protection』『WhiteBox』を活用することによって、改ざんチェック、強力な難読化と暗号鍵の秘匿を実現することができます。これにより、金融取引、ID管理をはじめ、個人情報を扱うさまざまなアプリケーションのセキュリティを高めることができます。

ソフトウェアの「改ざん」を狙う攻撃者は、入手したモバイル・アプリケーションを使って、エミュレータ上で動的解析を行うことによって、アプリケーションの詳細な動作の把握を試みる危険性があります。細かな動作が解明できれば、ピンポイントでアプリケーションの改ざんを行うことができるからです。攻撃者は、ハッキングをしたり、多くの利用者を混乱に陥れたりすることも可能になります。こうしたセキュリティの脅威には、『改ざん検知』と『難読化』技術が必要です。
『Code Protection』は、実行時の改ざんチェックとコードの難読化でアプリケーションのセキュリティを守ります。『Code Protection』では、ランタイムで改ざんを調べる、チェック・ルーティンをアプリケーションの中に配置することができます。また、このツールでは、パフォーマンスに影響が出ないように、しかも、最もセキュリティ効果が高い位置にチェック・ルーティンを配置できるよう自動的に判断し、アプリケーションに埋め込むことができます。
また、条件式の複雑化やLoopなどの制御構造の変更、ジャンクコードの挿入など、さまざまな難読化手法を組み合わせて、高度な難読化を実現。リバースエンジニアリングから防御することができます。
一方、万一、ソフトウェアを動的に解析されてしまった場合、ソフトウェア内部で使用する『鍵』は、通常の『難読化』では守りきることは困難です。IoT機器などによっては、このような『鍵』をハードウェアを使用して守ることが可能なものもあります。しかし、このようなハードウェアを持たない機器では、ソフトウェア内で使用される『鍵』を安全に守る必要があります。
その解決策の一つが『WhiteBox』です。WhiteBox技術では、ソフトウェアに埋め込まれた暗号鍵などの機密情報を暗号化して、強力に保護できます。ソフトウェアをソースコードレベルで変換しているため、たとえ攻撃者がソフトウェアを動的に解析して中身を見たとしても、機密情報を見ることはできません。
WhiteBox技術を使うと、動作速度は多少低下してしまいますが、機密情報を確実に保護することができます。ハードウェアを使用した鍵の保護を行えない場合には、万全なセキュリティを考えると、WhiteBox技術がベストな対策だと考えられています。
まとめ
IoT機器の多くは、人の目の届かない場所に設置されていたり、夜間に作動したりするため、その多くがハッキングの危機にさらされています。また、IoT はさまざまなソフトウェアとネットワークで構成されており、おのおのにセキュリティ対策を施すことが必要です。すべての対策がそろって、初めて万全といえます。
IoTを守るためのセキュリティソリューションは2つ。
- ネットワークに対するセキュリティ『Transport Layer Security(TLS)』
- 直接操作やスマホアプリ改ざんに対するセキュリティ『難読化・改ざん検知』
具体的なソリューションとして、当社では、ベリマトリックス株式会社の暗号ライブラリ/TLSプロトコルライブラリ『GUARD FIPS Security Toolkit』および、ソフトウェアプロテクション『Code Protection』『WhiteBox』を提供しています。
お問い合わせ・資料請求
IoTセキュリティに関する検討用資料のご案内や、導入相談、お見積り依頼などのお問い合わせをお受けしております。
暗号ライブラリ/TLSプロトコルライブラリ『GUARD FIPS Security Toolkit』の概要をまとめた資料です。
ソフトウェアプロテクション『Code Protection』『WhiteBox』の概要をまとめた資料です。
暗号ライブラリ/TLSプロトコルライブラリ『GUARD FIPS Security Toolkit』、ソフトウェアプロテクション『Code Protection』『WhiteBox』のお見積り依頼です。
暗号ライブラリ/TLSプロトコルライブラリ『GUARD FIPS Security Toolkit』、ソフトウェアプロテクション『Code Protection』『WhiteBox』のご相談をお受けしております。