kiana gh
kiana gh
خواندن ۱۲ دقیقه·۴ سال پیش

پنهان‌نگاری - هنر باستانی پنهان کردن پیام

مقدمه

همان‌گونه که می‌دانیم امروزه در معرض انواع حملات دیجیتال هستیم و هر لحظه ممکن است با بدافزارها، ویروس‌ها و غیره روبرو شویم. علاوه‌بر‌این، برخی از بدافزارها ممکن است درون نرم‌افزار دیگری مخفی شوند و به گونه‌ای برنامه‌ریزی شوند که وقتی انتظار آن را نداریم، از آن برنامه حمله‌ای انجام دهند. هکرها برای فریب کاربران، به طور فزاینده از تکنیکی موسوم به پنهان‌نگاری (Steganography) استفاده می‌کنند. استفاده از این روش در مواردی بسیار کاربردی است. برخلاف رمزنگاری (Cryptography) که فایل حفاظت شده را کاملاً حساس جلوه می‌دهد و باعث جلب توجه افراد شود، این روش از ناآگاهی افراد، برای جلوگیری از دستیابی آن‌ها به اطلاعات خاص بهره می‌برد. پنهان‌نگاری، بیش از آن که یک روش خاص برای تحویل داده‌های مخفی باشد، مفهومی است که می‌تواند در انواع حملات مبتکرانه مورد استفاده قرار گیرد.

تاریخچه

پنهان‌نگاری یا همان استگانوگرافی از لغت یونانی استگانوس (پوشاندن) و گرافتوس (نوشتن ) گرفته شده است و تاریخچه استفاده از آن به ۵ قرن قبل از میلاد مسیح و کشور یونان برمی‌گردد. در آن زمان، فردی برای ارسال پیام محرمانه‌ای به شخص دیگر از این روش استفاده کرد که برده‌ای را برای این کار انتخاب کرد و موهای سر برده را تراشید و پیغام محرمانه را بر روی پوست سر برده خالکوبی کرد و سپس مدتی صبر کرد تا موهای فرد رشد کرده و به حالت اول بازگردد و سپس او را به سمت مقصد روانه کرد. در مقصد، گیرنده‌ی پیغام دوباره موهای برده را تراشید و پیغام را بر روی پوست سر او مشاهده کرد. در همان دوره زمانی، شکل اولیه پنهان‌نگاری استفاده شد. در این روش پیامی را که به منظور هشدار هجوم از سمت پادشاهی بود، روی چوب قرص مومی حک شده و سپس با یک لایه تازه از موم پوشانده شده بود. پنهان‌نگاری با گذشت زمان ادامه یافت و به سطح جدیدی رسید. در زمان جنگ از شیر، سرکه، آب‌میوه به عنوان جوهرهای نامرئی (Invisible ink) استفاده می‌شد و برای رمزگشایی موارد پنهان این نوع پیام‌ها به نور یا گرما نیاز بود. در طول جنگ‌ جهانی دوم آلمانی‌ها از روشی موسوم به ریزگردها (Microdots) برای کاهش اندازه تمام اسناد، عکس‌ها و نقشه‌ها استفاده می‌کردند که اندازه اسناد را بسیار کوچک و قابل حمل تنها با یک برگه کاغذ می‌کرد. از دیگر روش‌های مورد استفاده، رمزهای تهی (Null Ciphers) بود که از پنهان‌کردن پیام رمزنگاری نشده در یک پیام به ظاهر معمولی استفاده کرده و پیام خود را در داخل یک متن به صورت پراکنده پنهان می کردند.

تصویر 1. دوربین کوچک برای خواندن متن‌های پنهان شده در صفحات کاغذی، مورد استفاده در جنگ‌جهانی دوم
تصویر 1. دوربین کوچک برای خواندن متن‌های پنهان شده در صفحات کاغذی، مورد استفاده در جنگ‌جهانی دوم


پنهان‌نگاری چیست؟

