AD CS – قسمت دوم

 

در قسمت قبل، با کلید های عمومی و خصوص آشنا شدیم اکنون ادامه ی بحث را پی می گیریم.

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

همانند گواهینامه که هویت شما و آنکه مجوز رانندگی با چه وسایلی را دارید را شامل می شود، Digital Certificate ها هم شامل اطلاعاتی است نظیر:

۱٫ هویت شما با آن اطلاعات مشخص شود.

۲٫ هویت مرجع صادر کننده مشخص شود.

۳٫ اطلاعاتی که بتوان از طریق آن با مرجع صادر کننده تماس گرفت.

همچنین کیفیت این مجوز بیشتر می شود اگر:

۱٫ مرجع صدور بتواند آن را در هر زمانی که لازم باشد، باطل کند.

۲٫ با رشوه دادن قابل اخذ نباشد و جعل کردن آن دشوار باشد.

۳٫ ابطال شدن آن را بتوان از طریق ارتباط با مرجع صادر کننده  به سرعت متوجه شد.

استفاده از Digital Certificate ها سه هدف اصلی به دنبال دارد:

۱٫ تصدیق هویت: برخی از راه هایی که Digital Certificate ها در تصدیق هویت به کمک می آیند، عبارت اند از:

آ. IPSec ، Internet Protocol Security

ب. Login کردن به کامپیوتر و تصدیق هویت کاربرد

پ. تصدیق هویت سرور برای کاربر با استفاده از Transport Layer Security ، TLS

ت. تصدیق هویت کلاینت در شبکه بی سیم

و بسیاری دیگر…

۲٫ رمزنگاری : برخی از راه هایی که Digital Certificate ها در رمزنگاری به کمک می آیند، عبارت اند از:

آ. Secure Multipurpose Internet Mail Extensions ، S/MIME

ب. TLS

پ. Encryption File System ، EFS

3. صحت داده ها : رمزنگاری در انتقال اطلاعات و امضای دیجیتال که در قسمت قبل بحث شد.

کلاس ها:

شرکت VeriSign کلاس بندی برای Certificate ها کرده است که از این قرار است:

کلاس ۱ : برای اشخاص حقیقی

کلاس ۲: برای اشخاص حقوقی

کلاس ۳: برای نرم افزار ها و سرو ها

کلاس ۴: برای تراکنش های آنلاین مالی بین شرکت ها

کلاس ۵: برا ی سازمان های سری و سازمان های امنیتی و سری دولتی

از لحاظ تئوری با راه اندازی مجوز ها، جهان خودمان را به دو قسمت تبدیل می کنیم،جهانی که به آن ها اعتماد داریم و جهانی که به آن ها اعتماد نداریم. اما واقعا چگونه عناصر قابل اعتماد از غیر قابل اعتماد قابل تشخیص اند؟ باید بر اساس Certificate که دارا هستند به آن ها اعتماد کنیم. اما آیا هر Certificate ای قابل اعتماد است؟ البته که نه. تنها Certificate هایی که از طرف کمپانی ما قابل قبول هستند، قابل اعتماد هستند. از طرفی دیگر یک Certificate برای همیشه قابل اعتماد نیست بلکه پس از مدتی بی اعتبار می شود. به عبارت دیگر Certificate ها تاریخ انقضا دارند. در ادامه بیشتر بحث می شود.

Certificate Service چیست؟

یک Certificate Service، سرویسی است که با استفاده از زیرساخت های کلید عمومی برای تصدیق هویت کاربران، کامپیوتر ها و تجهیزات مجوز صادر می کند، مجوز ها را بازبینی می کند و کلید ها را مدیریت می کند.

به صورت کلی صدور یک مجوز دو حالت دارد:

۱٫ Manual verification  : که به صورت دستی مدیر صدور مجوز درخواست شده را تایید می کند.
۲٫ Automatic approval : که بر اساس عضویت در Active Directory Domain Service صورت می گیرد.

شروع با Active Directory Certificate Services :

Active Directiry Certificate Services با زیرساخت Public Key و Certificate در سناریو های مختلفی کاربرد دارد از جمله:

۱٫ رمزنگاری فایل ها. یکی از بزرگترین مشکلات امنیتی امروز، به سرقت رفتن اطلاعات روی کامپیوتر های قابل حمل است. با ویندوز سرور ۲۰۰۸ و در ویندوز ویستا یا سون می توانید با استفاده از Group Policy تمام اطلاعات کاربران را رمزنگاری کنید.

