tpm2_setcommandauditstatus(1) General Commands Manual tpm2_setcommandauditstatus(1)

tpm2_setcommandauditstatus - افزودن یا حذف دستورات TPM2 از فهرست دستورات مورد حسابرسی

tpm2_setcommandauditstatus [OPTIONS] [ARGUMENT]

tpm2_setcommandauditstatus(1) - دستورات TPM2 را به فهرست دستورات حسابرسی‌شده (audited) اضافه یا از آن حذف می‌کند.

این دستور به عنوان یک آرگومان، دستور مورد نظر را در قالب یک عدد صحیح یا مقدار رشته‌ای کاربرپسند دریافت می‌کند. نگاشت رشته کاربرپسند به COMMAND CODE را می‌توان در بخش COMMAND CODE MAPPINGS یافت.

•
-C, --hierarchy=OBJECT:

سلسله‌مراتب مالک (owner) یا پلتفرم (platform) را مشخص می‌کند. در صورتی که هیچ مقداری مشخص نشده باشد، مقدار پیش‌فرض TPM_RH_OWNER است. گزینه‌های پشتیبانی‌شده عبارتند از:

•
o برای TPM_RH_OWNER
•
p برای TPM_RH_PLATFORM
•
-P, --hierarchy-auth=AUTH: مقدار احراز هویت (authorization) را برای سلسله‌مراتب مشخص می‌کند. مقادیر احراز هویت باید از “استانداردهای قالب‌بندی مجوز” پیروی کنند، بخش “Authorization Formatting” را ببینید.
•
-c, --clear-list: مشخص می‌کند که دستور TPM تعیین‌شده باید از فهرست حسابرسی برداشته شود. در صورت عدم تعیین، رفتار پیش‌فرض افزودن دستور TPM به فهرست حسابرسی است.
•
-g, --hash-algorithm=ALGORITHM:

الگوریتم درهم‌سازی را برای خلاصه حسابرسی (audit digest) تنظیم می‌کند. در صورت عدم تعیین، الگوریتم پیش‌فرض خلاصه حسابرسی بر روی SHA256 تنظیم می‌شود.

•
ARGUMENT آرگومان خط فرمان، کد دستور TPM2 را مشخص می‌کند.

این مجموعه گزینه‌ها میان بسیاری از برنامه‌ها مشترک هستند و اطلاعاتی را ارائه می‌دهند که ممکن است بسیاری از کاربران انتظار آن را داشته باشند.

•
-h, --help=[man|no-man]: نمایش صفحه راهنمای (manpage) ابزار. به‌طور پیش‌فرض، تلاش می‌کند تا صفحه‌بند راهنما (manpager) را برای ابزار فراخوانی کند، اما در صورت شکست، خلاصه‌ای کوتاه از ابزار را خروجی می‌دهد. این رفتار مشابه زمانی است که آرگومان گزینه “man” مشخص شده باشد؛ اما اگر “man” صراحتاً درخواست شود، ابزار خطاهای man را در stderr ارائه خواهد داد. اگر گزینه “no-man” مشخص شده باشد، یا فراخوانی manpager با شکست مواجه شود، گزینه‌های کوتاه در stdout خروجی داده می‌شوند.

برای استفاده موفقیت‌آمیز از ویژگی صفحات راهنما، نیاز است که صفحات راهنما نصب شده یا در MANPATH قرار داشته باشند؛ برای جزئیات بیشتر man(1) را ببینید.

•
-v, --version: نمایش اطلاعات نسخه این ابزار و tctiهای پشتیبانی‌شده، و سپس خروج.
•
-V, --verbose: افزایش اطلاعاتی که ابزار هنگام اجرای خود در کنسول چاپ می‌کند. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ می‌شوند.
•
-Q, --quiet: بی‌صدا کردن خروجی عادی ابزار در stdout.
•
-Z, --enable-errata: فعال کردن اعمال اصلاحات خطانامه (errata fixups). زمانی مفید است که لازم باشد اصلاحیه خطانامه روی دستورات ارسالی به TPM اعمال شود. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این گزینه است.
•
-z, --pwd-session: استفاده از نشست گذرواژه به جای نشست HMAC برای احراز هویت. یک گذرواژه به صورت متن آشکار برای تایید اعتبار عمل به TPM ارسال می‌شود. این گزینه می‌تواند برای جلوگیری از مشکلات ناشی از استفاده از نشست‌های بدون سالت (unsalted) در حالت OpenSSL FIPS استفاده شود. در صورت استفاده از مقادیر auth، باید از یک نشست دارای سالت برای احراز هویت استفاده شود.
•
-R, --autoflush: فعال‌سازی تخلیه خودکار (autoflush) برای اشیاء گذرا (transient) ایجاد شده توسط دستور. اگر یک شیء والد از فایل زمینه (context) بارگیری شود، شیء والد گذرا نیز تخلیه خواهد شد. تخلیه خودکار همچنین در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH بر روی yes یا true تنظیم شده باشد فعال می‌شود. اطلاعاتی که ممکن است بسیاری از کاربران انتظار آن را داشته باشند.

