バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2017 Jan Winter vol.105

サイドチャネル攻撃への耐性を備えた超低消費電力プロセッサ

著者:Angela Raucher, Product Marketing Manager, ARC Processors, Synopsys

最近のIoT(Internet-of-Things)アプリケーションは暗号化や認証などのセキュリティ対策が強化されおり、ハッカーがデータを盗み取ったりネットワークの動作を妨害したりするのは困難になっています。しかし重要な情報であればあるほどハッカーは多くの時間と労力を費やして手に入れようとするため、価値の高い標的ほど脆弱であるともいえます。本稿では、ハッカーによる攻撃の中でも特にサイドチャネル攻撃を防ぐ手法についてご説明します。サイドチャネル攻撃とは、セキュリティ対策自体の弱点を突くのではなく、セキュリティ実装から物理的に漏れる情報を利用した攻撃をいいます。

身近な例として、誰にも気付かれないように数日間自宅を留守にする場合を考えてみましょう。外出することを誰にも告げず、人目につかない深夜に荷物を車に積み込み、室内の照明をいくつかつけたまま出かけたとします。それでも、郵便受けに新聞がたまっていたり、いつも同じ照明がついていたり、ふだんはよく鳴く犬が静かであったりすると、そのことを手がかりに近所の人や犯罪者は窓から室内をのぞき込んだり建物に侵入しなくてもその家が留守であると知ることができます。もちろんこれは非常に単純な例えであり、実際のサイドチャネル攻撃はもっと複雑ですが、基本的な考え方は似ています。システム・オン・チップ(SoC)に対するサイドチャネル攻撃を防ぐには、情報がどのような経路で奪われるのかを理解して対策をとることが重要です。特にIoT機器の場合は、こうした対策を低消費電力のプロセッサに実装する方法も考える必要があります。

先に述べたとおり、サイドチャネル攻撃はセキュリティ(主に暗号処理)の実装から得られる情報を利用します。SoCから「漏れる」情報としては、命令実行の処理時間(タイミング)、消費電力、電磁波などがあります。これらの情報から、暗号鍵のような秘密を解読できる場合があります。RSAトランザクションに対するサイドチャネル解析を例に説明してみましょう。RSAは主に鍵交換で使用される非対称暗号規格で、べき乗剰余算を基盤として利用しています。図1の例では、鍵のバイトが奇数なら自乗算を使用し、偶数なら自乗算と乗算を使用するという方法でRSAを実装しています。この場合、短いピークが0、長いピークが1と分かるため、初心者のハッカーでもオシロスコープを使えば秘密鍵を文字どおり「観察」できます。これは単純電力解析(SPA)と呼ばれる攻撃の例ですが、大量の暗号処理からサンプル・トレースを収集し、統計的手法を用いて相関により秘密鍵を解読するという高度な攻撃手法も存在します。

図1:暗号処理に対するサイドチャネル攻撃の例

図1:暗号処理に対するサイドチャネル攻撃の例

幸い、設計に十分注意すればSoCのタイミング、消費電力、電磁波から漏れる情報を難読化できます。サイドチャネル攻撃からシステムを保護する万能なソリューションは存在しません。暗号化のようなセキュリティ機能をシステムで実行する場合は、このことを十分考慮してSoCを設計する必要があります。

面積の制約またはフィールドでのアップデートのために、暗号化をプロセッサ上のソフトウェアで実行する必要のあるシステムでは、サイドチャネル攻撃を防止する機能を備えたプロセッサIPを選ぶことが重要です。プロセッサからはサイドチャネル情報が漏洩する可能性があるため、特に重点的な保護が必要です。スマートメーターのように、IoTアプリケーションによっては20年もの長期にわたってフィールドで使用されるものもあるため、常に最新の暗号規格にアップデートできるようにしておく必要があります。事実、スマートメーターや組込みSIMなどに関する規格では、サイドチャネル攻撃への耐性を仕様の一部に盛り込んだものも既に出てきています。また、一般にIoTアプリケーションは面積と消費電力の制約も厳しく、わずかなオーバーヘッドでセキュリティ機能を追加できる必要があるため、サイドチャネル攻撃の防止機能を備えた超低消費電力のプロセッサが強く求められます。

サイドチャネル攻撃への耐性を備えたプロセッサIPの例として、シノプシスのDesignWare® ARC® SEMセキュリティ・プロセッサがあります。このプロセッサは面積と消費電力を抑えつつ高い性能を達成しており、わずかなオーバーヘッドでIoTおよびモバイルSoCにセキュリティを追加できます。ARC SEMプロセッサはSecureShield™と呼ばれるセキュアな実行環境(TEE:Trusted Execution Environment)によりセキュア・コードとアプリケーション・コードを分離しているほか、悪意のあるハードウェア攻撃、ソフトウェア攻撃、物理攻撃を防ぐ機能も備えています。この中には、次のようにサイドチャネル攻撃の防止に特化した機能もいくつかあります。

カテゴリートップ