'\" t .\" Title: ndctl-sanitize-dimm .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-06-30 .\" Manual: ndctl Manual .\" Source: ndctl .\" Language: English .\" .TH "NDCTL\-SANITIZE\-DIMM" "1" "2026-06-30" "ndctl" "ndctl Manual" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" ndctl-sanitize-dimm \- تخریب رمزنگاری‌شده یا رونویسی محتویات NVDIMM(های) مشخص‌شده .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIndctl sanitize\-dimm\fP [..] [] .fi .br .SH "توضیحات (DESCRIPTION)" .sp دستور \fIsanitize\-dimm\fP یک تخریب رمزنگاری‌شده از محتویات NVDIMM مشخص‌شده را انجام می‌دهد. این دستور داده‌ها و هرگونه فراداده یا بلوک‌های اطلاعاتی (info\-blocks) را درهم‌ریزی (scramble) می‌کند، اما برچسب‌های فضای نام (namespace labels) را تغییر نمی‌دهد. بنابراین، فضاهای نام روی نواحی مرتبط با NVDIMM مشخص‌شده حفظ می‌شوند، اما در نهایت در حالت خام (\fIraw\fP) قرار خواهند گرفت. .sp علاوه بر این، پس از اتمام اجرای این دستور، امنیت و عبارت عبور برای NVDIMM مشخص‌شده غیرفعال می‌شود و عبارت عبور و تمامی کلیدهای مربوطه نیز از جاکلیدی (keyring) و دایرکتوری کلیدهای ndctl در مسیر /etc/ndctl/keys حذف خواهند شد. .sp این دستور از دو روش مختلف برای پاک‌سازی رمزنگاری‌شده پشتیبانی می‌کند. حالت پیش‌فرض \fIcrypto\-erase\fP است، اما علاوه بر آن، گزینه \fIoverwrite\fP نیز موجود است که نه تنها ناحیه داده‌ها، بلکه ناحیه برچسب‌ها را نیز بازنویسی می‌کند و در نتیجه سابقه هرگونه فضای نامی که NVDIMM مشخص‌شده در آن مشارکت دارد از بین می‌رود. .SH "گزینه‌ها (OPTIONS)" .sp .RS 4 نام دستگاه \fInmemX\fP یا شماره شناسه dimm. محدود کردن عملیات به dimm(های) مشخص‌شده. کلمه کلیدی \fIall\fP می‌تواند برای نشان دادن عدم وجود محدودیت مشخص شود، هرچند این کار معادل عدم ارائه گزینه \-\-dimm است. .RE .sp \-b, \-\-bus= .RS 4 شماره شناسه گذرگاه، یا رشته ارائه‌دهنده (مانند "ACPI.NFIT"). محدود کردن عملیات به گذرگاه(های) مشخص‌شده. کلمه کلیدی \fIall\fP می‌تواند برای نشان دادن عدم وجود محدودیت مشخص شود، هرچند این کار معادل عدم ارائه گزینه \-\-bus است. .RE .sp \-c, \-\-crypto\-erase .RS 4 جایگزینی کلید رمزگذاری رسانه در NVDIMM که باعث می‌شود تمام داده‌های موجود با کلید جدید به عنوان متن رمزشده خوانده شوند. این کار داده‌های برچسب را تغییر نمی‌دهد. فضاهای نام به حالت خام (raw) بازمی‌گردند. .RE .sp \-o, \-\-overwrite .RS 4 پاک‌سازی و امحاء کامل DIMM، شامل داده‌های برچسب. این فرایند می‌تواند زمان قابل‌توجهی ببرد و دستور غیرمسدودکننده (non\-blocking) است. با این گزینه، درخواست رونویسی صرفاً به NVDIMM ارسال می‌شود و تکمیل آن ناهمگام (asynchronous) است. بسته به نوع رسانه و ظرفیت، رونویسی ممکن است از ده‌ها دقیقه تا چندین ساعت طول بکشد. .RE .sp \-m, \-\-master\-passphrase .RS 4 مشخص می‌کند که برای انجام پاک‌سازی از عبارت عبور ارشد (master passphrase) استفاده می‌شود. این گزینه فقط برای حالت \fIcrypto\-erase\fP کاربرد دارد. .RE .sp \-z, \-\-zero\-key .RS 4 ارسال یک کلید با محموله‌ای که تماماً صفر (0) است. .RE .sp \-\-verbose .RS 4 نمایش پیام‌های اشکال‌زدایی. .RE .SH "نحوه عملکرد (THEORY OF OPERATION)" .sp مشخصات روش‌های اختصاصی دستگاه اینتل (Intel DSM) نگارش‌های ۱.۷ و ۱.۸ [1] عملیات مدیریت امنیتی زیر را معرفی کرده‌اند: فعال‌سازی عبارت عبور، به‌روزرسانی عبارت عبور، بازگشایی قفل DIMM، غیرفعال‌سازی امنیت، انجماد امنیت، پاک‌سازی امن (رمزنگاری‌شده)، رونویسی و امحاء، فعال‌سازی عبارت عبور ارشد، به‌روزرسانی عبارت عبور ارشد، و پاک‌سازی امن با عبارت عبور ارشد. .sp مدیریت امنیت برای حافظه‌های NVDIMM از دو بخش تشکیل شده است. بخش فرانت‌اند از چارچوب مدیریت کلید لینوکس (کلیدهای معتمد و رمزگذاری‌شده [2]) برای ذخیره عبارت‌های عبور رمزگذاری‌شده در جاکلیدی (keyring) تحت مدیریت کرنل استفاده می‌کند. رابط کاربری برای این کار ابزار \fIkeyutils\fP است که از رابط‌های برنامه‌نویسی (API) مدیریت کلید در هسته لینوکس استفاده می‌کند. بخش بک‌اند محموله رمزگشایی‌شده (که همان عبارت عبور DIMM است) را دریافت کرده و آن را به DIMM منتقل می‌کند. .sp برخلاف سایر DSMها که توسط libndctl ساخته شده و از طریق ioctl به کرنل ارسال می‌شوند، DSMهای امنیتی از طریق ویژگی sysfs با نام \fIsecurity\fP در زیر دستگاه \fIdimm\fP مدیریت می‌گردند. یک \fIkey\-ID\fP در ویژگی \fIsecurity\fP نوشته می‌شود و کرنل کلیدهای مرتبط را از جاکلیدی کاربر که توسط هسته نگهداری می‌شود، دریافت می‌کند. .sp فرایند امنیتی با تولید یک \fIکلید ارشد\fP (master key) آغاز می‌شود که برای مهر و موم کردن (رمزگذاری) عبارت عبور DIMM به کار می‌رود. می‌تواند یک \fIکلید ارشد\fP مشترک برای رمزگذاری عبارت عبور همه DIMMها وجود داشته باشد، یا برای هر DIMM یک کلید جداگانه تولید شود. به کلید ارشد، \fIkey\-encryption\-key\fP (یا kek) نیز گفته می‌شود. \fIkek\fP می‌تواند توسط ماژول بستر معتمد (TPM) روی سیستم ایجاد شود، یا متناوباً از \fIکلید ارشد سیستم\fP به عنوان \fIkek\fP استفاده گردد. .sp برای اهداف آزمایشی، می‌توان از یک کلید کاربری با محموله تصادفی نیز به عنوان \fIkek\fP استفاده کرد. برای جزئیات به [2] مراجعه کنید. برای انجام هرگونه عملیات امنیتی، انتظار می‌رود که \fIkek\fP به جاکلیدی کاربر در هسته اضافه شده باشد، همان‌طور که در مثال زیر نشان داده شده است: .sp .if n .RS 4 .nf .fam C # keyctl show Session Keyring 736023423 \-\-alswrv\& 0\& 0\& keyring: _ses 675104189 \-\-alswrv\& 0 65534\& \(rs_ keyring: _uid.0 680187394 \-\-alswrv\& 0\& 0\& \(rs_ trusted: nvdimm\-master .fam .fi .if n .RE .sp پیش از انجام هر یک از عملیات‌های امنیتی، تمام نواحی (regions) مرتبط با DIMM مورد نظر باید غیرفعال شوند. برای عملیات \fIoverwrite\fP، علاوه بر \fIregions\fP، خود \fIdimm\fP نیز باید غیرفعال گردد. .sp [1] \c .URL "http://pmem.io/documents/NVDIMM_DSM_Interface\-V1.8.pdf" "" .br [2] \c .URL "https://www.kernel.org/doc/Documentation/security/keys/trusted\-encrypted.rst" "" "" .sp بخش‌های زیر ویژگی‌های خاص هر قابلیت امنیتی را شرح می‌دهند. .SS "بازگشایی قفل (UNLOCK)" .sp بازگشایی قفل توسط کرنل انجام می‌شود، اما پیش از آنکه دستور DSM بازگشایی قفل توسط هسته صادر شود، باید یک مرحله آماده‌سازی انجام گیرد. انتظار می‌رود از درون initramfs، یک دستور راه‌اندازی (ndctl \fIload\-keys\fP) پیش از بارگذاری ماژول libnvdimm توسط modprobe اجرا شود. این دستور \fIkek\fP و عبارت‌های عبور رمزگذاری‌شده را به جاکلیدی کاربر در کرنل تزریق می‌کند. در طول فرایند کاوش (\fIprobe\fP) درایور libnvdimm، اقدامات زیر انجام می‌شوند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ . sp -1 . IP " 1." 4.2 .\} بررسی وضعیت امنیتی دستگاه و بررسی اینکه آیا DIMM قفل است یا خیر .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ . sp -1 . IP " 2." 4.2 .\} درخواست عبارت عبور رمزگذاری‌شده مرتبط از جاکلیدی کاربر در هسته .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ . sp -1 . IP " 3." 4.2 .\} استفاده از \fIkek\fP برای رمزگشایی عبارت عبور .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ . sp -1 . IP " 4." 4.2 .\} ایجاد DSM بازگشایی قفل و کپی کردن محموله رمزگشایی‌شده درون DSM .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ . sp -1 . IP " 5." 4.2 .\} صدور DSM برای بازگشایی قفل DIMM .RE .sp اگر DIMM از قبل باز شده باشد، هسته تلاش می‌کند عبارت عبور را مجدداً اعتبارسنجی کند. اگر اعتبارسنجی مجدد عبارت عبور ناموفق باشد، هسته امنیت را منجمد کرده و از هرگونه تغییرات بعدی در پیکربندی امنیتی جلوگیری می‌کند. یک پارامتر ماژول هسته برای نادیده گرفتن این رفتار در دسترس است. .SS "تنظیم عبارت عبور کاربر (SETUP USER PASSPHRASE)" .sp برای تنظیم عبارت عبور یک DIMM، انتظار می‌رود که \fIkek\fP مورد استفاده در جاکلیدی کاربر در هسته موجود باشد. کلید \fIkek\fP عبارت عبور DIMM را با استفاده از قالب کلید \fIenc32\fP رمزگذاری می‌کند. عبارت عبور متنی ساده هرگز توسط کاربر ارائه نمی‌شود و برای وی قابل مشاهده نیست؛ بلکه به صورت تصادفی توسط هسته تولید شده و فضای کاربری به آن دسترسی ندارد. پس از رمزگذاری، یک داده باینری (blob) از عبارت عبور در دایرکتوری ذخیره داده‌های عبارت عبور (/etc/ndctl/keys) نوشته می‌شود. تهیه نسخه پشتیبان از این فایل‌های باینری عبارت عبور در یک مکان امن بر عهده کاربر است. .SS "به‌روزرسانی عبارت عبور کاربر (UPDATE USER PASSPHRASE)" .sp عملیات به‌روزرسانی عبارت عبور کاربر از همان دستور DSM فعال‌سازی عبارت عبور کاربر استفاده می‌کند. بیشتر کارها در سمت مدیریت کلید انجام می‌شود. کاربر این امکان را دارد که یک \fIkek\fP جدید برای عبارت عبور جدید ارائه دهد، اما ادامه استفاده از \fIkek\fP موجود نیز قابل قبول است. عملیات‌های زیر برای \fIupdate\-passphrase\fP انجام می‌شوند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ . sp -1 . IP " 1." 4.2 .\} حذف عبارت عبور رمزگذاری‌شده از جاکلیدی کاربر در هسته. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ . sp -1 . IP " 2." 4.2 .\} تغییر نام فایل باینری عبارت عبور به old. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ . sp -1 . IP " 3." 4.2 .\} بارگذاری این فایل باینری عبارت عبور قدیمی در جاکلیدی با نام "old". .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ . sp -1 . IP " 4." 4.2 .\} ایجاد عبارت عبور جدید و رمزگذاری آن با \fIkek\fP. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ . sp -1 . IP " 5." 4.2 .\} ارسال DSM با عبارت‌های عبور رمزگشایی‌شده قدیمی و جدید. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ . sp -1 . IP " 6." 4.2 .\} حذف عبارت عبور قدیمی و فایل باینری آن از جاکلیدی. .RE .SS "حذف عبارت عبور کاربر (REMOVE USER PASSPHRASE)" .sp شناسه کلید (\fIkey\-ID\fP) مربوط به عبارت عبوری که باید حذف شود، در sysfs نوشته می‌شود. سپس هسته DSM غیرفعال‌سازی امنیت را ارسال می‌کند، و عبارت عبور از جاکلیدی حذف شده و فایل باینری عبارت عبور مرتبط پاک می‌گردد. .SS "پاک‌سازی امن رمزنگاری‌شده (CRYPTO (SECURE) ERASE)" .sp این عملیات شبیه به remove\-passphrase است. کرنل قبل و بعد از عملیات دستور WBINVD را اجرا می‌کند تا اطمینان حاصل شود که به دلیل حافظه موقت (cache) کهنه پردازنده، هیچ‌گونه خرابی داده‌ای رخ نمی‌دهد. برای انجام این عملیات از دستور sanitize\-dimm متعلق به ndctl با گزینه \f(CR\-\-crypto\-erase\fP استفاده کنید. .SS "رونویسی و امحاء (OVERWRITE)" .sp این کار با استفاده از گزینه \f(CR\-\-overwrite\fP در دستور ndctl \fIsanitize\-dimm\fP فراخوانی می‌شود. عملیات رونویسی کل NVDIMM را به طور کامل پاک و بازنویسی می‌کند. این عملیات می‌تواند زمان قابل‌توجهی ببرد. توجه: هنگامی که دستور با موفقیت بازمی‌گردد، صرفاً به این معناست که فرایند رونویسی با موفقیت آغاز شده است، نه اینکه رونویسی به پایان رسیده باشد. متعاقباً می‌توان از \fIndctl wait\-overwrite\fP برای انتظار جهت تکمیل کار NVDIMMهایی که در حال رونویسی هستند استفاده کرد. پس از تکمیل موفقیت‌آمیز رونویسی، دستور WBINVD توسط هسته صادر می‌شود. اگر هر دو گزینه \-\-crypto\-erase و \-\-overwrite با هم مشخص شوند، ابتدا crypto\-erase پیش از overwrite اجرا می‌شود. .SS "انجماد امنیت (SECURITY FREEZE)" .sp این عملیات نیازی به عبارت عبور ندارد. این کار باعث می‌شود هرگونه دستور امنیتی به غیر از پرس‌وجوی وضعیت (status query) تا راه‌اندازی (بوت) بعدی قفل و مسدود شود. .SS "تنظیم، به‌روزرسانی و پاک‌سازی امن عبارت عبور ارشد (MASTER PASSPHRASE SETUP, UPDATE, and CRYPTO ERASE)" .sp این عملیات‌ها مشابه فعال‌سازی و به‌روزرسانی عبارت عبور کاربر هستند. تنها تفاوت در این است که از یک عبارت عبور متفاوت استفاده می‌شود. عبارت عبور ارشد هیچ ارتباطی با کلید ارشد (\fIkek\fP) که برای رمزگذاری هر یک از عبارت‌های عبور استفاده می‌شود، ندارد. .SH "حق نشر (COPYRIGHT)" .sp حق نشر \(co 2016 \- 2022، شرکت اینتل (Intel Corporation). مجوز GPLv2: گنو GPL نسخه ۲ \c .URL "http://gnu.org/licenses/gpl.html" "" "." این نرم‌افزار آزاد است: شما مجاز به تغییر و توزیع مجدد آن هستید. هیچ ضمانتی وجود ندارد، تا حدی که قانون مجاز دانسته است. .SH "همچنین ببینید (SEE ALSO)" .sp ndctl\-wait\-overwrite(1), \c .URL "https://trustedcomputinggroup.org/wp\-content/uploads/TCG_SWG_SIIS_Version_1_07_Revision_1_00.pdf" "" ""