فائلن طرفان اسٽيگنگرافي: ڊيٽا کي سڌو سنئون شعبن ۾ لڪائڻ

مختصر پيشڪش

اسٽيگنگرافي، جيڪڏهن ڪنهن کي ياد نه هجي، ڪجهه ڪنٽينرز ۾ معلومات لڪائي رهي آهي. مثال طور، تصويرن ۾ (بحث ٿيل هتي и هتي). توھان پڻ ڊيٽا لڪائي سگھوٿا فائل سسٽم جي سروس جدولن ۾ (ھن بابت لکيو ويو آھي هتي)، ۽ حتي TCP پروٽوڪول سروس پيڪٽس ۾. بدقسمتي سان، انهن سڀني طريقن ۾ هڪ خرابي آهي: هڪ ڪنٽينر ۾ معلومات "داخل" ڪرڻ لاء، توهان کي چالاڪ الگورتھم جي ضرورت آهي جيڪي ڪنٽينر جي اندروني جوڙجڪ جي خاصيتن کي حساب ۾ رکندا آهن. ۽ مسئلا پيدا ٿين ٿا ڪنٽينر جي هٿرادو مزاحمت سان: مثال طور، جيڪڏهن توهان تصوير ۾ ٿورو ترميم ڪريو ٿا، پوشيده معلومات گم ٿي ويندي آهي.

ڇا اهو ممڪن آهي ته ڪنهن به طريقي سان چالاڪ الگورتھم ۽ ڊيٽا سان گڏ ذيلي ميپليشنز کان سواء، ۽ اڃا تائين ڪنٽينر جي ڪارڪردگي کي يقيني بڻائي ۽ پوشيده ڊيٽا جي سيڪيورٽي جي قابل قبول سطح کي يقيني بڻائي؟ اڳتي ڏسندي، مان چوندس - ها، توهان ڪري سگهو ٿا! مان هڪ افاديت پڻ پيش ڪندس.

طريقي جي خوني تفصيل

بنيادي خيال پيشاني تي لڳڻ جيترو سادو آهي: ڊسڪ تي اهڙا علائقا آهن جن تي آپريٽنگ سسٽم ڪڏهن به نه لکندو آهي (يا نادر ڪيسن ۾ لکي ٿو). هوشيار الگورتھم استعمال ڪندي انهن علائقن کي ڳولڻ جي ضرورت کان بچڻ لاءِ، اسان فالتو استعمال ڪنداسين - يعني، اسان ڊسڪ جي سڀني شعبن ۾ اسان جي پوشيده معلومات کي ڪيترائي ڀيرا نقل ڪنداسين. ان کان پوء، سڄي هن شان جي چوٽي تي، توهان ضروري پارٽيشن ٺاهي سگهو ٿا، فائيل سسٽم کي فارميٽ ڪري سگهو ٿا، فائلون لکو ۽ او ايس نصب ڪريو - سڀ ڪجهه، رازداري ڊيٽا جو حصو محفوظ ڪيو ويندو ۽ ٻيهر حاصل ڪري سگهجي ٿو، ۽ بار بار نقل ڪرڻ اسان جي مدد ڪندو. اصل سڄو کي ٽڪر مان گڏ ڪريو.

ھن طريقي جو فائدو پڌرو آھي: اسان فائل فارميٽ تي منحصر نه آھيون، يا ان تي به استعمال ٿيل فائل سسٽم جي قسم تي.

