شائع شدہ شفل کیک، چھپے ہوئے انکرپٹڈ ڈسک پارٹیشنز بنانے کے لیے ایک ٹول کٹ

سیکورٹی آڈٹ کمپنی Kudelski Security نے Shufflecake نامی ایک ٹول شائع کیا ہے جو آپ کو موجودہ پارٹیشنز پر دستیاب خالی جگہ پر بکھرے ہوئے پوشیدہ فائل سسٹم بنانے کی اجازت دیتا ہے اور بے ترتیب بقایا ڈیٹا سے الگ نہیں کیا جا سکتا۔ پارٹیشنز اس طرح بنائے گئے ہیں کہ رسائی کلید کو جانے بغیر، فرانزک تجزیہ کرتے وقت بھی ان کے وجود کو ثابت کرنا مشکل ہے۔ یوٹیلٹیز (شفل کیک-یوزر لینڈ) اور لینکس کرنل ماڈیول (dm-sflc) کا کوڈ C میں لکھا گیا ہے اور GPLv3 لائسنس کے تحت تقسیم کیا گیا ہے، جس کی وجہ سے شائع شدہ کرنل ماڈیول کو مرکزی لینکس کرنل میں شامل کرنا ناممکن ہو جاتا ہے۔ GPLv2 لائسنس جس کے تحت دانا فراہم کیا جاتا ہے۔

اس پروجیکٹ کو ڈیٹا کو چھپانے کے لیے Truecrypt اور Veracrypt سے زیادہ جدید حل کے طور پر رکھا گیا ہے جس کے لیے تحفظ کی ضرورت ہوتی ہے، جس میں لینکس پلیٹ فارم کے لیے مقامی حمایت حاصل ہوتی ہے اور آپ کو ڈیوائس پر 15 تک پوشیدہ پارٹیشنز رکھنے کی اجازت دیتا ہے، ایک دوسرے کے اندر گھونسلے ہوئے پارسنگ کو الجھانے کے لیے۔ ان کے وجود کی. اگر شفل کیک کا استعمال بذات خود کوئی راز نہیں ہے، جیسا کہ اندازہ لگایا جا سکتا ہے، مثال کے طور پر، سسٹم میں متعلقہ یوٹیلیٹیز کی موجودگی سے، پھر تخلیق کردہ پوشیدہ پارٹیشنز کی کل تعداد کا تعین نہیں کیا جا سکتا۔ تخلیق کردہ پوشیدہ پارٹیشنز کو صارف کی صوابدید پر کسی بھی فائل سسٹم کو ایڈجسٹ کرنے کے لیے فارمیٹ کیا جا سکتا ہے، مثال کے طور پر، ext4، xfs یا btrfs۔ ہر پارٹیشن کو اس کی اپنی ان لاک کلید کے ساتھ ایک الگ ورچوئل بلاک ڈیوائس سمجھا جاتا ہے۔

نشانات کو الجھانے کے لیے، یہ تجویز کیا جاتا ہے کہ "قابل تردید" طرز عمل کا ماڈل استعمال کیا جائے، جس کا خلاصہ یہ ہے کہ قیمتی ڈیٹا کو کم قیمتی ڈیٹا والے خفیہ حصوں میں اضافی تہوں کے طور پر چھپا دیا جاتا ہے، جو سیکشنز کی ایک قسم کی پوشیدہ درجہ بندی کی تشکیل کرتا ہے۔ دباؤ کی صورت میں، ڈیوائس کا مالک انکرپٹڈ پارٹیشن کی کلید ظاہر کر سکتا ہے، لیکن اس پارٹیشن میں دیگر پارٹیشنز (15 نیسٹڈ لیولز تک) چھپ سکتے ہیں، اور ان کی موجودگی کا تعین کرنا اور ان کے وجود کو ثابت کرنا مشکل ہے۔

سٹوریج ڈیوائس پر بے ترتیب پوزیشنوں پر رکھے گئے انکرپٹڈ سلائسس کے سیٹ کے طور پر ہر پارٹیشن کو بنا کر چھپایا جاتا ہے۔ ہر سلائس کو متحرک طور پر تخلیق کیا جاتا ہے جب پارٹیشن میں اضافی اسٹوریج کی جگہ کی ضرورت ہوتی ہے۔ تجزیہ کو مزید مشکل بنانے کے لیے، مختلف حصوں کے سلائسز کو تبدیل کیا جاتا ہے، یعنی شفل کیک کے حصے متصل علاقوں سے منسلک نہیں ہیں اور تمام حصوں کے سلائسز کو ملایا جاتا ہے۔ استعمال شدہ اور مفت سلائسز کے بارے میں معلومات ہر پارٹیشن سے وابستہ مقام کے نقشے میں محفوظ کی جاتی ہے، جس کا حوالہ ایک خفیہ کردہ ہیڈر کے ذریعے دیا جاتا ہے۔ کارڈز اور ہیڈر انکرپٹڈ ہیں اور رسائی کلید کو جانے بغیر، بے ترتیب ڈیٹا سے الگ نہیں کیا جا سکتا۔

