گواهينامه ssl چيست؟ پشت صحنه رمزنگاری گواهینامه SSL

رمزنگاری گواهینامه SSL

گواهینامه SSL چیست؟ اس اس ال تکنولوژی استانداردی می‌باشد که ارتباطی امن و رمزنگاری شده بین سرور و کاربر ایجاد می‌کند. این ارتباط امن معمولا بین وب‌سرور (وب‌سایت)‌ و مرورگر و یا میل‌سرور و برنامه ایمیل (مثلا Outlook)‌ ایجاد می‌شود. چنین ارتباطی، زمینه را بر ردو‌بدل کردن ایمن اطلاعات مهم مانند شماره کارت بانک و رمز مربوط به آن، کلمات عبور، کد ملی و غیره فراهم می‌آورد. برای برقراری این ارتباط امن، مرورگر و سرور نیاز به گواهینامه SSL دارند.

 

اما چگونه این اتفاق می‌افتد؟ این داده‌ها چگونه رمزنگاری می‌شوند که حتی قوی‌ترین کامپیوتر‌های جهان نیز قادر به شکستن قفل آن نیستند؟

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

 

رمزنگاری نامتقارن

رمزنگاری نامتقارن (یا رمزنگاری public-key) از دو کلید مجزا و مختلف برای رمزنگاری و رمزگشایی استفاده می‌کند.

‌key Public عمومی است و هر کس می‌تواند با استفاده از آن هر پیغامی را رمزگذاری کند. اما کلید‌های رمزگشایی یا private keys همیشه محرمانه هستند، به همین دلیل فقط گیرنده مدنظر ما که private key را در اختیار دارد می‌تواند پیام را رمزگشایی کرده و بخواند.

متداول‌ترین الگوریتم رمزنگاری نامتقارن RSA است که در ادامه به آن خواهیم پرداخت.
رمزنگاری گواهینامه ssl

کلید‌های نامتقارن معمولا به صورت ۱۰۲۴ و یا ۲۰۴۸ بیت ساخته می‌شوند اما کلید‌های کوچکتر از ۲۰۴۸ بیت، دیگر به اندازه کافی امن نیستند و استفاده نمی‌شوند. کلیدهای ۲۰۴۸ بیتی کدهای رمزگذاری منحصر به‌فردی دارد که به دلیل تعداد بالای آن امکان ذکرش در اینجا نیست (۶۱۷ حرف).

با اینکه امکان ساخت کلید‌های بزرگتر از ۲۰۴۸ بیت هم وجود دارد، اما به دلیل بار محاسباتی زیادی که دارند به ندرت استفاده می‌شوند. برای درک بهتر این مطلب می‌توان مثال زد که یک کامپیوتر معمولی برای رمزگشایی کلید ۲۰۴۸ بیتی باید ۱۴ میلیارد سال زمان صرف کند.

 

رمزنگاری متقارن

رمزنگاری متقارن (کلید از پیش اشتراک گذاشته شده یا pre-shared)‌ از یک کلید واحد برای رمزنگاری و رمزگشایی استفاده می‌کند. فرستنده و گیرنده هر دو برای برقراری ارتباط به این کلید نیاز دارند.
رمزنگاری نامتقارن

سایز کلید‌های متقارن معمولا به صورت ۱۲۸ یا ۲۵۶ بیتی می‌باشد. هر چه سایز کلید بزرگتر باشد، قفل‌گشایی آن سخت‌تر خواهد‌‌بود. به عنوان مثال یک کلید ۱۲۸ بیتی امکان ساخت 340,282,366,920,938,463,463,374,607,431,768,211,45 کد رمزنگاری مختلف را دارد.

همانطور که می‌توانید حدس بزنید، یک حمله Brute force‌ (که در آن فرد سعی به حدس زدن کد صحیح با تست تک تک احتمالات می‌کند) زمان بسیار زیادی خواهد برد.

امکان استفاده از کلید ۱۲۸ و ۲۵۶ بیتی بستگی به توانایی سرور و نرم‌افزار کاربر دارد. به طور کل SSL، شما را مجبور به استفاده نوع خاصی از این دو کلید نمی‌کند.

کدام یک از کلیدهای نامتقارن و متقارن برای گواهینامه SSL قوی‌تر است؟‌

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

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

رمزنگاری نامتقارن این مشکل را ندارد. تا زمانی که private key محرمانه نگه داشته شود، هیچ کس قادر به رمزگشایی اطلاعات شما نخواهد بود. شما می‌توانید public key را بدون نگرانی توزیع کنید. هر شخصی با کمک public key می‌تواند  اطلاعات را رمزنگاری کند اما تنها فردی که private key را در اختیار دارد توانایی رمزگشایی و خواندن اطلاعات را خواهد‌ داشت.

 

SSL چگونه از رمزنگاری متقارن و نامتقارن بهره می‌برد؟‌

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

PKI از سیستم رمزنگاری ترکیبی بهره می‌برد و از هر دو نوع رمزنگاری که در قبل تشریح کردیم استفاده می‌کند. برای برقراری ارتباط از طریق گواهینامه SSL سه عنصر مورد نیاز است: یک کلید نامتقارن شامل public key و private key  که روی سرور قرار دارد و Session key که توسط سرور و مرورگر برای برقراری ارتباط SSL ساخته می‌شود به‌صورت متقارن می‌باشد. نحوه برقراری ارتباط در تصویر زیر شرح داده شده است:
رمزنگاری متقارن و نامتقارن

۱- سرور کپی‌ای از public key خود را برای مرورگر ارسال می‌کند.

۲- مرورگر با استفاده از public key که دریافت کرده است، Session key ساخته شده را کدگذاری کرده و برای سرور ارسال می‌کند.

۳- سرور با استفاده از private key بسته دریافتی را رمزگشایی کرده و به Session key دست پیدا می‌کند.

۴- حالا سرور و مرورگر هر‌دو با استفاده از Session key بسته‌هایی که بین یکدیگر رد و بدل می‌کنند را رمزنگاری و رمزگشایی می‌کنند. این کار یک تونل امن بین مرورگر و سرور ایجاد می‌کند زیرا تنها این دو از Session key اطلاع داشته و این کلید فقط برای همین اتصال استفاده می‌شود. هر زمانی که این اتصال قطع شود این مراحل باید مجددا طی شود.

 

الگوریتم‌های رمزنگاری Public-Key

رمزنگاری Public-key (یا نامتقارن) از الگوریتم‌های کدگذاری RSA و ECC برای تولید public و private key استفاده می‌کند. این الگوریتم‌ها بر‌مبنای عدم قطعیت برخی از مسائل ریاضی پایه‌گذاری شده‌اند.

در رمزنگاری نامتقارن،‌ ساخت کلید‌ها و رمزنگاری و رمزگشایی بسته‌ها از نظر محاسباتی کار راحتی است. ولی به‌دست آوردن private key (که همیشه محرمانه است) با استفاده از public key کار بسیار دشوار و تقریبا غیر‌ممکنی می باشد.

 

RSA

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

نام الگوریتم RSA از حروف اول اسامی سه ریاضیدان سازنده آن (Rivest–Shamir–Adleman) برگرفته شده است.

رمزنگاری منحنی بیضوی (ECC)

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

مزیت اصلی الگوریتم ECC به نسبت RSA ،‌ کوچکتر بودن سایز کلید است که به داشتن سرعت بیشتر کمک می‌کند.  ولی نقطه ضعف آن هم عدم پشتیبانی بسیاری از نرم‌افزار‌ها و مرورگرها از گواهینامه SSL بر پایه ECC می‌باشد.
رمزنگاری منحنی بیضوی (ECC)

الگوریتم‌های رمزنگاری Pre shared key

رمزنگاری این نوع کلید‌ها که در رمزنگاری متقارن استفاده می‌شوند، از الگوریتم‌های مختلفی مانند Twofish, AES و Blowfish استفاده می‌شود که معروفترین آن AES است. (در گذشته از الگوریتم AES برای رمزنگاری کلمات عبور شبکه‌های WiFi نیز استفاده می‌شد)‌.

نویسنده: علی فروغی
منبع: Certificates SSL

برچسب ها :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *