tpm2_getekcertificate(1) General Commands Manual tpm2_getekcertificate(1)

tpm2_getekcertificate - دریافت گواهی کلید تاییدیه TPM2 (EK)

tpm2_getekcertificate [گزینه‌ها] [آرگومان]

tpm2_getekcertificate(1) - دریافت گواهی کلید تاییدیه (EK). گواهی یا در اندیس‌های NV مشخص‌شده توسط TCG در TPM یا روی سرور میزبانی گواهی تاییدیه سازنده TPM موجود است. شرایط تعیین محل جستجوی گواهی در ادامه آمده است:

1.
اندیس NV (NV-Index):

محل جستجوی پیش‌فرض هنگامی که آرگومان مشخص نشده باشد.

2.
سرور گواهی EK اینتل (Intel-EK-certificate-server):

محل جستجو هنگامی که گواهی EK در اندیس NV یافت نشود، بیت tpmEPSgenerated برابر CLEAR باشد و سازنده TPM نیز INTC باشد.

3.
سرور صدور مجدد گواهی EK اینتل (Intel-EK-Re-certification-server):

محل جستجو هنگامی که گواهی EK در اندیس NV یافت نشود، بیت tpmEPSgenerated برابر SET باشد و سازنده TPM نیز INTC باشد.

نکته:

در این عملیات، اطلاعاتی پیرامون نرم‌افزار اضافی که باید به عنوان بخشی از سرویس تامین مجدد/صدور مجدد گواهی اجرا شود، ارائه می‌شود.

پس از تکمیل فرآیند تامین مجدد/صدور مجدد گواهی، گواهی‌های EK را می‌توان با اجرای نمونه دیگری از tpm2_getekcertificate از اندیس‌های NV خواند.

4.
سرور عمومی یا دیگر سرورهای گواهی EK:

محل جستجو هنگامی که آرگومان آدرس وب میزبانی گواهی EK را مشخص کند.

•
-o، --ek-certificate=FILE یا STDOUT:

فایل ذخیره‌سازی گواهی کلید تاییدیه (EK). هنگامی که گواهی‌های EK در اندیس‌های TPM NV یافت شوند، این گزینه را می‌توان چندین بار مشخص کرد تا گواهی‌های RSA و ECC کلید تاییدیه به ترتیب ذخیره شوند. اگر گواهی‌های EK بیشتری در اندیس‌های TPM NV یافت شوند و تنها یک فایل خروجی مشخص شده باشد، ابزار هشدار خواهد داد. اگر این گزینه مشخص نشود، تمامی گواهی‌های EK دریافت‌شده چه از میزبانی وب سازنده یا از اندیس‌های TPM NV، به خروجی استاندارد (stdout) ارسال می‌شوند.

•
-X، --allow-unverified:

تلاش برای اتصال به سرور تامین سازنده TPM را بدون اعتبارسنجی گواهی سرور مشخص می‌کند. این گزینه در صورت یافت شدن گواهی‌های EK روی اندیس‌های TPM NV بی‌تاثیر است.

هشدار: این گزینه فقط باید روی پلتفرم‌هایی با گواهی‌های قدیمی‌تر CA استفاده شود.

•
-u، --ek-public=FILE:

مسیر فایل برای بخش عمومی کلید تاییدیه را در قالب tss مشخص می‌کند.

•
-x، --offline:

این گزینه ابزار را برای کار در حالت آفلاین نشانه‌گذاری می‌کند. به این صورت که گواهی‌ها را می‌توان برای کلیدهای عمومی ارائه‌شده EK که متعلق به پلتفرم در حال اجرای ابزار نیستند دریافت کرد. در تامین کارخانه‌ای چندین پلتفرم که به صورت جداگانه به اینترنت متصل نیستند مفید است. در چنین سناریویی، یک سرور واحد تامین متصل به اینترنت می‌تواند از این ابزار در این حالت استفاده کند. این گزینه ابزار را وادار می‌کند تا به دنبال گواهی‌های EK روی اندیس‌های NV نگردد.

•
–raw:

ابزار را تنظیم می‌کند تا گواهی EK را همان‌گونه که از منبع دریافت شده (NV یا میزبانی وب) به صورت خام خروجی دهد.

•
-E، --encoding=ENCODING:

قالب کدگذاری مورد استفاده را به صراحت مشخص می‌کند. به طور معمول، روش پیش‌فرض روش مورد استفاده اینتل است مگر اینکه یک AMD fTPM شناسایی شود، که در این صورت از کدگذاری مخصوص AMD استفاده می‌شود. برای AMD از `a' و برای Intel از `i' استفاده کنید.

•
-t، --x509-trunc:

این گزینه ابزار را تنظیم می‌کند تا گواهی‌های خوانده‌شده از اندیس‌های TPM NV را با یک تجزیه‌کننده X509 تحلیل کرده و داده‌های اضافی پایانی را پیش از خروجی کوتاه و حذف کند. هنگام کار با TPMهایی که گواهی‌ها را به همراه داده‌های اضافی تا یک طول ثابت پد می‌کنند مفید است.

•
آرگومان (ARGUMENT): آرگومان خط فرمان آدرس URL درگاه گواهی EK را مشخص می‌کند. این کار ابزار را وادار می‌کند که به دنبال گواهی‌های EK در اندیس‌های NV نگردد.

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

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

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

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

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

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

این مجموعه از گزینه‌ها برای پیکربندی ماژول‌های مختلف 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 مترادف هستند.

هنگامی که گزینه پرگویی (verbose) مشخص شده باشد، اطلاعات اشکال‌زدایی اضافی curl با تنظیم حالت curl به verbose ارائه می‌شود؛ برای اطلاعات بیشتر به https://curl.haxx.se/libcurl/c/CURLOPT_VERBOSE.html مراجعه کنید.

tpm2_createek -G rsa -u ek.pub -c key.ctx
tpm2_getekcertificate -X -o ECcert.bin -u ek.pub \
https://tpm.manufacturer.com/ekcertserver/

tpm2_createek -G rsa -u ek.pub -c key.ctx
tpm2_getekcertificate -X -o ECcert.bin -u ek.pub

tpm2_getekcertificate -X -x -o ECcert.bin -u ek.pub

tpm2_getekcertificate -o ECcert.bin

tpm2_createek -G ecc384 -u ek_ecc384.pub -c ek_ecc384.ctx
tpm2_getekcertificate -o ek_ecc384.cert -u ek_ecc384.pub

tpm2_getekcertificate -o RSA_EK_cert.bin -o ECC_EK_cert.bin

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

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

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

نگاه کنید به فهرست پستی (Mailing List)

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

tpm2-tools