CAFF(1) User Contributed Perl Documentation CAFF(1)

caff - ابزار خودکار امضای کلید و ارسال با ایمیل (CA - Fire and Forget)

برنامهٔ CA Fire and Forget اسکریپتی است که در فرایند امضای کلید (keysigning) به شما کمک می‌کند. این برنامه فهرستی از شناسه‌های کلید (keyid) را از خط فرمان دریافت کرده، آن‌ها را از یک کارساز کلید (keyserver) واکشی می‌کند و ابزار GnuPG را فراخوانی می‌کند تا بتوانید آن‌ها را امضا کنید. سپس هر کلید را به تمامی نشانی‌های ایمیل موجود در آن ارسال می‌کند - در حالی که در هر ایمیل تنها یک UID که به آن ارسال می‌شود قرار دارد و سایر امضاها، به‌جز خودامضاها (self-sigs) و امضاهای انجام‌شده توسط شما، پیراسته (حذف) شده‌اند. کلید ارسال‌شده با خودش رمزگذاری می‌شود تا راهکاری برای تأیید تعلق داشتن کلید به گیرنده باشد.

فهرست کلیدهای مورد نظر برای امضا را می‌توان از طریق ورودی استاندارد caff نیز در قالب محتوای دارای فرمت gpgparticipants(1) ارائه داد. تنها کلیدهایی برای امضا در نظر گرفته می‌شوند که هر دو گزینهٔ «Fingerprint OK» و «ID OK» برای آن‌ها علامت خورده باشند (یعنی با «x» مشخص شده باشند). علاوه بر این، سرآیند ورودی باید دست‌کم شامل یک خط کد بررسی صحت (checksum) باشد و تمام کادرهای checksum نیز باید به عنوان تأییدشده علامت‌گذاری شده باشند (با «x»)..SH "گزینه‌ها (OPTIONS)"

برون‌ریزی امضاهای قدیمی. حالت پیش‌فرض، پرسش از کاربر برای هر امضای قدیمی است.
عدم برون‌ریزی امضاهای قدیمی. حالت پیش‌فرض، پرسش از کاربر برای هر امضای قدیمی است.
ارسال یا عدم ارسال رایانامه پس از امضا کردن. حالت پیش‌فرض، پرسش برای هر uid، با مقدار پیش‌فرض yes است.
عدم دریافت کلیدِ مورد نظر برای امضا از یک keyserver.
عدم امضای کلیدها.
انتخاب کلیدی که برای امضا کردن استفاده می‌شود، در صورتی که بیش از یک کلید داشته باشید. برای امضا کردن هم‌زمان با چندین کلید، keyidهای متعدد را با ویرگول از هم جدا کنید. این گزینه مستلزم آن است که کلید(ها) از طریق متغیر keyid در فایل پیکربندی تعریف شده باشند.
درون‌ریزی کلیدها از فایل. می‌تواند بیش از یک بار مشخص شود.
تلاش برای درون‌ریزی کلیدها از دسته‌کلیدهای (keyrings) استاندارد GnuPG شما.
فعال‌سازی پیام‌های اشکال‌زدایی (debug).

دایرکتوری خانگی پیش‌فرض.
فایل اجرایی gpg. پیش‌فرض: "gpg".
دایرکتوری کاری پیش‌فرض برای gpg. پیش‌فرض: "$HOME/.gnupg".

$HOME/.caffrc - فایل پیکربندی
$HOME/.caff/keys/yyyy-mm-dd/ - کلیدهای پردازش‌شده
$HOME/.caff/gnupghome/ - دایرکتوری کاری caff برای gpg
$HOME/.caff/gnupghome/gpg.conf - پیکربندی gpg (بخش NOTES را در زیر ببینید)
گزینه‌های کاربردی شامل use-agent، keyserver، keyserver-options، default-cert-level و غیره هستند.

فایل پیکربندی یک اسکریپت perl است که مقادیر را در جدول هش %CONFIG تنظیم می‌کند. این فایل در صورتی که وجود نداشته باشد، ایجاد می‌شود.

مثال:

$CONFIG{'owner'} = q{Peter Palfrader};
$CONFIG{'email'} = q{peter@palfrader.org};
$CONFIG{'keyid'} = [ qw{DE7AAF6E94C09C7F 62AF4031C82E0039} ];

