رمزگذاری داده ها (Encryption) روشی برای به هم پیوستن دادهها است به طوری که تنها افراد مجاز قادر به درک آن اطلاعات میباشند. از نظر فنی، شامل فرایندی است که متن سادهای که توسط انسان قابل خواندن است را به متنی غیر قابل خواندن، تبدیل میکند.
به عبارت سادهتر، کاری که رمزگذاری انجام میدهد این است که دادههای قابل خواندن را طوری تغییر میدهد که تصادفی به نظر برسند. رمزگذاری مستلزم استفاده از کلید رمزنگاری (Cryptographic Key) است. منظور از کلید رمزنگاری، مقادیر ریاضی است که فرستنده و گیرنده پیام در مورد آن به توافق رسیدهاند.
اگرچه دادههای رمزنگاری شده تصادفی به نظر میرسند، اما در حقیقت رمزنگاری به روشی منطقی و قابل پیشبینی انجام میشود.
در ضمن به گیرنده این امکان را میدهد که پس از دریافت دادههای رمزگذاری شده و با استفاده از کلید مناسب جهت رمزگشایی آنها، دادهها را به یک متن ساده تبدیل کند. قابل ذکر است رمزگذاری کاملا ایمن، از کلیدهای بسیار پیچیدهای استفاده میکند تا هیچ شخص ثالثی نتواند آن را رمزگشایی کند.
کلید رمزنگاری (Cryptographic Key) چیست؟
کلید رمزنگاری، به رشتهای از کارکترها گفته میشود که در الگوریتم رمزگذاری داده ها برای تغییر دادهها مورد استفاده قرار میگیرد، طوری که آنها تصادفی به نظر برسند. درست مانند یک کلید که در را قفل (رمزگذاری) میکند تا فقط کسی که کلید مناسب را دارد، بتواند آن را باز (رمزگشایی) کند.
انواع مختلف رمزگذاری داده ها
دو رمزگذاری اصلی شامل رمزگذاری متقارن (Symmetric) و نامتقارن (Asymetric) میگردد. به رمزگذاری نامتقارن رمزگذاری Public Key نیز گفته می شود.
در رمزگذاری متقارن، فقط یک کلید وجود دارد و گیرنده و فرستنده از همان کلید برای رمزگذاری و رمزگشایی استفاده میکنند. در رمزگذاری نامتقارن یا Public Key، دو کلید وجود دارد: یک کلید برای رمزگذاری استفاده میشود و از یک کلید متفاوت دیگر برای رمزگشایی استفاده میشود.
کلید رمزگشایی به صورت خصوصی نگه داشته میشود، درحالیکه کلید رمزگذاری به صورت عمومی به اشتراک گذاشته میشود. رمزگذاری نامتقارن، یک فناوری بنیادی برای TLS است (غالبا SSL نامیده میشود).
چرا رمزگذاری داده ها لازم است؟
- Privacy: رمزگذاری داده ها تضمین میکند هیچکس به جز افراد مجاز، قادر به خواندن اطلاعات رد و بدل شده نمیباشد. این امر به جلوگیری از رهگیری و خواندن دادههای مهم توسط مهاجمان، شبکههای تبلیغاتی و ارائه دهندگان خدمات اینترنت کمک شایانی میکند.
- Security: رمزگذاری دادهها مانع از نقض دادهها چه در حال انتقال باشند و چه نباشند، میگردد. چنانچه یکی از دستگاههای مربوط به یک شرکت گم شود و یا به سرقت برده شود، به این دلیل که هارد دیسک آن به درستی رمزگذاری شده، اطلاعات آن کاملا ایمن خواهد ماند. به همین ترتیب، ارتباطات رمزنگاری شده امکان تبادل اطلاعات مهم و حساس را بدون نشت دادهها فراهم میکنند.
- Data integrity: رمزگذاری داده ها به جلوگیری از رفتارهای مخرب مانند حملات On Path نیز کمک مینماید. انتقال دادهها از طریق اینترنت به همراه محافظت یکپارچه، این اطمینان را میدهد که گیرنده، دادهها را بدون هیچگونه دستکاری دریافت میکند.
- Authentication: رمزگذاری Public Key را میتوان به منظور اطمینان از این که صاحب وب سایت، کلید خصوصی ذکر شده در TLS certificate را در اختیار دارد. این امر باعث میشود کاربران وب سایت مطمئن باشند که از سایت اصلی بازدید میکنند.
- Regulations: به خاطر تمام دلایل ذکر شده، بنابر مقررات بسیاری از دولتها و صنایع، شرکتهایی که با دادههای کاربران سروکار دارند میبایست آنها را رمزنگاری کنند. نمونههایی از استانداردهای نظارتی و انطباق که نیاز به رمزگذاری دارند، شامل HIPAA ، PCI-DSS و GDPR میباشد.
الگوریتم رمزگذاری چیست؟
الگوریتم رمزنگاری، روشی است که برای تبدیل دادهها به متن رمزدار استفاده میشود. یک الگوریتم برای تغییر دادهها به روشی قابل پیشبینی از کلید رمزگذاری استفاده میکند. به طوری که حتی اگر دادههای رمزگذاری شده به صورت اتفاقی به نظر برسند، بتوان با استفاده از یک کلید رمزگشایی به یک متن ساده تبدیل نمود.
برخی از رایجترین الگوریتمهای رمزگذاری داده ها:
الگوریتمهای رمزگذاری متقارن که بسیار مورد استفاده قرار میگیرند، شامل موارد زیر میگردند:
- AES
- 3-DES
- SNOW
و الگوریتمهای رمزگذاری نامتقارن که بسیار مورد استفاده قرار میگیرند، شامل موارد زیر میگردند:
- RSA
- Elliptic curve cryptography
منظور از حمله Brute Force در رمزگذاری چیست؟
حمله Brute Force، زمانی اتفاق میافتد که مهاجمی که از کلید رمزگشایی بیخبر است، با استفاده از میلیون ها یا میلیاردها حدس، در تلاش برای پیدا کردن کلید میباشد. حملات Brute Force با کمک کامپیوترهای جدید، بسیار سریعتر از قبل شده و به همین دلیل رمزگذاری میبایست بسیار قویتر و پیچیدهتر از گذشته باشد.
اکثر روشهای رمزگذاری مدرن با پسوردهای قوی، در برابر حملات Brute Force مقاوم هستند اما ممکن است در آینده با افزایش قدرت کامپیوترها، در برابر چنین حملاتی آسیبپذیر گردند. قابل ذکر است پسوردهای ضعیف همچنان در معرض حملات Brute Force قرار دارند.
استفاده از رمزگذاری برای ایمن نگه داشتن مرورگر وب
رمزگذاری پایه و اساس بسیاری از تکنولوژیها به شمار میآید، اما برای درخواستهای HTTP و پاسخهای ایمن و همنین احراز هویت سرورهای مبدا وبسایت از اهمیت بیشتری برخوردار است.
پروتکلی که مسئولیت این امر را بر عهده دارد، HTTPS یا Hyper Text Transfer Protocol Secure میباشد. علامت یک قفل در کنار آدرس وب سایتی که به جای HTTP از طریق HTTPS ارائه میشود، مشخص است.
HTTPS از پروتکل رمزگذاری به نام Transport Layer Security یا TLS استفاده میکند. در گذشته پروتکل Secure Sockets Layer یا SSL استاندارد بود، اما TLS جایگزین آن شده است. وب سایتی که HTTPS را روی خود پیادهسازی میکند، یک TLS certificate بر روی سرور مبدا خود نصب میکند.