| CRYPTSETUP-PLAINOPEN(8) | دستورهای مدیریتی و نگهداری | CRYPTSETUP-PLAINOPEN(8) |
نام (NAME)
cryptsetup-plainOpen - باز کردن یک دستگاه رمزگذاریشده ساده (plain) و ایجاد نگاشت
خلاصه دستور (SYNOPSIS)
cryptsetup plainOpen
[<گزینهها>]
<دستگاه>
<نام>
cryptsetup open --type plain
[<گزینهها>]
<دستگاه>
<نام>
توضیحات (DESCRIPTION)
یک نگاشت با نام مشخص برای یک دستگاه رمزگذاریشده بدون هدر (حالت plain) ایجاد میکند.
دستور plainOpen یک نام مستعار رسمی برای دستور open --type plain است. در این دستور، ترتیب آرگومانها به صورت استاندارد <دستگاه> <نام> است (برخلاف دستور قدیمی و منسوخشده create که ترتیب آرگومانهای آن به دلایل تاریخی به صورت معکوس یعنی <نام> <دستگاه> بود).
دستگاههای نوع plain هدر یا متادیتایی روی دیسک ندارند. بنابراین، تمام پارامترهای رمزنگاری باید دقیقاً همانند زمان ایجاد نگاشت اولیه مشخص شوند تا دادهها به درستی رمزگشایی گردند. در صورت اشتباه وارد کردن گذرواژه یا هر یک از پارامترها، نگاشت همچنان ایجاد خواهد شد اما دادههای خواندهشده از آن نامفهوم و خراب خواهند بود.
هشدار: شما همیشه باید گزینههای --cipher، --key-size و (در صورتی که از فایل کلید یا جاکلیدی استفاده نمیشود) همچنین --hash را به صورت صریح مشخص کنید تا از بروز ناسازگاری جلوگیری شود، زیرا مقادیر پیشفرض ممکن است در نسخههای مختلف cryptsetup متفاوت باشند.
قالب plain همچنین امکان بازیابی کلید حجم را از یک جاکلیدی هسته (kernel keyring) مشخصشده توسط گزینه --volume-key-keyring فراهم میکند. کلید موجود در جاکلیدی هسته باید قبل از اجرای دستورات cryptsetup پیکربندی شده باشد، زیرا cryptsetup در حالت plain هیچ کلیدی را در جاکلیدی بارگذاری نمیکند. برای دستورهای بعدی (مانند تغییر اندازه)، کاربر باید اطمینان حاصل کند که کلید موجود در جاکلیدی بدون تغییر باقی مانده است؛ در غیر این صورت، بارگذاری مجدد کلید ممکن است پس از یک تغییر غیرمنتظره در کلید، موجب خرابی دادهها شود.
<گزینهها>
میتوانند
شامل موارد
زیر باشند:
[--hash, --cipher, --verify-passphrase,
--sector-size, --key-file, --keyfile-size,
--keyfile-offset, --key-size, --offset, --skip,
--device-size, --size, --readonly, --shared,
--allow-discards, --refresh, --timeout,
--iv-large-sectors, --volume-key-keyring].
گزینهها (OPTIONS)
--allow-discards
هشدار: این گزینه میتواند تاثیر منفی امنیتی داشته باشد زیرا ممکن است عملیات در سطح سیستمفایل را روی دستگاه فیزیکی آشکار سازد. به عنوان مثال، در صورتی که بلوکهای دور انداختهشده بعداً قابل شناسایی باشند، اطلاعاتی مانند نوع سیستمفایل، فضای مصرفی و غیره ممکن است از دستگاه فیزیکی نشت پیدا کرده و قابل استخراج باشد. در صورت شک و تردید، از این گزینه استفاده نکنید.
به نسخه هسته ۳.۱ یا بالاتر نیاز است. برای هستههای قدیمیتر، این گزینه نادیده گرفته میشود.
--batch-mode, -q
اگر گزینه --verify-passphrase مشخص نشده باشد، این گزینه تایید و اعتبارسنجی گذرواژه را نیز غیرفعال میکند.
--cipher, -c <مشخصات_رمز>
برای دستگاههای نوع tcrypt، این گزینه زنجیرههای رمز بررسیشده را هنگام جستجو برای هدر محدود میکند.
دستور cryptsetup --help مقادیر پیشفرض کامپایلشده را نشان میدهد.
اگر یک تابع درهمسازی (هش) بخشی از مشخصات رمز باشد، به عنوان بخشی از تولید بردار مقداردهی اولیه (IV) استفاده میشود. به عنوان مثال، ESSIV به یک تابع هش نیاز دارد، در حالی که "plain64" به آن نیازی ندارد و بنابراین هیچ هشی مشخص نمیشود.
برای حالت XTS میتوانید به صورت اختیاری با گزینه -s اندازه کلید ۵۱۲ بیت را تنظیم کنید. اندازه کلید برای حالت XTS به منظور دستیابی به همان سطح امنیت، دو برابر سایر حالتها است.
--debug یا --debug-json
اگر از --debug-json استفاده شود، ساختارهای داده اضافی LUKS2 JSON نیز چاپ میشوند.
--device-size اندازه[واحدها]
اگر هیچ پسوند واحدی مشخص نشود، اندازه بر حسب بایت در نظر گرفته میشود.
پسوند واحد میتواند S برای سکتورهای ۵۱۲ بایتی، K/M/G/T (یا KiB، MiB، GiB، TiB) برای واحدهای بر مبنای ۱۰۲۴، یا KB/MB/GB/TB برای مبنای ۱۰۰۰ (مقیاس SI) باشد.
--disable-external-tokens
--disable-keyring
--disable-locks
هشدار: از این گزینه استفاده نکنید مگر اینکه cryptsetup را در یک محیط محدود اجرا کنید که قفلگذاری در آن غیرممکن باشد (جایی که نمیتوان از دایرکتوری /run استفاده کرد).
--disable-veracrypt
--external-tokens-path مسیر_مطلق
--hash, -h <مشخصات_هش>
برای دستگاههای نوع tcrypt، این گزینه انواع PBKDF2 بررسیشده را هنگام جستجو برای هدر محدود میسازد.
--header <دستگاه یا فایل ذخیرهکننده هدر LUKS>
هشدار: هیچ بررسی انجام نمیشود که آیا دستگاه متن رمزگذاریشده مشخصشده واقعاً متعلق به هدر دادهشده است یا خیر. در واقع، شما میتوانید با گزینه --header یک دستگاه دلخواه را به عنوان دستگاه متن رمزگذاریشده مشخص کنید. با احتیاط استفاده کنید.
--help, -?
--iv-large-sectors
نکته: این گزینه هیچ تاثیری بر کارایی یا امنیت ندارد؛ تنها برای دسترسی به ایمیجهای دیسک ناسازگار موجود از سایر سیستمها که به این گزینه نیاز دارند استفاده میشود.
--key-description متن
--key-file, -d نام_فایل
اگر نام دادهشده "-" باشد، گذرواژه از ورودی استاندارد (stdin) خوانده میشود. در این حالت، خواندن با رسیدن به نویسه خط جدید متوقف نمیشود.
نکته: در دستگاه نوع plain، گذرواژه به دست آمده از طریق گزینه --key-file مستقیماً به dm-crypt ارسال میشود. بر خلاف حالت تعاملی (stdin) که در آن خلاصه هش (گزینه --hash) گذرواژه به dm-crypt فرستاده میشود.
برای اطلاعات بیشتر، بخش NOTES ON PASSPHRASE PROCESSING را در cryptsetup(8) ببینید.
--keyfile-offset مقدار
--keyfile-size, -l مقدار
این گزینه به عنوان مثال برای حذف خطوط جدید پایانی مفید است. اگر --keyfile-offset نیز داده شده باشد، شمارش اندازه پس از مقدار آفست آغاز میشود.
--key-size, -s بیتها
برای اطلاعات بیشتر /proc/crypto را ببینید. توجه داشته باشید که اندازه کلید در /proc/crypto بر حسب بایت بیان میشود.
این گزینه برای دستگاههای نوع plain و luks قابل استفاده است.
--key-slot, -S <0-N>
حداکثر تعداد اسلاتهای کلید به نسخه LUKS بستگی دارد. LUKS1 میتواند تا ۸ اسلات کلید داشته باشد. LUKS2 بر اساس اندازه ناحیه اسلات کلید و اندازه کلید میتواند تا ۳۲ اسلات کلید داشته باشد، اما شناسه معتبر اسلات کلید برای LUKS2 همیشه مقداری بین ۰ تا ۳۱ است.
--link-vk-to-keyring <شرح_جاکلیدی>::<شرح_کلید>
رشته <شرح_جاکلیدی> باید حاوی توصیف جاکلیدی موجود در هسته باشد. نام جاکلیدی میتواند به صورت اختیاری دارای پیشوند نوع "%:" یا "%keyring:" باشد. همچنین جاکلیدی را میتوان مستقیماً با شناسه عددی کلید مشخص کرد. علاوه بر این، نمادگذاریهای ویژه جاکلیدی که با "@" آغاز میشوند نیز میتوانند برای انتخاب جاکلیدیهای پیشتعریفشده هسته استفاده شوند.
رشته "::" به عنوان جداکننده میان شرح جاکلیدی و شرح کلید به کار میرود.
بخش <شرح_کلید> نوع کلید و نام کلید حجم پیوندیافته در جاکلیدی توصیفشده در <شرح_جاکلیدی> را شرح میدهد. نوع میتواند با افزودن پیشوند "%<نام_نوع>:" در ابتدای نام کلید تعیین شود. اگر نوع حذف شود، نوع پیشفرض user اعمال میگردد. اگر کلیدی با همان نام و همان نوع از قبل در جاکلیدی وجود داشته باشد، در طول فرایند جایگزین خواهد شد.
همچنین بخش KEY IDENTIFIERS را در keyctl(1) ببینید.
--offset, -o <تعداد سکتورهای ۵۱۲ بایتی>
--perf-high_priority
این گزینه تنها برای تنظیم عملکرد سطح پایین dm-crypt در دسترس است؛ تنها در صورتی استفاده کنید که به تغییر در رفتار پیشفرض dm-crypt نیاز داشته باشید. به نسخه هسته ۶.۱۰ یا بالاتر نیاز دارد.
--perf-no_read_workqueue, --perf-no_write_workqueue
نکته: این گزینهها تنها برای تنظیم عملکرد سطح پایین dm-crypt در دسترس هستند؛ تنها در صورتی استفاده کنید که به تغییر رفتار پیشفرض dm-crypt نیاز داشته باشید. به هسته ۵.۹ یا بالاتر نیاز دارد.
--perf-same_cpu_crypt
نکته: این گزینه تنها برای تنظیم عملکرد سطح پایین dm-crypt در دسترس است؛ تنها در صورتی استفاده کنید که به تغییر رفتار پیشفرض dm-crypt نیاز داشته باشید. به هسته ۴.۰ یا بالاتر نیاز دارد.
--perf-submit_from_crypt_cpus
نکته: این گزینه تنها برای تنظیم عملکرد سطح پایین dm-crypt در دسترس است؛ تنها در صورتی استفاده کنید که به تغییر در رفتار پیشفرض dm-crypt نیاز داشته باشید. به هسته ۴.۰ یا بالاتر نیاز دارد.
--persistent
اگر نیاز به حذف یک فلگ ماندگار دارید، از --persistent بدون فلگی که میخواهید حذف شود استفاده کنید (به عنوان مثال، برای غیرفعال کردن فلگ ذخیرهشده دور انداختن، از --persistent بدون --allow-discards استفاده نمایید).
تنها گزینههای --allow-discards، --perf-same_cpu_crypt، --perf-submit_from_crypt_cpus، --perf-no_read_workqueue، --perf-no_write_workqueue و --integrity-no-journal میتوانند به صورت ماندگار ذخیره شوند.
--readonly, -r
--refresh
--sector-size بایتها
افزایش اندازه سکتور از ۵۱۲ بایت به ۴۰۹۶ بایت میتواند در اکثر دستگاههای ذخیرهسازی مدرن و همچنین با برخی از شتابدهندههای سختافزاری رمزنگاری، کارایی بهتری را ارائه دهد.
توجه داشته باشید که استفاده از اندازه سکتور بزرگتر از اندازه سکتور فیزیکی دستگاه ذخیرهسازی زیربنایی ممکن است در هنگام قطع غیرمنتظره برق منجر به خرابی دادهها شود. قطع برق در حین عملیات نوشتن ممکن است منجر به تکمیل ناقص نوشتن سکتور رمزنگاری شده و دادههای رمزگذاریشده را در وضعیتی ناسازگار رها کند که نتوان آنها را به درستی رمزگشایی کرد.
--serialize-memory-hard-pbkdf
نکته: این یک راهکار جایگزین موقت برای وضعیتی خاص است که چندین دستگاه به صورت موازی فعال میشوند و سیستم به جای گزارش کمبود حافظه، فرایندها را با استفاده از قاتل حافظه (OOM killer) بدون قید و شرط متوقف میکند.
تا زمانی که محیط بوتی با فعالسازی موازی دستگاهها پیادهسازی نمیکنید، از این سوئیچ استفاده نکنید!
--shared
--size, -b <تعداد سکتورهای ۵۱۲ بایتی>
--skip, -p <تعداد سکتورهای ۵۱۲ بایتی>
بنابراین، اگر --offset برابر n و --skip برابر s باشد، سکتور n (اولین سکتور دستگاه رمزگذاریشده) شماره سکتور s را برای محاسبه IV دریافت خواهد کرد.
--tcrypt-backup, --tcrypt-hidden, --tcrypt-system
--test-passphrase
--timeout, -t <تعداد ثانیهها>
این گزینه زمانی مفید است که سیستم در صورت عدم ورود گذرواژه توسط کاربر نباید معطل یا متوقف بماند؛ به عنوان مثال هنگام راهاندازی و بوت سیستم. مقدار پیشفرض ۰ ثانیه است، به این معنی که تا ابد منتظر میماند.
--token-id
--token-only
این گزینه اجازه میدهد توکنهای LUKS2 محافظتشده با پین (PIN) بر درخواست تعاملی گذرواژه اسلات کلید اولویت داشته باشند.
--token-type نوع
این گزینه اجازه میدهد توکنهای LUKS2 از نوع محافظتشده با پین (PIN) بر درخواست تعاملی گذرواژه اسلات کلید تقدم داشته باشند.
--tries, -T
--type <نوع_دستگاه>
--unbound
--usage
--veracrypt
--veracrypt-pim, --veracrypt-query-pim
--verify-passphrase, -y
توصیه میشود هنگام ایجاد نگاشت نوع plain برای اولین بار از این گزینه استفاده کنید.
در صورت دریافت ورودی از فایل یا ورودی استاندارد (stdin)، نادیده گرفته میشود.
--version, -V
--volume-key-file نام_فایل, --master-key-file نام_فایل (نام مستعار منسوخشده)
این گزینه به کاربر امکان میدهد دستگاههای نوع luks و bitlk را بدون وارد کردن گذرواژه باز کند.
برای دستگاههای در حال رمزنگاری مجدد (reencryption)، این گزینه ممکن است دو بار برای تعیین کلیدهای حجم قدیم و جدید استفاده شود. در صورت استفاده دوباره از این گزینه، مطمئن شوید که هر گزینه --volume-key-file را با پارامتر --key-size متناظر جفت کردهاید.
--volume-key-keyring <شرح کلید>
این گزینه امکان باز کردن دستگاههای نوع luks و plain را بدون وارد کردن گذرواژه فراهم میکند.
برای LUKS، کلید و نوع مرتبط با آن باید از فضای کاربری قابل خواندن باشد تا خلاصه کلید حجم بتواند قبل از فعالسازی تایید و بررسی شود. برای دستگاههای در حال رمزنگاری مجدد، این گزینه میتواند دو بار برای تعیین هر دو کلید حجم قدیم و جدید استفاده شود.
برای نوع PLAIN، کاربر باید اطمینان حاصل کند که کلید موجود در جاکلیدی از زمان فعالسازی دستنخورده باقی مانده است؛ در غیر این صورت، بارگذاری مجدد کلید میتواند پس از یک تغییر غیرمنتظره در کلید موجب خرابی دادهها شود.
عبارت <شرح کلید> از نحوی سازگار با keyctl استفاده میکند. این مقدار میتواند یک شناسه عددی کلید یا یک نام متنی در قالب %<نوع کلید>:<نام کلید> باشد. همچنین بخش KEY IDENTIFIERS را در keyctl(1) ببینید. در صورت عدم تعیین پیشوند %<نوع کلید>:، فرض میشود نوع کلید برابر user (نوع پیشفرض) است.
مثالها (EXAMPLES)
برای نگاشت دستگاه خام رمزگذاریشده /dev/sda10 به دستگاه رمزگشاییشده /dev/mapper/e1 میتوانید از دستور زیر استفاده کنید:
cryptsetup plainOpen --cipher aes-cbc-essiv:sha256 --key-size 256 --hash sha256 /dev/sda10 e1
یا با استفاده از نحو کامل دستور open:
cryptsetup open --type plain --cipher aes-cbc-essiv:sha256 --key-size 256 --hash sha256 /dev/sda10 e1
دستگاه نگاشتشده /dev/mapper/e1 پس از آن میتواند مانند یک دستگاه بلوکی عادی برای سوار کردن (مانت) سیستمفایل، بررسی با fsck یا ایجاد سیستمفایل استفاده شود.
برای نگاشت دستگاه با استفاده از کلید حجم موجود در یک جاکلیدی از پیشپیکربندیشده هسته (مانند %trusted:mykey)، باید جاکلیدی را مشخص کرده و گزینه هش را حذف کنید:
cryptsetup plainOpen /dev/sda10 e1 --volume-key-keyring=%trusted:mykey --cipher aes-xts-plain64 --key-size 256
توجه داشته باشید که اندازه کلید باید دقیقاً با کلید موجود در جاکلیدی مطابقت داشته باشد.
باز کردن یک دستگاه به صورت فقطخواندنی با اندازه سکتور ۴۰۹۶ بایت:
cryptsetup plainOpen --readonly --sector-size 4096 --cipher aes-xts-plain64 --key-size 512 /dev/sdb1 my_backup
گزارش باگها (REPORTING BUGS)
گزارش باگها در لیست پستی cryptsetup <cryptsetup@lists.linux.dev> یا در بخش مسائل پروژه https://gitlab.com/cryptsetup/cryptsetup/-/issues/new.
لطفاً خروجی دستور ناموفق را همراه با گزینه --debug پیوست کنید.
همچنین ببینید (SEE ALSO)
پرسشهای متداول cryptsetup (FAQ) https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions
cryptsetup(8), cryptsetup-create(8), cryptsetup-open(8), integritysetup(8) و veritysetup(8)
کریپتستآپ (CRYPTSETUP)
بخشی از پروژه cryptsetup https://gitlab.com/cryptsetup/cryptsetup.
| مه ۲۰۲۵ | cryptsetup 2.7.5 |