tpm2_getrandom(1) General Commands Manual tpm2_getrandom(1)

tpm2_getrandom - دریافت بایت‌های تصادفی از TPM

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

tpm2_getrandom(1) - تعداد SIZE بایت بعدی را از مولد اعداد تصادفی بازمی‌گرداند. پارامتر SIZE به عنوان تنها آرگومان این ابزار در نظر گرفته می‌شود.

توجه داشته باشید که مشخصات TPM توصیه می‌کند که TPMها تعداد ورودی‌های قابل دسترس را به حداکثر اندازه خروجی الگوریتم درهم‌سازی (hash) بر حسب بایت محدود کنند.

اکثر TPMها این کار را انجام می‌دهند؛ بنابراین این ابزار بررسی می‌کند که اندازه ورودی محدود به ویژگی TPM2_PT_MAX_DIGEST باشد و اگر بیش از حد بزرگ باشد، خطا می‌دهد.

خروجی به‌طور پیش‌فرض به خروجی استاندارد (stdout) و در قالب باینری ارسال می‌شود، مگر اینکه با گزینه‌های -o و --hex به ترتیب تغییر یابد.

•
-o, --output=FILE

نام فایل را برای خروجی دادن بایت‌های خام مشخص می‌کند. پیش‌فرض خروجی استاندارد (stdout) به صورت یک رشته هگزادسیمال است.

•
--hex

تبدیل داده‌های خروجی به قالب هگزادسیمال بدون پیشوند “0x”.

•
-f, --force

نادیده گرفتن بررسی‌های زیر:

•
اندازه درخواستی در محدوده اندازه هش TPM باشد.
•
تعداد بایت‌های تصادفی بازیابی‌شده با مقدار درخواستی مطابقت داشته باشد.
•
-S, --session=FILE:

نشست ایجادشده با استفاده از tpm2_startauthsession. امکان تعیین چند مورد از این گزینه وجود دارد. به عنوان مثال، می‌توانید یک نشست برای حسابرسی (auditing) و نشستی دیگر برای رمزنگاری پارامترها داشته باشید.

•
--cphash=FILE:

مسیر فایل برای ثبت هش پارامترهای دستور. این مقدار معمولاً cpHash نامیده می‌شود. نکته: هنگامی که این گزینه انتخاب شود و گزینه rphash وجود نداشته باشد، ابزار دستور را واقعاً اجرا نمی‌کند و فقط یک cpHash بازمی‌گرداند.

•
--rphash=FILE:

مسیر فایل برای ثبت هش پارامترهای پاسخ. این مقدار معمولاً rpHash نامیده می‌شود.

•
ARGUMENT آرگومان خط فرمان، اندازه خروجی را مشخص می‌کند.

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

•
-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 یا “واسط انتقال (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 مترادف یکدیگر هستند.

tpm2_getrandom -o random.out 20

tpm2_getrandom 8 --hex

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

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

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

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

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

tpm2-tools