| tpm2_zgen2phase(1) | General Commands Manual | tpm2_zgen2phase(1) |
نام (NAME)
tpm2_zgen2phase - دستوری برای فعالسازی TPM جهت ترکیب دادههای طرف مقابل با کلید موقت تولیدشده در فاز نخست پروتکلهای تبادل کلید دومرحلهای
خلاصه دستور (SYNOPSIS)
tpm2_zgen2phase [OPTIONS]
توضیحات (DESCRIPTION)
tpm2_zgen2phase(1) - دستوری برای فعالسازی TPM جهت ترکیب دادههای طرف مقابل با کلید موقت (ephemeral key) تولیدشده در فاز نخست پروتکلهای تبادل کلید دومرحلهای (two-phase key exchange).
گزینهها (OPTIONS)
- •
- -c, --key-context=FILE:
شیء زمینه (context object) که به کلید ECC اشاره دارد. میتواند یک فایل یا شماره اشارهگر (handle) باشد. بخش “Context Object Format” را ببینید.
- •
- -p, --key-auth=AUTH:
مقدار احراز هویت برای شیء کلید ECC.
- •
- -s, --scheme=ALGORITHM:
طرح تبادل کلید (key exchange scheme). اختیاری است. گزینههای معتبر شامل ecdh یا sm2 هستند.
- •
- -t, --counter=NATURALNUMBER:
تعداد commit برای تعیین نمایه کلید مورد استفاده.
- •
- --static-public=FILE:
ورودی کلید عمومی ایستا (static public key) متعلق به طرف مقابل.
- •
- --ephemeral-public=FILE:
ورودی کلید عمومی موقت (ephemeral public key) متعلق به طرف مقابل.
- •
- --output-Z1=FILE
مسیر فایل را برای ذخیره نقطه سری Z1 محاسبهشده در ecdh مشخص میکند.
- •
- --output-Z2=FILE
مسیر فایل را برای ذخیره نقطه سری Z2 محاسبهشده در ecdh مشخص میکند.
مراجع (References)
مشخصکنندههای الگوریتم (Algorithm Specifiers)
گزینههایی که الگوریتم میپذیرند، از “nice-names” پشتیبانی میکنند.
دو دسته رشته اصلی برای تعیین الگوریتم وجود دارد: ساده و پیچیده. تنها الگوریتمهای خاصی بر اساس نوع استفاده و شرایط توسط TPM پذیرفته میشوند.
مشخصکنندههای ساده (Simple specifiers)
اینها رشتههایی بدون دادههای مشخصکننده اضافی هستند. هنگام ایجاد اشیاء، بخشهای تعییننشده یک شیء به صورت پیشفرض در نظر گرفته میشوند. میتوانید فهرست “مشخصکنندههای ساده” شناختهشده را در زیر بیابید.
نامتقارن (Asymmetric)
- •
- rsa
- •
- ecc.SS "متقارن (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>:<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 - منحنی بیضوی، پیشفرض 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 با اندازهٔ کلید ۴۰۹۶ بیتی..SS مشخصکنندههای طرح (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. اگر هیچ شمارشی مشخص نشود، مقدار پیشفرض آن 4 است.
مشخصکنندههای طرح بدون گزینه (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 الگوریتمهای رمزنگاری ALGORITHM.
گزینههای عمومی (COMMON OPTIONS)
این مجموعه از گزینهها بین بسیاری از برنامهها مشترک هستند و اطلاعاتی را ارائه میدهند که بسیاری از کاربران ممکن است انتظار داشته باشند.
- •
- -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: استفاده از نشست گذرواژه (password session) به جای نشست HMAC برای احراز هویت. یک گذرواژه به صورت متنآشکار (clear text) به TPM ارسال میشود تا اقدام را مجاز کند. این گزینه میتواند برای جلوگیری از بروز مشکل در زمان استفاده از نشستهای بدون سالت (unsalted) در حالت OpenSSL FIPS استفاده شود. اگر از مقادیر auth استفاده میشود، باید از یک نشست دارای سالت (salted session) برای احراز هویت استفاده شود.
- •
- -R, --autoflush: فعالسازی تخلیه خودکار (autoflush) برای اشیاء گذرا (transient objects) ایجادشده توسط دستور. اگر یک شیء والد از یک فایل زمینه (context file) بارگیری شود، شیء والد گذرای آن نیز تخلیه (flush) خواهد شد. تخلیه خودکار همچنین در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH روی yes یا true تنظیم شده باشد، فعال میشود. اطلاعاتی که بسیاری از کاربران ممکن است انتظار داشته باشند..SH "پیکربندی 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 TCTI)، فایل دستگاه نویسهای TPM جهت استفاده توسط TCTI دستگاه میتواند مشخص شود. پیشفرض /dev/tpm0 است.
مثال: -T device:/dev/tpm0 یا export TPM2TOOLS_TCTI=“device:/dev/tpm0”
- •
- mssim: برای TCTI شبیهساز (mssim TCTI)، نام دامنه یا نشانی 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 شناختهشده.
-
tpm2_createprimary -C o -c prim.ctx -Q tpm2_create -C prim.ctx -c key.ctx -u key.pub -r key.priv -G ecc256:ecdh -Q tpm2_ecephemeral -u ecc.q -t ecc.ctr ecc256 tpm2_ecdhkeygen -u ecdh.pub -o ecdh.priv -c key.ctx tpm2_zgen2phase -c key.ctx --static-public ecdh.pub --ephemeral-public ecc.q \ -t 0 --output-Z1 z1.bin --output-Z2 z2.bin
وضعیت خروج (EXIT STATUS)
ابزارها میتوانند هر یک از کدهای زیر را بازگردانند:
- •
- 0 - موفقیت.
- •
- 1 - خطای عمومی نامشخص.
- •
- 2 - خطای مدیریت گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مربوط به TCTI.
- •
- 5 - طرحواره پشتیبانینشده. مربوط به tpm2_testparams.
گزارش باگها (BUGS)
راهنما (HELP)
مشاهدهٔ فهرست پستی
مجوز (LICENSE)
این اثر تحت مجوز بینالمللی Creative Commons Attribution 4.0 (CC BY 4.0) منتشر شده است.
| tpm2-tools |