| tpm2_incrementalselftest(1) | General Commands Manual | tpm2_incrementalselftest(1) |
نام (NAME)
tpm2_incrementalselftest - درخواست آزمایش فهرست الگوریتمهای مشخصشده
خلاصه دستور (SYNOPSIS)
tpm2_incrementalselftest [گزینهها] ALG_SPEC_LIST
توضیحات (DESCRIPTION)
tpm2_incrementalselftest(1) - از TPM درخواست میکند تا آزمایش را روی الگوریتمهای مشخصشده انجام دهد و فهرستی از الگوریتمهای زمانبندیشده برای آزمایش یا الگوریتمهایی که برای آزمایش باقی ماندهاند اما زمانبندی نشدهاند را چاپ کند.
هدف اصلی این دستور کاهش تاخیرهایی است که ممکن است در عملیات رمزنگاری رخ دهد؛ چرا که TPM باید پیش از استفاده از هر الگوریتم، آن را آزمایش کند.
فهرست مشخصکنندههای الگوریتم (ALG_SPEC_LIST)
فهرستی از مجموعههای الگوریتم جداشده با فاصله برای آزمایش. الگوریتمها باید از “استانداردهای قالببندی” پیروی کنند، به بخش “مشخصکنندههای الگوریتم (Algorithm Specifiers)” مراجعه کنید. همچنین برای مشاهده فهرستی از الگوریتمهای هش پشتیبانیشده، بخش “الگوریتمهای درهمسازی پشتیبانیشده” را ببینید.
اگر ALG_SPEC_LIST خالی رها شود، tpm2_incrementalselftest(1) فهرستی از الگوریتمهایی را که برای آزمایش باقی ماندهاند برمیگرداند. لطفاً توجه داشته باشید که در این حالت این الگوریتمها برای آزمایش زمانبندی نشدهاند.
اگر ALG_SPEC_LIST خالی نباشد، tpm2_incrementalselftest(1) فهرستی از الگوریتمهایی که برای آزمایش باقی ماندهاند را برمیگرداند. این فهرست شامل الگوریتمهای زمانبندیشده برای آزمایش و همچنین الگوریتمهایی است که برای آزمایش باقی مانده و هنوز زمانبندی نشدهاند. این حالت به عنوان مثال زمانی رخ میدهد که تمام حالتهای AES هنوز آزمایش نشده باشند.
خروجی (OUTPUT)
فهرست الگوریتمهایی که قرار است آزمایش شوند (زمانبندیشده) یا برای آزمایش باقی ماندهاند (زمانبندینشده) نیز در قالب YAML چاپ میشود.
اگر هیچیک از الگوریتمهای مشخصشده چاپ نشود، به این معنی است که آنها قبلاً آزمایش شدهاند و این الگوریتمها دوباره آزمایش نخواهند شد.
گزینهها (OPTIONS)
این ابزار هیچ گزینهٔ اختصاصی دریافت نمیکند.
مراجع (REFERENCES)
مشخصکنندههای الگوریتم (Algorithm Specifiers)
گزینههایی که الگوریتم دریافت میکنند از “نامهای مناسب (nice-names)” پشتیبانی میکنند.
دو دسته اصلی رشتههای مشخصکننده الگوریتم وجود دارد: ساده و پیچیده. تنها الگوریتمهای خاصی توسط TPM بر اساس کاربرد و شرایط پذیرفته میشوند.
مشخصکنندههای ساده (Simple specifiers)
اینها رشتههایی بدون دادههای مشخصکننده اضافی هستند. هنگام ایجاد اشیاء، بخشهای نامشخص شیء به مقادیر پیشفرض فرض میشوند. میتوانید فهرست “مشخصکنندههای ساده” شناختهشده را در زیر بیابید.
نامتقارن (Asymmetric)
- •
- rsa
- •
- ecc
متقارن (Symmetric)
- •
- aes
- •
- camellia
- •
- sm4
الگوریتمهای درهمسازی (Hashing Algorithms)
- •
- sha1
- •
- sha256
- •
- sha384
- •
- sha512
- •
- sm3_256
- •
- sha3_256
- •
- sha3_384
- •
- sha3_512
درهمسازی کلیددار (Keyed Hash)
- •
- hmac
- •
- xor
طرحهای امضا (Signing Schemes)
- •
- rsassa
- •
- rsapss
- •
- ecdsa
- •
- ecdaa
- •
- ecschnorr
- •
- sm2
طرحهای رمزنگاری نامتقارن (Asymmetric Encryption Schemes)
- •
- oaep
- •
- rsaes
- •
- ecdh
حالتها (Modes)
- •
- ctr
- •
- ofb
- •
- cbc
- •
- cfb
- •
- ecb
متفرقه (Misc)
- •
- null
مشخصکنندههای پیچیده (Complex Specifiers)
اشیاء، زمانی که برای ایجاد توسط TPM مشخص میشوند، الگوریتمهای متعددی دارند که باید در دادههای عمومی مقداردهی شوند؛ مواردی مانند نوع (type)، طرح (scheme) و جزئیات نامتقارن، اندازه کلید و غیره. در زیر قالب کلی برای مشخص کردن این دادهها آمده است: <type>:<scheme>:<symmetric-details>
مشخصکنندههای نوع (Type Specifiers)
این بخش از مشخصکننده الگوریتم پیچیده الزامی است. باقیمانده طرح و جزئیات متقارن بر اساس نوع مشخصشده و نوع شیء در حال ایجاد، به مقادیر پیشفرض تنظیم میشوند.
- •
- aes - مقدار پیشفرض AES: aes128
- •
- aes128<mode> - مقدار ۱۲۸ بیتی AES با حالت اختیاری (ctr|ofb|cbc|cfb|ecb). اگر حالت مشخص نشود، پیشفرض null است.
- •
- aes192<mode> - مشابه aes128<mode>، بهجز اندازه کلید ۱۹۲ بیتی.
- •
- aes256<mode> - مشابه aes128<mode>، بهجز اندازه کلید ۲۵۶ بیتی.
- •
- sm4 - مقدار پیشفرض SM4: sm4128
- •
- sm4128 یا sm4_128 <mode> - مقدار ۱۲۸ بیتی SM4 با حالت اختیاری (ctr|ofb|cbc|cfb|ecb). اگر حالت مشخص نشود، پیشفرض null است.
- •
- ecc - منحنی بیضوی (Elliptical Curve)، پیشفرض ecc256 است.
- •
- ecc192 یا ecc_nist_p192 - منحنی ۱۹۲ بیتی ECC NIST
- •
- ecc224 یا ecc_nist_p224 - منحنی ۲۲۴ بیتی ECC NIST
- •
- ecc256 یا ecc_nist_p256 - منحنی ۲۵۶ بیتی ECC NIST
- •
- ecc384 یا ecc_nist_p384 - منحنی ۳۸۴ بیتی ECC NIST
- •
- ecc521 یا ecc_nist_p521 - منحنی ۵۲۱ بیتی ECC NIST
- •
- ecc_sm2 یا ecc_sm2_p256 - منحنی ۲۵۶ بیتی SM2
- •
- rsa - مقدار پیشفرض RSA: rsa2048
- •
- rsa1024 - الگوریتم RSA با اندازه کلید ۱۰۲۴ بیتی.
- •
- rsa2048 - الگوریتم RSA با اندازه کلید ۲۰۴۸ بیتی.
- •
- rsa3072 - الگوریتم RSA با اندازه کلید ۳۰۷۲ بیتی.
- •
- rsa4096 - الگوریتم RSA با اندازه کلید ۴۰۹۶ بیتی.
مشخصکنندههای طرح (Scheme Specifiers)
بخش بعدی یک فیلد اختیاری است و میتوان از آن صرفنظر کرد.
طرحها معمولاً طرحهای امضا (Signing Schemes) یا طرحهای رمزنگاری نامتقارن (Asymmetric Encryption Schemes) هستند. بیشتر طرحهای امضا یک الگوریتم هش را دقیقاً پس از طرح امضا دریافت میکنند. اگر الگوریتم هش ذکر نشود، پیشفرض sha256 خواهد بود. برخی هیچ آرگومانی نمیگیرند و برخی چندین آرگومان دریافت میکنند.
مشخصکنندههای طرح با هش اختیاری (Hash Optional Scheme Specifiers)
پس از این مشخصکنندههای طرح یک خط تیره و یک الگوریتم هش معتبر میآید، برای مثال: oaep-sha256.
- •
- oaep
- •
- ecdh
- •
- rsassa
- •
- rsapss
- •
- ecdsa
- •
- ecschnorr
- •
- sm2
مشخصکنندههای طرح چندگزینهای (Multiple Option Scheme Specifiers)
پس از این مشخصکننده طرح، یک شمارنده (حداکثر اندازه UINT16) و سپس یک خط تیره (-) و یک الگوریتم هش معتبر میآید. * ecdaa برای مثال: ecdaa4-sha256. اگر هیچ شمارندهای مشخص نشود، پیشفرض برابر با ۴ است.
مشخصکنندههای طرح بدون گزینه (No Option Scheme Specifiers)
این مشخصکننده طرح هیچ آرگومانی دریافت نمیکند. * rsaes
مشخصکنندههای جزئیات متقارن (Symmetric Details Specifiers)
این فیلد اختیاری است و بر اساس نوع (type) شیء در حال ایجاد و ویژگیهای آن به مقدار پیشفرض تنظیم میشود. بهطور کلی، هر مشخصکننده معتبر متقارن (Symmetric) از فهرست مشخصکنندههای نوع (Type Specifiers) باید کار کند. اگر مشخص نشود، جزئیات متقارن یک شیء نامتقارن به طور پیشفرض به aes128cfb تنظیم میشود.
مثالها (Examples)
ایجاد یک کلید rsa2048 با طرح رمزنگاری نامتقارن rsaes
tpm2_create -C parent.ctx -G rsa2048:rsaes -u key.pub -r key.priv
ایجاد یک کلید ecc256 با طرح امضای ecdaa با شمارنده ۴ و هش sha384
/tpm2_create -C parent.ctx -G ecc256:ecdaa4-sha384 -u key.pub -r key.priv
گزینههای عمومی (COMMON OPTIONS)
این مجموعه از گزینهها میان بسیاری از برنامهها مشترک بوده و اطلاعات مورد انتظار کاربران را فراهم میکنند.
- •
- -h, --help=[man|no-man]: نمایش صفحه راهنمای ابزار. بهطور پیشفرض، تلاش میکند صفحهبند راهنما (manpager) را برای ابزار فراخوانی کند، اما در صورت شکست، خلاصه کوتاهی از ابزار را نشان میدهد. این رفتار مشابه زمانی است که آرگومان گزینه “man” مشخص شده باشد، با این حال اگر صراحتاً “man” درخواست شود، ابزار خطاهای دریافتی از man را در خروجی خطای استاندارد (stderr) گزارش میکند. اگر گزینه “no-man” مشخص شود یا فراخوانی manpager شکست بخورد، گزینههای کوتاه در خروجی استاندارد چاپ خواهند شد.
استفاده موفقیتآمیز از ویژگی صفحات راهنما نیازمند نصب بودن صفحات راهنما یا قرار داشتن آنها در مسیر 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 ارسال میشود تا انجام عملیات را مجاز کند. از این گزینه میتوان برای جلوگیری از مشکلات ناشی از نشستهای بدون سالت در حالت OpenSSL FIPS استفاده کرد. اگر مقادیر auth به کار گرفته شوند، باید از یک نشست با سالت برای احراز هویت استفاده شود.
- •
- -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 دستگاه، فایل دستگاه نویسهای 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 مترادف یکدیگر هستند.
مثالها (EXAMPLES)
درخواست آزمایش الگوریتم RSA
-
tpm2_incrementalselftest rsa
درخواست آزمایش چندین الگوریتم
-
tpm2_incrementalselftest rsa ecc xor aes cbc
نکات (NOTES)
مجموعه الگوریتم مشخصشده میتواند بسته به پیادهسازی سازنده TPM، به معنای آزمایش ترکیب یا کل مجموعه باشد.
برای مثال: اگر “aes ctr” مشخص شود، یک TPM ممکن است تنها AES را در حالت CTR آزمایش کند، در حالی که TPM دیگری ممکن است فهرست کامل حالتهای AES را به همراه حالت CTR آزمایش نماید.
اگر الگوریتمی پیش از این آزمایش شده باشد، این دستور اجازه اجرای مجدد آزمایش را نخواهد داد. تنها اجرای دستور tpm2_selftest(1) در حالت فعال full-test آزمایش مجدد را اجباری خواهد کرد.
کدهای خروجی (RETURNS)
این ابزارها میتوانند هر یک از کدهای زیر را برگردانند:
- •
- 0 - موفقیتآمیز.
- •
- 1 - خطای عمومی و نامشخص.
- •
- 2 - خطای پردازش گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مرتبط با TCTI.
- •
- 5 - طرحواره پشتیبانینشده. مربوط به tpm2_testparams.
اشکالات (BUGS)
راهنما (HELP)
نگاه کنید به فهرست پستی (Mailing List)
مجوز (LICENSE)
این اثر تحت مجوز مجوز بینالمللی کریتیو کامنز ارجاع 4.0 (CC BY 4.0)منتشر شده است.
| tpm2-tools |