tpm2_clearcontrol(1) General Commands Manual tpm2_clearcontrol(1)

tpm2_clearcontrol - تنظیم یا بازنشانی صفت TPMA_PERMANENT.disableClear جهت مسدود یا آزاد کردن دستگیره مجازشماری lockout برای صدور دستور پاک‌سازی TPM

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

tpm2_clearcontrol(1) - به کاربری که مقدار مجازشماری سلسله‌مراتب lockout یا سلسله‌مراتب platform را دارد اجازه می‌دهد تا صفت disableClear را تنظیم کند، که مانع از توانایی مجازشماری lockout برای اجرای دستور tpm2_clear می‌شود. تنها کاربری که به مجازشماری سلسله‌مراتب platform دسترسی دارد می‌تواند disableClear را بازنشانی (پاک) کند. به‌طور پیش‌فرض، این دستور تلاش می‌کند بیت disableClear را پاک کند.

نکته: از دستگیره مجازشماری سلسله‌مراتب platform همواره می‌توان برای پاک‌سازی TPM با دستور tpm2_clear استفاده کرد.

•
-C, --hierarchy=OBJECT:

مشخص می‌کند که این ابزار باید روی کدام دستگیره مجازشماری (سلسله‌مراتب platform یا lockout) عمل کند. به‌طور پیش‌فرض، روی دستگیره سلسله‌مراتب platform عمل می‌کند. دستگیره را به‌صورت p|l|platform|lockout مشخص کنید.

نکته: کار روی سلسله‌مراتب platform نیازمند احراز هویت platform است.

•
-P, --auth=AUTH:

مقدار مجازشماری سلسله‌مراتب مشخص‌شده با -C. این ابزار تنها از گزینه‌های Password و HMAC پشتیبانی می‌کند.

•
--cphash=FILE

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

•
ARGUMENT ** مشخص کردن یک عدد صحیح 0|1 یا رشته c|s برای پاک کردن یا تنظیم صفت disableClear.

نوع یک شیء زمینه، خواه دستگیره باشد یا نام فایل، بر اساس منطق ترتیبی زیر تعیین می‌شود:

•
اگر آرگومان یک مسیر فایل باشد، فایل به عنوان یک شیء گذرای (transient) بازیابی‌شده TPM بارگذاری می‌شود.
•
اگر آرگومان تطابق پیشوندی با یکی از موارد زیر داشته باشد:
•
owner: سلسله‌مراتب مالک (owner)
•
platform: سلسله‌مراتب پلتفرم (platform)
•
endorsement: سلسله‌مراتب تاییدیه (endorsement)
•
lockout: شیء پایدار کنترل lockout
•
اگر آرگومان بتواند به صورت یک عدد بارگذاری شود، به عنوان یک دستگیره در نظر گرفته شده (مانند 0x81010013) و مستقیماً استفاده می‌شود.

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

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

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

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

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

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

foobar
str:foobar

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

hex:1122334455667788

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

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

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

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

session:session.ctx

برای استفاده از فایل زمینه نشست session.ctx و ارسال مقدار مجازشماری mypassword:

session:session.ctx+mypassword

برای استفاده از فایل زمینه نشست session.ctx و ارسال مقدار مجازشماری شانزده‌شانزدهی (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 روی بانک‌های 0، 1، 2 و 3 از این مشخص‌کننده استفاده کنید:

pcr:sha256:0,1,2,3

مشخص کردن AUTH.

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

•
-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_clearcontrol -C l s

tpm2_clearcontrol -C p c

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

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

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

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

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

tpm2-tools