پنهان‌نگاری (Steganography) هنر و علم قرار‌دادن پیام‌های مخفی در یک پیام پوششی است، به طریقی که فرد دیگری جز فرستنده و گیرنده آن پیام به وجود پیام مخفی شک نکند. با پنهان‌نگاری می توان امکان ارسال اخبار و اطلاعات بدون سانسور و بدون ترس از رهگیری پیام ها را، فراهم کرد. همچنین برای ذخیره اطلاعاتی مانند اطلاعات بانکداری خصوصی و یا برخی اسرار نظامی کاربرد دارد. در معاملات تجارت الکترونیک نیز برای احراز هویت افراد می تواند قابل استفاده باشد. همان‌گونه که در تصویر 2 مشاهده می‌شود، پیام پوششی و پیام مخفی هر دو به عنوان ورودی وارد رمزنگار می شوند. تابع بخش رمزنگار پیام پنهان را در فایل پوششی قرار می‌دهد. نتیجه کار یک پیام نهایی (حامل) می‌باشد که بسیار شبیه فایل پوششی بوده و هیچ تغییر قابل مشاهده‌ای ندارد و این کار باعث تکمیل فرآیند رمزنگاری می‌شود. برای بازیابی و دیدن پیام مخفی پیام نهایی وارد رمزگشای پنهان‌نگاری می‌شود .

تصویر 2. نحوه ی کارکرد پنهان نگاری
تصویر 2. نحوه ی کارکرد پنهان نگاری

مقایسه پنهان‌نگاری و رمزنگاری

به طور کلی هدف هر دو روش، حفاظت از اطلاعات می‌باشد. روش‌های پنهان‌نگاری وجود یک پیام را پنهان می‌کنند اما ساختار اطلاعات را تغییر نمی‌دهند، درحالیکه روش‌های رمزنگاری باعث می‌شوند تا با تحولات مختلف، پیام غیر‌قابل‌درک برای افراد دیگر باشد و اگر فردی پیام رمزگذاری شده را رهگیری کند، به راحتی به وجود نوعی رمزگذاری پی میبرد. علاوه بر این پنهان نگاری باعث ایجاد سربار نیز میشود. ویژگی های این دو روش در جدول زیر مقایسه شده است.

       جدول 1. مقایسه رمزنگاری و پنهان نگاری
جدول 1. مقایسه رمزنگاری و پنهان نگاری

انواع روش‌ها و تکنیک های پنهان‌نگاری

سه تکنیک کلی برای پنهان نگاری وجود دارد که میتوان در انواع مختلف پنهان نگاری بهره برد.

روش جایگزینی (Substitution): در این روش بیت های کم ارزش در فایل حامل، با بیت های داده های مخفی، جایگزین می شوند. بیت های کم ارزش آن دسته از بیت ها هستند که می توانند بدون آسیب رساندن به کیفیت یا از بین بردن تمامیت فایل حامل تغییر یابند.

روش افزودن (Insertion): در این روش، اطلاعات مخفی مورد نظر در بخش هایی ذخیره می شوند که توسط پردازشگر نادیده گرفته می شوند. به عنوان مثال، در برخی از فایلها نشانگر EOF یا پایان فایل وجود دارد. این نشانگر به برنامه ای که در حال خواندن فایل است نشان می دهد که به انتهای آن رسیده است و برنامه می تواند پردازش را متوقف کند. اطلاعات پنهان می توانند پس از نشانگر EOF وارد شوند. در این صورت، کاربر نهایی حتی نمی تواند متوجه شود که فایلی حاوی اطلاعات پنهان است.

تولید (Generation): این روش، بر مبنای تولید داده ها را برای مخفی کردن و ایجاد مجموعه جدیدی از داده از همان داده های قبلی می باشد. در واقع این تکنیک، یک روش پویا برای ایجاد یک فایل حامل بر اساس اطلاعات موجود در داده ها برای مخفی کردن می باشد.

