برای تأمین امنیت ارتباطات در فضای اینترنت، باید از گواهی SSL استفاده کنیم.
اگر بخواهیم کمی اسپویل کنیم، ماهیت وجودی این گواهی بر رمزنگاری بنا شده است! ولی این فقط گوشهای از ماجرا است. در این مقاله، میخواهیم ببینیم پروتکل ssl چگونه کار میکند و چطور میتواند ایمنی ارتباطات را تنظیم کند.
اول بیایید نگاه مختصری به تعریف این پروتکل داشته باشیم.
💡 مروری بر تعریف پروتکل SSLSSL مخفف Secure Socket Layer است. نوار مرورگرتان را ببینید؛ همانطور که مشخص است، یک قفل در ابتدای نوار مرورگر وجود دارد. این قفل یعنی سایت ما از SSL استفاده میکند و امنیت اطلاعات کاربران در آن تضمینشده است. این قفل نشاندهندۀ https است؛ یعنی نسخۀ ایمن پروتکل http. خوب است بدانید که در حال حاضر، استفاده یا عدم استفاده از SSL روی رتبههایی که سایت از موتورهای جستوجو میگیرد هم تأثیر میگذارد. مسلماً سایتهایی که ایمنتر باشند، شانس بیشتری برای تصاحب جایگاههای برتر دارند. مخصوصاً اگر سایتتان طوری طراحی شده که از کاربران میخواهد اطلاعات حساسشان را در سایت وارد کنند، حتماً باید SSL داشته باشید. در کل، عدم استفاده از این گواهی امنیتی در زمان کنونی، هیچ توجیهی ندارد! ssl با رمزنگاری ارسال و دریافت دادهها و بهطور کلی هر نوع ارتباط آنلاین، سعی میکند دست هکرها را از مشاهده و دستکاری آنها کوتاه کند. البته که سازوکار آن پیچیدهتر از این حرفها است و به همین خاطر در تأمین امنیت نقش بسیار پررنگی دارد. قبل از اینکه سراغ ادامۀ مقاله برویم و بفهمیم ssl چگونه کار میکند، اگر فکر میکنید اطلاعات کافی راجعبه خود گواهی ssl ندارید، توصیه میکنیم حتماً مقالۀ گواهینامۀ SSL چیست را بخوانید. |
برویم سراغ ادامۀ بحث و ببینیم پروتکل ssl چگونه کار میکند.
🧩 پیشنهاد خواندنی: آموزش نصب ssl در سی پنل و دایرکت ادمین |
نحوه کار پروتکل SSL به زبان ساده
میخواهیم نحوه کار ssl را زیر ذرهبین ببریم؛ ولی برای اینکه بتوانیم جزئیات را خوب درک کنیم، بهتر است چند قدم عقبتر بیاییم و اول نگاهی به تصویر بزرگتر بیندازیم. اساس کار پروتکل ssl بر دو نوع رمزنگاری استوار است:
- رمزنگاری نامتقارن
- رمزنگاری متقارن
البته که در کنار این دو مورد، موارد دیگری هم هستند؛ خب اگر قرار باشد به سؤال ssl چگونه کار میکند پاسخ دهیم، باید راجعبه آنها هم صحبت کنیم. این کار را هم خواهیم کرد! ولی اجازه دهید با همان رمزنگاریها شروع کنیم و بعد سراغ موارد تکمیلی برویم.
رمزنگاری نامتقارن
رمزنگاری نامتقارن که با نام رمزنگاری کلید عمومی هم شناخته میشود، از یک جفت کلید که با فرمولهای ریاضی به هم مرتبط هستند استفاده میکند.
در سازوکاری که اساسش یک جفت کلید (Key Pair) است، یکی از کلیدها در اختیار همۀ افرادی که تمایل به برقراری ارتباط دارند، قرار میگیرد؛ به این کلید، کلید عمومی (Public Key) میگویند و جلوتر راجعبه آن بیشتر صحبت میکنیم. کلید دوم، با نام کلید خصوصی شناخته میشود و باید مخفی بماند.
همانطور که گفتیم، کلیدهای عمومی و خصوصی با فرمولهای پیچیدۀ ریاضی با هم ارتباط پیدا میکنند؛ همچنین، خوب است بدانید که برای ساخت آنها از الگوریتمهای رمزنگاری استفاده میشود؛ الگوریتمهایی که بر اساس مسائل ریاضی موسوم به one-way function طرح میشوند.
خلاصه که از این کلیدها هم برای رمزنگاری، هم برای رمزگشایی استفاده میشود.
در رمزنگاری نامتقارن، فرستنده دادهها را با استفاده از کلید عمومی گیرنده قفل میکند و آنها را برای گیرنده میفرستد؛ پس از آن، گیرنده اطلاعات را با کمک کلید خصوصی مرتبط با آن کلید عمومی رمزگشایی میکند یا به بیانی دیگر، قفل اطلاعات را باز میکند. تصویر خوب روال این کار را بهخوبی نشان میدهد.
نیمنگاهی داشته باشیم به سؤال اصلی مقاله، یعنی اینکه پروتکل ssl چگونه کار میکند. این گواهی از رمزنگاری نامتقارن برای شروع ارتباط استفاده میکند! شروعی که با نام SSL Handshake شناخته میشود. راجعبه این موضوع هم صحبت میکنیم.
ولی فعلاً اجازه دهید چند مورد از معروفترین الگوریتمهای رمزنگاری نامتقارن را معرفی کنیم:
- EIGamal
- RSA
- DSA
- Elliptic curve techniques
- PKCS
💡 آشنایی با زیرساخت کلید عمومی (Public Key Infrastructure)PKI که مخفف Public Key Infrastructure است و ما در فارسی به آن زیرساخت کلید عمومی میگوییم، مجموعهای از قوانین، مقررات و ضوابط است؛ قوانین و مقرراتی که برای ساخت، مدیریت، توزیع، استفاده و ابطال گواهیهای دیجیتال (مثل همین SSL موردبحث خودمان) استفاده میشوند. PKI حتی در مدیریت رمزنگاری نامتقارن هم نقش مهمی دارد. داریم راجعبه یکی از مهمترین جنبههای امنیت در دنیای اینترنت صحبت میکنیم! این مجموعه قوانین و تکنولوژیها، فریمورکی از رمزنگاری را مهیا میکنند که برای حفاظت و تصدیق ارتباطات دیجیتال ضروری محسوب میشوند. PKI از کلیدهای عمومی رمزنگاریشدۀ متصل به یک گواهی دیجیتال استفاده میکند. کلیدهایی که صلاحیت فرد یا دستگاه فرستندۀ اطلاعات را تصدیق میکنند. گواهیهای دیجیتال توسط منابع معتبر صادر میشوند که به آنها CA میگویند؛ این گواهیها در واقع مثل یک پاسپورت در دنیای دیجیتال هستند که نشان میدهند فرستنده همانی است که ادعا میکند. زیرساخت کلید عمومی یا همان KPI، هم از ارتباطات بین سرورها و کاربران محافظت میکند، هم درستی آنها را تصدیق میکنند. برای مثال ارتباطی که بین بازدیدکنندگان و سایت شما برقرار میشود، توسط KPI محافظت و راستیآزمایی میشود. علاوهبر این، KPI برای ایمن کردن ارتباطات درونسازمانی هم کاربرد دارد؛ این سازوکار وارد عمل میشود و اطمینان حاصل میکند که دادهها فقط برای فرستنده و گیرنده قابل دیدن هستند. به عبارتی، KPI مطمئن میشود که نفر سومی اطلاعات را دستکاری نمیکند. زیرساخت کلیدهای عمومی از اجزای زیر تشکیل شده است:
|
خب این هم از زیرساخت کلیدهای عمومی. حالا بیایید سراغ ستون دوم برویم!
رمزنگاری متقارن
بر خلاف رمزنگاری نامتقارن که در آن از یک جفت کلید استفاده میشود، رمزنگاری متقارن یا Symmetric Cryptography فقط به یک کلید نیاز دارد؛ همان یک کلید، هم برای رمزنگاری، هم برای رمزگشایی به کار گرفته میشود.
گیرنده و فرستنده هر دو باید به این کلید دسترسی داشته باشند؛ کلیدی که فقط این دو طرف ماجرا از وجود آن مطلع هستند!
بعد از اینکه SSL Handshake تمام شد، SSL از رمزنگاری متقارن استفاده میکند. اینجا هم مهمترین الگوریتمهای این نوع رمزنگاری را معرفی میکنیم:
- AES-128
- AES-192
- AES-256
گفتیم با اینکه شاکله و ساختارهای اصلی SSL همین دو نوع رمزنگاری هستند، فرایندهای دیگری هم وجود دارند که عملکرد این گواهی را ممکن میکنند. برای اینکه پاسخ کاملی به سؤال ssl چگونه کار میکند بدهیم، لازم است آنها را هم بررسی کنیم.
پس برویم سراغ مورد بعدی.
انتقال داده از طریق SSL
احتمالاً تا اینجای مقاله فهمیده باشید که SSL از رمزنگاری متقارن و نامتقارن برای انتقال ایمن دادهها استفاده میکند. تصویر زیر، مراحل انجام ارتباطات از طریق این گواهی را نشان میدهد:
در تصویر بالا مشخص است که ارتباط بین مرورگر و وبسرور (یا هر دو سیستم دیگری) در دو مرحله انجام میشود:
- SSL Handshake
- انتقال واقعی دادهها
در بخش بعدی، راجعبه مرحلۀ اول صحبت میکنیم.
برقراری ارتباط از طریق SSL Handshak
کلاً انتقال داده از طریق SSL، همیشه با SSL Handshake آغاز میشود. در واقع، SSL Handshake یک نوع رمزنگاری نامتقارن است؛ رمزنگاری نامتقارنی که امکان تأیید وبسرور، دریافت کلید عمومی و برقراری یک ارتباط ایمن، قبل از آغاز انتقال واقعی را فراهم میکند.
تصویر زیر را ببینید تا روال کار SSL Handshake را بهتر درک کنید:
بیایید راجعبه هرکدام از مراحل بالا بیشتر صحبت کنیم.
- کاربر یا Client یک پیام میفرستد؛ پیامی که شامل شمارۀ ورژن SSL کاربر است؛ علاوهبر این، تنظیمات رمزنگاری و هرگونه اطلاعات دیگری که برای برقراری ارتباط بین سرور و کاربر از طریق SSL نیاز باشد، با همین پیام ارسال میشود.
- سرور پاسخ پیام کاربر را میدهد. این پاسخ شامل شمارۀ ورژن SSL سرور، تنظیمات رمزنگاری، کلید عمومی و تمام اطلاعات موردنیاز کاربر برای برقراری ارتباط با سرور از طریق SSL خواهد بود.
- کاربر یا Client مطمئن میشود که گواهی SSL سرور توسط یک CA معتبر صادرشده و درستی سرور را تصدیق میکند. اگر راستیآزمایی شکست بخورد، یعنی اگر درستی کار سرور تصدیق نشود، دستگاه کاربر یا Client، برقراری ارتباط از طریق SSL را رد میکند و ارور میدهد؛ ولی اگر همهچیز درست پیش برود، به مرحلۀ چهارم میرسیم.
- کلاینت یا کاربر کلیدی یکبارمصرف ایجاد میکند و آن را با کلید عمومی سرور، رمزنگاری میکند؛ سپس آن را برای سرور ارسال میکند. در ارتباط بین دو سرور، این احتمال وجود دارد که سرور گیرنده، درخواست راستیآزمایی و اطمینان از درستی سرور فرستنده را ارسال کند؛ در چنین شرایطی، بعد از دریافت درخواست، کاربر یا کلاینت هم گواهی خود را برای سرور گیرنده میفرستد.
- سرور کلید یکبارمصرف (Session Key) را با کمک کلید خصوصیاش رمزگشایی میکند و تصدیق را که با کلید یکبارمصرف رمزنگاری شده است، برای کاربر خواهد فرستاد.
در نتیجۀ این ۵ مرحله، در انتهای فرایند SSL Handshake، هم کاربر و هم سرور، کلید یکبارمصرف معتبر خودشان را دارند و از آن برای رمزنگاری و رمزگشایی دادههای واقعی استفاده میکنند. از اینجا به بعد، کلید عمومی و خصوصی دیگر کاربردی نخواهند داشت.
و اما انتقال واقعی اطلاعات.
🧩 پیشنهاد خواندنی: آموزش رفع خطاهای رایج SSL در وردپرس + کدها و افزونهها ۲۰۲۲ |
انتقال داده واقعی
حالا بعد از اتمام SSL Handshake، هم سرور و هم کاربر کلید یکبارمصرفی را در اختیار دارند که از آن برای رمزنگاری و رمزگشایی دادههای واقعی و انتقالشان استفاده میکنند. این امر با بهکارگیری کلید یکبارمصرف مشترک در هر دو طرف ماجرا محقق میشود؛ بنابراین، میتوانیم بگوییم با یک نوع رمزنگاری متقارن طرف هستیم!
انتقال داده واقعی در SSL، با رمزنگاری متقارن انجام میشود؛ چون هم آسان است و هم در مقایسه با رمزنگاری نامتقارن، منابع کمتری مصرف میشوند؛ یعنی انجام آن به انرژی خیلی کمتری نیاز دارد.
بنابراین، گواهیهای SSL با دو نوع رمزنگاری متقارن و نامتقارن کار میکنند و پایه و اساس فعالیت آنها بر این دو استوار است.
وقت جمعبندی است.
رمزنگاری متقارن و نامتقارن؛ SSL اینطور کار میکند
این مقاله را نوشتیم تا بگوییم ssl چگونه کار میکند. در شروع، نیمنگاهی به مفهوم این پروتکل و هدف اصلیاش انداختیم و بعد از آن، با تقسیم مراحل کار این گواهی، سعی کردیم همۀ جوانب آن را همراه با چگونگی عمکلردشان زیر ذرهبین ببریم.
همانطور که دیدید، دو نوع رمزنگاری، یعنی متقارن و نامتقارن، پایه و اساس چگونگی کار این گواهی و پروتکل هستند.
SSL بهشکلهای گوناگونی عرضه میشود که میتوانید با خواندن مقالۀ انواع گواهی SSL، با همۀ آنها آشنا شوید.
امیدواریم بعد از خواندن این مقاله، پاسخ تمام سؤالاتتان را گرفته باشید؛ اگر همچنان پرسشی در این رابطه دارید، حتماً در قسمت نظرات آن را با ما مطرح کنید.
منابع: Tutorials Teacher | Okta
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید