درس دویست و هجدهم: مفاهیم Active Directory Certificate Services

مفاهیم Active Directory Certificate Services 

 

 

آشنایی با نقش Active Directory Certificate Services

شخصا معتقدم مهندس شبکه مایکروسافت شخصی است که احاطه کامل بر Active Directory Certificate Services داشته باشد. بسیاری از App ها و سرویسها برای اینکه اجرا شوند نیاز بوجود گواهینامه های دیجیتالی ( Digital Certificates ) دارند تا از طریق گواهینامه های فوق بتوانند بررسی های امنیتی مانند عملیات Authentication را با موفقیت پشت سر بگذارند و به منابع مورد نظر دسترسی یافته و یا اجرا شوند.  سرویس Active Directory Certificate Services ( یا به اختصار AD CS ) باید توسط مدیران شبکه نصب و پیکربندی و مدیریت شود تا بعنوان زیرساختی برای ارائه گواهینامه های عمومی ( Public Key Infrastructure یا PKI ) در شبکه سازمانی ایجاد کرد. از PKI در شبکه جهت ایجاد و توزیع و مدیریت گواهی نامه ها استفاده میشود. پس از Active Directory Certificate Services برای ایجاد و پیکربندی PKI استفاده می کنیم.

وجود PKI در شبکه مزایای ذیل را در پی دارد:

  • احراز هویت: میتوان از گواهی نامه های دیجیتالی جهت احراز هویت کاربران، کامپیوترها و سرویس ها استفاده کرد.
  • عملیات صدور تاییدیه: کسب اطمینان از اینکه داده ها در حین انتقال دستکاری نشده اند و نیز اینکه فرستنده یک بسته اطلاعاتی ( مانند یک ایمیل) واقعا همان کسی هست که ادعا میکند.
  • محرمانگی: PKI ساز و کاری جهت رمزنگاری ( Encryption ) داده ها فراهم میکند. حال یا در قالب File System یا در انتقال داده ها مانند ایمیل.

PKI امکان صدور گواهی نامه ها را جهت برآورده ساختن اهداف زیر در اختیار مدیر شبکه میگذارد:

  • پشتیبانی از logon کردن توسط smart card
  • رمزگذاری ترافیک شبکه توسط IPSec
  • رمزگذاری ترافیک وب با استفاده از پروتکل SSL ( Secure Sockets Layer )
  • رمزگذاری فایل/فولدرها با استفاده از EFS ( Encrypting File System )

 

 

آشنایی با Role Service ها

Active Directory Certificate Services از تعداد نسبتا زیادی Role Service تشکیل شده است که بسته به طراحی مورد نظر میتوان در ویزارد نصب Active Directory Certificate Services آنها را نیز جهت نصب شدن انتخاب کرد. در ذیل نگاهی میندازیم به این Role Service ها:

  • CA : مخفف Certificate Authority است. CA مرجع پاسخگویی برای مدیریت عملیات تخصیص/ ابطال گواهی نامه ها می باشد. یعنی CA ها میتوانند گواهی نامه به کاربر، کامپیوتر و سرویس اختصاص داده و یا آنرا لغو اعتبار کنند. در یک شبکه نسبتا کوچک وجود یک CA کفایت میکند اما در شبکه ای بزرگ بهتر است سلسله مراتبی از CA ها ایجاد شود تا High Availability و Load Balancing برقرار شود.

………………………………….

از یک لحاظ دو نوع CA داریم. یکی External CA که شرکت های معتبری هستند در زمینه تهیه و صدور و اختصاص گواهی نامه ها. این شرکت ها در عرصه اینترنت فعالیت دارند و گواهی نامه های آنها مورد اطمینان در تمام سیاره می باشد و به معنی واقعی کلمه Trusted هستند. دیگری، internal CA هستند که همان CA داخلی شبکه است که توسط مدیر شبکه روی یک سرور در داخل شبکه راه اندازی میشود و اعتبار گواهی نامه هایش محدود به آن شبکه میباشد.

