IoTマシン認証のジレンマ
私たちはほぼいつも、ネット接続機能を持つ多くのデバイスに囲まれています。これらのデバイスには、インベントリに表示されるものもあれば、環境に埋設されているものもありますが、いずれにせよ、どれも絶えず誰かに検出され、接続されています。
機密性が低い情報なら、アクセスされてもさほど心配する必要はありません。Fitbitやスマートウォッチをハッキングされても、その時の血圧や心拍数を知られるだけです。しかし、多くの場合は機密性のある情報が含まれているため、懸念が高まります。
多くの人がスマホなどのデバイスに依存した生活を送る今、デバイスには連絡先のメールアドレス、所在地、パスワード、銀行、クレジットカードといった機密情報が保存されているからです。しかもこうしたデバイスは、カメラ、マイク、位置情報を使ったリモート監視にも使われます。
情報インフラが進歩と進化を続ける中、最も深刻な懸念の一つはおそらくアイデンティティ管理でしょう。デバイスはもちろん、政府、企業、社会に属するエネルギー、交通、物流、管理も、ローカルに、そしてグローバルにアクセスされる懸念があります。マシンが通信相手を確実に識別し認証できなければ、事態は一瞬で悪化します。
問題はそこにあります。そもそもインターネットは、アメリカ国防高等研究計画局(DARPA)と大学が共同研究のために使用していたデータ共有トポロジーの派生物です。そのため、プロトコルはセキュリティに配慮して設計されていません。インターネットが公共の情報交換ネットワークとなるにつれ、データペイロードの暗号化が試みられてきました。暗号化は役に立ちますが、データセンター、ルーター、スイッチの構造はいくつかの攻撃に対して脆弱です。以下にこうした攻撃をいくつか示し、業界が対抗策として採用するソリューションを紹介します。
基本的なセキュリティの懸念
平均的なインターネットユーザーとデバイスにとって、一番基本的なセキュリティ対策は、本人確認とアイデンティティ保護です。皆、電子メール、アプリ、サブスクサービスの認証にパスワードを使用していますが、 これは片方向認証です。私たちはサービスにアクセスしようとすると、パスワードを要求されます。そのパスワードを知っていれば、誰でもアクセスできます。相互認証はこれより多くの情報提供を要求します。他にもいろいろあります。
一般に、パスワードとログイン情報は暗号化されませんが、これは変わりつつあります。通信アプリやメッセンジャーの中には、エンド・ツー・エンド暗号化をアピールしているものもありますが、これはよいスタートです。携帯モバイルデバイスや組み込み・埋設型のIoTデバイスにもこれは適用できます。
別のセキュリティ対策として、独立検証があります。独立検証では、例えば、電子メールにログインしようすると、携帯電話に通知が届き、ログインを試みたかどうか尋ねられます。さらに、別のデバイスでログインを試みたことをアカウント保有者に通知します。この方法は、ハッカーが逆方向通信路にアクセスできない場合に有効ですが、片方向通信だけの埋設IoTデバイスには応用できないかもしれません。Bluetooth®とWi-Fiで接続できる場合でも、通常はどちらも同じアクセスポイントを使用するからです。
デバイスのセキュリティ保護の課題
人間は検証ループ内で簡単に身元確認を行えます。例えば、「あなたはロボットですか」という質問に簡単に人間なら答えられますが、ほとんどの場合、組み込み機器は答えられません。IoTデバイスは小さく、安価で、基本機能しかないからです。しかし、高出力の処理リソースを追加するとなると、コスト的な負担が大きくなりすぎます。
IoTデバイスは今も大きな課題を抱えたままです。複雑なOSが入った高性能のデスクトップPCでも、頻繁に更新してセキュリティの欠陥にパッチを当てる必要があります。IoTデバイスにファームウェア更新機能を追加すれば、別の侵入口が開くことになります。
もう一つの課題は、攻撃のタイプを識別することです。中間者攻撃では、2つの通信デバイス間のデータストリームに誰かが侵入し、 データを傍受して書き換え、リモートハードウェアを乗っ取ります。
エンドポイント攻撃では、正規チャンネルを渋滞させ、脆弱なデバイスをだまして、検証技術をかわします。よりハイレベルな攻撃では、機器にバックドアを仕掛けて、ルーターやスイッチを乗っ取ります。DoS攻撃では、無意味なデータを大量に送ってデバイスをパンクさせ、ホストにアクセスできないようにします。低コストを維持すれば、外部からの保護もほとんどありません。
最善のソリューション
サイバーセキュリティの専門家は解決策に取り組み、いくつかの技術とアプローチを模索しています。ハードウェアのシリアライゼーションなどのスキームは、中間者攻撃、なりすまし、クローニング、リプレイといった攻撃に対抗できますが、初心者は追い払えても、プロには通用しません。それにほとんどのIoTデバイスはシンプルで、低コスト、価格志向です。複雑な認証アルゴリズムのコストを上乗せするのは難しいでしょう。
IoTデバイスとサーバー間で相互認証を行うSecure Vaultのアプローチにも同じことが言えます。マルチパスワード(またはマルチキー)方式を使用すると、サイドチャネル攻撃と辞書攻撃のリスクを軽減できます。IoTサーバーとIoTデバイス間の「共有秘密鍵」は、コンピューターとアーキテクチャ面のオーバーヘッドなしで実行可能です。しかし、どんな島でもつながれていれば、通信を盗聴・傍受され、リダイレクトされる可能性があります。
もう一つの研究アプローチは、物理的に複製が困難な関数(PUF)を利用する暗号化プロトコルです。このアプローチでは、物理的ハードウェアの固有の特徴に依存する入力から出力へのマッピングを使用し、秘密鍵の露出を最小限に抑えます。ただし、新しいハードウェアが現れるとオーバーヘッドとライフサイクルのサポート層が増えます。こうしたデバイスがあれば、誰でもすべての入力から出力へのマッピングをエミュレートできます。
引き続きデジタル署名を使う選択肢もあります。多要素認証は、オーバーヘッドの少ないデバイスとサーバーに実行可能で、デバイスはすべてのローカルテストに合格するために、ネットワークへのアクセスを許可されます。そしてこれが別の問題を起します。ハッカーは、地球の裏側からデバイスをハッキングするとは限りません。現地にやってきてツールを自由に操り、私たちが信頼している多くの防御策を出し抜くローカルハッカーもいます。
それは電話線に盗聴器を付ける昔の手口に似ています。ターゲットが地球の裏側にいる場合、複数の電話会社のコンピューターを乗っ取って、ターゲットの電話回線につながるのはかなり骨の折れる仕事です。しかし、その場所にいれば、シンプルに2本の線をつなぐだけですみます。
その他の考慮すべき手段
IoTデバイス向けのブロックチェーンを提案する人もいますが、コスト、環境、電力消費の点で、今のところ現実的ではありません。 さらに、認証が複雑なので、大半の低コストデバイスのプロセッサではまったく歯が立ちません。
今、支持を集めつつある技術は、Trusted Platform Module X.509証明書です。この技術ではチップを使って証明書とエンドースメント鍵を保存することができます。Public Key Infrastructure(PKIX)、およびTPMに保存されている秘密鍵を使用します。TPM鍵証明は、エンティティに証明書をリクエストさせることで、リクエスト側がRSA鍵を暗号論的に保護することを証明します。
実際のところユーザーは、快適さ、贅沢、安全性を得るために、組み込みの埋設IoTデバイスをセキュリティ保護したいと思っていないかもしれません。世界のどこかにいる誰かに電気を点灯されても、大したことではありませんから。だから、こうしたデバイスは低コストでシンプルなままなのかもしれません。
重要インフラの一部を構成するIoTデバイスの場合は、管理者に独立的通知を送ってアクセスを許可する方法があります。例えば、原子力発電所で管理者に「冷却バルブを閉めてもいいか」とテキストメッセージを送ります。一見シンプルな方法ですが、そのプロセスは複雑になるかもしれません。その場合はセキュリティが鍵を握ります。確かに障壁があり、当然懸念もありますが、もっとすばらしいソリューションが登場するまで、私たちは議論を続けなければなりません。しかし、今日のエンジニアの叡智を結集すれば、それが実現するのは時間の問題でしょう。