Active Directory Certificate Services:
سوال :
چرا شما وقتی به درگاه بانک X وصل می شوید ،
HTTPS
است؟
فرض کن من بگم ، مبلغ 1 میلیون از حساب من بردارید و به حساب فلانی واریز کنید .حال
یک نفر این Data را وسط راه بدزدد (Capture) و یک عدد 0 جلوی آن گذاشته و سمت بانک
ارسال کند. بعد بانک 10 میلیون از حساب من کم می کند . رسیدی که از سایت بانک
دانلود کردی ، نوشته 1 میلیون. پرینت می گیرم و سمت بانک مورد نظر می برم . میگم
آقا این رسید بانک شما است یا نه ؟ می گه بله . من 1 میلیون را وارد کردم ، چرا شما
10 میلیون از حساب من کم کردید ؟ بعد متصدی بانک می گوید : Data که از سمت شما به
ما رسیده نوشته شده 10 میلیون . حال من حرف راست میگم یا متصدی بانک ؟ هر دو حرف
راست می گوییم . ایراد کار از کجا است🤔 ؟ این دزده . زیرا توانست Data من را
بخواند ، آن را ویرایش کند و سر مقصد کلاه بگذارد . تقصیر من بوده که آن را Encript
نکردم ، زیرا اگر Encript و تا این دزده بخواست آن را رمزگشایی کند که من چی گفتم ،
پول جابه جا شده بود . برای همین است که بانک ها با
HTTPS
کار می کنند تا بتوانند جلوی این دزدها را بگیرند .
👈 Encryption از مشتقات امنیت است . استفاده از الگوریتم های ریاضی در علم Cryptography . افرادی که در علوم ریاضیات قوی هستند ، مشتقی دارند به اسم Cryptography . که کار آنها ساخت یک سری الگوریتم های پیچیده است که رمزگشایی آن بسیار سخته ، برای اینکه در دنیای IT ، جهت انتقال ایمن اطلاعات بتوان از آنها استفاده کرد .
✔️ به خاطر داشته باشید که HTTPS از مشتقات IPSec می باشد. IPSec از قویترین مکانیزم انتقال اطلاعات در شبکه های کامپیوتری است. عملیات IPSec به صورت متقارن Symmetric و نامتقارن Asymmetric انجام می گردد، که در حالت Asymmetric Encryption همواره 2 کلید مطرح است:
1
Public Key: جهت
Encryption کردن Data با پسوند cer.
2
Private Key : جهت Decryption کردن Data با پسوند pfx.
👈 Public Key ها در شبکه جابه جا می شوند و این احتمال وجود دارد که این کلید سرقت (Capture) شود ، اما قابل باز شدن نیستند زیرا Private Key جهت باز کردن قفل مورد نیاز هستند.
ساخت Public Key ها جهت سایت های HTTPS به 2 صورت امکان پذیر است:
✔️ استفاده از قابلیت Active Directory Certificate Services در ویندوز سرور …
✔️ بعضی از شرکت ها در دنیا وظیفه فروش Certificate را بر عهده دارند. شرکت های مثل، VeriSign
، GoDaddy
، Google و …
نکته ای که حائز اهمیت است، در داخل
Database های Browser ها
یک سری تولید کننده کلید های Public ثبت شده است. بنابراین آن کلیدی را که در Certificate
Services می سازید و تولید کننده آن مثلا سرور X است، در نتیجه Browser شما به دلیل
اینکه تولید کننده کلید را نمی شناسد، سایتی را باز نخواهد کرد.
عملیات IPSec توسط 2 پروتکل انجام می گردد:
1
AH: فقط شامل Data Integrity می باشد. (Integrity یعنی اطمینان از عدم تغییر محتوا)
2
ESP: شامل Data Integrity و Encryption می باشد.
👈 عملیات Data Integrity
توسط الگوریتم های Hash (مانند SHA1، MD5) انجام می گردد. این الگوریتم ها عملیات Integrity و Authentication (شناسایی) را هم انجام می دهند.

✔️الگوریتم RSA یکی از معروفترین الگوریتم های نامتقارن (Asymmetric) در بحث IPSec می باشد . الگوریتم RSA به سبک کلید های Public و Private مورد استفاده قرار می گیرد.
✔️ به خاطر داشته باشید که کلید ها دارای
طول بیت هستند. هرچقدر طول
بیت کلید بیشتر باشد، امنیت به مراتب بالاتر خواهد بود. البته مستحضر باشید که انتخاب
هرچه بیشتر طول کلید علاوه بر اینکه باعث می شود قدرت امنیت بالاتری داشته باشید،
اما پردازش را بر روی مبداء و مقصد افزایش خواهد داد. (با طول کلید بزرگتری کار می
کند)

فعال سازی AD Certificate Services:
✔️ AD Certificate Services جزء Role های ویندوز Server محسوب می شود ، بنابراین در ویندوز سرور از بخش Server Masnager ، گزینه Add Roles and Features را انتخاب کنید .
✔️ آن چیزی که ما می خواستیم فعال کنیم Role بود نه Feature ، بنابراین در لیست Role ها تیک AD Certificate Services + Web Server(IIS) را انتخاب کنید .
✔️از بین قابلیت های متنوع حالت Certificate Authority را انتخاب کنید.👈 Next و Install .