انواع روش های پنهان نگاری به شرح زیر است.

  1. پنهان‌نگاری متن: این روش، تکنیک پنهان کردن اطلاعات داخل فایل متنی میباشد که شامل مسائلی مانند تغییر فرمت متن، تغییر کلمات در متن، تولید تصادفی و ترتیبی کاراکتر یا استفاده از گرامر مستقل از متن برای تولید متن های خوانا می شود.
  2. پنهان‌نگاری ویدیو: در این روش که میتوان آن را ترکیبی از پنهان‌نگاری تصویر و صدا تلقی کرد، انواع داده را در فایل دیجیتالی فیلم قرار میدهند. مزیت این مدل آن است که حجم زیادی از داده را می توان در آن پنهان کرد.
  3. پنهان‌نگاری شبکه: در این تکنیک داده ها را در پروتکل های کنترل کننده شبکه مانند TCP,UDP,ICMP قرار می دهند. از استگانوگرافی می توان در بعضی از کانال های پنهانی مدل OSI استفاده کرد. برای مثال می توان داده را در بخش های اختیاری در هدر یک پکت TCP/IP پنهان کرد
  4. پنهان‌نگاری تصاویر: در پنهان‌نگاری دیجیتال به دلیل استفاده از تعداد زیادی بیت در نمایش دیجیتالی تصویر، به طور گسترده ای از عکس ها استفاده می شود. یکی از تکنیک‌های معروف پنهان‌نگاری استفاده از کم‌ارزش‌ترین بیت داده‌ها (Least Significant Bit) می‌باشد که زیر مجموعه تکنیک های جایگزینی محسوب میشود. در این روش، داده‌های مورد نظر در کم ارزش‌ترین بیت قرار می‌گیرند. همانطور که میدانیم تصاویر از پیکسل هایی تشکیل شده اند که معمولاً به رنگ آن پیکسل خاص اشاره دارند. در یک تصویر مقیاس خاکستری (سیاه و سفید)، این مقادیر پیکسل از 0-255 متغیر است که 0 بیانگر رنگ سیاه و 255 بیانگر رنگ سفید است. ایده اصلی LSB این است که اگر آخرین مقدار بیت پیکسل را تغییر دهیم، تغییر رنگ قابل توجه نخواهد بود. به عنوان مثال، اگر پیکسلی با مقدار 0 که بیانگر رنگ سیاه است را تغییر و برابر مقدار 1 قرار دهیم، تفاوت زیادی نخواهد داشت چرا که هنوز رنگ غالب آن پیکسل سیاه است و فقط کمی سایه روشن تر می باشد. مراحل انجام این روش به شرح زیر است:
  5. تبدیل تصویر اصلی به تصویر سیاه و سفید.
  6. تغییر اندازه ی تصویر در صورت لزوم.
  7. تبدیل پیام به فرمت دودویی (باینری) آن.
  8. ایجاد یک تصویر خروجی همانند تصویر ورودی
  9. انجام مراحل زیر به ازای هر پیکسل تصویر تا زمانی که تمام بیت های موجود در پیام جاسازی شوند :
    • تبدیل مقدار پیکسل به دودویی (باینری).
    • دریافت بیت بعدی پیام را برای جاسازی.
    • ایجاد متغیر موقت (temp).
    • اگر بیت پیام و کم‌ارزش‌ترین بیت (LSB) پیکسل یکسان بودند:
temp = 0
    • اگر بیت پیام و کم‌ارزش‌ترین بیت (LSB) پیکسل متفاوت بودند:
temp = 1 ( مقدار دهی متغیر temp با استفاده از XOR بر روی بیت پیام و LSB پیکسل قابل انجام است)
    • به روزرسانی پیکسل تصویر خروجی
پیکسل خروجی = پیکسل تصویر ورودی + temp
تصویر3. نمونه ای از استفاده از کم ارزش ترین بیت برای پنهان نگاری
تصویر3. نمونه ای از استفاده از کم ارزش ترین بیت برای پنهان نگاری


5. پنهان‌نگاری صدا: در این روش، پیام مخفی داخل سیگنال صوتی که ترتیب باینری فایل صوتی را تغییر میدهد، قرار داده می شود. پنهان کردن پیام مخفی در یک سیگنال صوتی به مراتب سخت تر از بقیه انواع پنهان‌نگاری می باشد. این روش می تواند پیام را در فایل های صوتی WAV ، AU و حتی MP3 تعبیه کند.

تصویر4. حالت کلی مدل پنهان نگاری صدا
تصویر4. حالت کلی مدل پنهان نگاری صدا

فرایند پنهان سازی از دو مرحله تشکیل شده است. مرحله اول، شناسایی بیت های افزونه (Redundant) میباشد. ین بیت ها به بیت هایی اطلاق میشود که بدون پایین آوردن کردن کیفیت فایل، قابل تغییر هستند. مرحله ی دوم شامل تعبیه کردن بیت های مخفی مورد نظر در فایل و پیام پوششی میباشد. یکی از روشهای پنهان نگاری صدا، مخفی کردن پیام در بازه های بی صدا (Hiding in Silence Interval) میباشد در این روش با افزودن بازه هایی بی صدا در فایل صوتی، داده را مخفی میکنند. مقادیری که بیانگر طول بازه های سکوت هستند، به وسیله یک متغیر (variable) طبق رابطه ی زیر کاهش داده میشوند.

