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

   · ☕ 4 دقیقه بخوانید · 😎 victor
🏷️
  • #steghide
  • header image
    استگانوگرافی یا ‍Steganography یک کلمه یونانی و به معنای پنهان نگاری هست این علم باستانی با ورود به عصر تکنولوژی با وجود پیدایش الگوریتم های رمزنگاری و اهمیت امنیت اطلاعات همچنان توجهات رو به خودش جلب کرد ویژگی جالب اون این هست که بعد از رمز نگاری داده، هنوز داده شما معنا دارد و شما با یک مشت عدد و حروف نا مفهوم روبرو نیستید برای اطلاعات بیشتر اینجا رو کلیک کنید.

    steghide

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

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

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

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

    sudo pacman -S steghide  
    
    sudo apt-get install steghide
    

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

    منطق

    نرم افزار 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
    
    اشتراک گذاری این پست