رمزگشایی یا Decryption، تکنیکی است که در امنیت سایبری از آن استفاده میشود. در پروتکلهای جدید انتقال اطلاعات بر بستر وب (پروتکل https )، تمامی اطلاعات بهصورت رمزنگاری شده ردوبدل میشوند و برای بازگشایی این رمزها، باید از ابزارهای مناسب استفاده کرد و این دقیقاً همان وقتی است که بازی بینِ توسعه دهنده و هکر آغاز میشود؛ از یک طرف چالش هکرها این است که به طریقی غیرمجاز، به اطلاعات کاربران اینترنت دسترسی پیدا کرده و با رمزگشایی به محتویات آن دست پیدا کنند و از طرف دیگر، تیمِ امنیتی وب سایت و توسعه دهندگان وب همواره میخواهند تا کاری کنند که هکرها به این هدف دست پیدا نکنند. در این مقاله از وب سایت آکادمی SSL میخواهیم در مورد رمزگشایی صحبت کنیم. این مقاله در مورد جزئیات جذابی از این مقوله، شامل مفاهیم اساسی رمزگشایی، انواع آن و مزایای هر یک توضیح خواهد داد.
معنی رمزگشایی (Decryption) به بیانِ ساده
اگر بخواهیم معنی و مفهوم رمزگشایی را بهصورت خیلی ساده توضیح دهیم، باید بگوییم به عملیاتی که در آن دادههای رمزنگاری شده به شکلِ اصلی خود تبدیل میشوند، «رمزگشایی یا Decryption» گفته میشود. در این پروسه، دادههای مخدوش توسط سیستم استخراج شده و تبدیل به متنها و تصاویری میشود که بهراحتی توسط کاربر یا سیستم، قابل درک است.
در واقع رمزگشایی همان معکوس عملیات رمزنگاری است که برای جلوگیری از نظارت اطلاعات مورد استفاده قرار میگیرد. نکتهی دیگری که باید در نظر داشته باشید این است که عملیات رمزگشایی میتواند هم بهصورت دستی و هم بهصورت خودکار انجام شود و در هر دو، به کلیدهای کدگذاری نیاز است.
حالا اگر فردی هم بخواهد بهصورت قانونی به اطلاعات کُدگذاری شده دسترسی داشته باشد (یعنی گیرندهی اصلی پیام، خودِ او باشد) باز هم نیاز به ابزاری دارد که این اطلاعات از حالت کُد شده خارج شوند. این ابزار میتواند نرمافزار، کلیدهای منحصربهفرد، کُدهای نوشته شده با استفاده از زبانهای برنامهنویسی، رمزهای عبور و … باشد. همچنین در نظر داشته باشید که انواع مختلفی از دادهها، از متن ساده گرفته تا عکس، ایمیل، دایرکتوریها، فایلهای مختلف و … میتوانند بهصورت کُدگذاری شده درآیند.
این قسمت را با چند اصطلاح مهم به پایان برسانیم؛ به دادههای ساده و کُدگذاری نشده «قالب اصلی» متن (Plaintext) و به دادههای کُدگذاری شده و ناخوانا، «متن رمزنگاری» (Ciphertext) گفته میشود. طرفین انتقال اطلاعات، یعنی فرستنده و گیرنده نیز از یک طرح رمزگذاری بهنامِ «الگوریتم و کلیدها» برای رمزگذاری و رمزگشایی اطلاعات استفاده میکنند. الگوریتم رمزگشایی نیز بهنامِ Cipher شناخته میشود.
چرا رمزگشایی ضروری است؟
دادهها در شبکهی جهانی وب همیشه میتوانند در معرض دسترس افراد غیرمجاز باشند. بنابراین لازم است تا برای حفظ امنیت، این اطلاعات رمزنگاری شوند و البته دادهی رمزنگاری شده وقتی به مقصد اصلی میرسد، باید رمزگشایی شود تا قابلاستفاده باشد.
در ادامه به چند دلیل مهم برای عملیات Encryption یا رمزگذاری اطلاعات و Decryption یا خواهیم پرداخت:
- این موضوع میتواند به امنیت اطلاعات ورودی از جمله اطلاعات حساب کاربری افراد کمک کند.
- به محرمانه ماندن دادهها و اطلاعات خصوصی کمک میکند.
- با استفاده از این موضوع میتوان اطمینان حاصل کرد که یک رکورد یا فایل کاملاً بدون تغییر باقی مانده است.
- از سرقت ادبی جلوگیری میکند.
- از IP محافظت میشود.
و …
در پروسهی کدگشایی، طرف مقصد که مسئولیت رمزگشایی دادهها را بر عهده دارد یک درخواست یا پنجره برای ورود رمز عبور دریافت میکند تا بتواند به اطلاعات بهصورت قالب اصلی، دسترسی پیدا کند.
یکی از مهمترین فرآیندها در این مبارزهی نفسگیر، توسعهی مداوم الگوریتمها برای رمزگذاری ایمن است. سازمانهایی این کار را انجام میدهند که مسئولیت سنجش میزان امنیت سایبری یک وبسایت را بر عهده دارند.
یکی از پیشروترین سازمانها در الگوریتمهای رمزگشایی، آژانسهای فدرال و ISVها هستند که از الگوریتمهای رمزگشایی داخلی یا اِستِگانوگرافی برای ارائهی شبکههای کلید در دست (Turnkey) استفاده میکنند. این الگوریتمها این امکان را به آنها میدهد تا عملیات رمزگشایی را رویِ چندین رایانه در کلِ شرکت ارائه دهند.
انواع حالات رمزگشایی
یکی از الگوریتمهای ثابت برای کُدگذاری و کُدبرداری، استفاده از یک جفت کلید است. هر یک از این کلیدها برایِ رمزگذاری و رمزگشایی مورد استفاده قرار میگیرند. در ادامه برخی از مهمترین الگوریتمهایی که در این پروسه مورد استفاده قرار میگیرند، معرفی شدهاند:
1- Triple DES
هنگامی که هکرها توانستند به سطحی دست یابند که از الگوریتمهای DES عبور کنند، Triple DES یا همان DES سهگانه برای مقابله با آنها طراحی شد. DES مخفف عبارت Data Encryption Standard به معنایِ الگوریتم استاندارد رمزگذاری است و هر یک از سه کلید 56 بیتی استفاده میکنند. اگر چه استفاده از Triple DES به تدریج حذف شد، اما با این حال، همچنان یکی از روشهای کارآمد رمزگذاری و رمزگشایی ایمن برای سختافزارها در صنایع مختلف تلقی میشود.
2- RSA
RSA یک الگوریتم رمزگذاری-رمزگشایی برای کلیدهای عمومی است و بهعنوان یک رویکرد در برنامههای PGP و GPG تلقی میشود. RSA را میتوان یک الگوریتم نامتقارن در نظر گرفت. دلیلِ آن هم این است که بر خلافِ Triple DES، از یک جفت کلید استفاده میکند. نکتهای که در این قسمت باید به آن توجه کرد این است که در الگوریتمها، کلید عمومی برای رمزگذاری و کلید خصوصی برایِ رمزگشایی مورد استفاده قرار میگیرد.
3- Blowfish
روش Blowfish نیز برای جایگزینی DES ساخته شد. پیامها توسط این سیستم رمزگذاری متقارن به بلوکهای 64 بیتی شکسته شده و بهصورت جداگانه کُدگذاری میشوند. Blowfish سرعتی باورنکردنی و عملکردی بدون شکست دارد و رایگان بودنِ آن نیز باعث شده است تا بتوان از آن در حوزههای عمومی استفادههای زیادی کرد.
4- Twofish
Twofish در واقع یک جایگزین برای Blowfish است. طول کلید مورد استفاده در این روش، میتواند تا 256 بیت باشد و البته تنها یک کلید میتواند بهعنوان یک تکنیک متقارن، کافی باشد. Twofish یکی از سریعترین روشها در نوعِ خود است که میتواند هم در حوزهی نرمافزاری و هم در حوزهی سختافزاری کارآمد باشد. همچنین همانندِ Blowfish، استفاده از Twofish نیز رایگان است.
5- AES
اگر چه AES در فُرم 128 بیتی خود بسیار کارآمد است، اما همچنین میتوان از کلیدهای 192 و 256 بیتی برای رمزگذاری دادههای سنگینتر استفاده کرد.
اعتقاد عمومی بر این است که AES در برابر تمامی حملات بهجز Brute Force که میتواند پیامها را با استفاده از تمامی ترکیباتِ سیستمهای رمزنگاری 128، 192 و 256 بیتی رمزگشایی کند. با این حال کارشناسان امنیت سایبری اعتقاد دارند که AES میتواند بهعنوان یک استاندارد واقعی برای رمزنگاری دادهها در نظر گرفته شود.
رمزگشایی چگونه کار میکند؟
برایِ درکِ دقیقتر نحوهی عملکرد رمزگشایی، بهتر است یک نسخهی پشتیبانِ Veeam را در نظر بگیریم. Veeam یک نرمافزار کاربردی برای پشتیبانگیری از ماشینهای مجازی است. هنگامِ تلاش برای بازیابی اطلاعات از یک بکآپ تهیه شده با Veeam، یک فایل پشتیبانِ رمزگذاری شده و همچنین یک Replication، عملیات رمزگشایی را در پس زمینه، بهصورتِ کاملاً خودکار انجام میدهند.
این روند ممکن است بدون نیاز به کلید یا با نیاز به آن باشد. توضیح اینکه اگر برای دسترسی به فایل پشتیبان نیاز به رمزگذاری داشته باشیم، در صورتیکه پایگاه داده با پیکربندی Replication و همچنین پشتیبانگیری Veeam در دسترس باشند، کلید دیگری لازم نیست. بهعبارت دیگر در این روش اطلاعات در پسزمینه قابل دسترسی است و در اینصورت بازیابی اطلاعات با اطلاعات رمزگذاری شده تفاوت آنچنانی ندارد.
اطلاعات خودکار نیز در صورتِ رعایت شرایط زیر قابل دسترسی هستند:
- فایل پشتیبان باید روی یک سرور پشتیبان مشابه دیگر که از پایگاه داده با پیکربندی Replication و بکآپگیری Veeam استفاده میکند، رمزگذاری شود.
- فایل پشتیبان نباید از Replication Console و Backup Veeam حذف شود.
- اگر رمزهای عبور از پایگاه داده با پیکربندی Replication و پشتیبانگیری Veeam قابل دسترسی نیستند، برای دسترسی به فایل رمزگذاری به یک کلید نیاز است.
- هنگامی که اطلاعات از مبدأ قابل دسترسی است، تمامی دادههای بعدی از نقطهی مقصد به عقب منتقل میشوند. در نتیجه با توجه به اینکه رمزهای عبور رمزگذاری از نقطهی مبدأ به عقب منتقل نمیشوند، میتوان از شنود اطلاعات جلوگیری کرد.
در فرآیند زیر، تسکهایِ VeeamZIP، رویههای بکآپگیری و همچنین کپی پشتیبانها ارائه گردیده است:
- یک فایل به سرور پشتیبانی ارسال میشود. Replication و Veeam Backup اعلانی ارسال میکنند که نشان میدهد فایل رمزگذاری شده است و به کلید نیاز دارد. در این قسمت کلید باید وارد شود. حتی اگر رمز عبور یک یا چندین بار هم عوض شده باشد کلید باید به روش بعدی ذکر شود:
روش اول: برای وارد کردن یک فایل .vbm، باید کلید فعلی که برای رمزگذاری فایل در زنجیرهی پشتیبان استفاده شده است، ذکر شود.
روش دوم: برای وارد کردن یک فایل کامل پشتیبان، مجموعهی کاملی از کلیدهای مورد استفاده برای رمزگذاری فایلها در زنجیرهی پشتیبان مورد نیاز است.
- Replication و Veeam Backup رمز عبور ارسالشده را بررسی میکنند و کلید کاربر را بر اساسِ رمز عبور تولید میکنند. با دسترسی به کلید کاربر، نسخهی پشتیبان Replication و Veeam رمزگشایی را شروع خواهد کرد:
- Replication و Veeam Backup از کلید کاربر برای رمزگشایی کلید ذخیرهسازی (Storage Key) استفاده میکنند.
- حافظه شامل کلیدهای Session اصلی و یک کلید Meta است.
- کلید Session بلوکهای داده را رمزگشایی میکند.
- در نهایت فایل رمزگذاری شده را میتوان باز کرد.
مزایا و معایب Decryption
اگر چه استفاده از رمزگشایی میتواند به دلایل مختلفی انجام شود، اما با این حال حفاظت کافی بر اطلاعات یکی از مزایا و اهداف کلیدی است که برای این منظور تعریف شده است. متخصصان امنیت سایبری از این روش برای جلوگیری از نفوذ به اطلاعات محرمانه استفاده میکنند. همچنین رمزگشایی به سازمانها کمک میکند تا مدیریتی روان داشته باشند.
با این حال همین موضوع میتواند مثل شمشیر، دو لبه داشته باشد. موضوع و نگرانی اصلی در این میان، حفظ حریم شخصی دادهها است. بهعنوان نمونه کارمندی را در نظر بگیرید که بهصورت اتفاقی به یکی از ایمیلها یا حساب بانکی خود وارد شده است. اگر کلیدها بهقدر کافی قوی در نظر گرفته نشده باشند، این امکان وجود دارد که هر لحظه شاهد یک فاجعهی امنیت سایبری باشیم.
بهعبارت دیگر هنگامی که پروسهی رمزگشایی در حالِ انجام است، حریم خصوصی برای کاربران نهایی به نوعی لغو میشود. یک کارمند ازهمهجابیخبر ممکن است بدون اینکه قصد افشای اطلاعاتی را داشته باشد، ناخواسته ترافیک شبکهی خود را در همین راستا استفاده کند.
تفاوت میان رمزگذاری و رمزگشایی
در جدول زیر به برخی از تفاوتهای ماهوی و البته تکنیکال میانِ Encryption و Decryption اشاره شده است:
رمزگشایی ( Decryption ) | رمزنگاری ( Encryption ) | |
---|---|---|
تعریف | فرآیند تبدیل دادهها غیرقابل خواندن (رمزگذاری شده) به شکل اصلی آن بهطوری که کاربران مجاز بتوانند آن را بخوانند | فرآیند تبدیل دادههای معمولی به فرمت غیرقابل نظارت برای جلوگیری از دسترسی غیرمجاز به دادههای حساس |
روند | گیرندهی دادهها بهصورت اتوماتیک، دادههای رمزگذاری شده را به شکل اصلی خود تبدیل میکند | هر زمان که دادهها بینِ دو ماشین جداگانه منتقل میشوند، بهصورت خودکار و با استفاده از یک کلید امنیتی رمزگذاری میشوند |
محل تبدیل | کاربری که دادههای رمزگذاری شده را دریافت و تبدیل به دادههای رمزگشایی شده میکند | کاربری که دادههای رمزگذاری شده را به مقصد ارسال میکند |
مثال | دریافت اسناد رمزگذاری شده از یک Source و رمزگشایی آن برای خواندن | ارسال اسناد حساس به کاربر |
استفاده از الگوریتم | یک الگوریتم واحد برایِ رمزگذاری استفاده شده و رمزگشایی با یک جفت کلید که هر یک از آنها برای رمزگذاری و رمزگشایی مورد استفاده قرار میگیرند، انجام میشود | فرآیند رمزگذاری – رمزگشایی از همان الگوریتم و از همان کلید استفاده میکند. |
عملکرد اولیه | تبدیل یک پیام مبهم به شکل قابل رمزگشایی که برای انسان قابل درک باشد. | تبدیل پیامهای قابل رمزگشایی به شکلی نامفهوم بهگونهای که قابل تفسیر نباشد |
نتیجه گیری
رمزگذاری و رمزگشایی، هر دو از قابلیتهای کلیدی در فرآیند رمزنگاری هستند. دادهها با استفاده از رمزنگاری بهصورت ایمن بین مبدأ و مقصد منتقل میشوند. بهصورت خیلی ساده، هنگامی که کاربر یک سندِ رمزگذاری شده را از یک منبع دریافت میکند، برایِ اینکه بتواند از محتویات آن استفاده کند، باید عملیات رمزگشایی را روی آن انجام دهد. در غیر این صورت، آنچه که دریافت کرده است، صرفاً یک سری اطلاعات بیمفهوم و مبهم خواهد بود. در این مقاله از بلاگ آکادمی SSL در مورد رمزگشایی و تفاوت آن با رمزگذاری صحبت کردیم و اطلاعاتی را که در این مورد به آن نیاز دارید، توضیح دادیم.
سؤالات متداول
- رمزگذاری یعنی چه؟
یکی از اولین مراحل در فرآیند رمزنگاری دادهها، رمزگذاری است. در این مرحله، اطلاعات ارسال شده و مفهومِ کاربر، به یک سری اطلاعات نامفهوم و مبهم تبدیل میشود.
- رمزگشایی یعنی چه؟
هنگامی که دریافت کنندهی اصلی، به اطلاعات دسترسی پیدا کرد، زمان رمزگشایی است. در این مرحله باید اطلاعات مبهم به اطلاعات اصلی و واضح تبدیل شوند. این کار را رمزگشایی میگویند.
- رمزنگاری چطور انجام میشود؟
اگر بخواهیم خیلی ساده موضوع را عنوان کنیم، عملیات رمزگذاری با استفاده از یک سری الگوریتمهای پیچیده انجام میشود. همچنین عملیات رمزگشایی نیز با استفاده از کلیدهایی که در واقع جوابِ حل مسئله هستند، انجام میشود.
- چگونه رمزنگاری و رمزگشایی را برای سایتمان فعال کنیم؟
شما با خرید گواهی ssl برای سایتتان، میتوانید این پروسه را بصورت اتوماتیک فعال نمایید. با این قابلیت عملیات Encryption و Decryption بین سرور سایت و مرورگر کاربر، صورت خواهد گرفت.
- کلیدهای رمزنگاری چند نوعند؟
بهطور کلی دو نوع کلید در عملیات رمزنگاری مورد استفاده قرار میگیرد: کلید عمومی و کلید خصوصی. کلیدهای عمومی فقط برای رمزگذاری دادهها مورد استفاده قرار میگیرند اما کلیدهای خصوصی میتوانند هم برای رمزگذاری و هم برای رمزگشایی استفاده شوند.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.