DPAPI

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バッファを復号する。

  1. ^ DPAPI Secrets. Security analysis and data recovery in DPAPI (Part 1)”. Passcape Software (2012年12月3日). 2016年7月3日閲覧。

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne