مقدمه
همانگونه که میدانیم امروزه در معرض انواع حملات دیجیتال هستیم و هر لحظه ممکن است با بدافزارها، ویروسها و غیره روبرو شویم. علاوهبراین، برخی از بدافزارها ممکن است درون نرمافزار دیگری مخفی شوند و به گونهای برنامهریزی شوند که وقتی انتظار آن را نداریم، از آن برنامه حملهای انجام دهند. هکرها برای فریب کاربران، به طور فزاینده از تکنیکی موسوم به پنهاننگاری (Steganography) استفاده میکنند. استفاده از این روش در مواردی بسیار کاربردی است. برخلاف رمزنگاری (Cryptography) که فایل حفاظت شده را کاملاً حساس جلوه میدهد و باعث جلب توجه افراد شود، این روش از ناآگاهی افراد، برای جلوگیری از دستیابی آنها به اطلاعات خاص بهره میبرد. پنهاننگاری، بیش از آن که یک روش خاص برای تحویل دادههای مخفی باشد، مفهومی است که میتواند در انواع حملات مبتکرانه مورد استفاده قرار گیرد.
تاریخچه
پنهاننگاری یا همان استگانوگرافی از لغت یونانی استگانوس (پوشاندن) و گرافتوس (نوشتن ) گرفته شده است و تاریخچه استفاده از آن به ۵ قرن قبل از میلاد مسیح و کشور یونان برمیگردد. در آن زمان، فردی برای ارسال پیام محرمانهای به شخص دیگر از این روش استفاده کرد که بردهای را برای این کار انتخاب کرد و موهای سر برده را تراشید و پیغام محرمانه را بر روی پوست سر برده خالکوبی کرد و سپس مدتی صبر کرد تا موهای فرد رشد کرده و به حالت اول بازگردد و سپس او را به سمت مقصد روانه کرد. در مقصد، گیرندهی پیغام دوباره موهای برده را تراشید و پیغام را بر روی پوست سر او مشاهده کرد. در همان دوره زمانی، شکل اولیه پنهاننگاری استفاده شد. در این روش پیامی را که به منظور هشدار هجوم از سمت پادشاهی بود، روی چوب قرص مومی حک شده و سپس با یک لایه تازه از موم پوشانده شده بود. پنهاننگاری با گذشت زمان ادامه یافت و به سطح جدیدی رسید. در زمان جنگ از شیر، سرکه، آبمیوه به عنوان جوهرهای نامرئی (Invisible ink) استفاده میشد و برای رمزگشایی موارد پنهان این نوع پیامها به نور یا گرما نیاز بود. در طول جنگ جهانی دوم آلمانیها از روشی موسوم به ریزگردها (Microdots) برای کاهش اندازه تمام اسناد، عکسها و نقشهها استفاده میکردند که اندازه اسناد را بسیار کوچک و قابل حمل تنها با یک برگه کاغذ میکرد. از دیگر روشهای مورد استفاده، رمزهای تهی (Null Ciphers) بود که از پنهانکردن پیام رمزنگاری نشده در یک پیام به ظاهر معمولی استفاده کرده و پیام خود را در داخل یک متن به صورت پراکنده پنهان می کردند.
پنهاننگاری چیست؟
پنهاننگاری (Steganography) هنر و علم قراردادن پیامهای مخفی در یک پیام پوششی است، به طریقی که فرد دیگری جز فرستنده و گیرنده آن پیام به وجود پیام مخفی شک نکند. با پنهاننگاری می توان امکان ارسال اخبار و اطلاعات بدون سانسور و بدون ترس از رهگیری پیام ها را، فراهم کرد. همچنین برای ذخیره اطلاعاتی مانند اطلاعات بانکداری خصوصی و یا برخی اسرار نظامی کاربرد دارد. در معاملات تجارت الکترونیک نیز برای احراز هویت افراد می تواند قابل استفاده باشد. همانگونه که در تصویر 2 مشاهده میشود، پیام پوششی و پیام مخفی هر دو به عنوان ورودی وارد رمزنگار می شوند. تابع بخش رمزنگار پیام پنهان را در فایل پوششی قرار میدهد. نتیجه کار یک پیام نهایی (حامل) میباشد که بسیار شبیه فایل پوششی بوده و هیچ تغییر قابل مشاهدهای ندارد و این کار باعث تکمیل فرآیند رمزنگاری میشود. برای بازیابی و دیدن پیام مخفی پیام نهایی وارد رمزگشای پنهاننگاری میشود .
مقایسه پنهاننگاری و رمزنگاری
به طور کلی هدف هر دو روش، حفاظت از اطلاعات میباشد. روشهای پنهاننگاری وجود یک پیام را پنهان میکنند اما ساختار اطلاعات را تغییر نمیدهند، درحالیکه روشهای رمزنگاری باعث میشوند تا با تحولات مختلف، پیام غیرقابلدرک برای افراد دیگر باشد و اگر فردی پیام رمزگذاری شده را رهگیری کند، به راحتی به وجود نوعی رمزگذاری پی میبرد. علاوه بر این پنهان نگاری باعث ایجاد سربار نیز میشود. ویژگی های این دو روش در جدول زیر مقایسه شده است.
انواع روشها و تکنیک های پنهاننگاری
سه تکنیک کلی برای پنهان نگاری وجود دارد که میتوان در انواع مختلف پنهان نگاری بهره برد.
روش جایگزینی (Substitution): در این روش بیت های کم ارزش در فایل حامل، با بیت های داده های مخفی، جایگزین می شوند. بیت های کم ارزش آن دسته از بیت ها هستند که می توانند بدون آسیب رساندن به کیفیت یا از بین بردن تمامیت فایل حامل تغییر یابند.
روش افزودن (Insertion): در این روش، اطلاعات مخفی مورد نظر در بخش هایی ذخیره می شوند که توسط پردازشگر نادیده گرفته می شوند. به عنوان مثال، در برخی از فایلها نشانگر EOF یا پایان فایل وجود دارد. این نشانگر به برنامه ای که در حال خواندن فایل است نشان می دهد که به انتهای آن رسیده است و برنامه می تواند پردازش را متوقف کند. اطلاعات پنهان می توانند پس از نشانگر EOF وارد شوند. در این صورت، کاربر نهایی حتی نمی تواند متوجه شود که فایلی حاوی اطلاعات پنهان است.
تولید (Generation): این روش، بر مبنای تولید داده ها را برای مخفی کردن و ایجاد مجموعه جدیدی از داده از همان داده های قبلی می باشد. در واقع این تکنیک، یک روش پویا برای ایجاد یک فایل حامل بر اساس اطلاعات موجود در داده ها برای مخفی کردن می باشد.
انواع روش های پنهان نگاری به شرح زیر است.
temp = 0
temp = 1 ( مقدار دهی متغیر temp با استفاده از XOR بر روی بیت پیام و LSB پیکسل قابل انجام است)
پیکسل خروجی = پیکسل تصویر ورودی + temp
5. پنهاننگاری صدا: در این روش، پیام مخفی داخل سیگنال صوتی که ترتیب باینری فایل صوتی را تغییر میدهد، قرار داده می شود. پنهان کردن پیام مخفی در یک سیگنال صوتی به مراتب سخت تر از بقیه انواع پنهاننگاری می باشد. این روش می تواند پیام را در فایل های صوتی WAV ، AU و حتی MP3 تعبیه کند.
فرایند پنهان سازی از دو مرحله تشکیل شده است. مرحله اول، شناسایی بیت های افزونه (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
این مطلب در راستای درس رمزنگاری و امنیت در دانشگاه تحصیلات تکمیلی علوم پایه زنجان نوشته شده است.