暗号の専門知識を必要としないセキュア認証の実装

要約

認証は重要です。既存のシリコンベースのソリューションによって、暗号の実装に関する専門家でなくても認証を実現することができます。

はじめに

デジタルセキュリティは、今日の電子設計において最も多く報道される話題の1つです。エンジニアがセキュリティについて考えるとき、おそらく最初に思い浮かぶ言葉は暗号化で、同じエンジニアの中でも認証を思いつく人はごくわずかです。しかし、認証はセキュアな機器または商取引の基本的な機能です。

ホームバンキングに関する認証について考えてみましょう。残高や口座番号などの機密情報を暗号化する必要があることは明らかです。インターネットブラウザが緑色の錠アイコンとhttps://で始まるアドレスを表示している場合、暗号化されています。とは言え、安全な接続を確立するときにインターネットブラウザが最初に確認するのは、銀行のウェブサイトが本物かどうかです。言い換えると、銀行のウェブサイトを認証します。認証を行わないと、ログインおよびパスワード情報を偽装サイトに送信する可能性があるため、これはもちろん非常に危険なことで、それらの認証情報をさらに再利用して、銀行口座の持ち主が気付かないうちに、本人に代わってあらゆる種類の不正な取引を行うことができます。安全なインターネットの閲覧は一般的にTLS/SSLプロトコルを介して実現され、このプロトコルが暗号化以外の真正性と機密性を確保します。

認証は、モノのインターネット(IoT)アプリケーションにとっても重要です。信頼性のない1つのエンドポイントが、インフラストラクチャ全体を危険に晒す可能性があります。配電システムに接続されたスマートメーターを考えてみましょう。攻撃者がグリッドを混乱に陥れる簡単な方法は、ウィルスやマルウェアをスマートメーターにロードすることです。感染したメーターは、実際とは大きく異なる消費電力を示す偽のメッセージをインフラストラクチャに送信することで、グリッドが不安定になる原因となります。グリッドが過大報告している場合、過剰な電力がどこか他の場所に配電される状態になりますが、グリッドが過小報告している場合は、電力のサージを引き起こします。最悪の場合、この攻撃をきっかけとして、グリッドの不安定により完全な停電が発生します。この状況を防止するには、メーターのハードウェアとファームウェアの両方が真正であることを検証する必要があります。ファームウェアを認証するプロセスは、セキュアブートと呼ばれます。

効果的な認証方式の実装

認証の重要性を理解したので、どのように認証を実装するか検討しましょう。認証のための最も平凡な方法は、パスワードを使うことです。スマートメーターの例では、デバイスがパスワードをグリッド制御システムに送信可能です。サーバーはパスワードを検証し、その後のトランザクションを許可します。この方式は理解しやすいものの、決して最良の方式ではありません。攻撃者は通信を容易に傍受して、パスワードを記録し、それを再利用して不正な機器を認証することができます。この理由から、パスワードベースの認証は弱いと考えられます。

デジタルの世界で認証を実行するためのはるかに優れた方法は、チャレンジ-レスポンス方式です。チャレンジ-レスポンス方式には、対称暗号ベースの認証と非対称暗号ベースの認証の2種類があります。

対称暗号認証

対称暗号ベースの認証は、共有されたシークレットを使用します。ホストと認証対象のデバイスは、同じシークレットナンバーを保持します。ホストはチャレンジとして乱数をデバイスに送信します。デバイスはシークレットとチャレンジの関数としてデジタル署名を計算し、それをホストに送り返します。ホストは同じ計算を実行し、結果を比較します。両方の計算結果が一致した場合、デバイスは認証されます(図1)。結果の模倣ができないことを確実にするには、適切な数学的性質を備えた関数を使用することが不可欠です。たとえば、必須の計算結果なしにシークレットの取得を不可能にする必要があります。SHA-256などのセキュアハッシュ関数は、これらの要件に対応します。チャレンジ-レスポンス方式の場合、デバイスはシークレットを明かすことなく自分がシークレットを知っていることを証明します。たとえ攻撃者が通信を傍受した場合でも、共有するシークレットにアクセスすることはできません。

図1. 対称暗号ベースの認証は、ホストとデバイスの間で共有されるシークレットナンバーを使用します。

非対称暗号認証

非対称暗号ベースの認証は、プライベート鍵とパブリック鍵(公開鍵)の、2つの鍵を使用します。プライベート鍵は、認証対象のデバイスのみが知っているのに対し、パブリック鍵(公開鍵)はそのデバイスを認証しようとするあらゆる対象に公開することができます。先ほど解説した方式と同様、ホストはデバイスにチャレンジを送信します。デバイスはチャレンジとプライベート鍵に基づいて署名を計算し、ホストにそれを返送します(図2)。しかしここで、ホストはパブリック鍵(公開鍵)を使って署名を検証します。この場合も、署名の計算に使用する関数が特定の数学的性質を備えていることが重要です。非対称方式に使用される最も一般的な関数は、RSAとECDSAです。この場合も、デバイスはシークレット(プライベート鍵)を明かすことなく、自分がそれを知っていることを証明します。