………………………………….

  • Certificate Enrollment web Service : به اختصار CES نامیده میشود. با پیکربندی CES هر کامپیوتری که دارای سیستم عامل Windows 7 ( و جدیدتر) باشد میتواند از طریق Web Service به CA شبکه متصل شود. در واقع میتوان CES را یک پروکسی ( وکیل) از طرف CA دانست که کامپیوترها را قادر به دانلود کردن گواهی نامه ها، درخواست اخذ گواهی نامه ( Enrollment )، نصب گواهی نامه ها، تمدید اعتبار گواهی نامه ها و بازیابی CRL میکند. ( با کاربرد CLR در درسهای آینده آشنا خواهید شد). پیاده سازی CES مستلزم اینست که Forest Functional Level شبکه حداقل Windows Server 2008R2 باشد.
  • Certificate Enrollment Policy Web Service : یک Role Service است برای بازیابی اطلاعات مربوط به قوانین درخواست گواهی نامه.

………………………………….

زمانی که دو سرویس CES و Certificate Enrollment Policy Web Service به همراه یکدیگر نصب بوده و مورد استفاده قرار گیرند، عملیات Enrollment ( ثبت نام برای درخواست صدور گواهی نامه) را برای دو حالت ذیل میتوان بر اساس Policy انجام داد. یکی برای کامپیوترهای عضو دامین که در حال حاضر فاقد ارتباط فیزیکی با شبکه هستند و دیگر برای کامپیوترهای که عضو دامین نمی باشند.

………………………………….

  • Certificate Authority Web Enrollment : این Role Service نیز قابلیت اختصاص و تمدید اعتبار گواهی نامه برای کاربر، کامپیوتر و سرویس ها را دارد اما برای سه نوع کامپیوتر. دسته اول کامپیوترهایی که سیستم عاملی غیر از ویندوز دارند. دسته دوم کامپیوترهایی که عضو دامین نیستند و دسته سوم کامپیوترهایی که اتصال فیزیکی مستقیم به شبکه ندارند.
  • Network Device Enrollment Service : تجهیزاتی مانند سوئیچها و روترها توسط این Role Service قادر میشوند که بتوانند از CA شبکه گواهی نامه دریافت کنند. دیوایس های سیسکو توسط این سرویس و با کمک پروتکل سیسکویی SCEP ( Simple Certificate Enrollment Protocol ) میتوانند در یک PKI سهیم شوند. میدانیم که دیوایس های سیسکو نمیتوانند در سایر سرویس های اکتیودایرکتوری حضور داشته باشند، اما توسط این سرویس و پروتکل فوق این امکان فراهم شده است که بتوان به آنها نیز گواهی نامه تخصیص داد.
  • Online Responder : این Role Service با استفاده از پروتکل OCSP درخواست های تایید اعتبار گواهی نامه ها را پاسخ میدهد. با استفاده از این سرویس، یک PKI دیگر احتیاجی به CRL ندارد و خودش تایید اعتبار گواهی نامه را انجام میدهد. لازم به ذکر است که درخواست های کاربران به Online responder و پاسخ آن به کاربران هر دو بصورت انکریپت شده و امن صورت می پذیرد.

 

 

انواع CA

در طراحی ساختار PKI باید نوع و سلسله مراتب CA مورد نظر را مشخص سازید. در ویندوز Server 2016 دو نوع CA برای پیاده سازی وجود دارد:

  • Standalone : پیاده سازی CA در شبکه فاقد AD DS Domain فقط با انتخاب این نوع ممکن میشود.
  • Enterprise : پیاده سازی CA در شبکه ای که دارای ساختار AD DS Domain است.

Standalone CA نوعی CA است که لازم نیست عضو اکتیودایرکتوری باشد. معمولا برای امنیت بیشتر Root CA را بصورت Standalone CA پیکربندی میکنند و چند سرور دیگر را هم بعنوان subordinate CA تنظیم میکنند. سپس Root CA را بعد از اینکه برای Sub CA های خود گواهی صادر کرد، آفلاین میکنند تا از دسترس حمله های خرابکارانه دور باشد. کلاینتهای Standalone CA اجباری ندارند که عضو اکتیودایرکتوری باشند.

