DPAPIとは - わかりやすく解説 Weblio辞書 (original) (raw)

DPAPI (英語: Data Protection Application Programming Interface、データ保護API) はシンプルな暗号化APIで、Windows 2000およびそれ以降のWindowsオペレーティングシステムに組み込みコンポーネントとして搭載されている。データ保護APIは様々な種類のデータについて対称暗号化(共通鍵暗号)を可能にする。Windowsオペレーティングシステムでの実際の主な用途は、非対称秘密鍵の対称暗号化を実施することで、ユーザーまたはシステムの機密情報をエントロピーの重要な寄与として扱うことである。

ほぼ全ての暗号システムにとって最も困難な試みは「鍵(キー)の管理」、特にどうやって復号鍵を安全に格納するかということである。もし鍵が平文で格納されているなら、他のユーザーは暗号化データのアクセスに使う鍵へ容易にアクセスできてしまう。もし鍵を暗号化するなら、他の鍵が必要になる、といったことなど。DPAPIはユーザーのログオン機密、あるいはシステム暗号化に関してシステムのドメイン認証機密から対称鍵を生成し、ソフトウェア開発者に暗号化手順を提供する。

DPAPI鍵は %APPDATA%\Microsoft\Protect\{SID} に記憶されているユーザーのRSA鍵を暗号化するのに使われる。SIDはそのユーザーのセキュリティ識別子である。DPAPI鍵はユーザーの秘密鍵を保護するマスター鍵として同じファイルに格納される。それは通常64バイトのランダムなデータである。

2010年にエリー・バーステイン (Elie Bursztein) とジーン・マイケル・ピコッド (Jean-Michel Picod) はBlack Hat DC 2010において Reversing DPAPI and Stealing Windows Secrets Offline というタイトルでその仕組みの分析についてプレゼンテーションを行った。その発表によると、バーステインとピコッドがリリースした_DPAPlck_はDPAPIで暗号化されたデータのオフライン復号を可能にする。2012年にPasscape SoftwareはブログでDPAPIの内部ロジックについてより詳細な記事を掲載し、完全なDPAPIオフライン復号・解析ツールを公表した[1]。これは先に挙げたものと異なり、いくつかの古いWindowsのバグ(例えば、Windows 2000 DPAPIの鍵を所有者のログオンパスワードを知ること無く復号できる)を利用していて、Windows 8 DPAPIデータ構造と完全に互換性がある。Windows 8ではマイクロソフトはDPAPIの処理ロジックを変更した。現在、使用されているユーザーのマスター鍵を復号するために複数のユーザー鍵が暗号鍵の生成に使われ、単一のDPAPIバッファを復号する。

セキュリティ特性

DPAPIはそれ自身ではデータを格納せず、単純に平文を受け取って暗号文を返す(またはその逆を行う)役割のみを持つ。

DPAPIのセキュリティはWindowsオペレーティングシステムのマスター鍵やRSA秘密鍵を解読から守る能力に依る。多くの攻撃シナリオでは、エンドユーザーの資格情報のセキュリティ度合いに依る。メインの暗号化・復号キーはユーザーパスワードからPBKDF2ファンクションによって作られる[2]。特に大規模なオブジェクトのバイナリデータはソルト(ハッシュ化に用いる追加のデータ)やユーザー入力による外部のパスワードを必要とする方法によって暗号化されることがある。

デリゲートアクセスはCOM+オブジェクトの使用を通してのみキーが与えられる。これはIISウェブサーバーでDPAPIを使用することを可能にする。

マイクロソフト製ソフトウェアでのDPAPI使用例

全てのマイクロソフト製品に共通して実装されているわけではないものの、マイクロソフト製品でのDPAPIの利用はWindowsのバージョンを経る毎に増えている。しかし、旧来のマイクロソフトやサードパーティー製メーカーの多くのアプリケーションは独自の保護機構を使うものが多かった。例えば、Internet Explorer 4.0-6.0、Outlook ExpressMSN Explorerは旧来の保護ストレージ(Protected Storage ; PStore)APIでパスワードなどの認証情報を格納している。Internet Explorer 7になってDPAPIを使ってユーザー認証情報を格納するようになった。[3]

脚注

  1. ^DPAPI Secrets. Security analysis and data recovery in DPAPI (Part 1)”. Passcape Software (2012年12月3日). 2016年7月3日閲覧。
  2. ^Windows Password Recovery - DPAPI Master Key analysis”. 2013年5月6日閲覧。
  3. ^ Mikhael Felker (2006年12月8日). “Password Management Concerns with IE and Firefox, part one”. SecurityFocus.com, Symantec.com. 2010年3月28日閲覧。
  4. ^CookieAuthenticationOptions.TicketDataFormat Property (Microsoft.Owin.Security.Cookies)”. 2015年1月15日閲覧。

外部リンク

マイクロソフトのAPIとフレームワーク
グラフィック Desktop Window Manager Direct2D Direct3D (拡張) GDI / GDI+ WPF Silverlight WinUI Windows Color System Windows Image Acquisition Windows Imaging Component
オーディオ DirectMusic DirectSound DirectX plugin XACT Speech API
マルチメディア DirectX (Media Objects Video Acceleration) DirectInput DirectPlay DirectShow Image Mastering API Managed DirectX Media Foundation XNA Windows Media Video for Windows
ウェブ MSHTML EdgeHTML RSS Platform JScript VBScript BHO XDR SideBar Gadgets
データアクセス Data Access Components Extensible Storage Engine ADO.NET ADO.NET Entity Framework Sync Framework Jet Engine MSXML OLE DB OPC
ネットワーク Winsock (LSP) Winsock Kernel Filtering Platform Network Driver Interface Specification Windows Rally BITS P2P API MSMQ MS MPI
コミュニケーション Messaging API Telephony API WCF
管理 Win32 console Windows Script Host WMI PowerShell Task Scheduler Offline Files Shadow Copy Windows Installer Error Reporting Event Log Common Log File System
コンポーネントモデル COM COM+ ActiveX Distributed Component Object Model .NET Framework
ライブラリ Base Class Library (BCL) Microsoft Foundation Classes (MFC) Active Template Library (ATL) Windows Template Library (WTL)
デバイスドライバ Windows Driver Model Windows Driver Foundation KMDF UMDF WDDM NDIS UAA Broadcast Driver Architecture VxD
セキュリティ Crypto API (CAPICOM) Windows CardSpace Data Protection API Security Support Provider Interface (SSPI)
.NET ASP.NET ADO.NET Base Class Library (BCL) Remoting Silverlight TPL WCF WCS WPF WF
ソフトウェアファクトリー EFx Factory Enterprise Library Composite UI CCF CSF
IPC MSRPC Dynamic Data Exchange (DDE) Remoting WCF
アクセシビリティ Active Accessibility UI Automation
テキストと多言語サポート DirectWrite Text Services Framework Text Object Model Input method editor Language Interface Pack Multilingual User Interface Uniscribe
人工知能 DirectML
一覧 カテゴリ:マイクロソフトのAPI