د فایلونو لخوا سټیګنګرافي: په مستقیم ډول په سکتورونو کې ډاټا پټول

یوه لنډه مخینه

سټیګنګرافي، که څوک په یاد نه وي، په ځینو کانتینرونو کې معلومات پټوي. د مثال په توګه، په انځورونو کې ( بحث شوی دلته и دلته). تاسو کولی شئ د فایل سیسټم خدماتو جدولونو کې ډاټا هم پټ کړئ (دا په اړه لیکل شوي دلته)، او حتی د TCP پروتوکول خدماتو پاکټونو کې. له بده مرغه، دا ټولې میتودونه یو نیمګړتیا لري: په کانټینر کې د ناڅرګند ډول "داخلو" معلوماتو لپاره، تاسو هوښیار الګوریتم ته اړتیا لرئ چې د کانټینر داخلي جوړښت ځانګړتیاوې په پام کې ونیسي. او ستونزې د لاسوهنې په وړاندې د کانټینر مقاومت سره رامینځته کیږي: د مثال په توګه ، که تاسو عکس لږ څه ترمیم کړئ ، پټ معلومات له لاسه ورکوي.

ایا دا ممکنه ده چې په یو ډول د چالاک الګوریتمونو او ډیټا سره فرعي لاسوهنې پرته ترسره کړئ ، او لاهم د کانټینر فعالیت او د پټو معلوماتو امنیت د منلو وړ کچې ډاډ ترلاسه کړئ؟ مخکې کتل، زه به ووایم - هو، تاسو کولی شئ! زه به حتی یو ګټور وړاندیز وکړم.

د میتود خوني توضیحات

بنسټیزه مفکوره د تیغ په څیر ساده ده: په ډیسک کې داسې سیمې شتون لري چې عملیاتي سیسټم هیڅکله نه لیکي (یا په نادره مواردو کې لیکي). د چالاک الګوریتمونو په کارولو سره د دې ساحو لټون کولو اړتیا څخه مخنیوي لپاره ، موږ به بې ځایه کار وکاروو - دا دی ، موږ به خپل پټ معلومات ډیری ځله د ډیسک په ټولو سکتورونو کې نقل کړو. بیا ، د دې ټولو ښکلا په سر کې ، تاسو کولی شئ اړین برخې رامینځته کړئ ، د فایل سیسټم فارمیټ کړئ ، فایلونه ولیکئ او OS نصب کړئ - په ورته ډول ، د پټو معلوماتو یوه برخه به خوندي شي او بیرته ترلاسه شي ، او تکرار تکرار به زموږ سره مرسته وکړي. اصلي ټول د ټوټو څخه یوځای کړئ.

د دې میتود ګټه څرګنده ده: موږ د فایل فارمیټ یا حتی د کارول شوي فایل سیسټم ډول پورې اړه نه لرو.

زیانونه هم زما په اند، څرګند دي:

  • پټ معلومات یوازې د بشپړ ډیسک په بشپړ ډول بیا لیکلو سره بدلیدلی شي ، وروسته د کارونکي لپاره د لید مینځپانګې بیا جوړولو سره. په هرصورت، تاسو نشئ کولی هغه سافټویر وکاروئ چې د عکس څخه ډیسک بیا جوړ کړي: دا به پخوانی پټ معلومات هم بیا جوړ کړي.
  • هرڅومره چې د پټو معلوماتو حجم لوی وي ، د ځینې معلوماتو له لاسه ورکولو احتمال ډیر وي.
  • د ډیسک څخه د معلوماتو ترلاسه کول ډیر وخت نیسي. له څو دقیقو څخه تر څو ورځو پورې (عصري ډیسکونه لوی دي).

اوس راځئ چې مشخصاتو ته لاړ شو.

دا روښانه ده چې که تاسو په ساده ډول په ټول ډیسک کې پټ معلومات وخورئ، نو دا به یوازې د پټو سترګو څخه پټ وي. که تاسو خپل نظر د ډیسک مدیر سره سمبال کړئ، ووایاست، ډاټا به په خپل ټول ویاړ کې ښکاره شي. نو ځکه، دا به ښه نظر وي چې ډاټا کوډ کړئ ترڅو دا ښکاره نشي. موږ به په ساده ډول کوډ کړو، مګر په خوند سره: د aes256-cbc الګوریتم په کارولو سره. موږ به له کارونکي څخه د کوډ کولو کیلي وغواړو او اجازه راکړو چې د ښه پاسورډ سره راشي.

