.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "swtpm 8" .TH swtpm 8 2026-03-26 swtpm "" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" swtpm \- شبیه‌ساز نرم‌افزاری TPM برای نگارش‌های ۱.۲ و ۲.۰ .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBswtpm socket [OPTIONS]\fR .PP \&\fBswtpm chardev [OPTIONS]\fR .PP \&\fBswtpm cuse [OPTIONS]\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBswtpm\fR یک شبیه‌ساز نرم‌افزاری TPM مبتنی بر libtpms را پیاده‌سازی می‌کند. این ابزار دسترسی به قابلیت‌های TPM را از طریق یک رابط سوکت TCP/IP فراهم می‌کند، یا می‌تواند روی یک دستگاه کاراکتری (chardev) به دستورات گوش فرا دهد، یا یک رابط CUSE (دستگاه کاراکتری در فضای کاربری) برای دریافت دستورات TPM ایجاد کند. .PP مگر در مواردی که پارامترهای خط فرمان مربوطه استفاده شوند، نسخه سوکت \&\fBswtpm\fR نیازمند آن است که متغیر محیطی \fITPM_PORT\fR روی درگاه TCP/IP که فرایند قرار است برای پیام‌های درخواست TPM روی آن گوش فرا دهد، تنظیم شده باشد. .PP به طور مشابه، متغیر محیطی \fITPM_PATH\fR می‌تواند تنظیم شود و حاوی نام پوشه‌ای باشد که TPM می‌تواند وضعیت ماندگار خود را در آن ذخیره کند. .PP فرایند \fBswtpm\fR را می‌توان با ارسال سیگنال \fISIGTERM\fR به آن، به آرامی و با نظم پایان داد. .PP نسخه cuse از \fBswtpm\fR برای راه‌اندازی TPM نیازمند امتیازات ریشه (root) است. .SH "گزینه‌های رابط سوکت (Options for socket interface)" .IX Header "Options for socket interface" در صورت انتخاب رابط \fIsocket\fR، گزینه‌های زیر پشتیبانی می‌شوند: .IP "\fB\-p|\-\-port " 4 .IX Item "-p|--port " استفاده از درگاه داده‌شده به جای استفاده از متغیر محیطی TPM_PORT. .IP \fB\-t|\-\-terminate\fR 4 .IX Item "-t|--terminate" پایان دادن به کار TPM پس از آنکه کلاینت اتصال کانال داده را بست (تنها در TCP). .IP "\fB\-\-server [type=tcp][,port=[,bindaddr=
[,ifname=]]][,fd=][,disconnect]\fR" 4 .IX Item "--server [type=tcp][,port=[,bindaddr=
[,ifname=]]][,fd=][,disconnect]" انتظار اتصالات TCP روی درگاه داده‌شده؛ اگر درگاهی مشخص نشود باید یک توصیف‌گر فایل با پارامتر fd ارسال گردد و در آن صورت دستورات از این توصیف‌گر فایل خوانده می‌شوند. اگر درگاهی مشخص شود، \fIni-shani bind\fR (آدرس اتصال) برای گوش فرا دادن به اتصالات TCP نیز می‌تواند مشخص شود؛ آدرس اتصال پیش‌فرض 127.0.0.1 است. اگر یک آدرس IPv6 محلی پیوند (link-local) مشخص شود، نام رابطی که باید به آن متصل شود باید با \fIifname\fR ارائه گردد. .Sp این پارامتر اتصال پایدار را به طور پیش‌فرض فعال می‌کند، مگر اینکه گزینه disconnect داده شود. این پارامتر باید به جای گزینه‌های \-p و \-\-fd استفاده شود. .IP "\fB\-\-server type=unixio[,path=][,fd=] [,mode=<0...>][,uid=][,gid=]\fR" 4 .IX Item "--server type=unixio[,path=][,fd=] [,mode=<0...>][,uid=][,gid=]" انتظار اتصالات UnixIO در مسیر داده‌شده. اگر مسیری ارائه نشود، به جای آن باید یک توصیف‌گر فایل ارسال شود. پارامتر mode به کاربر اجازه می‌دهد تا بیت‌های حالت فایل مسیر UnixIO را تنظیم کند. مقدار بیت‌های حالت باید به عنوان یک عدد هشت‌هشتی با شروع از \*(Aq0\*(Aq داده شود. مقدار پیش‌فرض 0770 است. uid و gid مالکیت مسیر سوکت UnixIO را تنظیم می‌کنند. این عملیات نیازمند امتیازات ریشه (root) است. .SH "گزینه‌های رابط دستگاه کاراکتری (Options for character device interface)" .IX Header "Options for character device interface" در صورت انتخاب رابط \fIchardev\fR، گزینه‌های زیر پشتیبانی می‌شوند: .IP "\fB\-c|\-\-chardev " 4 .IX Item "-c|--chardev " استفاده از دستگاه داده‌شده برای گوش فرا دادن به دستورات TPM و ارسال پاسخ‌ها روی آن. .IP \fB\-\-vtpm\-proxy\fR 4 .IX Item "--vtpm-proxy" ایجاد یک نمونه دستگاه پروکسی vTPM لینوکس و خواندن دستورات TPM از دستگاه پشتیبان (backend) آن. .SH "گزینه‌های رابط CUSE (Options for the CUSE interface)" .IX Header "Options for the CUSE interface" در صورت انتخاب رابط \fIcuse\fR، گزینه‌های زیر پشتیبانی می‌شوند: .IP "\fB\-n|\-\-name " 4 .IX Item "-n|--name " استفاده TPM از دستگاهی با نام مشخص‌شده. دستگاهی با نام داده‌شده در /dev ایجاد خواهد شد. این یک گزینه اجباری است. .IP "\fB\-M|\-\-maj " 4 .IX Item "-M|--maj " ایجاد دستگاه با شماره اصلی (major number) داده‌شده. .IP "\fB\-m|\-\-min " 4 .IX Item "-m|--min " ایجاد دستگاه با شماره فرعی (minor number) داده‌شده. .SH "گزینه‌های رابط‌های سوکت و دستگاه کاراکتری (Options for socket and character device interfaces:)" .IX Header "Options for socket and character device interfaces:" گزینه‌های زیر توسط هر دو رابط سوکت و دستگاه کاراکتری پشتیبانی می‌شوند: .IP "\fB\-f|\-\-fd " 4 .IX Item "-f|--fd " استفاده از توصیف‌گر فایل سوکت یا توصیف‌گر فایل دستگاه کاراکتری داده‌شده برای دریافت دستورات TPM و ارسال پاسخ‌ها. برای رابط سوکت، این گزینه به طور خودکار \-t را مفروض می‌داند. .IP \fB\-d|\-\-daemon\fR 4 .IX Item "-d|--daemon" اجرای فرایند به صورت دیمن (daemonize). .IP "\fB\-\-ctrl type=[unixio|tcp][,path=] [,port=[,bindaddr=
[,ifname=]]] [,fd=|clientfd=] [,mode=<0...>][,uid=][,gid=][,terminate] \fR" 4 .IX Item "--ctrl type=[unixio|tcp][,path=] [,port=[,bindaddr=
[,ifname=]]] [,fd=|clientfd=] [,mode=<0...>][,uid=][,gid=][,terminate] " این گزینه یک کانال کنترل به TPM اضافه می‌کند. کانال کنترل می‌تواند از یک سوکت UnixIO با \fIpath\fR یا \fIfiledescriptor\fR داده‌شده استفاده کند، یا می‌تواند از یک سوکت TCP روی \fIport\fR یا \fIfiledescriptor\fR داده‌شده استفاده کند. اگر درگاهی مشخص شود، \fInishani bind\fR (آدرس اتصال) برای گوش فرا دادن به اتصالات TCP نیز می‌تواند مشخص گردد؛ آدرس اتصال پیش‌فرض 127.0.0.1 است. اگر یک آدرس IPv6 محلی پیوند (link-local) مشخص شود، نام رابطی که باید به آن متصل شود باید با \fIifname\fR ارائه گردد. .Sp پارامتر \fImode\fR به کاربر اجازه می‌دهد بیت‌های حالت فایل مسیر UnixIO را تنظیم کند. مقدار بیت‌های حالت باید به عنوان یک عدد هشت‌هشتی با شروع از \*(Aq0\*(Aq داده شود. مقدار پیش‌فرض 0770 است. \fIuid\fR و \fIgid\fR مالکیت مسیر سوکت UnixIO را تنظیم می‌کنند. این عملیات نیازمند امتیازات ریشه (root) است. .Sp پارامتر \fIterminate\fR خاتمه خودکار swtpm را هنگام قطع اتصال کانال کنترل فعال می‌سازد. این امر در سناریوهایی که اتصال کانال کنترل به طور دائمی حفظ می‌شود، مانند محیط QEMU، کاربرد دارد، تا در صورت خاتمه غیرعادی کلاینتی که نتوانسته است CMD_SHUTDOWN را از طریق کانال کنترل ارسال کند، swtpm بسته شود. .Sp کانال کنترل، مدیریت خارج از باند (out-of-band) TPM مانند بازنشانی (reset) آن را ممکن می‌سازد. .SH "گزینه‌ها برای تمام رابط‌ها (Options for all interfaces)" .IX Header "Options for all interfaces" گزینه‌های زیر توسط تمام رابط‌ها پشتیبانی می‌شوند: .IP "\fB\-\-tpmstate dir=|backend\-uri=[,mode=<0...>][,lock]\fR" 4 .IX Item "--tpmstate dir=|backend-uri=[,mode=<0...>][,lock]" استفاده از مسیر داده‌شده به جای استفاده از متغیر محیطی TPM_PATH. .Sp اگر \fIdir\fR مشخص شده باشد، فایل‌های وضعیت TPM با بیت‌های \fImode\fR مشخص‌شده برای فایل در \fIdir\fR نوشته خواهند شد. این مقدار باید به صورت یک عدد هشت‌هشتی با شروع از \*(Aq0\*(Aq داده شود. مقدار پیش‌فرض 0640 است. .Sp اگر \fIbackend\-uri\fR مشخص شده باشد، داده‌های وضعیت TPM در شناسه URI ذخیره خواهند شد. در حال حاضر \fIbackend\-uri=dir:// و \fIbackend\-uri=file:// در دسترس هستند. برای \*(Aqdir://\*(Aq، شناسه URI باید مسیر پوشه‌ای را که فایل‌ها در آن ذخیره می‌شوند مشخص کند. اگر \fIpath_to_dir\fR با \*(Aq/\*(Aq آغاز شود، مسیر به عنوان یک مسیر مطلق تفسیر می‌شود؛ در غیر این صورت مسیری نسبی نسبت به پوشه جاری خواهد بود. برای \*(Aqfile://\*(Aq، شناسه URI باید یک فایل منفرد یا یک دستگاه بلوکی را مشخص کند که وضعیت TPM در آن ذخیره خواهد شد. دستگاه بلوکی باید از قبل وجود داشته باشد و به اندازه کافی بزرگ باشد تا تمام وضعیت را ذخیره کند. (از نگارش v0.7) .Sp اگر \fIlock\fR مشخص شده باشد، پشتیبان ذخیره‌سازی TPM فایل وضعیت TPM را قفل می‌کند تا از دسترسی همزمان نمونه دیگری از swtpm به آن جلوگیری شود. مقدار پیش‌فرض در صورت نبود این پارامتر، به پشتیبان ذخیره‌سازی بستگی دارد. برای پشتیبان دایرکتوری، پیش‌فرض این است که قفل‌گذاری همیشه فعال است و بنابراین نیازی به تعیین این پارامتر نیست. برای پشتیبان فایل، تعیین آن ضروری است زیرا به طور پیش‌فرض قفل‌گذاری خودکار فعال نیست. برای جلوگیری از قفل‌گذاری، می‌توان از \fIlock=false\fR استفاده کرد. .IP \fB\-\-tpm2\fR 4 .IX Item "--tpm2" انتخاب قابلیت‌های TPM 2؛ به طور پیش‌فرض TPM 1.2 انتخاب می‌شود. .IP "\fB\-\-log [fd=|file=][,level=] [,prefix=][,truncate]\fR" 4 .IX Item "--log [fd=|file=][,level=] [,prefix=][,truncate]" فعال‌سازی ثبت وقایع (لاگین) در یک فایل بر اساس توصیف‌گر فایل یا مسیر آن. از \*(Aq\-\*(Aq برای مسیر جهت عدم ثبت وقایع استفاده کنید. .Sp پارامتر level به کاربر امکان می‌دهد سطح گزارش‌گیری را تعیین کند. با شروع از سطح لاگ ۵، ثبت وقایع اشکال‌زدایی libtpms فعال می‌شود. .Sp تمام خطوط ثبت‌شده با prefix شروع خواهند شد. به طور پیش‌فرض هیچ پیشوندی اضافه نمی‌شود. .Sp اگر \fItruncate\fR داده شود، فایل وقایع کوتاه (خالی) خواهد شد. .IP "\fB\-\-locality reject\-locality\-4[,allow\-set\-locality]\fR" 4 .IX Item "--locality reject-locality-4[,allow-set-locality]" پارامتر \fIreject\-locality\-4\fR موجب می‌شود که برای درخواست‌های قرار دادن TPM در سطح محلی ۴ (locality 4)، پیام‌های خطای TPM بازگردانده شوند. .Sp پارامتر \fIallow\-set\-locality\fR به swtpm اجازه می‌دهد تا دستورات TPM/TPM2_SetLocality را دریافت کند. این پارامتر زمانی مفید است که دسترسی درایور پروکسی VTPM لینوکس با ارسال توصیف‌گر فایل فعال شده باشد. این گزینه توسط گزینه \fI\-\-vtpm\-proxy\fR به طور ضمنی فعال می‌شود و بنابراین در صورت درج آن گزینه، نیازی به تنظیم صریح نیست. در سایر موارد باید دقت شود که چه کسی می‌تواند دستور TPM/TPM2_SetLocality را ارسال کند. .IP "\fB\-\-key file=|fd= [,format=][,mode=aes\-cbc|aes\-256\-cbc], [remove[=true|false]]\fR" 4 .IX Item "--key file=|fd= [,format=][,mode=aes-cbc|aes-256-cbc], [remove[=true|false]]" فعال‌سازی رمزگذاری فایل‌های وضعیت TPM. فایل کلید باید حاوی یک کلید AES در اندازه پشتیبانی‌شده باشد؛ کلیدهای ۱۲۸ بیتی (۱۶ بایت) و ۲۵۶ بیتی (۳۲ بایت) پشتیبانی می‌شوند. .Sp کلید می‌تواند در قالب دودویی باشد، که در این صورت اندازه فایل باید ۱۶ یا ۳۲ بایت باشد. اگر کلید در قالب هگزادسیمال (پیش‌فرض) باشد، می‌تواند از ۳۲ یا ۶۴ رقم هگز که با \*(Aq0x\*(Aq اختیاری آغاز می‌شود تشکیل شده باشد. .Sp پارامتر \fImode\fR نشان می‌دهد کدام حالت زنجیره‌سازی بلوک استفاده شود. در حال حاضر aes\-cbc (یا aes\-128\-cbc) و aes\-256\-cbc پشتیبانی می‌شوند. داده‌های رمزگذاری‌شده با استفاده از روش encrypt\-then\-mac از نظر صحت و یکپارچگی محافظت می‌شوند. .Sp پارامتر \fIremove\fR پس از خوانده شدن کلید، تلاش خواهد کرد تا فایل کلید داده‌شده را حذف کند. .IP "\fB\-\-key pwdfile=|pwdfd= [,mode=aes\-cbc|aes\-256\-cbc][remove[=true|false]][,kdf=sha512|pbkdf2]\fR" 4 .IX Item "--key pwdfile=|pwdfd= [,mode=aes-cbc|aes-256-cbc][remove[=true|false]][,kdf=sha512|pbkdf2]" این گونه از پارامتر کلید به کاربر اجازه می‌دهد یک عبارت عبور (passphrase) را در یک فایل ارائه دهد. فایل خوانده شده و یک کلید با استفاده از هش SHA512 یا PBKDF2 از آن مشتق می‌شود. به طور پیش‌فرض از PBKDF2 استفاده می‌شود. .IP "\fB\-\-migration\-key file=|fd= [,format=][,mode=aes\-cbc|aes\-256\-cbc] [,remove[=true|false]]\fR" 4 .IX Item "--migration-key file=|fd= [,format=][,mode=aes-cbc|aes-256-cbc] [,remove[=true|false]]" در دسترس بودن یک کلید مهاجرت تضمین می‌کند که وضعیت TPM در زمان بازیابی حباب‌های وضعیت (blobs) از طریق رابط ioctl، به صورت رمزگذاری‌نشده فاش نشود. کلید مهاجرت برای رمزگذاری وضعیت نوشته‌شده TPM در فایل‌ها به کار نمی‌رود، این همان کاری است که پارامتر \fI\-\-key\fR برای آن استفاده می‌شود. .Sp کلید مهاجرت و کلید مورداستفاده برای رمزگذاری فایل‌های وضعیت TPM می‌توانند یکسان باشند. .Sp در حالی که کلید فایل‌های وضعیت TPM باید در کنار همان فایل‌هایی که رمزگذاری می‌کند باقی بماند، کلید مهاجرت باید همراه با حباب‌های وضعیت TPM بماند. برای نمونه اگر وضعیت TPM بین میزبان‌ها در یک مرکز داده مهاجرت داده شود، کلید مهاجرت TPM باید در تمام مقاصد در دسترس باشد، بنابراین در عمل ممکن است لازم باشد کلیدی مشترک در تمام ماشین‌های مرکز داده باشد. در مقابل، کلید مورداستفاده برای رمزگذاری \fBفایل‌های\fR وضعیت TPM می‌تواند برای هر TPM متفاوت باشد و تنها کافی است روی میزبانی که وضعیت TPM در آن قرار دارد در دسترس باشد. .Sp کلید مهاجرت رمزگذاری حباب‌های وضعیت TPM را فعال می‌کند. فایل کلید باید حاوی یک کلید AES در اندازه پشتیبانی‌شده باشد؛ کلیدهای ۱۲۸ بیتی (۱۶ بایت) و ۲۵۶ بیتی (۳۲ بایت) پشتیبانی می‌شوند. .Sp کلید ممکن است در قالب دودویی باشد، که در این حالت اندازه فایل باید ۱۶ یا ۳۲ بایت باشد. اگر کلید در قالب هگزادسیمال (پیش‌فرض) باشد، کلید می‌تواند شامل ۳۲ یا ۶۴ رقم هگز با شروع از \*(Aq0x\*(Aq اختیاری باشد. .Sp پارامتر \fImode\fR نشان می‌دهد کدام حالت زنجیره‌سازی بلوک باید استفاده شود. در حال حاضر aes\-cbc (یا aes\-128\-cbc) و aes\-256\-cbc پشتیبانی می‌شوند. داده‌های رمزگذاری‌شده با روش encrypt\-then\-mac از یکپارچگی محافظت می‌شوند. .Sp پارامتر \fIremove\fR پس از خوانده شدن کلید، تلاش خواهد کرد تا فایل کلید ارائه‌شده را حذف کند. .IP "\fB\-\-migration\-key pwdfile=|pwdfd= [,mode=aes\-cbc|aes\-256\-cbc][,remove[=true|false]][,pdf=sha512|pbkdf2]\fR" 4 .IX Item "--migration-key pwdfile=|pwdfd= [,mode=aes-cbc|aes-256-cbc][,remove[=true|false]][,pdf=sha512|pbkdf2]" این گونه از پارامتر کلید به کاربر اجازه می‌دهد یک عبارت عبور را در یک فایل ارائه دهد. فایل خوانده شده و یک کلید با استفاده از هش SHA512 یا PBKDF2 از آن مشتق می‌شود. به طور پیش‌فرض از PBKDF2 استفاده می‌شود. .IP "\fB\-\-pid file=|fd=\fR" 4 .IX Item "--pid file=|fd=" این گزینه به کاربر امکان می‌دهد نام فایلی را که شناسه فرایند (PID) مربوط به TPM در آن نوشته خواهد شد، تعیین کند. همچنین امکان ارسال یک توصیف‌گر فایل به فایلی که برای نوشتن باز شده است وجود دارد. .IP "\fB\-r|\-\-runas \fR" 4 .IX Item "-r|--runas " تغییر وضعیت به کاربر مشخص‌شده. این گزینه تنها زمانی قابل استفاده است که swtpm با کاربر ریشه (root) آغاز شده باشد. .IP "\fB\-R|\-\-chroot " 4 .IX Item "-R|--chroot " تغییر ریشه (Chroot) به پوشه داده‌شده در هنگام راه‌اندازی. این گزینه تنها زمانی قابل استفاده است که swtpm با کاربر ریشه (root) اجرا شده باشد. .IP "\fB\-\-seccomp action=none|log|kill\fR (since v0.2)" 4 .IX Item "--seccomp action=none|log|kill (since v0.2)" این گزینه به کاربر امکان می‌دهد اقدام لازم توسط نمایه seccomp را در هنگام اجرای یک فراخوانی سیستم غیرمجاز انتخاب کند. مقدار پیش‌فرض \fIkill\fR است. برای غیرفعال‌سازی نمایه seccomp، گزینه \fInone\fR را انتخاب کنید. اقدام \fIlog\fR فراخوانی‌های غیرمجاز را ثبت می‌کند. اقدام \fIlog\fR تنها در صورتی موجود است که libseccomp از ثبت وقایع پشتیبانی کند. .Sp این گزینه تنها در لینوکس و در صورتی که swtpm با پشتیبانی از libseccomp کامپایل شده باشد در دسترس است. .IP "\fB\-\-flags [not\-need\-init][,startup\-clear|startup\-state|startup\-deactivated|startup\-none][,disable\-auto\-shutdown]\fR" 4 .IX Item "--flags [not-need-init][,startup-clear|startup-state|startup-deactivated|startup-none][,disable-auto-shutdown]" پرچم \fInot\-need\-init\fR به TPM امکان می‌دهد دستورات TPM را بلافاصله پس از شروع بدون نیاز به ارسال یک INIT از طریق کانال فرمان بپذیرد (به گزینه \*(Aq\-i\*(Aq در swtpm_ioctl مراجعه کنید). .Sp گزینه‌های \fIstartup\fR باعث می‌شوند دستور TPM_Startup یا TPM2_Startup به طور خودکار ارسال شود. گزینه \fIstartup\-deactivated\fR تنها برای یک TPM 1.2 معتبر است. این گزینه‌ها متضمن \fInot\-need\-init\fR هستند، به جز گزینه \fIstartup\-none\fR که منجر به عدم ارسال هیچ دستوری می‌شود. .Sp اگر \fI\-\-vtpm\-proxy\fR استفاده شود، گزینه \fIstartup\-clear\fR به طور خودکار انتخاب می‌شود اما این مورد می‌تواند با این گزینه تغییر یابد. .Sp پرچم \fIdisable\-auto\-shutdown\fR مانع از ارسال خودکار \fBTPM2_Shutdown()\fR توسط swtpm پیش از بازنشانی TPM 2 یا پیش از خاتمه فرایند swtpm می‌شود. در صورت عدم ارائه این پرچم، swtpm این دستور را ارسال خواهد کرد تا از افزایش شمارنده قفل حمله واژه‌نامه‌ای (DA) و در نهایت قفل شدن بر اثر حمله واژه‌نامه‌ای توسط TPM 2 به دلیل عدم ارسال \fBTPM2_Shutdown()\fR لازم قبل از بازنشانی یا خاتمه فرایند جلوگیری شود. .IP "\fB\-\-print\-capabilities\fR (since v0.2)" 4 .IX Item "--print-capabilities (since v0.2)" چاپ قابلیت‌هایی که پس از نگارش 0.1 به swtpm افزوده شده‌اند. خروجی ممکن است شامل موارد زیر باشد: .Sp .Vb 10 \& { \& "type": "swtpm", \& "features": [ \& "tpm\-1.2", \& "tpm\-2.0", \& "tpm\-send\-command\-header", \& "flags\-opt\-startup", \& "flags\-opt\-disable\-auto\-shutdown", \& "cmdarg\-seccomp", \& "cmdarg\-key\-fd", \& "cmdarg\-pwd\-fd", \& "cmdarg\-print\-states", \& "cmdarg\-chroot", \& "cmdarg\-migration", \& "nvram\-backend\-dir", \& "nvram\-backend\-file", \& "rsa\-keysize\-1024", \& "rsa\-keysize\-2048", \& "rsa\-keysize\-3072", \& "cmdarg\-profile", \& "cmdarg\-print\-profiles", \& "profile\-opt\-remove\-disabled", \& "cmdarg\-print\-info", \& "tpmstate\-opt\-lock" \& ], \& "version": "0.7.0" \& } .Ve .Sp فیلد نسخه از نگارش v0.7 در دسترس است. .Sp معنای عبارات ویژگی‌ها به شرح زیر است: .RS 4 .IP "\fBtpm\-1.2\fR (since v0.7)" 4 .IX Item "tpm-1.2 (since v0.7)" شبیه‌سازی TPM 1.2 پشتیبانی می‌شود (libtpms با پشتیبانی از 1.2 کامپایل شده است). .IP "\fBtpm\-2.0\fR (since v0.7)" 4 .IX Item "tpm-2.0 (since v0.7)" شبیه‌سازی TPM 2 پشتیبانی می‌شود (libtpms با پشتیبانی از 2.0 کامپایل شده است). .Sp (گزینه \fI\-\-tpm2\fR پشتیبانی می‌شود) .IP "\fBcmdarg\-seccomp\fR (since v0.2)" 4 .IX Item "cmdarg-seccomp (since v0.2)" گزینه \fI\-\-seccomp\fR پشتیبانی می‌شود. .IP "\fBcmdarg\-key\-fd\fR (since v0.2)" 4 .IX Item "cmdarg-key-fd (since v0.2)" گزینه \fI\-\-key\fR از پارامتر \fIfd=\fR پشتیبانی می‌کند. .IP "\fBcmdarg\-pwd\-fd\fR (since v0.2)" 4 .IX Item "cmdarg-pwd-fd (since v0.2)" گزینه \fI\-\-key\fR از پارامتر \fIpwdfd=\fR پشتیبانی می‌کند. .IP "\fBcmdarg\-print\-states\fR (since v0.7)" 4 .IX Item "cmdarg-print-states (since v0.7)" گزینه \fI\-\-print\-states\fR پشتیبانی می‌شود. .IP "\fBcmdarg\-chroot\fR (since v0.8)" 4 .IX Item "cmdarg-chroot (since v0.8)" گزینه \fI\-\-chroot\fR پشتیبانی می‌شود. .IP "\fBcmdarg\-migration\fR (since v0.8)" 4 .IX Item "cmdarg-migration (since v0.8)" گزینه \fI\-\-migration\fR پشتیبانی می‌شود. .IP "\fBnvram\-backend\-dir\fR (since v0.7)" 4 .IX Item "nvram-backend-dir (since v0.7)" گزینه \fI\-\-tpmstate\fR از پارامتر \fIbackend\-uri=dir://...\fR پشتیبانی می‌کند. .IP "\fBnvram\-backend\-file\fR (since v0.7)" 4 .IX Item "nvram-backend-file (since v0.7)" گزینه \fI\-\-tpmstate\fR از پارامتر \fIbackend\-uri=file://...\fR پشتیبانی می‌کند. .IP "\fBtpm\-send\-command\-header\fR (since v0.2)" 4 .IX Item "tpm-send-command-header (since v0.2)" دستورات TPM 2 ممکن است دارای یک سرآیند پیشوند باشند که حامل یک دستور ۴ بایتی، ۱ بایت برای locality، و ۴ بایت نشانگر طول دستور TPM 2 است. TPM 2 با پیشوند کردن یک نشانگر پاسخ ۴ بایتی و یک تریلر ۴ بایتی پاسخ خواهد داد. تمام داده‌ها در قالب big endian ارسال می‌شوند. .IP "\fBflags\-opt\-startup\fR (since v0.3)" 4 .IX Item "flags-opt-startup (since v0.3)" گزینه \fI\-\-flags\fR از گزینه‌های \fIstartup\-...\fR پشتیبانی می‌کند. .IP "\fBflags\-opt\-disable\-auto\-shutdown\fR (since v0.8)" 4 .IX Item "flags-opt-disable-auto-shutdown (since v0.8)" گزینه \fI\-\-flags\fR از پرچم \fIdisable\-auto\-shutdown\fR پشتیبانی می‌کند. .IP "\fBrsa\-keysize\-2048\fR (since v0.4)" 4 .IX Item "rsa-keysize-2048 (since v0.4)" بخش TPM 2 از اندازه‌های کلید RSA نشان‌داده‌شده پشتیبانی می‌کند. اگر هیچ یک از کلیدواژه‌های rsa\-keysize نشان داده نشود، تنها کلیدهای RSA با اندازه ۲۰۴۸ بیت پشتیبانی می‌شوند. .IP "\fBcmdarg\-profile\fR (since v0.10)" 4 .IX Item "cmdarg-profile (since v0.10)" گزینه \fI\-\-profile\fR برای تنظیم یک نمایه (پروفایل) برای TPM 2 با هر یک از پارامترهای اختیاری \fIname=\fR، \fIprofile=\fR، \fIfd=\fR یا \fIfile=\fR پشتیبانی می‌شود. .IP "\fBcmdarg\-print\-profiles\fR (since v0.10)" 4 .IX Item "cmdarg-print-profiles (since v0.10)" گزینه \fI\-\-print\-profiles\fR پشتیبانی می‌شود. .IP "\fBprofile\-opt\-remove\-disabled\fR (since v0.10)" 4 .IX Item "profile-opt-remove-disabled (since v0.10)" گزینه \fI\-\-profile\fR از پارامتر گزینه‌ای \fIremove\-disabled\fR پشتیبانی می‌کند. .IP "\fBcmdard\-print\-info\fR (since v0.10)" 4 .IX Item "cmdard-print-info (since v0.10)" گزینه \fI\-\-print\-info\fR پشتیبانی می‌شود. .IP "\fBtpmstate\-opt\-lock\fR (since v0.10)" 4 .IX Item "tpmstate-opt-lock (since v0.10)" پارامتر گزینه‌ای \fIlock\fR برای گزینه \fI\-\-tpmstate\fR پشتیبانی می‌شود. .RE .RS 4 .RE .IP "\fB\-\-print\-states\fR (since v0.7)" 4 .IX Item "--print-states (since v0.7)" این گزینه امکان چاپ حباب‌های وضعیت TPM 1.2 یا TPM 2 را که در حال حاضر در یک پشتیبان ذخیره‌سازی نگهداری می‌شوند فراهم می‌کند. این گزینه مستلزم آن است که پشتیبان ذخیره‌سازی با گزینه \fI\-\-tpmstate\fR مشخص شده باشد و اگر قرار است حباب‌های وضعیت TPM 2 نمایش داده شوند، گزینه \fI\-\-tpm2\fR باید ارسال گردد. .Sp در ادامه خروجی JSON این گزینه نشان داده شده است. این خروجی نشان می‌دهد که وضعیت‌های \*(Aqpermall\*(Aq و \*(Aqvolatile\*(Aq در دسترس هستند. .Sp .Vb 12 \& { \& "type": "swtpm", \& "states": [ \& { \& "name": "permall", \& "size": 6013 \& }, { \& "name": "volatile", \& "size": 1087 \& } \& ] \& } .Ve .IP "\fB\-\-migration [incoming][,release\-lock\-outgoing]\fR" 4 .IX Item "--migration [incoming][,release-lock-outgoing]" این گزینه امکان کنترل قفل‌گذاری حافظه NVRAM را به منظور پشتیبانی از مهاجرت بین میزبان‌هایی که برای پوشه وضعیت swtpm فضای ذخیره‌سازی مشترک پیکربندی کرده‌اند، در صورتی که قفل‌گذاری توسط پشتیبان ذخیره‌سازی پشتیبانی شود، فراهم می‌کند. برای مثال، پشتیبان ذخیره‌سازی پوشه از قفل‌گذاری پشتیبانی می‌کند و بنابراین در صورت استفاده از ذخیره‌سازی مشترک، نیازمند استفاده از این گزینه است. هنگام ارائه پارامتر گزینه‌ای \fIincoming\fR، ابزار swtpm قفل‌گذاری NVRAM را تا زمان دریافت حباب‌های وضعیت یا تا زمان پردازش اولین دستور TPM (در صورتی که هیچ حباب وضعیتی دریافت نشود) به تعویق می‌اندازد. پارامتر گزینه‌ای \fIrelease\-lock\-outgoing\fR باعث می‌شود swtpm به محض دریافت حباب وضعیت \*(Aqsavestate\*(Aq مربوط به TPM از swtpm، هرگونه قفل NVRAM را آزاد کند. برای جلوگیری از آزادسازی زودهنگام قفل، حباب‌های وضعیت \*(Aqpermanent\*(Aq و \*(Aqvolatile\*(Aq باید قبل از حباب وضعیت \*(Aqsavestate\*(Aq دریافت شوند. .IP "\fB\-\-profile name=|profile=|file=|fd=[,remove\-disabled=check|fips\-host]\fR (since v0.10)" 4 .IX Item "--profile name=|profile=|file=|fd=[,remove-disabled=check|fips-host] (since v0.10)" این گزینه امکان تنظیم یک نمایه (profile) را برای TPM 2 فراهم می‌کند. یک نمایه داخلی را می‌توان با استفاده از پارامتر گزینه‌ای \fIname=\fR بر اساس نام آن انتخاب کرد. با پارامتر گزینه‌ای \fIprofile=\fR می‌توان یک نمایه در قالب JSON را به طور مستقیم ارسال کرد. با پارامتر گزینه‌ای \fIfile=\fR نمایه در قالب JSON از یک فایل خوانده خواهد شد. پارامتر گزینه‌ای \fIfd=\fR امکان خواندن آن را از یک توصیف‌گر فایل فراهم می‌کند. .Sp نمایه‌ها باید به نام یک نمایه توکار (داخلی) ارجاع دهند. توجه داشته باشید که تنها نمایه \*(Aqcustom\*(Aq، یا نمایه‌هایی که نام آنها با \*(Aqcustom:\*(Aq آغاز می‌شود، قابل تغییر هستند و فهرستی از الگوریتم‌ها، دستورات یا ویژگی‌ها را ارائه می‌دهند که کنترل می‌کند TPM 2 کدام الگوریتم‌های رمزنگاری را فعال کند. اگر هر یک از این فهرست‌ها ارائه نشود، فهرست متناظر از نمایه داخلی \*(Aqcustom\*(Aq استفاده خواهد شد. .Sp گزینه خط فرمان زیر نمایه \*(Aqcustom\*(Aq را تحت نام جدید \*(Aqcustom:test\*(Aq با تنظیم صفت \*(Aqfips\-host\*(Aq انتخاب می‌کند: .RS 4 .Sp .Vb 1 \& [...] \-\-profile \*(Aq{"Name":"custom:test", "Attributes":"fips\-host"}\*(Aq .Ve .RE .RS 4 .Sp نمایه تنها در همان اولین باری که نمونه‌ای از TPM 2 راه‌اندازی می‌شود و تا زمانی که هیچ فایل وضعیتی وجود ندارد، قابل تنظیم است. نمایه پس از آن دیگر قابل تغییر نیست و در صورت ارسال مجدد با استفاده از این گزینه، خطایی رخ خواهد داد. .Sp پارامتر گزینه‌ای \fIremove\-disabled\fR به swtpm دستور می‌دهد آن دسته از الگوریتم‌هایی را که هنگام فعال بودن FIPS روی میزبان غیرفعال هستند (پارامتر \fIfips\-host\fR؛ مرجع حالت FIPS در RHEL 9.4 به بالا است) و دسترسی OpenSSL به الگوریتم‌های رمزنگاری محدود شده است، از نمایه حذف کند. از پارامتر \fIcheck\fR می‌توان برای بررسی غیرفعال بودن واقعی یک الگوریتم پیش از حذف آن استفاده کرد. این گزینه تنها در صورتی پشتیبانی می‌شود که نمایه \fIcustom\fR انتخاب شده باشد. در این حالت، (در حال حاضر) اقدامات زیر انجام خواهد شد: .IP \(bu 2 حذف camellia، tdes، و rsaes (رمزنگاری RSA با لایه‌گذاری PKCS#1 v1.5) .IP \(bu 2 غیرفعال‌سازی پشتیبانی از امضا (RSA و EC) بر روی SHA1 .IP \(bu 2 غیرفعال‌سازی رمزنگاری بدون لایه‌گذاری RSA .IP \(bu 2 تنظیم حداقل اندازه برای کلیدهای RSA روی ۲۰۴۸ بیت .IP \(bu 2 تنظیم حداقل اندازه برای کلیدهای EC روی ۲۲۴ بیت .RE .RS 4 .Sp تمام الگوریتم‌های دیگر فعال باقی می‌مانند، از جمله مواردی که ممکن است معمولاً در FIPS مجاز نباشند، مانند ecdaa و ecschnorr و غیره. فهرست الگوریتم‌های غیرفعال در آینده و در صورتی که حالت FIPS روی میزبان الگوریتم‌های بیشتری را غیرفعال کند، گسترش خواهد یافت. از آنجا که در این حالت ممکن است swtpm ویژگی‌هایی (Attributes) را به نمایه اضافه کند که نیازمند یک StateFormatLevel مشخص باشند، توصیه می‌شود فیلد StateFormatLevel از نمایه حذف شود. .Sp برای مشاهده فهرست الگوریتم‌هایی که پشتیبانی می‌شوند و می‌توانند غیرفعال شوند، می‌توان از \fIswtpm\fR به صورت زیر استفاده کرد: .Sp .Vb 10 \& $ swtpm socket \-\-tpmstate dir=./ \-\-tpm2 \-\-print\-info 0x08 | jq \& { \& "RuntimeAlgorithms": { \& "Implemented": "rsa,rsa\-min\-size=1024,tdes,tdes\-min\-size=128,sha1,\e \& hmac,aes,aes\-min\-size=128,mgf1,keyedhash,xor,sha256,\e \& sha384,sha512,null,rsassa,rsaes,rsapss,oaep,ecdsa,\e \& ecdh,ecdaa,sm2,ecschnorr,ecmqv,kdf1\-sp800\-56a,kdf2,\e \& kdf1\-sp800\-108,ecc,ecc\-min\-size=192,ecc\-nist,ecc\-bn,\e \& ecc\-nist\-p192,ecc\-nist\-p224,ecc\-nist\-p256,\e \& ecc\-nist\-p384,ecc\-nist\-p521,ecc\-bn\-p256,ecc\-bn\-p638,\e \& ecc\-sm2\-p256,symcipher,camellia,camellia\-min\-size=128,\e \& cmac,ctr,ofb,cbc,cfb,ecb", \& "CanBeDisabled": "tdes,sha1,sha512,rsassa,rsaes,rsapss,ecmqv,\e \& ecc\-nist\-p192,ecc\-nist\-p224,ecc\-nist\-p521,\e \& ecc\-bn\-p256,ecc\-bn\-p638,ecc\-sm2\-p256,camellia,cmac,\e \& ctr,ofb,cbc,ecb", \& "Enabled": "rsa,rsa\-min\-size=1024,tdes,tdes\-min\-size=128,sha1,hmac,\e \& aes,aes\-min\-size=128,mgf1,keyedhash,xor,sha256,sha384,\e \& sha512,null,rsassa,rsaes,rsapss,oaep,ecdsa,ecdh,ecdaa,sm2,\e \& ecschnorr,ecmqv,kdf1\-sp800\-56a,kdf2,kdf1\-sp800\-108,ecc,\e \& ecc\-min\-size=192,ecc\-nist,ecc\-bn,symcipher,camellia,\e \& camellia\-min\-size=128,cmac,ctr,ofb,cbc,cfb,ecb", \& "Disabled": "" \& } \& } .Ve .Sp برای دیدن فهرست دستورات پشتیبانی‌شده: .Sp .Vb 10 \& $ swtpm socket \-\-tpmstate dir=./ \-\-tpm2 \-\-print\-info 0x10 | jq \& { \& "RuntimeCommands": { \& "Implemented": "0x11f\-0x122,0x124\-0x12e,0x130\-0x140,0x142\-0x159,\e \& 0x15b\-0x15e,0x160\-0x165,0x167\-0x174,0x176\-0x178,\e \& 0x17a\-0x193,0x197,0x199\-0x19c", \& "CanBeDisabled": "0x11f,0x121\-0x122,0x124\-0x128,0x12a,0x12c\-0x12e,\e \& 0x130,0x132\-0x13b,0x13d\-0x140,0x142,0x146\-0x147,\e \& 0x149\-0x14d,0x14f\-0x152,0x154\-0x155,0x159,0x15b,\e \& 0x15d\-0x15e,0x160\-0x164,0x167\-0x168,0x16a\-0x172,\e \& 0x174,0x177\-0x178,0x17b,0x17f\-0x181,0x183\-0x184,\e \& 0x187\-0x193,0x197,0x199\-0x19c", \& "Enabled": "0x11f\-0x122,0x124\-0x12e,0x130\-0x140,0x142\-0x159,\e \& 0x15b\-0x15e,0x160\-0x165,0x167\-0x174,0x176\-0x178,\e \& 0x17a\-0x193,0x197,0x199\-0x19c", \& "Disabled": "" \& } \& } .Ve .Sp برای دیدن فهرست ویژگی‌های پشتیبانی‌شده: .Sp .Vb 10 \& $ swtpm socket \-\-tpmstate dir=./ \-\-tpm2 \-\-print\-info 0x80 | jq \& { \& "RuntimeAttributes": { \& "Implemented": "no\-unpadded\-encryption,no\-sha1\-signing,\e \& no\-sha1\-verification,no\-sha1\-hmac\-creation,\e \& no\-sha1\-hmac\-verification,no\-sha1\-hmac,fips\-host", \& "CanBeDisabled": "no\-unpadded\-encryption,no\-sha1\-signing,\e \& no\-sha1\-verification,no\-sha1\-hmac\-creation,\e \& no\-sha1\-hmac\-verification,no\-sha1\-hmac,fips\-host", \& "Enabled": "no\-unpadded\-encryption,no\-sha1\-signing,\e \& no\-sha1\-verification,no\-sha1\-hmac", \& "Disabled": "no\-sha1\-hmac\-creation,no\-sha1\-hmac\-verification,fips\-host" \& } \& } .Ve .Sp ویژگی‌های فوق ممکن است به نمایه ذیل مدخل نگاشت "Attributes" اضافه شوند، که مشابه مدخل‌های "Algorithms" و "Commands" است. .Sp برای مشاهده فهرست نمایه‌های موجود: .Sp .Vb 10 \& $ swtpm socket \-\-tpm2 \-\-print\-info 0x40 | jq \& { \& "AvailableProfiles": [ \& { \& "Name": "default\-v1", \& "StateFormatLevel": 4, \& "Commands": "0x11f\-0x122,0x124\-0x12e,0x130\-0x140,0x142\-0x159,\e \& 0x15b\-0x15e,0x160\-0x165,0x167\-0x174,0x176\-0x178,\e \& 0x17a\-0x193,0x197,0x199\-0x19a", \& "Algorithms": "rsa,rsa\-min\-size=1024,tdes,tdes\-min\-size=128,sha1,\e \& hmac,aes,aes\-min\-size=128,mgf1,keyedhash,xor,sha256,\e \& sha384,sha512,null,rsassa,rsaes,rsapss,oaep,ecdsa,\e \& ecdh,ecdaa,sm2,ecschnorr,ecmqv,kdf1\-sp800\-56a,kdf2,\e \& kdf1\-sp800\-108,ecc,ecc\-min\-size=192,ecc\-nist,ecc\-bn,\e \& symcipher,camellia,camellia\-min\-size=128,cmac,ctr,\e \& ofb,cbc,cfb,ecb", \& "Description": "This profile enables all currently supported \e \& commands and algorithms. It is applied when the \e \& user chooses no profile." \& }, \& { \& "Name": "null", \& "StateFormatLevel": 1, \& "Commands": "0x11f\-0x122,0x124\-0x12e,0x130\-0x140,0x142\-0x159,\e \& 0x15b\-0x15e,0x160\-0x165,0x167\-0x174,0x176\-0x178,\e \& 0x17a\-0x193,0x197", \& "Algorithms": "rsa,rsa\-min\-size=1024,tdes,tdes\-min\-size=128,sha1,\e \& hmac,aes,aes\-min\-size=128,mgf1,keyedhash,xor,sha256,\e \& sha384,sha512,null,rsassa,rsaes,rsapss,oaep,ecdsa,\e \& ecdh,ecdaa,sm2,ecschnorr,ecmqv,kdf1\-sp800\-56a,kdf2,\e \& kdf1\-sp800\-108,ecc,ecc\-min\-size=192,ecc\-nist,ecc\-bn,\e \& symcipher,camellia,camellia\-min\-size=128,cmac,ctr,\e \& ofb,cbc,cfb,ecb", \& "Description": "The profile enables the commands and algorithms \e \& that were enabled in libtpms v0.9. This profile is \e \& automatically used when the state does not have a \e \& profile, for example when it was created by \e \& libtpms v0.9 or before." \& }, \& { \& "Name": "custom", \& "StateFormatLevel": 2, \& "Commands": "0x11f\-0x122,0x124\-0x12e,0x130\-0x140,0x142\-0x159,\e \& 0x15b\-0x15e,0x160\-0x165,0x167\-0x174,0x176\-0x178,\e \& 0x17a\-0x193,0x197", \& "Algorithms": "rsa,rsa\-min\-size=1024,tdes,tdes\-min\-size=128,sha1,\e \& hmac,aes,aes\-min\-size=128,mgf1,keyedhash,xor,sha256,\e \& sha384,sha512,null,rsassa,rsaes,rsapss,oaep,ecdsa,\e \& ecdh,ecdaa,sm2,ecschnorr,ecmqv,kdf1\-sp800\-56a,kdf2,\e \& kdf1\-sp800\-108,ecc,ecc\-min\-size=192,ecc\-nist,ecc\-bn,\e \& ecc\-sm2\-p256,symcipher,camellia,\e \& camellia\-min\-size=128,cmac,ctr,ofb,cbc,cfb,ecb", \& "Description": "This profile allows customization of enabled \e \& algorithms and commands. This profile requires at \e \& least libtpms v0.10." \& } \& ] \& } .Ve .Sp برای دیدن نمایه فعال جاری با استعلام از swtpm که برای پیام‌های کنترل روی درگاه ۲۳۲۲ گوش فرا می‌دهد: .Sp .Vb 10 \& $ swtpm_ioctl \-\-tcp :2322 \-\-info 0x20 | jq \& { \& "ActiveProfile": { \& "Name": "default\-v1", \& "StateFormatLevel": 4, \& "Commands": "0x11f\-0x122,0x124\-0x12e,0x130\-0x140,0x142\-0x159,\e \& 0x15b\-0x15e,0x160\-0x165,0x167\-0x174,0x176\-0x178,\e \& 0x17a\-0x193,0x197,0x199\-0x19a", \& "Algorithms": "rsa,rsa\-min\-size=1024,tdes,tdes\-min\-size=128,sha1,\e \& hmac,aes,aes\-min\-size=128,mgf1,keyedhash,xor,sha256,\e \& sha384,sha512,null,rsassa,rsaes,rsapss,oaep,ecdsa,\e \& ecdh,ecdaa,sm2,ecschnorr,ecmqv,kdf1\-sp800\-56a,kdf2,\e \& kdf1\-sp800\-108,ecc,ecc\-min\-size=192,ecc\-nist,ecc\-bn,\e \& symcipher,camellia,camellia\-min\-size=128,cmac,ctr,\e \& ofb,cbc,cfb,ecb", \& "Description": "This profile enables all currently supported \e \& commands and algorithms. It is applied when the \e \& user chooses no profile." \& } \& } .Ve .Sp تنها نمایه‌ای که کاربر می‌تواند آن را تغییر دهد، نمایه \*(Aqcustom\*(Aq است. در اینجا کاربر می‌تواند الگوریتم‌ها، دستورات و ویژگی‌هایی را که اجازه غیرفعال شدن دارند، غیرفعال کند. برای جلوگیری از خرابی برنامه‌های کاربردی TPM 2، باید اطمینان حاصل کرد که هیچ‌یک از آنها به دستورات یا الگوریتم‌های غیرفعال‌شده وابسته نباشند. .RE .IP "\fB\-\-print\-profiles\fR (since v0.10)" 4 .IX Item "--print-profiles (since v0.10)" نمایش نمایه‌های پشتیبانی‌شده توسط libtpms. همراه با گزینه \fI\-\-tpm2\fR استفاده شود. .IP "\fB\-\-print\-info\fR (since v0.10)" 4 .IX Item "--print-info (since v0.10)" نمایش اطلاعات مربوط به TPM حاصل از فراخوانی TPMLIB_GetInfo در libtpms و خروج. برای اطلاعات درباره TPM 2 از گزینه \fI\-\-tpm2\fR استفاده کنید. اگر گزینه \fI\-\-tpmstate\fR نیز مشخص شده باشد، خروجی اطلاعات نمایه را نیز نشان خواهد داد. توجه داشته باشید که با این گزینه در صورتی که قبلاً وضعیتی برای TPM وجود نداشته باشد، ممکن است ایجاد شود. .Sp مقادیر زیر را می‌توان ارائه داد. تمامی مقادیر می‌توانند با یکدیگر OR (یا جمع) شوند تا اطلاعات مربوط به تمام آنها در یک پرس‌وجو به دست آید: .RS 4 .IP \(bu 2 0x1: اطلاعات درباره مشخصاتی که پیاده‌سازی TPM از آن پیروی کرده است .IP \(bu 2 0x2: اطلاعات درباره سازنده، مدل و نسخه TPM .IP \(bu 2 0x4: فهرست اندازه‌های پشتیبانی‌شده برای کلیدهای RSA و Camellia .IP \(bu 2 0x8: شرح الگوریتم‌های پشتیبانی‌شده و فعال .IP \(bu 2 0x10: شرح دستورات پشتیبانی‌شده و فعال .IP \(bu 2 0x20: شرح نمایه فعال .IP \(bu 2 0x40: فهرست تمام نمایه‌های داخلی (built-in) .IP \(bu 2 0x80: شرح ویژگی‌های پشتیبانی‌شده .RE .RS 4 .RE .IP \fB\-h|\-\-help\fR 4 .IX Item "-h|--help" نمایش اطلاعات راهنمای استفاده. .SH "نکات (NOTES)" .IX Header "NOTES" در صورت استفاده از TPM 2، کاربر معمولاً موظف است دستور \fBTPM2_Shutdown()\fR را به TPM 2 ارسال کند تا از احتمال افزایش TPM_PT_LOCKOUT_COUNTER که ممکن است منجر به قفل شدن بر اثر حمله واژه‌نامه‌ای (DA) در راه‌اندازی بعدی (\fBTPM2_Startup()\fR) مربوط به TPM 2 شود جلوگیری گردد. افزایش یا عدم افزایش TPM_PT_LOCKOUT_COUNTER به دستورات قبلی ارسال‌شده به TPM 2 و همچنین وضعیت داخلی TPM 2 بستگی دارد. یک نمونه که موجب افزایش شمارنده می‌شود، حذف یا عدم ارائه گذرواژه در هنگام تلاش برای دسترسی به یک شیء حفاظت‌شده با گذرواژه یا مکانی در حافظه NVRAM با صفت فعال DA است، که به دنبال آن خاتمه swtpm بدون ارسال \fBTPM2_Shutdown()\fR رخ دهد. برای جلوگیری از قفل حمله واژه‌نامه‌ای، ابزار swtpm حداکثر تلاش خود را به کار بسته و در صورت لزوم دستور TPM2_Shutdown(SU_STATE) یا TPM2_Shutdown(SU_CLEAR) را ارسال خواهد کرد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBswtpm_bios\fR, \fBswtpm_cuse\fR