مقدمه
در میان انبوه فناوریهای امنیتی مایکروسافت ویندوز، برخی از اجزای سیستم تعیین هویت رفتاری متفاوتتر و پیچیدهتر از سایر بخشها دارند. معماری معمول در ویندوز بر اساس اعتبارنامههای کاربر (User Credentials)، هشهای رمز عبور، و توکنهای Kerberos یا NTLM بنا شده است. با این حال، ساختاری در لایههای عمیقتر سیستمعامل وجود دارد که نوعی «هویت رمزگذاریشده» را در درون دادهها نگه میدارد؛ مکانیزمی به نام Data Protection API (DPAPI) و تعامل آن با Local Security Authority (LSA Secrets). این ساختار نه تنها به عنوان واسطهای برای رمزگذاری امنیتی عمل میکند، بلکه در عمل بخشی از سامانهی احراز هویت غیرمستقیم ویندوز به شمار میرود.
بخش اول: DPAPI چیست؟
DPAPI از زمان ویندوز 2000 معرفی شد، با هدف تسهیل رمزگذاری دادههای حساس کاربر مانند رمزهای عبور ذخیرهشده، کلیدهای خصوصی، و دادههای رمزنگاری شخصی که در فضای کاربر ذخیره میشوند. در هسته فنی DPAPI، دو API اصلی وجود دارد:
- CryptProtectData()
- CryptUnprotectData()
زمانی که کاربر در ویندوز وارد سیستم (Logon) میشود، سیستمعامل از هش رمز عبور کاربر (NT Hash)، شناسه امنیتی کاربر (SID)، و یک مقدار تصادفی (Salt) برای تولید چیزی به نام Master Key استفاده میکند. این کلید در مسیر زیر ذخیره میشود:
C:\Users\<User>\AppData\Roaming\Microsoft\Protect\<SID>\
Master Key به عنوان قلب DPAPI عمل میکند و تمامی دادههای رمزگذاریشده با استفاده از آن قابل بازگردانی هستند؛ اما نکته عجیب و کمتر شناختهشده این است که این کلید خود به طور غیرمستقیم معرف هویت منحصربهفرد کاربر است.

