اسرار پنهان در پروتکل امنیت لایه انتقال TLS چیست؟
رمزنگاری جادویی TLS در زیر لایههای کدگذاری
- امنیت لایه انتقال TLS چیست؟
- چه ارتباطی بین پروتکل TLS با پروتکلهای SSL و HTTPS وجود دارد؟
- پروتکل TLS در چه مواردی کاربرد دارد؟
- چرا کسب و کارها باید از پروتکل TLS استفاده کنند؟
- مزایای پروتکل TLS 1.3
- ورژنهای مختلف TLS چیست؟
- چگونه میتوانید حضور TLS/SSL در یک سایت را تشخیص دهید؟
- کلیدهای پروتکل امنیت لایه انتقال
- نحوه عملکرد TLS چگونه است؟
- TLS چگونه بر عملکرد برنامه کاربردی وب تأثیر میگذارد؟
- تبادل پیام بین سرور و کلاینت در پروتکل TLS به چه صورت است؟
- چگونگی دریافت گواهی SSL یا TLS
امنیت لایه انتقال TLS به عنوان یکی از مهمترین و پرکاربردترین پروتکلهای امنیتی شناخته میشود. این پروتکل به طور وسیع از دادههایی که به صورت آنلاین منتقل میشوند، مراقبت میکند. اصلیترین کاربرد پرتوکل TLS در امانت دادههایی است که بین مرورگر وب و وبسایت از طریق اتصال امن HTTPS جابجا میشوند. پروتکل امنیت لایه حملونقل همچنین توانمندی ایمنسازی ایمیل و دیگر پروتکلهای مختلف را نیز داراست.
در این مطلب از فراست، به بررسی نقش پروتکل TLS در امنیت برنامههای کاربردی وب و هر آن چیزی که باید در مورد امنیت لایه انتقال بدانید را برای شما شرح دادهایم.
امنیت لایه انتقال TLS چیست؟
TLS یا “لایه انتقال امنیت” یک پروتکل گسترده و معتبر است که برای برقراری امنیت و تسهیل ارتباطات اینترنتی طراحی شده است. استفاده اصلی از TLS در رمزنگاری ارتباطات بین وب اپلیکیشنها و سرورها هست. این پروتکل همچنین برای رمزنگاری دیگر ارتباطات نظیر ایمیل، پیام و صدا در پروتکل اینترنت VOIP نیز قابلاستفاده است. در این قسمت، تأکید بیشتر بر نقش TLS در امانت وب اپلیکیشنها خواهد بود.
TLS توسط Internet Engineering Task Force (IETF)، یعنی انجمن استاندارد جهانی، ارائه شده و نخستین نسخه از این پروتکل در سال 1999 میلادی به بازار عرضه شد. جدیدترین نسخه از TLS، یعنی نسخه 1.3، در سال 2018 منتشر شده است.
پروتکل TLS بهعنوان یکی از پروتکلهای بسیار ارزشمند شناخته میشود، زیرا تضمین میکند که در یک اتصال، طرف مقابل واقعاً همان چیزی است که ادعا میکند و همچنین نشان میدهد آیا دادهها از یکپارچگی اولیه خود پیروی میکنند یا خیر. این پروتکل علاوه بر اینکه اطمینان از اصالت اطلاعات ارائه میدهد، با رمزگذاری نیز محرمانگی اطلاعات را تضمین میکند.
امنیت لایه انتقال TLS از طیف گستردهای از الگوریتمها و طرحهای مختلف برای دستیابی به این اهداف استفاده میکند. ممکن است عملکرد پیچیده این پروتکل به نظر برسد، در این مقاله تلاش شده است تا به شما یک دید ژرف به نحوه عملکرد امنیت لایه انتقال TLS بهمنظور ایمنسازی اتصالات ارائه داده شود.
چه ارتباطی بین پروتکل TLS با پروتکلهای SSL و HTTPS وجود دارد؟
اول در مورد موضوع تفاوت دو پروتکل ssl و tls چیست صحبت می کنیم. بعد به سراغ تفاوت دو پروتکل HTTPS و tls چیست می رویم.
SSL یکی از پروتکلهای استاندارد جهت برقراری ارتباط امن و رمزنگاری شده بین سرویسدهنده و سرویس گیرنده است. این پروتکل به مرور زمان توسط شرکت Netscape توسعه یافت و در نهایت، نسخه تکمیل شده آن تحت عنوان TLS ارایه شد. امنیت لایه انتقال TLS در مقایسه با SSL از امنیت و کارایی بیشتری برخوردار بوده و از الگوریتم رمزنگاری قویتری هم استفاده میکند.
نسخه 1.0 پروتکل TLS در واقع همان نسخه 3.1 پروتکل SSL است. به همین خاطر از اصطلاحات TLS و SSL ممکن است به جای یکدیگر استفاده شود. پروتکل امن انتقال ابرمتن یا HTTPS نسخه امنیتی پروتکل HTTP بوده و در وبسایتهایی که توسط امنیت لایه انتقال TLS رمزنگاری شدهاند مورد استفاده قرار میگیرد.
بنابراین تمام اطلاعات محرمانهای که بین سرویسدهنده و سرویسگیرنده مبادله میشوند، رمزنگاری شده و فقط توسط افرادی قابل مشاهده خواهند بود که کلید رمزگشایی آن را در اختیار داشته باشند. در غیر این صورت حتی اگر شخصی به این اطلاعات نیز دسترسی یابد امکان مشاهده و سوءاستفاده از محتوای آنها را نخواهد داشت.
پروتکل TLS در چه مواردی کاربرد دارد؟
استفاده از پروتکل امنیت لایه انتقال TLS یکی از جنبههای اساسی امنیت اینترنت است. این پروتکل به ما این امکان را میدهد که ارتباطات اینترنتی خود را بهصورت امن و رمزگذاری شده برقرار کنیم. کاربردهای TLS بسیار گستردهای دارد که میتوانیم به برخی از آنها اشاره کنیم.
در ابتدا، این پروتکل را میتوان بر روی پروتکلهای مختلفی مانند HTTP، SMTP، FTP و NNTP استفاده کرد. بهعبارتدیگر، از TLS میتوان برای ایمنسازی ارتباطات در وبسایتها، ارسال ایمیل، انتقال فایل، و انجام ارتباطات مختلف دیگر در اینترنت استفاده نمود.
این پروتکل بر پایه TCP/IP عمل میکند و در بستر اینترنت بهعنوان یکی از ابزارهای اساسی برای ایجاد اتصالات امن به کار میرود. همچنین، مرورگرهای وب و وبسایتها از این پروتکل بهره میبرند تا ارتباطات را بهصورت امن و رمزگذاری شده برقرار کنند.
در ضمن، TLS قابلیت پشتیبانی از توسعه برنامهها و استفاده از برنامههای بدون سرور را فراهم میکند. این ویژگی این امکان را به برنامهنویسان میدهد که از کتابخانهها و لایبرریهای مختلف در برنامههای کلاینتی خود استفاده کنند و درعینحال امنیت بالایی را برای آنها فراهم کند. از طریق TLS، اطمینان حاصل میشود که این کتابخانهها از نظر امنیتی تضمین شدهاند و هرگونه دسترسی غیرمجاز به آنها ممکن نیست.
بهعبارتدیگر، TLS نهتنها امنیت ارتباطات اینترنتی را تقویت میکند؛ بلکه به برنامهنویسان این امکان را میدهد که بهراحتی از امکانات مختلف اینترنت استفاده کنند و همچنین از لحاظ حفاظت از حقوق مالکیت معنوی برنامههای خود اطمینان حاصل کنند.
چرا کسب و کارها باید از پروتکل TLS استفاده کنند؟
استفاده از HTTPS در وبسایتهایی که با TLS رمزنگاری شدهاند یک استاندارد جهانی بوده و به محافظت از برنامههای کاربردی وب در برابر مخاطره نقض دادهها و سایر حملات سایبری کمک میکند. برای مثال مرورگر گوگل کروم از مشاهده وبسایتهایی که نماد قفل HTTPS ندارند، جلوگیری کرده و کاربران هم در استفاده از آنها محتاطتر خواهند بود.
رمزنگاری TLS به وب اپلیکیشنها امکان میدهد تا از حملاتی نظیر نفوذ داده Data breach و حملات DDoS (DDoS Attack) در امان باشند. امروزه HTTPS ایمن شده توسط TLS بهعنوان یکی از استانداردهای رایج برای وبسایتها شناخته میشود.
بهعنوانمثال، مرورگر گوگل کروم به سایتهایی که از HTTPS برخوردار نیستند، حساسیت نشان میدهد و تعداد کاربرانی که به وبسایتهایی با عدم ارائه علامت قفل مربوط به HTTPS احتیاط میکنند، روزبهروز افزوده میشود.
مزایای TLS 1.3
TLS 1.3 به دلایل زیادی موجب بهبود امنیت و عملکرد اتصالات شبکه میشوند. در زیر به برخی از این مزایا اشاره خواهیم کرد:
استفاده کمتر از فناوریهای ناامن:
با پایاندادن به پشتیبانی از الگوریتمها و رمزگذاریهای ناامن مانند DES، RC4، SHA-1، TLS 1.3 از فناوریهای جدیدتر و امنتر بهرهمند شده است.
سازگاری با نسخههای قدیمیتر پروتکل:
این نسخه از TLS با ایجاد یک مکانیزم مناسب برای تعامل با نسخههای قدیمیتر، بهسادگی انتقالپذیری سیستمهای قدیمیتر را فراهم میکند.
سرعتبخشیدن به اتصالات:
با بهرهمندی از ویژگیهای مانند Zero Round Trip Time، TLS 1.3 سرعت برقراری اتصالات را افزایش میدهد و زمان لازم برای برقراری اتصال را به حداقل ممکن میکند.
بهبود امنیت:
با پایاندادن به الگوریتمها و رمزگذاریهای قدیمی و آسیبپذیر، TLS 1.3 امنیت اطلاعات را بهبود میبخشد و به جلوگیری از حملاتی نظیر downgrade کمک میکند.
استفاده از تکنیکهای جدید:
TLS 1.3 از تکنیکهای جدیدی با رمزگذاری کمتر و اعتماد بیشتر استفاده میکند که موجب بهبود کارایی و امنیت اتصالات میشود.
پایاندادن به الگوریتمها و رمزگذاریهای قدیمی:
این نسخه از TLS پشتیبانی از الگوریتمها و رمزگذاریهای قدیمی و آسیبپذیر را متوقف کرده و از روشهای مدرن و ایمنتر استفاده میکند.
ویژگیهای جدید در دست دهی پروتکل:
با اضافهکردن ویژگیهایی نظیر TLS Session Resumption و TLS False Start، TLS 1.3 روند دستدهی پروتکل را سرعت میبخشد و ارتباطات را بهبود میبخشد.
باتوجهبه این مزایا، TLS 1.3 بهعنوان یک نسخه پیشرفته از پروتکل امنیتی TLS، نقش مهمی در تضمین امانت و امنیت اطلاعات در ارتباطات آنلاین ایفا میکند.
ورژنهای مختلف TLS چیست؟
در مورد وضعیت ورژنهای ارائه شده برای TLS باید گفت که این سیستم از ورژنهای مختلفی برای کار خود استفاده میکند، که در واقع کارکرد کلی آن ها یکی بوده و تفاوتهایی در قابلیتهای مختلف خود دارند. در این بخش به بررسی این ورژنها میپردازیم.
TLS 1.0
در سال 1999 ارائه شد و ارتقاء سادهای از SSL 3.0 بود. این ورژن بهبودهایی در ویژگیهای امنیتی SSL ارائه داد. TLS 1.0 توسط کریستوفر آلن و تیم دیرک از شرکت Consensus Development منتشر شد. این ورژن از TLS، در واقع یک ارتقاء ساده از SSL 3.0 بود و بهبودهایی در ویژگیهای امنیتی SSL ارائه داد. این بهبودات به TLS این امکان را میداد که به عنوان یک پروتکل امنیتی برتر در مقایسه با SSL مورد استفاده قرار گیرد. این نشان از تلاشهای متخصصان برای بهبود و ارتقاء امنیت ارتباطات اینترنتی است.
TLS 1.1
در ماه آوریل سال 2006، یک بهروزرسانی برای TLS 1.0 ارائه شد که به ورژن جدیدی از این پروتکل منجر شد. تفاوت اصلی این ورژن با نسخه قبلی بهطور عمده به حفاظت در برابر نوع جدیدی از حملات با نام Cipher Block Chaining (CBC) اشاره داشت. این نوع حملات میتوانست بهصورت CBC (Cipher Block Chaining) کلیدهای خصوصی را رمزگشایی کند.
در این ورژن، تغییرات اساسی در بلاکهای مربوط به دادههای رمزنگاری صورت گرفت تا از موارد مختلفی که امکان نفوذ نفرات و هکرها را فراهم میآورد، جلوگیری شود. همچنین، نوع کلیدی که برای عملیات رمزنگاری و رمزگشایی به کار میرفت، از نوع اولیه خود به Explicit IV ارتقا یافت که باعث افزایش میزان سختی برای هکرها شد و این بهطورکلی باعث ایجاد یک ورژن امن و بینظیر از TLS شد.
TLS 1.2
در ماه آگوست سال 2008، پس از گذشت دو سال و نیم از ارائه TLS 1.1، یک ورژن جدید از این پروتکل با نام TLS 1.2 معرفی شد. این ورژن با ارائه امکانات بسیار بهتر، به کاربران این امکان را میداد تا از امنیت بالاتری برخوردار شوند. یکی از نقاط برجسته این ورژن این بود که پروتکل SHA-256 را به عنوان یکی از الگوریتمهای امنیتی اصلی خود در نظر گرفت.
پروتکل SHA-256، یکی از بهترین و برترین پروتکلهای امنیتی به شمار میآید که توسط FBI ارائه شده است. شکستن رمزنگاریهای این پروتکل نیازمند سیستمهای بسیار پیچیده و باکیفیت بالاست که هر کسی به آنها دسترسی ندارد. این پروتکل با موفقیت رمزنگاری امتحان خود را در زمینههای ارزهای دیجیتال و بیتکوین بهخوبی اجرا کرده است.
در مقایسه با ورژن قبلی، TLS 1.2 تغییرات زیادی به همراه داشت، از جمله استفاده از رمزنگاریهای جانبی، ترکیب الگوریتمهای متنوع برای ساخت هش با استفاده از کلید عمومی، و افزودن مکانیزمهایی برای صحتسنجی رمزنگاری و بستههای ارسال شده است و این تحولات باعث ارتقاء امنیت و عملکرد این ورژن از TLS شد.
TLS 1.2 با موفقیت بهعنوان نسخه پایدار به مدت 8 سال در حال استفاده بود و ورژن بعدی در سال 2018 معرفی شد، که در ادامه به بررسی آن خواهیم پرداخت.
TLS 1.3
ورژن 1.3 از TLS، جدیدترین و پایدارترین نسخه پروتکل امنیت لایه انتقال اطلاعات است. این ورژن تغییرات چشمگیری نسبت به نسخههای قبلی داشته که از مهمترین آن ها اصلاحاتی بر روی دسترسیهای پیشین بوده است. در این پروتکل، حذف و اصلاحاتی اعمال شدهاند که پیشرفتهای مهمی در زمینه امنیت فراهم کردهاند.
این حذفیات نشان از جرئت در جهت بهبود و تسریع در فرایند ارتباطات امن دارد. هرچند که TLS بهطورکلی در توسعه و افزودن ویژگیهای امنیتی پیشرونده حرکت کرده است، اما این ورژن اقدام به حذف مواردی کرده و به یک ساختار جدید و کمحجم تبدیل شده است.
در این ورژن از TLS، تغییرات بزرگی اعمال شدهاند، از جمله حذف رمزنگاری توابع هش از نوع SHA-244، عدم پشتیبانی از نامگذاریهای ECC کم استفاده در رمزنگاری، و اضافهشدن نیاز به امضای دیجیتال حتی در صورت استفاده از ورژنهای قبلی است. این تغییرات نشاندهنده جهتگیری به سمت یک سیستم جدید و زیرساخت امنیتی بهروز شده است.
در کل، میتوانیم در مورد ویژگیها و تغییرات مختلف موجود در ورژنهای مختلف TLS صحبت کنیم، اما برای درک کامل از چگونگی برقراری امنیت ارتباط با استفاده از این پروتکل، بهتفصیل در زمینههای مختلف پرداخته خواهد شد.
چگونه میتوانید حضور TLS/SSL در یک سایت را تشخیص دهید؟
برای اطمینان از استفاده از اتصال امن، ابتدا باید اطمینان حاصل کنید که سایت شما دارای گواهی SSL/TLS معتبر است یا خیر. این فرایند بسیار ساده است. تنها کافی است سایت خود را در هر مرورگری باز کنید و به آدرس بار نگاه کنید. در اینجا از گوگل کروم بهعنوانمثال استفاده شده است. باید اطمینان حاصل شود که قبل از WWW، عبارت HTTPS نوشته شده باشد. در ورژنهای قدیمیتر مرورگرها، یک آیکن قفل سبز و عبارت Secure کنار آدرس بار دیده میشد.
در اینجا اگر سایت از SSL/TLS استفاده نمیکرد، آیکن قفل قرمز بود. در ورژنهای جدیدتر، این رنگبندیها ممکن است وجود نداشته باشد و تنها عبارت Secure مشاهده شود. تمامی سایتهای دارای گواهی SSL/TLS، این آیکن را نشان نمیدهند؛ زیرا حضور این آیکن به نوع گواهی متصل است. اگر سایت شما عبارت Secure را ندارد، بهتر است یک گواهی SSL/TLS برای آن تهیه کنید.
همچنین، ممکن است گواهی اعتبار آن به پایان رسیده باشد؛ لذا برای اطمینان از این موضوع، بر روی آیکن اخطاردهنده کلیک کنید و اطلاعات موجود را مطالعه کنید. در این اطلاعات، میتوانید روی لینک Certificate کلیک کرده و اطلاعات بیشتری را مشاهده کنید.
کلیدهای پروتکل امنیت لایه انتقال
در هنگام ایجاد ارتباط، پروتکل امنیت لایه انتقال TLS نهتنها ارتباطات را رمزنگاری میکند، بلکه توانایی احراز هویت را نیز دارد. این احراز هویت میتواند بهصورت دوطرفه باشد، به این معنی که سرور میتواند هویت شبکه و وبسایت را به مشتری نشان دهد یا اطلاعات مشتری را برای احراز هویت در اختیار سرور قرار دهد.
پروتکل امنیت لایه انتقال دارای دو مجموعه کلید است که برای رمزنگاری استفاده میشود. فرایند احراز هویت با استفاده از کلیدهای عمومی انجام میشود. این کلیدهای عمومی و خصوصی در اختیار صاحب وبسایت یا برنامه قرار دارد. شخصی که کلیدهای عمومی و خصوصی را دارد، میتواند اطلاعات را از رمزگذاری خارج کند. به دلیل سطح بالای امنیت پروتکل TLS، امکان هکشدن توسط مهاجمین سایبری وجود ندارد.
نحوه عملکرد TLS چگونه است؟
امنیت پروتکل TLS بهمنظور استفاده از رمزگذاری از هر دو انتهای سرویسگیرنده (کلاینت) و سرویسدهنده (سرور) طراحی شده است تا اطمینان حاصل کند که اتصال بین دو یا چند برنامه کاربردی در حال ارتباط ایمن و امن است، همچنین قابلیت همکاری میان دستگاهها را تضمین کرده و با کارایی نسبی بهبود میبخشد.
ارتباط کلاینت – سرور میتواند با استفاده از پروتکلهای TLS انجام شود یا بدون آن آغاز شود. مشتری میتواند یک اتصال TLS را با استفاده از روشهای مختلف مشخص کند، بهعنوانمثال از شماره پورتی که از انواع رمزگذاریهای مورداستفاده در ارتباطات TLS پشتیبانی میکند. روش بالقوه دیگر ممکن است شامل ایجاد یک درخواست پروتکل خاص برای تغییر به اتصال TLS باشد.
هنگامی که مشتری و سرور توافق برای برقراری ارتباط با استفاده از TLS، این توافق از طریق دولایه پروتکل انجام میشود که شامل پروتکل دستدادن TLS و پروتکل ضبط است. TLS از ترکیب رمزنگاری متقارن و نامتقارن بهره میبرند. رمزنگاری متقارن کلیدهایی را ایجاد میکند که هم برای فرستنده و هم برای گیرنده شناخته میشوند، درحالیکه رمزنگاری نامتقارن جفت کلید ایجاد میکند، یکی عمومی (مشترک بین فرستنده و گیرنده) و دیگری خصوصی است.
میتوان از پروتکل لایه امنیت انتقال TLS برای افزایش امنیت ارتباطات استفاده کرد، این پروتکل شامل سه جزء اصلی است که عبارتاند از:
رمزنگاری:
TLS اطمینان میدهد که دادههای منتقل شده از دید یک شخص ثالث پنهان باشند.
احراز هویت:
این قسمت تأیید میکند که اشخاص ثالثی که اطلاعات را تبادل میکنند، واقعاً همان افرادی هستند که ادعا میکنند.
سندیت:
TLS تضمین میکند که دادهها جعلی یا تغییریافته نباشند.
هر وبسایت یا برنامهای که از امنیت لایه انتقال TLS استفاده میکند باید دارای گواهینامه TLS (که به عنوان «گواهینامه SSL» نیز شناخته میشود) در سرور اصلیاش باشد. این گواهینامه توسط مسئول صدور گواهینامه به هر شخص یا کسب و کار دارای دامنه اینترنتی داده می شود که حاوی اطلاعاتی در مورد مالک دامنه، به همراه کلید عمومی سرور است. این اطلاعات و کلید عمومی، جهت تأیید هویت سرور از اهمیت بالایی برخوردار هستند.
اتصال TLS شامل فرایند انتقال اطلاعات اولیه و ایجاد یک ارتباط امن جهت مبادله اطلاعات میباشد. این فرایند که اصطلاحاً “TLS Handshake” نام دارد بین دستگاه کاربر و سرور وب آغاز شده و شامل مراحل زیر است:
- در گام اول، یکی از نسخههای TLS (1.0، 1.1 و 1.3) تعیین شده و در دسترس کاربر و سرور قرار میگیرد.
- در این مرحله، TLS Handshake یک مجموعه رمز را برای هر نشست (Session) ارتباطی ایجاد میکند. این مجموعه شامل الگوریتمهایی است که تعیین میکنند چه کلیدهای رمزنگاری مشترکی برای آن نشست خاص استفاده شود. امنیت لایه انتقال TLS به لطف فناوری معروف به رمزنگاری کلید عمومی میتواند کلیدهای نشست را بر روی یک کانال رمزنگاری نشده تنظیم کند.
- TLS Handshake همچنین مسئولیت احراز هویت که معمولاً شامل اثبات هویت سرور به کاربر است را بر عهده داشته و این کار را با استفاده از کلیدهای عمومی انجام میدهد. با این حال فقط فرستنده اصلی میتواند داده ها را با کلید خصوصیاش رمزنگاری کند. لازم به ذکر است که کلید عمومی سرور، بخشی از گواهی TLS میباشد.
- ایجاد کلیدهای نشست برای رمزنگاری پیامهای مبادله شده بین کلاینت و سرور پس از اتمام فرایند TLS handshake
اتصال یک TLS پس از برقراری اتصال با چیزی به نام TLS handshake آغاز میشود. این مرحله از پروسه TLS به پنهانکردن دادهها و ایجاد کلیدهای مختلف برای هر بخش از ارتباطات اینترنتی میپردازد. این پروسه Cypher suite الگوریتمهای مختلفی را شامل میشود که در مراحل مختلف جزئیاتی نظیر مشخصات و دادههای به اشتراک گذاشته شده را مشخص میکنند.
TLS قادر است این مشخصات را بر روی یک کانال رمزنگاری نشده تنظیم کند؛ این پروسه بهواسطه فناوری رمزنگاری کلید عمومی Public key cryptography انجام میشود. در این مرحله اغلب با تأیید هویت سرور به مشتری نقش اصلی را احراز هویت بازی میکند. این پروسه از طریق استفاده از کلیدهای عمومی اجرا میشود.
کلیدهای عمومی بهعنوان کلیدهای رمزنگاری شده عمل میکنند که یک مرحله رمزنگاری یکطرفه را طی کردهاند؛ بهعبارتدیگر، هر کسی میتواند با استفاده از کلیدهای خود دادهها را تغییر دهد تا از اصالت هویتش مطمئن شود، اما تنها فرستنده اصلی میتواند دادهها را با استفاده از کلیدهای رمزنگاری شخصی ارسال کند.
زمانی که دادههای رمزنگاری و احراز هویت شدهاند، با استفاده از یک کد اصالتسنجی MAC امضا میشوند. گیرنده میتواند با تأیید این کد اصالتسنجی، از صحت و بینقصی دادهها اطمینان حاصل کند. این فرایند همانند بستهبندی داروها عمل میکند؛ مصرفکننده میتواند از عدم تغییر بستهبندی مطمئن شود که محصولی که خریداری کرده، دستکاری نشده است.
TLS چگونه بر عملکرد برنامه کاربردی وب تأثیر میگذارد؟
اگرچه آخرین نسخههای امنیت لایه انتقال TLS تأثیر چندانی بر نحوه عملکرد برنامه های کاربردی تحت وب ندارند ولی از طرف دیگر فرایند راهاندازی اتصال TLS نسبتاً پیچیده بوده و نیازمند صرف زمان زیاد برای بارگذاری و همچنین قدرت محاسباتی بالا میباشد. برای مثال کلاینت و سرور باید پیش و پس از انتقال دادهها چندینبار با یکدیگر ارتباط برقرار کنند.
این عملیات به زمان بسیار زیادی نیاز داشته و بخشی از حافظه کلاینت و سرور را نیز درگیر خود می کند در صورتی که از این زمان میتوان برای بارگذاری برنامههای کاربردی وب استفاده کرد. با این حال، فناوریهایی مثل TLS False Start وجود دارند که تأخیرهای احتمالی ایجاد شده توسط TLS handshake را کاهش میدهند. TLS False Start پیش از شروع اتصال TLS Handshake مجوز انتقال داده را به سرویسدهنده و سرویسگیرنده میدهد.
این فناوری همچنین به مشتریان و سرورهایی که در گذشته با یکدیگر ارتباط برقرار نمودهاند مجوز استفاده از TLS Handshake کوتاه شده را میدهد. از این رو دیگر نیازی به گذراندن تمام مراحل TLS Handshake توسط کلاینت و سرور وجود ندارد.
چنین فناوریهایی TLS را به یک پروتکل سریع که تأثیر چندانی بر روی زمان بارگذاری ندارد، تبدیل کردهاند. بر اساس استانداردهای امروزی، هزینه های محاسباتی مربوط به امنیت لایه انتقال TLS بسیار ناچیز است. نسخه TLS 1.3 که در سال 2018 میلادی منتشر شد در مقایسه با نسخههای قبلی آن از سرعت بسیار بالاتری برخوردار است.
در این نسخه، فرایند TLS Handshake فقط به یک ارتباط رفت و برگشتی (یا لوپ) نیاز داشته و این روند را چند میلی ثانیه کوتاهتر میکند. همچنین اگر کاربری در گذشته به یک وبسایت متصل شده باشد مقدار رفت و برگشت TLS Handshake صفر بوده و سرعت نیز افزایش زیادی خواهد یافت.
تبادل پیام بین سرور و کلاینت در پروتکل TLS به چه صورت است؟
امنیت لایه انتقال TLS شامل یک سری تبادلات بین مشتری و سرور است که بر اساس الگوریتم تبادل کلید مورداستفاده قرار میگیرد و مجموعههای رمز پشتیبانی شده متفاوت است. روند کلی کار به شرح زیر است:
- کلاینت یک پیام «سلام کلاینت» ارسال کرده و درخواست اتصال میدهد. این پیام شامل فهرستی از مجموعههای رمز پشتیبانی شده و یک رشته تصادفی از بایتها است.
- سرور با یک پیام «سلام سرور» که حاوی نسخه پروتکل انتخابی TLS، مجموعه رمز انتخابشده و یک رشته تصادفی از بایتها است، پاسخ میدهد.
- سرور گواهی SSL خود را به مشتری ارسال کرده و کلاینت این گواهی را تائید میکند. همچنین، در صورت درخواست، سرور میتواند گواهی خود را برای احراز هویت ارسال کند.
- مشتری یک رشته دوم از بایتهای تصادفی که رمز premaster نام دارد، ارسال میکند. این رشته با استفاده از رمزنگاری نامتقارن از گواهی امنیتی سرور تولید شده و برای رمزگذاری رمز premaster استفاده میشود. رمز premaster تنها با استفاده از کلید خصوصی سرور قابل رمزگشایی است.
- سرور رمز premaster را با کلید خصوصی خود رمزگشایی میکند.
- هم کلاینت و هم سرور، کلیدهای جلسه را از کلاینت و سرور premaster تولید میکنند.
- مشتری یک پیام «تمام شد» که با یک کلید جلسه رمزگذاری شده است، ارسال میکند.
- سرور با یک پیام «تمام شد» که با یک کلید جلسه رمزگذاری شده است پاسخ میدهد.
- کلاینت و سرور با موفقیت به رمزگذاری متقارن ایمن دستیافتهاند و ارتباط میتواند با کلیدهای جلسه برقرار شده ادامه یابد.
هنگامی که روش رمزگشایی ایجاد شود، پروتکل ضبط یا رکورد امنیت لایه انتقال TLS از رمزنگاری متقارن برای ایجاد کلیدهای جلسه منحصربهفرد برای هر اتصال استفاده میکند. پروتکل رکورد همچنین هر دادهای را که ارسال میشود با یک کد احراز هویت پیام مبتنی بر هش HMAC اضافه میکند.
ازآنجاییکه پروتکلهای رمزگذاری در امنیت لایه انتقال TLS پیچیده هستند، کاربران باید انتظار داشته باشند که مقداری توان محاسباتی را در این فرایند صرف کنند؛ اما پروتکل TLS همچنین دارای تکنیکهای داخلی برای جلوگیری از تأخیرهای قابلتوجه است؛ بنابراین پروتکلهای TLS نباید به طور قابلتوجهی بر عملکرد برنامه وب و زمان بارگذاری تأثیر بگذارند و همچنین نباید هزینههای محاسباتی را برای سازمانها افزایش دهند.
چگونگی دریافت گواهی SSL یا TLS
اگر گواهینامه SSL یا TLS خود را از یک ارائهدهنده شخص ثالث تهیه کردهاید، فرایند نصب بسیار ساده است. کافی است گواهینامه را به سایت خود متصل کرده و آن را نصب کنید. درصورتیکه هنوز گواهینامه را تهیه نکردهاید، میتوانید به بخش گواهینامه SSL سایت شرکت پارس آوان مراجعه کنید و گواهینامه را برای سایت خود درخواست و نصب کنید.
پس از تهیه گواهینامه SSL/TLS، اگر وبسایت وردپرسی دارید و میخواهید خودتان گواهینامه را نصب کنید، میتوانید از افزونه Really Simple SSL استفاده کرده و با اعمال تنظیمات ساده آن، گواهینامه خود را فعال کنید.
روش دوم هم برای فعالسازی گواهینامه اس اس ال نیز بسیار ساده است. برای این کار، ابتدا دامنه سایت خود را به CDN رایگان متصل کرده و سپس به بخش تنظیمات HTTPS در پنل میزبان خود بروید. در این مرحله، میتوانید اطلاعات گواهینامه SSL/TLS خود را وارد کنید.
با این اقدامات، سایت شما بهسرعت ایمن شده و از گواهینامه SSL و HSTS بهرهمند خواهد بود. در صورت تمایل به استفاده از امنیت لایه انتقال TLS، میتوانید با تعیین نسخه موردنظر و تعیین حداقل نسخه مجاز برای برقراری ارتباط با سرور، اطمینان حاصل کنید که اطلاعات تبادلی بین کاربر و سرور بهصورت امن انجام میشود.