رمزنگاری کلید عمومی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

رمزنگاری کلید عمومی یا رمزنگاری نامتقارن روشی از رمزنگاری است که کلید مورد استفاده برای رمزگذاری با کلید مربوط برای رمزگشایی با هم متفاوت است (برخلاف رمزنگاری متقارن که در آن رمزگذاری و رمزگشایی با یک کلید انجام می‌شود). با کلید مخصوص رمزنگاری نمی‌توان رمزگشایی پیام را انجام داد چراکه فقط برای رمزنگاری بکار می‌آید و افشا شدن آن هم لطمه‌ای به کسی نمی‌زند بدان جهت که با آن کلید نمی‌توان متون رمز شده را برگرداند و پیداکردن کلید رمزگشایی از روی کلید رمزنگاری کار ساده‌ای نیست. در رمزنگاری نامتقارن، کاربر یک جفت کلید در اختیار دارد:

1- کلید عمومی(برای رمزگذاری متن اصلی و راست‌آزمایی امضای دیجیتال)

2- کلید خصوصی(برای رمزگشایی متن رمز و امضای دیجیتال داده‌ها)

مشخص است که کلید خصوصی مخفی باقی می‌ماند ولی کلید عمومی ممکن است به طور وسیع منتشر شود. پیام‌های دریافتی کد شده توسط کلید عمومی کاربر فقط برای خودش قابل خواندن می‌باشد زیرا تنها خود کاربر کلید خصوصی جهت رمزگشایی را در اختیار دارد.

دو کلید با هم رابطه‌ای ریاضی دارند ولی عملاً کلید خصوصی از روی کلید عمومی محاسبه پذیر نیست.

مفاهیم زیرساخت کلید عمومی[ویرایش]

زیرساخت کلید عمومی یا PKI، زیرساختی است که بر اساس اعتماد، و نه امنیت، طراحی و پیاده سازی شده‌است و هدف آن برقراری امنیت و آرامش خاطر کاربران شبکه‌های کامپیوتری است.

PKI را می‌توان به صورت مجموعه سخت‌افزار، نرم‌افزار، کاربران، سیاست‌ها و رویه‌هایی که برای ایجاد مدیریت، ذخیره، توزیع و ابطال گواهی مبتنی بر رمزنگاری با کلید عمومی مورد نیاز می‌باشند تعریف نمود. رمزنگاری به عنوان یکی از روش‌های قابل اعتماد جهت فراهم آوردن سرویس‌های امنیتی قابل استفاده می‌باشد، ولی امروزه به صورت کلی‌تری جهت فراهم آوردن ابزارهایی که می‌توانند سرویس‌هایی را برای امنیت اطلاعات و داده‌ها ارائه نمایند، استفاده می‌شود. برای هردو عمل رمزنگاری و تصدیق هویت کلید عمومی از زوج کلید (یک کلید عمومی و یک کلید خصوصی) استفاده می‌شود. در رمزنگاری، فرستنده با کلید عمومی فایل را رمزگذاری می‌کند و گیرنده پس از دریافت، آن را با کلید خصوصی خود از رمز خارج می‌کند؛ و در بحث تصدیق هویت، فرستنده با کلید خصوصی خود پیام را امضا می‌کند و گیرنده، پیام فرستنده را با کلید عمومی تصدیق می‌نماید.[۱]

ساختار موجودیت‌های PKI

ارتباط بین موجودیت‌های PKI طی یک ساختار کلی ارائه می‌شود.[۲]

زوج کلیدهای چندتایی[ویرایش]

هر موجودیت PKI می‌تواند چند زوج کلید داشته باشد. بین یک زوج کلید و یک «نقش» یک تناظر قوی وجود دارد. مثلاً ممکن است یک موجودیت از یک کلید برای امضای یک خرید برای بخش کاری خودش و از کلید دیگر برای امضای یک فرم کرایة فیلم و از یکی دیگر برای امضای یک ایمیل شخصی استفاده کند.

مفهوم زوج کلیدهای چندتایی برای هر موجودیت برای بعضی از محیط‌ها به دلیل نقشهای مختلفی که موجودیت ایفا می‌کند منطقی است، چون هر زوج کلید در حوزة کوچکی از کاربرد محدود شده‌است. برای صورت گرفتن تمام وظایفی که با یک نقش مشخص در ارتباط است، یک موجودیت PKI نیاز است که چند زوج کلید داشته باشد.

Kpair.JPG

زوج کلیدهای مختلف می‌توانند کاربردهای متفاوت داشته باشند. خصوصاً اینکه یک زوج کلید در الگوریتم امضای دیجیتالی (DSA) زمانیکه بر طبق خصوصیاتی پیاده سازی شده‌است، نمی‌تواند برای رمزگذاری و یا رمزگشایی بکار رود. بطور مشابه زوج کلید DH نمی‌تواند برای امضا نمودن داده‌ها و راست‌آزمایی امضا بکار رود. بعلاوه حتی یک زوج کلید بر اساس الگوریتم RSA _ که بصورت ریاضی برای تصدیق، یکپارچگی، محرمانگی و یا معاوضه کلید بکار می‌رود_ ممکن است به وسیلة سیاستها، احکام، یا انتخاب پیاده سازی برای استفادة تک منظوره محدود شود.

کشف رمز کلید[ویرایش]

موضوع کشف رمز کلید در دو حوزه مورد بحث قرار می‌گیرد:

  • کشف رمز کلید خصوصی موجودیت نهایی
  • کشف رمز کلید خصوصی یک CA