که در آن n تعداد بیت هایی هست که برای نمایش یک جز از داده ی مخفی مورد نیاز است. سپس فایل صوتی جدید که دارای بازه های سکوت با طول متفاوتی نسبت به نسخه اولیه خود دارد، به گیرنده ارسال میشود.

به عنوان مثال، اگر بخواهیم عدد 6 را در بازه ی سکوت با طول 109 پنهان کنیم، 7 نمونه از این فاصله را حذف می کنیم. بنابراین طول بازه ی سکوت در نمونه جدید برابر 102 خواهد شد. برای استخراج داده پنهان از سیگنال، 6=(102,8)mod را محاسبه می کنیم. در این روش، بازه های سکوتی که کوتاه هستند بدون تغییر باقی می مانند زیرا آنها معمولاً در جملات به صورت مداوم اتفاق می افتند و تغییر آنها ممکن است بر کیفیت گفتار تأثیر بگذارد. این روش از شفافیت ادراکی خوبی برخوردار است اما بدیهی است که به فشرده سازی حساس است.

نتیجه گیری

پنهان‌نگاری (Steganography) روشی است که در آن پیام های مخفی در یک قالب پوششی، که به ظاهر بی اهمیت میباشد، قرار میگیرند. پنهان‌نگاری تصویر دیجیتال و مشتقات آن در حال استفاده هستند و مانند سایر نوآوریهای عصر دیجیتال، نبرد بین رمزنگاری و حملات آن، کارشناسان امنیتی و هکرها ، پنهان‌نگاری و حملات پنهان نگاری به طور مداوم تکنیک های جدیدی را برای مقابله با یکدیگر ایجاد می کنند. در این نوشته به بررسی تاریخچه و انواع مختلف روش ها و تکنیک های پنهان نگاری پرداختیم و تفاوت های آن را با روش های رمزنگاری مقایسه کردیم. در آینده نزدیک مهمترین کاربرد پنهان‌نگاری، به احتمال بسیار ارائه ی تکنیک هایی در زمینه علامت گذاری (Watermarking) دیجیتال خواهند بود. از آنجا که ارائه دهندگان محتوا مشتاقانه از آثار با حق چاپ خود، محافظت می کنند، علامت های دیجیتال راهی برای ردیابی توزیع غیر قانونی برای صاحبان آثار فراهم می کنند. هرچند ممکن است پنهان نگاری طبق قوانين جدیدی در بسیاری از کشور ها، محدود شوند چرا که بسیاری از مجرمان از این تکنیک ها برای برقراری ارتباط استفاده می کنند.

منابع

اگر به این موضوع علاقمند هستید می‌توانید از این کتاب کمک بگیرید.

http://www.inf.ufsc.br/~bosco/ensino/ine5680/material-cripto-seg/2014-1/Stallings/Stallings_Cryptography_and_Network_Security.pdf

در صورتیکه می‌خواهید موارد مشابه و تکنیک های بیشتری را ببینید به این نوشته مراجعه کنید.

https://www.hindawi.com/journals/scn/2017/9130683/

در صورتیکه می‌خواهید با انواع حملات پنهان نگاری آشنا شوید به این نوشته مراجعه کنید.

https://www.ijcaonline.org/volume9/number7/pxc3871887.pdf

این لینک نیز توضیحات جامعی در مورد تفاوت های رمزنگاری و پنهان نگاری دارد.

https://techdifferences.com/difference-between-steganography-and-cryptography.html

لینک های زیر نیز به مقایسه انواع روش های پنهان نگاری صدا می پردازند.

https://core.ac.uk/download/pdf/25870269.pdf
https://arxiv.org/ftp/arxiv/papers/1212/1212.2207.pdf


این مطلب در راستای درس رمزنگاری و امنیت در دانشگاه تحصیلات تکمیلی علوم پایه زنجان نوشته شده است.
پنهان نگاریsteganography
شاید از این پست‌ها خوشتان بیاید