روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ هر چند وقت یکبار کاربران و ادمینهای ویندوز 10 برایشان سوال میشود که چرا زمان روی سیستمشان ناگهان چند هفته، ماه یا حتی سال پرش دارد (یا به جلو یا به عقب). اما علت این پرشها چیست؟ ژورنالیستهای آرس تکنیکا کمی در این مورد تحقیق کردند و پی بردند این مسئله تا حدی به قابلیت Secure Time Seeding ارتباط دارد. در این مقاله قصد داریم از ساز و کار این قابلیت به شما گفته و راهکارهایی برای جلوگیری از این پرشها ارائه دهیم. با ما همراه باشید.
Secure Time Seeding چیست؟
Secure Time Seeding (STS) سال 2015 به ویندوز 10 اضافه شد. هدف این قابلیت، اصلاح اختلافات بین ست زمان و زمان واقعی بود- عمدتاً وقتی باتری کامپیوتر که ساعت در لحظهی داخلی را تغذیه میکرد تمام میشد و تنظیمات زمان دیگر با واقعیت هیچ وجه اشتراکی نداشت. مهمتر از همه اینکه STS قادر است بدون دسترسی به سرورهای زمان جاری به سیستم دسترسی داشته باشد. اما چرا چنین اصلاح تناقضات زمانی اصلاً مورد نیاز است؟ شاید برایتان عجیب باشد اما دلیلش، امنیت است. معمولاً تبادل داده سرور از سمت کلاینت (شامل کانکشن سیستم در تایم سرورهای اینترنت) با پروتکلهای رمزگذاری SSL/TLS محافظت میشوند. برای اجرای چنین روند اصلاحی با سرور، کلاینت اول باید گواهی دیجیتال خود را اعتبارسنجی کرده و این گواهیها هر یک دوره اعتبار مخصوص به خود را دارند.
بنابراین، اگر زمان سیستم با خطای قابلتوجهی مواجه شد شاید گواهی منقضی تلقی شود و کانکشن امن برقرار نگردد. پس اینجا چرخهای باطل شکل میگیرد: برای فهمیدن زمان جاری، کامپیوتر باید زمان جاری را بداند! نیاز نیست دقیقِ دقیق باشد؛ زمان تقریبی هم جواب میدهد. اما هرقدر اختلاف زمان سیستم با زمان واقعی بیشتر، شانس اینکه گواهی پرچم منقضی بخورد بیشتر. STS (دست کم در ذهن توسعهدهندگانش) راهی پیش پای سیستم میگذارد که خودکار، اختلافات بزرگ را شناسایی و اصلاح کند؛ حتی وقتی کانکشن امن با هیچ سروری برقرار نمیشود. این امر با استفاده از استمپهای زمانی فعلی و تاریخ انقضای گواهی دیجیتال موجود در دادههای ارسالشده توسط سرورها به مشتری در طول برقراری اولیه یک اتصال امن میسر میشود. الگوریتم دقیق STS ناشناخته است. اما ایده کلی این است که ویندوز دادهها را از تأییدگیری SSL میکشد و از آن برای محاسبه محدوده قابل اعتماد برای زمان فعلی استفاده نموده و به آن یک احتمال اختصاص میدهد.
با در دسترس قرار گرفتن دادههای جدید، محدوده به روز شده و احتمال میتواند به تدریج افزایش یابد. زمانی که به یک آستانه معین رسید، STS تصمیم میگیرد زمان سیستم را از محدودهای که قابل اعتماد میداند به زمان متوسط تغییر دهد. در تئوری، چنین دقتی باید برای ایجاد یک اتصال امن، اتصال به سرور زمان فعلی و دریافت زمان دقیق کافی باشد.
چرا باید Secure Time Seeding را غیرفعال کرد؟
مشکل اصلی این است که قابلیت مذکور به طور پیشفرض در ویندوز 10 فعال است و صرفنظر از اینکه ساعت درونسازهای کامپیوتر تا به حال از سینک خارج شده کار خود را میکند. در نتیجه، STS میتواند هر زمانی که الگوریتم مخفی مایکروسافت تصمیم بگیرد علایم کافی وجود دارد مبنی بر اینکه زمان اشتباه است و نیاز به اصلاح دارد، زمان را ریست میکند. دلیل چنین نقصهایی در عملکرد Secure Time Seeding هنوز کاملاً درک نشده. یکی از علل ارائهشده محبوبیت زیاد پیادهسازیهای SSL/TLS است که در طول تأییدگیری، استمپهای زمانی ناصحیح ارسال میکنند. مظنون اصلی در اینجا آرشیو OpenSSL است که به کرات استفاده میشود (به جای زمان سرور فعلی، مقادیر تصادفی را در استمپ زمانی قرار میدهد). علاوه بر این، این اشکال میتواند در نسخههای سرور سیستم عامل نیز رخ دهد: Windows Server 2016، Windows Server 2019 و Windows Server 2022. در حالی که برای کاربران معمولی کامپیوتر این مشکل چندان جدیای نیست اما برای سرورها میتواند فاجعه بار باشد، زیرا عملکرد صحیح آنها اغلب به دقیق بودن زمان بستگی دارد. یک توصیه غیر رسمی در این مورد از طرف یکی از مقامات ارشد پشتیبانی فنی مایکروسافت برای مدیران کنترل کننده دامنه Active Directory وجود دارد:
"سلام مردم، اگر کنترلکنندههای دامنه اکتیو دایرکتوری را مدیریت میکنید، میخواهم به شما توصیه های غیر رسمی بدهم که صرفاً نظر شخصی من است: Secure Time Seding را برای w32time در DC های خود غیرفعال کنید."
غیرفعال کردن Secure Time Seeding در ویندوز
برای غیرفعال کردن STS، کلید زیر را در رجیستری ویندوز بیابید:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
مقدار UtilizeSslTimeData را پیدا کرده و آن را روی 0 قرار دهید.
همچنین میتوانید دستور زیر را به عنوان مدیر در خط فرمان ویندوز (CMD) اجرا کنید:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UtilizeSslTimeData /t REG_DWORD /d 0 /f
پس از تغییر مقدار، باید سیستم را راه اندازی مجدد کنید. اگر این کار دشوار یا غیرممکن است، می توانید با این دستور آپدیت را مجبور کنید:
W32tm.exe /config /update
با انجام این کار، ویژگی STS دیگر شما را دچار مشکل نخواهد کرد. تنها میماند مطمئن شدن از اینکه ساعت سیستم همیشه دقیق است.
منبع: کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.