این نوع CA دارای مشخصات زیر می باشد:

  1. این نوع نیازی به اکتیودایرکتوری و ساختار دامین ندارد. در درجه اول هدف از StandAlone CA ایجاد یک Trusted offline CA در یک ساختار PKI سلسله مراتبی می باشد.
  2. وقتی درخواست صدور گواهینامه حواله standalone CA میشود باید تمام اطلاعات و هویت درخواست کننده در درخواست ذکر شده باشد. چون این نوع CA مثل Enterprise CA نیست که بتواند اطلاعات کاربران و کامپیوترها را از اکتیو دایرکتوری استخراج کند.
  3. بصورت پیش فرض هر درخواستی که به سمت Standalone CA فرستاده میشود بصورت Pending یا انتظار باقی می ماند و تا Admin آن را تایید یا Issue نکند برای آن Subject ( متقاضی) هیچ گواهی ای صادر نمیشود. علت این رفتار هم عدم توانائی Standalone CA در احراز هویت کردن Subjectها می باشد و این مسئولیت را بر عهده Admin می اندازد.
  4. از Certificate Template استفاده نمی کند. یعنی شما باید حتما نوع Certificate را برای Standalone CA مشخص کنید.
  5. Admin کامپیوتر باید بصورت دستی گواهی های صادرشده از سوی این CA را روی کامپیوتر نصب کند.

در Standalone CA کاربران باید از طریق Web Enrollment یا یک فرآیند دستی دیگر درخواست صدور گواهی نامه کنند.

Enterprise CA به صورت مستقیم با اکتیودایرکتوری در ارتباط است و از GPO ها برای انتشار گواهینامه ها و اطلاعات باطل شدن آنها به کلاینت ها در سطح Forest استفاده میکند. Enterprise CA ها معولا بصورت member server و subordinate CA پیکربندی میشوند.  معمولا در سطوح پایین سلسله مراتب قرار می گیرند و برای کاربران نهایی و دیوایس ها گواهی صادر میکنند. این نوع CA باید همیشه آنلاین باشد. چون این نوع CA با اکتیودایرکتوری ارتباط دارد، گواهی ها بصورت خودکار به محض ارسال درخواست توسط اعضای اکتیو دایرکتوری، گواهی نامه صادر میشوند.

این نوع CA دارای خصوصیات زیر می باشد:

  1. عضوی از ساختاری اکتیودایرکتوری و دامین است.
  2. وقتی Enterprise CA را نصب می کنید برای انجام وظایف خود از GPO ها بهره می گیرد و گواهینامه های خود را در Trusted Root Certification Authorities certificate کامپیوترها، کاربرها و سرویس ها ذخیره می کند.
  3. وقتی شما Enterprise CA را نصب میکنید این سرور بصورت اتوماتیک خود را عضو گروه Cert Publishers میکند و اعضای این گروه می توانند Certificate ها را در یک دامین  Publish کنند. انتشار لیست CRL مثالی از این مورد است.
  4. اطلاعات پیکربندی Enterprise CA در درون AD DS ثبت میشود.
  5. کاربران میتوانند بصورت دستی و از طریق Web Enrollment تقاضای صدور گواهینامه کنند اما در عین حال از سازوکار خودکاری مانند AutoEnrollment نیز در این نوع CA استفاده میشود.
  6. در این نوع نیازی نیست که شخص Administrator بصورت دستی درخواست های صدور گواهینامه را بررسی و تایید/ عدم تایید کند. درخواستها بصورت خودکار و بر اساس تنظیمات پیکربندی، مدیریت و بررسی میشوند.

اما CA ها دارای طبقه بندی دیگری نیز هستند. یک CA یا از نوع Root است و یا از نوع Subordinate . در شبکه بهرحال باید یک Root CA وجود داشته باشد. Root CA ها معمولا گواهی مادر ( میتوان آنرا مجوز کار هم توصیف کرد) را برای Subordinate CA خود صادر میکنند. اگر Root CA از نوع Standalone باشد میتوان پس از اینکه گواهی نامه را برای Subordinate CA هایش صادر کرد، offline کرد. این کار باعث میشود که این Root CA مورد حملات شبکه ای قرار نگیرد. حال بر فرض که یکی از Subordinate CA ها توسط حمله شبکه ای آلوده و غیرقابل استفاده شود، بلافاصله میتوان یک Subordinate CA جدید ایجاد کرده، Root CA را online کرده و از طریق آن یک گواهی مادر به Subordinate CA تخصیص میدهیم. Subordinate CA شروع به سرویس دهی کرده و مجددا Root CA را offline میکنیم.

در واقع کاربران، کامپیوترها، تجهیزات، سرویس ها و کلیه مشتریان و متقاضیان گواهی های دیجیتال با Subordinate CA سر و کار دارند نه با Root CA . این Subordinate CA ها هستند که باید به مشتریان و متقاضیان گواهی اختصاص داده و گواهی های اختصاص یافته را مدیریت کنند.

