| tpm2(1) | General Commands Manual | tpm2(1) |
نام (NAME)
tpm2 - یک فایل اجرایی کوچک و یکپارچه شامل ابزارهای مختلف tpm2-tools شبیه به BusyBox برای سیستمهای کوچک یا تعبیهشده
خلاصه دستور (SYNOPSIS)
tpm2 [گزینهها] [آرگومانها]
توضیحات (DESCRIPTION)
دستور tpm2(1) - جهت تسهیل نصب tpm2-tools در initrd یا سیستمهای تعبیهشده (embedded) که بهینهسازی اندازه و محدودیت منابع در آنها اهمیت دارد، بسیار کاربردی است که یک فایل اجرایی منفرد وجود داشته باشد که بتواند قابلیتها و عملکردهای گوناگون TPM2 را بر اساس آرگومان مشخصشده (که یکی از نامهای ابزارهای موجود است) فراخوانی و اجرا کند.
گزینهها و آرگومانهایی که در ادامه میآیند یا از دستهٔ گزینههای عمومی (common options) هستند و یا مختص به نام ابزار (tool name) مشخصشده میباشند.
توجه به این نکته حائز اهمیت است که ابزارهای مستقل با پیشوند tpm2_ همچنان قابل فراخوانی هستند؛ با این حال، آنها اکنون بهصورت پیوند نرم (soft-link) به این فایل اجرایی tpm2 متصل شدهاند. بنابراین بر خلاف BusyBox، تمام قابلیتهای ابزارهای مجزا در این فایل اجرایی در دسترس است. به عنوان مثال: دستور tpm2_getrandom 8 را میتوان به شکل جایگزین بهصورت tpm2 getrandom 8 نیز اجرا کرد.
آرگومانها (ARGUMENTS)
فهرست نامهای ابزارهای ممکن. نکته: تنها یکی از این موارد را مشخص کنید. به بخش مثالها نگاه کنید.
certifyX509certutil
checkquote
eventlog
rc_decode
activatecredential
certify
changeauth
changeeps
changepps
clear
clearcontrol
clockrateadjust
create
createak
createek
createpolicy
setprimarypolicy
createprimary
dictionarylockout
duplicate
getcap
gettestresult
encryptdecrypt
evictcontrol
flushcontext
getekcertificate
getrandom
gettime
hash
hierarchycontrol
hmac
import
incrementalselftest
load
loadexternal
makecredential
nvdefine
nvextend
nvincrement
nvreadpublic
nvread
nvreadlock
nvundefine
nvwrite
nvwritelock
nvsetbits
pcrallocate
pcrevent
pcrextend
pcrread
pcrreset
policypcr
policyauthorize
policyauthorizenv
policynv
policycountertimer
policyor
policynamehash
policytemplate
policycphash
policypassword
policysigned
policyticket
policyauthvalue
policysecret
policyrestart
policycommandcode
policynvwritten
policyduplicationselect
policylocality
quote
readclock
readpublic
rsadecrypt
rsaencrypt
send
selftest
sessionconfig
setclock
shutdown
sign
certifycreation
nvcertify
startauthsession
startup
stirrandom
testparms
unseal
verifysignature
setcommandauditstatus
getcommandauditdigest
getsessionauditdigest
geteccparameters
ecephemeral
commit
ecdhkeygen
ecdhzgen
zgen2phase
مراجع (References)
گزینههای عمومی (COMMON OPTIONS)
این مجموعه از گزینهها میان بسیاری از برنامهها مشترک هستند و اطلاعاتی را ارائه میدهند که بسیاری از کاربران انتظار دارند.
- •
- -h، --help=[man|no-man]: نمایش صفحه راهنمای (manpage) ابزار. بهطور پیشفرض، تلاش میکند صفحهبند راهنما (manpager) را برای ابزار فراخوانی کند؛ اما در صورت عدم موفقیت، خلاصهای کوتاه از ابزار را خروجی میدهد. این رفتار مشابه زمانی است که آرگومان گزینهٔ “man” مشخص شود، اما در صورتی که بهطور صریح “man” درخواست شود، ابزار خطاهای man را در stderr ارائه میدهد. اگر گزینهٔ “no-man” مشخص شود یا صفحهبند راهنما شکست بخورد، گزینههای کوتاه به stdout فرستاده میشوند.
برای استفاده موفقیتآمیز از ویژگی صفحات راهنما، نیاز است صفحات راهنما نصب شده باشند یا در MANPATH قرار داشته باشند؛ برای جزئیات بیشتر به man(1) مراجعه کنید.
- •
- -v، --version: نمایش اطلاعات نسخه برای این ابزار، TCTIهای پشتیبانیشده و خروج.
- •
- -V، --verbose: افزایش اطلاعاتی که ابزار در طول اجرای خود در کنسول چاپ میکند. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ میشوند.
- •
- -Q، --quiet: بیصدا کردن خروجی عادی ابزار به stdout.
- •
- -Z، --enable-errata: فعالسازی اعمال اصلاحات اشکالات (errata fixups). زمانی مفید است که نیاز باشد اصلاحات errata به دستورات ارسالی به TPM اعمال شوند. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این گزینه است.
- •
- -z، --pwd-session: استفاده از نشست گذرواژهای بهجای نشست HMAC برای احراز اصالت. یک گذرواژه متنآشکار (clear text) به TPM ارسال میشود تا عملیات را مجاز کند. این گزینه میتواند برای جلوگیری از مشکلات هنگام استفاده از نشستهای بدون نمک (unsalted) در حالت OpenSSL FIPS استفاده شود. اگر مقادیر auth استفاده شوند، باید از یک نشست نمکدار (salted) برای احراز اصالت استفاده شود.
- •
- -R، --autoflush: فعالسازی تخلیه خودکار (autoflush) برای اشیاء گذرای ایجادشده توسط دستور. اگر یک شیء والد از یک فایل بافتار بارگذاری شود، شیء والد گذرا نیز تخلیه خواهد شد. تخلیه خودکار همچنین میتواند در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH روی yes یا true تنظیم شده باشد، فعال گردد. اطلاعاتی که ممکن است بسیاری از کاربران انتظار داشته باشند.
پیکربندی TCTI (TCTI CONFIGURATION)
رابط انتقال یا TCTI مخفف “Transmission Interface”، سازوکار ارتباطی با 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 Defaults)
هنگامی که یک TCTI مشخص نشده باشد، TCTI پیشفرض با استفاده از معناشناسی dlopen(3) جستجو میشود. ابزارها به دنبال TCTIهای tabrmd، device و mssim به همان ترتیب میگردند و از اولین موردی که یافت شد استفاده میکنند. میتوانید با استفاده از گزینهٔ -v برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیشفرض انتخاب خواهد شد. جفت کلید-مقدار “default-tcti” نشان میدهد که کدام یک از TCTIهای یادشده پیشفرض است.
TCTIهای سفارشی (Custom TCTIs)
هر TCTI که رابط پویای TCTI را پیادهسازی کند میتواند بارگذاری شود. ابزارها در داخل از dlopen(3) استفاده میکنند و مقدار خام tcti-name برای جستجو استفاده میشود. بنابراین، این مقدار میتواند مسیری به کتابخانه مشترک یا نام کتابخانهای باشد که بر اساس معناشناسی dlopen(3) قابل فهم است.
گزینههای TCTI (TCTI OPTIONS)
این مجموعه از گزینهها برای پیکربندی ماژولهای مختلف TCTI شناختهشدهٔ موجود استفاده میشوند:
- •
- device: برای TCTI دستگاه (device)، فایل دستگاه نویسهای (character device) TPM جهت استفاده توسط TCTI دستگاه میتواند مشخص شود. پیشفرض /dev/tpm0 است.
مثال: -T device:/dev/tpm0 یا export TPM2TOOLS_TCTI=“device:/dev/tpm0”
- •
- mssim: برای TCTI شبیهساز mssim، نام دامنه یا آدرس IP و شماره درگاه (پورت) استفادهشده توسط شبیهساز میتواند مشخص شود. مقادیر پیشفرض 127.0.0.1 و 2321 هستند.
مثال: -T mssim:host=localhost,port=2321 یا export TPM2TOOLS_TCTI=“mssim:host=localhost,port=2321”
- •
- abrmd: برای TCTI abrmd، قالب رشته پیکربندی شامل مجموعهای از جفتهای کلید-مقدار ساده است که با نویسه `,' از هم جدا شدهاند. رشتههای هر کلید و مقدار با نویسه `=' از یکدیگر تفکیک میشوند.
- •
- ماژول TCTI abrmd از دو کلید پشتیبانی میکند:
- 1.
- `bus_name' : نام سرویس tabrmd روی گذرگاه (یک رشته).
- 2.
- `bus_type' : نوع نمونه dbus (یک رشته) محدود به `session' و `system'.
مشخص کردن نام tcti معادل tabrmd و رشته پیکربندی bus_name=com.example.FooBar:
-
\--tcti=tabrmd:bus_name=com.example.FooBar
مشخص کردن tcti پیشفرض (abrmd) و رشته پیکربندی bus_type=session:
-
\--tcti:bus_type=session
نکته: abrmd و tabrmd مترادف یکدیگرند. ماژولهای مختلف و شناختهشدهٔ TCTI.
مثالها (EXAMPLES)
دریافت ۸ بایت تصادفی از TPM
-
tpm2 getrandom 8 | xxd -p
ارسال دستور راهاندازی (Startup) به TPM با فلگهای TPM2_SU_CLEAR
-
tpm2 startup -c
کدهای بازگشتی (RETURNS)
ابزارها میتوانند هر یک از کدهای زیر را بازگردانند:
- •
- 0 - موفقیتآمیز.
- •
- 1 - خطای عمومی و نامشخص.
- •
- 2 - خطای مدیریت گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مربوط به TCTI.
- •
- 5 - طرحواره پشتیبانینشده. مربوط به tpm2_testparams.
اشکالات (BUGS)
راهنما (HELP)
مشاهده فهرست پستی (Mailing List)
مجوز (LICENSE)
این اثر تحت مجوز بینالمللی کریتیو کامنز ارجاع ۴.۰ (CC BY 4.0).
| tpm2-tools |