| CLEVIS-ENCRYPT-TPM(1) | CLEVIS-ENCRYPT-TPM(1) |
نام (NAME)
clevis-encrypt-tpm2 - رمزنگاری با استفاده از شیوهنامهٔ پیوند به تراشهٔ TPM2.0
خلاصه دستور (SYNOPSIS)
clevis encrypt tpm2 CONFIG < PT > JWE
نمای کلی (OVERVIEW)
دستور clevis encrypt tpm2 با استفاده از یک تراشهٔ Trusted Platform Module 2.0 (TPM2) دادهها را رمزنگاری میکند. تنها آرگومان آن شیء پیکربندی JSON است.
هنگام استفاده از پین tpm2، یک کلید تصادفی جدید و از نظر رمزنگاری قدرتمند ایجاد میشود. این کلید با استفاده از تراشهٔ TPM2 رمزنگاری میشود. سپس در زمان رمزگشایی، کلید دوباره با استفاده از تراشهٔ TPM2 رمزگشایی میگردد.
$ clevis encrypt tpm2 '{}' < PT > JWE
این پین مقادیر پیشفرض معقولی برای پیکربندی خود دارد، اما در صورتی که مقادیر پیشفرض مناسب نباشند، میتوان سلسلهمراتب (hierarchy)، درهمسازی (hash) و الگوریتمهای کلید متفاوتی را انتخاب کرد:
$ clevis encrypt tpm2 '{"hash":"sha1","key":"rsa"}' < PT > JWE
برای رمزگشایی دادهها، کافی است متن رمزشده (JWE) را فراهم کنید:
$ clevis decrypt < JWE > PT
توجه داشته باشید که همانند سایر پینها، هیچ پیکربندی خاصی برای رمزگشایی استفاده نمیشود؛ چرا که clevis کلیدهای عمومی و خصوصی را جهت بازگشایی (unseal) شیء رمزنگاریشدهٔ TPM2 در JWE ذخیره میکند تا بتواند آن اطلاعات را از همانجا واکشی کند.
این پین همچنین از پلمب کردن (sealing) دادهها به وضعیت ثباتهای پیکربندی پلتفرم (PCR) پشتیبانی میکند. به این ترتیب، دادهها تنها در صورتی بازگشایی (unseal) میشوند که مقادیر هشهای PCR با شیوهنامهٔ استفادهشده در هنگام پلمب مطابقت داشته باشند.
برای مثال، جهت پلمب کردن دادهها به PCR با شناسههای 0 و 1 برای بانک sha1:
$ clevis encrypt tpm2 '{"pcr_bank":"sha1","pcr_ids":"0,1"}' < PT > JWE
مقادیر چکیدهٔ PCR از مقادیر هش فعلی ثباتهای PCR استعلام میشوند؛ با این حال، اگر لازم باشد دادهها با مقادیری متفاوت از مقادیر فعلی پلمب شوند، میتوان با فرستادن هش باینری کدگذاریشده در base64 نیز یک چکیده (digest) تعیین کرد:
$ clevis encrypt tpm2 '{"pcr_ids":"0","pcr_digest":"xy7J5svCtqlfM03d1lE5gdoA8MI"}' < PT > JWE
مدل تهدید (THREAT MODEL)
مدل امنیتی Clevis بر این واقعیت استوار است که مهاجم نمیتواند همزمان به دادههای رمزنگاریشده و کلید رمزگشایی دسترسی پیدا کند.
در بیشتر پینهای Clevis، کلید رمزگشایی به صورت محلی ذخیره نمیشود، بنابراین شیوهنامهٔ رمزگشایی تنها در صورتی برآورده میگردد که بتوان به کلید رمزگشایی از راه دور دسترسی داشت. برای نمونه، این کلید میتواند در یک سرور راه دور یا در یک دستگاه احراز هویت سختافزاری که باید به سیستم متصل شود، ذخیره گردد.
پین tpm2 از این نظر متفاوت است، زیرا کلید توسط یک تراشهٔ TPM2 که همواره در سیستم حضور دارد محافظت (wrap) میشود. این موضوع بدین معنا نیست که هیچ مورد کاربردی برای این پین وجود ندارد، اما درک این واقعیت مهم است که مهاجمی با دسترسی همزمان به دادههای رمزنگاریشده و تراشهٔ TPM2 محلی، قادر به رمزگشایی دادهها خواهد بود.
پیکربندی (CONFIG)
این دستور از ویژگیهای پیکربندی زیر استفاده میکند:
باید یکی از موارد زیر باشد:
باید یکی از موارد زیر باشد:
نمونههایی از بانکهای الگوریتم PCR (پشتیبانی بستگی به تراشهٔ TPM دارد):
برای مشاهدهٔ فهرست کامل الگوریتمهای پشتیبانیشده توسط تراشهٔ TPM، خروجی دستور `tpm2_getcap pcrs` را بررسی کرده و از الگوریتمی استفاده کنید که فهرستی غیرخالی از شمارههای PCR را نمایش میدهد.
همچنین ببینید (SEE ALSO)
| 08/23/2026 |