نام شما. الزامی.
نشانی رایانامه شما، مورد استفاده در خطوط :From. الزامی.
فهرستی از کلیدهای شما. از این فهرست برای تعیین این‌که کدام امضاها در مرحله هرس (pruning) نگه‌داشته شوند استفاده می‌شود. اگر با استفاده از -u کلیدی را انتخاب کنید، باید در این فهرست باشد. الزامی..SS "تنظیمات عمومی (General settings)"
دایرکتوری پایه برای فایل‌هایی که caff ذخیره می‌کند. پیش‌فرض: $HOME/.caff/.
نحوه رنگ‌آمیزی پیام‌های خروجی. برای فهرست رنگ‌های پشتیبانی‌شده به مستندات "Term::ANSIColor" مراجعه کنید؛ خروجی رنگی را می‌توان با تنظیم این گزینه روی یک هش خالی {} غیرفعال کرد. پیش‌فرض:
{ error => 'bold bright_red'
, warn => 'bright_red'
, notice => 'bold'
, info => ''
, success => 'green' # used in combination with 'notice' and 'info'
, fail => 'yellow'   # used in combination with 'notice' and 'info'
}

مسیر فایل اجرایی GnuPG. پیش‌فرض: مقدار متغیر محیطی GNUPGBIN در صورت تنظیم، در غیر این صورت "gpg".
مسیر جاکلیدی مخفی (secret keyring) شما (GnuPG < 2.1)، یا مسیر GnuPGHOME کارگزاری که داده‌های کلید مخفی را مدیریت می‌کند (GnuPG >= 2.1). پیش‌فرض: $HOME/.gnupg/secring.gpg. اگر در نسخه GnuPG >= 2.1 این مقدار یک دایرکتوری نباشد، دایرکتوری والد (یعنی به‌طور پیش‌فرض $HOME/.gnupg) در نظر گرفته می‌شود.
شناسه‌های کلید (keyid) اضافی برای رمزگذاری پیام‌ها با آن‌ها. پیش‌فرض: none.
پیشوند دستور "sign" که برای ایجاد امضا از پوسته gpg استفاده می‌شود. می‌تواند به ترکیبی از "l" (محلی / local)، "nr" (غیرقابل‌ابطال / non-revocable) یا "t" (مورد اعتماد / trust) برای ایجاد امضایی از نوع مشخص‌شده تنظیم شود. برای جزئیات به gpg(1) مراجعه کنید. پیش‌فرض: "" (یعنی ایجاد یک امضای معمولی و قابل‌صدور).
دستورهای اضافی برای ارسال به gpg پس از دستور "sign". پیش‌فرض: none.

اگر درست (true) باشد، از مرحله دریافت کلیدها از کارگزار کلید (keyserver) صرف‌نظر می‌شود. پیش‌فرض: 0.
فهرستی از فایل‌های حاوی کلیدها برای وارد کردن (import).

اگر درست (true) باشد، از مرحله امضا صرف‌نظر می‌شود. پیش‌فرض: 0.
اگر درست (true) باشد، پیش از ادامه به مرحله امضا مکث می‌کند. این ویژگی برای امضای آفلاین مفید است. پیش‌فرض: 0.
شناسه‌های کاربری (UIDs) که آخرین امضای شما روی آن‌ها قدیمی‌تر از این مدت‌زمان باشد، به‌طور پیش‌فرض صادر نشوند. پیش‌فرض: 24*60*60 (یعنی یک روز).
در صورتی که بیش از یک کلید دارید، کلیدی را که برای امضا کردن استفاده می‌شود انتخاب کنید. در صورت وجود چندین keyid، به‌نوبت با هر کلید امضا خواهد شد.
مشخص می‌کند که آیا علاوه بر امضاهای caff در GnuPGHOME اختصاصی خودش، UIDها در GnuPGHOME کاربر نیز به‌صورت محلی امضا شوند یا خیر. چنین امضاهایی غیرقابل‌صدور (non-exportable) هستند. این ویژگی زمانی مفید است که گیرنده فراموش کند امضاهای ارسالی caff را بارگذاری کند (یا در صورتی که آن‌ها نیز غیرقابل‌صدور باشند)، زیرا راهی برای پیگیری UIDهای تأییدشده فراهم می‌آورد. با این حال، توجه داشته باشید که با بارگذاری امضا توسط گیرنده و به‌روزرسانی دسته‌کلید توسط امضاکننده، امضاهای محلی حذف نخواهند شد.

اگر مقدار no نباشد و gpg-sign-type شامل "l" باشد، هر امضای (محلی) صرفاً از GnuPGHOME خود caff به GnuPGHOME کاربر صادر می‌شود. در غیر این صورت، اگر مقدار auto باشد، هر UID که در GnuPGHOME اختصاصی caff امضا شده است، به‌طور خودکار در GnuPGHOME کاربر نیز با همان سطح گواهی (certification level) به‌صورت محلی امضا می‌شود؛ این کار نیازمند یک gpg-agent(1) فعال است. اگر ask باشد، از کاربر پرسیده می‌شود که کدام UIDها به‌صورت محلی امضا شوند. پیش‌فرض: no.

