公開日:31、2022
enCRYPTの物語: DFA攻撃からアプリケーションを保護する
2023年は暗号技術にとって波乱に満ちた年となるでしょう。FIPS 140-3の認証取得や、より本格的な検討が始まるでしょう。 量子コンピューティングが暗号化に与える影響さらに、暗号作成者を悩ませてきた強力なDFA攻撃に対する保護が強化されるでしょう。2023年は、2001年に当時の新しいAdvanced Encryption Standard(AES)仕様が完成し、数学的に安全で高性能な暗号化アルゴリズムが一般に公開されて以来、暗号技術にとって最もエキサイティングな年になるかもしれません。
AESは、数学的な弱点が露呈し始め、攻撃者が利用できる計算能力の増大に対して脆弱になりつつあった旧式の暗号化アルゴリズムを置き換えるために設計され、データ保護を試みる人々の手に力を取り戻しました。攻撃者はすぐに、ブルートフォース攻撃やAESの数学的な攻撃は効果がなく、新しいアプローチが必要であることを認識しました。
2002年にこのテーマに関する最初の研究論文が発表された差分障害解析(DFA)は、実行時にアプリの暗号コードに「障害」を注入し、アプリの動作の変化を観察することで、アプリから暗号鍵を復元する攻撃手法です。障害とは、基本的に内部計算のビットを反転させ、その変化を観察することです。障害は、ハードウェアデバイスの電力レベルを変化させたり、ソフトウェアのメモリビットを変更したりするなど、さまざまな方法で注入できます。
攻撃者は、アプリの様々な箇所に障害を注入し、暗号演算の出力が特定の方法で変化する箇所を見つけ出します。暗号演算の出力がどのように変化するかに基づいて、DFAといくつかの計算により暗号鍵を復元できる可能性があります。これらの鍵が復元されると、それらで暗号化されたデータは脆弱になり、危険にさらされます。
もともとDFAは、主にハードウェアデバイスに対する攻撃でした。ハードウェアデバイスでは、攻撃者がマシンコードを容易に閲覧することはできませんでした。ソフトウェアの場合ははるかに単純で、暗号鍵は通常、アプリコード内で明確に表示され、逆アセンブラなどのツールで簡単に表示できました。長らく、暗号化を行うコードは安全な環境に保管されており、攻撃者はアプリコードを簡単に確認して鍵を見つけることができませんでした。かつて、こうした環境はテクノロジー企業の物理的な所有物でした。今日では、すべての企業がテクノロジー企業であり、テクノロジー/ソフトウェア/秘密/鍵の物理的および「仮想的な」セキュリティは、ほとんどの場合、AWS、Google Cloud、Microsoft Azureなどの巨大企業の強力な手に委ねられています。
2023年に私たちが直面するもう一つの違いは、私たちが生み出すテクノロジーの多くが、(私たちが想定している)十分に保護されたクラウドや企業のデータセンターには存在しないということです。むしろ、ソフトウェアやテクノロジー、そして鍵でさえも、消費者が携帯電話、デスクトップパソコン、スマートテレビ、自動車にインストールするアプリの中に存在します。なぜなら 脅威アクター アプリを構成する命令を見るだけで済むようになった今、ソフトウェアアプリは暗号ルーチンと鍵を保護する必要があります。ホワイトボックス暗号はまさにこの懸念に対処するために2002年に導入されました。これは、最初のDFA論文が発表されたのと同じ年です。
ホワイトボックス暗号は、攻撃者がコードやデータを自由に操作できるアプリにおいて、安全な暗号実装を提供することを可能にするために導入されました。ホワイトボックス暗号は、与えられた入力に対して通常の暗号実装と同じ出力を得る方法ですが、その内部構造は標準的な暗号実装とは全く異なります。そのため、攻撃者が何が起こっているのかを理解することは非常に困難です。ホワイトボックス暗号の実装を理解することが困難だったため、ハードウェアにおける成功を踏まえ、攻撃者はソフトウェア実装におけるホワイトボックス暗号への対抗手段としてDFAを使用するようになりました。
DFAはますます一般的になりつつあります。様々なセキュリティ研究者がカンファレンスでDFA攻撃について講演し、ハードウェアおよびソフトウェアのDFA攻撃を実装し、その手法を公開しています。DFAはもはや学術界やハイエンドのセキュリティ研究所に限定された攻撃ではなく、現実世界でも攻撃が蔓延しており、攻撃コードの拡散と武器化に伴い、報告される攻撃の頻度が増加しています。
DFAの有効性と汎用性が高まるにつれ、DFAに対する防御策が進化に追いつき、アプリ内の暗号化ルーチンを保護できるようにすることが不可欠です。DFA攻撃に対する防御を最大限に強化するために、いくつかの対策を講じることができます。
まず、DFA を防御するように設計され、信頼できる第三者機関によってテストされた最新のホワイトボックス暗号実装を使用していることを確認することです。攻撃は時間の経過とともに巧妙化するため、新たな攻撃に対応できるよう積極的に開発されているホワイトボックス実装を使用することが重要です。
次に、アプリケーションがアプリシールド(アプリ内保護とも呼ばれる)を使用していることを確認する必要があります。 コード難読化攻撃者がDFA攻撃を仕掛けることをそもそも困難にするために、耐タンパー性、コードリフティング対策などの技術が活用されています。難読化されたアプリケーションは、攻撃者がどこに障害を注入すればよいかを把握することを困難にします。また、攻撃を受けていることを認識できるアプリケーション(耐タンパー性を備えたアプリケーション)は、攻撃が進行する前に即座に対策を講じることができます。
モバイル、デスクトップ、サーバーアプリを保護する方法の詳細については、 Digital.ai ホワイトボックス暗号化ソリューション概要.