| NDCTL-REMOVE-PASSPHRASE(1) | ndctl Manual | NDCTL-REMOVE-PASSPHRASE(1) |
نام (NAME)
ndctl-remove-passphrase - جلوگیری از قفل شدن DIMM هنگام قطع برق و بینیازی به عبارت عبور برای دسترسی به رسانه
خلاصه دستور (SYNOPSIS)
ndctl remove-passphrase <nmem0> [<nmem1>..<nmemN>] [<options>]
توضیحات (DESCRIPTION)
جستجوی دستهکلید (keyring) کاربر برای یافتن عبارت عبور رمزگذاریشدهٔ NVDIMM مورد نظر. در صورت پیدا نشدن، برای بارگذاری حباب داده (blob) عبارت عبور تلاش میشود. پس از غیرفعالسازی عبارت عبور، شناسهٔ key-ID از keyring و همچنین blob عبارت عبور از سیستم فایل حذف میشود.
گزینهها (OPTIONS)
<dimm>
-b, --bus=
-v, --verbose
-m, --master-passphrase
مبانی عملکرد (THEORY OF OPERATION)
مشخصات نگارشهای ۱.۷ و ۱.۸ روشهای خاص دستگاه اینتل (Intel DSM) [1] عملیات مدیریت امنیت زیر را معرفی کرد: فعالسازی عبارت عبور (enable passphrase)، بهروزرسانی عبارت عبور (update passphrase)، باز کردن قفل DIMM (unlock DIMM)، غیرفعالسازی امنیت (disable security)، انجماد امنیت (freeze security)، پاکسازی امن رمزشناختی (secure (crypto) erase)، رونویسی (overwrite)، فعالسازی عبارت عبور اصلی (master passphrase enable)، بهروزرسانی عبارت عبور اصلی (master passphrase update) و پاکسازی امن با عبارت عبور اصلی (master passphrase secure erase).
مدیریت امنیت برای NVDIMMها از دو بخش تشکیل شده است. بخش قدامی (front end) از چارچوب مدیریت کلید لینوکس (کلیدهای مورد اعتماد و رمزگذاریشده [2]) برای ذخیره عبارات عبور رمزگذاریشده در دستهکلید (keyring) مدیریتشده توسط هسته استفاده میکند. رابط کاربری این بخش ابزار keyutils است که از APIهای مدیریت کلید در هسته لینوکس استفاده میکند. بخش پسین (back end) بار داده رمزگشاییشده (که همان عبارت عبور DIMM است) را دریافت کرده و آن را به DIMM منتقل میکند.
برخلاف سایر DSMها که توسط libndctl ایجاد شده و از طریق یک ioctl به هسته ارسال میشوند، DSMهای امنیتی از طریق صفت sysfs با نام security زیر دستگاه dimm مدیریت میشوند. یک key-ID در صفت security نوشته میشود و هسته دادههای کلید مرتبط را از دستهکلید کاربر (user keyring) که توسط هسته نگهداری میشود دریافت میکند.
فرایند امنیتی با ایجاد یک master key آغاز میشود که برای مهروموم (رمزگذاری) عبارت عبور DIMM به کار میرود. میتواند یک master key مشترک وجود داشته باشد که برای رمزگذاری عبارت عبور همهٔ DIMMها استفاده شود، یا یک کلید مجزا برای هر DIMM ایجاد گردد. master key همچنین با عنوان key-encryption-key (kek) نیز شناخته میشود. kek میتواند توسط TPM (ماژول بستر قابل اعتماد) روی سیستم ایجاد شود، یا به عنوان جایگزین، System Master Key نیز میتواند به عنوان kek مورد استفاده قرار گیرد.
برای اهداف آزمایشی، یک کلید کاربر با بار دادهٔ تصادفی نیز میتواند به عنوان یک kek استفاده شود. برای جزئیات به [2] مراجعه کنید. برای انجام هرگونه عملیات امنیتی، انتظار میرود که kek به دستهکلید کاربر در هسته اضافه شده باشد، همانطور که در مثال زیر نشان داده شده است:
# keyctl show Session Keyring 736023423 --alswrv 0 0 keyring: _ses 675104189 --alswrv 0 65534 \_ keyring: _uid.0 680187394 --alswrv 0 0 \_ trusted: nvdimm-master
پیش از انجام هر یک از عملیاتهای امنیتی، تمام ناحیهها (regions) مرتبط با DIMM مورد نظر باید غیرفعال شوند. برای عملیات overwrite، علاوه بر regions، دستگاه dimm نیز باید غیرفعال شود.
[1]
http://pmem.io/documents/NVDIMM_DSM_Interface-V1.8.pdf
[2]
https://www.kernel.org/doc/Documentation/security/keys/trusted-encrypted.rst
زیربخشهای زیر ویژگیهای خاص هر قابلیت امنیتی را شرح میدهند..SS "قفلگشایی (UNLOCK)"
قفلگشایی توسط هسته انجام میشود، با این حال یک مرحله آمادهسازی باید پیش از اینکه DSM قفلگشایی بتواند توسط هسته صادر شود، رخ دهد. انتظار میرود که از درون initramfs، یک دستور راهاندازی (ndctl load-keys) پیش از بارگذاری ماژول libnvdimm توسط modprobe اجرا شود. این دستور kek و عبارتهای عبور رمزگذاریشده را به جاکلیدی کاربر هسته تزریق میکند. در طول مرحله probe درایور libnvdimm، اقدامات زیر انجام خواهد شد:
اگر DIMM از قبل قفلگشایی شده باشد، هسته تلاش خواهد کرد تا عبارت عبور را مجدداً اعتبارسنجی کند. اگر اعتبارسنجی مجدد عبارت عبور ناموفق باشد، هسته امنیت را منجمد (freeze) کرده و هرگونه تغییر بعدی در پیکربندی امنیتی را غیرمجاز میکند. یک پارامتر ماژول هسته برای نادیدهگرفتن (override) این رفتار در دسترس است.
راهاندازی عبارت عبور کاربر (SETUP USER PASSPHRASE)
برای راهاندازی عبارت عبور یک DIMM، انتظار میرود که kek مورد استفاده در جاکلیدی کاربر هسته موجود باشد. کلید kek عبارت عبور DIMM را با استفاده از قالب کلید enc32 رمزگذاری میکند. عبارت عبور متن آشکار (plaintext) هرگز توسط کاربر ارائه نمیشود و برای او قابل مشاهده نیست. در عوض، بهطور تصادفی توسط هسته تولید میشود و فضای کاربری (userspace) به آن دسترسی ندارد. پس از رمزگذاری، یک بلاب باینری از عبارت عبور در دایرکتوری ذخیرهسازی بلاب عبارت عبور (/etc/ndctl/keys) نوشته میشود. مسئولیت پشتیبانگیری از بلابهای عبارت عبور در مکانی امن بر عهده کاربر است.
بهروزرسانی عبارت عبور کاربر (UPDATE USER PASSPHRASE)
عملیات بهروزرسانی عبارت عبور کاربر از همان دستور DSM مربوط به فعالسازی عبارت عبور کاربر استفاده میکند. بیشتر کار در سمت مدیریت کلید انجام میشود. کاربر این گزینه را دارد که یک kek جدید برای عبارت عبور جدید ارائه دهد، اما ادامه استفاده از kek موجود نیز قابل قبول است. عملیات زیر برای update-passphrase انجام میشود:
شناسه کلید (key-ID) عبارت عبوری که باید حذف شود در sysfs نوشته میشود. سپس هسته DSM را برای غیرفعال کردن امنیت ارسال میکند، عبارت عبور از keyring حذف شده و داده باینری (blob) مرتبط با عبارت عبور پاک میشود.
پاکسازی امن رمزنگاریشده (CRYPTO (SECURE) ERASE)
این عملیات مشابه remove-passphrase است. هسته قبل و بعد از این عملیات، یک دستورالعمل WBINVD صادر میکند تا اطمینان حاصل شود که هیچ دادهای بر اثر حافظه نهان (CPU cache) قدیمی دچار خرابی نمیشود. برای انجام این عملیات، از دستور sanitize-dimm ابزار ndctl به همراه گزینه --crypto-erase استفاده کنید.
بازنویسی (OVERWRITE)
این عملیات با استفاده از گزینه --overwrite برای دستور sanitize-dimm در ndctl فراخوانی میشود. عملیات بازنویسی کل NVDIMM را پاک میکند. این عملیات میتواند زمان قابلتوجهی ببرد. نکته: بازگشت موفقیتآمیز دستور صرفاً به این معناست که بازنویسی با موفقیت آغاز شده است، نه اینکه بازنویسی تکمیل شده باشد. پس از آن، میتوان از ndctl wait-overwrite برای انتظار کشیدن تا اتمام NVDIMMهایی که در حال انجام بازنویسی هستند استفاده کرد. پس از تکمیل موفقیتآمیز یک بازنویسی، دستورالعمل WBINVD توسط هسته صادر میشود. اگر هر دو گزینه --crypto-erase و --overwrite مشخص شده باشند، عملیات crypto-erase پیش از بازنویسی انجام میشود.
انجماد امنیتی (SECURITY FREEZE)
این عملیات نیازی به عبارت عبور ندارد. این کار باعث میشود هر دستور امنیتی دیگری بهجز پرسوجوی وضعیت (status query)، تا راهاندازی مجدد (بوت) بعدی قفل شود.
راهاندازی، بهروزرسانی و پاکسازی رمزنگاری عبارت عبور اصلی (MASTER PASSPHRASE SETUP, UPDATE, and CRYPTO ERASE)
این عملیاتها مشابه فعالسازی و بهروزرسانی عبارت عبور کاربر هستند. تنها تفاوت این است که از عبارت عبور متفاوتی استفاده میشود. عبارت عبور اصلی هیچ ارتباطی با کلید اصلی (kek) که برای رمزنگاری هر یک از عبارات عبور استفاده میشود ندارد.
کپیرایت و تکثیر (COPYRIGHT)
کپیرایت © 2016 - 2022، Intel Corporation. مجوز GPLv2: گنو GPL نسخه ۲ http://gnu.org/licenses/gpl.html. این نرمافزار آزاد است: شما برای تغییر و توزیع مجدد آن آزاد هستید. هیچ ضمانتی وجود ندارد، تا حدی که قانون اجازه میدهد.
همچنین ببینید (SEE ALSO)
ndctl-setup-passphrase(1), ndctl-update-passphrase(1)
| 2026-06-30 | ndctl |