۲٫ رمزنگاری ارتباطات. ویندوز سرور ۲۰۰۸ شامل هر دو پروتکل IPSec و Secure Sockets Tunnelling Protocol یا SSTP است. هر دوی این پروتکل ها به زیرساخت Certificate ها در مبدا و مقصد وابسته اند.

۳٫ امنیت Email ها: ویندوز سرور ۲۰۰۸ شامل پروتکل Secure Multipurpose Internet Mail Exchanges یا S/MIME است. این پروتکل، پروتکل استاندارد ایمن سازی ایمیل ها است.

۴٫ امنیت Login : استفاده از کارت های هوشمند یا Smart Card ها ، Certificate ها در اینجا هم به کمک می آیند.

۵٫ امنیت وب سایت: با استفاده از IIS 7.0 در ویندوز سرور ۲۰۰۸ به راحتی می توانید تراکنش های بین وب سرور و کلاینت ها را ایمن تر کنید.

۶٫ امنیت سرور ها با تصدیق شدن هویت سرور. به عنوان مثال زمانی که به تمام سرور های شبکه خود یک Certificate اختصاص دهید، آنگاه کامپیوتر های شبکه شما می توانند مطمئن شوند که با کامپیوتری که در حال جعل هویت یکی از سرور ها است انتقال اطلاعات انجام نمی دهند.

۷٫ امنیت شبکه های بی سیم: با استفاده از ویندوز سرور ۲۰۰۸ و ویندوز ویستا یا سون، می توانید مطمئن باشید که تمام ارتباطات در بین وسیله های مورد اعتماد است.

۸٫ با استفاده از ویندوز سرور ۲۰۰۸ و Active Directory Rights Managment Services می توانید از اطلاعات در برابر کنجکاوی ها محافظت کنید.