بخش دوم: LSA Secrets و نقش آن در نگهداری Master Keys
LSA (Local Security Authority) یکی از حیاتیترین مؤلفههای امنیتی ویندوز است که وظیفه اعتبارسنجی تعاملات امنیتی در سطح سیستمعامل را دارد. LSA دارای ساختاری داخلی به نام LSA Secrets است که در رجیستری ویندوز نگهداری میشود، در مسیر زیر:
HKEY_LOCAL_MACHINE\Security\Policy\Secrets
در این محل، ویندوز مقادیری رمزگذاریشده ذخیره میکند؛ از جمله رمزهای عبور سرویسها، توکنهای شبکه، و دادههای حساس Kerberos. یکی از دستههای خاص این دادهها، اطلاعات مورد نیاز برای رمزگشایی Master Keys مرتبط با DPAPI است.
به بیان ساده، LSA Secrets نقش نوعی حافظه رمزنگاریشده از هویت فعلی کاربران و سرویسها را دارد. حتی اگر دسترسی Administrator نیز وجود داشته باشد، خواندن مستقیم این مجموعه دادهها بدون فرایند رمزگشایی صحیح ناممکن است. نکته حیرتآور اینکه ویندوز حتی از Master Key برای بازسازی برخی اعتبارنامههای درونی خود استفاده میکند.
بخش سوم: ارتباط غیرمستقیم با مکانیزم تعیین هویت
در نگاه نخست، DPAPI یک سرویس رمزگذاری داده است نه احراز هویت. اما در عمل، رفتار آن مستقیماً به هویت واقعی کاربر گره خورده است. هنگامی که DPAPI دادهای را رمزگذاری میکند، از هویت فعلی Session کاربر برای مشتقسازی کلید رمز استفاده مینماید. در نتیجه، اگر فرد دیگری حتی با سطح دسترسی مشابه تلاش کند آن داده را رمزگشایی کند، موفق نخواهد شد.
به این ترتیب، سیستم ویندوز از DPAPI برای درونیسازی هویت استفاده میکند. دادهها تنها در حضور "توکن واقعی کاربر" قابل رمزگشایی هستند، و بدین معناست که بخشی از هویت دیجیتال کاربر داخل ساختار رمزنگاری دادههای شخصی قرار دارد. این رفتار را میتوان یک شکل احراز هویت مبتنی بر رمزگذاری دادهها دانست؛ یعنی دادهها خود حامل هویتاند.
بخش چهارم: تهدیدات و آسیبپذیریها
در حوزه امنیت عملیاتی، حملاتی شناخته شدهاند که از ضعف در پیادهسازی DPAPI و LSA Secrets سوءاستفاده میکنند. معروفترین ابزار در این زمینه Mimikatz است. این ابزار میتواند از حافظه فرآیندهای مرتبط با lsass.exe یا از رجیستری، مقادیر رمزگذاریشده LSA Secrets را استخراج و با استفاده از کلیدهای سیستم رمزگشایی کند.
دو سناریوی حمله اصلی وجود دارد:
1. Credential Theft via DPAPI
- مهاجم با دسترسی به فایلهای رمزگذاریشده یا Master Keys و دادههای ذخیرهشده در مسیر Protect، میتواند اطلاعات رمزنگاریشده کاربر را بدون دانستن پسورد واقعی بازیابی کند.
2. LSA Secret Dumping
- در این نوع حمله، مقدار Secrets از رجیستری یا حافظه LSASS استخراج و رمزگشایی میشود تا Credentialهای کاربر یا سرویسهای سیستم بازیابی شوند.
این حملات اگرچه پیچیده هستند، اما نشان میدهند که DPAPI و LSA Secrets عملاً نقاط تمرکز هویتی در زیرساخت ویندوز محسوب میشوند.
بخش پنجم: تحلیل امنیتی از دید معماری اعتماد
از منظر معماری امنیتی، میتوان DPAPI و LSA Secrets را بخشی از زنجیره اعتماد محلی (Local Chain of Trust) در ویندوز دانست. برخلاف مکانیزمهای شبکهای مثل Kerberos که هویت را از طریق Ticket تبادل میکنند، این مکانیزمها در داخل سیستمعامل و مرتبط با رمزگذاری داده عمل دارند.
از دید مدل «Zero Trust»، DPAPI بیانگر اعتماد درونی بین سیستم و کاربر است؛ یعنی سیستم به جای اعتماد به شبکه یا سرویس خارجی، به میزان منحصربهفرد بودن رمزنگاری دادههای کاربر اتکا دارد. این رفتار با اصول جدید "Device Identity" و "User Identity Anchoring" در استانداردهای امنیتی جدید (مثلاً NIST SP 800-207) همراستا است.
در سازمانهایی که امنیت Endpoint حیاتی است، تحلیل تعامل DPAPI با LSA Secrets میتواند نشان دهد که حتی سیستمعامل خود نوعی «Root of Identity» برای هر کاربر در سطح سیستم محلی ایجاد میکند.
بخش ششم: مقایسه با TPM و مکانیزمهای مدرن تعیین هویت
در نسخههای جدید ویندوز (از Windows 10 و بهویژه Windows 11 به بعد)، DPAPI میتواند از TPM (Trusted Platform Module) برای محافظت از Master Key استفاده کند. در این حالت، کلیدهای رمزگذاریشده نه تنها مبتنی بر پسورد کاربر، بلکه مبتنی بر «وضعیت سختافزاری دستگاه» نیز هستند.
در چنین سناریویی، اگر مهاجم فایلهای رمزگذاریشده را به سیستم دیگری منتقل کند، رمزگشایی غیرممکن خواهد بود چون TPM آن دستگاه قادر به بازسازی کلید اصلی نیست. این ساختار عملاً DPAPI را به بخشی از مکانیسم Hardware-backed Authentication تبدیل میکند و مرز میان رمزگذاری داده و احراز هویت سختافزاری را محو میسازد.
نتیجهگیری
DPAPI و LSA Secrets دو جزء کمتر شناختهشده اما بینهایت مهم در معماری امنیت ویندوز هستند. DPAPI از ظاهر یک API ساده برای رمزگذاری دادهها فراتر میرود و در واقع هویت کاربر را درون دادهها کدگذاری میکند. از سوی دیگر، LSA Secrets نقش حافظه امنیتی در سطح سیستم را دارد که امکان بازسازی یا اعتبارسنجی آن Master Key را فراهم میسازد.
در نتیجه، میتوان گفت:
- این مکانیزم را نمیتوان صرفاً یک ابزار رمزگذاری دانست؛ بلکه نوعی احراز هویت درونی و غیرمستقیم است که بین داده، کاربر، و سیستم همبستگی ایجاد میکند.
- حملات علیه این بخشها (مانند DPAPI Extraction یا LSA Dumping) به منزلهی دسترسی به «ریشه هویت» کاربران محسوب میشوند.
- و در نهایت، ترکیب DPAPI با TPM در نسخههای جدید ویندوز گامی رو به جلو برای تثبیت "Chain of Trust" و همراستایی با معماری Zero Trust است.
به طور خلاصه، در جهان امنیت سایبری که هویت نقش اصلی را ایفا میکند، مکانیزم DPAPI + LSA Secrets یکی از غریبترین اما فوقالعاده هوشمندانهترین نمونههای پیادهسازی احراز هویت سطح سیستم است؛ جایی که خود دادهها حامل نشانهای از اعتماد و هویت واقعی کاربر هستند.