| tpm2_nvundefine(1) | General Commands Manual | tpm2_nvundefine(1) |
نام (NAME)
tpm2_nvundefine - حذف یک شاخص حافظه غیرفرار (NV)
خلاصه دستور (SYNOPSIS)
tpm2_nvundefine [OPTIONS] [ARGUMENT]
توضیحات (DESCRIPTION)
دستور tpm2_nvundefine(1) یک شاخص حافظه غیرفرار (NV) را که پیشتر با tpm2_nvdefine(1) تعریف شده بود حذف میکند. شاخص به عنوان یک آرگومان مشخص میشود. میتوان آن را به صورت یک دستگیره خام یا یک مقدار آفست نسبت به محدوده دستگیره nv یعنی “TPM2_HR_NV_INDEX” مشخص کرد.
این ابزار همچنین قادر به حذف شاخصهای NV دارای ویژگی TPMA_NV_POLICY_DELETE است، و در صورت عدم تعیین -C، این ابزار از این ویژگی برای انتخاب سلسلهمراتب پیشفرض استفاده میکند. مقدار پیشفرض برای -C در صورتی که TPMA_NV_POLICY_DELETE پاک باشد، سلسلهمراتب «owner» (مالک) و در صورتی که TPMA_NV_POLICY_DELETE تنظیم شده باشد، سلسلهمراتب «platform» (پلتفرم) است.
گزینهها (OPTIONS)
- •
- -C, --hierarchy=OBJECT:
سلسلهمراتب مورد استفاده برای احراز هویت و تایید مجوز را مشخص میکند. گزینههای پشتیبانیشده عبارتند از:
- •
- o برای TPM_RH_OWNER
- •
- p برای TPM_RH_PLATFORM
- •
- <num> در جایی که ممکن است یک دستگیره سلسلهمراتب مشخص شود.
- •
- -P, --auth=AUTH:
مقدار مجوز را برای سلسلهمراتب مشخص میکند.
- •
- -S, --session=POLICY_SESSION:
مشخص کردن یک نشست خطمشی (policy session) جهت استفاده هنگامی که شاخص NV دارای ویژگی TPMA_NV_POLICY_DELETE تنظیمشده باشد. این گزینه همچنین میتواند برای تعیین یک نشست کمکی جهت ممیزی و/یا رمزنگاری/رمزگشایی پارامترها به کار رود. نکته:
- 1.
- اگر TPM2_CC_NV_UndefineSpaceSpecial فراخوانی شود، آنگاه تنها یک نشست کمکی اضافی میتواند مشخص گردد. ترتیب تعیین نشستها نیز اهمیت دارد. اولین نشست ارائهشده با -S به عنوان نشستی برای برآورده کردن نقش ADMIN مورد نیاز برای TPM2_CC_NV_UndefineSpaceSpecial تفسیر میشود. اگر برای شیء NV از یک گذرواژه استفاده شده باشد، گذرواژه باید به مسیر نشست اضافه شود: “path+passwdord”.
- 2.
- اگر TPM2_CC_NV_Undefine فراخوانی شود، آنگاه تنها دو نشست کمکی اضافی میتوانند مشخص گردند.
- •
- --cphash=FILE
مسیر فایل برای ثبت هش پارامترهای دستور. این مقدار معمولاً به عنوان cpHash شناخته میشود. نکته: هنگامی که این گزینه انتخاب شود، ابزار در عمل دستور را اجرا نمیکند و صرفاً یک cpHash برمیگرداند، مگر اینکه rphash نیز درخواست شده باشد.
- •
- --rphash=FILE
مسیر فایل برای ثبت هش پارامترهای پاسخ. این مقدار معمولاً به عنوان rpHash شناخته میشود.
- •
- --with-policydelete=NONE
این گزینه باید هنگام محاسبه cpHash با --tcti=none مشخص شود. این یک الزام است زیرا هیچ راهی وجود ندارد که تنها از روی نام شاخص NV تشخیص داده شود که آیا ویژگی TPMA_NV_POLICYDELETE تنظیم شده است یا خیر.
- •
- -n, --name=FILE:
نام شاخص NV که باید هنگام محاسبه صرف cpHash بدون ارسال واقعی دستور به TPM ارائه شود.
- •
- ARGUMENT آرگومان خط فرمان که شاخص NV یا شماره آفست را مشخص میکند.
مراجع (REFERENCES)
قالب شیء زمینه (CONTEXT OBJECT FORMAT)
نوع یک شیء زمینه، چه دستگیره (handle) باشد یا نام فایل، طبق منطق زیر بهترتیب تعیین میشود:
- •
- اگر آرگومان یک مسیر فایل باشد، آنگاه فایل به عنوان یک شیء گذرای بازگردانیشده TPM بارگذاری میشود.
- •
- اگر آرگومان با پیشوند یکی از موارد زیر مطابقت داشته باشد:
- •
- owner: سلسلهمراتب مالک (owner hierarchy)
- •
- platform: سلسلهمراتب پلتفرم (platform hierarchy)
- •
- endorsement: سلسلهمراتب تایید (endorsement hierarchy)
- •
- lockout: شیء پایدار کنترل قفل (lockout control persistent object)
- •
- اگر آرگومان بتواند به عنوان یک عدد بارگذاری شود، به عنوان یک دستگیره تلقی خواهد شد (برای نمونه 0x81010013) و مستقیماً استفاده میشود.
قالببندی احراز هویت (AUTHORIZATION FORMATTING)
مجوز استفاده از یک شیء در TPM2.0 میتواند به ۳ شکل مختلف ارائه شود: ۱. گذرواژه (Password) ۲. HMAC ۳. نشستها (Sessions)
نکته: “در صورت مشخص نشدن، مجوزها بهطور پیشفرض بر روی گذرواژه خالی (EMPTY PASSWORD) قرار میگیرند”.
برای احراز هویت با مقادیر auth، دستورات ابزار به طور ضمنی یک نشست HMAC ایجاد میکنند. بنابراین گذرواژهها به صورت رمزگذارینشده ارسال نمیشوند. این امر در مورد گذرواژههای تعریفشده برای اشیاء صدق نمیکند. در این حالت، باید از یک نشست HMAC استفاده شود (رجوع کنید به tpm2_startauthsession(1)).
گذرواژهها (PASSWORDS)
گذرواژهها در اشکال زیر با استفاده از شناسههای پیشوندی تفسیر میشوند.
نکته: بهطور پیشفرض، گذرواژهها در صورتی که پیشوند نداشته باشند، در قالب رشته در نظر گرفته میشوند.
رشته (STRING)
یک گذرواژه رشتهای که با پیشوند “str:” یا عدم وجود آن (رشته خام بدون پیشوند) مشخص میشود، تفسیر نشده و مستقیماً برای احراز هویت به کار میرود.
مثالها (EXAMPLES)
-
foobar str:foobar
رشته هگز (HEX-STRING)
یک گذرواژه رشته هگزادسیمال که با پیشوند “hex:” مشخص میشود، از فرمت هگزادسیمال به فرمت آرایه بایتی تبدیل میشود؛ بنابراین امکان استفاده از گذرواژههایی با کاراکترهای غیرقابلچاپ یا ناسازگار با ترمینال را فراهم میکند.
مثال (EXAMPLE)
-
hex:1122334455667788
فایل (FILE)
گذرواژه مبتنی بر فایل که با پیشوند “file:” مشخص میشود، باید مسیر فایلی حاوی گذرواژه باشد که توسط ابزار خوانده شود یا مقدار “-” برای استفاده از ورودی استاندارد (stdin). ذخیره گذرواژهها در فایل از نشت اطلاعات جلوگیری میکند؛ گذرواژههایی که به عنوان گزینه خط فرمان ارسال میشوند ممکن است از فهرست پردازشها یا تاریخچه پوسته خوانده شوند.
مثالها (EXAMPLES)
-
# برای استفاده از stdin و درخواست ورود از کاربر: file:- # برای استفاده از فایل از طریق مسیر: file:path/to/password/file # برای ارسال گذرواژه از طریق stdin با echo: echo foobar | tpm2_tool -p file:- # برای استفاده از bash here-string از طریق stdin: tpm2_tool -p file:- <<< foobar
نشستها (SESSIONS)
هنگام استفاده از یک نشست خطمشی (policy session) برای تایید مجوز استفاده از یک شیء، آرگومان گزینه را با کلمه کلیدی session پیشوندگذاری کنید. سپس مسیر فایل نشستی را مشخص کنید که با دستور tpm2_startauthsession(1) ایجاد شده است. در صورت تمایل، اگر نشست نیاز دارد که مقدار auth به همراه هندل نشست ارسال شود (مانند گذرواژه policy)، یک کاراکتر + و یک رشته را مطابق آنچه در بخش گذرواژهها (PASSWORDS) توضیح داده شد، الحاق کنید.
مثالها (EXAMPLES)
برای استفاده از یک فایل زمینه نشست به نام 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 AUTHORIZATIONS)
میتوانید با استفاده از پیشوند “pcr:” و ریززبان PCR، یک خطمشی PCR را برآورده کنید. ریززبان PCR به صورت زیر است: <pcr-spec>=<raw-pcr-file>
مشخصات PCR در بخش “مشخصکنندههای بانک PCR” مستند شده است.
شناسه raw-pcr-file یک آرگومان اختیاری است که شامل خروجی محتویات خام PCR مطابق با بازگشتی از tpm2_pcrread(1) میباشد.
مشخصکنندههای بانک PCR
مثالها (EXAMPLES)
برای برآورده کردن خطمشی PCR الگوریتم sha256 روی بانکهای ۰، ۱، ۲ و ۳ از مشخصکننده زیر استفاده کنید:
-
pcr:sha256:0,1,2,3
تعیین AUTH.
گزینههای مشترک (COMMON OPTIONS)
این مجموعه گزینهها میان بسیاری از برنامهها مشترک هستند و اطلاعاتی را فراهم میکنند که اغلب کاربران انتظار دارند.
- •
- -h, --help=[man|no-man]: نمایش صفحه راهنمای ابزار. بهطور پیشفرض، تلاش میکند نمایشدهنده راهنما (manpager) را برای ابزار فراخوانی کند؛ با این حال، در صورت عدم موفقیت، خلاصه کوتاهی از ابزار را نمایش میدهد. این رفتار مشابه زمانی است که آرگومان گزینه “man” مشخص شده باشد؛ اما اگر صراحتاً “man” درخواست شود، ابزار خطاهای man را در stderr ارائه میدهد. اگر گزینه “no-man” مشخص شود، یا نمایشدهنده man ناموفق باشد، گزینههای کوتاه در stdout چاپ خواهند شد.
استفاده موفقیتآمیز از ویژگی صفحات راهنما مستلزم این است که صفحات راهنما نصب شده باشند یا در مسیر 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 ارسال میشود. این گزینه میتواند برای جلوگیری از بروز مشکلات در هنگام استفاده از نشستهای بدون نمک (unsalted) در حالت FIPS اوپناساسال استفاده شود. اگر از مقادیر auth استفاده میشود، باید از یک نشست با نمک (salted) برای احراز هویت استفاده گردد.
- •
- -R, --autoflush: فعالسازی پاکسازی خودکار (autoflush) برای اشیاء گذرای ایجادشده توسط دستور. اگر یک شیء والد از فایل زمینه بارگذاری شود، شیء والد گذرا نیز پاکسازی خواهد شد. قابلیت پاکسازی خودکار همچنین در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH روی yes یا true تنظیم شده باشد فعال میشود.
پیکربندی 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 دستگاه، فایل دستگاه کاراکتری 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'.
تعیین نام 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 مترادف هستند.
مثالها (EXAMPLES)
تعریف یک شاخص NV معمولی و حذف آن
-
tpm2_nvdefine 1 tpm2_nvundefine 1
تعریف یک شاخص NV معمولی با ویژگی TPMA_NV_POLICY_DELETE و حذف آن
-
tpm2_startauthsession -S s.ctx tpm2_policyauthvalue -S s.ctx tpm2_policycommandcode -S s.ctx -L policy.dat TPM2_CC_NV_UndefineSpaceSpecial tpm2_nvdefine -C p -s 32 \ -a "ppread|ppwrite|authread|authwrite|platformcreate|policydelete|write_stclear|read_stclear" \ -L policy.dat 1 tpm2_flushcontext s.ctx tpm2_startauthsession --policy-session -S s.ctx tpm2_policyauthvalue -S s.ctx tpm2_policycommandcode -S s.ctx TPM2_CC_NV_UndefineSpaceSpecial tpm2_nvundefine -S s.ctx 1
اگر برای شیء nv از یک گذرواژه استفاده شده باشد، دستور nv undefine باید به صورت زیر اجرا شود:
-
tpm2_nvundefine -S s.ctx+mypassword 1
کدهای بازگشتی (RETURNS)
ابزارها میتوانند هر یک از کدهای زیر را برگردانند:
- •
- 0 - موفقیتآمیز.
- •
- 1 - خطای کلی نامشخص.
- •
- 2 - خطای مدیریت گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مربوط به TCTI.
- •
- 5 - طرحواره پشتیبانینشده (Non supported scheme). قابل اعمال روی tpm2_testparams.
اشکالات (BUGS)
راهنما (HELP)
مشاهده فهرست پستی (Mailing List)
مجوز (LICENSE)
این اثر تحت مجوز بینالمللی کریتیو کامنز ارجاع ۴.۰ (CC BY 4.0)منتشر شده است.
| tpm2-tools |