نقصان پڻ آهن، مان سمجهان ٿو، واضح:

  • ڳجهي ڊيٽا صرف مڪمل طور تي مڪمل ڊسڪ کي ٻيهر لکڻ سان تبديل ڪري سگهجي ٿو، بعد ۾ استعمال ڪندڙ کي ڏيکاريل مواد کي ٻيهر ٺاهڻ سان. تنهن هوندي، توهان سافٽ ويئر استعمال نٿا ڪري سگهو جيڪو تصوير مان ڊسڪ کي ٻيهر ٺاهي ٿو: اهو پڻ پوئين ڳجهي ڊيٽا کي ٻيهر ٺاهيندو.
  • ڳجهي ڊيٽا جو حجم جيترو وڏو هوندو، اوترو ئي ڪجهه معلومات وڃائڻ جو امڪان.
  • ڊسڪ مان ڊيٽا حاصل ڪرڻ ۾ هڪ ڊگهو وقت وٺي سگھي ٿو. ڪيترن ئي منٽن کان ڪيترن ئي ڏينهن تائين (جديد ڊسڪ وڏا آهن).

هاڻي اچو ته تفصيل ڏانهن وڃو.

اهو واضح آهي ته جيڪڏهن توهان صرف ڊسڪ تي ڳجهي ڊيٽا کي سمير ڪريو ٿا، اهو صرف ننگي اک کان لڪايو ويندو. جيڪڏهن توهان پنهنجي نظر کي ترتيب ڏيو، چئو، هڪ ڊسڪ ايڊيٽر، ڊيٽا پنهنجي تمام جلال ۾ ظاهر ٿيندو. تنهن ڪري، اهو سٺو خيال هوندو ته ڊيٽا کي انڪوڊ ڪرڻ لاء ته جيئن اهو ظاهر نه ٿئي. اسان صرف انڪرپٽ ڪنداسين، پر ذائقي سان: aes256-cbc الگورتھم استعمال ڪندي. اسان صارف کان انڪرپشن چيڪ لاءِ پڇنداسين ۽ کيس سٺو پاسورڊ سان گڏ آڻينداسين.

ايندڙ سوال اهو آهي ته اسان ڪيئن فرق ڪري سگهون ٿا "سٺو" ڊيٽا کي خراب ڊيٽا کان. هتي هڪ چيڪسم اسان جي مدد ڪندو، پر هڪ سادي نه، پر SHA1. ۽ ڇا؟ اهو گٽ لاء ڪافي آهي، تنهنڪري اهو اسان کي پڻ مناسب ٿيندو. فيصلو ڪيو ويو: اسان معلومات جي هر ذخيرو ٿيل ٽڪڙي کي چيڪسم سان مهيا ڪريون ٿا، ۽ جيڪڏهن ڊيڪرپشن کان پوءِ اها ملي ٿي، ته ان جو مطلب آهي ڊيڪرپشن ڪامياب ٿي وئي.

توهان کي پڻ ضرورت پوندي ٽڪرا نمبر ۽ ڳجهي ڊيٽا جي ڪل ڊيگهه. ٽڪرا نمبر اهو آهي ته ٽريڪ رکڻ لاءِ ڪهڙن ٽڪرن کي اسان اڳ ۾ ئي سمجهي چڪا آهيون ۽ ڪهڙا رهجي ويا آهن. ڪُل ڊگھائي اسان لاءِ ڪارآمد ثابت ٿيندي جڏهن آخري ٽڪڙي کي پروسيس ڪندي، ته جيئن غير ضروري ڊيٽا نه لکجي (يعني پيڊنگ). خير، ڇو ته اسان وٽ اڃا تائين هيڊر آهي، اسان اتي ڳجهي فائل جو نالو شامل ڪنداسين. اهو ڊيڪرپشن کان پوء مفيد ٿيندو، تنهنڪري اهو اندازو نه لڳايو ته ان کي ڪيئن کوليو.

عملي طور طريقن جي جاچ

چيڪ ڪرڻ لاء، اچو ته سڀ کان وڌيڪ عام وچولي وٺو - هڪ فليش ڊرائيو. مون کي 1 GB جي گنجائش سان هڪ پراڻو مليو، جيڪو تجربن لاءِ ڪافي مناسب آهي. جيڪڏهن توهان، مون وانگر، فزيڪل ميڊيا سان پريشان نه ڪرڻ جي خيال سان آيا، پر ان کي فائل تي آزمائي - هڪ ڊسڪ تصوير، پوء آئون فوري طور تي چوندس: اهو ڪم نه ڪندو. جڏهن اهڙي "ڊسڪ" کي فارميٽ ڪندي، لينڪس ٻيهر فائل ٺاهي ٿو، ۽ سڀئي غير استعمال ٿيل شعبن کي زيرو سان ڀريو ويندو.

لينڪس سان گڏ هڪ مشين جي طور تي، بدقسمتي سان، مون کي بالڪوني ۾ Raspberry Pi 3 تي موسم اسٽيشن استعمال ڪرڻو پيو. اتي تمام گهڻي ياداشت ناهي، تنهنڪري اسان وڏيون فائلون لڪائي نه سگهنداسين. اسان پاڻ کي وڌ ۾ وڌ 10 ميگا بائيٽ تائين محدود ڪريون ٿا. فائلن کي لڪائڻ ۾ ڪو به نقطو نه آهي جيڪي تمام ننڍيون آهن: يوٽيليٽي 4 KB ڪلستر ۾ ڊسڪ تي ڊيٽا لکي ٿو. تنهن ڪري، هيٺ اسين پاڻ کي 3 kb فائل تائين محدود ڪنداسين - اهو هڪ اهڙي ڪلستر ۾ اچي ٿو.

اسان مرحلن ۾ فليش ڊرائيو کي ٺٺوليون ڪنداسين، هر اسٽيج کان پوء چيڪ ڪنداسين ته ڇا لڪيل معلومات پڙهڻ لائق آهي:

  1. FAT16 فارميٽ ۾ فاسٽ فارميٽ 16 KB جي ڪلسٽر سائيز سان. اھو اھو آھي جيڪو Windows 7 ھڪڙي فليش ڊرائيو سان ڪرڻ لاءِ پيش ڪري ٿو جنھن ۾ فائل سسٽم نه آھي.
  2. فليش ڊرائيو کي هر قسم جي ڪچري سان 50 سيڪڙو ڀرڻ.
  3. فليش ڊرائيو کي هر قسم جي ڪچري سان 100 سيڪڙو ڀرڻ.
  4. "ڊگهو" فارميٽ FAT16 فارميٽ ۾ (هر شي کي اوور رائٽنگ ڪرڻ).

پهرين ٻه ٽيسٽ، جيئن توقع ڪئي وئي، مڪمل فتح ۾ ختم ٿي وئي: افاديت ڪاميابيء سان 10 ميگا بائيٽ جي رازداري ڊيٽا کي فليش ڊرائيو مان ڪڍڻ جي قابل هئي. پر پوءِ فليش ڊرائيو کي فائلن سان ڀرجي ويو، ناڪامي ٿي:

Total clusters read: 250752, decrypted: 158
ERROR: cannot write incomplete secretFile

جئين توهان ڏسي سگهو ٿا، صرف 158 ڪلسٽرز ڪاميابيء سان ختم ٿي ويا (632 ڪلوبائٽس خام ڊيٽا، جيڪا 636424 بائيٽ جي پيلي لوڊ ڏئي ٿي). اهو واضح آهي ته هتي 10 ميگا بائيٽ حاصل ڪرڻ جو ڪو طريقو ناهي، ۽ اڃا تائين انهن ڪلستر جي وچ ۾ واضح طور تي نقل ٿيل آهن. توهان هن طريقي سان 1 ميگا بائيٽ به بحال نٿا ڪري سگهو. پر اسان ضمانت ڏئي سگهون ٿا ته اسان هڪ فليش ڊرائيو مان 3 ڪلو بائيٽ ڳجهي ڊيٽا واپس آڻينداسين جيتوڻيڪ ان کي فارميٽ ڪرڻ ۽ ظرفيت تي لکڻ کان پوءِ. بهرحال، تجربن ڏيکاري ٿو ته اهو ممڪن آهي ته اهڙي فليش ڊرائيو مان 120 ڪلو بائيٽ ڊگهي فائل ڪڍڻ ممڪن آهي.

