اگر تصور میکنید با پاک کردن کامل هارد و نصب مجدد ویندوز، ردپای دیجیتال شما برای مایکروسافت پاک میشود، احتمالاً درست فکر میکنید. اما اگر باور کردهاید که مایکروسافت اثر انگشتی ابدی از سختافزار شما دارد که هرگز تغییر نمیکند، وقت آن است که واقعیت فنی را جایگزین شایعات کنیم.
این موضوع پس از شکایت کیفری وزارت دادگستری آمریکا (DOJ) در ۱ جولای ۲۰۲۶ علیه پیتر استوکس، عضو احتمالی گروه هکری Scattered Spider (که با نامهای Octo Tempest، UNC3944 یا 0ktapus نیز شناخته میشود)، به بحث داغی تبدیل شد. طبق مستندات دادگاه، مایکروسافت از مکانیزم شناسه جهانی دستگاه (Global Device Identifier یا GDID) برای ردیابی نصبهای خاص ویندوز در سراسر آدرسهای IP و نشستهای مختلف مرورگر استفاده میکند.
بسیاری از کاربران تصور میکردند GDID یک اثر انگشت دیجیتال است که حتی با آپدیتهای سیستمعامل هم باقی میماند. در شبکههای اجتماعی ادعا شد که این شناسه یک هش ۱۲۸ بیتی است که از شماره سریالهای سختافزاری ساخته شده است؛ اما تحلیلهای فنی و مهندسی معکوس واقعیت متفاوتی را نشان میدهند که بیشتر بر محوریت حساب کاربری است تا سختافزار.
همانطور که در تحلیلهای قبلی ما دربارهی حریم خصوصی در اکوسیستمهای ابری اشاره کردیم، جدایی هویت کاربر از سختافزار، استراتژی اصلی شرکتهای بزرگ برای مدیریت مقیاس است. در مورد GDID هم همین اتفاق افتاده است.
کالبدشکافی GDID
طبق یک گزارش فنی در GitHub، شناسهی GDID یک هش محلی از GPU یا مادربرد شما نیست. بلکه یک شناسهی یکتای پاسپورت دستگاه (Device PUID) است که توسط سرورهای مایکروسافت تخصیص داده میشود. این شناسه یک عدد صحیح ۶۴ بیتی است که با پیشوند :g شروع میشود.
به نقل از پرونده دادگاه (United States v. Peter Stokes, N.D. Ill., July 2026)، این شناسه در بند ۲۵ صفحه ۳۴ به صورت g:6755467234350028 ظاهر شده است. این مقدار در دنیای کدنویسی به مقدار هگزادسیمال 0x0018000FC8CB93CC برابر است. این ساختار دقیقاً ثابت میکند که شناسه تنها در ۶۴ بیت جای میگیرد و افسانهی ۱۲۸ بیتی بودن آن را رد میکند.
نکته کلیدی اینجاست: در اظهارنامهی وزارت دادگستری صراحتاً ذکر شده که نصب مجدد ویندوز (Fresh Reinstall)، یک GDID جدید تولید میکند. این مهمترین دلیل برای اثبات این است که شناسه به سریالهای سختافزاری تغییرناپذیر گره نخورده است؛ زیرا هر اثر انگشت سختافزاری باید پس از پاکسازی و نصب مجدد نیز یکسان بماند. همچنین مستندات دادگاه اشاره میکند که یک کاربر واحد مایکروسافت میتواند چندین GDID داشته باشد. در پرونده استوکس، افبیآی توانست تاریخچه IP و مرورگر این GDID — شامل بازدید از سایت empirehotelnyc.com و لینکهای ورود به Growtopia و Ubisoft — را با حسابهای متهم مرتبط کند.
فرآیند تولید و انتقال شناسه
تولید این کد در لایههای عمیق پشتهی هویت ویندوز رخ میدهد. فایل wlidsvc.dll (سرویس حساب کاربری مایکروسافت / پاسپورت) فرآیند تخصیص را از طریق ارتباط با دامنه login.live.com و ارسال درخواستهای SOAP از نوع Passport PPCRL مدیریت میکند.
در این تبادل (Handshake)، سرور مایکروسافت یک DevicePUID (یا HWPUIDFlipped) را تخصیص میدهد. سپس کلاینت این مقدار را از طریق یک XPath در بدنه پاسخ XML استخراج میکند: /S:Envelope/S:Body/ps:DeviceUpdatePropertiesResponse/HWPUIDFlipped. به همین دلیل است که با نصب مجدد، سرور برای نشست ثبتنام جدید، یک PUID جدید صادر میکند و شناسه تغییر میکند.
این مقدار پس از تولید در رجیستری ذخیره میشود. به طور مشخص، این مقدار در هایو کاربر در مسیر HKCU\SOFTWARE\Microsoft\IdentityCRL\ExtendedProperties تحت برچسب LID قرار دارد. همچنین ممکن است در مسیر HKCU\SOFTWARE\Microsoft\IdentityCRL\Immersive\production\Token\{...}\DeviceId یافت شود.
نقش پلتفرم دستگاههای متصل
پلتفرم دستگاههای متصل (Connected Devices Platform یا CDP) که توسط cdp.dll و سرویسهای CDPSvc و CDPUserSvc مدیریت میشود، این شناسه را نمیسازد، بلکه مصرف میکند. CDP مقدار PUID را از ارائهدهنده هویت دریافت کرده و آن را در گراف سرویس دایرکتوری دستگاه (Device Directory Service یا DDS) ثبت میکند.
این گراف زیربنای قابلیتهایی است که هر روز با آنها سروکار دارید:
- لینک به گوشی (Phone Link)
- کلیپبورد ابری (Cloud Clipboard)
- قابلیت "Continue on PC"
- اشتراکگذاری نزدیک (Nearby Share)
مایکروسافت با کلید کردن فعالیتها به شناسهی g:<decimal>، میتواند تاریخچه IP و دادههای مرورگر را به یک نصب خاص ویندوز مرتبط کند. مهندسی معکوس cdp.dll نقاط انتهایی (Endpoints) خاصی را برای این ثبت شناسایی کرده است، از جمله: dds.microsoft.com ، fd.dds.microsoft.com ، aad.cs.dds.microsoft.com و cdpcs.access.microsoft.com.
جزئیات فنی جریان ثبتنام
تحلیل استاتیک فایل PDB عمومی (cdp.pdb) نشان میدهد که CDP از یک الگوی سختگیرانه «درخواست و انتظار» پیروی میکند. این سرویس خودش شناسه را محاسبه نمیکند، بلکه از طریق فراخوانی تابع GetStableDeviceIdFromProvider (آدرس 0x0A3140) آن را درخواست میکند. این درخواست سپس از مسیر OneCoreAccountProvider::GetStableDeviceIdAsync (آدرس 0x0C8370) و IWebAccountBackedAccountProvider عبور میکند.
در نهایت، کالبک OnGetStableDeviceIdCompleted (آدرس 0x06CEA0) شناسه را به صورت یک رشتهی نامعلوم (Opaque String) دریافت میکند. کدهای اسمبلی نشان میدهند که شناسه صرفاً از ثبات r9 منتقل شده و با استفاده از assign@basic_string ذخیره میشود، بدون اینکه هیچ محاسبه اضافی یا تعاملی با سریالهای سختافزاری صورت گیرد.
تلهمتری و افشای دادهها
در حالی که CDP ثبت را انجام میدهد، سرویسهای دیگر آن را گزارش میکنند. مستندات عمومی Azure Monitor ستونی به نام GlobalDeviceId را در جدول UCDOStatus (Update Compliance / Delivery Optimization) تعریف کرده است. این یعنی شناسه دستگاه در لاگهای تلهمتری در کنار دادههای مکانسنجی (Geolocation)، ISP، نام شهر و کشور قرار میگیرد.
کاربران میتوانند با یک دستور ساده در PowerShell شناسهی خود را ببینند:(Get-ItemProperty 'HKCU:\SOFTWARE\Microsoft\IdentityCRL\ExtendedProperties').LID
این دستور مقدار ۱۶ رقمی هگزادسیمال را نشان میدهد. برای تبدیل این مقدار به فرمت g:<decimal> که در اسناد دادگاه دیده شده، کاربران میتوانند کد زیر را اجرا کنند:$hex = (Get-ItemProperty 'HKCU:\SOFTWARE\Microsoft\IdentityCRL\ExtendedProperties').LID"g:$([Convert]::ToUInt64($hex,16))"
جالب اینجاست که حتی کاربرانی که حساب کاربری مایکروسافت (MSA) ندارند هم معاف نیستند. تحلیل CDP نشان میدهد یک مسیر «دستگاه ناشناس» (Anonymous Device Path) وجود دارد که در صورت عدم اتصال حساب MSA استفاده میشود تا اطمینان حاصل شود که GDID همچنان تولید و ردیابی میگردد.
تفاوت در انواع شناسهها
باید بین انواع PUIDها که در سیستم هویت ویندوز ذخیره میشوند تمایز قائل شد:
- شناسههای دستگاه (GDID): متعلق به کلاس هگز
0018هستند (مثلاً0018000FC8CB93CC). - شناسههای کاربر (User PUIDs): متعلق به کلاس هگز
0003هستند (مثلاً00034002XXXXXXXX).
علاوه بر این، حافظه کش توکن MSA در مسیر HKLM\SOFTWARE\Microsoft\IdentityCRL\NegativeCache شامل توکنهای دستگاهی است که دقیقاً برای نقاط انتهایی DDS و Activity تعریف شدهاند: service::dds.microsoft.com::MBI_SSL_TOKEN_BROKER و service::activity.windows.com::MBI_SSL_SA_TOKEN_BROKER.
کاهش ردپای ردیابی
برای کاهش این ردیابی، پژوهشگران مراحل زیر را پیشنهاد میکنند:
- سرویسهای Connected Devices Platform یعنی
CDPSvcوCDPUserSvcرا متوقف کنید. - تاریخچه فعالیت (Activity History) را از مسیر Settings -> Privacy -> Activity history غیرفعال کنید تا همگامسازی گراف و آپلود فعالیتها متوقف شود.
پاک کردن پوشههای محلی در %LOCALAPPDATA\ConnectedDevicesPlatform کافی نیست. اگرچه این کار وضعیت محلی CDP را پاک میکند، اما PUID پس از بازراهاندازی سرویس، دوباره از ذخیره هویت سیستم (Identity Store) بازیابی میشود. یک نصب پاک (Clean Install) به شما GDID جدیدی میدهد، اما سیستم به محض اینکه دوباره با سرورهای مایکروسافت ثبتنام شود، به یک شناسهی جدید گره میخورد.
متدولوژی و اعتبارسنجی
این یافتهها روی یک دستگاه زنده با ویندوز ۱۱ (بیلد ۲۶۲۰۰) و با استفاده از نمادهای عمومی (Public Symbols) بازتولید شدهاند. این تحقیق شامل چندین روش کلیدی بود:
- ضبط زنده (Live Capture): استفاده از
logmanبرای ضبط ارائهدهندههای TraceLogging ETW مربوط به CDP (مانندMicrosoft.Windows.CDP.CoreوMicrosoft.Windows.CDP.OnecoreAccountProvider) و رمزگشایی آنها باtracerpt. - تحلیل رجیستری: بازرسی
IdentityStoreوIdentityCRLدر مسیرHKLM\SOFTWARE\Microsoft. - تحلیل استاتیک: تحلیل
wlidsvc.dllبرای توابعCDeviceIdentityBase::CreateNewDeviceIdentityوCAssociateDeviceRequest::ParseResponseBody.
جزئیات تکمیلی پیادهسازی
بررسیهای عمیقتر در باینری wlidsvc.dll توابع خاصی را فاش میکند که چرخه عمر هویت را مدیریت میکنند:
- منطق آمادهسازی (Provisioning): این باینری عملیات
Provision،BindDeviceToHardwareوGetDeviceCertرا مدیریت میکند. اگرچه ازBCryptGenRandomوCCryptRandom::GenRandomاستفاده میکند، اما اینها برای تولید کلید احراز هویت دستگاه (که به ماشین متصل است) به کار میروند، نه برای تولید خود GDID. - تعامل با DDS: باینری
cdp.dllشامل یک زیرسیستم ثبتنام متشکل ازddsregistrationclient.cpp،ddsregistrationmanager.cppوddsregistrationinfo.cppاست. - شناسههای GUID ارائهدهنده ETW: برای بازتولید این کپچرها، پژوهشگران میتوانند از GUIDهای زیر استفاده کنند:
Microsoft.Windows.CDP.Core:{7762de0c-b0a6-571a-68d3-c018bf009496}Microsoft.Windows.CDP.Core.Error:{a1ea5efc-402e-5285-3898-22a5acce1b76}Microsoft.Windows.CDP.CDS:{dfa6e32a-095f-5f57-d025-0887d33507a1}Microsoft.Windows.CDP.Aggr:{bc1826c8-369c-5b0b-4cd1-3c6ae5bfe2e7}Microsoft.Windows.CDP.AFS:{5fe36556-c4cd-509a-8c3e-2a547ea568ae}Microsoft.Windows.CDP.OnecoreAccountProvider:{4ee5bf9a-3e8f-540b-8bfb-12457a2854b6}Microsoft.Windows.CDP:{9f4cc6dc-1bab-5772-0c71-a89954718d66}
خلاصه چرخه عمر دستگاه
چرخه کامل یک GDID را میتوان در یک زنجیره چهار مرحلهای خلاصه کرد:
- ضرب (The Mint): فایل
wlidsvc.dllدستگاه را از طریقlogin.live.comآماده میکند. سرور Device PUID را تخصیص میدهد و کلاینت آن را به عنوان LID درHKLM\...\IdentityStoreذخیره میکند. - تحویل (The Hand-off): فایل
cdp.dllشناسه پایدار دستگاه را از طریق پشته هویت درخواست کرده و PUID را به صورت یک رشته دریافت میکند. - ثبت (The Registration): سرویس
CDPSvcمقدار PUID را در گراف سرویس دایرکتوری دستگاه (DDS) ثبت میکند و پاسخی با وضعیت HTTP 200 دریافت میکند. - گزارشدهی (The Reporting): سایر اجزا، مانند Delivery Optimization (
dosvc.dll)، مقدارGlobalDeviceIdرا به عنوان بخشی از تلهمتریUCDOStatusگزارش میکنند.
این موضوع نشاندهنده یک تغییر بنیادین در درک ما از «شناسههای سختافزاری» است. GDID کمتر به اجزای فیزیکی ماشین مربوط است و بیشتر به هویت آن نصب خاص در اکوسیستم ابری مایکروسافت اشاره دارد. برای کاربر عادی، این بدان معناست که تا زمانی که سیستمعامل ثبتنام شده باشد، «اثر انگشت» فعال است. برای محققان و بازرسان، این یک لنگر پایدار برای ردیابی مظنونین است، حتی اگر آنها آدرسهای IP خود را تغییر دهند، مگر اینکه سیستم را به طور کامل پاک کرده و دوباره نصب کنند.
گام بعدی شما
- با اجرای دستور پاورشل ذکر شده، شناسهی فعلی دستگاه خود را چک کنید تا متوجه شوید چه مقداری در سرورهای مایکروسافت ثبت شده است.
- اگر حریم خصوصی برای شما اولویت است، سرویسهای CDP را غیرفعال کرده و وضعیت Activity History را بررسی کنید.
- در صورت نیاز به تغییر کامل هویت دیجیتال در ویندوز، تنها راه مطمئن، نصب پاک (Clean Install) سیستمعامل است.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell و مدیریت داده در لبه مراجعه کنید.




گفتگو