رابط TCTI یا “رابط انتقال” سازوکار ارتباط با TPM است. TCTIها را می‌توان برای برقراری ارتباط با TPMها در بسترهای مختلف تغییر داد.

برای کنترل TCTI، ابزارها موارد زیر را رعایت می‌کنند:

1.
گزینه خط فرمان -T یا --tcti
2.
متغیر محیطی: TPM2TOOLS_TCTI.

نکته: گزینه خط فرمان همواره بر متغیر محیطی اولویت دارد و آن را بازنویسی می‌کند.

TCTIهای شناخته‌شده کنونی عبارتند از:

•
tabrmd - مدیر منابع، موسوم به tabrmd. توجه داشته باشید که tabrmd و abrmd به عنوان نام tcti مترادف یکدیگرند.
•
mssim - معمولاً برای برقراری ارتباط با شبیه‌ساز نرم‌افزاری TPM استفاده می‌شود.
•
device - هنگام برقراری ارتباط مستقیم با یک فایل دستگاه TPM استفاده می‌شود.
•
none - اتصالی را با TPM آغاز نکنید. برخی ابزارها امکان گزینه‌های خارج از TPM (off-tpm) را می‌دهند و از این رو از عدم استفاده از TCTI پشتیبانی می‌کنند. ابزارهایی که از آن پشتیبانی نمی‌کنند، در صورت تلاش برای استفاده بدون اتصال TCTI خطا خواهند داد. از هیچ‌گونه گزینه‌ای پشتیبانی نمی‌کند و باید حتماً دقیقاً به صورت متن “none” ارائه شود.

آرگومان‌های گزینه خط فرمان یا متغیر محیطی به شکل زیر هستند:

<tcti-name>:<tcti-option-config>

تعیین یک رشته خالی برای هر یک از <tcti-name> یا <tcti-option-config> منجر به استفاده از مقدار پیش‌فرض برای همان بخش خواهد شد.

هنگامی که TCTI مشخص نشده باشد، TCTI پیش‌فرض با استفاده از معناشناسی dlopen(3) جستجو می‌شود. ابزارها به دنبال TCTIهای tabrmd، device و mssim به همان ترتیب جستجو خواهند کرد و از اولین مورد یافت‌شده استفاده می‌کنند. می‌توانید با استفاده از گزینه -v برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیش‌فرض انتخاب خواهد شد. جفت کلید-مقدار “default-tcti” مشخص خواهد کرد که کدام‌یک از TCTIهای یادشده پیش‌فرض است.

هر TCTI که رابط پویای TCTI را پیاده‌سازی کند می‌تواند بارگیری شود. ابزارها در داخل از dlopen(3) استفاده می‌کنند، و از مقدار خام tcti-name برای جستجو استفاده می‌شود. بنابراین، این مقدار می‌تواند مسیری به کتابخانه مشترک یا نام کتابخانه‌ای باشد که توسط معناشناسی dlopen(3) قابل فهم است.

این مجموعه از گزینه‌ها برای پیکربندی ماژول‌های مختلف TCTI شناخته‌شده موجود به کار می‌روند:

•
device: برای device TCTI، می‌توان فایل دستگاه نویسه‌ای TPM را برای استفاده توسط device TCTI تعیین کرد. پیش‌فرض /dev/tpm0 است.

مثال: -T device:/dev/tpm0 یا export TPM2TOOLS_TCTI=“device:/dev/tpm0”

•
mssim: برای mssim TCTI، می‌توان نام دامنه یا نشانی IP و شماره پورت مورد استفاده شبیه‌ساز را مشخص کرد. پیش‌فرض 127.0.0.1 و 2321 است.

مثال: -T mssim:host=localhost,port=2321 یا export TPM2TOOLS_TCTI=“mssim:host=localhost,port=2321”