آخري ٽيسٽ، بدقسمتي سان، ظاهر ڪيو ته سڄي فليش ڊرائيو ختم ٿي وئي هئي:

$ sudo ./steganodisk -p password /dev/sda
Device size: 250752 clusters
250700 99%
Total clusters read: 250752, decrypted: 0
ERROR: cannot write incomplete secretFile

هڪ به ڪلستر نه بچيو آهي... افسوس، پر افسوسناڪ نه! فارميٽ ڪرڻ کان اڳ، اچو ته فلي ڊرائيو تي ورهاڱي ٺاهڻ جي ڪوشش ڪريو، ۽ ان ۾ اڳ ۾ ئي هڪ فائيل سسٽم. رستي ۾، اهو فيڪٽري مان بلڪل هن فارميٽنگ سان آيو آهي، تنهنڪري اسان ڪجهه به مشڪوڪ نه ڪري رهيا آهيون.
اهو ڪافي توقع آهي ته فليش ڊرائيو تي موجود جاء ٿورو گهٽجي ويو آهي.

اهو پڻ ڪافي توقع آهي ته 10 ميگا بائيٽ مڪمل طور تي مڪمل ڊسڪ تي لڪيل نه ٿي سگهي. پر ھاڻي ڪاميابيءَ سان ڊريپ ٿيل ڪلستر جو تعداد ٻيڻو ٿي ويو آھي!

Total clusters read: 250752, decrypted: 405

بدقسمتي سان، هڪ ميگا بائيٽ کي ٽڪر مان گڏ ڪرڻ ناممڪن آهي، پر ٻه سئو ڪلوبائيٽ آسان آهن.

خير، آخري، چوٿين چيڪ بابت خبر، هن وقت خوشگوار آهي: مڪمل طور تي اهڙي فليش ڊرائيو کي فارميٽ ڪرڻ سڀني معلومات جي تباهي جي اڳواڻي نه ڪئي! 4 kilobytes ڳجهي ڊيٽا مڪمل طور تي غير استعمال ٿيل جاء تي مناسب آهي.

ٽيسٽ خلاصو جدول:

فائلن طرفان اسٽيگنگرافي: ڊيٽا کي سڌو سنئون شعبن ۾ لڪائڻ

ٿورڙو نظرياتي: مفت جاء ۽ غير استعمال ٿيل شعبن بابت

جيڪڏهن توهان ڪڏهن پنهنجي هارڊ ڊرائيو کي ورهاڱي ۾ ورهايو آهي، توهان شايد محسوس ڪيو هوندو ته اهو هميشه ممڪن ناهي ته ڊسڪ تي تمام خالي جاء مختص ڪرڻ. پھريون سيڪشن ھميشه ڪجھ انڊنٽيشن سان شروع ٿئي ٿو (عام طور تي 1 ميگا بائيٽ، يا 2048 سيڪٽر). آخري حصي جي پويان، اهو پڻ ٿئي ٿو ته اتي رهي ٿو هڪ ننڍڙو "دم" غير استعمال ٿيل شعبن جو. ۽ ڪڏهن ڪڏهن حصن جي وچ ۾ خال آهن، جيتوڻيڪ گهٽ ۾ گهٽ.

ٻين لفظن ۾، ڊسڪ تي اهڙا شعبا آهن جيڪي ڊسڪ سان عام ڪم دوران رسائي نٿا ڪري سگهن، پر ڊيٽا انهن شعبن ڏانهن لکي سگهجي ٿو! ۽ ان جو مطلب اهو پڻ پڙهو. انهي حقيقت لاءِ ترتيب ڏنل آهي ته هڪ ورهاڱي واري ٽيبل ۽ بوٽ لوڊر ڪوڊ پڻ آهي، جيڪي ڊسڪ جي شروعات ۾ خالي علائقي ۾ واقع آهن.

اچو ته ڪجهه دير تائين حصن مان وقفو وٺو ۽ ڊسڪ کي پکيء جي اکين جي نظر کان ڏسو، تنهنڪري ڳالهائڻ لاء. هتي اسان وٽ ڊسڪ تي هڪ خالي ورهاڱي آهي. اچو ته ان ۾ هڪ فائيل سسٽم ٺاهي. ڇا اسان اهو چئي سگهون ٿا ته ڊسڪ تي ڪجهه شعبا اڻڄاتل رهندا آهن؟

اي-اي- ڊرم رول! جواب لڳ ڀڳ هميشه ها ٿيندو! درحقيقت، اڪثر ڪيسن ۾، هڪ فائيل سسٽم ٺاهڻ لاء ڊسڪ تي سروس جي معلومات جي صرف چند بلاڪ لکڻ لاء هيٺ اچي ٿو، ۽ ٻي صورت ۾ ورهاڱي جو مواد تبديل نه ٿيندو.

۽ پڻ - خالص طور تي تجرباتي طور تي - اسان اهو فرض ڪري سگهون ٿا ته فائيل سسٽم هميشه تي قبضو نٿو ڪري سگهي ان کي مختص ڪيل سڀني جاء تي آخري شعبي تائين. مثال طور، هڪ FAT16 فائيل سسٽم 64 ڪلو بائيٽ جي ڪلسٽر سائيز سان واضح طور تي مڪمل طور تي هڪ ورهاڱي تي قبضو نٿو ڪري سگهي جنهن جي سائيز 64 ڪلوبائٽس کان وڌيڪ نه هجي. اهڙي حصي جي آخر ۾، اتي ڪيترن ئي شعبن جي هڪ "دم" هجڻ ضروري آهي، صارف جي ڊيٽا کي محفوظ ڪرڻ لاء ناگزير. بهرحال، هن مفروضي جي تجرباتي طور تي تصديق نه ٿي سگهي.

تنهن ڪري، اسٽيگانوگرام لاءِ موجود جڳهه کي وڌائڻ لاءِ، توهان کي وڏي ڪلستر جي سائيز سان فائيل سسٽم استعمال ڪرڻ جي ضرورت آهي. توهان هڪ ورهاڱي پڻ ٺاهي سگهو ٿا، جيتوڻيڪ اهو ضروري ناهي (مثال طور فليش ڊرائيو تي). خالي سيڪشن ٺاهڻ يا غير مختص ٿيل علائقن کي ڇڏڻ جي ڪا ضرورت ناهي - هي دلچسپي شهرين جي ڌيان کي راغب ڪندو.

تجربن لاءِ استعمال

توھان کي ڇڪي سگھو ٿا يوٽيلٽي جو سورس ڪوڊ هتي

تعمير ڪرڻ لاءِ، توھان کي ضرورت پوندي Qt ورجن 5.0 يا وڌيڪ ۽ OpenSSL. جيڪڏهن ڪجھ ڪم نٿو ڪري، توهان کي شايد ترميم ڪرڻو پوندو steganodisk.pro فائل.

توھان ڪلستر جي سائيز کي 4 KB کان تبديل ڪري سگھو ٿا، چئو، 512 بائيٽ (secretfile.h ۾). ساڳئي وقت، خدمت جي معلومات جي قيمت وڌائي ويندي: هيڊر ۽ چيڪسم هڪ مقرر ڪيل 68 بائيٽ تي قبضو ڪري ٿو.

توهان کي استعمال ڪرڻ جي ضرورت آهي، يقينا، روٽ صارف جي حقن سان، ۽ احتياط سان. مخصوص فائل يا ڊيوائس کي اوور رائٽ ڪرڻ کان پهريان ڪو به سوال نه پڇيو ويندو!

مزو.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو