با توجه به اهمیت اطلاعاتی که هر روزه در فضای مجازی مبادله میکنیم، رمزنگاری سرتاسری از جمله مباحثی است که دائماً در سر خط خبرها مشاهده میشود. اما رمزنگاری سرتاسری چیست و چه تفاوتی با سایر انواع رمزنگاری دارد؟
در ادامه مطلب به بررسی کامل این روش رمزنگاری و دلیل اهمیت آن میپردازیم.
رمزنگاری سرتاسری چیست؟
رمزنگاری سرتاسری روشی برای حفاظت ارتباطات کاربران در برابر جاسوسی است. اگر پیامی را بدون رمزنگاری درست و مناسب در اینترنت ارسال کنید، اشخاصی که ارتباط شما را زیر نظر دارند میتوانند محتوای پیام را تشخیص دهند. به این حمله، «حمله مرد میانی» گفته میشود.
به همین دلیل گاهی اوقات در سرویسهای پیام رسان از رمزنگاری سرتاسری (end-to-end یا به اختصار E2EE) برای حفاظت از اطلاعات کاربران استفاده میشود. این کار در همه سرویسهای پیام رسان مهم برای حفاظت از کاربران در برابر جاسوسی انجام میشود.
این سرویسها برای دستیابی به این هدف از روشی استفاده میکنند که پیامهای کاربران را به صورت خودکار رمزنگاری میکند. پیش از آنکه شخصی پیامی ارسال کند، این پیام با استفاده از یک “کلید” رمزنگاری میشود. این کلید باعث ناخوانا شدن متن میشود تا جاسوسها امکان مشاهده محتوای متن را نداشته باشند.
وقتی پیامی به دستگاه مخاطب ارسال میشود، این اپلیکیشن از یک کلید برای رمزگشایی متن پیام استفاده میکند. حالا دریافت کننده میتواند متن پیام را خوانده و درک کند و هکرها هم از این معادله حذف میشوند.
رمزنگاری سرتاسری چه تفاوتی با سایر انواع رمزنگاری دارد؟
شاید این سوال برای شما ایجاد شده باشد که رمزنگاری سرتاسری با سایر روشهای رمزنگاری چه تفاوتی دارد؟ واقعیت این است که اصول و روشهای این تکنیک رمزنگاری به سایر انواع رمزنگاری شباهت دارد اما مهم ترین تفاوت در پاسخ این سوال است که: چه کسی کلیدهای رمزنگاری را در اختیار دارد؟
وقتی از سرویسی استفاده میکنید که E2EE نیست، شاید با استفاده از کلیدی که خود سرویس به شما داده برای دوستتان پیام ارسال کنید. انجام این کار برای پیشگیری از دسترسی هکرها به متن پیامها مفید است اما در این حالت ممکن است گرداننده سرویس به ارتباطات شما دسترسی داشته باشد.
برای توضیح این مسئله میتوان از این مثال استفاده کرد که شما در حال گفتگو با دوستتان هستید و پیام رسان مربوطه به شما اعلام کرده که برای رمزنگاری اطلاعات خودتان از کلید APPLE استفاده کنید. قطعاً هکرها این کلید را در اختیار ندارند اما طراحان این نرمافزارها از آن با خبر هستند. یعنی آنها میتوانند متن شما را رمزگشایی کرده و از محتوای آن با خبر شوند.
وقتی شرکتی از چنین روش رمزنگاری استفاده میکند، بحث اعتماد ایجاد میشود. آیا شما به شرکتی که این اپلیکیشن پیام رسان را مدیریت میکند اعتماد دارید که به پیامهای شما دسترسی پیدا نکند یا ممکن است از همان کلید (در این مثال APPLE) برای رمزگشایی متن پیام شما استفاده کند؟
چنین شرایطی برای رمزنگاری E2EE وجود ندارد. همانطور که از نام رمزنگاری سرتاسری مشخص است، در این روش هر طرف از گفتگو میتواند کلیدهای رمزنگاری را روی دستگاه خودش ایجاد کند. به این ترتیب هیچکس – حتی طراحان این اپلیکیشن پیام رسان – بدون دسترسی فیزیکی به دستگاه قادر به رمزگشایی از ارتباطات شما نیستند.
به همین دلیل رمزنگاری سرتاسری محبوبیت زیادی دارد و بعضی از اپلیکیشنهای ایمیل امن هم از آن استفاده میکنند. در واقع در چنین شرایطی نیازی نیست که به یک شرکت بی نام و نشان یا حتی مشهور اعتماد کنید. چون خود شرکت هم برای دسترسی به پیامهای شما به کلیدهای رمزنگاری نیاز دارد.
روشهای زیادی برای پیاده سازی این الگوریتم وجود دارد اما «رمزنگاری کلید عمومی» و «تبادل کلید دیفی-هلمن» از جمله روشهای شناخته شده و مشهور هستند.
پیاده سازی رمزنگاری سرتاسری با استفاده از رمزنگاری کلید عمومی
وقتی برنامهای از رمزنگاری کلید عمومی استفاده میکند، هر کاربر این سرویس دو کلید دریافت میکند. اولین کلید، کلید عمومی است که همه میتوانند آن را ببینند و میتوان آن را برای همه ارسال کرد اما این کلید فقط امکان رمزنگاری دادهها را دارد نه رمزگشایی آنها را.
هر کاربر یک کلید خصوصی هم دارد که فقط در اختیار خود او قرار گرفته و به صورت دائم روی دستگاه او ذخیره میشود. کلید خصوصی طوری طراحی شده که قادر به رمزگشایی از اطلاعاتی که با کلید عمومی رمزنگاری شده اند باشد. اما کلید خصوصی فقط امکان رمزگشایی از دادهها را دارد و نمیتوان از آن برای رمزنگایی دادهها استفاده کرد.
وقتی دو شخص قصد برقراری ارتباط با یکدیگر را دارند، کلید عمومی را با هم مبادله میکنند سپس پیامهایی که برای شخص مقابل ارسال میکنند را با استفاده از کلید عمومی رمزنگاری میکنند. پس از رمزنگاری دادهها، فقط با کلید خصوصی متناظر با آن میتوان دادهها را رمزگشایی کرد و همانطور که اشاره شد این کلید به صورت خصوصی نزد کاربر باقی میماند.
یک مثال ساده از رمزنگاری کلید عمومی
برای درک راحت تر این سیستم فرض کنید باب و آلیس قصد دارند با هم گفتگو کنند. این دو برای انجام این کار یک جعبه با قفل امنیتی از یک شرکت امنیتی خاص خریداری میکنند که عملکرد آن به این صورت است:
می توان با استفاده از یک کارت خاص این قفل را در حالت قفل یا باز شدن قرار دارد. هر کاربری یک کارت منحصربفرد برای قفل و باز کردن دستگاه دارد. میتوانید یک کپی از کارت “قفل” یک شخص خاص سفارش دهید اما امکان سفارش دادن کارت مخصوص “باز شدن” دستگاه وجود ندارد.
به این ترتیب باب میتواند با دو کارت مخصوص خودش دستگاه را قفل و یا باز کند. آلیس هم دو کارت مخصوص برای قفل و یا باز کردن این سیستم امنیتی دارد.
باب، دستگاه را بسته و با کارت خودش قفل میکند. این جعبه همچنان قفل میماند حتی اگر باب باز هم کارت قفل خودش را وارد دستگاه کند. تنها راه برای باز کردن قفل دستگاه، استفاده از کارت باز کردن قفل مخصوص باب است.
حالا فرض کنید که باب قصد ارسال پیام به آلیس را دارد. او باید یک نسخه از کارت مخصوص قفل آلیس سفارش دهد. شرکت امکان انجام این کار را فراهم کرده چون امکان استفاده از آن برای باز کردن قفل دستگاه وجود ندارد.
باب یک نسخه از کارت قفل آلیس سفارش میدهد. سپس یک نامه برای آلیس مینویسد آن را داخل جعبه قفل قرار میدهد و با استفاده از کارت قفل آلیس، آن را قفل میکند. دستگاه کاملاً قفل شده و فقط با استفاده از کارت مخصوص «باز کردن قفل» آلیس باز میشود. کارت باب قادر به باز کردن قفل دستگاه نیست.
حالا باب میتواند جعبه قفل شده را برای آلیس ارسال کند. حتی اگر شخصی بخواهد کارت قفل آلیس را سفارش داده و دستگاه را سرقت کند باز هم قادر به باز کردن آن نخواهد بود. تنها کارت مخصوص باز کردن قفل آلیس میتواند به باز کردن دستگاه کمک کند و آلیس تنها شخصی است که این قفل را در اختیار دارد.
آلیس جعبه قفل شده را از باب دریافت میکند و از کارت خودش برای باز کردن قفل استفاده کرده و آن را میخواند. اگر آلیس هم بخواهد پیامی ارسال کند میتواند کارت قفل باب را سفارش دهد و جعبه را با این کارت قفل کرده و برای باب ارسال کند. به این ترتیب فقط کارت مخصوص باب قادر به باز کردن قفل دستگاه است.
پیاده سازی رمزنگاری سرتاسری با استفاده از الگوریتم تبادل کلید دیفی-هلمن
اگر دو شخص بخواهند در یک شبکه ناامن از رمزنگاری سرتاسری استفاده کنند میتوانند با یک روش خاص کلیدهای رمزنگاری را به صورت متن ساده با هم به اشتراک بگذارند بدون اینکه هک شوند.
برای انجام این کار هر دو شخص اول باید درباره انتخاب یک کلید عمومی با هم به توافق برسند. این کلید به صورت آزادانه به اشتراک گذاشته شده و در سیستم تبادل کلید دیفی-هلمن فرض بر این است که هکرها میتوانند از این کلید باخبر شوند.
اما بعد از آن هر دو طرف یک کلید خصوصی روی دستگاه خودشان ایجاد میکنند. سپس این کلید خصوصی را به کلید مشترک اضافه کرده و ترکیب را برای گیرنده ارسال میکنند. پس از دریافت این ترکیب، کاربر باید کلید خصوصی خودش را به این ترکیب اضافه کند تا یک کلید خصوصی مشترک برای رمزنگاری به دست آورد.
مثالی ساده از طرز کار الگوریتم تبادل کلید دیفی-هلمن
باز هم به همان مثال آلیس و باب برمی گردیم تا این تکنیک را بررسی کنیم. اول باب و آلیس درباره کلید مشترک با هم به توافق میرسند – فرض کنید این کلید، عدد 3 است. این کار به صورت عمومی انجام میشود در نتیجه فرض بر این است که یک جاسوس یا شنودکننده قادر است به این عدد دسترسی پیدا کند.
سپس باب و آلیس یک عدد به صورت خصوصی انتخاب میکنند. فرض کنید باب عدد 8 و آلیس عدد 5 را انتخاب میکند. سپس عدد انتخابی را به عدد مشترک اضافه میکنند و نتیجه را به اطلاع طرف مقابل میرسانند.
- باب هر دو کلید یعنی کلید مشترک (3) و کلید خصوصی خودش (8) را گرفته و به عدد 11 میرسد (3+8). او عدد 11 را برای آلیس ارسال میکند.
- آلیس کلید عمومی (3) و کلید خصوصی خودش (5) را گرفته و به 8 میرسد (5+3). او عدد 8 را برای باب ارسال میکند.
این به اشتراک گذاری به صورت عمومی انجام میشود پس همانطور که اشاره شد یک هکر یا نفوذگر میتواند باخبر شود که باب عدد 11 و آلیس عدد 8 را به اشتراک گذاشته است.
پس از به اشتراک گذاشتن اطلاعات مشترک، هر طرف عدد دریافتی را با کلید خصوصی خودش جمع میکند. به این ترتیب با توجه به مهم نبودن ترتیب در عملیات جمع، هر دو طرف به یک عدد مشترک میرسند.
- باب عدد ترکیبی آلیس را دریافت میکند (8)، سپس عدد خصوصی خودش را به آن اضافه میکند (8) و به عدد 16 میرسد.
- آلیس عدد ترکیبی باب را دریافت میکند (11)، عدد خصوصی خودش را به آن اضافه میکند (5) و به عدد 16 میرسد.
- حالا هر دو طرف میتوانند با استفاده از کلید (16) که هیچکس به غیر از باب و آلیس از آن مطلع نیست اطلاعات را رمزنگاری کنند.
البته در این مثال هکرها خیلی راحت میتوانند این کد را کرک کنند و تنها باید کلید مشترک، کلید ارسال شده توسط باب و کلید ارسال شده توسط آلیس را دریافت کنند.
اما در واقعیت، برنامه نویسان فرایند تبادل کلید دیفی-هلمن را با فرمولهای پیچیده تری طراحی میکنند که مهندسی معکوس آن برای هکرها بسیار سخت است ولی باز هم صرف نظر از ترتیب، هر دو طرف به یک عدد میرسند.
به این ترتیب هکرها نمیتوانند به اعداد به اشتراک گذاشته شده دسترسی پیدا کنند اما باب و آلیس میتوانند با استفاده از کلید مشترک خودشان به صورت امن با هم گفتگو کنند.
ارسال ایمن دادهها با استفاده از رمزنگاری سرتاسری
نیازی نیست که به یک شرکت خاص اعتماد کرده و اطلاعات خودتان را در اختیار آن قرار دهید. با وجود رمزنگاری سرتاسری هیچ کس قادر به رمزگشایی ارتباطات شما نیست.
امیدواریم که این مطلب به شما برای آگاهی هر چه بیشتری در حوزه امنیت سایبری کمک کرده باشد.