برنامه های کاربردی [ ویرایش ]

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

یکی دیگر از کاربردهای رمزنگاری کلید عمومی، امضای دیجیتال است . از طرح های امضای دیجیتال می توان برای احراز هویت فرستنده استفاده کرد .

سیستم‌های غیر انکار از امضای دیجیتال استفاده می‌کنند تا اطمینان حاصل کنند که یکی از طرفین نمی‌تواند با موفقیت در مورد نویسندگی یک سند یا ارتباط اعتراض کند.

برنامه های کاربردی دیگری که بر روی این پایه ساخته شده اند عبارتند از: پول نقد دیجیتال ، توافق نامه کلید تأیید شده با رمز عبور ، خدمات مهر زمانی و پروتکل های عدم انکار.

سیستم های رمزنگاری ترکیبی [ ویرایش ]

از آنجایی که الگوریتم‌های کلید نامتقارن تقریباً همیشه از نظر محاسباتی بسیار فشرده‌تر از الگوریتم‌های متقارن هستند، معمولاً از یک الگوریتم تبادل کلید نامتقارن عمومی/خصوصی برای رمزگذاری و مبادله یک کلید متقارن استفاده می‌شود که سپس توسط رمزنگاری کلید متقارن برای انتقال داده‌ها استفاده می‌شود. کلید متقارن مشترک برای یک الگوریتم رمزگذاری کلید متقارن. PGP ، SSH ، و خانواده طرح‌های SSL/TLS از این رویه استفاده می‌کنند. بنابراین آنها را سیستم های رمزنگاری ترکیبی می نامند . مبادله کلیدی مبتنی بر رمزنگاری نامتقارن اولیه برای به اشتراک گذاشتن یک متقارن تولید شده توسط سرورکلید از سرور به مشتری این مزیت را دارد که نیازی به اشتراک‌گذاری دستی کلید متقارن ندارد، مانند کاغذ چاپ شده یا دیسک‌هایی که توسط پیک منتقل می‌شوند، در حالی که توان عملیاتی بالاتر داده رمزنگاری کلید متقارن را نسبت به رمزنگاری کلید نامتقارن برای باقیمانده اتصال مشترک

نقاط ضعف [ ویرایش ]

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

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

همه طرح‌های کلید عمومی در تئوری مستعد یک " حمله جستجوی کلیدی brute-force " هستند. [8] با این حال، چنین حمله ای غیرعملی است اگر میزان محاسبات مورد نیاز برای موفقیت - که توسط کلود شانون "عامل کار" نامیده می شود - دور از دسترس همه مهاجمان بالقوه باشد. در بسیاری از موارد، ضریب کار را می توان به سادگی با انتخاب یک کلید بلندتر افزایش داد. اما الگوریتم‌های دیگر ممکن است ذاتاً فاکتورهای کاری بسیار پایین‌تری داشته باشند، که مقاومت در برابر حمله‌های brute-force (مثلاً از کلیدهای طولانی‌تر) نامربوط است. برخی از الگوریتم‌های خاص و خاص برای کمک به حمله به برخی از الگوریتم‌های رمزگذاری کلید عمومی ایجاد شده‌اند. هر دو رمزگذاری RSA و ElGamal حملات شناخته شده‌ای دارند که بسیار سریع‌تر از رویکرد brute-force هستند.[9] با این حال، هیچ یک از اینها به اندازه کافی بهبود نیافته اند تا عملی شوند.

نقاط ضعف عمده ای برای چندین الگوریتم کلید نامتقارن که قبلا امیدوار کننده بودند، یافت شده است. پس از توسعه یک حمله جدید، الگوریتم "بسته بندی کوله پشتی" ناامن بود . [10] مانند همه توابع رمزنگاری، پیاده‌سازی‌های کلید عمومی ممکن است در برابر حملات کانال جانبی که از نشت اطلاعات برای ساده‌سازی جستجوی کلید مخفی سوء استفاده می‌کنند، آسیب‌پذیر باشند. اینها اغلب مستقل از الگوریتم مورد استفاده هستند. تحقیقات برای کشف و محافظت در برابر حملات جدید در حال انجام است.

تغییر کلیدهای عمومی [ ویرایش ]

