سرویسی به نام Online Responder

14 دی 1392

پروتکلی به نام OCSP و سرویسی به نام Online Responder

 

آیا تا به حال به نوع امنیت در دنیای اینترنت و شبکه های مختلف دیگر چه سازمانی و چهPublic  دقیق نگاه کرده اید؟ آیا تا به حال به انتقال اطلاعات در یک محیز سالم شده نگاه کرده اید؟ آیا تا به حال درباره Certificate های موجود در شبکه ها و نحوه عملکرد آنها و چگونگی ساخته شدن و تایید آنها به عنوان یک Certificate سالم فکر کرده اید؟  بلی این سوالاتی است که ذهن مارا درباره Certificate ها به سمت خود می کشد. سوالاتی که مایکروسافت توانسته برای آنها جوابی قانع کننده داشته باشد و آن سرویس Online Responder است.

امروز داشتم به سرویس ADCS یا همان Active Directory Certificate Services نگاه می کردم. بین تمامی سرویس هایی که در ADCS استفاده می شود چشمم افتاد به یک سرویس خاص به نام Microsoft Online Responder. بالافاصله یاد روزهایی افتادم که کار با این سرویس را شروع کرده بودم که یکی از ارکان اصلی ADCS به شمار می رفت. تقریبا 4 سال پیش بود اون موقع تحلیلم از این سرویس خیلی ساده بود و یا حتی بعضی مواقع برای آن تحلیلی نداشتم.ولی کم کم متوجه شدم که Online Responder دارای یک سناریوی کامل است همان سناریویی که به تایید Certificate های امن انتقالی در شبکه می انجامد.

Online Responder که یکی از سرویس های امن مایکروسافت است سرویسی است که روی یک سرور که می تواند سرور ADCS و یا هرسرور دیگری میتواند قرار می گیرد و باعث ایجاد یک یک Trusted Server می شود. این سرور درخواست های کاربران مبنی بر تایید و دریافت اطلاعاتی از قبیل نام Root CA و Hash Code و Issue Time و Expire Time و  Subordinate CA و ... را دریافت می کند و سپس تایید می کند که Certificate مورد نظر Valid است یا نه.

این سرویس دقیقا مدل جدید CRL و یا همان Certificate Revocation List قبلی است که کار همین سرویس Online Responder را انجام می داد. اما حالا قضیه متفاوت است و Online Responder بسیار قوی تر از CRL ها دارد جلو می رود. بر خلاف CRL ها که فقط اطلاعات Certificate های Revoke شده و یا به اصطلاح باطل شده را در خود نگهداری می کرد و کاربر برای تایید یک Certificate نیاز به دانلود این لیست بلند بالا داشت Online Responder این قابلیت را دارد که نسبت به اطلاعات هر Certificate از کاربر ها Request دریافت دریافت کند و Status آن Certificate را به آنها ارسال می کند و حتی این در حالتی است که هیچ محدودیتی درباره حجم Request های ارسالی و همین طور تعداد Certificate ها برای این کار وجود ندارد.

حال به تفاوت های این سرویس یعنی Online Responder و CRL ها می پردازیم:

1-      ممکن است کلاینت های داخل یک شبکه مجوز دانلود را نداشته باشند و یا حتی دارای connection اینترنتی نباشند تا بتوانند لیست های CRL را که همیشه دارای حجم بالایی هستند را دانلود کنند پس باید سرویسی وجود داشته باشد که برای بررسی Certificate های Revoke شده و Valid از آن استفاده کنند که بتواند جای CRL را پر کندکه آن سرویس Online Responder می باشد.

2-      به این فکر کنید که در یک سازمان Enterprise به یک باره کاربران برای دسترسی به اتوماسیون تحت وب یا هر برنامه تحت وب دیگری از پورت HTTPS استفاده می کنند که ملزم به استفاده از Certificate می باشد می خواهند برای Certificate درخواست ارسال فرمایید و CRL ها را دریافت کنند تا Certificate تایید شود. حالا آیا درست است که به یکباره تمام این کاربران با ارسال Request باعث Down شدن شبکه شوند؟   پس در این شرایط هم بهترین راه حل سرویس Online Responder است.

3-      Online Responder درخواست کاربران برای تایید Certificate هایی که توسط Certificate Authority های غیر مایکروسافتی Issue شده باشند را نیز Handle میکند.

4-      درخواست های ازسالی از طرف کاربران به Online Responder درباره Status یک Certificate خاص میباشد و جواب به این درخواست هم درباره همان Certificate است در صورتیکه CRL ها در جواب لیستی با حجم بالا درباره تمام Certificate ها را ارسال می کنند.

 

تمام برنامه هایی که از Certificate برای ارتباط کاربران با خودشان استفاده می کنند و همینطور از استاندارد X.509 بهره می برند احتیاج دارند که موقعیت Certificate هایی که برای Authentication شدن و یا Sign-in کردن کاربران و Encrypt کردن ارتباط آنها تایید شود. در طی این عملیات Validation که توسط Online Responder انجام می شود دو فاکتور اصلی certificate ها بررسی می شود که عبارتند از: چک کردن Signature و Expiration و همینطور اینکه این Certificate از چه CA منتشر شده و آیا این CA اصلی هست یا زیر مجموعه.

حال جالب است بدانید که سرویس Online Responder  , Certificate Chain ها و یا همان زنجیره Certificate ها را هم بررسی می کند که شامل Certificate های Issue شده توسط CA های Root و Subordinate را نیز بررسی میکند که Valid هستند یا خیر.

یک تصویر از صفحه Cetificate Chain را با هم می بینیم.

حال شاید برایتان جالب باشد که این ارتباطات توسط چه پروتکلی Handle می شود زیرا همانطور که میدانید صد در صد هر ارتباطی در شبکه توسط پروتکل ها انجام میشود. این پروتکل امنیتی Online Certificate Status Protocol (OCSP) نام دارد. OCSP لیست های Certificate های Revoke شده را به صورت آنلاین و بدون هیچ بار دانلودی حمل میکند و فقط منتظر Request سرویس Online Responder برای اینکار است. در حقیقت OCSP می تواند یک OCSP Server باشد. در حقیقت OCSP تکمیل کننده سرویس Online Responder برای جایگزینی CRL است. بلی درست متوجه شدید OCSP می تواند در کنار Online Responder در یک سرور باشد و یا در دو سرور جدا باشند. ولی باید توجه کنید که برای تنظیم OCSP Server باید یک سری تنظیمات خاص را انجام دهید تا این پروتکل فعال شود. شما باید یک Extension امنیتی به اسم Authority Information Access (AIA)   را در داخل کنسول CA خود تنظیم کنید. شکل ذیل نحوه این کار را نشان شما می دهد.