رمزنگاری
رمزنگاری [Cryptography] به شناخت اصول و روشهای انتقال یا ذخیرهی اطلاعات به صورت امن (حتی اگر مسیر انتقال اطلاعات و کانالهای ارتباطی یا محل ذخیره اطلاعات ناامن باشند) گفته میشود.
رمزنگاری استفاده از تکنیکهای ریاضی، برای برقراری ارتباط امن و دانش تغییر متن پیام یا اطلاعات به کمک یک کلید رمز و با استفاده از یک الگوریتم خاص است، به صورتی که تنها شخصی که از کلید و الگوریتم مطلع است قادر به استخراج اطلاعات اصلی از اطلاعات رمز شده باشد. معادل رمزنگاری برگرفته از لغات یونانی kryptos به مفهوم «محرمانه» و graphien به معنای «نوشتن» است.
رمزنگاری اطلاعات در مصرف روزمره به طرق مختلف استفاده میشود. شاید معمولترین کاربرد رمزنگاری برای کاربران در پروتکلهای مورد استفادهی سایتها و پیامرسانهایی مثل تلگرام، بله و واتساپ باشد. در ادامه در مورد این نوع رمزنگاریها کمی صحبت خواهیم کرد.
سایتهایی که از رمزنگاری استفاده میکنند، معمولا از طریق پروتکل https این کار را انجام میدهند. https مخفف «Hyper Text Transfer Protocol Secure» است. این عبارت به معنای «پروتکل امن انتقال ابرمتن» است. هدف این پروتکل برآورده کردن دو نیاز امنیتی کاربران در هنگام استفاده از اینترنت است:
- نخستین هدف بررسی هویت سایت است. https اطمینان حاصل میکند که مرورگر با همان سایتی مبادله دارد که قرار است داشته باشد. (حداقل هدف همین است. در حال حاضر نمیتوان به این مورد اعتماد کرد.)
- دومین هدف این پروتکل هم مخدوش کردن اطلاعات از دید دیگران است. به این ترتیب اطلاعات شما هنگام استفاده از سایتهایی که از این پروتکل پشتیبانی میکنند؛ (مثل سایت osint.ir) صرفا توسط سایت و مرورگر شما قابل فهم است. در نتیجه فرد دیگری امکان خواندن متون این ارتباط را جایی در میان شبکه ندارد. (هرچند در عمل ممکن است سیستمعامل یا مرورگر شما آلوده باشد. در این صورت بهترین رمزنگاریها هم تأثیر خاصی نخواهند داشت.)
برای رسیدن به این مقصود، این پروتکل از رمزنگاری SSL/TLS استفاده میکند. این رمزنگاری در حال حاضر علاوه بر https در برخی از پروتکلهای ویپیان نیز مورد استفاده است. تاکنون این رمزنگاری چندین ویرایش داشته است. آخرین ویرایش آن در سال 2017 منتشر شد. برای استفاده از این ویرایش تنها کافیست مرورگر خود را به روز کنید. در حال حاضر کروم، فایرفاکس و سافاری (مرورگرهایی که معمولا بیشترین کاربر را دارند) از این رمزنگاری پشتیبانی میکنند.
اینکه در عمل چه اتفاقی رخ میدهد، موضوعی فنی است و خارج از این مطلب. با این حال توجه کنید که تمام مرورگرها در هنگام ورد به یک سایت به شما پروتوکل مورد استفاده را نشان میدهند. علاوه بر نام پروتوکل، مرورگرها میزان امنیت سایت را نیز به شما گوشزد خواهند کرد. برای مثال اگر در یک سایت که از https استفاده میکند، بخشی از محتوای سایت از http (که امن نیست) استفاده کند، مرورگر به شما هشداری خواهد داد مبنی بر این که بخشی از ارتباط امن نیست.
توجه کنید که Https به عنوان یک الگوریتم جهانی استفاده میشود. به این ترتیب فرقی ندارد که از یک تلفن سیمبیانی 10 ساله استفاده کنید یا آخرین نسخهی گوگل پیکسل. فرقی ندارد از کروم استفاده کنید، یا سافاری یا هر مرورگر دیگری. در تمام این تلفنهای همراه سایتها به یک زبان واحد با دستگاه شما صحبت میکنند. توجه کنید این یکسانی در زبان ارتباط به هیچ عنوان برای پیامرسانها صادق نیست.
معمولا پیامرسانهای موبایلی که داعیهی امنیت و حریم خصوصی دارند، مثل Signal، تلگرام و واتساپ از پروتکل امنیتی مخصوص به خودشان استفاده میکنند (در این مورد واتساپ از پروتکل Signal استفاده میکنند.). این موضوع برای بسیاری از این نرمافزارها (مخصوصا تلگرام و واتساپ) به یک ابزار تبلیغ تبدیل شده است. باید توجه کنید که استفاده از نرمافزاری مثل signal، کاربر آنرا به یک بیلبرد با یک نشان «من را تحت نظر بگیرید» تبدیل میکند.
کاربرد رمزنگاری به ارتباطات آنلاین محدود نمیشود. بسیاری از مصارف رمزنگاری (حداقل برای ما در اوسینت) به پنهان کردن محتوای فایلهای مختلف در رایانهها یا سایر فضاهای آفلاین است. شاید سادهترین نوع رمزنگاری از این دست، پسورد گذاشتن روی فایلهای ورد یا اکسل باشد.
در مورد کاربردهای رمزنگاری آفلاین به چند مورد ساده که در بسیاری از پروژهها و فعالیتهای اوسینتی ما مورد استفاده بودهاند، اشاره میکنیم.
رمزنگاری فایلهای حاوی اطلاعات مهم
یکی از بزرگترین اشتباهات امنیتی که میتوانید مرتکب شوید، پنهان نکردن اطلاعات مهم پشت یک دیوار رمزدار است. بیرون کشیدن اطلاعات از چیزی که فکر میکنید سادهتر است. به همین دلیل است که باید اطلاعات مهمی مثل پسوردهایی که در رایانهتان ذخیره کردهاید، اطلاعات مربوط به پروژهی کاری بعدی یا هر چیز مهم دیگری را با پسوردها محافظت کنید.
نرمافزارهای مختلف به طرق مختلفی این کار را انجام میدهند. میتوانید کل یک درایو را با پسورد محافظت کنید. حتما پیش از این کار نیم نگاهی به فیلمهای کسانی که با یک حافظهی یو اس بی از ویندوز رمز دار عبور میکنند، بیندازید. میتوانید از نرمافزارهایی مثل Keepass برای ذخیرهسازی پسوردها و اطلاعات مختلف اکانتهایتان استفاده کنید. میتوانید از نرمافزارهایی مثل Winrar یا 7zip برای فشردهسازی و رمزگذاری روی یک فایل rar یا zip استفاده کنید.
تمام این روشها نقاط ضعف و قوت خود را دارند، اما در نهایت هدف نهایی که «محافظت از اطلاعات» باشد را به خوبی براورده میکنند. مگر آنکه رمزنگاری مناسبی استفاده نشده باشد. برای بررسی اینکه فایل مد نظرتان به خوبی محافظت میشود یا نه، با یک رمز قوی (چیزی مثل ^8v’$\EV#E$HDC5&,o3[*5#*z که حاوی عدد و حرف و علامت است) یک فایل را قفل کنید. بعد همین فایل را با یکی از ابزارهای آنلاین شکستن رمز فایل امتحان کنید. اگر این ابزارها قفل را باز کردند، این نوع قفل کردن فایل را کلا فراموش کنید. ابزارهایی که ذکر شد به راحتی برای فرمتهای معمول مثل zip، xlsx و docx در دسترس هستند.
شکست رمزنگاری در تاریخ بارها اتفاق افتاده است. احتمالا مشهورترین این شکستها، رمزگشایی از کد انیگمای نازیها در زمان جنگ جهانی دوم باشد. این کد با استفاده از دستگاه انیگما تولید میشد. آنطور که محاسبات ریاضی نشان میدهد، این دستگاه 158,962,555,217,826,360,000 حالت مختلف داشت. این عدد به این معناست که یک متن (مثل همین متن که میخوانید) به یکی از این تعداد حالت ممکن بود دربیاید.
شکستن کد مربوطه از سوی ریاضیدان انگلیسی آلن تورینگ، یکی از دلایلی است که نشان میدهد حتی بهترین کدها هم ممکن است شکسته شوند. به همین دلیل هم «هیچ» سیستم امنیتی، شکستناپذیر نیست. چه دو طرف از نظر فناوری در یک سطح باشند (مثل ماجرای کد انیگما). چه دو طرف فاصلهی زیادی با هم داشته باشند (مثل ماجرای RQ-170 آمریکاییها).
تفاوت پنهاننگاری (Steganography) و رمزنگاری (Cryptography):
لغت استگانوگرافی اصلا یونانی است. ترجمهی این عبارت چیزی شبیه به «پنهاننگاری» میشود. آنطور که از شواهد بر میآید، این لغت به شکل Steganographia نخستین بار از سوی یک راهب آلمانی در قرن 15 میلادی استفاده شد.
از همین ترجمه هم مشخص است که هدف پنهاننگاری مخفی کردن پیام است. ممکن است پیام به همان صورت حقیقی و قابل فهم خود استفاده شود، اما در همین حالت نیز طوری پنهان شود که کسی از وجود آن مطلع نباشد. تفاوت رمزنگاری و پنهاننگاری آن است که در رمزنگاری هدف مخفی کردن محتویات پیام میباشد اما در پنهاننگاری هدف مخفی کردن هر گونه نشانهای از وجود پیام است. در مواردی که تبادل اطلاعات رمز شده مشکل است باید وجود ارتباط پنهان گردد.
به عنوان مثال اگر شخصی به متن رمزنگاری شده دسترسی پیدا کند، به هر حال متوجه میشود که این متن حاوی پیام رمزی میباشد. حتی میتوان ادعا کرد که پیامهای رمزنگاریشده بیش از پیامهای رمزنگاری نشده شک برانگیز هستند. مخصوصا اگر هوش انسانی تنها ابزار بررسی این موضوع باشد. اما در پنهاننگاری شخص سوم از وجود پیام مخفی در متن اطلاعی حاصل نمیکند. به همین دلیل در صورت نبود یک سیستم رایانهای، رد کردن پیام پنهان شده از پیام رمزنگاری شده سادهتر است. در موارد حساس ابتدا متن را رمزنگاری کرده، سپس آن را در متن دیگری پنهاننگاری میکنند.
در حال حاضر از استگانوگرافی در پنهانکردن محتوا در صوت، عکس، متن و فایلهای ویدئویی استفاده میشود. به این منظور نرمافزارهای متعددی وجود دارد. یک جستجوی ساده در گوگل نرمافزار Openstego را معرفی میکند. این نرمافزار سبک به سادگی امکان پنهان کردن فایلهای مختلف را در تصاویر فراهم میکند.
به عنوان نمونه یک فایل تکست حاوی متن زیر را در یک تصویر مخفی کردهایم:
A text to be hidden.
can you see it?
این نرمافزار اطلاعات را به صورت watermark در تصاویر ذخیره میکند. به این ترتیب اگر یک تصویر ادیت شود، اطلاعات کاملا از دست خواهد رفت. حتی اگر با همان فرمت و تنظیمات پیشین هم فایل ذخیره شود، اطلاعات از دست میرود.
از سوی دیگر این تکنیک با محدودیت حجم فایل نیز روبرو است. یعنی در یک عکس با ابعاد 500*500 امکان پنهان کردن یک فایل 500 کیلوبایتی وجود ندارد (بزرگترین فایلی که امتحان کردیم، 300 کیلوبایت بود.). دیگر ویژگی مهم این نرم افزار، امکان قرار دادن رمز عبور بر روی فایل است. به این ترتیب اگر میخواهید یک فایل را پنهان کنید و رمز هم رویش بگذارید، این نرم افزار سادهترین گزینه است.
جمعبندی
رمزنگاری و پنهان نگاری تکنیکهای بسیار خوبی برای پنهان کردن و حفظ اطلاعات مهمتان هستند. هر کدام از این تکنیکها نقاط ضعف و قوت خود را دارند. به همین ترتیب هم برای یک نوع کارکرد خاص مناسب هستند.
در صورتی که قصد حفاظت از اطلاعاتی مثل پسوردهایتان را دارید، دور استگانوگرافی و نرمافزارهایش خط بکشید. به جای این ابزارها میتوانید از یک نرمافزار تخصصی برای این کار استفاده کنید. اگر قصد دارید یک فایل مهمِ بزرگ را حفاظت کنید هم همینطور. در این صورت بهترین گزینهی موجود استفاده از ابزاری مثل Winrar و یک پسورد قوی است. طبعا اگر پسورد را فراموش کنید باید با آن فایل خداحافظی کنید.
اما اگر قصد دارید یک فایل کوچک (مثلا همان فایل پسوردهایتان) را برای کسی ارسال کنید، اما به ارتباطتان با اینترنت اعتماد ندارید، یک راه بسیار خوب استفاده از استگانوگرافی است. در این صورت میتوانید اطلاعات مربوط به صدها اکانت را در یک فایل رمزنگاری شده قرار دهید و آن فایل را یک تصویر 500*500 پیکسلی در یک فایل ورد بدون هیچ رمزنگاری خاصی پنهان کنید. در این صورت تا خودتان جار نکشید که «این فایل حاوی پسورد است» کسی متوجه نخواهد شد.