CLEVIS(1)   CLEVIS(1)

clevis - چارچوب خط فرمان برای سیاست‌های رمزگشایی خودکار

clevis COMMAND [OPTIONS]

کلویس (Clevis) چارچوبی برای سیاست‌های رمزگشایی خودکار است. این ابزار به شما امکان می‌دهد هنگام رمزنگاری، سیاستی را تعریف کنید که برای رمزگشایی داده‌ها باید برآورده شود. به محض اینکه این سیاست محقق شود، داده‌ها رمزگشایی می‌شوند.

کلویس ماژولار و قابل گسترش است. افزونه‌های ما «پین» (pin) نامیده می‌شوند. وظیفه یک پین این است که سیاستی را به عنوان نخستین آرگومان خود و متن ساده (plaintext) را از ورودی استاندارد دریافت کرده و داده‌ها را به گونه‌ای رمزنگاری کند که در صورت برآورده شدن سیاست، به‌طور خودکار رمزگشایی شوند. بیایید با هم یک مثال را مرور کنیم.

کلویس از سرور پیوند شبکهٔ Tang پشتیبانی می‌کند. تانگ (Tang) جایگزینی سبک و بدون وضعیت (stateless) برای سیستم‌های واسط امانی (escrow) فراهم می‌سازد. رمزنگاری داده‌ها با استفاده از پین Tang بسیار شبیه به پین HTTP کار می‌کند:

$ clevis encrypt tang '{"url":"http://tang.srv"}' < PT > JWE
The advertisement contains the following signing keys:
_OsIk0T-E2l6qjfdDiwVmidoZjA
Do you wish to trust these keys? [ynYN] y

همان‌طور که در بالا مشاهده می‌کنید، Tang از گردش کار «اعتماد در اولین استفاده» (trust-on-first-use) بهره می‌برد. از سوی دیگر، در صورتی که اعلان (advertisement) سرور را از قبل به اشتراک بگذارید، Tang می‌تواند رمزنگاری را به‌صورت کاملاً آفلاین انجام دهد. رمزگشایی نیز درست مانند مثال اول کار می‌کند:

$ clevis decrypt < JWE > PT

برای اطلاعات بیشتر، clevis-encrypt-tang(1) را ببینید.

کلویس از رمزنگاری یک کلید در تراشهٔ ماژول بستر معتمد ۲.۰ (TPM2) پشتیبانی می‌کند. کلید تصادفی و از نظر رمزنگاری قدرتمندی که برای رمزنگاری استفاده می‌شود، با استفاده از تراشهٔ TPM2 رمزنگاری شده و سپس در زمان رمزگشایی، توسط TPM2 رمزگشایی می‌شود تا به کلویس اجازه دهد راز ذخیره‌شده در JWE را رمزگشایی کند.

رمزنگاری داده‌ها با استفاده از پین tpm2 مشابه پین‌های ذکرشده در بالا عمل می‌کند:

$ clevis encrypt tpm2 '{}' < PT > JWE

این پین مقادیر پیش‌فرض معقولی برای پیکربندی خود دارد، اما اگر مقادیر پیش‌فرض استفاده‌شده مناسب نباشند، می‌توان سلسله‌مراتب (hierarchy)، الگوریتم‌های درهم‌سازی (hash) و الگوریتم‌های کلید متفاوتی را انتخاب کرد.

رمزگشایی نیز مشابه سایر پین‌ها کار می‌کند و تنها کافی است JWE ارائه شود:

$ clevis decrypt < JWE > PT

توجه داشته باشید که مانند سایر پین‌ها، هیچ پیکربندی خاصی برای رمزگشایی استفاده نمی‌شود؛ این به آن دلیل است که کلویس کلیدهای عمومی و خصوصی موردنیاز برای بازگشایی (unseal) شیء رمزنگاری‌شده توسط TPM2 را در JWE ذخیره می‌کند تا کلویس بتواند این اطلاعات را از آنجا واکشی کند.

برای اطلاعات بیشتر، clevis-encrypt-tpm2(1) را ببینید.

کلویس روشی برای ترکیب پین‌ها با یکدیگر جهت ایجاد سیاست‌های پیچیدهٔ قفل‌گشایی و دسترسی‌پذیری بالا فراهم می‌کند. این کار با استفاده از الگوریتمی به نام اشتراک راز شامیر (Shamir’s Secret Sharing یا SSS) محقق می‌شود.

طرح SSS یک طرح مبتنی بر آستانه است؛ به این صورت که یک کلید ایجاد کرده و آن را به تعدادی قطعه تقسیم می‌کند. هر قطعه با استفاده از یک پین دیگر رمزنگاری می‌شود (حتی ممکن است به‌صورت بازگشتی از خود SSS استفاده شود). علاوه بر این، شما آستانهٔ t را تعریف می‌کنید. اگر دست‌کم t قطعه قابل رمزگشایی باشند، کلید رمزنگاری بازیابی شده و عملیات رمزگشایی با موفقیت انجام خواهد شد.

برای نمونه، بیایید یک پیکربندی با دسترسی‌پذیری بالا با استفاده از Tang بسازیم:

$ cfg='{"t":1,"pins":{"tang":[{"url":...},{"url":...}]}}'
$ clevis encrypt sss "$cfg" < PT > JWE

در این سیاست، ما اعلام می‌کنیم که آستانه برابر با ۱ است، اما چندین قطعه کلید وجود دارند که با سرورهای مختلف Tang رمزنگاری شده‌اند. از آنجا که آستانهٔ ما ۱ است، تا زمانی که هر یک از سرورهای Tang در دسترس باشند، رمزگشایی با موفقیت انجام خواهد شد. مانند همیشه، رمزگشایی به‌سادگی عبارت است از:

$ clevis decrypt < JWE > PT

برای اطلاعات بیشتر، clevis-encrypt-tang(1) را ببینید.

از کلویس می‌توان برای پیوند دادن یک حجم LUKS موجود به سیاست خودکارسازی آن استفاده کرد. این کار با یک دستور ساده انجام می‌شود:

$ clevis luks bind -d /dev/sda tang '{"url":...}'

این دستور چهار مرحله را انجام می‌دهد:

1.کلید جدیدی با همان آنتروپی کلید اصلی (master key) در LUKS ایجاد می‌کند — حداکثر بیت‌های آنتروپی ۲۵۶ است.
2.کلید جدید را با کلویس رمزنگاری می‌کند.
3.محتوای JWE کلویس را در هدر LUKS ذخیره می‌نماید.
4.کلید جدید را برای استفاده با LUKS فعال می‌سازد.

این دیسک اکنون می‌تواند هم با گذرواژهٔ فعلی شما و هم با سیاست کلویس قفل‌گشایی شود. کلویس دو ابزار قفل‌گشایی برای حجم‌های LUKS ارائه می‌دهد: نخست، یکپارچگی با Dracut برای قفل‌گشایی خودکار حجم ریشه در مراحل اولیه بوت؛ دوم، یکپارچگی با UDisks2 برای قفل‌گشایی خودکار رسانه‌های جداشدنی در نشست میزکار شما.

برای اطلاعات بیشتر، clevis-luks-bind(1) را ببینید.

clevis-encrypt-tang(1), clevis-encrypt-tpm2(1), clevis-encrypt-sss(1), clevis-luks-bind(1), clevis-decrypt(1)

08/23/2026