اگر درست (true) باشد، gpg پیش از امضای یک کلید، عکس‌های پیوست‌شده به آن را (در صورت وجود) نمایش می‌دهد. (برنامه مشاهده عکس را می‌توان با گزینه "photo-viewer" در GnuPGHOME برنامه caff مشخص کرد.) پیش‌فرض: 0..SS "تنظیمات ایمیل (Mail settings)"
مشخص می‌کند که آیا ایمیل‌ها ارسال شوند یا خیر. این یک گزینه چهارحالته است که با آن می‌توانید رفتار برنامه را تعیین کنید: yes همیشه ارسال می‌کند، no هرگز ارسال نمی‌کند؛ ask-yes و ask-no برای هر uid سؤال می‌پرسند، همراه با پیش‌فرض‌های مربوطه برای پرسش. پیش‌فرض: ask-yes.

در هر صورت، پیام‌ها در $CONFIG{'caffhome'}/keys/ نیز نوشته می‌شوند.

مقدار این گزینه به جای mail برای کلیدهای گیرنده‌ای که قابلیت رمزنگاری ندارند لحاظ می‌شود. پیش‌فرض آن مقدار mail است.
مقدار فیلد سرآیند «Subject:» را تنظیم می‌کند. %k به شناسه کلید طولانی کلید امضاشده بسط می‌یابد. پیش‌فرض: "Your signed PGP key 0x%k".
قالب ایمیلی که در صورت تعیین شدن، به جای متن پیش‌فرض به عنوان متن بدنه ایمیل ارسالی استفاده می‌شود. متغیرهای perl زیر می‌توانند در قالب استفاده شوند:
{owner} [string]
نام شما همان‌گونه که در تنظیمات owner مشخص شده است.
{key} [string]
شناسه کلید (keyid) کلیدی که امضا کرده‌اید.
{@uids} [array]
شناسه‌های کاربری (UIDs) که امضاهای آن‌ها در ایمیل گنجانده شده است.

توجه داشته باشید که اگر قصد ارسال امضاهای غیرقابل صدور (یعنی اگر gpg-sign-type شامل «l» باشد) را دارید، احتمالاً باید قالب را سفارشی‌سازی کنید؛ زیرا بارگذاری چنین امضاهایی بی‌معنی است و به گزینه درون‌ریزی «import-local-sigs» نیاز دارند که به صورت پیش‌فرض تنظیم نشده است.

افزودن یک سرآیند Reply-To: به پیام‌های ارسالی. پیش‌فرض: هیچ (none).
نشانی برای ارسال رونوشت پنهان (BCC) در هنگام ارسال ایمیل. پیش‌فرض: هیچ (none).
پارامترهایی برای ارسال به Mail::Mailer. پیش‌فرض: هیچ (none). تنظیم این گزینه شدیداً منع می‌شود: به جای آن MTA محلی خود را رفع ایراد کنید.

برای مثال این می‌تواند به این صورت باشد:

$CONFIG{'mailer-send'} =  [ 'smtp', Server => 'mail.server', Auth => ['user', 'pass'] ];

برای استفاده از کلاینت SMTP پرل، یا

$CONFIG{'mailer-send'} =  [ 'sendmail', '-f', $CONFIG{'email'}, '-it' ];

برای فرستادن آرگومان‌ها به برنامه sendmail. برای مشخص کردن باینری sendmail می‌توانید متغیر محیطی "PERL_MAILERS" را به صورت زیر تنظیم کنید:

$ENV{'PERL_MAILERS'} = 'sendmail:/path/to/sendmail_compatible_mta';

برای اطلاعات بیشتر Mail::Mailer(3pm) را ببینید.

همان‌طور که در بالا اشاره شد، caff از GnuPGHOME و فایل پیکربندی GnuPG مخصوص به خود استفاده می‌کند. در واقع تنها برای کارهای امضا به جاکلیدی (keyring) اختصاصی خود نیاز دارد، اما استفاده مجدد از همان فایل پیکربندی GnuPG ناامن خواهد بود؛ زیرا کاربر ممکن است گزینه‌ای را در $HOME/.gnupg/gpg.conf تنظیم کرده باشد که کارکرد caff را مختل سازد.

بنابراین گزینه‌های GnuPG که برای استفاده همراه با caff در نظر گرفته شده‌اند، مانند "keyserver" یا "cert-digest-algo"، باید به جای آن در $HOME/.caff/gnupghome/gpg.conf قرار داده شوند. اگر این فایل وجود نداشته باشد، گزینه‌های GnuPG موجود در $HOME/.gnupg/gpg.conf که ایمن (و مفید) بودن آن‌ها برای caff مشخص است، به عنوان گزینه‌های خط فرمان به gpg(1) ارسال می‌شوند..SH "نویسندگان (AUTHORS)"

gpg(1), pgp-clean(1), /usr/share/doc/signing-party/caff/

2024-07-13 perl v5.38.2