پس بطور خلاصه: سرویس CS AD دارای سلسله مراتبی از CA هاست. در راس سلسله مراتب فوق، Root CA قرار دارد. زیرمجموعه های آنرا subordinate CA می نامند. وظیفه Root CA امضا کردن تمام گواهی هایی است که توسط subordinate CA هایش صادر شده اند. روالی وجود دارد که در آن ابتدا یک root CA یک گواهینامه به subordinate CA میدهد. این گواهی در حکم مجوز کار است. از این پس subordinate CA فوق میتواند در شبکه اقدام به صدور گواهی میکند. وقتی که به زمان expire شدن گواهینامه ای که توسط root CA به یک Subordinate CA اعطا شده است، نزدیک شویم، Subordinate CA از Root CA درخواست تجدید گواهینامه را میکند. چون اگر تجدید نگردد، عملا subordinate CA فوق دیگر در شبکه قابل اعتماد نخواهد بود و نمیتواند گواهی جدیدی صادر کند و زمانی که اعتبار گواهینامه این Subordinate CA خاتمه یابد ( بدون اینکه تمدید شده باشد) بصورت خودکار تمام گواهینامه هایی که از سوی این CA برای کاربران و کامپیوترها صادر شده باشد نیز باطل خواهند شد..

یک کاربری که روی ماشین میزبان یک CA، دارای اختیارت ادمین است، میتواند گواهی نامه های صادر شده توسط یک CA رده پایین تر را حذف کند. برای این کار کافی است که گواهینامه فوق را حذف بنماید. بلافاصله CA صادر کننده گواهی فوق اعتبارش را در شبکه از دست خواهد داد و مورد اطمینان هیچکس نخواهد بود.

توجه کنید که چه از Standalone CA استفاده شود و چه از Enterprise CA ، در هر دو مدل، Root CA صرفا صادرکننده مجوز کار برای subordinate CA ها خواهد بود و این subordinate CA ها هستند که با کامپیوترها و کلاینت ها و سرویس ها در تعامل خواهند بود.

اگر قصد استفاده از فقط یک CA را در شبکه خود داشته باشیم ( CA یک سطحی) و نیز محیط AD DS نیز وجود داشته باشد، توصیه میگردد که نوع Enterprise CA را انتخاب کنیم.

اما چنانچه قصد پیاده سازی CA چند سطحی را داشته باشیم، توصیه شده است که Standalone Root CA استفاده کنیم. بر خلاف اسم گذاری Stand-alone CA می توان این نوع CA را در ساختار دامین نصب و راه اندازی کرد.

جدول ذیل مقایسه ای بین دو نوع Root CA را انجام میدهد:

218-1 Enterprise Root CA vs Standalone Root CA

 

 

سلسله مراتب CA

سه نوع سلسله مراتب وجود دارد:

1- One-tier hierarchy : در این حالت کلا یک root CA  داریم که هم کل ساختار PKI را بوجود آورده است و هم مستقیما با کلاینت ها و کاربران سروکار دارد. از نظر امنیتی و کارایی مردود است. اگر بلایی سر CA بیاید…

2- Three-tier hierarchy : سه سلسه مراتب وجود دارد. اول root CA که پس از دادن گواهی های اولیه آفلاین میشود. سپس سطح intermediate قرار دارد که واسطی بین root و issuing هاست. در پایین ترین سطح هم issuing CA ها قرار دارند که مستقیما با کامپیوترها و کلاینت ها سروکار دارند.

218-2 three-tier CA

علت وجود Intermediate CA در این ساختار تعریف سیاست های مختلف برای هر یک از Issuing CA می باشد. به عنوان مثال می توانم سیاستهای متفاوتی بر روی  Issuing CA 1 تعریف کنیم که فقط برای کاربران این  CAباشد و برای بقیه CAها نیز سیاستهای مختلفی اعمال شود. و یکی دیگر از دلایل آن ایجاد پایداری در این نوع ساختار می باشد. فرض کنید تمام Issuing CA ها بنا به دلایلی از بین رفتند. شما در این ساختار خیلی راحت بعد از نصب این سرویس و درخواست یک  Certificate از CA های بالا دستی می توانید این سرورها را ریکاوری کنید بدون نیاز به Import کردن هر گونه گواهینامه ای.  مزیت دیگر آن باطل کردن مجموعه زیادی از گواهینامه می باشد. فرض کنید گواهینامه های تمام کاربران قسمت فروش هک شود در چنین شرایطی لازم نیست تک تک  گواهینامه های این کاربران را باطل کنید. کافیست گواهینامه Subordinate آن قسمت را در Intermediate CA باطل کنید. به این CA ها گاهی Policy CA هم گفته میشود.