یکی دیگر از آسیب‌پذیری‌های امنیتی بالقوه در استفاده از کلیدهای نامتقارن، احتمال حمله «man-in-the-middle» است که در آن ارتباط کلیدهای عمومی توسط شخص ثالث («مرد در وسط») رهگیری می‌شود و سپس تغییر می‌کند. به جای آن کلیدهای عمومی مختلف را ارائه دهید. پیام‌ها و پاسخ‌های رمزگذاری‌شده باید در همه موارد توسط مهاجم با استفاده از کلیدهای عمومی صحیح برای بخش‌های ارتباطی مختلف رهگیری، رمزگشایی و رمزگذاری مجدد شوند تا از سوء ظن جلوگیری شود.

در جایی که داده ها به گونه ای انتقال می یابند که امکان شنود را فراهم می کند، ارتباطی ناامن است . این شرایط به خواندن اطلاعات خصوصی فرستنده به طور کامل اشاره دارد. هنگامی که فرستنده نمی تواند از رهگیری ها جلوگیری یا نظارت کند، یک ارتباط ناامن است. [11]

به دلیل پیچیدگی‌های پروتکل‌های امنیتی مدرن، اجرای یک حمله انسان در وسط ممکن است دشوار باشد. با این حال، وقتی فرستنده از رسانه های ناامن مانند شبکه های عمومی، اینترنت یا ارتباطات بی سیم استفاده می کند، کار ساده تر می شود. در این موارد، مهاجم می‌تواند زیرساخت‌های ارتباطی را به‌جای خود داده‌ها به خطر بیاندازد. یک کارمند مخرب فرضی در یک ارائه دهنده خدمات اینترنتی (ISP) ممکن است حمله انسان در وسط را نسبتاً ساده بداند. گرفتن کلید عمومی فقط مستلزم جستجوی کلید است که از طریق سخت افزار ارتباطی ISP ارسال می شود. در طرح های کلید نامتقارن که به درستی اجرا شده اند، این یک خطر قابل توجه نیست.

در برخی از حملات پیشرفته Man-in-the-Middle، یک طرف ارتباط داده های اصلی را می بیند در حالی که طرف دیگر یک نوع مخرب را دریافت می کند. حملات نامتقارن man-in-the-middle می‌تواند مانع از به خطر افتادن اتصال کاربران شود. این امر حتی زمانی که داده های یک کاربر به خطر افتاده است باقی می ماند زیرا داده ها برای کاربر دیگر خوب به نظر می رسند. این می تواند منجر به اختلاف نظرهای گیج کننده بین کاربران شود مانند "آن را باید در پایان شما باشد!" زمانی که هیچ یک از کاربران مقصر نیستند. از این رو، حملات انسان در وسط تنها زمانی کاملاً قابل پیشگیری هستند که زیرساخت های ارتباطی به طور فیزیکی توسط یک یا هر دو طرف کنترل شود. مانند از طریق یک مسیر سیمی در داخل ساختمان خود فرستنده. به طور خلاصه، زمانی که سخت افزار ارتباطی مورد استفاده توسط فرستنده توسط مهاجم کنترل می شود، کلیدهای عمومی آسان تر تغییر می کنند.[13] [14]

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

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

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

علیرغم مشکلات نظری و احتمالی آن، این رویکرد به طور گسترده مورد استفاده قرار می گیرد. به عنوان مثال می توان به TLS و SSL قبلی آن اشاره کرد که معمولاً برای تأمین امنیت تراکنش های مرورگر وب (مثلاً برای ارسال ایمن جزئیات کارت اعتباری به یک فروشگاه آنلاین) استفاده می شود.

جدای از مقاومت در برابر حمله یک جفت کلید خاص، امنیت سلسله مراتب گواهی باید هنگام استقرار سیستم های کلید عمومی در نظر گرفته شود. برخی از مقامات گواهی - معمولاً یک برنامه هدفمند که بر روی رایانه سرور اجرا می شود - با تولید یک گواهی دیجیتال، هویت های اختصاص داده شده به کلیدهای خصوصی خاص را تضمین می کند. گواهینامه های دیجیتال کلید عمومی معمولاً برای چندین سال در یک زمان معتبر هستند، بنابراین کلیدهای خصوصی مرتبط باید در آن زمان به طور ایمن نگهداری شوند. هنگامی که یک کلید خصوصی که برای ایجاد گواهی بالاتر در سلسله مراتب سرور PKI مورد استفاده قرار می گیرد، در معرض خطر قرار می گیرد، یا به طور تصادفی فاش می شود، در این صورت یک " حمله مرد در وسط " امکان پذیر است و هر گواهی تابعه را کاملاً ناامن می کند.