آموزش شبکه: آموزش مایکروسافت، آموزش سیسکو

خانه / کد 640-70 / Active Directory certificate Services / مفهوم Public Key Infrastructure

مفهوم Public Key Infrastructure

Public key infrastructure یا PKI عنصر اصلی زیرساختار تمامی سازمان های جدید و مدرن است. تقریبا تمامی سازمان های امروزی از certificate های public key استفاده می کنند. این کلیدها برای ارتباطات امن وایرلس، سرویس های بازرگانی ایمن روی وبسایت ها، ارتباط امن با SSL برای شبکه های خصوصی مجازی (V.P.*)، ورود امن به ایمیل ها و یا هر جای دیگر، از certificate های PKI استفاده می شود. با PKI certificates زیرساخت ایجاد می شود. مایکروسافت، بصورت مستقیم، در ویندوز سرور 2008 قابلیت ایجاد و نگهداری PKI را داراست. Certificate ها، در واقع کار امنیت شبکه شما را آسان می کند. هنگامی که کاربران با استفاده از سیستم خود به سرور متصل می شوند، در واقع با این certificate ها، اطلاعات خود را رمزنگاری کرده و سپس به سرور ارسال یا از آن دریافت می کنند. سرور PKI certificates به تمامی کلاینت های شبکه شما certificate ارائه می کند. در واقع این زیر ساخت، محیط ناامن شبکه شما را به محیطی امن تبدیل می کند. در حقیقت، PKI ها می توانند به وفور برای اعتبارسنجی استفاده شود. Active Directory Domain Services به عنوان یک سیستم عامل شبکه (network OS) ، اصلی ترین عاملیست که احراز هویت و اختیارات کاربران را در شبکه داخلی به عهده دارد، ولی AD CS، همین سرویس ها را هم در شبکه داخلی و هم در شبکه خارجی فراهم می کند. برای مثال، وقتی شما به وبسایتی با HTTPS ای که شامل یک SSL certificate است، وارد می شوید، این certificate به شما اطمینان می دهد که شما دقیقا همان سایتی هستید که می خواهید؛ مثلا وبسایت بانک ها و شرکت هایی که برایشان امنیت و اعتماد مراجعه کنندگان اهمیت دارد از certificate های valid استفاده می کنند تا به شما اطمینان بدهند که به درستی وارد شده اید. اگر سایت های بزرگی مثل گوگل را مشاهد کنید، هنگامی که شما نام آنها را به هر صورتی در مرورگر وارد میکنید، ابتدای آدرس آنها HTTPS (معمولا سبز رنگ است) اضافه می شود که با کلیک بر روی آن با پیغام Identify verified مواجه می شوید؛ این بدان معناست وبسایتی که شما درون آن هستید، همان google.com اصلی و واقعیست.

certificate services

 

حال اگر از قسمت connection (شکل بالا)، certificate وبسایت را مشاهده کنید، نام سرور، نام سازمان و محلی که این certificate را اعتبار می بخشد، نشان داده می شود. این certificate ها با مرورگرتان کار می کند، زیرا مرورگرها لیستی از CA های تجاری قابل اعتماد را دارند.

رمزنگاری Public-key (رمزنگاری کلیدهای نامتقارن یا asymmetric-key نامیده می شود) از یک جفت کلید برای رمزنگاری و رمزگشایی محتوا استفاده می کند. این جفت کلید عبارتند از یک کلید عمومی و یک کلید خصوصی که براساس فرمول های ریاضی ایجاد می شوند. حال اگر شخصی بخواهد بطور ایمن با دیگران ارتباط برقرار کند، می تواند یک کلید عمومی (public kay) را منتشر کند، اما کلید خصوصی (private kay) را نزد خود نگه دارد. حال محتوا می تواند با استفاده از یک کلید رمزنگاری شده و با کلید دیگر، رمزگشایی شود. برای مثال، فرض کنید رضا قصد دارد ایمیلی را بطور ایمن به مهدی ارسال کند. این موضوع می تواند بصورت زیر انجام شود:

  1. هم مهدی و هم رضا جفت کلیدهای خودشان را دارند. کلیدهای خصوصی خود را نزد خودشان نگه داشته و کلید عمومی را برای یکدیگر ارسال می کنند.
  2. رضا از کلید عمومی مهدی برای رمزنگاری ایمیل استفاده کرده و سپس به او ارسال می کند.
  3. مهدی با استفاده از کلید خصوصی خود برای رمزگشایی ایمیل استفاده می کند.

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