3- Two-tier Hierarchy : شامل دو سطح است. Root CA و Issuing CA ( یا همان subordinate CA ) ها. اگر Issuing CAها را خطری تهدید کند به راحتی می توان با استفاده از Root CA که بصورت Offline میباشد آنها را ریکاوری کرد. علاوه بر آن، مزیتهای که مد قبلی دارا بود را شامل می شود. به دلیل اهمیت Root CA ها و اطلاعاتی که آنها نگهداری می کنند همیشه ارتباط آنها را از شبکه قطع می کنند تا احیانا اگر خطری متوجه CA زیر دستی باشد بتوان با CA های بالا دستی آنها را به مدار برگرداند این تعریف برای Intermediate CA ها نیز صدق می کند.

Offline CA ها در شرایط زیر Online می شوند:

  1. ارسال Certificate به CAهای پایین دستی. به عنوان مثال Submit کردن درخواست Intermediate CA توسط Root CA
  2. Expire شدن لیست CRL مربوط به Root CA or Intermediate CA
  3. Renew کردن گواهی نامه های مجوز کار که برای Intermediate CA ها و Issuing CA صادر شده بوده است.
  4. و در مواقع اضطراری.

وقتی Root CA گواهینامه ای به Intermediateها ارسال می کند این گواهینامه حاوی امضائی می باشد که توسط آن کلید خصوصی خود را ایجاد کرده است. پس در نتیجه Intermediateها و Issuing CA توسط کلید عمومی Root CA که در خود ذخیره کرده اند می توانند امضای کلید خصوصی Root CAرا اعتبار سنجی کنند. در نتیجه کاربران به Intermediate CA و Issuing CA ها اعتماد دارند چون به Root CA اعتماد دارند. پس در ایجاد CA Hierarchy یکی از پروسه های مهم Import کردن Root CA’s Certificate  بر روی کلاینتها و CA های پایین دستی Root CA می باشد.

اولین قدم برای ایجاد این ساختار در یک سازمان لحاظ کردن نیازمندی های آن سازمان می باشد. شما باید مشخص کنید از چه مد در CA Hierarchy استفاده کنید؟ وکدام یک از این مدها جوابگوی نیازمندی های سازمان می باشد؟ مزایا و معایب هر کدام چه می باشد؟ بعد از مشخص کردن پارامتر فوق باید نوع CA را مشخص کنید، به عنوان مثال اینکه از Standalone CA استفاده شود یا از Enterprise CA . نکته بعدی مشخص کردن طول عمر گواهی نامه ها می باشد یا اینکه Root CA با چه مدت زمانی Certificate ها را به CA پایین دستی صادر کند؟ Issuing CA با چه مدت زمانی Certificate ها را به کاربران صادر کند؟ توصیه ای که در مورد CA Hierarchy میشود دو برابر بودن طول عمر CA بالا دستی از CA پایین دستی می باشد. به عنوان مثال اگر Intermediate CA گواهینامه ای را با طول عمر5 سال به Issuing CA صادر کند باید Certificate خودش دو برابر این طول عمر باشد. توصیه مایکروسافت در CA Hierarchy بدین صورت می باشد:

  1. Root CA’s Certificate 20 Years
  2. Intermediate CA’s Certificate 10 Years
  3. Issuing CA’s Certificate 5 Years

 

 

معرفی Key Length

هر CA یک جفت کلید public و private دارد. طول کلید فاکتور مهمی است در امنیت اطلاعاتی که توسط آن کلید محافظت میشود. باید طول کلید را برای صدور هر گواهی ای بوسیله issuing CA تعیین کنید. طول کلید را میتوان در زمان نصب CA و یا در زمان renew کردن جفت کلیدها میتوان مشخص نمود.

 

مشاهده همه افزودن یک یادداشت
شما
دیدگاه خود را وارد کنید
رفتن به نوار ابزار