tpm2_changepps(1) General Commands Manual tpm2_changepps(1)

tpm2_changepps - تغییر بذر پلتفرم TPM2 (PPS)

tpm2_changepps [گزینه‌ها]

دستور tpm2_changepps(1) بذر اصلی پلتفرم فعال را با مقدار جدید تولیدشده توسط مولد اعداد تصادفی (RNG) سخت‌افزار TPM2 جایگزین می‌کند. اشیاء گذرا (Transient) و پایدار (Persistent) تحت سلسله‌مراتب پلتفرم (platform hierarchy) از بین خواهند رفت، در حالی که اشیاء حافظه پایدار (NV) حفظ می‌شوند.

•
-p, --auth مجوز (AUTH) را برای سلسله‌مراتب پلتفرم مشخص می‌کند.
•
--cphash=FILE

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

•
--rphash=FILE

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

•
-S, --session=FILE:

نشست ایجادشده با استفاده از tpm2_startauthsession. از این گزینه می‌توان برای تعیین یک نشست کمکی جهت حسابرسی و یا رمزنگاری/رمزگشایی پارامترها استفاده کرد.

مجوز استفاده از یک شیء در TPM2.0 می‌تواند به ۳ شکل مختلف ارائه شود: 1. گذرواژه (Password) 2. HMAC 3. نشست‌ها (Sessions)

نکته: “در صورت مشخص نشدن، مجوزها به‌طور پیش‌فرض به گذرواژه خالی تنظیم می‌شوند”.

برای احراز هویت با مقادیر auth، دستورات ابزار به‌طور ضمنی یک نشست HMAC ایجاد می‌کنند. بنابراین گذرواژه‌ها به صورت رمزنگاری‌نشده منتقل نمی‌شوند. این امر در مورد گذرواژه‌های تعریف‌شده برای اشیاء صدق نمی‌کند. در این حالت، باید از یک نشست HMAC استفاده شود (به tpm2_startauthsession(1) مراجعه کنید).

گذرواژه‌ها با استفاده از شناسه‌های پیشوندی به اشکال زیر تفسیر می‌شوند.

نکته: به‌طور پیش‌فرض، در صورتی که گذرواژه‌ها پیشوند نداشته باشند، در قالب رشته در نظر گرفته می‌شوند.

یک گذرواژه رشته‌ای که با پیشوند “str:” یا بدون آن (رشته خام بدون پیشوند) مشخص شده باشد، تفسیر نمی‌شود و مستقیماً برای احراز هویت به کار می‌رود.

foobar
str:foobar

یک گذرواژه رشته هگزادسیمال که با پیشوند “hex:” مشخص شده باشد، از قالب هگزادسیمال به قالب آرایه بایتی تبدیل می‌شود؛ بنابراین امکان استفاده از گذرواژه‌های دارای نویسه‌های غیرقابل چاپ و/یا نامناسب در ترمینال را فراهم می‌کند.

hex:1122334455667788

یک گذرواژه مبتنی بر فایل که با پیشوند “file:” مشخص شده باشد، باید مسیر فایلی حاوی گذرواژه باشد تا توسط ابزار خوانده شود، یا “-” برای استفاده از ورودی استاندارد (stdin). ذخیره گذرواژه‌ها در فایل از نشت اطلاعات جلوگیری می‌کند؛ گذرواژه‌هایی که به عنوان گزینه ارسال می‌شوند ممکن است از طریق فهرست فرآیندها یا قابلیت‌های متداول تاریخچه پوسته خوانده شوند.

# برای استفاده از stdin و درخواست ورود:
file:-
# برای استفاده از یک فایل از مسیر:
file:path/to/password/file
# برای ارسال گذرواژه از طریق stdin با لوله‌کشی (echo):
echo foobar | tpm2_tool -p file:-
# برای استفاده از here-string در bash از طریق stdin:
tpm2_tool -p file:- <<< foobar

هنگام استفاده از یک نشست خط‌مشی (policy session) جهت مجاز کردن استفاده از یک شیء، آرگومان گزینه را با کلمه کلیدی session شروع کنید. سپس مسیر فایل نشستی را که با tpm2_startauthsession(1) ایجاد شده مشخص نمایید. در صورت تمایل، اگر نشست نیازمند ارسال یک مقدار auth همراه با دسته نشست باشد (مانند گذرواژه سیاست)، یک + و یک رشته را مطابق آنچه در بخش گذرواژه‌ها (PASSWORDS) شرح داده شد اضافه کنید.

برای استفاده از یک فایل زمینه نشست با نام session.ctx:

session:session.ctx

برای استفاده از یک فایل زمینه نشست به نام session.ctx و ارسال مقدار auth با گذرواژه mypassword:

session:session.ctx+mypassword

برای استفاده از یک فایل زمینه نشست به نام session.ctx و ارسال مقدار auth هگزادسیمال (HEX) برابر با 0x11223344:

session:session.ctx+hex:11223344

می‌توانید یک سیاست PCR را با استفاده از پیشوند “pcr:” و زبان کوچک PCR برآورده سازید. زبان کوچک PCR به صورت زیر است: <pcr-spec>=<raw-pcr-file>

مشخصات PCR در بخش “مشخص‌کننده‌های بانک PCR” مستند شده است.

فایل raw-pcr-file یک آرگومان اختیاری است که حاوی خروجی محتویات خام PCR است همان‌طور که توسط tpm2_pcrread(1) بازگردانده می‌شود.

مشخص‌کننده‌های بانک PCR

برای برآورده کردن یک سیاست PCR مربوط به sha256 روی بانک‌های ۰، ۱، ۲ و ۳ از یک مشخص‌کننده به صورت زیر استفاده کنید:

pcr:sha256:0,1,2,3

تعیین AUTH.

رابط 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 از نوع 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، قالب رشته پیکربندی یک سری از جفت‌های کلید-مقدار ساده است که با نویسه `,' از هم جدا شده‌اند. رشته‌های هر کلید و مقدار با نویسه `=' از یکدیگر تفکیک می‌شوند.
•
رابط abrmd TCTI از دو کلید پشتیبانی می‌کند:
1.
`bus_name' : نام سرویس tabrmd روی گذرگاه (یک رشته).
2.
`bus_type' : نوع نمونه dbus (یک رشته) محدود به `session' و `system'.

تعیین نام tabrmd برای tcti و رشته پیکربندی 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_changepps

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

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

این دستور انتظار دارد که یک نشست از پیش با استفاده از tpm2_startauthsession(1) برقرار شده باشد و نیازمند یکی از موارد زیر است:

•
دسترسی مستقیم به دستگاه
•
پشتیبانی از نشست توسعه‌یافته با tpm2-abrmd.

بدون آن، اکثر مدیران منابع وضعیت نشست را بین فراخوانی‌های دستور ذخیره نخواهند کرد.

مسائل گیت‌هاب (Github Issues)

مشاهده فهرست پستی (Mailing List)

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

tpm2-tools