•
abrmd: برای abrmd TCTI، قالب رشته پیکربندی مجموعه‌ای از جفت‌های کلید-مقدار ساده است که با نویسه `,' از یکدیگر تفکیک شده‌اند. هر رشته کلید و مقدار با نویسه `=' از هم جدا می‌شوند.
•
بخش TCTI abrmd از دو کلید پشتیبانی می‌کند:
1.
`bus_name' : نام سرویس tabrmd روی گذرگاه (یک رشته).
2.
`bus_type' : نوع نمونه dbus (یک رشته) که به `session' و `system' محدود است.

تعیین نام tabrmd tcti و رشته پیکربندی bus_name=com.example.FooBar:

\--tcti=tabrmd:bus_name=com.example.FooBar

تعیین tcti پیش‌فرض (abrmd) و رشته پیکربندی bus_type=session:

\--tcti:bus_type=session

نکته: abrmd و tabrmd مترادف هستند. ماژول‌های مختلف TCTI شناخته‌شده.

مجموعه گزینه‌های الگوریتم درهم‌سازی برای تعیین الگوریتم درهم‌سازی.

رشته‌های کاربرپسند زیر می‌توانند به جای مقادیر عدد صحیح خام استفاده شوند.

-TPM2_CC_AC_GetCapability: 0x194 -TPM2_CC_AC_Send: 0x195 -TPM2_CC_ActivateCredential: 0x147 -TPM2_CC_Certify: 0x148 -TPM2_CC_CertifyCreation: 0x14a -TPM2_CC_ChangeEPS: 0x124 -TPM2_CC_ChangePPS: 0x125 -TPM2_CC_Clear: 0x126 -TPM2_CC_ClearControl: 0x127 -TPM2_CC_ClockRateAdjust: 0x130 -TPM2_CC_ClockSet: 0x128 -TPM2_CC_Commit: 0x18b -TPM2_CC_ContextLoad: 0x161 -TPM2_CC_ContextSave: 0x162 -TPM2_CC_Create: 0x153 -TPM2_CC_CreateLoaded: 0x191 -TPM2_CC_CreatePrimary: 0x131 -TPM2_CC_DictionaryAttackLockReset: 0x139 -TPM2_CC_DictionaryAttackParameters: 0x13a -TPM2_CC_Duplicate: 0x14b -TPM2_CC_ECC_Parameters: 0x178 -TPM2_CC_ECDH_KeyGen: 0x163 -TPM2_CC_ECDH_ZGen: 0x154 -TPM2_CC_EC_Ephemeral: 0x18e -TPM2_CC_EncryptDecrypt: 0x164 -TPM2_CC_EncryptDecrypt2: 0x193 -TPM2_CC_EventSequenceComplete: 0x185 -TPM2_CC_EvictControl: 0x120 -TPM2_CC_FieldUpgradeData: 0x141 -TPM2_CC_FieldUpgradeStart: 0x12f -TPM2_CC_FirmwareRead: 0x179 -TPM2_CC_FlushContext: 0x165 -TPM2_CC_GetCapability: 0x17a -TPM2_CC_GetCommandAuditDigest: 0x133 -TPM2_CC_GetRandom: 0x17b -TPM2_CC_GetSessionAuditDigest: 0x14d -TPM2_CC_GetTestResult: 0x17c -TPM2_CC_GetTime: 0x14c -TPM2_CC_Hash: 0x17d -TPM2_CC_HashSequenceStart: 0x186 -TPM2_CC_HierarchyChangeAuth: 0x129 -TPM2_CC_HierarchyControl: 0x121 -TPM2_CC_HMAC: 0x155 -TPM2_CC_HMAC_Start: 0x15b -TPM2_CC_Import: 0x156 -TPM2_CC_IncrementalSelfTest: 0x142 -TPM2_CC_Load: 0x157 -TPM2_CC_LoadExternal: 0x167 -TPM2_CC_MakeCredential: 0x168 -TPM2_CC_NV_Certify: 0x184 -TPM2_CC_NV_ChangeAuth: 0x13b -TPM2_CC_NV_DefineSpace: 0x12a -TPM2_CC_NV_Extend: 0x136 -TPM2_CC_NV_GlobalWriteLock: 0x132 -TPM2_CC_NV_Increment: 0x134 -TPM2_CC_NV_Read: 0x14e -TPM2_CC_NV_ReadLock: 0x14f -TPM2_CC_NV_ReadPublic: 0x169 -TPM2_CC_NV_SetBits: 0x135 -TPM2_CC_NV_UndefineSpace: 0x122 -TPM2_CC_NV_UndefineSpaceSpecial: 0x11f -TPM2_CC_NV_Write: 0x137 -TPM2_CC_NV_WriteLock: 0x138 -TPM2_CC_ObjectChangeAuth: 0x150 -TPM2_CC_PCR_Allocate: 0x12b -TPM2_CC_PCR_Event: 0x13c -TPM2_CC_PCR_Extend: 0x182 -TPM2_CC_PCR_Read: 0x17e -TPM2_CC_PCR_Reset: 0x13d -TPM2_CC_PCR_SetAuthPolicy: 0x12c -TPM2_CC_PCR_SetAuthValue: 0x183 -TPM2_CC_Policy_AC_SendSelect: 0x196 -TPM2_CC_PolicyAuthorize: 0x16a -TPM2_CC_PolicyAuthorizeNV: 0x192 -TPM2_CC_PolicyAuthValue: 0x16b -TPM2_CC_PolicyCommandCode: 0x16c -TPM2_CC_PolicyCounterTimer: 0x16d -TPM2_CC_PolicyCpHash: 0x16e -TPM2_CC_PolicyDuplicationSelect: 0x188 -TPM2_CC_PolicyGetDigest: 0x189 -TPM2_CC_PolicyLocality: 0x16f -TPM2_CC_PolicyNameHash: 0x170 -TPM2_CC_PolicyNV: 0x149 -TPM2_CC_PolicyNvWritten: 0x18f -TPM2_CC_PolicyOR: 0x171 -TPM2_CC_PolicyPassword: 0x18c -TPM2_CC_PolicyPCR: 0x17f -TPM2_CC_PolicyPhysicalPresence: 0x187 -TPM2_CC_PolicyRestart: 0x180 -TPM2_CC_PolicySecret: 0x151 -TPM2_CC_PolicySigned: 0x160 -TPM2_CC_PolicyTemplate: 0x190 -TPM2_CC_PolicyTicket: 0x172 -TPM2_CC_PP_Commands: 0x12d -TPM2_CC_Quote: 0x158 -TPM2_CC_ReadClock: 0x181 -TPM2_CC_ReadPublic: 0x173 -TPM2_CC_Rewrap: 0x152 -TPM2_CC_RSA_Decrypt: 0x159 -TPM2_CC_RSA_Encrypt: 0x174 -TPM2_CC_SelfTest: 0x143 -TPM2_CC_SequenceComplete: 0x13e -TPM2_CC_SequenceUpdate: 0x15c -TPM2_CC_SetAlgorithmSet: 0x13f -TPM2_CC_SetCommandCodeAuditStatus: 0x140 -TPM2_CC_SetPrimaryPolicy: 0x12e -TPM2_CC_Shutdown: 0x145 -TPM2_CC_Sign: 0x15d -TPM2_CC_StartAuthSession: 0x176 -TPM2_CC_Startup: 0x144 -TPM2_CC_StirRandom: 0x146 -TPM2_CC_TestParms: 0x18a -TPM2_CC_Unseal: 0x15e -TPM2_CC_Vendor_TCG_Test: 0x20000000 -TPM2_CC_VerifySignature: 0x177 -TPM2_CC_ZGen_2Phase: 0x18d

افزودن TPM2_CC_Unseal به فهرست دستورات حسابرسی‌شده.

tpm2_setcommandauditstatus TPM2_CC_Unseal

ابزارها می‌توانند هر یک از کدهای زیر را برگردانند:

•
0 - موفقیت‌آمیز.
•
1 - خطای عمومی و نامشخص.
•
2 - خطای پردازش گزینه‌ها.
•
3 - خطای احراز هویت.
•
4 - خطای مربوط به TCTI.
•
5 - طرح (scheme) پشتیبانی‌نشده. قابل اعمال بر tpm2_testparams.

این ابزار انتظار دارد که نشستی از پیش از طریق tpm2_startauthsession(1) برقرار شده باشد و نیازمند یکی از موارد زیر است:

•
دسترسی مستقیم به دستگاه
•
پشتیبانی گسترده از نشست با tpm2-abrmd.

بدون آن، اکثر مدیران منابع وضعیت نشست را بین فراخوانی‌های دستور ذخیره نخواهند کرد.

مشکلات گیت‌هاب (Github Issues)

مشاهده فهرست پستی (Mailing List)

این اثر تحت مجوز بین‌المللی ارجاع ۴.۰ کریتیو کامنز (CC BY 4.0) دارای پروانه انتشار است.

tpm2-tools