لطفا برای نمایش محتوا اجرای جاوا اسکریپت را فعال کنید

مخفی کردن داده ها در تصویر و صوت

 ·  ☕ 4 دقیقه بخوانید  ·  😎 victor

header image
استگانوگرافی یا ‍Steganography یک کلمه یونانی و به معنای پنهان نگاری هست این علم باستانی با ورود به عصر تکنولوژی با وجود پیدایش الگوریتم های رمزنگاری و اهمیت امنیت اطلاعات همچنان توجهات رو به خودش جلب کرد ویژگی جالب اون این هست که بعد از رمز نگاری داده، هنوز داده شما معنا دارد و شما با یک مشت عدد و حروف نا مفهوم روبرو نیستید برای اطلاعات بیشتر اینجا رو کلیک کنید.

steghide

در سال 2003 یک ابزار اوپن سورس با لایسنس GPL بر پایه همین ایده ارائه شد این ابزار می تونه دیتای شما رو داخل پیکسل های یک تصویر یا داخل یک فایل صوتی ذخیره کنه دقت کنید اینجا منظور متا دیتا نیست!
فرض کنید شما در حال دیدن تصویری هستید که حاوی اطلاعات رمز شده هست یا صدایی رو می شنوید که حاوی پسوردهای شماست مبحث جالبی هستش :)

اما چطور از این ابزار استفاده کنیم؟ من این ابزار رو داخل توزیع های گنو/لینوکسی تست کردم و در این پست هم روی آرچ لینوکس از اون استفاده می کنیم برای اطلاعات بیشتر به این لینک مراجعه کنید http://steghide.sourceforge.net

نصب و راه اندازی

برای نصب steghide روی گنو لینوکس می تونیم پکیجش رو از مخازن رسمی دانلود کنیم بسته به توزیعی که استفاده می کنیم دستور نصب میتونه متفاوت باشه در آرچ لینوکس با دستور زیر بسته رو نصب می کنیم

sudo pacman -S steghide  
sudo apt-get install steghide

برای دانلود سورس کد یا پکیج برنامه روی download کلیک کنید، همچنین اگر کاربر ویندوز هستید میتونید نسخه GUI برنامه رو نصب کنید

Download SteghideGui

منطق

نرم افزار steghide اول از همه فایل ها رو فشرده می کند و بعد از رمزنگاری با الگوریتم AES که یک الگوریتم رمزنگاری متقارن هست (برای رمزنگاری و رمزگشایی از یک کلید استفاده میکند) درستی مراحل رو چک می کند ولی این نرم افزار محدودیت هایی هم داره که در ادامه اشاره می کنم

محدودیت ها

  • شما می تونید انواع فرمت های فایل رو مخفی کنید اما فایلی که برای پوشش اطلاعات استفاده میکنید (cover file) محدودیت دارد و باید یکی از فرمت های زیر باشه
    [JPEG,BMP,AU,WAV]
  • حجم فایل پوششی باید بزرگتر از فایلی باشه که میخواهید مخفی کنید و باید واقعی باشه (صرفا یک فایل خام با حجم زیاد نباشه)
  • ما نمی تونیم یک فایل بزرگ مثلا 200 مگابایتی رو در یک عکس مخفی کنیم و ایده خوبی نیست شما کجا یک عکس با حجم 200 مگابایت دیدید؟ اگرچه فایل های WAV می توانند حجم های بزرگی داشته باشند بنابراین برای فایل های بزرگتر گزینه مناسب تری هستند

دستورات steghide

برای مخفی کردن و آشکار کردن اطلاعات ما از دو دسته دستوراتembed و extract استفاده میکنیم

مخفی کردن داده ها (embed)

فرض کنید من یک فایل password.txt دارم و میخوام اون رو در یک فایل صوتی با پسوند WAV پنهان کنم (همانطور که قبلا گفتم فرمت فایل جاساز هرچیزی میتونه باشه)
برای این کار از دستور زیر استفاده می کنیم

1
2
3
4
5
steghide embed -ef password.txt -cf music.wav

Enter passphrase: 
Re-Enter passphrase: 
embedding "avatar.jpg" in "IMG_2020.jpg"... done
  • پارامتر cf- مختصر فایل پوششی (cover file) است
  • پارامتر ef- مختصر فایل جاسازی شده (embed file) است
    بعد از اجرای دستور بالا باید پسورد دلخواه رو وارد کنید و در نهایت فایل پوششی شما پنهان نگاری و فایل password.txt در فایل wav مخفی خواهد شد
باید مسیر فایل های خودتون رو به عنوان آرگومان به پارامتر ها پاس بدید بنابراین از معتبر بودن مسیر فایل ها مطمئن بشید

مثال:

مخفی کردن فایل متنی در فایل تصویری

1
steghide embed -ef password.txt -cf Manic.jpg

مخفی کردن فایل تصویری در فایل تصویری دیگر

1
steghide embed -ef avatar.png -cf Manic.jpg

آشکار سازی داده پنهان شده (extract)

حال فرض کنید ما یک فایل تصویری پنهان نگاری شده Manic.jpg داریم و میخواهیم فایل اصلی که ‍‍password.txt هست رو استخراج کنیم برای این کار باید از دستور زیر استفاده کنیم

1
2
3
4
steghide extract -sf Manic.jpg

Enter passphrase: 
wrote extracted data to "password.txt".

بعد از اجرای دستور باید پسوردی که قبلا برای مخفی کردن فایل استفاده کردیم رو وارد کنیم و بعد از اون فایل مخفی شده استخراج میشه و در دایرکتوری فعلی نوشته میشه


چک کردن فایل

برای بررسی کردن این که آیا یک فایل پنهان نگاری شده یا نه می تونیم از دستور زیر استفاده کنیم

1
steghide info Manic.jpg

تا اینجا تقریبا همه دستورات مهم رو دیدیم برای این که مطلب طولانی نشه از توضیح دادن پارامتر های دیگر این ابزار صرف نظر میکنم اما شما می تونید برای استفاده از قابلیت های دیگر از طریق دستور زیر به راهنمای این ابزار دسترسی داشته باشید

1
man steghide

200

اشتراک گذاری این پست

victor
نوشته شده توسط
victor
Back End Developer