図2. 非対称鍵認証は、パブリック鍵(公開鍵)とプライベート鍵を使用します。

図2. 非対称鍵認証は、パブリック鍵(公開鍵)とプライベート鍵を使用します。

なぜセキュリティICは認証にとって有益か

チャレンジ-レスポンス認証では、認証対象物がシークレットを保持していることが常に必要とされます。対称暗号の場合、これはホストとデバイスの間で共有されるシークレットです。非対称暗号の場合、これはプライベート鍵です。いずれの場合も、チャレンジ-レスポンス認証によって実現されるセキュリティは、シークレットが明らかになると破綻します。ここでセキュリティICが役立ちます。セキュリティICの基本的機能の1つは、鍵とシークレットの強力な保護を提供することです。

マキシムは、認証をサポートする3つのソリューションファミリを提供しています。

  • 認証用IC:これらは、設定可能ですが限定された機能を有し、一連の暗号処理に従ってチャレンジ-レスポンス認証を実装するための最も低コストな方法を提供するデバイスです。
  • セキュアマイクロコントローラ:これらのデバイスは、チャレンジ-レスポンス認証のサポートに加えて、暗号化を含む暗号機能一式を提供します。
  • 低電力マイクロコントローラ:これらはセキュリティのみを目的とした製品ではありませんが、強力な認証を実現するために必要なすべての構成要素を備えています。

認証用IC

認証用ICの中で、SHA-256ベースの製品は共有シークレットを使用する認証をサポートするのに対し(図3)、ECDSAベースのICはプライベート/パブリック鍵(公開鍵)ペアを使用します(図4)。これらの製品は、暗号エンジン以外にEEPROMメモリを内蔵しています。このメモリは設定可能で、センサーの較正情報などの認証済みユーザーデータの保存に使用することができます。

SHA-256ベースの製品は、最も低コストのソリューションです。これらのデバイスは相互認証を可能にしますが、共有シークレットの配布に何らかの予防措置を講じて、デバイスの製造およびセットアップ時にシークレットが漏洩しないようにする必要があります。マキシムから出荷する際にシークレットをプログラムすることによって、この欠点を回避することができます。

図3. SHA-256セキュア認証は、共有シークレットをベースとしています。

図3. SHA-256セキュア認証は、共有シークレットをベースとしています。

マキシムのDS28E15/DS28E22/DS28E25 ICはSHA-256技術をベースとしており、内蔵メモリサイズが異なります。ホスト側とデバイス側の両方に同じシークレットが保存されるため、ホスト側にDS2465などのコプロセッサを使用することが推奨されます。

DS28C36DS28E35などの非対称暗号ベースの製品は、ホスト側で鍵を漏洩から保護する必要がないため、より柔軟な方式を提供します。しかし、パブリック鍵(公開鍵)の計算をオフロードし、その他のセキュア操作を提供するために、DS2476 (DS28C36のコンパニオンIC)などのホスト側コプロセッサが提供されており、システムソリューションの開発を簡素化することができます。

図4. ECDSAベースの認証は、プライベート/パブリック鍵(公開鍵)ペアを使用します。

図4. ECDSAベースの認証は、プライベート/パブリック鍵(公開鍵)ペアを使用します。

対称および非対称暗号のサポートを備えたセキュアマイクロコントローラ

マキシムは、Linuxなどの高度なオペレーティングシステムの実行が可能なアプリケーションクラスプロセッサのMAX32590 (ARM9、384MHz動作)から、MAX32555MAXQ1061などの小型実装面積コプロセッサまで、広範囲のセキュアマイクロコントローラを提供しています。

これらのマイクロコントローラは、対称暗号と非対称暗号の両方のデジタル署名と認証および暗号アルゴリズムに対応します。これらのデバイスは、SHA、RSA、ECDSA、およびAES用のハードウェアアクセラレータとともに、標準規格に沿ったターンキーAPIを提供する完全な暗号ライブラリを備えています。これらのデバイスはセキュアブートを内蔵しているため、ファームウェアの真正性が常に保証されます。これらのデバイスは、広範な暗号機能一式によって複数の認証方式を扱うことができます。

MAXQ1061は、認証を実現するのみではなく、IP上の標準セキュア通信プロトコルであるTLS/SSLの最も重要なステップの処理も行うコプロセッサです。チップ内でTLSプロトコルを処理することでセキュリティレベルが改善され、メインプロセッサが集約的な計算作業から解放されます。これはリソースに制約のあるエンベデッドシステムにとって非常に価値があります。

低電力マイクロコントローラ

MAX32626などの低電力マイクロコントローラはウェアラブル機器を対象としており、セキュリティ機能が重要視されるICではありません。しかし、攻撃の頻度がますます高まっているため、この製品は将来のセキュリティの課題を念頭に設計されています。そのため、MAX32626は認証をサポートするハードウェア信頼保護ユニットと暗号化および内蔵セキュアブート用のハードウェアAESを備えています。

このアプリケーションノートと同様の記事が2016年11月30日にEE Times Europeに、また2017年1月24日にElektronikPraxisに掲載されました。