Configure Certificate Authority:
بعد از نصب سرویس CA یا به اختصار Public Key Infrastructure (PKI) باید آن را Configure کنید که مراحل آن به شرح زیر می باشد:
✔️ در پنجره باز شده Next را کلیک و از بین قابلیت های متنوع حالت Certificate Authority را انتخاب کنید.

✔️ کلمه Active Directory در ابتدای نام Certificate Services بدان معنا نیست که این سرویس وابسته به Active Directory است. اگر با Active Directory کار کند به آن Enterprise CA گویند. در هر صورت چه تحت Domain باشید یا خیر ، از حالت Standalone CA جهت ساخت سایت HTTPS استفاده کنید.

✔️ Certificate Services یا به اختصار Public Key Infrastructure دارای یک سرور اولیه به نام Root CA هستند. حال این سرور اولیه می تواند یک سری Certificate Services زیرمجموعه داشته باشد که اصطلاحاً به آنها Subordinate CA گویند. در این مرحله Root CA را انتخاب کنید. (ما خودمان هستیم و خودمان، بنابراین انتخابی به جز Root CA نداریم)

✔️ در مر حله بعد گزینه Create new a private key را جهت ساخت کلید خصوصی انتخاب کنید.

✔️ در مرحله بعد نوع الگوریتم کدگذاری، طول بیت و … را انتخاب کنید. (طول بیت کلید های Private و Public ربطی یه یکدیگر ندارند)

✔️ در مرحله بعد نام سرویس دلخواه را در قسمت Common name for this CA تایپ کنید.
✔️مستحضر باشید که الگوریتم RSA جهت تولید کلید نیازمند ساختار Siffix (نام+پسوند) است ، اما حتما باید یه زبان Distinguished Name تایپ گردد. ( نحوه نگارش Domain Controller)

✔️ در مرحله آخر مدت اعتبار سروو و مسیر ذخیره فایل های سرویس Certificate Services را مشخص کنید.

Certificate Authority:
سرویس Certificate Authority از 4 بخش تشکیل شده است :
1
Failed Requests: در خواست هایی که رد شده است.
2
Pending Requests: درخواست هایی که در حال بررسی هستند.
3
Issued Certificates: درخواست هایی که مورد تایید قرار گرفته اند.
4
Revoked Certificates: درخواست هایی که تاریخ Certificate آنها منقضی شده و می خواهند آن را تمدید کنند.

Certificate
مبنا برا این است که در Web Server (IIS) سایت Hamed.net در لایه 4 با پروتکل HTTPS بر روی پورت 443 باز گردد . بنابراین در وهله اول باید درخواست داد.
✔️ ابتدا در Web Server (IIS) بر روی اسم سرور کلیک کنید و گزینه Server Certificates را انتخاب کنید.
✔️ از سمت راست پنجره گزینه Create Certificate Request
را انتخاب کنید.
✔️ بعد از Next، الگوریتم RSA به همراه طول بیت کلید را مشخص کنید. (طول بیت کلید های Private و Public ربطی یه یکدیگر ندارند)
✔️ در پنجره آخر نام فایل Certificate را مشخص و ذخیره کنید.

در مرحله بعد درخواست (Certificate) را به سرویس
Certificate Authority معرفی کنید.(فایل متنی)
✔️ بر روی اسم سرور کلیک راست، گزینه All Tasks و سپس Submit new Request را انتخاب کنید.

درخواست در بخش Pending Requests
قرار گرفته است. حال برای اینکه درخواست شما مورد تایید قرار گیرد، باید وارد بخش Issued Certificates گردد.
✔️ بر روی درخواست در بخش Pending Requests کلیک راست، گزینه All Tasks و سپس Issue را انتخاب کنید.

در مرحله بعد Certificate تایید شده را باید به سایت Hamed.net تحویل داده تا بر روی HTTPS کار کند.
✔️ در بخش Pending Requests بر روی در خواست کلیک و تب Details انتخاب کنید.
✔️ گزینه … Copy to file را انتخاب و نسبت به ساخت فایل با پسوند CER اقدام کنید.

همانطور که مستحضر هستید درخواست را Web Server (IIS) ایجاد کرده است، بنابراین فایل با پسوند CER را تحویل (IIS) دهید.
✔️ ابتدا در Web Server (IIS) بر روی اسم سرور کلیک کنید و گزینه Server Certificates را انتخاب کنید.
✔️ از سمت راست پنجره گزینه Complete Certificate Request
را انتخاب کنید.
✔️ فایل با پسوند CER ذخیره شده را به آن معرفی کنید.

در Web Server (IIS) بر روی اسم سایت کلیک و از بخش تنظیمات Website گزینه Bindings را انتخاب کنید .
✔️ در پنجره باز شده گزینه Add و سپس HTTPS با پورت 443 را انتخاب کنید.
✔️ Certificate ساخته شده را از بخش SSL Certificate انتخاب کنید.

نکته ای که حائز اهمیت است، در داخل Database های Browser ها یک سری تولید کننده کلید های Public ثبت شده است. بنابراین آن کلیدی را که در Certificate Services می سازید و تولید کننده آن مثلا سرور X است، در نتیجه Browser شما به دلیل اینکه تولید کننده کلید را نمی شناسد، سایتی را باز نخواهد کرد.