بله پوښتنه دا ده چې موږ څنګه کولی شو د "ښه" ډیټا له خراب ډیټا سره توپیر وکړو. دلته یو چکسم به زموږ سره مرسته وکړي، مګر ساده نه، مګر SHA1. او څه؟ دا د ګیټ لپاره کافي ښه دی ، نو دا به موږ ته هم مناسب وي. پریکړه وشوه: موږ د معلوماتو هر ذخیره شوي ټوټه د چیکسم سره چمتو کوو، او که د ډیکریپشن وروسته دا سره سمون ولري، دا پدې مانا ده چې ډیکریپشن بریالی و.

تاسو به د ټوټې شمیرې او د پټو معلوماتو ټول اوږدوالي ته هم اړتیا ولرئ. د ټوټې شمیره دا ده چې تعقیب کړي چې کومې ټوټې موږ دمخه تشریح کړې او کومې پاتې دي. ټول اوږدوالی به زموږ لپاره ګټور وي کله چې د وروستي ټوټې پروسس کول، نو د غیر ضروري معلوماتو لیکلو لپاره نه وي (یعنې پیډینګ). ښه ، ځکه چې موږ لاهم سرلیک لرو ، موږ به هلته د پټ فایل نوم اضافه کړو. دا به د کوډ کولو وروسته ګټور وي، نو د دې د خلاصولو څرنګوالی اټکل نه کوي.

په عمل کې د میتود ازموینه

د چک کولو لپاره، راځئ چې ترټولو عام منځنی واخلو - یو فلش ډرایو. ما د 1 GB ظرفیت سره یو زوړ وموند، کوم چې د تجربو لپاره خورا مناسب دی. که تاسو ، زما په څیر ، د فزیکي میډیا سره د نه ځورولو مفکورې سره راغلی ، مګر دا په فایل کې ازموئ - د ډیسک عکس ، نو زه به سمدلاسه ووایم: دا به کار ونکړي. کله چې دا ډول "ډیسک" فارمیټ کوي ، لینکس بیا فایل رامینځته کوي ، او ټول نه کارول شوي سکتورونه به له صفر څخه ډک شي.

د لینوکس سره د ماشین په توګه، له بده مرغه، ما باید په بالکوني کې پروت راسبیري پای 3 کې د هوا سټیشن وکاروئ. هلته ډیر حافظه شتون نلري، نو موږ به لوی فایلونه پټ نه کړو. موږ خپل ځان د 10 میګابایټ اعظمي اندازې پورې محدود کوو. د فایلونو پټولو کې هم هیڅ معنی نشته چې خورا کوچني دي: یوټیلیټ ډیسک ته د 4 KB کلسترونو کې ډیټا لیکي. له همدې امله، لاندې به موږ خپل ځان د 3 kb فایل پورې محدود کړو - دا په ورته کلستر کې فټ کیږي.

موږ به په مرحلو کې فلش ډرایو ټوکې کړو، د هرې مرحلې وروسته به وګورو چې ایا پټ معلومات د لوستلو وړ دي:

  1. د 16 KB د کلستر اندازې سره په FAT16 فارمیټ کې چټک فارمیټ. دا هغه څه دي چې وینډوز 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 کیلوبایټ پټ معلومات په غیر استعمال شوي ځای کې په بشپړ ډول فټ کوي.

د ازموینې لنډیز جدول:

د فایلونو لخوا سټیګنګرافي: په مستقیم ډول په سکتورونو کې ډاټا پټول

یو څه نظریه کول: د خالي ځای او نه کارول شوي سکتورونو په اړه

که تاسو کله هم خپل هارډ ډرایو په برخو ویشلی وي، تاسو شاید لیدلي وي چې دا تل امکان نلري چې په ډیسک کې ټول خالي ځای تخصیص کړي. لومړۍ برخه تل د ځینې نښې سره پیل کیږي (معمولا 1 میګابایټ ، یا 2048 سکتورونه). د وروستۍ برخې تر شا، دا هم پیښیږي چې د غیر استعمال شوي سکټورونو یو کوچنی "مخ" پاتې دی. او ځینې وختونه د برخو ترمنځ تشې شتون لري، که څه هم په ندرت سره.

په بل عبارت ، په ډیسک کې داسې سکتورونه شتون لري چې د ډیسک سره د نورمال کار پرمهال لاسرسی نشي کولی ، مګر ډیټا دې سکتورونو ته لیکل کیدی شي! او دا پدې مانا ده چې لوستل یې هم. د دې حقیقت لپاره تنظیم شوی چې د برخې کولو میز او د بوټلوډر کوډ هم شتون لري ، کوم چې د ډیسک په پیل کې په خالي سیمه کې موقعیت لري.

راځئ چې د یو څه وخت لپاره د برخو څخه وقفه واخلو او ډیسک ته د الوتونکو د سترګو لید څخه وګورو، نو د خبرو کولو لپاره. دلته موږ په ډیسک کې خالي برخه لرو. راځئ چې په دې کې د فایل سیسټم جوړ کړو. ایا موږ کولی شو ووایو چې په ډیسک کې ځینې سکتورونه ناپاک پاتې دي؟

ای د ډرم رول! ځواب به تقریبا تل هو وي! په حقیقت کې ، په ډیری قضیو کې ، د فایل سیسټم رامینځته کول ډیسک ته د خدماتو معلوماتو یوازې څو بلاکونو لیکلو ته راځي ، او که نه نو د برخې مینځپانګې نه بدلیږي.

او همدارنګه - په بشپړ ډول په تجربه سره - موږ کولی شو دا فرض کړو چې د فایل سیسټم تل نشي کولی ټول هغه ځای ونیسي چې دې ته ځانګړي شوي تر وروستي سکتور پورې. د مثال په توګه، د FAT16 فایل سیسټم د کلستر اندازې 64 کیلوبایټ سره په ښکاره توګه نشي کولی په بشپړه توګه د 64 کیلوبایټ اندازه سره د برخې برخه ونیسي. د داسې یوې برخې په پای کې باید د ډیری سکټورونو "مخ" وي، د کاروونکو معلوماتو ذخیره کولو لپاره د لاسرسي وړ نه وي. په هرصورت، دا انګیرنه نشي کولی په تجربوي توګه تایید شي.

نو، د سټیګنوګرام لپاره موجود ځای اعظمي کولو لپاره، تاسو اړتیا لرئ د لوی کلستر اندازې سره د فایل سیسټم وکاروئ. تاسو کولی شئ یوه برخه هم جوړه کړئ، حتی که دا اړین نه وي (د مثال په توګه په فلش ډرایو کې). اړتیا نشته چې خالي برخې رامینځته کړئ یا غیر تخصیص شوي ساحې پریږدئ - دا به د علاقه لرونکو خلکو پام ځانته راجلب کړي.

د تجربو لپاره ګټه

تاسو کولی شئ د کارونې سرچینې کوډ ته لاس ورکړئ دلته

د جوړولو لپاره، تاسو به د Qt نسخه 5.0 یا لوړ او OpenSSL ته اړتیا ولرئ. که یو څه کار ونکړي، تاسو ممکن د steganodisk.pro فایل ترمیم کړئ.

تاسو کولی شئ د کلستر اندازه له 4 KB څخه 512 بایټ ته بدل کړئ (په secretfile.h کې). په ورته وخت کې، د خدماتو معلوماتو لګښت به لوړ شي: سرلیک او چکسم یو ثابت 68 بایټس نیسي.

تاسو اړتیا لرئ یوټیلیټ چل کړئ، البته، د روټ کاروونکي حقونو سره، او په احتیاط سره. د ټاکل شوي فایل یا وسیلې له لیکلو دمخه به هیڅ پوښتنې ونه پوښتل شي!

خوند واخلئ.

سرچینه: www.habr.com

Add a comment