موضوع مقاله: مجموعه رمزنگاری | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # مجموعه رمزنگاری | مقدمه: مجموعهٔ رمز نگاری در حقیقت روش‌هایی است که می‌تواند برای رمزنگاری استفاده شود و کاربر از آن‌ها پشتیبانی می‌کند. | ## بخش 1: مجموعه رمزنگاری | از این کلید برای رمزگذاری و رمزگشایی پیام‌های ارسال شده بین دو دستگاه استفاده می‌شود. الگوریتم MAC: یکپارچگی داده‌ها را بررسی می‌کند تا اطمینان از عدم تغییر داده‌های انتقال یافته فراهم شود. علاوه بر این، مجموعه رمزنگاری‌ها می‌توانند شامل امضاها و الگوریتم‌های تأیید هویت برای کمک به احراز هویت سرور یا کلاینت باشند. به‌طور کلی صدهامدل مختلف از مجموعه رمزنگاری وجود دارد که شامل ترکیب‌های مختلفی از این الگوریتم‌ها است. از مجموعه‌های رمزگذاری شده که برای TLS 1.2 تعریف شده‌است نمی‌توان در TLS 1.3 و برعکس استفاده کرد، مگر اینکه در تعریف آنها تصریح شده باشد. با این وجود از نام مجموعه رمزنگاری در پیش نویس اصلی SSL استفاده نشده‌است در عوض، کلاینت و سرور از میان مجموعه ای کوچک از رمزگذارها برای تأمین امنیت ارتباط خود، توانایی انتخاب داشتند که Cipher-Choice نامیده می‌شد. این ساختار به عنوان یک ساختار توصیف الگوریتم‌هایی که یک ماشین از آن پشتیبانی می‌کند، استفاده می‌شود تا دو دستگاه تصمیم بگیرند که از کدام یک از الگوریتم‌های مورد استفاده برای تأمین امنیت اتصال خود استفاده کنند. آنچه تغییر کرده نسخه‌های الگوریتم‌هایی هستند که در مجموعه رمزنگاری پشتیبانی می‌شوند. هر نسخه از TLS پشتیبانی از نسخه‌های قوی تر الگوریتم‌ها را اضافه و پشتیبانی از نسخه‌های الگوریتم‌هایی را که به عنوان ناامن شناخته شده‌اند حذف کرده‌است. TLS 1.3 تغییر در چگونگی مجموعه رمزنگاری برای برقراری ارتباط بین ماشین‌ها را نشان می‌دهد. مجموعه رمزنگاری که برای استفادهٔ دو دستگاه ارتباطی برای برقراری ارتباط آن دو انتخاب می‌شود، توسط فرایند شروع برقراری ارتباط تعیین می‌شود. اصلاحات وتغییراتی در TLS 1.3 در فرایند شروع برقراری ارتباط به وجود آمد تا تعداد پیام‌های مورد نیاز برای ارسال کاهش یابد. این امر باعث شد عملیات پردازشی کمتر، ترافیک کمتر و راندمان و کارایی بیشتر در مقایسه با نسخه‌های قبلی TLS به دست آید. نحوهٔ نامگذاری هر مجموعه رمزنگاری یک نام منحصر به فرد دارد که برای شناسایی آن و توصیف محتوای الگوریتمی آن استفاده می‌شود. الگوریتم تبادل کلید برای تعیین اینکه چگونه کلاینت و سرور در حین دستیابی به اطلاعات اصالت سنجی می‌کنند، استفاده می‌شود. | ## بخش 2: مجموعه رمزنگاری | AES_128_GCM بیانگر رمزگذاری قالبی است که برای رمزگذاری جریان پیام به همراه نحوه عملکرد رمزگذاری قالبی مورد استفاده قرار می‌گیرد. SHA256 الگوریتم تأیید اعتبارسنجی پیام را نشان می‌دهد که برای تأیید اصالت یک پیام استفاده می‌شود. فرایند شروع برقراری ارتباط: هماهنگی مجموعه‌های رمزنگاری برای استفاده از مجموعه رمزنگاری، کلاینت و سرور باید بر سر استفاده از مجموعه رمزنگاری خاص، برای استفاده در تبادل پیام‌ها توافق کنند. بعد از هماهنگی و توافق بر سر انتخاب اینکه از کدام مجموعه رمزنگاری استفاده کنند، سرور و کلاینت هنوز هم می‌توانند با استفاده از پروتکل Change Cipher Spec در برقراری ارتباط فعلی یا ارتباطات جدید، مجموعه رمزنگاری را تغییر دهند. در پاسخ، سرور پیام SERVERHELLO را ارسال می‌کند که مشخص می‌کند سرور از بین مجموعه رمزنگاری‌هایی که کلاینت ارسال کرده‌است کدام را برای ادامه انتخاب می‌کند و پیام ارسالی شامل شناسه نیز است؛ و بعد سرور یک گواهی دیجیتال را برای تأیید هویت خود به کلاینت ارسال می‌کند؛ و ممکن است سرور در صورت لزوم گواهی هویت کلاینت را نیز درخواست کند. اگر کلاینت و سرور از کلیدهای از پیش اشتراکی استفاده نکنند، کلاینت یک پیام رمزگذاری شده را به سرور ارسال می‌کند که کلاینت و سرور را قادر می‌سازد بتوانند در هنگام مبادله پیام حساب کنند که از کدام کلید مخفی استفاده کنند. پس از موفقیت تأیید احراز هویت سرور و در صورت نیاز تبادل کلیدهای مخفی، کلاینت پیام نهایی را برای سرور ارسال می‌کند تا نشان دهد که عملیات ارتباطی با موفقیت انجام شده‌است. پس از دریافت این پیام، سرور پیام نهایی را ارسال می‌کند که تأیید دستیابی کامل را نشان می‌دهد. اکنون کلاینت و سرور در توافق هستند که کدام مجموعه رمزنگاری را برای ارتباط با یکدیگر استفاده کنند. عملیات ارتباطی TLS 1.3 اگر دو دستگاه بر سر TLS 1.3 مطابقت داشته باشند، آنها توافق می‌کنند که از کدام مجموعه رمزنگاری مبتنی بر پروتکل ارتباطی TLS 1.3 استفاده کنند. عملیات ارتباطی در TLS 1.3 در مقایسه با دو عملیات رفت و برگشت مورد نیاز در نسخه‌های قبلی TLS / SSL، تنها به یک رفت و برگشت خلاصه می‌شود. ابتدا کلاینت یک پیام ClientHello به سرور ارسال می‌کند که شامل لیستی از مجموعه رمزنگاری‌ها به ترتیب اولویتی که کلاینت مشخص کرده‌است می‌باشد و حدس می‌زند که از چه الگوریتم تبادل کلیدی استفاده شده‌است تا بتواند در صورت لزوم یک کلید مخفی برای به اشتراک گذاری برای سرور بفرستد. با حدس در مورد اینکه چه الگوریتم تبادل کلیدی مورد استفاده قرار می‌گیرد، یک رفت و برگشت را از بین می‌برد. بعد از اینکه کاربر پیام نهایی سرور را دریافت کرد، اکنون با سروری که از آن پیام نهایی را دریافت کرده‌است بر سرمجموعه رمزنگاریه ماهنگ شده و به توافق می‌رسد. علاوه بر این، همه الگوریتم‌های رمزگذاری و اعتبار سنجی در رمزگذاری تأیید هویت با استفاده از داده‌های مرتبط (AEAD) با هم ترکیب می‌شوند. | ## بخش 3: مجموعه رمزنگاری | این تغییرات به دلیل نقص یا آسیب‌پذیری‌های احتمالی کشف شده از زمان آخرین انتشار انجام شده‌است که می‌تواند منجر به اتصال TLS ناامن شود. موارد خاصی وجود دارد که هنگام استفادهٔ مجموعه رمز نگاری TLS با DTLS باید در نظر گرفته شود. برای تعیین اینکه آیا یک مجموعه رمزنگاری TLS با DTLS سازگار است یا نه نگاه به نامگذاری آنها کمکی نمی‌کند. اگر نسخه الگوریتم رمزگذاری یا احراز هویت در یک مجموعه رمزنگاری دارای آسیب‌پذیری شناخته شود، مجموعه رمزنگاری و اتصال TLS آسیب‌پذیر است؛ بنابراین، یک حمله مشترک علیه مجموعه‌های TLS و مجموعه رمزنگاری به عنوان یک حمله downgrade شناخته می‌شود. هنگام شروع برقراری ارتباط، کلاینت مدرن بالاترین پروتکل پشتیبانی شده را ارائه می‌دهد. اگر اتصال رخ ندهد، به‌طور خودکار با یک پروتکل پایین‌تر مانند TLS 1.0 یا SSL 3.0 دوباره برقراری ارتباط را امتحان می‌کند تا برقراری ارتباط با سرور موفقیت‌آمیز باشد. با این وجود، یک حمله کننده می‌تواند از این ویژگی استفاده کند و آن را مورد استفاده قرار دهد تا کلاینت به‌طور خودکار به نسخه ای از TLS یا SSL که ازمجموعه رمزنگاری پشتیبانی می‌کند دست یابد که دارای الگوریتم‌هایی است که به دلیل ضعف امنیتی آسیب‌پذیر شناخته شده‌اند. یکی از راه‌های جلوگیری از این نقص امنیتی، غیرفعال کردن توانایی سرور یا کلاینت است که می‌توانند به نسخه SSL 3.0 پروتکل خود را کاهش دهند. ایرادی که در این رفع مشکل وجود دارد این است که باعث می‌شود تا برخی سخت‌افزارهای قدیمی توسط سخت‌افزارهای جدید قابل دسترسی و پشتیبانی نباشند. برای تأمین امنیت دستگاه‌هایی که با قدرت پردازش، حافظه یا ماندگاری باتری محدود هستند مانند آنهایی که به اینترنت اشیا دسترسی دارند، مجموعه رمزنگاری ویژه ای وجود دارد. هر دو در پروژه منبع باز یا کدباز TinyDTLS (یعنی کد و منبعی که قابلیت انجام ویرایش در کد اصلی وجود دارد) پیاده‌سازی شده‌اند. از پیاده‌سازی‌های رمزگذاری شده کلید پیش فرض شده فقط ۱۸۸۹ بایت رم و ۳۸۲۶۶ فلش ROM استفاده می‌شود که نسبت به اکثر الگوریتم‌های رمزگذاری و امنیت بسیار آگاهانه تر است. علاوه بر این، آنها از کلید مشترک یا کلید عمومی خام که از قبل به اشتراک گذاشته شده استفاده می‌کنند و در مقایسه با استفاده اززیرساخت‌های کلید عمومی (PKIX) به فضای حافظه کمتری و قدرت پردازشی کمی نیاز دارند. (یا برعکس) به عبارت ساده یک متن رمزگذاری‌شده توسط یک کلید با الگوریتم مناسب، به متن ساده تبدیل می‌شود. | ## جمع‌بندی | پروتکل TLS: یکی از پروتکل‌هایی است که برای ایجاد ارتباط امن در شبکهٔ اینترنت مورد استفاده قرار می‌گیرد.