存在しない鍵を盗むことはできません

2017年11月21日

Ben Smith 筆者:Ben Smith
マキシム・インテグレーテッド エンベデッドセキュリティ テクニカルスタッフ主要メンバー


DNAは面白いものです。私たちを、地球上の他の1人1人の人間と結び付けているものであると同時に、私たち1人1人に独自性を与えているものでもあります。あなたと完全に同じDNAを持つ人間は、この世界に1人も、本当に誰1人いないのです。

近年になって、私たちはその独自性を本人特定の明確な手段として使う方法を学びました。一部の、誤って有罪を宣告された人たちは、DNA鑑定によって疑いが晴れ、無罪になりました。逆に、DNAが有罪の決定的証拠になった人たちもいます。私たちの誰もが、体を構成する細胞の1つ1つの中に、本人特定の絶対的な証拠を持っているのです。

それと対照的なのが、テクノロジーの世界です。その世界では、1つのタイプのデバイスは、すべての個体がわずか1ミクロン、1µV、1バイトまで、完全に同一である必要があります。各デバイスが、同じ外観、同じ感覚、同じ動作である必要があります。多くの場合、これは良いことで、現代的テクノロジーの制作者は一貫したユーザー体験を提供する必要があります。しかし、その正確な同一性がセキュリティにとっては大きな問題となります。

どのようにして真正性を確保するか?

その理由は、すべてのデバイスが同一であるため、特定のデバイスから来たと主張するメッセージが、本当にそのデバイスから発せられたものかどうか判断するのが困難だからです。それらのメッセージは、なりすましのデバイスから来たものかも知れません。たとえば、正しいコードが入力されたのでドアを開けるようにというメッセージを、ドアアクチュエータがアクセスキーパッドから受信したとします。しかし、そのメッセージが本物かどうか、アクチュエータはどうやって判断することができるでしょう?

顔を合わせるコミュニケーションでは、これは問題になりません。顎のかたち、左右の耳、声などを知っている相手であれば、誰と話しているかすぐ分かるからです。つまり、私たち1人1人を独自なものにしているDNAの物理的特性がどのように現れているかを知っているからです。私たちの使うデバイスにも、そのような種類の独自性があれば良いのです。

それが、マキシムがChipDNA技術を開発した理由です。ChipDNA技術を採用したデバイスは、たとえ各デバイスが機能的に同一であっても、それぞれを独自にする要素を含んでいます。ChipDNAを装備したデバイスの深部には、チップ自体の特定の物理的特性を測定する回路要素があります。ここで、これらの物理的特性は時間の経過に対して安定していますが、各デバイスごとに変化します。ChipDNAのロジックは、これらのデバイス固有の変動を使って、計算を繰り返しても同じままでありながら、デバイスの特定の個体ごとに独自になる値を計算します。この値は、ちょうどDNAがあなたを固有に識別するように、デバイスを固有に識別します。

送信元の身分証明とメッセージの完全性の確保が重要である理由を示すために、簡素なシナリオを考えてみましょう。遠隔地にセンサーがあり、そのセンサーから問題があるというメッセージが送信されてくるとします。どうすれば、そのメッセージの真正性を信頼することができるでしょうか?いくつかのオプションがあります。

オプション1:共有シークレット

センサーを配備する前に、シークレット(恐らくパスワード)を設定しておきます。その後、センサーがメッセージを送信するときに、双方が合意した何らかの形でそのパスワードをメッセージに取り入れます。メッセージを受信した場合、パスワードが正しく送信されていることを確認し、パスワードが正しければメッセージを受け入れます。

問題は、そのパスワードがそのタイプのすべてのセンサーで同一であると、攻撃者にデバイスをリバースエンジニアリングされ、パスワードを盗まれる可能性があります。その場合、そのタイプの任意のデバイスからのメッセージをなりすましで送信することが可能です。さらに悪い状況として、パスワードが暗号保護なしで送信される場合、攻撃者はまったくデバイスに触れる必要がなく、単に通信を傍受するだけでパスワードを入手することができます。つまり、どこに配備されているどのセンサーにでもなりすますことが可能です。共有シークレット方式は、答にはなりません。

オプション2:パブリック鍵(公開鍵)暗号

機器にプライベート鍵を設定すると、対応するパブリック鍵を使って検証可能なプライベート鍵でメッセージにデジタル署名をすることができます。この方法で署名されたメッセージは、ほぼ確実な認証が可能です。署名されたメッセージは改変や捏造がほぼ不可能で、この「ほぼ不可能」というのは、署名者のプライベート鍵なしに妥当な時間で署名者になりすます既知の方法が存在しないという意味です。

問題は、そのシークレット、プライベート鍵が対象デバイスのメモリスペース内のどこかに存在する必要があるということです。攻撃者がマルウェアを侵入させることができれば、そのマルウェアは容易にプライベート鍵をリークさせることができます。一度マルウェアが開発されると、ファームウェアアップデート機構を使ったマルウェアの伝播が可能で、短期間のうちに、攻撃対象のデバイスの多くがセキュリティ侵害を受けることになります。簡素な共有シークレットよりはましですが、最善のオプションではありません。

オプション3:ChipDNA技術

ChipDNA技術は、絶対に(所有者にさえ)公開されないプライベート鍵によって、従来のパブリック-プライベート鍵システムの問題を克服します。実のところ、そのプライベート鍵は実際に必要になるまでデバイス内に存在すらしていません。代わりに、ChipDNAロジックによって計算される値は、メッセージに署名する準備ができたときにのみハードウェア内で生成され、その後ただちに破棄されます。計算された値は、マイクロコントローラのメモリマップには決して現れません。以下に、ChipDNAの使用方法の一例を示します。

機器メーカーがモノのインターネット(IoT)機器を配備する前に、ChipDNA値(プライベート鍵)に対応するパブリック鍵(公開鍵)を計算するようChipDNAハードウェアに命じます。実際のChipDNA値は決して公開されません。次に、機器メーカーはパブリック鍵(公開鍵)に自社の法人プライベート鍵で署名して証明書を作成し、デバイスに書き戻します。法人プライベート鍵なしに有効な証明書を作成することは誰にもできないため、その後、その証明書によって、デバイスが提示するパブリック鍵(公開鍵)が出荷時に計算されたものと同じであることを証明することが可能です。

配備の後、IoT機器がメッセージを送信するときには、ChipDNA値を再計算し、その値をプライベート鍵として使用することによってメッセージに署名することができます。メッセージの受信側がその機器のパブリック鍵(公開鍵)を持っている場合、そのメッセージが真性で、改変されておらず、その特定の機器から来たものであることを高い精度で検証することができます。

ChipDNA技術は物理的複製防止機能(PUF)をベースとして侵入型攻撃に対する保護を提供します。

しかし数百万のIoT機器が出回っている中で、いったい誰が個々のIoT機器に属するパブリック鍵(公開鍵)のデータベースを管理しているのでしょうか? IoT機器からのメッセージを受信する側が必ずその特定の機器のパブリック鍵(公開鍵)を持っているとは考えられません。しかし、その機器自体にリクエストを送信して、機器のパブリック鍵(公開鍵)証明書を要求することができます。その機器が証明書を送信すると、受信側は2段階のプロセスを使って証明書の有効性を確認することができます。第1に、受信側は署名者のパブリック鍵(公開鍵)を使って証明書の署名を検証します。証明書の有効性が証明されると、受信側は第2のステップに進み、証明書に含まれているパブリック鍵(公開鍵)を使うことによって、機器のメッセージの有効性をテストすることができます。これは複雑なシステムのように思えるかも知れませんが、プロセス全体にかかる時間は1秒以下です。

侵入型攻撃からIoTを保護する

問題は、このシステムがどれほど安全かということです。こう考えてください。チップの物理的特性が測定されるまでプライベート鍵は存在することなく、測定が行われた場合でも、プライベート鍵は使用後に破棄されます。プライベート鍵は、セキュリティが確保され、強固に防護されたハードウェア内にのみ存在し、マイクロコントローラの実メモリスペース内には存在しないため、不正なファームウェアの使用によってプライベート鍵を発見することはできません。たとえ攻撃者がチップ自体のプローブを試みたとしても、デバイスに対するプロービングの行為そのものによって、ChipDNA値を決定するために測定される特性が変化するため、プライベート鍵を復元する可能性が完全に破壊されます。

ここではChipDNAを使ってIoT機器から来るメッセージが真性かつ改変されていないことを絶対的に保証する方法を見てきましたが、ChipDNAは、ファームウェアイメージの検証から機器の正当な使用の管理まで、他の多数の目的にも使用することができます。ChipDNAは、トランザクションに関わる機器のIDを絶対的に保証する必要があるすべての場合に使用することができるため、可能性は真に無限です。

ですから、次の製品に必要なセキュリティを検討するときには、利用可能な最も厳格で最強の保護であるChipDNA技術以外のもので妥協しないでください。結局のところ、存在しない鍵を盗むことはできないのです。