米国シノプシス
セキュリティIPプロダクト・マーケティング・マネージャー Dana Neustadter
人工知能(AI)は、新しいディープ・ラーニング技術の登場と投資の急速な拡大により、新しい技術革新やビジネス・モデルを次々と生み出しています。コンピューティング・アプリケーションにAIが浸透していくにつれて、システムのあらゆるレベルで高度なセキュリティの必要性が高まっています。AIシステムとそのデータおよび通信を保護することは、ユーザーの安全とプライバシーを保護するだけでなく、企業の投資を保護するという意味においても極めて重要となっています。本稿では、AIアプリケーションのどの部分にセキュリティが求められるのか、そして堅牢でセキュアなシステムを構築するための実装オプションについてご説明します。
人工ニューラル・ネットワークを利用したAIアプリケーションの動作には、学習ステージと推論ステージの2つがあります(図1)。学習ステージでは、ニューラル・ネットワークで顔や道路標識などを認識できるようにトレーニングを行います。学習の結果として重み(ニューロンとニューロンの結合の強さ)のデータ・セットが得られ、これを使用してニューラル・ネットワークを設定したものをモデルと呼びます。推論ステージでは、最終アプリケーションがこのモデルを使用して、実際に提示されたデータに関する情報を推論します。
図1:ディープ・ラーニングおよびAIの学習ステージと推論ステージ
ニューラル・ネットワークで使用するアルゴリズムは、顔や指紋などの画像を収集して解析することが多く、これらのデータにはプライバシーが要求されます。アルゴリズムはAIテクノロジの価値の大部分を占めています。多くの場合、学習に使用する大量のデータ・セットは公共施設の監視カメラ、顔/指紋認証機器、金融/医療アプリケーションなどから取得されますが、通常これらのデータには個人を特定できる情報が含まれています。こうした情報は、金銭入手やその他の目的のために犯罪組織や競合他社から攻撃を受ける可能性があります。また犯罪者の顔が検出されないようにするため、顔認識AIシステムに不正なデータを意図的に送信して画像分類機能などニューラル・ネットワークの誤動作を引き起こそうとする攻撃のリスクも考慮する必要があります。学習アルゴリズムおよびユーザー・データを適切に保護していないと、企業は信用面および金銭面で大きなダメージを受け、競争力を失う可能性があります。このため、信頼できるソースからのみデータを受信し、使用中のデータを確実に保護することが非常に重要になってきます。
学習プロセスを経て決定したニューラル・ネットの重みによって表現されるモデル自体にも大きな金銭的価値があり、重要な知的財産として保護する必要があります。ニューラル・ネットワークの処理機能に関連するプログラム・コードにはそれほど重大な機密性はありませんが、それでも外部からのアクセスを許してしまうとリバース・エンジニアリングを受けるおそれがあります。それよりも重大なのは、このコードが改ざんされるとセキュリティ境界の内側に平文として保存している資産が暴露される危険性があることです。
ビジネス上の理由以外にも、個人情報保護が求められる大きな要因として、2018年5月25日に欧州連合(EU)で施行された「一般データ保護規則(GDPR)」があります。これは、個人情報の収集と処理に関するガイドラインを法的枠組みとして定めたものです。GDPRではデータ管理の保護に関する原則と個人の権利が規定されており、この規則に違反した企業には巨額の制裁金が課せられます。
データとモデルはネットワーク・エッジとクラウドの間を移動するため、通信のセキュリティと真正性を確保することも必要です。データとモデルを保護すること、そして認可されたソースとデバイス間の通信によってのみダウンロードできるようにする必要があります。
セキュリティは、製品のコンセプト段階から廃棄に至るまでライフサイクル全体を通じて組み入れる必要があります。新しいAIアプリケーションやユース・ケースが次々と登場する中で、これらのアプリケーションを実行する機器には刻々と変化する脅威環境への適応力が求められます。このような機器に必要とされる高度な保護を実現するには、ニューラル・ネットワーク処理用システム・オン・チップ(SoC)を内蔵したエッジ機器から、この機器で実行されるアプリケーション、クラウドとの通信、そしてクラウド側のストレージまであらゆる要素に多面的なセキュリティを深く統合する必要があります。
システム設計者がAI製品にセキュリティを追加する場合は、オフライン、起動中、実行中、そして他の機器やクラウドとの通信も含めてあらゆる動作状態でAI製品が保護されるように、基本的なセキュリティ機能を理解しておく必要があります。システムが意図したとおりに動作しているという安心感をユーザーに与えるには、システムの完全性を確立することが重要です。
基本的なセキュリティ機能の1つ目に挙げられるのが、セキュア・ブートストラップです。これによって、製品のソフトウェアまたはファームウェアが改ざんされていない(完全性を備えている)ことを保証します。この完全性により、製品がリセット後にメーカーの意図したとおりの動作をすること、すなわち製品の動作がハッカーによって改ざんされていないことが保証されます。セキュア・ブートストラップ・システムは、ファームウェアの暗号署名を使用してその真正性を確認します。セキュア・ブートストラップ・システムは主にファームウェアですが、暗号アクセラレータやハードウェア・ベースのセキュア・ブートストラップ・エンジンなどのハードウェア機能を使用すると、セキュリティの向上とブート時間の短縮を図ることができます。また、ファームウェア・プロバイダまでトレース可能な信頼の鎖を使用した公開鍵署名アルゴリズムを使用することで、セキュア・ブート方式の柔軟性を最大限に高めることができます。公開鍵署名アルゴリズムは、鍵が破られた場合でも署名鍵を無効化して再発行することにより、認証局を置き換えることができます。この場合にもセキュリティが確保されるのは、ルート公開鍵がセキュア・ブートストラップ・システムによって保護されており、変更できないためです。公開鍵をハードウェアで保護すると、Root of Trustのアイデンティティの偽造を防ぐことができます。
基本的なセキュリティ機能の2つ目は、鍵管理です。どれだけ優れた暗号アルゴリズムも、鍵管理によって鍵を保護しなければ破られてしまいます。高度な保護を実現するには、秘密鍵をハードウェアRoot of Trust内部に格納する必要があります。また、ハードウェアRoot of Trust内部のパーミッションとポリシーにより、アプリケーション層のクライアントは十分に定義されたAPI(Application Programming Interface)を使用して間接的にしか鍵を管理できないように制限できます。秘密鍵を継続的に保護するには、鍵のインポート時に認証を実行し、鍵をエクスポートする際にはラッパー・レイヤでセキュリティを追加する必要があります。組込みハードウェア・セキュア・モジュール(HSM)用の一般的な鍵管理の1つに、PKCS#11インターフェイスがあります。このインターフェイスには、ポリシー、パーミッション、および鍵の使用を管理するための機能が用意されています。
基本的なセキュリティ機能の3つ目は、セキュア・アップデートです。クラウドでもエッジでも、AIアプリケーションは今後更に複雑さを増し、データとモデルを常時更新できるようにすることが必要になってきます。新しいモデルを安全に配信するには、そのプロセスをエンド・ツー・エンドのセキュリティで保護する必要があります。バグや脆弱性の修正、および製品機能の追加など、製品のアップデートは信頼できる方法で適用する必要があります。また、機器の販売後にハードウェアやファームウェアのオプション機能を有効にする場合も、柔軟でセキュアなアップデート機能を利用できます。
ここまでに述べた3つの基本的なセキュリティ機能を実装したら、次はAIシステムで扱うデータと係数を保護する方法を考える必要があります。多くのニューラル・ネットワーク・アプリケーションは、音声や静止画像/動画ストリームなどのリアルタイム・データを扱います。これらの大容量データ・セットはプライバシー保護が必要となるものが多く、DRAMなどのメモリー、ローカル・ディスク、フラッシュ・メモリーに格納されたデータの保護が不可欠です。このため、広帯域メモリー暗号化(通常はAESを使用)と強力な鍵管理ソリューションを組み合わせる必要があります。同様に、モデルは暗号化と認証、およびハードウェアRoot of Trustを備えた強力な鍵管理システムで保護します。
エッジ機器とクラウドの間の通信にセキュリティと真正性を確保するには、相互識別/認証の機能を持つクライアント認証TLS(Transport Layer Protocol)などのプロトコルを使用します。TLSはセッション・ハンドシェイクによって識別と認証を実行し、これに成功すると双方が合意した共有セッション鍵が生成され、これを使用してシステム間で認証されたセキュアな通信を行います。この識別と認証、およびデータ自体の機密性と真正性を確保するための認証資格情報(クレデンシャル)のセキュリティは、ハードウェアRoot of Trustで保護します。多くの場合、クラウドとの通信には広い帯域幅が必要になります。より多くのAI処理がエッジで行われるようになると、エッジ側にも高性能なセキュリティ要件が求められるようになってきます。例えば、ニューラル・ネットワークへの入力やAI学習モデルが改ざんされるのを防ぐために認証機能を追加することも必要になります。
AIシステムを構築するには、高性能・低消費電力で面積の小さいプロセッサと各種インターフェイス、およびセキュリティが必要です。図2は、AIアプリケーションで使用するセキュアなニューラル・ネットワーク・プロセッサSoCのアーキテクチャ概要を示したものです。ニューラル・ネットワーク・プロセッサSoCは、DesignWare® IPなどの実証済みIPを使用してインプリメントすると、より高いセキュリティを実現できます。
図2:DesignWare IPを使用したセキュアな実行環境(TEE:Trusted Execution Environment)により、AIアプリケーション向けニューラル・ネットワークSoCのセキュリティを確保
シノプシスEV6xエンベデッド・ビジョン・プロセッサはスカラー、ベクターDSP、および畳込みニューラル・ネットワーク(CNN)処理ユニットを統合することで、高速かつ高精度なビジョン処理を実現しています。EV6xは完全プログラマブル/コンフィギュラブルなエンベデッド・ビジョン・プロセッサで、専用ハードウェアならではの高性能、低消費電力とソフトウェア・ソリューションの柔軟性を両立させています。CNNエンジンは、AlexNet、VGG16、GoogLeNet、YOLO、SqueezeNet、ResNetを含む一般的なニューラル・ネットワーク構成をサポートします。
強力なセキュリティをSoCに統合していただけるよう、シノプシスはRoot of Trustを備えたtRootハードウェア・セキュア・モジュール(HSM)をご提供しています。tRoot HSMは1個以上のホスト・プロセッサと組み合わせて使用でき、セキュアな識別/認証、セキュア・ブート、セキュア・アップデート、セキュア・デバッグ、鍵管理などさまざまなセキュリティ機能をセキュアな実行環境(TEE)で実現するスケーラブルなプラットフォームを提供します。tRootはランタイム改ざん検出/レスポンスやコード・プライバシー保護など独自のコード保護メカニズムによりAIデバイスを保護します。この機能は専用のセキュア・メモリーを必要としないため、tRootのファームウェアを非セキュアな任意のメモリー空間に置くことができ、システムの複雑さとコストを抑えることができます。通常、tRootプログラムは共有のシステムDDRメモリーに置いて使用します。tRootのセキュア・メモリー・コントローラーは機密性と完全性を備えており、このメモリーをtRoot専用のプライベート・メモリーとして利用できるため、オンチップまたはオフチップにある他のサブシステムから改ざんを受ける心配がありません。
シノプシスDesignWareセキュリティ・プロトコル・アクセラレータ(SPAcc)は効率的な暗号化および認証機能を備えた統合型の組込みセキュリティ・ソリューションで、高い性能と使い易さに加え、サービス品質(QoS)、仮想化、セキュア・コマンド処理を含む高度なセキュリティ機能を実現します。これまで以上に柔軟な設定を可能にしたSPAccは、IPsec、TLS/DTLS、WiFi、MACsec、LTE/LTE-Advancedなどの主要なセキュリティ・プロトコルをサポートし、現在の多機能/高性能SoCデザインに共通する複雑なセキュリティ要件に対処します。
AIは今、世界に革命を起こそうとしています。AIがもたらす可能性は計り知れず、今実現しているものはその片鱗に過ぎません。AIソリューション・プロバイダーは研究開発に多額の投資をしています。このため、ニューラル・ネットワークとその学習によって得られたモデルは適切に保護する必要があります。また、GDPRなどの新しい法律が施行され、個人情報のプライバシーおよび機密性保護には厳しい目が向けられていることもあり、AIソリューション・プロバイダーにとってAI製品のセキュリティを確保することの重要性はますます大きくなっています。
シノプシスは、新しいAI時代のアプリケーションを実現するセキュアでインテリジェントなソリューションを開発していただけるよう、ハードウェア/ソフトウェア・セキュリティおよびニューラル・ネットワーク・プロセッシングIPを幅広くご提供しています。
詳細情報