'\" t .\" Title: ndctl-update-passphrase .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-06-30 .\" Manual: ndctl Manual .\" Source: ndctl .\" Language: Persian .\" .TH "NDCTL\-UPDATE\-PASSPHRASE" "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-update-passphrase \- به‌روزرسانی یا تنظیم گذرواژه امنیتی کلیدهای NVDIMM .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fIndctl update\-passphrase\fP [..] [<گزینه‌ها>] .fi .br .SH "توضیحات (DESCRIPTION)" .sp به‌روزرسانی گذرواژه امنیتی برای یک یا چند NVDIMM. پیش‌نیازها برای اجرای موفقیت‌آمیز دستور: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ . sp -1 . IP " 1." 4.2 .\} کلید \fIkek\fP در جاکلیدی کاربری هسته بارگذاری شده باشد. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ . sp -1 . IP " 2." 4.2 .\} دستور setup\-passphrase با موفقیت روی NVDIMM اجرا شده باشد. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} یا در غیر این صورت، قفل NVDIMM باز (unlocked) باشد. .RE .RE .sp داده‌های دودویی (blob) به‌روزرسانی‌شده کلید در دایرکتوری ‎/etc/ndctl/keys با فرمت نام فایل "nvdimm__.blob" ایجاد خواهند شد. .SH "گزینه‌ها (OPTIONS)" .sp .RS 4 نام دستگاه \fInmemX\fP یا شماره شناسه dimm. عملیات را به dimm(های) مشخص‌شده محدود می‌کند. کلیدواژه \fIall\fP می‌تواند برای مشخص کردن عدم وجود هرگونه محدودیت استفاده شود، هرچند این کار معادل عدم ارائه گزینه \-\-dimm است. .RE .sp \-b, \-\-bus= .RS 4 یک شماره شناسه گذرگاه (bus id) یا یک رشته ارائه‌دهنده (مانند "ACPI.NFIT"). عملیات را به گذرگاه(های) مشخص‌شده محدود می‌کند. کلیدواژه \fIall\fP می‌تواند برای مشخص کردن عدم وجود هرگونه محدودیت استفاده شود، هرچند این کار معادل عدم ارائه گزینه \-\-bus است. .RE .sp \-k, \-\-key_handle= .RS 4 شناسه دسترسی (Handle) برای \fIkek\fP اصلی (کلید رمزگذاری کلید یا key\-encryption\-key) که برای پلمپ کردن گذرواژه(ها) برای DIMM(های) داده‌شده استفاده خواهد شد. قالب به این صورت است: \f(CR<نوع کلید>:<توضیحات کلید>\fP مانند \f(CRtrusted:nvdimm\-master\fP .br نکته: انتظار می‌رود \fIkek\fP از قبل در جاکلیدی کاربر بارگذاری شده باشد. .RE .sp \-m, \-\-master\-passphrase .RS 4 نشان می‌دهد که ما در حال مدیریت گذرواژه اصلی (master passphrase) به جای گذرواژه کاربری (user passphrase) هستیم. .RE .sp \-v, \-\-verbose .RS 4 نمایش پیام‌های اشکال‌زدایی (دیباگ). .RE .SH "نحوه عملکرد (THEORY OF OPERATION)" .sp مشخصات روش‌های ویژه دستگاه اینتل (Intel DSM) نسخه ۱.۷ و ۱.۸ [1] عملیات مدیریت امنیت زیر را معرفی کرد: فعال‌سازی گذرواژه، به‌روزرسانی گذرواژه، باز کردن قفل DIMM، غیرفعال‌سازی امنیت، تثبیت امنیت (freeze security)، پاک‌سازی امن (رمزنگاری‌شده)، بازنویسی، فعال‌سازی گذرواژه اصلی، به‌روزرسانی گذرواژه اصلی و پاک‌سازی امن گذرواژه اصلی. .sp مدیریت امنیت برای NVDIMMها از دو بخش تشکیل شده است. بخش فرانت‌اند (Front end) از چارچوب مدیریت کلید لینوکس (کلیدهای مورد اعتماد و رمزگذاری‌شده [2]) برای ذخیره گذرواژه‌های رمزگذاری‌شده در جاکلیدی تحت مدیریت هسته استفاده می‌کند. رابط کاربری برای این منظور، ابزار کاربردی \fIkeyutils\fP است که از APIهای مدیریت کلید در هسته لینوکس استفاده می‌کند. بخش بک‌اند (Back end) بار داده (payload) رمزگشایی‌شده را (که همان گذرواژه DIMM است) دریافت کرده و به DIMM منتقل می‌کند. .sp برخلاف سایر DSMها که توسط libndctl ساخته شده و از طریق یک ioctl به هسته ارسال می‌شوند، DSMهای امنیتی از طریق ویژگی sysfs با نام \fIsecurity\fP در زیر دستگاه \fIdimm\fP مدیریت می‌شوند. یک \fIkey\-ID\fP در ویژگی \fIsecurity\fP نوشته می‌شود و هسته داده‌های کلید مرتبط را از جاکلیدی کاربری که توسط هسته نگهداری می‌شود، فراخوانی می‌کند. .sp فرآیند امنیت با تولید یک \fIکلید اصلی (master key)\fP آغاز می‌شود که برای پلمپ کردن (رمزگذاری) گذرواژه DIMM استفاده می‌شود. می‌تواند یک \fIکلید اصلی\fP مشترک وجود داشته باشد که برای رمزگذاری گذرواژه همه DIMMها به کار می‌رود، یا می‌توان یک کلید مجزا برای هر DIMM تولید کرد. کلید اصلی همچنین به عنوان \fIکلید رمزگذاری کلید (key\-encryption\-key یا kek)\fP شناخته می‌شود. \fIkek\fP می‌تواند توسط TPM (ماژول پلتفرم مورد اعتماد) روی سیستم تولید شود، یا در غیر این صورت، \fIکلید اصلی سیستم (System Master Key)\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 از قبل باز باشد، هسته تلاش می‌کند تا گذرواژه را مجدداً اعتبارسنجی کند. اگر اعتبارسنجی مجدد گذرواژه با شکست مواجه شود، هسته وضعیت امنیتی را تثبیت (freeze) کرده و هرگونه تغییرات پیکربندی امنیتی بیشتر را غیرمجاز می‌سازد. یک پارامتر ماژول هسته برای نادیده گرفتن این رفتار در دسترس است. .SS "راه‌اندازی گذرواژه کاربر (SETUP USER PASSPHRASE)" .sp برای راه‌اندازی گذرواژه یک DIMM، انتظار می‌رود \fIkek\fP مورد استفاده در جاکلیدی کاربری هسته وجود داشته باشد. کلید \fIkek\fP گذرواژه DIMM را با استفاده از قالب کلید \fIenc32\fP رمزگذاری می‌کند. گذرواژه متن ساده هرگز توسط کاربر ارائه نمی‌شود و برای او قابل مشاهده نیست. در عوض، به صورت تصادفی توسط هسته تولید می‌شود و فضای کاربری به آن دسترسی ندارد. پس از رمزگذاری، یک داده دودویی (blob) از گذرواژه در دایرکتوری ذخیره‌سازی blob گذرواژه (‎/etc/ndctl/keys) نوشته می‌شود. کاربر مسئول تهیه نسخه پشتیبان از blobهای گذرواژه در یک مکان امن است. .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 .\} تغییر نام blob گذرواژه به old (قدیمی). .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ . sp -1 . IP " 3." 4.2 .\} بارگذاری این blob گذرواژه قدیمی درون جاکلیدی با نام "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 .\} حذف گذرواژه قدیمی و blob گذرواژه از جاکلیدی. .RE .SS "حذف گذرواژه کاربر (REMOVE USER PASSPHRASE)" .sp مقدار \fIkey\-ID\fP برای گذرواژه‌ای که قرار است حذف شود، در sysfs نوشته می‌شود. سپس هسته DSM را برای غیرفعال‌سازی امنیت ارسال می‌کند و پس از آن گذرواژه از جاکلیدی حذف شده و blob گذرواژه مرتبط پاک می‌شود. .SS "پاک‌سازی رمزنگاری‌شده یا امن (CRYPTO (SECURE) ERASE)" .sp این عملیات مشابه remove\-passphrase است. هسته یک دستورالعمل WBINVD را قبل و بعد از عملیات صادر می‌کند تا اطمینان حاصل شود که هیچ خرابی داده‌ای ناشی از حافظه نهان (کش) قدیمی پردازنده رخ نمی‌دهد. برای انجام این عملیات از دستور sanitize\-dimm متعلق به ndctl همراه با گزینه \f(CR\-\-crypto\-erase\fP استفاده کنید. .SS "بازنویسی (OVERWRITE)" .sp این عملیات با استفاده از گزینه \f(CR\-\-overwrite\fP برای دستور \fIsanitize\-dimm\fP در ndctl فراخوانی می‌شود. عملیات بازنویسی کل NVDIMM را پاک می‌کند. این عملیات می‌تواند زمان قابل توجهی ببرد. نکته: بازگشت موفقیت‌آمیز دستور صرفاً به این معنی است که بازنویسی با موفقیت آغاز شده است، نه اینکه بازنویسی کامل شده باشد. متعاقباً، می‌توان از دستور \fIndctl wait\-overwrite\fP برای منتظر ماندن برای NVDIMMهایی که در حال انجام بازنویسی هستند استفاده کرد. پس از اتمام موفقیت‌آمیز بازنویسی، دستورالعمل WBINVD توسط هسته صادر می‌شود. اگر هر دو گزینه \-\-crypto\-erase و \-\-overwrite ارائه شوند، ابتدا crypto\-erase قبل از overwrite انجام می‌شود. .SS "تثبیت امنیت (SECURITY FREEZE)" .sp این عملیات نیازی به گذرواژه ندارد. این کار باعث می‌شود هرگونه دستور امنیتی به جز پرس‌وجوی وضعیت تا راه‌اندازی مجدد (بوت) بعدی سیستم مسدود و قفل شود. .SS "راه‌اندازی، به‌روزرسانی و پاک‌سازی امن گذرواژه اصلی (MASTER PASSPHRASE SETUP, UPDATE, and CRYPTO ERASE)" .sp این عملیات‌ها مشابه فعال‌سازی و به‌روزرسانی گذرواژه کاربر هستند. تنها تفاوت در این است که از یک گذرواژه متفاوت استفاده می‌شود. گذرواژه اصلی هیچ ارتباطی با کلید اصلی (\fIkek\fP) که برای رمزگذاری هر یک از گذرواژه‌ها به کار می‌رود، ندارد. .SH "حق نشر (COPYRIGHT)" .sp Copyright \(co 2016 \- 2022, Intel Corporation. License GPLv2: GNU GPL نسخه 2 \c .URL "http://gnu.org/licenses/gpl.html" "" "." این یک نرم‌افزار آزاد است: شما مختارید آن را تغییر دهید و بازتوزیع کنید. هیچ ضمانتی وجود ندارد، تا حدی که قانون اجازه می‌دهد. .SH "همچنین ببینید (SEE ALSO)" .sp ndctl\-setup\-passphrase(1), ndctl\-remove\-passphrase(1)