ہیڈر کو سلاٹس میں تقسیم کیا گیا ہے، جن میں سے ہر ایک اپنے حصے اور متعلقہ سلائسز کی وضاحت کرتا ہے۔ ہیڈر میں سلاٹ اسٹیک کیے گئے ہیں اور بار بار جڑے ہوئے ہیں - موجودہ سلاٹ میں درجہ بندی میں پچھلے حصے کے پیرامیٹرز کو ڈکرپٹ کرنے کی کلید شامل ہے (کم پوشیدہ ہے)، جس سے منسلک تمام کم پوشیدہ حصوں کو ڈکرپٹ کرنے کے لیے ایک پاس ورڈ استعمال کیا جا سکتا ہے۔ منتخب سیکشن. ہر کم پوشیدہ پارٹیشن نیسٹڈ پارٹیشنز کے ٹکڑوں کو مفت سمجھتا ہے۔

پہلے سے طے شدہ طور پر، تمام شفل کیک سب سیکشنز کا نظر آنے والا سائز ٹاپ لیول سیکشن جیسا ہوتا ہے۔ مثال کے طور پر، اگر 1 جی بی ڈیوائس پر تین پارٹیشنز ہیں، تو ان میں سے ہر ایک 1 جی بی پارٹیشن کے طور پر سسٹم کو نظر آئے گا اور کل دستیاب ڈسک اسپیس کو تمام پارٹیشنز کے درمیان شیئر کیا جائے گا - اگر ذخیرہ شدہ ڈیٹا کے کل سائز سے زیادہ ہے۔ ڈیوائس کا اصل سائز، یہ شروع کر دے گا I/O کی خرابی پھینک دی گئی ہے۔

نیسٹڈ سیکشن جو کھلے نہیں ہیں وہ جگہ مختص کرنے میں حصہ نہیں لیتے ہیں، یعنی ٹاپ لیول پارٹیشن کو پُر کرنے کی کوشش کے نتیجے میں نیسٹڈ پارٹیشنز میں ڈیٹا کاٹ دیا جائے گا، لیکن اس ڈیٹا کے سائز کے تجزیہ کے ذریعے ان کی موجودگی کو ظاہر کرنا ممکن نہیں ہو گا جسے پارٹیشن میں خرابی شروع ہونے سے پہلے رکھا جا سکتا ہے (یہ یہ فرض کیا جاتا ہے کہ اوپری پارٹیشنز توجہ ہٹانے کے لیے ناقابل تغیر ڈیٹا پر مشتمل ہوتے ہیں اور کبھی بھی الگ سے استعمال نہیں کیا جاتا ہے، اور باقاعدہ کام ہمیشہ تازہ ترین نیسٹڈ سیکشن کے ساتھ کیا جاتا ہے، اسکیم خود یہ ظاہر کرتی ہے کہ اس کے وجود کے راز کو برقرار رکھنا زیادہ اہم ہے۔ اس ڈیٹا کو کھونے کے بجائے ڈیٹا)۔

درحقیقت، 15 شفل کیک پارٹیشنز ہمیشہ بنائے جاتے ہیں - استعمال شدہ پارٹیشنز کے ساتھ صارف کا پاس ورڈ منسلک ہوتا ہے، اور غیر استعمال شدہ پارٹیشنز کو تصادفی طور پر تیار کردہ پاس ورڈ کے ساتھ فراہم کیا جاتا ہے (یہ سمجھنا ناممکن ہے کہ اصل میں کتنے پارٹیشنز استعمال کیے گئے ہیں)۔ جب شفل کیک پارٹیشنز کو شروع کیا جاتا ہے، تو ان کی جگہ کے لیے مختص کردہ ڈسک، پارٹیشن، یا ورچوئل بلاک ڈیوائس بے ترتیب ڈیٹا سے بھر جاتی ہے، جس کی وجہ سے عام پس منظر کے خلاف شفل کیک میٹا ڈیٹا اور ڈیٹا کی شناخت کرنا ناممکن ہو جاتا ہے۔

شفل کیک کے نفاذ کی کارکردگی کافی زیادہ ہے، لیکن اوور ہیڈ کی موجودگی کی وجہ سے، یہ LUKS سب سسٹم پر مبنی ڈسک انکرپشن کے مقابلے میں تقریباً دو گنا سست ہے۔ شفل کیک کے استعمال کے نتیجے میں سروس ڈیٹا کو ذخیرہ کرنے کے لیے RAM اور ڈسک کی جگہ کے لیے اضافی لاگت آتی ہے۔ میموری کی کھپت کا تخمینہ 60 MB فی پارٹیشن ہے، اور ڈسک کی جگہ کل سائز کا 1% ہے۔ مقابلے کے لیے، WORAM تکنیک، مقصد کے لحاظ سے یکساں، قابل استعمال ڈسک کی جگہ کے 5% نقصان کے ساتھ 200 سے 75 گنا سست روی کا باعث بنتی ہے۔

ٹول کٹ اور کرنل ماڈیول کا تجربہ صرف ڈیبین اور اوبنٹو پر کرنل 5.13 اور 5.15 (اوبنٹو 22.04 پر تعاون یافتہ) کے ساتھ کیا گیا ہے۔ یہ نوٹ کیا جاتا ہے کہ اس منصوبے کو اب بھی کام کرنے والے پروٹو ٹائپ کے طور پر سمجھا جانا چاہئے، جو اہم ڈیٹا کو ذخیرہ کرنے کے لئے استعمال نہیں کیا جانا چاہئے. مستقبل میں، ہم کارکردگی، وشوسنییتا اور سیکورٹی کے لیے اضافی اصلاح کرنے کے ساتھ ساتھ شفل کیک پارٹیشنز سے بوٹ کرنے کی صلاحیت فراہم کرنے کا ارادہ رکھتے ہیں۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں