ঘুমের / র‌্যামে সাসপেন্ড করার আগে আমি কীভাবে উবুন্টুকে (ফুল ডিস্ক এনক্রিপশন ব্যবহার করে) LUKSupend কল করতে সক্ষম করব?


104

এই প্রশ্নটি @ স্টেফান দ্বারা অন্য একটি সম্পর্কিত , তবে এটি এর সদৃশ নয়। প্রশ্নগুলি কিছুটা আলাদা: লেখক কেবল এটি প্রয়োগ করতে পেরেছিলেন কিনা তা জানতে চেয়েছিলেন, আমি কীভাবে এটি করতে (বিশেষভাবে) বিশেষত সহায়তা চাইছি। তদ্ব্যতীত, অন্য প্রশ্নটি প্রয়োগকারীদের জন্য কোনও কার্যকর উত্তর পেল না, সাম্প্রতিক একটি ব্যতীত যা কেবল আমার এ চেষ্টাটির সাথে যুক্ত।

"সদৃশ" সমস্যাটি ব্যাখ্যা করে ...

আমি ফুল ডিস্ক এনক্রিপশন (LUKS এর উপরে LVM) ব্যবহার করে উবুন্টু 14.04 এ আছি এবং আমি luksSuspendস্থগিতকারী পদ্ধতিতে (এবং পরে ব্যবহার luksResumeকরতে পারি) যাতে মেমরির মূল উপাদানটি এবং তালাবিহীন থাকা অবস্থায় আমি কোনও র‌্যাম স্থগিত করতে পারি।

আমি এখন পর্যন্ত আর্ক লিনাক্সের জন্য একটি স্ক্রিপ্ট পোর্ট করার চেষ্টা করেছি , সাফল্য ছাড়াই: আমি কী করছি সে সম্পর্কে সত্যই আমার ধারণা নেই ...

কেউ আমাকে এটি বন্দরে সহায়তা করতে পারে (বা স্ক্র্যাচ থেকে এই জাতীয় কিছু তৈরি করতে পারে)? অথবা, অন্ততপক্ষে, কেউ কীভাবে আমাকে স্থগিতকরণ পদ্ধতিতে স্টাফ হুক করবেন এবং সমস্ত আইও থেকে রুট করার পরেও কীভাবে প্রয়োজনীয় বাইনারি এবং স্ক্রিপ্টগুলি (যেমন ক্রিপ্টসেটআপ) উপলব্ধ রাখবেন সে সম্পর্কে ডকুমেন্টেশনের দিকে আমাকে ইঙ্গিত করতে পারেন luksSuspend?

পুনরায় শুরু করার জন্য কীভাবে প্রয়োজনীয় বাইনারি এবং স্ক্রিপ্টগুলি উপলব্ধ রাখার বিষয়ে, এই অন্যান্য ব্লগ পোস্ট (আর্চের জন্যও) এগুলি অনুলিপি করেছে /boot; তবে আমি আগে উল্লিখিত স্ক্রিপ্টে ভায়নি যা ব্যবহার করেছেন তার পাতায় আরও কিছু ব্যবহার করতে চাই, কারণ এই দিকটি এই দিকটিতে কিছুটা মার্জিত বলে মনে হয়।

আমি খুব বেশি পৌঁছতে পারি নি, তবে আমার বিকাশ গিটহাবের সন্ধানে পাওয়া যাবে


আপনি কী হাইবারনেট / পুনরায় কাজ শুরু করতে ম্যানুয়াল লক কমান্ড যুক্ত করার চেষ্টা করেছেন? উদাহরণস্বরূপ ডিরেক্টরিতে udisksctl lock -b /dev/sdaএকটি স্ক্রিপ্ট যুক্ত /etc/pm/sleep.d/?
আলীরেজা মোসজ্জাল

ধন্যবাদ, আমি এটি খতিয়ে দেখব ... আমি ইতিমধ্যে যা বলতে পারি তা থেকে, এটি কেবলমাত্র cryptsetup luksSuspendআমি ব্যবহার করছি এমন LUKS এর চেয়ে বেশি সাধারণ , তবে অন্যদিকে ফাইল সিস্টেমটি আনমাউন্ট করার প্রয়োজন। এছাড়াও, এটি সম্ভবত কোনও কারাগারে কাজ করবে না (যেহেতু এটি udisksd ডিমনটির সাথে যোগাযোগ করে) এবং ফাইল সিস্টেমটি পুনরায় গণনা / পুনঃসূচনা করতে ব্যবহার করা যায়নি।
জোনাস মালাকো

এমনকি যদি মূল উপাদানটি সরিয়ে ফেলা হয় তবে র‌্যামে সাসপেন্ড করার সময় স্মৃতিতে সম্ভবত অন্যান্য গোপনীয় তথ্য রয়েছে। সুতরাং শুধুমাত্র luks কী পরিত্রাণ লাভ কি?
pefu

@ পেফু ওয়েল, প্রথমত, ডিস্কের গোপনীয় তথ্যের পরিমাণটি র‌্যামের বাম দিক থেকে অনেক বড় হতে পারে। অতিরিক্তভাবে, ডিক্রিপ্টেড ফাইল সিস্টেমে অ্যাক্সেসের তুলনায় র‌্যামের তথ্য সনাক্তকরণ এবং / অথবা পরিবর্তন করার জন্য আক্রমণকারী সক্ষমতা বরং সীমাবদ্ধ।
জোনাস মালাকো

@ জোনাসমালাকোফিলহো: ভাল: আমি আমার ব্যক্তিগত কীগুলিকে আমার ল্যাপটপের সবচেয়ে গোপনীয় উপাদান হিসাবে বিবেচনা করি। অবশ্যই এই ব্যক্তিগত কীগুলি একটি পাসফ্রেজ দ্বারা সুরক্ষিত। প্রারম্ভকালে আমি সাধারণত এই কীগুলি লোড করি এবং এজেন্ট চালাচ্ছি যা অবশ্যই এই কীগুলির একটি ডিক্রিপ্টড অনুলিপি র‍্যামের কোথাও সঞ্চিত আছে। সুতরাং যদি আমার কম্পিউটারটি কোনও পরিশীলিত আক্রমণকারীর হাতে পড়ে যিনি কোনও স্ক্রিন সেভার সুরক্ষা বাইপাস করতে সক্ষম হন এবং র‌্যাম থেকে ডেটা উদ্ধার করতে সক্ষম হন তবে আমি স্থগিতের আগে র‌্যামের এলইউকেএস কীটি নষ্ট করে দিলেও আমি বিভ্রান্ত হব। রাইট?
পেফু

উত্তর:


1

সুস্পষ্টভাবে জানাতে দুঃখিত, তবে আপনি কি ক্রিপ্টসেটআপ লুকসপ্রেসেন্ড / লুকস রেজিউম কমান্ড সমন্বিত কোনও স্ক্রিপ্ট যুক্ত করার চেষ্টা করেছেন /usr/lib/pm-utils/sleep.d? তা হলে কি হয়েছিল?

এটা হাইবারনেট / পুনরায় শুরুতে ক্রিপ্টডিস্কস এবং ক্রিপ্টডিস্ক_প্রিয় পরিষেবাগুলি বন্ধ / কল করা কল করা আমার কাছে যৌক্তিক মনে হবে। ক্রিপ্টডিস্কস_স্টপ এবং ক্রিপ্টডিস্কস_স্টার্টকে কোনও স্ক্রিপ্টের মধ্যে কল pm-utils/sleep.dকরতে চান? আমি ধরে নিই যে cryptsetup luksSuspendসরাসরি কল করার মত একই ফলাফল হবে ।


এখনও অবধি আমার দৃষ্টিভঙ্গি ছিল বিকাল-সাসপেন্ড পরিবর্তন করা। যাইহোক, এখনও কিছু কার্নেল মডিউল লোড হওয়া উপস্থিত রয়েছে যা স্থগিত করার চেষ্টা করার সাথে রুট এফ-এ প্রবেশাধিকার প্রয়োজন (সহ echo mem > /sys/power/state)। দেখুন লিঙ্ক সংগ্রহস্থলের আরো বিস্তারিত জানার জন্য।
জোনাস মালাকো

0

আমি যে নিকটতম সমাধানটি সন্ধান করতে পেরেছি তা হ'ল মিক্কো রাউহালার এই 2013 সালের কনসেপ্ট সাসপেন্ড.শ স্ক্রিপ্টের প্রমাণ।

#!/bin/sh

# A proof of concept script for forgetting LUKS passwords on suspend
# and reasking them on resume.

# The basic idea is to copy all of the files necessary for luksResume
# onto a RAM disk so that we can be sure they'll be available without
# touching the disk at all. Then switch to a text VT to run the resume
# (easier to make sure it'll come up than to do the same with X).

# The suspend itself has to be done from the ramdisk too to make sure it
# won't hang. This is also a reason why this couldn't be reliably done as a
# self-contained /etc/pm/sleep.d script, so to make the concept clear
# (and because I'm lazy) I did just a minimal standalone proof of concept
# instead. Integrating the functionality into the usual pm tools would be
# encouraged. (Though suspend_pmu would apparently need perl on the ramdisk...)

# (C) 2013 Mikko Rauhala 2013, modifiable and distributable under
# CC0, GPLv2 or later, MIT X11 license or 2-clause BSD. Regardless
# of what you pick, there is NO WARRANTY of any kind.

RAMDEV=/dev/ram0
ROOT=/run/cryptosuspend

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# Cleanup not strictly necessary every time but good for development.
# Doing it before rather than after a suspend for debugging purposes

for a in "$ROOT"/dev/pts "$ROOT"/proc "$ROOT"/sys "$ROOT" ; do
    umount "$a" > /dev/null 2>&1
done

if mount | grep -q "$ROOT" ; then
    echo "Cleanup unsuccessful, cryptosuspend root premounted." 1>&2
    exit 2
fi

if grep -q mem /sys/power/state; then
    METHOD=mem
elif grep -q standby /sys/power/state; then
    METHOD=standby
else
    echo "No mem or standby states available, aborting" 1>&2
    exit 1
fi

if ! mount | grep -q "$RAMDEV" ; then
    mkfs -t ext2 -q "$RAMDEV" 8192
    mkdir -p "$ROOT"
    mount "$RAMDEV" "$ROOT"
    mkdir "$ROOT"/sbin "$ROOT"/bin "$ROOT"/dev "$ROOT"/tmp "$ROOT"/proc "$ROOT"/sys
    cp "$(which cryptsetup)" "$ROOT"/sbin
    for a in $(ldd "$(which cryptsetup)" | grep "/" | cut -d / -f 2- | cut -d " " -f 1) ; do
        mkdir -p "$ROOT""$(dirname /$a)"
        cp "/$a" "$ROOT"/"$a"
    done
    cp "$(which busybox)" "$ROOT"/bin/
    ln -s busybox "$ROOT"/bin/sh
    ln -s busybox "$ROOT"/bin/sync
    cp -a /dev "$ROOT"
    mount -t proc proc "$ROOT"/proc
    mount -t sysfs sysfs "$ROOT"/sys
    mount -t devpts devpts "$ROOT"/dev/pts
fi

CRYPTDEVS="$(dmsetup --target crypt status | cut -d : -f 1)"

echo '#!/bin/sh' > "$ROOT"/bin/cryptosuspend
echo "sync" >> "$ROOT"/bin/cryptosuspend
echo "for a in $CRYPTDEVS ; do" >> "$ROOT"/bin/cryptosuspend
echo "  cryptsetup luksSuspend \$a" >> "$ROOT"/bin/cryptosuspend
echo "done" >> "$ROOT"/bin/cryptosuspend
echo "echo -n \"$METHOD\" > /sys/power/state" >> "$ROOT"/bin/cryptosuspend
echo "for a in $CRYPTDEVS ; do" >> "$ROOT"/bin/cryptosuspend
echo '  while ! cryptsetup luksResume'" \$a ; do" >> "$ROOT"/bin/cryptosuspend
echo "    true" >> "$ROOT"/bin/cryptosuspend
echo "  done" >> "$ROOT"/bin/cryptosuspend
echo "done" >> "$ROOT"/bin/cryptosuspend
chmod a+rx "$ROOT"/bin/cryptosuspend

sync
exec openvt -s chroot "$ROOT" /bin/cryptosuspend

এটি উবুন্টুকে 14.04 এ পোর্ট করার দিকে কিছু কাজ করা হয়েছে এটি কোনওভাবেই একটি নিখুঁত সমাধান নয় কারণ এখনও কিছু খোলামেলা সমস্যা রয়েছে এবং এটি প্রদর্শিত হয় যে ১১ ই জুন, ২০১৪ সাল থেকে কোনও কাজ প্রকাশিত হয়নি। তবে এটি ভবিষ্যতের উন্নয়নের জন্য একটি ভাল সূচনার পয়েন্ট বলে মনে হয়।

সূত্র: https://github.com/jonasmalacofilho/ubuntu-luks-sendend

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.