برای مطالعه بخش قبل روی این آدرس کلیک کنید.
کلیدهای جفت در رمزنگاری نامتقارن معمولاً به عنوان کلید عمومی و کلید خصوصی شناخته میشوند، همانطور که در شکل زیر نشان داده شده است. کلید عمومی نام خود را از این واقعیت گرفته است که برای هر طرف در زیرساخت در دسترس است. کلید خصوصی باید برای کاربر خصوصی نگه داشته شود.
همانطور که اشاره کردیم، کلید عمومی گیرنده برای رمزگذاری یک پیام استفاده میشود، در حالی که کلید خصوصی فرستنده برای امضای دیجیتالی پیام و اثبات اینکه فرستنده پیام کیست (معروف به nonrepudiation) استفاده میشود.
آشنایی با اصطلاحات PKI
اصطلاح زیرساخت کلید عمومی از این واقعیت ناشی میشود که زیرساخت کاملی از مولفهها وجود دارد که به ایجاد این محیط برای مدیریت و استفاده از کلیدهای عمومی و خصوصی کمک میکند. ما با یکی از مولفههای اصلی این زیرساخت که گواهی است کار خود را آغاز خواهیم کرد.
درک استفاده از کلید
آزمون سکیوریتی پلاس از شما انتظار دارد که بفهمید چه زمانی از یک کلید عمومی یا کلید خصوصی برای انجام یک عملکرد رمزنگاری استفاده میشود. برای آزمون سکیوریتی پلاس به یاد داشته باشید که کلید عمومی گیرنده برای رمزگذاری دادهها یا پیامها استفاده میشود. رویکرد فوق اجازه میدهد تنها از کلید خصوصی گیرنده برای رمزگشایی اطلاعات استفاده شود.
همچنین باید بدانید که هنگام امضای دیجیتالی یک پیام، از کلید خصوصی فرستنده برای انجام اینکار استفاده میشود. امضای پیام با کلید خصوصی فرستنده ثابت میکند که فرستنده پیام کیست، زیرا فقط آن شخص به کلید خصوصی خود دسترسی دارد.
گواهینامهها
گواهی یک فایل الکترونیکی است که برای ذخیره کردن کلید عمومی (و گاهی اوقات کلید خصوصی) استفاده میشود و کلید عمومی را با یک نهاد مانند یک شخص یا شرکت مرتبط میکند. به عنوان مثال، اگر میزبان یک وبسایت هستید و میخواهید ارتباطات را ایمن کنید، باید وب سرور را با یک کلید عمومی پیکربندی کنید. شما یک گواهی دریافت میکنید (که حاوی کلید عمومی است) و آنرا به وب سرور اختصاص میدهید تا ارتباطات را رمزگذاری کند.
همانطور که گفته شد، گواهینامه کلید عمومی را ذخیره میکند و همچنین حاوی اطلاعاتی در مورد صاحب کلید عمومی است. به همین دلیل، گواهی نیز یک فایل الکترونیکی در نظر گرفته میشود که کلید عمومی را به صاحب آن متصل میکند.
گواهی دیجیتال حاوی اطلاعات زیر است که به عنوان ویژگیهای گواهی شناخته میشود. یک ویژگی گواهی یک فیلد از اطلاعات ذخیره شده با گواهی دیجیتال است.
■ کلید عمومی (Public key): کلید عمومی شخصی که صاحب گواهی است.
■ الگوریتم (Algorithm): الگوریتم نامتقارن مورد استفاده گواهی.
■ شماره سریال (Serial number): مقدار منحصر به فردی که به گواهی اختصاص داده شده است.
■ عنوان (Subject): نام سازمان یا شخصی که گواهی به او اختصاص داده شده است.
■ صادرکننده (Issuer): سازمان یا نهادی که گواهی را ایجاد کرده است.
■ معتبر از (Valid from): تاریخ شروع دورهای که گواهی برای آن معتبر است.
■ معتبر تا (Valid to): تاریخ پایان دورهای که گواهی برای آن معتبر است.
■ الگوریتم اثر انگشت (Thumbprint algorithm): الگوریتم مورد استفاده برای ایجاد هش.
■ اثرانگشت (Thumbprint): مقدار هش گواهی.
در مثال بالا مشاهده کردید که گواهینامه از 27 ژوئن 2011 تا 26 ژوئن 2013 معتبر است. همچنین توجه داشته باشید که الگوریتم هش مورد استفاده برای تولید خلاصه پیام در گواهی sha1RSA، گواهیصادر کننده است. مرجع 2003ServerA است و الگوریتم نامتقارن مورد استفاده برای کلید عمومی RSA است. توجه ویژه داشته باشید که ویژگی Subject روی www.certworld.loc تنظیم شده است. گاهی اوقات از این به عنوان نام رایج گواهی نام برده میشود و باید با آدرس اینترنتی که کاربران برای برنامهای که از گواهی استفاده میکند به آن دسترسی پیدا میکنند، مطابقت داشته باشد.
دقت کنید که گواهی یک فایل الکترونیکی است که موجودیتی را به یک کلید عمومی متصل میکند. گواهی توسط CA صادرکننده گواهی امضا و تایید میشود.
انواع گواهینامه
انواع مختلفی از گواهیها وجود دارد. هر نوع گواهی در موقعیت خاصی استفاده میشود. به عنوان مثال، یک گواهی امضای کد (code-signing) برای امضای دیجیتالی کدهای یک برنامه استفاده میشود، در حالیکه یک گواهینامه ایمیل برای رمزگذاری پیامهای ایمیل استفاده میشود. در زیر فهرستی از انواع گواهینامهها را مشاهده میکنید.
■ گواهی عام (Wildcard): یک گواهی خاص است که میتواند برای بسیاری از آدرسهای اینترنتی درون دامنهای اعمال شود. به عنوان مثال، من میتوانم گواهی علامت *.geneclarke.com داشته باشم و میتوانم از آن در سرورهایی مانند www.gleneclarke.com، mail.gleneclarke.com و login.gleneclarke.com استفاده کنم.
■ SAN: گواهی نام جایگزین موضوع (subject alternative name) گواهینامهای است که ممکن است چند نام مشترک با آن مرتبط باشد. این گواهینامه زمانی مفید است که سرور چند سرویس را اجرا میکند و بنابراین از چند نام استفاده میکند. برای مثال، من میتوانم یک گواهی SAN برای سرور Exchange خود داشته باشم که دارای نامهای mail.gleneclarke.com و autodiscover.gleneclarke.com است. بدون استفاده از گواهی SAN، من نیاز به خرید چند گواهی نام مشترک دارم.
■ امضای کد (Code signing ): یک گواهی امضای کد در ارتباط با برنامههای که نیازمند امضای دیجیتالی هستند استفاده میشود. هنگامیکه کد برنامهای امضا را دریافت میکند، به صورت دیجیتالی کد مخصوصی برای کدها ایجاد میشود که مشخص میکند کدها از کجا آمدهاند. امضای دیجیتالی کد همچنین شامل یک خلاصه پیام برای تشخیص این موضوع است که آیا کسی کد را تغییر داده است یا خیر.
■ Self-signed : هر موجودیت در PKI به یک گواهی نیاز دارد. مرجع صدور گواهی ریشه (root CA) گواهینامه خودامضایی دارد که همه سیستمها و کاربران یک گواهی از آن دریافت میکنند. به بیان دقیقتر، گواهی خودامضا شده اصالت مرجعی که گواهینامه را صادر کرده را نشان میدهد.
■ ماشین/رایانه (Machine/computer): ممکن است یک شرکت بخواهد ارتباط بین رایانههای موجود در شبکه یا ارتباطات بین سرورهای خود را رمزگذاری کند. برای انجام اینکار، هر کامپیوتر به یک گواهی ماشین نیاز دارد که به عنوان گواهی کامپیوتر نیز شناخته میشود که روی آن اعمال میشود.
■ ایمیل (E-mail): یک گواهینامه ایمیل برای رمزگذاری پیامهای ایمیل با پروتکل S/MIME استفاده میشود. نرمافزار سرویسگیرنده ایمیل باید برای استفاده از گواهی پیکربندی شود تا پیامهای ایمیل رمزگذاری شوند.
■ کاربر (User): درست همانطور که یک گواهی ماشین توسط رایانه استفاده میشود، یک گواهی کاربر توسط کاربر سیستم برای رمزگذاری انواع مختلف اطلاعات استفاده میشود. به عنوان مثال، یک گواهی کاربر میتواند برای رمزگذاری دادهها روی دیسک با سیستم فایل رمزگذاری مایکروسافت (EFS) سرنام Encrypting File System استفاده شود.
■ Root: هنگامی که یک PKI ایجاد میشود، اولین مرجع گواهی نصبشده به عنوان CA ریشه شناخته میشود. CA ریشه دارای یک گواهی خودامضا است که از آن برای امضای دیجیتالی هر گواهی دیگری که CA ایجاد میکند استفاده میشود. گواهی استفاده شده توسط ریشه CA به عنوان گواهی ریشه شناخته میشود.
■ تأیید اعتبار دامنه (Domain validation ): به عنوان گواهی معتبر دامنه نیز شناخته میشود، گواهی است که برای SSL/TLS استفاده میشود، جایی که درخواست گواهی با اطلاعات دامنه ثبتشده اعتبارسنجی و تأیید میشود. به عنوان بخشی از فرآیند اعتبارسنجی، هنگامی که شما (به عنوان مدیر) گواهی را از CA درخواست میکنید، CA یک پیام الکترونیکی به آدرس ایمیل سرپرست مرتبط با دامنه ارسال میکند. با پاسخ دادن به ایمیل CA، شما ثابت میکنید که سرپرست دامنه هستید و میتوانید گواهی را دریافت کنید.
■ اعتبار سنجی تمدید شده (Extended validation ): یک گواهی اعتبارسنجی توسعه یافته گواهی تأیید اعتبار دامنه را نه تنها با تأیید دامنه بلکه با بررسی اطلاعات سازمانی که با درخواست گواهی تکمیل شده است ایجاد میکند (این قسمت از تأیید اعتبار در واقع اعتبارسنجی سازمانی نامیده میشود).
فرمتهای گواهی (Certificate Formats)
همانطور که برای فایلهای گرافیکی فرمتهای مختلفی مانند JPG، GIF و PNG وجود دارد، فرمتهای فایل متفاوتی نیز برای گواهیها وجود دارد. به دلیل نحوه ذخیره اطلاعات در گواهی، فرمتهای فایلی مختلفی وجود دارد. لیست زیر فرمتهای فایل رایج برای گواهیها را مشخص میکند:
■ قوانین رمزگذاری ممتاز DER/CER سرنام Distinguished Encoding Rules و قوانین رمزگذاری متعارف (CER) سرنام Canonical Encoding Rules قالبهای فایل باینری هستند که برای ذخیره اطلاعات در فایل گواهی استفاده میشوند. فایلهای با فرمت DER میتوانند پسوند فایل .der یا cer. داشته باشند.
■ Privacy Enhanced Electronic Mail : پواهی PEM یک فرمت فایل اسکی است که میتواند پسوند فایلهای pem.، crt.، cer.، یا key. باشد. فایل های PEM بسیار رایج هستند و با -----BEGIN CERTIFICATE----- شروع میشوند و با -----END CERTIFICATE----- ختم میشوند.
■ PFX/P12: قالب تبادل اطلاعات شخصی (PFX) سرنام Personal Information Exchange که با نامهای P12 یا PKCS#12 شناخته میشود، یک قالب فایل باینری است که در محیطهای مایکروسافتی برای وارد کردن و صادر کردن گواهیها رایج است. فایلهای با فرمت PFX دارای پسوند pfx. یا p12. هستند.
■ P7B: فرمت P7B که با نام PKCS#7 نیز شناخته میشود، فرمت فایل اسکی دیگری است که برای ذخیره اطلاعات گواهی استفاده میشود. اگر فایل اسکی را باز کنید، مشاهده میکنید که با متن -----BEGIN PKCS7----- شروع میشود و با -----END PKCS7----- ختم میشود. فایلهای P7B میتوانند پسوند p7b. یا p7c. داشته باشند.
برای آزمون سکیوریتی پلاس باید اطلاعات کافی در مورد انواع مختلف فایلهای گواهینامهها داشته باشید. همچنین توجه داشته باشید که اگر گواهی صادر میکنید که شامل کلید خصوصی است باید از فایل pfx. استفاده کنید، اما اگر فقط کلید عمومی را صادر میکنید، میتوانید از فایل cer استفاده کنید.
مرجع صدور گواهی و مرجع ثبت (Certificate Authority and Registration Authority)
گواهینامهها از کجا میآیند؟ گواهی حاوی کلید عمومی از مرجع صدور (CA) است. CA مسئول ایجاد و مدیریت گواهینامههای یک PKI است.
Certificate Authorities
بهطور کلی دو نوع مرجع صدور گواهی (CA) وجود دارد:
■ Public CA: یک مرجع صدور عمومی برای شناسایی CAهایی است که در تجارت فروش گواهیها به سایر مشاغل فعال هستند. شرکتهایی که گواهیهای قابل استفاده در برنامههای کاربردی را ارائه میدهند. مزیت CA عمومی این است که اکثر برنامهها (مانند مرورگر وب) به گواهیهایی که از CAهای عمومی رایج مانند Entrust، Verisign و GoDaddy میآیند، اعتماد دارند.
■ Private CA : وقتی سازمانی تصمیم میگیرد PKI خود را ایجاد کند، به دنبال یک CA خصوصی است. رویکرد فوق به یک سازمان اجازه میدهد تا CA خود را ایجاد کند و از آن برای تولید گواهینامه برای سازمان استفاده کند. مزیت استفاده از CA خصوصی این است که سازمان مجبور نیست برای هر گواهی که ایجاد میشود هزینهای بپردازد.
چه CA خود را ایجاد کنید و چه از یک CA در دسترس عموم استفاده کنید، ممکن است نیازمند یک سلسله مراتب کامل از CAها در زیرساخت داشته باشید. درست مشابه چیزی که در شکل زیر مشاهده میکنید.
اولین CA که در زیرساخت نصب میشود به عنوان CA ریشه شناخته میشود. روت CA گواهینامه خود را دارد که برای امضای دیجیتالی هر گواهی که ایجاد میکند استفاده میشود و راهی برای اثبات صادر کننده (خالق) گواهی ارائه میدهد. این امضا در فیلد صادرکننده هر گواهی که CA ایجاد میکند ذخیره میشود. مهم است که توجه داشته باشید که CA ریشه دارای یک گواهی خود امضا است، به این معنی که چون آغازگر سلسله مراتب است، باید ویژگی خودامضایی داشته باشد.
برای آزمون سکیوریتی پلاس به یاد داشته باشید که PKI از سلسله مراتبی از CA تشکیل شده است. CA ریشه دارای یک گواهی خودامضا است. همچنین توجه داشته باشید که همه اشیاء در یک PKI از شناسههای شی یا OID استفاده میکنند. OID یک نام منحصر به فرد جهانی است که به هر شی اختصاص داده میشود.
بسته به اندازه سازمان، میتوانید یک یا چند CA فرعی ایجاد کنید که به عنوان CA میانی نیز شناخته میشوند. این CA گواهینامه خود را دارند. یک PKI از یک CA ریشه و CAهای تابع تشکیل شده است.
CA آنلاین در مقابل CA آفلاین
یکی از دلایل داشتن CAهای فرعی یا CAهای متوسط این است که بتوانید CA ریشه را آفلاین کنید. آفلاین کردن root CA به این معنی است که شما آن را از شبکه جدا میکنید تا هک نشود. در یک PKI، اگر مخاطرات امنیتی پیرامون یک CA وجود داشته باشد، خواه یک CA ریشه باشد یا یک CA فرعی، هر گواهی زیر آن نقطه در معرض خطر قرار دارد. اگر CA ریشه هک شود، کل PKI به خطر افتاده در نظر گرفته میشود، زیرا همه چیز تحت CA ریشه قرار میگیرد. برای اجتناب از بروز مشکلی که باعث میشود نیاز به ایجاد مجدد همه گواهیها و CAهای تابعه داشته باشید، معمولاً زمانی که CAهای تابعه دارید، CA ریشه را آفلاین کنید. هنگامیکه یک CA تابع برای هر یک از مکانها ایجاد شد، باید CA ریشه را خاموش کنید تا در معرض خطر قرار نگیرد. اگر یک مشکل امنیتی رخ دهد، آنگاه میتوانید مطمئن شوید که گواهی ریشه مشکل پیدا نکرده است.
مرجع ثبت (Registration Authority)
مرجع ثبت (RA) یکی از ارکان مهم PKI است، زیرا مسئول پذیرش درخواستهای گواهی از سوی مشتریان و سپس تأیید اعتبار نهاد درخواست کننده گواهی است. RA فرآیند تعیین شده توسط خطمشی امنیتی را برای تأیید اعتبار هر کارمند یا دستگاهی که درخواست گواهی میکند دنبال میکند. رویکرد فوق شامل پر کردن درخواست گواهی توسط کارمند و ارائه مدرک شناسایی و دلیل درخواست است. هنگامی که RA درخواست را تأیید کرد، فرآیند ساخت گواهی را برای CA ارسال میکند. یک شرکت کوچک ممکن است نقشهای RA و CA را ترکیب کند، اما همچنان اطمینان حاصل میکند که درخواست قبل از ایجاد گواهی تأیید شده است.
مخزن (Repository)
مخزن پایگاه دادهای است که گواهیها و کلیدهای عمومی را ذخیره میکند. مخزن باید در دسترس همه ذینفعان در ساختار PKI باشد تا در صورت نیاز بتوانند کلیدهای عمومی را بدست آورند. مخزن معمولاً یک دایرکتوری سازگار با LDAP است که به شما امکان میدهد از طریق LDAP روی دایرکتوری محاوره اجرا کنید. پیشنهاد میشود، بهطور منظم از پایگاه داده نسخه پشتیبان تهیه کنید.
مدیریت زیرساخت کلید عمومی (Managing a Public Key Infrastructure)
مدیریت PKI به برنامهریزی، تفکر و زمان زیادی نیاز دارد. در این بخش، با مفاهیم مهم مرتبط با مدیریت PKI آشنا میشوید که شامل چرخه عمر گواهی، لیستهای ابطال گواهی و سایر مسائل مدیریتی میشوند که نیاز به برنامهریزی دارند.
چرخه عمر گواهی (Certificate Life Cycle)
چرخه عمر گواهی به طول عمر یک گواهی اشاره دارد. هنگامیکه گواهیها تولید میشوند طول عمری دارند که پس از سپری شدن زمان دیگر در دسترس نخواهند بود. مراحل زیر در طول عمر گواهینامه نقش دارند:
■ درخواست گواهی (Certificate request ): چرخه عمر گواهی زمانی شروع میشود که شخصی درخواستی را برای صدور گواهی به RA یا CA ارسال کند. به عنوان مثال، فرض کنید در نظر دارید ترافیک سرور اینترانت خود را ایمن کنید، بنابراین به یک گواهی نیاز دارید. شما درخواستی را به RA ارسال میکنید که سپس درخواست را تایید میکند. این فرآیند معمولاً در ارتباط با وبسایتی انجام میشود که برای گواهی درخواستی داده است.
■ صدور گواهینامه: هنگامی که RA درخواست را تأیید کرد، سپس درخواست را به CA منتقل میکند تا CA بتواند گواهی را ایجاد کند. هنگامی که CA گواهی را ایجاد میکند، گواهی را به صورت دیجیتالی امضا میکند تا برنامههای کاربردی بدانند گواهی از کجا آمده است و همچنین به گواهی یک دوره اعتبار (معمولا یک یا دو سال) اختصاص میدهد.
■ تمدید: قبل از اینکه گواهینامه منقضی شود، میتوانید آنرا تمدید کنید تا بتوانید برای مدت طولانیتری از گواهی استفاده کنید. گواهینامهها معمولاً برای دورههای یک یا دو ساله تمدید میشوند. اگر گواهی را تمدید نکنید و دوره اعتبارسنجی بگذرد، گواهی برای برنامهها غیرقابل استفاده است، زیرا آنها قبل از استفاده از گواهی، این تنظیم دوره اعتبار سنجی را بررسی میکنند.
■ تعلیق و ابطال: اگر در هر مرحله CA مشخص شود شما در ارسال درخواست یا استفاده از گواهی تقلب کردهراید، CA ممکن است تصمیم به تعلیق یا حتی لغو گواهینامه شما بگیرد. گواهی معلق دیگر قابل استفاده نیست، اما میتوان آنرا به راحتی به حالت فعال بازگرداند. گواهی ابطال شده برای همیشه غیر قابل استفاده است.
■ تخریب/ انقضا: به عنوان بخشی از چرخه عمر گواهی، باید تعیین کنید که گواهینامهها و کلیدهای مربوطه چگونه پس از پایان زمان اعتبارسنجی آنها از بین میروند. شما میخواهید اطمینان حاصل کنید که هکرها به هیچ یک از کلیدهای استفاده شده در ساختار PKI دست نخواهند یافت تا نتوانند برای استفاده مجدد از آنها و جعل هویت یک کاربر یا دستگاه تلاش کنند. همچنین توجه داشته باشید که گواهینامهها دارای یک دوره اعتبار سنجی هستند و پس از آن مدت گواهی منقضی شده در نظر گرفته میشود. گواهی منقضی شده دیگر معتبر نیست و دیگر نمیتوان از آن استفاده کرد.
لیستهای ابطال گواهی و OCSP
همانطور که اشاره شد، در صورتی که CA تشخیص دهد که شما در دریافت گواهی تقلب کردهاید یا در ارتباط با گواهینامه نقص امنیتی وجود داشته است، گواهی شما میتواند توسط CA در هر زمانی باطل شود.
CA مسئول ایجاد لیست ابطال گواهی (CRL) سرنام certificate revocation list است که لیستی از گواهینامههایی است که باطل شدهاند. CRL در فواصل زمانی معین در یک وبسایت منتشر میشود و برنامهها CRL را دانلود میکنند تا تأیید کنند که گواهی قبل از استفاده از گواهی لغو نشده است.
آزمون سکیوریتی پلاس دانش شما در ارتباط با CRL را محک میزند. از اینرو، باید بدانید که CRL توسط CA بهطور منظم منتشر میشود و برنامهها CRL را بررسی میکنند تا تأیید کنند که گواهی استفاده شده باطل نشده است.
روش دیگری که سیستمها و برنامهها میتوانند برای تأیید اینکه آیا گواهی باطل شده است یا خیراز آن استفاده کنند پروتکل وضعیت گواهی آنلاین (OCSP) سرنام Online Certificate Status Protocol است. OCSP یک پروتکل اینترنتی است که از HTTP برای ارتباط با CA و بررسی وضعیت یک گواهی استفاده میکند. OCSP به عنوان جایگزینی برای CRL طراحی شده است. لازم به ذکر است که هنگام استفاده از OCSP، وضعیت ابطال را میتوان با استفاده از قابلیتی به نام stapling به مشتریان اطلاع داد. با الصاق کردن، وبسایتی که حاوی گواهینامه است، در فواصل زمانی معین، CA را بررسی میکند تا ببیند آیا گواهی باطل شده است یا خیر. سپس وضعیت گواهی از طرف وب سرور برای هر کاربر که از وبسایت بازدید میکند در طول دستدهی اولیه ارسال میشود.
برای مطالعه بخش بعد اینجا کلیک کنید.
برای مطالعه تمام قسمتهای آموزش سکیوریتی پلاس اینجا کلیک کنید.
تبلیغات لینکی:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