در حالت اول، به محض اینکه شخصی متوجه می‌شود که کلید خصوصی اش کشف رمز شده‌است، باید اقدامات زیر را انجام دهد:

  • یک پیام درخواست ابطال برای مرجع قدرت امنیتی مربوط جهت صدور اعلان به تمام طرفهای مرتبط مبنی بر عدم استفاده از کلید عمومی
  • در صورت لزوم، پیمودن مراحل برای تولید و صدور گواهی برای یک زوج کلید جدید

پیامد کشف رمز کلید یک موجودیت نهایی، بستگی به نوع کلید دارد. اگر کلید امضا کننده کشف رمز شده باشد، دارندة این کلید باید گواهی مورد نظر را باطل کند و همین کار از دسترسی بیشتر افراد غیر مجاز جلوگیری خواهد کرد. اما اگر کلید کشف رمز شده، کلید خصوصی و برای از رمز درآوردن اسناد باشد، بعلاوة نکتة بالا، باید تمام اسنادی که با این کلید از رمز خارج می‌شدند و کلیدهایی که این اسناد را به رمز درآورده‌اند، شناسایی شوند.

بازیابی و آمادسازی در برابر حوادث[ویرایش]

آگاه ساختن طرف اعتماد کننده

در صورتی که کلید CA کشف رمز شود، به دلیل تعدد افراد، وی نمی‌تواند به طرفهای اعتماد کننده اطلاع دهد که این مسأله اتفاق افتاده‌است و هیچ راه قابل اعتمادی برای این شکل از اطلاع رسانی وجود ندارد.

یک راه اطلاع رسانی از طریق پیامهای CRL است که آن را با ارائة یک مکانیزم بیان می‌کنیم. در این مکانیزم، CRL شامل کلید کشف رمز شده می‌باشد که توسط کلید خصوصی جدید CA صادر و امضا شده‌است. اعضای اعتماد کننده این امضا را با بازیابی کلید عمومی CA و محاسبة عدد HASH این کلید معتبر می‌شمارند و آن را با عدد HASH قبلی در گواهی قدیمی CA مقایسه می‌کنند. این مکانیزم نیاز بدان دارد که CA در زمان گواهی کردن زوج کلید فعلی، زوج کلید بعدی را نیز تولید کند.

آماده سازی

در شرایط کشف رمز CA باید اقدامات زیر را در جهت کاهش آسیبها انجام دهد:

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

تنها راه بازیابی این است که به PKI دوباره ارزش دهی شود. بنابراین یک کلید از سمت CA تولید می‌شودو یک کپی از کلید عمومی در محل هر موجودیت PKI قرار داده می‌شود. به عبارتی PKI باید برای موجودیت‌ها به شکلی ساخته شود که انگار هیچ وقت وجود نداشته‌است.

مدیریت گواهی مستقل[ویرایش]

اگر یک کلید عمومی در چند گواهی قرار داده شده و کلید خصوصی در معرض خطر باشد، باید به یاد داشت که کدام گواهی‌ها دارای این کلید بودند تا بتوان آنها را باطل نمود. عدم ابطال هرکدام از این گواهی‌ها می‌تواند منجر به یک ریسک امنیتی جدی شود. در مقابل، چنین ریسکی کاهش می‌یابد اگر کلید عمومی فقط در یک گواهی ظاهر شود؛ چون بار اجرایی یافتن و ابطال یک گواهی به مراتب کمتر است. بعلاوه، گواهی‌های جداگانة در ارتباط با زوج کلیدهای جداگانه، از نظر ساخت مستقلند: آنها از جهت دورة اعتبار، سیاستها، کاربرد و رویه‌های مدیریتی مستقلند. بنابراین ابطال یکی از آنها بر بقیه تأثیرگذار نیست. داشتن یک کلید عمومی در چند گواهی، مدیریت آن را پیچیده می‌کند.

پشتیبانی از عدم انکار[ویرایش]

برای پشتیبانی از عدم انکار، شرط لازم آن است که کلید خصوصی همراه با فعالیت عدم انکار مورد نظر (مانند امضای یک رسید برای اثبات انتقال آن) نباید برای بخشهای دیگر شناخته شده باشد. در غیر اینصورت، موجودیت مزبور به سادگی می‌تواند اعلام کند که بخش دیگری عدم انکار نموده‌است. بنابراین سرویس عدم انکار به مانع برخورد می‌کند.

کلید خصوصی مربوط به گواهی که هدفش پشتیبانی از عدم انکار است، نباید در معرض دید موجودیت‌های دیگر قرار گیرد. در بعضی محیطها، نیاز است که چنین کلیدهایی تولید شوند تا از کلیدهایی که درگیر با فعالیتهای عدم انکار نیستند، توسط یک موجودیت مورد اعتماد نسخة پشتیبان تهیه شود و یا این کلیدها در نرم‌افزار ذخیره گردند.[۳]

منابع[ویرایش]

  1. Raina, K. (2003). PKI Security Solutions for the Enterprise,Wiley Publishing Inc.
  2. Symeon (Simos) Xenitellis, S.(2000). The Open–source PKI Book, A guide to PKIs and Open–source Implementations,http://ospkibook.sourceforge.net
  3. Understanding PKI: Concepts, Standards, and Deployment Considerations, Second Edition, Addison Wesley.

جستارهای وابسته[ویرایش]