مفهوم public key infrastructure برای کمک به این مشکل آدرس دهی بوجود آمده است. یک public key infrastructure شامل عناصر نرم افزاری و سخت افزاریست که یک شرکت غیرمایکروسافتی (third-party) معتبر نیز می تواند برای ایجاد تمامیت و مالکیت کلید عمومی از آن استفاده کند. به قسمتی که این اعتبار سنجی را با استفاده از certificate های رمزنگاری شده انجام می دهد certificate authority (یا CA) گفته می شود؛ که هویت certificate را تصدیق کرده و آنرا به کلید عمومی مرتبط می سازد. (CA در واقع سرور یا سرورهایی هستند که مدیریت و اعتبارسنجی certificate ها را به عهده دارند) در واقع CA با استفاده از کلید خصوصی امضا کرده و منتشر می کند. در مثال بالا، اگر CA استفاده شود بصورت زیر خواهد بود:

  • فرض کنید که CA یک certificate دیجیتالی امضا شده (signed digital certificate) را که شامل کلید عمومی خودش است را صادر می کند. CA این certificate را با استفاده از کلید خصوصی که مربوط به همان کلید عمومیست، امضا می کند. همانطور که می دانید، هر certificate یک کلید خصوصی و یک عمومی دارد که CA با استفاده از کلید خصوصی (private key) مربوط به همان کلید عمومی، certificate را امضا می کند (self-signed)
  • رضا و مهدی هر دو، استفاده از این CA را برای تشخیص اعتبار و هویت خودشان تایید می کنند.
  • رضا ایمیل را به مهدی ارسال می کند. مهدی قرار است ایمیل را باز کند. حال چون ایمیل رمزنگاری شده است می بایست کلید رمزنگاری آن را داشته باشد. بنابراین مهدی کلید عمومی certificate را از CA تقاضا می کند.
  • CA هویت مهدی را تایید کرده و hash مربوط به محتوایی که قرار است با این certificate ایجاد شود را محاسبه می کند؛ این hash با استفاده از کلید خصوصی مربوط به همان کلید عمومی موجود در CA امضا می شود. سپس با استفاده از الحاق و اتصال محتوای certificate با hash امضا شده (signed hash) آن، certificate جدیدی ایجاد کرده که بطور عموم دردسترس است.
  • رضا certificate را دوباره دریافت کرده ، signed hash را با استفاده از public key همان CA رمزگشایی می کند. یک Hash جدید محتوای certificate را محاسبه کرده و هر دو hash را باهم مقایسه می کند. اگر با یکدیگر همخوانی داشته باشند، امضا مورد تایید است و رضا می تواند متوجه شود که public key موجود در certificate مطمئنا مربوط به مهدی است.
  • رضا از public key مورد تایید مربوط به مهدی برای رمزنگاری پیام استفاده می کند.
  • مهدی نیز از private key خودش برای رمزگشایی (decrypt) ایمیل رضا استفاده می کند.

بطور خلاصه، فرآیند امضا و تایید certificate به رضا کمک می کند تا مطمئن شود که در مراحل انتقال، public key دستکاری یا خراب نشده است. قبل از صدور certificate، در واقع CA محتوا را hash (رمزنگاری) کرده، hash را با استفاده از private key خودش رمزنگاری (encrypt) می کند و hash رمزنگاری شده را در certificate ای قرار می دهد که قرار است صادر شود.

رضا نیز با استفاده از رمزگشایی hash، توسط کلید عمومی CA، محتوای certificate را تایید کرده و یک hash جدا برای محتوای certificate ایجاد می کند؛ این دو hash را باهم مقایسه می کند. اگر باهم همخوانی داشته باشد، رضا می تواند ایمیل را بدون مشکل ارسال کند.

برخی از اصطلاحات مرتبط با PKI عبارتند از:

  • Certification Authority (CA) به عنوان هسته ی مرکزی و اصلی ساختار public key infrastructure عمل کرده و سرویس های مربوط به احراز هویت اشخاص، کامپیوترها و دیگر موارد موجو در شبکه را به عهده دارد.
  • Registration Authority این مورد توسط CA اصلی معتبر شده تا certificate هایی را برای کاربردهای خاصی که CA اجازه داده است، صادر کند.
  • Certificate Database درخواست های مربوط به certificate، صدور و ابطال certificate ها و درخواست certificate ها روی CA و یا RA را ذخیره می کند.
  • Certificate Store در واقع certificate های صادر شده، در انتظار صدور و یا آنهایی که کنسل شده اند را ذخیره می کند.
  • Key Archival Server کلیدهای خصوصی رمزگاری شده در دیتابیس certificate را برای بازیابی مجدد نگهداری می کند.