ضمن آنکه مد نظر داشته باشید صادر کردن یک Certificate برای تمام کارمندان شرکت (کاربران شبکه) می تواند هویت آن ها را در هر تراکنشی تصدیق کند. با استفاده از AD CS یک (PKI (Public Key Infrastracure به صورت سلسه مراتبی در تمام شبکه ایجاد می شود که AD CS از اجزا و رول های مختلفی تشکیل شده که با تعدادی از آنها آشنا می شویم.

۱٫ Certificate Authorities :

سرور هایی هستند که برای صدور و مدیریت مجوز ها به کار می روند. به اختصار آن ها را CAs می خوانیم. به علت ساختار سلسه مراتبی PKI، سرویس AD CS می تواند هم Root و هم Child ها را پشتیبانی کند. سرور CA که در  Root قرار دارد را Root CA می گوییم و معمولا Root CA مجوز هایی را CAs زیردست می دهند تا آن ها مجوز های لازم را برای کاربران صادر کنند. همانطور که می دانید هر Certificate دارای مدت زمانی برای خود است و بعد از آن منقضی می شود. زمانی که مجوز های Subordinate CA ها یا CA های زیردست، منقضی می شود آنها باید از Root CA دوباره درخواست تجدید مجوز را کنند. این دلیل آن است که Root CA در بازه های زمانی مشخصی در شبکه حاضر می شود و مجوز ها را تمدید یا مجوز های جدیدی صادر می کند. برای افزایش امنیت Root CA حتی به صورت فیزیکی Root CA را از شبکه خارج می کنند. در این خصوص در ادامه بیشتر بحث می شود. البته معمولا مدت زمان اعتباز مجوز یک Subordinate بیشتر از زمانی است که به کاربران، کامپیوتر ها و سرویس های دیگر مجوز می دهد.

۲٫CA Web Enrollment :

با استفاده از Web Entrollment کاربران برای درخواست یک Certificate و دریافت لیست مجوز های باطل شده  از طریق یک Web Browser به CA وصل می شوند. Certificate Revocation List یا به اختصار CRL لیستی از مجوز هایی است که توسط سازمان باطل شده است. به طور خاص این لیست فقط شامل شماره سریال مجوزها است. بر اساس RFC 3280 دو وضعیت مختلف برای Revocation وجود دارد که عبارت است از:

الف: Revoked : یک مجوز به صورت غیر قابل برگشت،باطل شده است. به عنوان مثال متوجه می شوید که CA یک مجوز به طور نا صحیح صادر کرده یا یک Private Key به سرقت رفته. در این حالت عمل باطل شدن مجوز غیرقابل لغو شدن است.

ب: Hold : یک مجوز به صورت قابل برگشت لغو می شود. برای مواردی کاربرد دارد که هنوز تصمیم قطعی گرفته نشده. به عنوان مثال تعلیق یک کاربر.

بر اساس RFC 5280 (صفحه ۶۹) ده دلیل Revoke کردن یک مجوز به این شرح است:

CRLReason ::= ENUMERATED {
        unspecified             (0),
        keyCompromise           (1),
        cACompromise            (2),
        affiliationChanged      (3),
        superseded              (4),
        cessationOfOperation    (5),
        certificateHold         (6),
             — value 7 is not used
        removeFromCRL           (8),
        privilegeWithdrawn      (9),
        aACompromise           (10) }

CRL در بازه های زمانی مشخصی منتشر می شود و همچنین می تواند پس از آنکه یک مجوز باطل شد به صورت فوری منتشر شود. برای جلوگیری از حملات Denial Of Service و Spoofing معمولا CRL ها دارای یک امضای دیجیتال هستند تا مشخص شود حتما از CA مربوطه صادر شده اند. در این خصوص درآینده توضحات دقیق تری ارائه می شود.

از ویندوز سرور ۲۰۰۰ این ویژگی موجود بوده است و برای درخواست صدور یا تمدید مجوز ها برای کاربران و کامپیوتر هایی که در AD DS نیستند یا مستقیما به شبکه ارتباط ندارند و کامپیوترهایی که سیستم عامل آن ها مایکروسافت ویندوز نیست طراحی شده است. بر خلاف AutoEnrollment و Certificate Request Wizard که در ادامه با آن ها آشنا می شویم، از طریق اینترنت نیز امکان دریافت مجوز وجود دارد. کنترل کننده قبلی Xenroll.dll در ویندوز ویستا و سرور ۲۰۰۸ با کنترل کننده ی جدیدی به نام CertEnroll.dll جایگزین شده است و با آنکه فرآیند درخواست و صدور مجوز تغییری نکرده، در زمانی که کامپیوتری که سیستم عامل آن ویستا یا سرور ۲۰۰۸ است از کامپیوتری که یک سیستم عامل قدیمی تر دارد درخواست مجوز کند، مشکل compatibility ایجاد می شود. البته برعکس این امر صحیح نیست، یعنی سیستم عامل های قدیمی تر می توانند از سیستم عامل جدید تر مجوز دریافت کنند.

۳٫ Online Responder :

مشابه CRL، یک OR هم برای تصدیق یک مجور به کار می رود. با استفاده از پروتکل Online Certificat Status Protocol یا به اختصار OCSP (توضیح در RFC 2560) این سرویس کار می کند. با استفاده از یک OR دیگر نیازی نیست که یک لیست  کامل CRL برای کنترل مجوز ها وجود داشته باشد. OR درخواست های تصدیق مجوز ها را دریافت می کند و آن ها را بررسی می کند و پاسخ می دهد. استفاده از Online Responder ها سریع تر و کارآمد تر است. AD CS به عنوان یک سرویس جدید در ویندوز سرور ۲۰۰۸ شامل این سرویس است. یک OR، در جواب یک درخواست سه جواب “Revoked” یا “Good” یا “Unknown” را باز می گرداند. این جواب توسط امضای OR، امضا می شود. چنانچه در پردازش درخواست مشکلی به وجود آید، OR یک Error Code را باز می گرداند. ORها از لحاظ امنیتی بسیار بحث برانگیز هستند که در آینده بحث خواهد شد.

۴٫ Network Device Enrollment Service :

تجهیزاتی که دارای سیستم عامل سطح پایین هستند همانند روتر ها و سوییچ ها، نیز می توانند از PKIs بهره ببرند. با استفاده از پروتکل Simple Certificate Enrollment Protocol یا به اختصار SCEP که توسط سیسکو سیستمز ایجاد شده است، NDES نیز می تواند از PKIs استفاده کند. البته بدیهی است که این تجهیزات قسمتی از AD DS نیستند اما با استفاده از NDES می توانند با انکه دارای اکانت AD DS نیستند در ساختار سلسله مراتبی PKIs به خوبی جای بگیرند. NDES پیاده سازی مایکروسافت از روی پروتکل SCEP است که با آنکه تجهیزاتی همانند روتر و سوییچ نمی توانند توسط AD DS شناسایی شوند، بتوانند از مجوزهای CA استفاده کنند. بیشترین کاربرد NDES برای سازمان هایی است که دارایPKIs هستند و می خواهند ارتباط خودشان را با استفاده از IPSec با تجهیزاتی از شبکه ایمن کنند. در ویندوز سرور ۲۰۰۳ پکیج به نام Microsoft SCEP به صورت پکیج اضافه شونده قابل دسترسی است. البته Microsoft SCEP در واقع پشتیبانی مایکروسافت از SCEP است و یک پروتکل مجزا نیست. در ویندوز سرور ۲۰۰۸، با نام NDES این پشتیبانی به عمل آمد.

Crytography Next Generation – CNG .5 :

CNG در ویندوز سرور ۲۰۰۸ یک ابزار برای انعطاف پذیر برای توسعه ی رمزنگاری است. با استفاده از CNG می توان یک الگوریتم رمزنگاری جدید ایجاد، آپدیت یا از یک الگوریتم custom استفاده کرد. با CNG می توان عملیات ابتدای رمزنگاری همانند Hashها، رمزنگاری و رمزگشایی را انجام داد، می توان کلید های جدیدی ساخت، آنها را نگه داری کرد و آن ها را بازیابی کرد. می توان از Provider های دیگر استفاده کرد. برای اطلاعات بیشتر به اینجا، TechNet مراجعه کنید.

۶٫ Restricted Enrollment Agent و Enrollment Agent :

Ristricted Enrollment Agent ویژگی جدیدی است که در ویندوز سرور ۲۰۰۸ معرفی شد. Enrollment Agents افرادی هستند که در یک سازمان مورد اعتماد هستند و برای آن ها مجوزی به نام Enrollment Agent Certificate صادر می شود. این افراد می توانند از طرف کاربران دیگر برای مجوز های Smart Card درخواست کنند. این افراد معمولا عضو تیم امنیت فناوری اطلاعات سازمان یا پشتیبانی باید باشند. البته در برخی سازمان ها همانند بانک ها که شعب زیادی دارند افراد تیم امنیت IT یا Help Desk نمی توانند این کار را بر عهده گیرند بنابراین این وظیفه بر عهده یک فرد دیگر همانند مدیر شعبه گذاشته می شود. CA در ویندوز سرور ۲۰۰۸، می توان مشخص کرد که یک Agent بتواند فقط برای گروهی از کاربران درخواست کند. روش کار چنین است که باید چند Security Templates مختلف طراحی شود و برای هر Template تنها فرد مربوطه به عنوان Enrollment Agent انتخاب شود. توجه داشته باشید که هنوز امکان آنکه که بر اساس یک OU این امر صورت گیرد وجود ندارد. شاید در آینده شاهد این تغییر مهم باشیم. همچنین توجه داشته باشید این ویژگی در Enterprise CA موجود است.

همانطور که گفته شد یک مجوز برای مدت مشخصی دارای اعتبار است، دلایل اصلی این امر عبارت است از:

۱٫ هر چقدر عمر جفت کلید بیشتر باشد احتمال به سرقت رفتن آن بیشتر می شود، به عبارت دیگر چنین گفته می شود که اگر در هر حمله زخمی به جفت کلید ها وارد شود، جفت کلید بیشتر زخم خورده می شوند.

۲٫ time nesting : زمانی که CA Certificate باطل شود، تمام مجوز های صادر شده توسط آن نیز باطل می شود. CA Certificate خود زمان انقضا دارد و اگر منقضی شود، مجوز های صاده شده توسط آن CA هم باطل می شود مگر آنکه:

آ. قبلا باطل شده باشند.
ب. مجوز CA تمدید شود.

در پایان استاندارد هایی که در CA مایکروسافت استفاده شده به این شرح است:

RFC 2313 (PKCS #1). A method for encrypting data using Rivest-Shamir-Adleman (RSA) public key cryptography.

RFC 2527. A framework for creating certificate policies and certification practice statements for CAs and PKIs.

RFC 2528. Representation of Key Exchange Algorithm (KEA) Keys in Internet X.509 Certificates.

RFC 2559. Addresses operational protocols that make it possible to retrieve data regarding X.509 certificates and CRLs from an LDAP directory.

RFC 2560. Guidelines for support of Online Certificate Status Protocol (OCSP).
Note

This requires the use of non-Microsoft OCSP software.

RFC 2585. Specifies the conventions for using the File Transfer Protocol (FTP) and the Hypertext Transfer Protocol (HTTP) to obtain certificates and CRLs from PKI repositories.

RFC 2587. Defines auxiliary object classes that need to be supported in an LDAP schema to support PKIX requirements.

RFC 2255. Guidelines for formatting LDAP URLs. Clarifies how LDAP URLs are resolved.

RFC 2797. Defines a certificate management protocol using Certificate Management Messages over CMS.

RFC 3280. Formatting of X.509 v3 certificates and X.509 v2 CRLs for use on the Internet.