| GPG(1) | GNU Privacy Guard 2.4 | GPG(1) |
نام (NAME)
gpg - ابزار رمزنگاری و امضای دیجیتال OpenPGP
خلاصه دستور (SYNOPSIS)
gpg [--homedir dir] [--options file] [گزینهها] دستور [آرگومانها]
توضیحات (DESCRIPTION)
gpg بخش OpenPGP از سامانه GNU Privacy Guard (GnuPG) است. این ابزار برای ارائه خدمات رمزنگاری و امضای دیجیتال با استفاده از استاندارد OpenPGP طراحی شده است. gpg شامل مدیریت کامل کلیدها و تمامی امکانات پیشرفتهای است که از یک پیادهسازی کامل OpenPGP انتظار میرود.
دو نسخه اصلی از GnuPG وجود دارد: GnuPG 1.x و GnuPG 2.x. نسخه GnuPG 2.x از الگوریتمهای رمزنگاری مدرن پشتیبانی میکند و بنابراین باید به GnuPG 1.x ترجیح داده شود. تنها در صورتی نیاز به استفاده از GnuPG 1.x دارید که سیستمعامل شما از GnuPG 2.x پشتیبانی نکند، یا به پشتیبانی از برخی قابلیتهایی که در GnuPG 2.x منسوخ شدهاند (مانند رمزگشایی دادههای ایجادشده با کلیدهای PGP-2) نیاز داشته باشید.
اگر به دنبال نسخه ۱ از GnuPG هستید، ممکن است آن نسخه تحت نام gpg1 نصب شده باشد.
مقادیر بازگشتی (RETURN VALUE)
این برنامه در صورتی که خطای شدیدی رخ ندهد مقدار 0، در صورتی که حداقل یک امضا نامعتبر باشد مقدار 1، و کدهای خطای دیگر را برای خطاهای مهلک بازمیگرداند.
توجه داشته باشید که اعتبارسنجی امضا مستلزم آگاهی دقیق از این است که چه چیزی و توسط چه کسی امضا شده است. از این رو تنها اتکا به کد بازگشتی راه مناسبی برای اعتبارسنجی یک امضا توسط اسکریپت نیست. یا به طور مناسب از کدهای وضعیت استفاده کنید یا از ابزار gpgv بهره بگیرید که برای ساده کردن اعتبارسنجی امضاها برای اسکریپتها طراحی شده است.
هشدارها (WARNINGS)
برای حساب کاربری خود از یک گذرواژه قوی استفاده کنید و مطمئن شوید که تمامی مسائل امنیتی همواره در سیستم شما برطرف شدهاند. همچنین از حفاظت فیزیکی دقیق سیستم خود غافل نشوید. استفاده از یک عبارت عبور (passphrase) مناسب را به عنوان آخرین خط دفاعی برای محافظت از کلید مخفی خود در صورت به سرقت رفتن سیستم در نظر بگیرید. بسیار مهم است که کلید مخفی شما هرگز افشا نشود. استفاده از یک توکن با حمل آسان یا کارت هوشمند برای نگهداری کلید مخفی اغلب توصیه میشود.
اگر قصد دارید امضاهای جداگانه (detached signatures) را اعتبارسنجی کنید، مطمئن شوید که برنامه از آن آگاه است؛ یا نام هر دو فایل را در خط فرمان وارد کنید یا از ‘-’ برای مشخص کردن STDIN استفاده نمایید.
برای استفاده از gpg در اسکریپتها یا سایر کاربردهای خودکار و بدون نظارت، حتماً از رابط ماشینخوان (machine-parseable interface) استفاده کنید و نه از رابط پیشفرضی که برای استفاده مستقیم توسط انسانها طراحی شده است. رابط ماشینخوان یک API پایدار و دارای مستندات کامل ارائه میدهد که مستقل از محلیسازی (locale) یا تغییرات آینده gpg است. برای فعالسازی این رابط از گزینههای --with-colons و --status-fd استفاده کنید. برای برخی عملیات، گزینه --command-fd نیز ممکن است سودمند باشد. برای مشخصات این رابط به این صفحه راهنما و فایل ‘DETAILS’ مراجعه کنید. توجه داشته باشید که صفحات «info» مربوط به GnuPG و همچنین نسخه PDF راهنمای GnuPG دارای فصلی در مورد استفاده خودکار از GnuPG هستند. به عنوان یک جایگزین، میتوان از کتابخانه GPGME به عنوان یک لایه انتزاعی سطح بالا روی آن رابط استفاده کرد.
سازگاری و تعاملپذیری (INTEROPERABILITY)
سامانه GnuPG تلاش میکند یک پیادهسازی بسیار انعطافپذیر از استاندارد OpenPGP باشد. بهویژه، GnuPG بسیاری از بخشهای اختیاری استاندارد مانند درهمساز SHA-512 و الگوریتمهای فشردهسازی ZLIB و BZIP2 را پیادهسازی کرده است. آگاهی از این نکته بسیار حائز اهمیت است که همه برنامههای OpenPGP این الگوریتمهای اختیاری را پیادهسازی نمیکنند و با اجبار استفاده از آنها از طریق گزینههای --cipher-algo، --digest-algo، --cert-digest-algo یا --compress-algo در GnuPG، ممکن است یک پیام کاملاً معتبر OpenPGP ایجاد شود که توسط گیرنده مورد نظر قابل خواندن نباشد.
دهها نوع مختلف از برنامههای OpenPGP موجود است و هر کدام از زیرمجموعه کمی متفاوتی از این الگوریتمهای اختیاری پشتیبانی میکنند. برای مثال تا همین اواخر، هیچ نسخه دستکارینشدهای از PGP از الگوریتم رمزنگاری BLOWFISH پشتیبانی نمیکرد. پیامی که از BLOWFISH استفاده میکرد به سادگی توسط یک کاربر PGP قابل خواندن نبود. بهطور پیشفرض، GnuPG از سیستم ترجیحات استاندارد OpenPGP استفاده میکند که همواره عملکرد مناسبی داشته و پیامهایی تولید میکند که برای تمامی گیرندگان فارغ از برنامه OpenPGP مورد استفاده آنها قابل استفاده باشد. تنها در صورتی این پیشفرض ایمن را لغو کنید که واقعاً بدانید چه کاری انجام میدهید.
اگر الزاماً باید پیشفرض ایمن را لغو کنید، یا اگر ترجیحات روی یک کلید مشخص به دلایلی نامعتبر هستند، بسیار بهتر است از گزینههای --pgp6، --pgp7 یا --pgp8 استفاده نمایید. این گزینهها ایمن هستند زیرا هیچ الگوریتم خاصی را برخلاف OpenPGP تحمیل نمیکنند، بلکه الگوریتمهای موجود را به یک فهرست «سازگار با PGP» تقلیل میدهند.
دستورات (COMMANDS)
دستورات تفاوتی با گزینهها ندارند، جز در این مورد که تنها استفاده از یک دستور مجاز است. به طور کلی، گزینههای نامربوط بدون اخطار نادیده گرفته میشوند و ممکن است صحت آنها بررسی نشود.
gpg ممکن است بدون هیچ دستوری اجرا شود. در این حالت، هشداری چاپ کرده و بسته به نوع فایل ورودی دادهشده، اقدام مناسبی انجام میدهد (یک پیام رمزگذاریشده رمزگشایی میشود، یک امضا اعتبارسنجی میشود، فایلی شامل کلیدها فهرست میشود و غیره).
در صورت بروز هرگونه مشکل، لطفاً گزینه --verbose را به فراخوانی اضافه کنید تا اطلاعات عیبیابی بیشتری مشاهده شود.
دستورات عمومی و غیروابسته به عملکرد
- --version
- نسخه برنامه و اطلاعات مجوز را چاپ میکند. توجه داشته باشید که نمیتوانید این دستور را به صورت مخفف به کار ببرید.
- --help
- -h
- پیام نحوه استفاده را که خلاصهای از کاربردیترین گزینههای خط فرمان است، چاپ میکند. توجه داشته باشید که نمیتوانید این دستور را به دلخواه مخفف کنید (اگرچه میتوانید از شکل کوتاه آن -h استفاده نمایید).
- --warranty
- اطلاعات ضمانتنامه را چاپ میکند.
- --dump-options
- فهرستی از تمامی گزینهها و دستورات موجود را چاپ میکند. توجه داشته باشید که نمیتوانید این دستور را به صورت مخفف به کار ببرید.
دستورات انتخاب نوع عملیات
- --sign
- -s
- امضای یک پیام. این دستور میتواند با --encrypt (برای امضا و رمزگذاری یک پیام)، با --symmetric (برای امضا و رمزگذاری متقارن یک پیام)، یا هر دو گزینه --encrypt و --symmetric (برای امضا و رمزگذاری پیامی که میتواند با استفاده از کلید مخفی یا یک عبارت عبور رمزگشایی شود) ترکیب گردد. کلید امضا به طور پیشفرض انتخاب میشود یا میتوان آن را صراحتاً با گزینههای --local-user و --default-key تعیین کرد.
- --clear-sign
- --clearsign
- ایجاد یک امضای متنآشکار (cleartext signature). محتوای یک امضای متنآشکار بدون هیچ نرمافزار خاصی قابل خواندن است و نرمافزار OpenPGP تنها برای اعتبارسنجی امضا مورد نیاز است. امضاهای متنآشکار ممکن است فاصلههای خالی انتهای خط را برای استقلال از پلتفرم تغییر دهند و به گونهای طراحی نشدهاند که بازگشتپذیر باشند. کلید امضا به طور پیشفرض انتخاب میشود یا میتوان آن را صراحتاً با استفاده از گزینههای --local-user و --default-key تنظیم کرد.
- --detach-sign
- -b
- ایجاد یک امضای جداگانه (detached signature).
- --encrypt
- -e
- رمزگذاری دادهها برای یک یا چند کلید عمومی. این دستور میتواند با --sign (برای امضا و رمزگذاری یک پیام)، با --symmetric (برای رمزگذاری پیامی که میتواند با استفاده از کلید مخفی یا عبارت عبور رمزگشایی شود)، یا همزمان با --sign و --symmetric (برای پیامی امضاشده که میتواند با استفاده از کلید مخفی یا عبارت عبور رمزگشایی شود) ترکیب گردد. گزینه --recipient و گزینههای مرتبط مشخص میکنند که کدام کلیدهای عمومی برای رمزگذاری استفاده شوند.
- --symmetric
- -c
- رمزگذاری با یک الگوریتم رمز متقارن با استفاده از یک عبارت عبور. الگوریتم متقارن پیشفرض AES-128 است، اما میتوان آن را با گزینه --cipher-algo انتخاب کرد. این دستور میتواند با --sign (برای یک پیام امضا شده و متقارن رمزگذاری شده)، با --encrypt (برای پیامی که ممکن است از طریق کلید مخفی یا عبارت عبور رمزگشایی شود)، یا با --sign و --encrypt به همراه هم (برای پیامی امضا شده که ممکن است از طریق کلید مخفی یا عبارت عبور رمزگشایی شود) ترکیب گردد. gpg عبارت عبور استفاده شده برای رمزگذاری متقارن را کش میکند تا عملیات رمزگشایی نیازی به وارد کردن مجدد عبارت عبور توسط کاربر نداشته باشد. از گزینه --no-symkey-cache میتوان برای غیرفعال کردن این ویژگی استفاده کرد.
- --store
- تنها ذخیره کردن (ایجاد یک بسته ساده داده واقعی - literal data packet).
- --decrypt
- -d
- رمزگشایی فایل ارائهشده در خط فرمان (یا STDIN در صورت عدم تعیین فایل) و نوشتن آن در STDOUT (یا فایل مشخصشده با --output). اگر فایل رمزگشاییشده امضا شده باشد، امضا نیز اعتبارسنجی میشود. این دستور با عملکرد پیشفرض تفاوت دارد، زیرا هرگز در نام فایلی که درون فایل گنجانده شده است نمینویسد و فایلهایی را که با یک پیام رمزگذاریشده شروع نمیشوند، رد میکند.
- --verify
- فرض بر این
است که
آرگومان
اول یک فایل
امضاشده
است و آن را
بدون تولید
هیچ خروجی
اعتبارسنجی
میکند.
بدون هیچ
آرگومانی،
بسته امضا
از STDIN خوانده
میشود. اگر
تنها یک
آرگومان
داده شود،
انتظار
میرود
فایل
مشخصشده
شامل یک
امضای کامل
باشد.
با بیش از یک آرگومان، آرگومان اول باید فایلی با امضای جداگانه (detached signature) را مشخص کند و فایلهای باقیمانده باید حاوی دادههای امضاشده باشند. برای خواندن دادههای امضاشده از STDIN، از ‘-’ به عنوان نام فایل دوم استفاده کنید. به دلایل امنیتی، یک امضای جداگانه در صورتی که به صراحت مشخص نشده باشد، محتوای امضاشده را از STDIN نخواهد خواند.
نکته: اگر از گزینه --batch استفاده نشود، gpg ممکن است فرض کند یک آرگومان منفرد فایلی با امضای جداگانه است و تلاش میکند با حذف برخی پسوندها یک فایل داده منطبق پیدا کند. استفاده از این ویژگی قدیمی برای اعتبارسنجی امضای جداگانه به شدت نهی میشود؛ شما همیشه باید فایل داده را صراحتاً مشخص کنید.
نکته: هنگام اعتبارسنجی یک امضای متنآشکار، gpg تنها آنچه را که دادههای امضاشده متنآشکار را تشکیل میدهد اعتبارسنجی میکند و نه هیچ داده اضافی خارج از امضای متنآشکار یا خطوط هدر بلافاصله پس از خط نشانگر خطتیره را. گزینه --output ممکن است برای نوشتن دادههای امضاشده واقعی استفاده شود، اما خطرات دیگری نیز در این قالب وجود دارد. پیشنهاد میشود برای اجتناب از امضاهای متنآشکار از امضاهای جداگانه استفاده گردد.
نکته: با گزینه --batch، اعتبارسنجی امضاها با اولین امضای نامعتبر متوقف میشود. این یک پیشفرض ایمن برای پردازش خودکار است، اما گاهی اوقات وضعیت تمام امضاها مورد نیاز است. برای لغو این خروج زودهنگام از گزینه --proc-all-sigs استفاده کنید.
نکته: برای بررسی این که آیا فایلی توسط یک کلید خاص امضا شده است یا خیر، میتوان از گزینه --assert-signer استفاده کرد. به عنوان یک جایگزین میتوان از ابزار gpgv بهره برد. ابزار gpgv برای مقایسه دادههای امضاشده با فهرستی از کلیدهای مورد اعتماد طراحی شده است و تنها در صورت وجود امضای معتبر با موفقیت بازمیگردد. این ابزار صفحه راهنمای مخصوص به خود را دارد.
- --multifile
- این گزینه برخی دستورات دیگر را تغییر میدهد تا چندین فایل را برای پردازش در خط فرمان بپذیرند یا از STDIN در صورتی که هر نام فایل در یک خط مجزا باشد بخوانند. این امر امکان پردازش همزمان فایلهای زیادی را فراهم میآورد. در حال حاضر --multifile میتواند به همراه --verify، --encrypt و --decrypt استفاده شود. توجه داشته باشید که --multifile --verify نباید همراه با امضاهای جداگانه استفاده شود.
- --verify-files
- همانند --multifile --verify است.
- --encrypt-files
- همانند --multifile --encrypt است.
- --decrypt-files
- همانند --multifile --decrypt است.
- --list-keys
- -k
- --list-public-keys
- فهرست کردن
کلیدهای
مشخصشده.
اگر هیچ
کلیدی مشخص
نشده باشد،
تمام
کلیدهای
موجود در
دستهکلیدهای
عمومی
پیکربندیشده
فهرست
میشوند.
هرگز از خروجی این دستور در اسکریپتها یا سایر برنامهها استفاده نکنید. این خروجی فقط برای استفاده انسان در نظر گرفته شده و قالب آن ممکن است تغییر کند. گزینه --with-colons خروجی را در یک قالب پایدار و قابل تجزیه توسط ماشین ارائه میدهد که برای استفاده توسط اسکریپتها و سایر برنامهها در نظر گرفته شده است.
- --list-secret-keys
- -K
- فهرست کردن کلیدهای مخفی مشخصشده. اگر هیچ کلیدی مشخص نشده باشد، تمام کلیدهای مخفی شناختهشده فهرست میشوند. وجود علامت # پس از برچسبهای اولیه sec یا ssb به این معنی است که کلید مخفی یا کلید فرعی در حال حاضر قابل استفاده نیست. ما همچنین میگوییم این کلید به حالت آفلاین برده شده است (برای مثال، یک کلید اصلی را میتوان با صادر کردن کلید با استفاده از دستور --export-secret-subkeys به حالت آفلاین برد). علامت > پس از این برچسبها نشان میدهد که کلید روی یک کارت هوشمند ذخیره شده است. همچنین --list-keys را ببینید.
- --check-signatures
- --check-sigs
- همانند --list-keys
است، اما
امضاهای
کلید نیز
اعتبارسنجی
شده و فهرست
میشوند.
توجه داشته
باشید که به
دلایل
عملکردی،
وضعیت
ابطال کلید
امضاکننده
نمایش داده
نمیشود.
این دستور
همان اثری
را دارد که
استفاده از
--list-keys به
همراه --with-sig-check
دارد.
وضعیت اعتبارسنجی با یک پرچم بلافاصله پس از برچسب "sig" (و بنابراین قبل از پرچمهای شرح داده شده در زیر) مشخص میشود. علامت "!" نشان میدهد که امضا با موفقیت اعتبارسنجی شده است، علامت "-" نشاندهنده یک امضای نامعتبر است و در صورتی که خطایی هنگام بررسی امضا رخ دهد (مانند الگوریتم پشتیبانینشده) از "%" استفاده میشود. امضاهایی که کلید عمومی آنها در دسترس نیست فهرست نمیشوند؛ برای دیدن شناسههای کلید آنها میتوان از دستور --list-sigs استفاده کرد.
برای هر امضای فهرستشده، چندین پرچم بین پرچم وضعیت امضا و شناسه کلید وجود دارد. این پرچمها اطلاعات بیشتری در مورد هر امضای کلید ارائه میدهند. از چپ به راست، اعداد 1-3 برای سطح بررسی گواهی (ببینید: --ask-cert-level)، حرف "L" برای امضای محلی یا غیرقابل صادرات (ببینید: --lsign-key)، حرف "R" برای امضای غیرقابل ابطال (ببینید: دستور "nrsign" در --edit-key)، حرف "P" برای امضایی که شامل نشانی وب خطمشی است (ببینید: --cert-policy-url)، حرف "N" برای امضایی که شامل یک یادداشت است (ببینید: --cert-notation)، حرف "X" برای یک امضای منقضیشده (ببینید: --ask-cert-expire)، و اعداد 1-9 یا "T" برای ۱۰ و بالاتر برای نشان دادن سطوح امضای اعتماد (ببینید: دستور "tsign" در --edit-key) هستند.
- --import-ownertrust
- پایگاهدادهٔ اعتماد (trustdb) را با مقادیر ownertrust ذخیرهشده در files (یا STDIN در صورت مشخص نشدن) بهروزرسانی میکند؛ مقادیر موجود بازنویسی خواهند شد. در صورت آسیب شدید به trustdb و چنانچه یک نسخهٔ پشتیبان تازه از مقادیر ownertrust دارید (مثلاً در فایل ‘otrust.txt’)، میتوانید با استفاده از این دستورات trustdb را دوباره ایجاد کنید:
cd ~/.gnupg rm trustdb.gpg gpg --import-ownertrust < otrust.txt
- --rebuild-keydb-caches
- هنگام ارتقا از نسخهٔ 1.0.6 به 1.0.7 این دستور باید برای ایجاد کشهای امضا در دستهکلید (keyring) استفاده شود. همچنین ممکن است در شرایط دیگر نیز کاربردی باشد.
- --print-md algo
- --print-mds
- خلاصهٔ پیام (message digest) الگوریتم algo را برای تمام فایلهای ارائهشده یا STDIN چاپ میکند. با شکل دوم دستور (یا یک "*" منسوخشده برای algo)، خلاصههای پیام برای تمام الگوریتمهای موجود چاپ میشوند.
- --gen-random 0|1|2|16|30 count
- به تعداد count بایت تصادفی با سطح کیفیت مشخصشدهٔ 0، 1 یا 2 تولید میکند. اگر count داده نشود یا صفر باشد، دنبالهای بیپایان از بایتهای تصادفی تولید خواهد شد. در صورت استفاده به همراه --armor، خروجی با کدگذاری base64 خواهد بود. سطح ویژهٔ 16 از سطح کیفیت 1 استفاده میکند و جریانی بیپایان از اکتتهای کدگذاریشده با hex خروجی میدهد. سطح ویژهٔ 30، دادههای تصادفی را در قالب 30 نویسهٔ zBase-32 خروجی میدهد.
- --gen-prime mode bits
- به سورسکد مراجعه کن، لوک :-). قالب خروجی ممکن است در هر نسخه تغییر کند.
- --enarmor
- --dearmor
- بستهبندی یا باز کردن یک ورودی دلخواه به/از یک OpenPGP ASCII armor. این یک افزونهٔ GnuPG برای OpenPGP است و بهطور کلی چندان کاربردی نیست. دستور --dearmor میتواند برای حذف زره از ساختارهای PEM (dearmor PEM armors) نیز به کار رود.
- --unwrap
- این گزینه رفتار دستور --decrypt را تغییر میدهد تا پیام اصلی را با حذف لایهٔ رمزنگاری خروجی دهد. بنابراین خروجی یک ساختار دادهٔ OpenPGP خواهد بود که اغلب به معنی یک پیام امضاشدهٔ OpenPGP است. توجه داشته باشید که این گزینه ممکن است لایهٔ فشردهسازی را که معمولاً زیر لایهٔ رمزنگاری قرار دارد حذف بکند یا نکند.
- --tofu-policy {auto|good|unknown|bad|ask} keys
- تنظیم خطمشی TOFU برای تمام انتسابهای (bindings) مرتبط با keys مشخصشده. برای اطلاعات بیشتر دربارهٔ معنای این خطمشیها، ببینید: [trust-model-tofu]. مقادیر keys را میتوان با اثرانگشت آنها (fingerprint - ترجیحی) یا با keyid آنها مشخص کرد.
نحوه مدیریت کلیدها
این بخش دستورهای اصلی برای مدیریت کلیدها را توضیح میدهد.
- --quick-generate-key user-id [algo [usage [expire]]]
- --quick-gen-key
- این دستوری
ساده برای
تولید یک
کلید
استاندارد
با یک user id است.
برخلاف
--generate-key، کلید
بهطور
مستقیم و
بدون نیاز
به پاسخ
دادن به
چندین
اعلان (prompt)
تولید
میشود. در
صورتی که
گزینهٔ --yes
داده نشده
باشد، اگر user id
ارائهشده
از قبل در
دستهکلید
(keyring) وجود
داشته
باشد،
ایجاد کلید
لغو خواهد
شد.
در صورت اجرای مستقیم در کنسول بدون هیچ گزینهٔ خاصی، پاسخ به یک اعلان تأیید از نوع «Continue?» الزامی است. در صورتی که user id از قبل در keyring وجود داشته باشد، اعلان دومی برای اجبار به ایجاد کلید نمایش داده خواهد شد.
اگر algo یا usage داده شوند، تنها کلید اصلی (primary key) ایجاد میشود و هیچ اعلانی نمایش داده نخواهد شد. برای مشخص کردن تاریخ انقضا و در عین حال ایجاد کلید اصلی و زیرکلید (subkey)، مقدار ``default'' یا ``future-default'' را برای algo و ``default'' را برای usage به کار ببرید. برای شرح این آرگومانهای اختیاری، دستور --quick-add-key را ببینید. آرگومان usage همچنین مقدار ``cert'' را میپذیرد که میتوان از آن برای ایجاد یک کلید اصلی صرفاً جهت گواهی (certification only) استفاده کرد؛ حالت پیشفرض، ایجاد کلید گواهی و امضا (certification and signing) است.
آرگومان expire میتواند برای تعیین تاریخ انقضای کلید استفاده شود. چندین قالب پشتیبانی میشوند؛ بهطور معمول قالبهای ایزو ``YYYY-MM-DD'' یا ``YYYYMMDDThhmmss'' به کار میروند. برای اینکه کلید پس از N ثانیه، N روز، N هفته، N ماه یا N سال منقضی شود، به ترتیب از ``seconds=N''، ``Nd''، ``Nw''، ``Nm'' یا ``Ny'' استفاده کنید. مشخص نکردن مقدار، یا استفاده از ``-'' منجر به انقضای کلید در یک بازهٔ زمانی پیشفرض و معقول میشود. مقادیر ``never'' و ``none'' را میتوان برای کلیدهای بدون تاریخ انقضا استفاده کرد.
اگر این دستور به همراه --batch استفاده شود، --pinentry-mode روی loopback تنظیم شده باشد، و یکی از گزینههای عبارتعبور (--passphrase، --passphrase-fd یا --passphrase-file) به کار رود، عبارتعبور دادهشده برای کلید جدید استفاده شده و agent آن را درخواست نمیکند. برای ایجاد کلید بدون هیچگونه حفاظتی، میتوان از --passphrase '' استفاده کرد.
برای ایجاد یک کلید OpenPGP از کلیدهای موجود روی کارت هوشمند (smartcard) متصلشدهٔ فعلی، میتوان از رشتهٔ ویژهٔ ``card'' برای algo استفاده کرد. اگر کارت شامل یک کلید رمزنگاری و یک کلید امضا باشد، gpg آنها را شناسایی کرده و یک کلید OpenPGP متشکل از کلید اصلی معمول و یک زیرکلید ایجاد میکند. این قابلیت تنها با کارتهای هوشمند خاصی کار میکند. توجه داشته باشید که دستور تعاملی --full-gen-key امکان انجام همین کار را با انعطافپذیری بیشتری در انتخاب کلیدهای کارت هوشمند فراهم میکند.
توجه داشته باشید که با استفاده از ``default'' و تغییر پارامترهای پیشفرض با استفاده از گزینهٔ --default-new-key-algo، میتوان یک کلید اصلی و یک زیرکلید را با الگوریتمهای غیرپیشفرض ایجاد کرد.
- --quick-set-expire fpr expire [*|subfprs]
- در صورت ارائه دو آرگومان، زمان انقضای کلید اصلی مشخصشده با fpr را مستقیماً روی expire تنظیم میکند. برای حذف زمان انقضا، میتوان از 0 استفاده کرد. با سه آرگومان و در صورتی که آرگومان سوم به عنوان یک ستاره ارائه شود، زمان انقضای تمامی زیرکلیدهای باطلنشده و هنوز منقضینشده روی expire تنظیم میشود. با بیش از دو آرگومان و ارائهی فهرستی از اثرانگشتها برای subfprs، تمامی زیرکلیدهای باطلنشده منطبق با این اثرانگشتها روی expire تنظیم میشوند.
- --quick-add-key fpr [algo [usage [expire]]]
- یک زیرکلید
را
مستقیماً
به کلید
مشخصشده
با
اثرانگشت
fpr اضافه
میکند.
بدون
آرگومانهای
اختیاری،
یک زیرکلید
رمزنگاری
اضافه
میشود. در
صورت ارائه
هر یک از
آرگومانها،
زیرکلید
مشخصتری
اضافه
خواهد شد.
algo میتواند هر یک از الگوریتمها یا نامهای خم (curve) پشتیبانیشده باشد که در قالب مورد استفاده در فهرستهای کلید ارائه میشود. برای استفاده از الگوریتم پیشفرض، میتوان از رشتهی ``default'' یا ``-'' استفاده کرد. الگوریتمهای پشتیبانیشده عبارتند از ``rsa''، ``dsa''، ``elg''، ``ed25519''، ``cv25519'' و سایر خمهای ECC. به عنوان مثال، رشتهی ``rsa'' یک کلید RSA با طول کلید پیشفرض اضافه میکند؛ رشتهی ``rsa4096'' درخواست میکند که طول کلید ۴۰۹۶ بیت باشد. رشتهی ``future-default'' یک نام مستعار برای الگوریتمی است که احتمالاً در نسخههای آیندهی gpg به عنوان الگوریتم پیشفرض استفاده خواهد شد. برای مشاهدهی فهرست خمهای ECC پشتیبانیشده، میتوان از دستور gpg --with-colons --list-config curve استفاده کرد.
بسته به algo دادهشده، زیرکلید ممکن است یک زیرکلید رمزنگاری یا یک زیرکلید امضا باشد. اگر یک الگوریتم قادر به امضا و رمزنگاری باشد و چنین زیرکلیدی مد نظر باشد، باید یک رشتهی usage مشخص شود. این رشته برای حفظ حالت پیشفرض ``default'' یا ``-'' است، یا فهرستی جداشده با کاما (یا جداشده با فاصله) از کلیدواژهها: ``sign'' برای یک زیرکلید امضا، ``auth'' برای یک زیرکلید احراز هویت، و ``encr'' برای یک زیرکلید رمزنگاری (از ``encrypt'' میتوان به عنوان نام مستعار ``encr'' استفاده کرد). ترکیبهای معتبر به الگوریتم بستگی دارد.
آرگومان expire میتواند برای مشخص کردن تاریخ انقضای کلید استفاده شود. چندین قالب پشتیبانی میشوند؛ معمولاً از قالبهای ISO شامل ``YYYY-MM-DD'' یا ``YYYYMMDDThhmmss'' استفاده میشود. برای اینکه کلید در N ثانیه، N روز، N هفته، N ماه یا N سال منقضی شود، به ترتیب از ``seconds=N''، ``Nd''، ``Nw''، ``Nm'' یا ``Ny'' استفاده کنید. مشخص نکردن مقدار، یا استفاده از ``-'' منجر به انقضای کلید در یک بازه زمانی پیشفرض معقول میشود. از مقادیر ``never'' و ``none'' میتوان برای نداشتن تاریخ انقضا استفاده کرد.
- --quick-add-adsk fpr adskfpr
- مستقیماً یک زیرکلید رمزگشایی اضافی (Additional Decryption Subkey) را به کلید مشخصشده با اثرانگشت fpr اضافه میکند. adskfpr اثرانگشت زیرکلید رمزنگاریِ کلید دیگری است. معمولاً در اینجا از یک زیرکلید استفاده میشود، زیرا به طور پیشفرض کلید اصلی هیچ قابلیت رمزنگاری ندارد. از گزینهی --with-subkey-fingerprint همراه با یک دستور فهرستگیری برای نمایش اثرانگشت زیرکلیدها استفاده کنید. اگر از رشتهی "default" برای adskfpr استفاده شود، تمام ADSKهای ناموجودی که با --default-new-key-adsk پیکربندی شدهاند اضافه میشوند.
- --generate-key
- --gen-key
- یک جفتکلید جدید را با استفاده از پارامترهای پیشفرض فعلی تولید میکند. این دستور استاندارد برای ایجاد یک کلید جدید است. علاوه بر کلید، یک گواهی ابطال نیز ایجاد شده و در پوشهی ‘openpgp-revocs.d’ در زیر پوشهی خانگی GnuPG ذخیره میشود.
- --full-generate-key
- --full-gen-key
- یک
جفتکلید
جدید را
همراه با
گفتوگوهای
تعاملی
برای تمامی
گزینهها
تولید
میکند. این
یک نسخه
گسترشیافته
از --generate-key است.
همچنین قابلیتی وجود دارد که به شما امکان میدهد کلیدها را در حالت دستهای (batch mode) ایجاد کنید. برای نحوهی استفاده از این قابلیت، بخش ``Unattended key generation'' را در دفترچه راهنما ببینید.
- --generate-revocation name
- --gen-revoke name
- یک گواهی
ابطال برای
کل کلید
تولید
میکند.
برای ابطال
تنها یک
زیرکلید یا
یک امضای
کلید، از
دستور --edit
استفاده
کنید.
این دستور صرفاً گواهی ابطال را ایجاد میکند تا در صورت نیاز بتوان از آن برای باطل کردن کلید استفاده کرد. برای باطل کردن واقعی یک کلید، گواهی ابطال ایجادشده باید با کلیدی که قرار است باطل شود ادغام گردد. این کار با وارد کردن گواهی ابطال با استفاده از دستور --import انجام میشود. سپس کلید باطلشده باید منتشر شود، که بهترین کار ارسال کلید به یک سرور کلید (دستور --send-key) و برونریزی (--export) آن در یک پرونده است که سپس برای طرفهای ارتباطی همیشگی ارسال میشود.
- --generate-designated-revocation name
- --desig-revoke name
- تولید یک گواهی ابطال تعیینشده برای یک کلید. این گزینه به یک کاربر (با اجازه صاحب کلید) امکان میدهد کلید شخص دیگری را باطل کند.
- --edit-key
- نمایش منویی که به شما امکان میدهد بیشتر وظایف مربوط به مدیریت کلید را انجام دهید. این دستور انتظار مشخص شدن یک کلید را در خط فرمان دارد.
- uid n
- تغییر وضعیت انتخاب شناسه کاربری یا شناسه کاربری تصویری با نمایه n. از * برای انتخاب همه و از 0 برای لغو انتخاب همه استفاده کنید.
- key n
- تغییر وضعیت انتخاب زیرکلید با نمایه n یا شناسه کلید n. از * برای انتخاب همه و از 0 برای لغو انتخاب همه استفاده کنید.
- sign
- ایجاد یک امضا روی کلید کاربر name. اگر کلید هنوز توسط کاربر پیشفرض (یا کاربران مشخصشده با -u) امضا نشده باشد، برنامه اطلاعات کلید را به همراه اثر انگشت آن دوباره نمایش میدهد و میپرسد که آیا باید امضا شود یا خیر. این پرسش برای تمام کاربران مشخصشده با -u تکرار میشود.
- lsign
- مشابه «sign»، اما امضا به عنوان غیرقابلصادرات علامتگذاری میشود و بنابراین هرگز توسط دیگران استفاده نخواهد شد. این گزینه میتواند برای معتبر ساختن کلیدها تنها در محیط محلی به کار رود.
- nrsign
- مشابه «sign»، اما امضا به عنوان غیرقابلابطال علامتگذاری میشود و بنابراین هرگز قابل ابطال نخواهد بود.
- tsign
- ایجاد یک امضای اعتماد. این امضایی است که مفاهیم گواهیکردن (مانند یک امضای معمولی) و اعتماد (مانند دستور «trust») را با هم ترکیب میکند. این گزینه عموماً در انجمنها یا گروههای متمایز برای پیادهسازی مفهوم «معرف قابل اعتماد» (Trusted Introducer) مفید است. برای اطلاعات بیشتر لطفاً بخشهای «Trust Signature» و «Regular Expression» را در RFC-4880 بخوانید.
اگر گزینه --only-sign-text-ids مشخص شده باشد، هیچیک از شناسههای کاربری غیرمتنی (مانند شناسههای تصویری) برای امضا انتخاب نخواهند شد.
- delsig
- حذف یک امضا. توجه داشته باشید که پس از ارسال امضا به عموم (یعنی به یک keyserver)، پس گرفتن آن ممکن نیست. در این صورت بهتر است از revsig استفاده کنید.
- revsig
- ابطال یک امضا. برای هر امضایی که توسط یکی از کلیدهای مخفی ایجاد شده باشد، GnuPG میپرسد که آیا باید یک گواهی ابطال تولید شود یا خیر.
- check
- بررسی امضاها در تمام شناسههای کاربری انتخابشده. با گزینه اضافی selfsig تنها خود-امضاها نمایش داده میشوند.
- adduid
- ایجاد یک شناسه کاربری اضافی.
- addphoto
- یک شناسه کاربری تصویری ایجاد میکند. این دستور برای دریافت یک فایل JPEG که درون شناسه کاربری جاسازی خواهد شد اعلان میدهد. توجه داشته باشید که یک فایل JPEG بسیار بزرگ باعث ایجاد کلیدی بسیار بزرگ خواهد شد. همچنین توجه داشته باشید که برخی برنامهها فایل JPEG شما را بدون تغییر نمایش میدهند (GnuPG)، و برخی برنامهها اندازه آن را برای جا شدن در کادر محاورهای تغییر میدهند (PGP).
- showphoto
- شناسه کاربری تصویری انتخابشده را نمایش میدهد.
- deluid
- یک شناسه کاربری یا شناسه کاربری تصویری را حذف میکند. توجه داشته باشید پس از اینکه یک شناسه کاربری به صورت عمومی منتشر شد (مثلاً به یک keyserver ارسال شد)، امکان پس گرفتن آن وجود ندارد. در این حالت بهتر است از revuid استفاده کنید.
- revuid
- یک شناسه کاربری یا شناسه کاربری تصویری را باطل میکند.
- primary
- شناسه کاربری فعلی را به عنوان شناسه اصلی علامتگذاری میکند، پرچم شناسه کاربری اصلی را از تمام شناسههای کاربری دیگر حذف کرده و برچسب زمانی تمام خودامضاهای تحتتأثیر را یک ثانیه به جلو میبرد. توجه داشته باشید که تنظیم یک شناسه کاربری تصویری به عنوان شناسه اصلی، آن را نسبت به سایر شناسههای کاربری تصویری اصلی میکند، و تنظیم یک شناسه کاربری عادی به عنوان شناسه اصلی، آن را نسبت به سایر شناسههای کاربری عادی اصلی میسازد.
- keyserver
- یک کارگزار کلید (keyserver) ترجیحی برای شناسه(های) کاربری مشخصشده تنظیم میکند. این کار به سایر کاربران اجازه میدهد بدانند شما ترجیح میدهید کلید شما را از کجا دریافت کنند. برای اطلاعات بیشتر درباره نحوه کارکرد این مورد، --keyserver-options honor-keyserver-url را ببینید. تنظیم مقدار "none" کارگزار کلید ترجیحی موجود را حذف میکند.
- notation
- یک یادداشت name=value برای شناسه(های) کاربری مشخصشده تنظیم میکند. برای اطلاعات بیشتر درباره نحوه کارکرد این مورد، --cert-notation را ببینید. تنظیم مقدار "none" تمام یادداشتها را حذف میکند، تنظیم یک یادداشت با پیشوند علامت منها (-) آن یادداشت را حذف میکند، و تنظیم یک نام یادداشت (بدون =value) با پیشوند علامت منها تمام یادداشتهای دارای آن نام را حذف مینماید.
- pref
- ترجیحات شناسه کاربری انتخابشده را فهرست میکند. این دستور ترجیحات واقعی را بدون لحاظ کردن ترجیحات ضمنی نمایش میدهد.
- showpref
- فهرست تفصیلیتر ترجیحات برای شناسه کاربری انتخابشده. این دستور ترجیحات اعمالشده را با احتساب ترجیحات ضمنی 3DES (رمزنگاری - cipher)، SHA-1 (خلاصهساز - digest) و Uncompressed (فشردهسازی - compression) در صورتی که از قبل در فهرست ترجیحات وجود نداشته باشند، نشان میدهد. علاوه بر این، کارگزار کلید ترجیحی و یادداشتهای امضا (در صورت وجود) نیز نمایش داده میشوند.
- setpref string
- فهرست
ترجیحات
شناسه
کاربری را
روی string برای
همه
شناسههای
کاربری (یا
صرفاً
شناسههای
کاربری
انتخابشده)
تنظیم
میکند.
فراخوانی setpref
بدون هیچ
آرگومانی،
فهرست
ترجیحات را
روی مقدار
پیشفرض
(خواه توکار
باشد یا از
طریق --default-preference-list
تنظیم شده
باشد) قرار
میدهد، و
فراخوانی setpref
با آرگومان
"none" یک فهرست
ترجیحات
خالی تنظیم
میکند. از
gpg --version برای
دریافت
فهرستی از
الگوریتمهای
موجود
استفاده
کنید. توجه
داشته
باشید که با
وجود اینکه
میتوانید
ترجیحات را
روی یک
شناسه
کاربری
مشخصه
(معروف به "photo
ID") تغییر
دهید، اما GnuPG
کلیدها را
از طریق
شناسههای
کاربری
مشخصه
انتخاب
نمیکند؛
بنابراین
این
ترجیحات
توسط GnuPG
استفاده
نخواهند شد.
توجه داشته
باشید که یک
نسخه
خودکار از
این دستور
به عنوان
--quick-update-pref در
دسترس است.
هنگام تنظیم ترجیحات، باید الگوریتمها را به ترتیبی که مایلید دیگران هنگام رمزگذاری پیامی با کلید شما از آنها استفاده کنند، فهرست نمایید. اگر 3DES را وارد نکنید، به طور خودکار به انتها اضافه خواهد شد. توجه داشته باشید که عوامل زیادی در انتخاب یک الگوریتم دخیل هستند (برای نمونه، ممکن است کلید شما تنها گیرنده نباشد)، بنابراین برنامه راه دور OpenPGP که برای ارسال به شما استفاده میشود، ممکن است ترتیب انتخابی دقیق شما را برای یک پیام خاص دنبال کند یا نکند. با این وجود، آن برنامه فقط الگوریتمی را انتخاب خواهد کرد که در فهرست ترجیحات کلید تمام گیرندگان موجود باشد. همچنین بخش سازگاری با سایر برنامههای OPENPGP (INTEROPERABILITY WITH OTHER OPENPGP PROGRAMS) در ادامه را ببینید.
- addkey
- یک زیرکلید به این کلید اضافه میکند.
- addcardkey
- یک زیرکلید روی یک کارت تولید کرده و آن را به این کلید اضافه میکند.
- keytocard
- انتقال زیرکلید مخفی انتخابشده (یا کلید اصلی در صورتی که هیچ زیرکلیدی انتخاب نشده باشد) به یک کارت هوشمند. اگر کلید با موفقیت روی کارت ذخیره شود و بعداً از دستور save استفاده کنید، کلید مخفی موجود در دستهکلید (keyring) با یک جانشین (stub) جایگزین خواهد شد. تنها انواع خاصی از کلیدها را میتوان به کارت منتقل کرد. یک زیرمنو به شما امکان میدهد کارتی را که میخواهید کلید روی آن ذخیره شود، انتخاب کنید. توجه داشته باشید که بازگرداندن آن کلید از کارت امکانپذیر نیست - اگر کارت آسیب ببیند، کلید مخفی شما از دست خواهد رفت، مگر اینکه در جایی نسخهٔ پشتیبان داشته باشید.
- bkuptocard file
- بازگردانی file دادهشده به یک کارت. از این دستور میتوان برای بازگردانی یک کلید پشتیبان (همانطور که در زمان راهاندازی اولیهٔ کارت تولید شده) به یک کارت جدید استفاده کرد. تقریباً در تمام موارد، این همان کلید رمزنگاری خواهد بود. شما باید از این دستور تنها به همراه کلید عمومی مربوطه استفاده کنید و مطمئن شوید فایلی که به عنوان آرگومان داده شده واقعاً همان نسخهٔ پشتیبان برای بازگردانی است. سپس باید گزینهٔ 2 را برای بازگردانی به عنوان کلید رمزنگاری انتخاب کنید. ابتدا از شما خواسته میشود عبارتعبور کلید پشتیبان و سپس Admin PIN کارت را وارد کنید.
- keytotpm
- انتقال زیرکلید مخفی انتخابشده (یا کلید اصلی در صورتی که هیچ زیرکلیدی انتخاب نشده باشد) به قالب TPM. کلید مخفی موجود در دستهکلید با بازنمایی TPM آن کلید جایگزین خواهد شد، که تنها توسط همان TPM خاصی که آن را ایجاد کرده قابل خواندن است (بنابراین فایل کلید اکنون به لپتاپ دارای آن TPM قفل میشود). تنها انواع خاصی از کلیدها را میتوان به TPM منتقل کرد (تمام سیستمهای TPM 2.0 موظف به پشتیبانی از الگوریتمهای rsa2048 و nistp256 هستند، اما TPMهای جدیدتر ممکن است موارد بیشتری داشته باشند). توجه داشته باشید که خود کلید به داخل TPM منتقل نمیشود، بلکه صرفاً در جای خود توسط TPM رمزنگاری میشود؛ بنابراین اگر فایل کلید حذف شود، کلید از دست خواهد رفت. پس از انتقال به بازنمایی TPM، فایل کلید دیگر هرگز نمیتواند به حالت غیر TPM بازگردانده شود و با از بین رفتن TPM، کلید نیز از بین خواهد رفت؛ بنابراین باید پیش از تبدیل، ابتدا یک نسخهٔ پشتیبان از فایل واقعی کلید مخفی در یک حافظهٔ آفلاین امن داشته باشید. برای استفاده از TPM فیزیکی سیستم ضروری است که دسترسی rw روی دستگاه مدیریت منبع TPM یعنی (/dev/tpmrm0) داشته باشید. معمولاً این به این معناست که باید عضو گروه tss باشید.
- delkey
- حذف یک زیرکلید (کلید ثانویه). توجه داشته باشید زمانی که یک زیرکلید به صورت عمومی منتشر شد (مثلاً به یک keyserver فرستاده شد)، پس گرفتن آن امکانپذیر نیست. در این حالت بهتر است از revkey استفاده کنید. همچنین توجه داشته باشید که این دستور تنها بخش عمومی یک کلید را حذف میکند.
- revkey
- ابطال یک زیرکلید.
- expire
- تغییر تاریخ انقضای کلید یا زیرکلید. اگر زیرکلیدی انتخاب شده باشد، زمان انقضای این زیرکلید تغییر خواهد کرد. در صورت عدم انتخاب، زمان انقضای کلید اصلی تغییر مییابد.
- trust
- تغییر مقدار اعتماد به مالک (owner trust) برای کلید. این دستور trust-db را بیدرنگ بهروزرسانی میکند و نیازی به ذخیرهسازی نیست.
- disable
- enable
- غیرفعال یا فعال کردن کامل یک کلید. از یک کلید غیرفعالشده معمولاً نمیتوان برای رمزنگاری استفاده کرد.
- addrevoker
- افزودن یک باطلکنندهٔ تعیینشده (designated revoker) به کلید. این دستور یک آرگومان اختیاری میگیرد: "sensitive". اگر یک باطلکنندهٔ تعیینشده به عنوان sensitive علامتگذاری شود، به صورت پیشفرض صادر نخواهد شد (بخش export-options را ببینید).
- addadsk
- افزودن یک زیرکلید رمزگشایی اضافی (Additional Decryption Subkey). از کاربر خواسته میشود اثرانگشت زیرکلید رمزنگاری دیگری را وارد کند. توجه داشته باشید که باید دقیقاً اثرانگشت زیرکلید رمزنگاری یک کلید دیگر وارد شود؛ زیرا معمولاً کلید اصلی قابلیت رمزنگاری ندارد. برای نمایش اثرانگشت زیرکلیدها، از گزینهٔ --with-subkey-fingerprint همراه با یک دستور فهرستگیری استفاده کنید.
- passwd
- تغییر عبارتعبور کلید مخفی.
- toggle
- این یک دستور صوری (dummy) است که صرفاً برای سازگاری با گذشته وجود دارد.
- clean
- هر شناسهٔ کاربری که دیگر قابل استفاده نیست (مانند باطلشده یا منقضیشده) را فشردهسازی میکند (با حذف تمام امضاها بهجز selfsig). سپس، هر امضایی را که برای محاسبات اعتماد قابل استفاده نیست، حذف میکند. بهطور خاص، این کار هر امضایی را که اعتبارسنجی نمیشود، هر امضایی را که با یک امضای بعدی جایگزین شده است، امضاهای باطلشده، و امضاهای صادرشده با کلیدهایی که در دستهکلید موجود نیستند را حذف میکند.
- minimize
- کلید را تا جای ممکن کوچک میکند. این کار تمام امضاها را از هر شناسهٔ کاربری بهجز تازهترین خودامضا (self-signature) حذف میکند.
- change-usage
- پرچمهای کاربرد (قابلیتهای) کلید اصلی یا زیرکلیدها را تغییر میدهد. این پرچمهای کاربرد (مانند Certify، Sign، Authenticate، Encrypt) هنگام ایجاد کلید تنظیم میشوند. گاهی اوقات مفید است که پس از ایجاد کلیدها، امکان تغییر آنها (برای مثال جهت افزودن Authenticate) وجود داشته باشد. لطفاً هنگام انجام این کار دقت کنید؛ پرچمهای کاربرد مجاز به الگوریتم کلید بستگی دارند.
- cross-certify
- امضاهای گواهیدهی متقابل (cross-certification) را به زیرکلیدهای امضایی که ممکن است در حال حاضر فاقد آن باشند اضافه میکند. امضاهای گواهیدهی متقابل در برابر حملهای ظریف علیه زیرکلیدهای امضا محافظت میکنند. --require-cross-certification را ببینید. تمام کلیدهای جدید تولیدشده بهطور پیشفرض این امضا را دارند، بنابراین این دستور فقط برای بهروزرسانی کلیدهای قدیمیتر کاربرد دارد.
- save
- ذخیرهٔ تمام تغییرات در دستهکلید و خروج.
- quit
- خروج از برنامه بدون بهروزرسانی دستهکلید.
- --sign-key name
- یک کلید عمومی را با کلید مخفی شما امضا میکند. این یک نسخهٔ میانبُر از زیردستور "sign" در --edit-key است.
- --lsign-key name
- یک کلید عمومی را با کلید مخفی شما امضا میکند اما آن را بهعنوان غیرقابل صدور (non-exportable) علامت میزند. این یک نسخهٔ میانبُر از زیردستور "lsign" در --edit-key است.
- --quick-sign-key fpr [names]
- --quick-lsign-key fpr [names]
- امضای
مستقیم یک
کلید با
استفاده از
عبارت عبور
بدون نیاز
به هرگونه
تعامل
بیشتر
کاربر. fpr
باید اثر
انگشت اصلی
و
تأییدشدهٔ
یک کلید در
دستهکلید
محلی باشد.
اگر هیچ names
مشخص نشود،
تمام
شناسههای
کاربری
مفید امضا
میشوند؛
در صورت
ارائهٔ [names]،
فقط
شناسههای
کاربری
مفیدی که با
یکی از این
نامها
مطابقت
دارند امضا
خواهند شد.
بهطور
پیشفرض،
یا در صورتی
که یک نام
دارای
پیشوند '*'
باشد،
تطابق
زیررشتهای
و بدون
حساسیت به
حروف بزرگ و
کوچک انجام
میگیرد.
اگر یک نام
دارای
پیشوند '='
باشد،
تطابق دقیق
و حساس به
حروف بزرگ و
کوچک انجام
میشود.
دستور --quick-lsign-key امضاها را بهعنوان غیرقابل صدور (non-exportable) علامتگذاری میکند. اگر چنین امضای غیرقابل صدوری از قبل وجود داشته باشد، --quick-sign-key آن را به یک امضای قابل صدور تبدیل میکند. اگر نیاز به بهروزرسانی یک امضای موجود دارید، مثلاً برای افزودن یا تغییر دادههای یادداشت (notation data)، باید از گزینهٔ --force-sign-key استفاده کنید.
این دستور از پیشفرضهای معقولی استفاده میکند و بنابراین انعطافپذیری کامل زیردستور "sign" در --edit-key را فراهم نمیکند. کاربرد در نظر گرفته شده برای آن، کمک به امضای خودکار کلیدها با استفاده از فهرستی از اثر انگشتهای تأییدشده است.
- --quick-add-uid user-id new-user-id
- این دستور یک شناسهٔ کاربری جدید را به یک کلید موجود اضافه میکند. برخلاف زیردستور تعاملی adduid در --edit-key، شناسهٔ new-user-id عینا و تنها با حذف فاصلههای خالی ابتدا و انتها اضافه میشود؛ انتظار میرود دارای کدگذاری UTF-8 باشد و هیچ بررسیای روی ساختار آن انجام نمیگیرد.
- --quick-revoke-uid user-id user-id-to-revoke
- این دستور یک شناسه کاربری را روی یک کلید موجود باطل میکند. از آن نمیتوان برای باطل کردن آخرین شناسه کاربری روی کلید استفاده کرد (باید دستکم یک شناسه کاربری باطلنشده باقی بماند)، با دلیل ابطال ``User ID is no longer valid''. اگر میخواهید دلیل ابطال متفاوتی را مشخص کنید یا متن ابطال تکمیلی ارائه دهید، باید از زیردستور تعاملی revuid در --edit-key استفاده کنید.
- --quick-revoke-sig fpr signing-fpr [names]
- این دستور امضاهای کلید ایجادشده توسط signing-fpr را از کلید مشخصشده با اثرانگشت fpr باطل میکند. در صورت ارائهٔ names، تنها امضاهای روی شناسههای کاربری کلید که با هر یک از نامهای دادهشده مطابقت داشته باشند تحت تأثیر قرار میگیرند (به --quick-sign-key مراجعه کنید). اگر یک ابطال از قبل وجود داشته باشد، به جای ایجاد یک ابطال جدید، پیامی چاپ میشود؛ در این حالت هیچ خطایی بازگردانده نمیشود. توجه داشته باشید که ابطال امضای کلید ممکن است با یک امضای کلید جدیدتر جایگزین شود و آن امضا نیز به نوبهٔ خود مجدداً باطل گردد.
- --quick-set-primary-uid user-id primary-user-id
- این دستور پرچم شناسه کاربری اصلی را روی یک کلید موجود تنظیم یا بهروزرسانی میکند. user-id کلید را مشخص میکند و primary-user-id شناسه کاربریای است که باید به عنوان شناسه کاربری اصلی علامتگذاری شود. پرچم شناسه کاربری اصلی از تمامی شناسههای کاربری دیگر حذف میشود و برچسب زمانی تمام خودامضاهای تحت تأثیر، یک ثانیه جلو برده میشود.
- --quick-update-pref user-id
- این دستور فهرست اولویتهای کلید را به مقدار پیشفرض فعلی (چه به صورت توکار و چه تنظیمشده از طریق --default-preference-list) بهروزرسانی میکند. این نسخهٔ غیرتعاملی استفاده از "setpref" در منوی --key-edit بدون ارائه فهرست است. توجه داشته باشید که میتوانید اولویتها را در فهرستبندی کلید با استفاده از --list-options show-pref یا --list-options show-pref-verbose مشاهده کنید. همچنین باید کلیدهای بهروزرسانیشده را دوباره بین همتایان خود توزیع کنید.
- --quick-set-ownertrust user-id value
- این دستور میزان اعتماد به مالک (ownertrust) یک کلید را تنظیم میکند و همچنین میتواند برای تنظیم پرچم غیرفعالسازی کلید استفاده شود. این نسخهٔ غیرتعاملی استفاده از "trust"، "disable" یا "enable" در منوی --key-edit است.
- --change-passphrase user-id
- --passwd user-id
- عبارت عبور کلید مخفی متعلق به گواهی مشخصشده به عنوان user-id را تغییر میدهد. این یک میانبر برای زیردستور passwd در منوی --edit-key است. هنگامی که همراه با گزینهٔ --dry-run استفاده شود، در عمل عبارت عبور را تغییر نمیدهد، بلکه بررسی میکند که آیا عبارت عبور فعلی درست است یا خیر.
گزینهها (OPTIONS)
gpg شامل گزینههای فراوانی برای کنترل دقیق رفتار و تغییر پیکربندی پیشفرض است.
گزینههای طولانی را میتوان در یک فایل گزینهها (بهطور پیشفرض "~/.gnupg/gpg.conf") قرار داد. نامهای کوتاه گزینهها کار نخواهند کرد - برای مثال، "armor" یک گزینه معتبر برای فایل گزینهها است، در حالی که "a" معتبر نیست. دو خط تیره را ننویسید، بلکه صرفاً نام گزینه و هرگونه آرگومان مورد نیاز را وارد کنید. خطوطی که علامت هش ('#') نخستین نویسه غیرفاصله آنها باشد نادیده گرفته میشوند. دستورات را نیز میتوان در این فایل قرار داد، اما معمولاً مفید نیست زیرا آن دستور با هر بار اجرای gpg بهطور خودکار اجرا خواهد شد.
لطفاً به یاد داشته باشید که تجزیه گزینهها به محض برخورد با یک غیرگزینه متوقف میشود؛ میتوانید صراحتاً با استفاده از گزینه ویژه -- تجزیه را متوقف کنید.
نحوه تغییر پیکربندی
این گزینهها برای تغییر پیکربندی استفاده میشوند و بیشتر آنها معمولاً در فایل گزینهها یافت میشوند.
- --default-key name
- از name به عنوان کلید پیشفرض برای امضا استفاده کنید. پیشنهاد میشود از یک اثرانگشت یا دستکم یک keyID طولانی برای name استفاده شود. اگر از این گزینه استفاده نشود، کلید پیشفرض نخستین کلید یافتشده در دستهکلید مخفی خواهد بود. توجه داشته باشید که -u یا --local-user بر این گزینه تقدم دارند و آن را لغو میکنند. این گزینه میتواند چندین بار مشخص شود. در این حالت، آخرین کلیدی که یک کلید مخفی برای آن در دسترس است استفاده میشود. اگر برای هیچیک از مقادیر مشخصشده کلید مخفی در دسترس نباشد، GnuPG پیام خطایی صادر نخواهد کرد بلکه طوری ادامه میدهد که گویی این گزینه داده نشده است.
- --default-recipient name
- در صورتی که از گزینهٔ --recipient استفاده نشده باشد، از name به عنوان گیرندهٔ پیشفرض استفاده کرده و دربارهٔ معتبر بودن آن سؤالی نمیپرسد. name نباید خالی باشد و پیشنهاد میشود برای name از یک اثر انگشت (fingerprint) استفاده شود.
- --default-recipient-self
- در صورتی که از گزینهٔ --recipient استفاده نشده باشد، از کلید پیشفرض به عنوان گیرندهٔ پیشفرض استفاده کرده و دربارهٔ معتبر بودن آن سؤالی نمیپرسد. کلید پیشفرض، اولین کلید از جاکلیدی مخفی (secret keyring) یا کلید تنظیمشده با --default-key است.
- --no-default-recipient
- گزینههای --default-recipient و --default-recipient-self را بازنشانی میکند. نباید در یک پروندهٔ گزینهها استفاده شود.
- -v, --verbose
- اطلاعات بیشتری را در حین پردازش ارائه میدهد. در صورت استفادهٔ دوباره، دادههای ورودی با جزئیات فهرست میشوند.
- --no-verbose
- سطح پرگویی (verbose) را به 0 بازنشانی میکند. نباید در یک پروندهٔ گزینهها استفاده شود.
- -q, --quiet
- تلاش میکند تا جای ممکن ساکت و کمحرف باشد. نباید در یک پروندهٔ گزینهها استفاده شود.
- --batch
- --no-batch
- استفاده از
حالت
دستهای (batch).
هرگز سؤالی
نمیپرسد و
اجازهٔ
اجرای
دستورات
تعاملی را
نمیدهد.
--no-batch این
گزینه را
غیرفعال
میکند.
توجه داشته
باشید که
حتی با
تعیین نام
پرونده در
خط فرمان، gpg
ممکن است
همچنان
نیاز به
خواندن از STDIN
داشته باشد
(بهویژه
اگر gpg تشخیص
دهد که
ورودی یک
امضای
جداگانه (detached
signature) است و هیچ
پروندهٔ
دادهای
مشخص نشده
است).
بنابراین
اگر
نمیخواهید
دادهها را
از طریق STDIN
وارد کنید،
باید STDIN را به
‘/dev/null’ متصل
کنید.
اکیداً توصیه میشود برای هرگونه استفادهٔ بدون نظارت (unattended) از gpg، از این گزینه در کنار گزینههای --status-fd و --with-colons استفاده شود. نباید در یک پروندهٔ گزینهها استفاده شود.
- --no-tty
- اطمینان حاصل میکند که TTY (ترمینال) هرگز برای هیچ خروجیای استفاده نشود. این گزینه در برخی شرایط لازم است، زیرا GnuPG گاهی اوقات حتی در صورت استفاده از --batch، هشدارهایی را در TTY چاپ میکند.
- --yes
- پاسخ بیشتر پرسشها را «بله» فرض میکند. نباید در یک پروندهٔ گزینهها استفاده شود.
- --no
- پاسخ بیشتر پرسشها را «خیر» فرض میکند. نباید در یک پروندهٔ گزینهها استفاده شود.
- --proc-all-sigs
- این گزینه رفتار گزینهٔ --batch را مبنی بر متوقف کردن اعتبارسنجی امضا در نخستین امضای نامعتبر، نادیده میگیرد و لغو میکند.
- --list-filter {select=expr}
- میتوان از یک فیلتر فهرست برای خروجی دادن کلیدهای مشخصی در طول دستورات فهرستبندی کلیدها استفاده کرد. برای نام ویژگیهای در دسترس، به توضیحات --import-filter مراجعه کنید.
- --list-options parameters
- این یک رشته با جداکنندهٔ فاصله یا ویرگول است که گزینههای مورد استفاده هنگام فهرستبندی کلیدها و امضاها (یعنی --list-keys، --check-signatures، --list-public-keys، --list-secret-keys و توابع --edit-key) را تعیین میکند. میتوان به ابتدای گزینهها یک no- (پس از دو خط تیره) افزود تا معنای معکوس بدهند. گزینهها عبارتند از:
- show-photos
- باعث میشود --list-keys، --check-signatures، --list-public-keys و --list-secret-keys هرگونه شناسهٔ تصویری متصل به کلید را نمایش دهند. پیشفرض no است. همچنین ببینید: --photo-viewer. با --with-colons کار نمیکند: برای روش مناسب دریافت دادههای تصویر برای اسکریپتها و سایر رابطهای کاربری (frontends)، --attribute-fd را ببینید.
- show-usage
- نمایش اطلاعات کاربرد برای کلیدها و زیرکلیدها در فهرست استاندارد کلیدها. این یک فهرست از حروف است که کاربرد مجاز برای یک کلید را مشخص میکند (E=رمزگذاری، S=امضا، C=صدور گواهی، A=احراز هویت). پیشفرض yes است.
- show-ownertrust
- نمایش مقدار ownertrust برای کلیدها در فهرست استاندارد کلیدها نیز. پیشفرض no است.
- show-policy-urls
- نمایش URLهای خطمشی در فهرستهای --check-signatures. پیشفرض no است.
- show-notations
- show-std-notations
- show-user-notations
- نمایش همه، استاندارد IETF، یا یادداشتهای امضای تعریفشده توسط کاربر در فهرستهای --check-signatures. پیشفرض no است.
- show-keyserver-urls
- نمایش هرگونه URL ترجیحی سرور کلید در فهرستهای --check-signatures. پیشفرض no است.
- show-uid-validity
- نمایش اعتبار محاسبهشده شناسههای کاربری در هنگام فهرست کردن کلیدها. پیشفرض yes است.
- show-unusable-uids
- نمایش شناسههای کاربری باطلشده و منقضیشده در فهرست کلیدها. پیشفرض no است.
- show-unusable-subkeys
- نمایش زیرکلیدهای باطلشده و منقضیشده در فهرست کلیدها. پیشفرض no است.
- show-unusable-sigs
- نمایش امضاهای کلید ایجادشده با استفاده از الگوریتمهای ضعیف یا پشتیبانینشده.
- show-keyring
- نمایش نام دستهکلید در بالای فهرست کلیدها برای نشان دادن اینکه یک کلید مشخص در کدام دستهکلید قرار دارد. پیشفرض no است.
- show-sig-expire
- نمایش تاریخ انقضای امضا (در صورت وجود) در هنگام فهرستبندیهای --check-signatures. پیشفرض no است.
- show-sig-subpackets
- گنجاندن زیربستههای امضا در فهرست کلید. این گزینه میتواند یک فهرست اختیاری از آرگومانها شامل زیربستههایی که باید فهرست شوند را بپذیرد. اگر هیچ آرگومانی داده نشود، تمام زیربستهها فهرست میشوند. پیشفرض no است. این گزینه تنها زمانی معنادار است که از --with-colons به همراه --check-signatures استفاده شود.
- show-only-fpr-mbox
- برای هر شناسه کاربری (user-id) که دارای یک نشانی ایمیل معتبر است، فقط اثر انگشت و به دنبال آن نشانی ایمیل چاپ شود.
- sort-sigs
- به همراه --list-sigs و --check-sigs، مرتبسازی امضاها بر اساس keyID و زمان ایجاد انجام میشود تا مشاهده تاریخچه این امضاها آسانتر شود. خودامضایی (self-signature) نیز پیش از سایر امضاها فهرست میشود. پیشفرض yes است. این گزینه در حالت -with-colons هیچ اثری ندارد.
- --verify-options parameters
- این یک رشته جداشده با فاصله یا کاما است که گزینههای مورد استفاده هنگام اعتبارسنجی امضاها را مشخص میکند. میتوان یک `no-' به ابتدای گزینهها اضافه کرد تا معنای معکوس پیدا کنند. گزینهها عبارتند از:
- show-photos
- نمایش هرگونه شناسه تصویری موجود روی کلیدی که امضا را صادر کرده است. پیشفرض no است. همچنین --photo-viewer را ببینید.
- show-policy-urls
- نمایش URLهای خطمشی در امضای در حال اعتبارسنجی. پیشفرض yes است.
- show-notations
- show-std-notations
- show-user-notations
- نمایش همه نشانهگذاریهای امضا، نشانهگذاریهای استاندارد IETF یا تعریفشده توسط کاربر در امضای در حال اعتبارسنجی. پیشفرض، استاندارد IETF است.
- show-keyserver-urls
- نمایش هرگونه URL کارساز کلید ترجیحی در امضای در حال اعتبارسنجی. پیشفرض yes است.
- show-uid-validity
- نمایش اعتبار محاسبهشده شناسههای کاربری مربوط به کلیدی که امضا را صادر کرده است. پیشفرض yes است.
- show-unusable-uids
- نمایش شناسههای کاربری باطلشده و منقضیشده در هنگام اعتبارسنجی امضا. پیشفرض no است.
- show-primary-uid-only
- تنها نمایش شناسه کاربری اصلی در طول اعتبارسنجی امضا. بدین معنا که تمام خطوط AKA و همچنین شناسههای عکسدار همراه با وضعیت اعتبارسنجی امضا نشان داده نمیشوند.
- --enable-large-rsa
- --disable-large-rsa
- فعال کردن ایجاد کلیدهای مخفی RSA تا اندازه 8192 بیت. نکته: 8192 بیت بیشتر از مقدار توصیهشده عمومی است. این کلیدهای بزرگ امنیت را به طور چشمگیری بهبود نمیبخشند، اما هزینه استفاده از آنها بیشتر است و امضاها و گواهیهای آنها نیز بزرگتر هستند. این گزینه تنها در صورتی در دسترس است که فایل دودویی با پشتیبانی large-secmem ساخته شده باشد.
- --enable-dsa2
- --disable-dsa2
- فعال کردن برش درهمسازی (hash truncation) برای همه کلیدهای DSA حتی برای کلیدهای قدیمی DSA تا 1024 بیت. این رفتار همچنین پیشفرض با --openpgp است. توجه داشته باشید که نسخههای قدیمیتر GnuPG نیز برای امکان تولید کلیدهای DSA بزرگتر از 1024 بیت به این پرچم نیاز داشتند.
- --photo-viewer string
- این خط
دستوری است
که باید
برای
مشاهده یک
شناسه
عکسدار
اجرا شود. "%i"
به نام
فایلی حاوی
تصویر
گسترش
مییابد. "%I"
نیز همین
کار را
انجام
میدهد، با
این تفاوت
که پس از
خروج
نمایشدهنده،
فایل حذف
نخواهد شد.
پرچمهای
دیگر
عبارتند از
"%k" برای
شناسه
کلید، "%K"
برای شناسه
کلید
طولانی، "%f"
برای
اثرانگشت
کلید، "%t"
برای پسوند
نوع تصویر
(مانند "jpg")،
"%T" برای نوع
MIME تصویر
(مانند "image/jpeg")،
"%v" برای
اعتبار
محاسبهشده
تکنویسهای
تصویر در
حال مشاهده
(مانند "f")،
"%V" برای
اعتبار
محاسبهشده
به صورت یک
رشته (مانند
"full")، "%U" برای
هش
کدگذاریشده
base32 از شناسه
کاربری، و
"%%" برای
علامت درصد
واقعی. اگر
هیچیک از %i
یا %I موجود
نباشند،
تصویر از
طریق ورودی
استاندارد
در اختیار
نمایشدهنده
قرار خواهد
گرفت.
در Unix نمایشدهنده پیشفرض xloadimage -fork -quiet -title 'KeyID 0x%k' STDIN است با بازگشت (fallback) به display -title 'KeyID 0x%k' %i و در نهایت به xdg-open %i. در Windows از !ShellExecute 400 %i استفاده میشود؛ در اینجا دستور یک فرادستور (meta command) برای استفاده از آن فراخوانی API به همراه زمان انتظار به میلیثانیه است که به نمایشدهنده زمان میدهد تا فایل موقت تصویر را قبل از اینکه gpg دوباره آن را حذف کند، بخواند. توجه داشته باشید که اگر برنامه نمایشدهنده تصویر شما امن نباشد، اجرای آن از طریق gpg آن را امن نمیکند.
- --exec-path string
- فهرستی از دایرکتوریها را برای جستجوی نمایشدهندههای عکس تعیین میکند. در صورت ارائه نشدن، نمایشدهندههای عکس از متغیر محیطی PATH استفاده میکنند.
- --keyring file
- افزودن file
به فهرست
کنونی
دستهکلیدها.
اگر file با یک
مدک (tilde) و یک
اسلش آغاز
شود،
اینها با
دایرکتوری
$HOME جایگزین
میشوند.
اگر نام
فایل شامل
اسلش
نباشد، فرض
میشود که
در
دایرکتوری
خانگی GnuPG
قرار دارد
("~/.gnupg" مگر
اینکه از --homedir
یا $GNUPGHOME
استفاده
شود).
توجه داشته باشید که این کار یک دستهکلید به فهرست کنونی اضافه میکند. اگر هدف استفاده از دستهکلید مشخصشده بهتنهایی باشد، از --keyring همراه با --no-default-keyring استفاده کنید.
اگر از گزینه --no-keyring استفاده شده باشد، هیچ دستهکلیدی اصلاً استفاده نخواهد شد.
توجه داشته باشید که اگر گزینه use-keyboxd در ‘common.conf’ فعال باشد، هیچ دستهکلیدی استفاده نمیشود و همه کلیدها توسط فرآیند keyboxd در پایگاه داده اختصاصی آن نگهداری میشوند.
- --primary-keyring file
- این گزینه گونهای از --keyring است و file را به عنوان دستهکلید عمومی اصلی تعیین میکند. این بدان معناست که کلیدهای تازه واردشده (از طریق --import یا سرور کلید --recv-from) به این دستهکلید منتقل خواهند شد.
- --secret-keyring file
- این یک گزینهٔ منسوخ است و نادیده گرفته میشود. تمام کلیدهای مخفی در دایرکتوری ‘private-keys-v1.d’ در زیر دایرکتوری خانگی GnuPG ذخیره میشوند.
- --trustdb-name file
- استفاده از file به جای trustdb پیشفرض. اگر file با یک مدک (tilde) و یک اسلش آغاز شود، این موارد با دایرکتوری $HOME جایگزین میشوند. اگر نام فایل شامل اسلش نباشد، فرض میشود که در دایرکتوری خانگی GnuPG قرار دارد (در صورتی که از --homedir یا $GNUPGHOME استفاده نشده باشد، ‘~/.gnupg’).
- --homedir dir
- تنظیم نام
دایرکتوری
خانگی به dir.
در صورت عدم
استفاده از
این گزینه،
دایرکتوری
خانگی به
طور
پیشفرض
‘~/.gnupg’ خواهد
بود. این
گزینه تنها
زمانی
شناسایی
میشود که
در خط فرمان
مشخص شده
باشد.
همچنین بر
هر
دایرکتوری
خانگی
تعیینشده
از طریق
متغیر
محیطی ‘GNUPGHOME’
یا (در
سیستمهای
ویندوز) از
طریق مدخل
رجیستری
HKCU\Software\GNU\GnuPG:HomeDir
اولویت
دارد.
در سیستمهای ویندوز امکان نصب GnuPG به عنوان یک برنامهٔ پرتابل (قابل حمل) وجود دارد. در این حالت تنها این گزینهٔ خط فرمان در نظر گرفته میشود و تمام روشهای دیگر برای تنظیم دایرکتوری خانگی نادیده گرفته میشوند.
- --display-charset name
- تنظیم نام مجموعه نویسههای محلی. این گزینه برای تبدیل برخی رشتههای اطلاعاتی مانند شناسههای کاربری به کدگذاری مناسب UTF-8 استفاده میشود. توجه داشته باشید که این موضوع هیچ ارتباطی با مجموعه نویسههای دادههایی که باید رمزگذاری یا امضا شوند ندارد؛ GnuPG دادههای ارائهشده توسط کاربر را بازکدگذاری نمیکند. در صورت عدم استفاده از این گزینه، مجموعه نویسههای پیشفرض بر اساس محلیسازی (locale) فعلی تعیین میشود. سطح پرگویی ۳ مجموعه نویسهٔ انتخابشده را نمایش میدهد. این گزینه نباید در ویندوز استفاده شود. مقادیر معتبر برای name عبارتند از:
- iso-8859-1
- این مجموعه Latin 1 است.
- iso-8859-2
- مجموعه Latin 2.
- iso-8859-15
- این مورد در حال حاضر یک نام مستعار برای مجموعه Latin 1 است.
- koi8-r
- مجموعه معمول روسی (RFC-1489).
- utf-8
- دور زدن تمام تبدیلها و فرض بر این که سیستمعامل از کدگذاری بومی UTF-8 استفاده میکند.
- --utf8-strings
- --no-utf8-strings
- فرض بر این
که
آرگومانهای
خط فرمان به
صورت
رشتههای UTF-8
ارائه
شدهاند.
حالت
پیشفرض
(--no-utf8-strings) این
است که فرض
شود
آرگومانها
با مجموعه
نویسههای
مشخصشده
توسط --display-charset
کدگذاری
شدهاند.
این
گزینهها
بر تمامی
آرگومانهای
بعدی تأثیر
میگذارند.
هر دو گزینه
میتوانند
چندین بار
استفاده
شوند. این
گزینه
نباید در
فایل
گزینهها (options
file) استفاده
شود.
این گزینه در ویندوز هیچ اثری ندارد. در آنجا کدگذاری داخلی مورد استفادهٔ UTF-8 برای ورودی و خروجی کنسول تبدیل میشود. آرگومانهای خط فرمان به صورت Unicode مورد انتظار بوده و به UTF-8 تبدیل میشوند. بنابراین هنگام فراخوانی این برنامه از برنامهای دیگر، اطمینان حاصل کنید که از نسخهٔ Unicode تابع CreateProcess استفاده میکنید.
- --options file
- خواندن گزینهها از file و تلاش نکردن برای خواندن آنها از فایل گزینههای پیشفرض در دایرکتوری خانگی (نگاه کنید به --homedir). این گزینه در صورتی که درون یک فایل گزینهها استفاده شود، نادیده گرفته میشود.
- --no-options
- میانبری برای --options /dev/null است. این گزینه پیش از هرگونه تلاش برای باز کردن پروندهٔ گزینهها تشخیص داده میشود. استفاده از این گزینه همچنین از ایجاد دایرکتوری خانگی ‘~/.gnupg’ جلوگیری میکند.
- -z n
- --compress-level n
- --bzip2-compress-level n
- --no-compress
- تنظیم سطح
فشردهسازی
روی n برای
الگوریتمهای
فشردهسازی
ZIP و ZLIB. حالت
پیشفرض
استفاده از
سطح
فشردهسازی
پیشفرض zlib
است
(معمولاً ۶).
--bzip2-compress-level سطح
فشردهسازی
را برای
الگوریتم
فشردهسازی
BZIP2 تنظیم
میکند (که
پیشفرض آن
نیز ۶ است).
این گزینه
با --compress-level
متفاوت است
زیرا BZIP2 به
ازای هر سطح
فشردهسازی
اضافی،
مقدار
قابلتوجهی
حافظه مصرف
میکند.
گزینهٔ -z هر دو را تنظیم میکند. مقدار 0 برای n فشردهسازی را غیرفعال میکند. مقدار -1 فشردهسازی را با استفاده از سطح پیشفرض اجباری میکند. گزینهٔ --no-compress معادل -z0 است.
بهجز در دستور --store، فشردهسازی همیشه استفاده میشود مگر اینکه gpg تشخیص دهد که ورودی از قبل فشرده شده است. برای جلوگیری از استفاده از فشردهسازی، از -z0 یا --no-compress استفاده کنید؛ برای اجبار به فشردهسازی، از -z-1 یا گزینهٔ z با سطح فشردهسازی دیگری غیر از حالت پیشفرض (که با -1 مشخص میشود) استفاده نمایید. توجه داشته باشید که این لغوِ تشخیص پیشفرض تنها با z کار میکند و نه با شکل بلند این گزینه.
- --bzip2-decompress-lowmem
- استفاده از روشی متفاوت برای خارج کردن پروندههای فشردهشده با BZIP2 از حالت فشرده. این روش جایگزین کمی بیشتر از نصف حافظه را مصرف میکند، اما با نصف سرعت نیز اجرا میشود. این قابلیت در شرایط کمبود شدید حافظه، زمانی که پرونده در ابتدا با یک --bzip2-compress-level بالا فشرده شده باشد، مفید است.
- --mangle-dos-filenames
- --no-mangle-dos-filenames
- نسخههای قدیمیتر ویندوز نمیتوانند نام پروندههای دارای بیش از یک نقطه را مدیریت کنند. --mangle-dos-filenames باعث میشود GnuPG برای جلوگیری از این مشکل، پسوند نام پروندهٔ خروجی را جایگزین کند (بهجای افزودن به آن). این گزینه بهطور پیشفرض غیرفعال است و روی پلتفرمهای غیر ویندوزی هیچ اثری ندارد.
- --ask-cert-level
- --no-ask-cert-level
- هنگام ایجاد امضای کلید، سطح گواهی (تصدیق) درخواست میشود. اگر این گزینه مشخص نشود، سطح گواهیِ مورد استفاده از طریق --default-cert-level تنظیم میگردد. برای اطلاعات بیشتر در مورد سطوح خاص و نحوهٔ استفاده از آنها به --default-cert-level مراجعه کنید. گزینهٔ --no-ask-cert-level این امکان را غیرفعال میکند. پیشفرض این گزینه no است.
- --default-cert-level n
- سطح
پیشفرض
مورد
استفاده
برای بررسی
هنگام
امضای یک
کلید.
0 به این معنی است که شما هیچ ادعای خاصی در مورد میزان دقت در بررسی کلید ندارید.
1 به این معنی است که شما باور دارید کلید متعلق به همان شخصی است که ادعای مالکیت آن را دارد، اما نتوانستهاید یا اصلاً کلید را راستیآزمایی نکردهاید. این برای راستیآزمایی یک «شخصیت فرضی» (persona) مفید است، جایی که کلید یک کاربر با نام مستعار را امضا میکنید.
2 به این معنی است که شما کلید را بهطور سطحی راستیآزمایی کردهاید. برای مثال، این میتواند به این معنا باشد که اثر انگشت کلید را بررسی کرده و شناسهٔ کاربر (user ID) روی کلید را با یک مدرک شناسایی عکسدار مطابقت دادهاید.
3 به این معنی است که شما کلید را بهطور گسترده و دقیق راستیآزمایی کردهاید. برای مثال، این میتواند به این معنا باشد که اثر انگشت کلید را بهصورت حضوری با مالک کلید بررسی کردهاید، و با استفاده از مدرکی عکسدار که جعل آن دشوار است (مانند گذرنامه) بررسی کردهاید که نام مالک کلید با نام موجود در شناسهٔ کاربر (user ID) روی کلید مطابقت داشته باشد، و در نهایت (از طریق تبادل ایمیل) تأیید کردهاید که نشانی ایمیل روی کلید متعلق به مالک کلید است.
توجه داشته باشید که مثالهای ارائهشده در بالا برای سطوح 2 و 3 صرفاً مثال هستند. در نهایت، این به خود شما بستگی دارد که تصمیم بگیرید مفاهیم «سطحی» و «گسترده» برای شما دقیقاً چه معنایی دارند.
پیشفرض این گزینه 0 است (بدون ادعای خاص).
- --min-cert-level
- هنگام ساخت پایگاهدادهٔ اعتماد، هر امضایی با سطح گواهی پایینتر از این مقدار نامعتبر در نظر گرفته میشود. مقدار پیشفرض ۲ است که امضاهای سطح ۱ را نادیده میگیرد. توجه داشته باشید که امضاهای سطح ۰ با عنوان «بدون ادعای خاص» همیشه پذیرفته میشوند.
- --trusted-key long key ID or fingerprint
- فرض میکند کلید مشخصشده (که باید به عنوان اثرانگشت ارائه شود) به اندازهٔ یکی از کلیدهای مخفی خودتان قابل اعتماد است. این گزینه زمانی مفید است که نمیخواهید کلیدهای مخفی خود (یا یکی از آنها) را آنلاین نگه دارید، اما همچنان مایلید بتوانید اعتبار کلید یک گیرنده یا امضاکنندهٔ مشخص را بررسی کنید. اگر کلید ارائهشده بهصورت محلی در دسترس نباشد اما یک کارساز کلید LDAP پیکربندی شده باشد، کلید ناموجود از آن کارساز وارد میشود. مقدار «none» صراحتاً مجاز است تا میان استفاده از هر گزینهٔ trusted-key و عدم استفاده از این گزینه بهطور کامل (مثلاً به دلیل گزینهٔ --no-options) تمایز قائل شد.
- --add-desig-revoker [sensitive:]fingerprint
- کلید مشخصشده با fingerprint را به عنوان یک باطلکنندهٔ تعیینشده (designated revoker) به کلیدهای تازه ایجادشده اضافه میکند. اگر اثرانگشت دارای پیشوند کلیدواژهٔ «sensitive:» باشد، این اطلاعات معمولاً همراه با کلید صادر نمیشود. این گزینه میتواند چندین بار برای افزودن بیش از یک باطلکنندهٔ تعیینشده مشخص شود. اگر به جای اثرانگشت از کلیدواژهٔ «clear» استفاده شود، تمام اثرانگشتهای مشخصشدهٔ قبلی دور ریخته میشوند. باطلکنندههای تعیینشده روی کلید به عنوان غیرقابلابطال علامتگذاری میشوند. توجه داشته باشید که باطلکنندهٔ تعیینشدهای که با استفاده از یک پروندهٔ پارامتر مشخص شده باشد نیز به کلید اضافه خواهد شد.
- --default-new-key-adsk fingerprint
- زیرکلید مشخصشده توسط fingerprint را به عنوان یک زیرکلید رمزگشایی اضافی (ADSK) به کلیدهای تازه ایجادشده اضافه میکند. این گزینه میتواند چندین بار برای افزودن بیش از یک ADSK مشخص شود. همچنین میتوان چندین اثرانگشت را که با فاصله یا ویرگول جدا شدهاند به عنوان مقدار به این گزینه داد. اگر به جای اثرانگشت از کلیدواژهٔ «clear» استفاده شود، تمام اثرانگشتهای مشخصشدهٔ قبلی دور ریخته میشوند (جهت لغو گزینههای ارائهشده در یک پروندهٔ پیکربندی مفید است). انتظار میرود اثرانگشت یک زیرکلید را مشخص کند و نیازی به علامت تعجب به عنوان پسوند ندارد؛ این اثرانگشت باید در قالب فشرده (۴۰ یا ۶۴ رقم هگزادسیمال بدون هیچ فاصلهای) ارائه شود.
- --trust-model {pgp|classic|tofu|tofu+pgp|direct|always|auto}
- مشخص میکند که GnuPG از چه مدل اعتمادی باید پیروی کند. مدلها عبارتند از:
- pgp
- این همان شبکهٔ اعتماد (Web of Trust) ترکیبشده با امضاهای اعتماد است که در PGP 5.x و نسخههای پس از آن استفاده شده است. این مدل، مدل پیشفرض اعتماد هنگام ایجاد یک پایگاهدادهٔ اعتماد جدید است.
- classic
- این همان شبکهٔ اعتماد استاندارد است که توسط PGP 2 معرفی شد.
- tofu
-
عبارت TOFU سرنام Trust On First Use (اعتماد در نخستین استفاده) است. در این مدل آزمایشی اعتماد، نخستین باری که یک کلید دیده میشود، به حافظه سپرده میشود. اگر بعداً کلید دیگری با شناسهٔ کاربری حاوی همان نشانی رایانامه دیده شود، هر دو کلید به عنوان مشکوک علامتگذاری میشوند. در این حالت، دفعهٔ بعدی که هر یک از آنها استفاده شود، هشداری نمایش داده میشود که مغایرت و علت احتمالی رخ دادن آن را توضیح میدهد (یا کاربر یک کلید جدید تولید کرده و موفق به امضای متقابل کلیدهای قدیمی و جدید نشده است، یا کلید جعلی است، یا یک حملهٔ مرد میانی در حال وقوع است)، و از کاربر درخواست میشود تا اعتبار کلید مورد نظر را بهطور دستی تأیید کند.
از آنجا که یک مهاجم بالقوه قادر است نشانی رایانامه را کنترل کند و در نتیجه با استفاده از نشانی رایانامهای که از نظر ظاهری مشابه نشانی یک رایانامهٔ مورد اعتماد است الگوریتم تشخیص مغایرت را دور بزند، هر زمان که پیامی بازبینی و تأیید اعتبار میشود، آماری در مورد تعداد پیامهای امضاشده با آن کلید نمایش داده میشود. به این ترتیب، کاربر میتواند بهسادگی حملات ناشی از کلیدهای جعلی برای طرفهای مکاتبهٔ همیشگی را شناسایی کند.
در مقایسه با شبکهٔ اعتماد، مدل TOFU ضمانتهای امنیتی به مراتب ضعیفتری ارائه میدهد. بهویژه، TOFU تنها به اطمینان از یکپارچگی و ثبات کمک میکند (یعنی اینکه پیوند میان کلید و نشانی رایانامه تغییر نکند). مزیت عمدهٔ TOFU این است که برای استفادهٔ درست به نگهداری اندکی نیاز دارد. برای استفادهٔ مناسب از شبکهٔ اعتماد، باید فعالانه کلیدها را امضا کرده و کاربران را به عنوان معرفیکنندگان مورد اعتماد (trusted introducers) علامتگذاری کنید. این یک فرایند زمانبر است و شواهد تجربی نشان میدهد که حتی کاربران حساس به مسائل امنیتی نیز بهندرت وقت کافی برای انجام دقیق این کار اختصاص میدهند و در عوض به یک فرایند موردی TOFU تکیه میکنند.
در مدل TOFU، سیاستها با پیوندهای میان کلیدها و نشانیهای رایانامه (که از شناسههای کاربری استخراج و نرمالسازی شدهاند) مرتبط هستند. پنج سیاست وجود دارد که میتوان آنها را بهطور دستی با استفاده از گزینهٔ --tofu-policy تنظیم کرد. سیاست پیشفرض را میتوان با استفاده از گزینهٔ --tofu-default-policy تعیین نمود.
سیاستهای TOFU عبارتند از: auto، good، unknown، bad و ask. سیاست auto بهطور پیشفرض استفاده میشود (مگر اینکه توسط --tofu-default-policy لغو شود) و یک پیوند را به عنوان اندکی مورد اعتماد (marginally trusted) علامتگذاری میکند. سیاستهای good، unknown و bad به ترتیب یک پیوند را کاملاً مورد اعتماد، دارای اعتماد نامشخص یا فاقد هرگونه اعتماد مشخص میکنند. سیاست unknown برای استفاده از TOFU صرفاً جهت تشخیص مغایرتها مفید است، بدون آنکه هرگز اعتماد مثبتی به یک پیوند اختصاص یابد. سیاست نهایی، ask، از کاربر درخواست میکند تا میزان اعتماد به پیوند را مشخص کند. اگر حالت دستهای (batch mode) فعال باشد (یا ورودی در زمینهٔ فعلی نامناسب باشد)، از کاربر سؤالی پرسیده نمیشود و سطح اعتماد undefined بازگردانده میشود.
- tofu+pgp
- این مدل
اعتماد
آزمایشی، TOFU
را با شبکه
اعتماد (Web of Trust)
ترکیب
میکند. این
کار با
محاسبه سطح
اعتماد
برای هر مدل
و سپس
انتخاب
بیشترین
سطح اعتماد
انجام
میشود، که
در آن سطوح
اعتماد به
ترتیب زیر
مرتب
شدهاند: unknown <
undefined < marginal < fully < ultimate < expired <
never.
با تنظیم --tofu-default-policy=unknown، میتوان از این مدل برای پیادهسازی شبکه اعتماد به همراه الگوریتم تشخیص مغایرت TOFU استفاده کرد، اما بدون تخصیص مقادیر اعتماد مثبت که برخی از کاربرانِ حساس به امنیت آن را نمیپسندند.
- direct
- اعتبار کلید مستقیماً توسط کاربر تعیین میشود و از طریق شبکه اعتماد محاسبه نمیگردد. این مدل صرفاً بر اساس کلید است و شناسه کاربران (user IDs) را از هم تفکیک نمیکند. توجه داشته باشید که هنگام تغییر به یک مدل اعتماد دیگر، مقادیر اعتماد تخصیصیافته به یک کلید به مقادیر ownertrust تبدیل میشوند که نشاندهنده میزان اعتماد شما به مالک کلید برای امضای کلیدهای دیگر نیز هست.
- always
- اعتبارسنجی کلید را نادیده گرفته و فرض میکند که کلیدهای استفادهشده همیشه کاملاً معتبر هستند. به طور کلی از این مدل استفاده نخواهید کرد مگر اینکه از یک سازوکار اعتبارسنجی خارجی استفاده کنید. این گزینه همچنین برچسب "[uncertain]" را که هنگام بررسی امضاها در صورت نبود مدرکی مبنی بر انتساب شناسه کاربر به کلید چاپ میشود، پنهان میکند. توجه داشته باشید که این مدل اعتماد همچنان اجازه استفاده از کلیدهای منقضیشده، باطلشده یا غیرفعال را نمیدهد.
- auto
- مدل اعتماد را بر اساس آنچه در پایگاهداده اعتماد داخلی مشخص شده است، انتخاب میکند. اگر چنین پایگاهدادهای از قبل وجود داشته باشد، این مدل پیشفرض خواهد بود. توجه داشته باشید که مدل اعتماد tofu در اینجا در نظر گرفته نمیشود و باید صراحتاً فعال شود.
- --always-trust
- مشابه با --trust-model always است.
- --assert-signer fpr_or_file
- این گزینه بررسی میکند که آیا حداقل یک امضای معتبر روی یک فایل با کلید مشخصشده ایجاد شده است یا خیر. کلید یا به صورت یک اثرانگشت (fingerprint) یا فایلی حاوی فهرستی از اثرانگشتها مشخص میشود. اثرانگشت باید در قالب فشرده (بدون دونقطه یا فاصله در بین آن) مشخص یا فهرست شود. این گزینه را میتوان چندین بار مشخص کرد و هر اثرانگشت هم در برابر کلید امضاکننده و هم کلید اصلی متناظر با آن بررسی میشود. اگر fpr_or_file یک فایل را مشخص کند، خطوط خالی و همچنین تمام خطوطی که با علامت هش (#) شروع میشوند نادیده گرفته خواهند شد. با این گزینه تضمین میشود که gpg با کد خروج 0 پایان مییابد اگر و تنها اگر یک امضا یافت شود، معتبر باشد، و کلید با یکی از اثرانگشتهای ارائهشده توسط این گزینه مطابقت داشته باشد.
- --assert-pubkey-algo algolist
- در حین
تأیید
امضای
داده، این
گزینه
بررسی
میکند که
آیا
الگوریتم
کلید عمومی
استفادهشده
با
الگوریتمهای
ارائهشده
توسط algolist
مطابقت
دارد یا
خیر. این
گزینه را
میتوان
چندین بار
مشخص کرد تا
الگوریتمهای
بیشتری به
فهرست
الحاق
شوند؛
جداکننده
اقلام
فهرست،
کاما یا
فاصله است.
نامهای الگوریتم ارائهشده در فهرست میتوانند نامهای دقیق مانند "ed25519" همراه با علامت مساوی اختیاری در ابتدا باشند، یا با ">"، ">="، "<="، یا "<" پیشوندگذاری شده باشند. این عملگر پیشوندی بر روی بخش عددیِ نام الگوریتم اعمال میشود؛ به عنوان مثال 2048 در "rsa2048" یا 384 در "brainpoolP384r1". اگر کاراکترهای غیرعددی ابتدای نام مطابقت داشته باشند، از عملگر پیشوندی برای مقایسه بخش عددی استفاده میشود و در این حالت، پسوند انتهایی نادیده گرفته میشود. برای مثال، یک فهرست الگوریتم مانند ">rsa3000, >=brainpool384r1, =ed25519" امضاهای RSA با بیش از 3000 بیت، منحنیهای Brainpool با اندازه 384 و 512، و الگوریتم ed25519 را مجاز میداند.
با این گزینه تضمین میشود که gpg (و همچنین gpgv) با کد خروج 0 پایان مییابد اگر و تنها اگر تمام امضاهای معتبر روی دادهها با استفاده از یک الگوریتم منطبق از فهرست ارائهشده ایجاد شده باشند.
- --auto-key-locate mechanisms
- --no-auto-key-locate
- با استفاده از این گزینه، GnuPG میتواند در صورت نیاز به طور خودکار کلیدها را مکانیابی و بازیابی کند. این امر هنگام رمزنگاری برای یک نشانی ایمیل (به شکل "user@example.com") و در شرایطی که هیچ کلیدی برای "user@example.com" در جاکلیدی محلی وجود ندارد، رخ میدهد. این گزینه هر تعداد از سازوکارهای ذکرشده در زیر را، به ترتیبی که باید آزمایش شوند، میپذیرد. به جای فهرست کردن سازوکارها به عنوان آرگومانهای جداشده با کاما، این گزینه را میتوان چندین بار نیز مشخص کرد تا سازوکارهای بیشتری اضافه شوند. گزینه --no-auto-key-locate یا سازوکار "clear" این فهرست را بازنشانی میکند. مقدار پیشفرض "local,wkd" است.
- cert
- یافتن کلید با استفاده از DNS CERT، همانطور که در RFC-4398 مشخص شده است.
- dane
- یافتن کلید با استفاده از DANE، همانطور که در draft-ietf-dane-openpgpkey-05.txt مشخص شده است.
- wkd
- یافتن کلید با استفاده از پروتکل Web Key Directory.
- ldap
- یافتن کلید با استفاده از کارگزارهای پیکربندیشدهٔ LDAP. این روش مشابه سازوکار keyserver است اما همیشه فقط از کارگزارهای LDAP استفاده میکند.
- ntds
- یافتن کلید با استفاده از Active Directory (فقط ویندوز). این روش همچنین به کاربر امکان میدهد با استفاده از دستور --locate-external-key بر اساس اثرانگشت جستوجو کند. توجه داشته باشید که این سازوکار در واقع میانبری برای سازوکار ‘ldap’ است که تنها از "ldap:///" به عنوان keyserver استفاده میکند.
- keyserver
- یافتن کلید با استفاده از یک keyserver. این روش همچنین در صورتی که هر یک از keyserverهای پیکربندیشده یک کارگزار LDAP باشد، امکان جستوجو بر اساس اثرانگشت را با استفاده از دستور --locate-external-key فراهم میکند.
- keyserver-URL
- علاوه بر این، یک URL مربوط به keyserver، همانگونه که در پیکربندی dirmngr به کار رفته است، میتواند در اینجا برای پرسوجوی آن keyserver خاص استفاده شود. این روش نیز در صورتی که URL یک کارگزار LDAP را مشخص کند، امکان جستوجو بر اساس اثرانگشت را با استفاده از دستور --locate-external-key فراهم میکند.
- local
- یافتن کلید با استفاده از دستهکلیدهای محلی. این سازوکار به کاربر امکان میدهد ترتیب انجام جستوجوی کلید محلی را انتخاب کند. بنابراین استفاده از ‘--auto-key-locate local’ همانند --no-auto-key-locate است.
- nodefault
- این پرچم، جستوجوی استاندارد کلید محلی را که پیش از آزمودن هر یک از سازوکارهای تعریفشده توسط --auto-key-locate انجام میشود، غیرفعال میکند. جایگاه این سازوکار در فهرست اهمیتی ندارد. در صورتی که از local نیز استفاده شده باشد، نیازی به این مورد نیست.
- clear
- پاک کردن تمام سازوکارهای تعریفشده. این گزینه برای بازنویسی سازوکارهای دادهشده در یک پروندهٔ پیکربندی مفید است. توجه داشته باشید که nodefault در mechanisms نیز پاک خواهد شد، مگر اینکه پس از clear آورده شود.
- --auto-key-import
- --no-auto-key-import
- این یک
سازوکار
برونخط
برای
دریافت
کلید مفقود
جهت بررسی
امضا و
رمزنگاریهای
بعدی برای
این کلید
است. اگر
این گزینه
فعال باشد و
یک امضا
شامل یک
کلید
تعبیهشده
باشد، آن
کلید برای
بررسی امضا
به کار
میرود و در
صورت
موفقیتآمیز
بودن
بررسی،
کلید وارد
میشود.
پیشفرض
--no-auto-key-import است.
در سمت فرستنده (امضاکننده)، باید از گزینهٔ --include-key-block استفاده شود تا بخش عمومی کلید امضاکننده به عنوان “Key Block subpacket” درون امضا قرار گیرد.
- --auto-key-retrieve
- --no-auto-key-retrieve
- این
گزینهها
دریافت
خودکار
کلیدها از
یک keyserver را
هنگام
بررسی
امضاهایی
که توسط
کلیدهای
ناموجود در
دستهکلید
محلی ایجاد
شدهاند،
فعال یا
غیرفعال
میکنند.
پیشفرض
--no-auto-key-retrieve است.
ترتیب روشهای آزمودهشده برای جستوجوی کلید به شرح زیر است:
1. اگر گزینهٔ --auto-key-import تنظیم شده باشد و امضا شامل یک کلید تعبیهشده باشد، آن کلید برای بررسی امضا استفاده میشود و در صورت موفقیت بررسی، آن کلید وارد میگردد.
2. اگر یک keyserver ترجیحی در امضا مشخص شده باشد و گزینهٔ honor-keyserver-url فعال باشد (که حالت پیشفرض نیست)، آن keyserver آزموده میشود. توجه داشته باشید که ایجادکنندهٔ امضا از گزینهٔ --sig-keyserver-url برای تعیین keyserver ترجیحی جهت امضاهای داده استفاده میکند.
3. اگر UID امضاکننده (Signer's UID) در امضا تنظیم شده باشد (مثلاً با استفاده از --sender هنگام ایجاد امضا)، یک جستوجوی Web Key Directory (WKD) انجام میشود. این پیکربندی پیشفرض است اما با حذف WKD از فهرست auto-key-locate یا با استفاده از گزینهٔ --disable-signer-uid میتوان آن را غیرفعال کرد.
4. اگر هرگونه keyserver پیکربندی شده باشد و اثرانگشت صادرکننده (Issuer Fingerprint) بخشی از امضا باشد (از GnuPG 2.1.16 به بعد)، keyserverهای پیکربندیشده آزموده میشوند.
توجه داشته باشید که این گزینه رفتاری شبیه به "web bug" را ممکن میسازد. گردانندگان keyserver یا Web Key Directory میتوانند ببینند که شما چه کلیدهایی را درخواست میکنید، بنابراین با ارسال پیامی به شما که با یک کلید کاملاً جدید امضا شده است (که طبیعتاً آن را در دستهکلید محلی خود نخواهید داشت)، گرداننده میتواند هم نشانی IP شما و هم زمان بررسی امضا توسط شما را متوجه شود.
- --keyid-format {none|short|0xshort|long|0xlong}
- چگونگی نمایش شناسههای کلید را تعیین میکند. مقدار "none" شناسهٔ کلید را اصلاً نشان نمیدهد، اما اثرانگشت را در یک سطر جداگانه نمایش میدهد. مقدار "short" همان شناسهٔ کلید سنتی ۸ نویسهای است. مقدار "long" شناسهٔ کلید دقیقتر (اما با راحتی کمتر) ۱۶ نویسهای است. افزودن یک "0x" به هر کدام باعث درج "0x" در ابتدای شناسهٔ کلید میشود، مانند 0x99242560. توجه داشته باشید در صورت استفاده از گزینهٔ --with-colons، این گزینه نادیده گرفته میشود.
- --keyserver name
- این گزینه
منسوخ شده
است - لطفاً
به جای آن
از --keyserver در
‘dirmngr.conf’
استفاده
کنید.
از name به عنوان سرور کلید خود استفاده کنید. این سروری است که گزینههای --receive-keys، --send-keys و --search-keys برای دریافت کلیدها از آن، ارسال کلیدها به آن و جستجوی کلیدها در آن، با آن ارتباط برقرار خواهند کرد. قالب name یک URI است: `scheme:[//]keyservername[:port]' طرحواره (scheme) نوع سرور کلید است: "hkp"/"hkps" برای سرورهای کلید HTTP (یا سازگار با آن) یا "ldap"/"ldaps" برای سرورهای کلید LDAP. توجه داشته باشید که ممکن است در نصب خاص شما از GnuPG انواع دیگری از سرور کلید نیز در دسترس باشد. طرحوارههای سرور کلید به کوچک و بزرگی حروف حساس نیستند.
بیشتر سرورهای کلید با یکدیگر همگامسازی میشوند، بنابراین معمولاً نیازی به ارسال کلیدها به بیش از یک سرور نیست. سرور کلید hkp://keys.gnupg.net از سامانه نام دامنه نوبتگردشی (round robin DNS) استفاده میکند تا هر بار که از آن استفاده میکنید، سرور کلید متفاوتی را ارائه دهد.
- --keyserver-options {name=value}
- این یک رشتهٔ جداشده با فاصله یا ویرگول است که گزینههای سرور کلید را مشخص میکند. میتوان پیشوند `no-' را به گزینهها اضافه کرد تا معنای معکوس بدهند. همچنین میتوان از import-options یا export-options معتبر در اینجا استفاده کرد تا هنگام وارد کردن (--recv-key) یا صادر کردن (--send-key) یک کلید از یک سرور کلید اعمال شوند. اگرچه همهٔ گزینهها برای تمام انواع سرورهای کلید در دسترس نیستند، برخی از گزینههای رایج عبارتند از:
- include-revoked
- هنگام جستجوی یک کلید با --search-keys، کلیدهایی را که در سرور کلید به عنوان باطلشده (revoked) علامتگذاری شدهاند نیز شامل شود. توجه داشته باشید که همهٔ سرورهای کلید بین کلیدهای باطلشده و باطلنشده تفاوت قائل نمیشوند، و برای چنین سرورهایی این گزینه بیمعنی است. همچنین توجه داشته باشید که بیشتر سرورهای کلید تأیید رمزنگاریشدهای برای ابطال کلیدها ندارند، بنابراین غیرفعال کردن این گزینه ممکن است منجر به نادیده گرفتن کلیدهایی شود که به نادرستی به عنوان باطلشده علامت خوردهاند.
- include-disabled
- هنگام جستجوی یک کلید با --search-keys، کلیدهایی را که در سرور کلید به عنوان غیرفعال (disabled) علامتگذاری شدهاند نیز شامل شود. توجه داشته باشید که این گزینه با سرورهای کلید HKP استفاده نمیشود.
- auto-key-retrieve
- این یک نام مستعار منسوخشده برای گزینهٔ auto-key-retrieve است. لطفاً از آن استفاده نکنید؛ در نسخههای آینده حذف خواهد شد..
- honor-keyserver-url
- هنگام استفاده از --refresh-keys، اگر کلید مورد نظر دارای URL سرور کلید ترجیحی باشد، از آن سرور کلید ترجیحی برای تازهسازی کلید استفاده میکند. علاوه بر این، اگر auto-key-retrieve تنظیم شده باشد و امضایی که در حال اعتبارسنجی است دارای URL سرور کلید ترجیحی باشد، از آن سرور کلید ترجیحی برای واکشی کلید استفاده میشود. توجه داشته باشید که این گزینه یک "web bug" (ردیاب وب) ایجاد میکند: سازندهٔ کلید میتواند ببیند چه زمانی کلید تازهسازی شده است. بنابراین این گزینه به صورت پیشفرض فعال نیست.
- include-subkeys
- هنگام دریافت یک کلید، زیرکلیدها را به عنوان اهداف احتمالی شامل شود. توجه داشته باشید که این گزینه با سرورهای کلید HKP استفاده نمیشود، زیرا آنها از بازیابی کلیدها بر اساس شناسهٔ زیرکلید پشتیبانی نمیکنند.
- only-pubkeys
- اجازهٔ وارد کردن کلیدهای مخفی (secret keys) را نمیدهد.
- timeout
- http-proxy=value
- verbose
- debug
- check-cert
- ca-cert-file
- این گزینهها از GnuPG 2.1 به بعد دیگر کاربردی ندارند. در عوض از گزینههای پیکربندی dirmngr استفاده کنید.
فهرست پیشفرض گزینهها عبارت است از: "self-sigs-only, repair-keys, repair-pks-subkey-bug, export-attributes". با این حال، اگر منبع واقعی مورد استفاده یک سرور LDAP باشد، "no-self-sigs-only" فرض میشود مگر اینکه "self-sigs-only" به صراحت پیکربندی شده باشد.
- --completes-needed n
- تعداد کاربران کاملاً مورد اعتماد برای معرفی یک امضاکننده کلید جدید (پیشفرض ۱ است).
- --marginals-needed n
- تعداد کاربران با اعتماد نسبی برای معرفی یک امضاکننده کلید جدید (پیشفرض ۳ است).
- --tofu-default-policy {auto|good|unknown|bad|ask}
- سیاست پیشفرض TOFU (پیشفرض auto است). برای اطلاعات بیشتر درباره مفهوم این گزینه، ببینید: [trust-model-tofu].
- --max-cert-depth n
- حداکثر عمق یک زنجیره گواهی (پیشفرض ۵ است).
- --no-sig-cache
- وضعیت اعتبارسنجی امضاهای کلید را کَش نکنید. کَش کردن کارایی بسیار بهتری در فهرست کردن کلیدها ارائه میدهد. با این حال، اگر مشکوک هستید که دستهکلید عمومی شما در برابر تغییرات نوشتاری ایمن نیست، میتوانید از این گزینه برای غیرفعال کردن کَش استفاده کنید. احتمالاً غیرفعال کردن آن منطقی نیست چرا که اگر شخص دیگری دسترسی نوشتن به دستهکلید عمومی شما داشته باشد، هر گونه آسیبی میتواند وارد شود.
- --auto-check-trustdb
- --no-auto-check-trustdb
- اگر GnuPG تشخیص دهد که اطلاعاتش درباره شبکه اعتماد (Web of Trust) باید بهروزرسانی شود، به طور خودکار دستور --check-trustdb را به صورت داخلی اجرا میکند. این ممکن است یک فرایند زمانبر باشد. --no-auto-check-trustdb این گزینه را غیرفعال میکند.
- --use-agent
- --no-use-agent
- این یک گزینه صوری است. gpg همیشه به agent نیاز دارد.
- --gpg-agent-info
- این یک گزینه صوری است. هنگام استفاده با gpg هیچ اثری ندارد.
- --agent-program file
- برنامه agent مورد استفاده برای عملیات کلید محرمانه را مشخص کنید. مقدار پیشفرض با اجرای gpgconf به همراه گزینه --list-dirs تعیین میشود. توجه داشته باشید که نماد خط لوله (|) برای ترفندی در مجموعه آزمونهای رگرسیون استفاده میشود و بنابراین نباید در نام فایل استفاده شود.
- --dirmngr-program file
- برنامه dirmngr مورد استفاده برای دسترسی به keyserver را مشخص کنید. مقدار پیشفرض ‘/usr/bin/dirmngr’ است.
- --disable-dirmngr
- استفاده از Dirmngr را به طور کامل غیرفعال کنید.
- --no-autostart
- در صورتی که gpg-agent یا dirmngr هنوز راهاندازی نشده باشند و سرویس آنها مورد نیاز باشد، آنها را شروع نکنید. این گزینه بیشتر در سیستمهایی کاربرد دارد که اتصال به gpg-agent در آنها به ماشین دیگری هدایت شده است. اگر در ماشین راه دور به dirmngr نیاز باشد، میتوان آن را به صورت دستی با استفاده از gpgconf --launch dirmngr راهاندازی کرد.
- --lock-once
- پایگاههای داده را در اولین باری که درخواست قفل میشود قفل کنید و تا زمان خاتمه فرایند قفل را آزاد نکنید.
- --lock-multiple
- آزادسازی قفلها در هر بار که دیگر نیازی به قفل نیست. از این گزینه برای باطل کردن اثر --lock-once قبلی که از یک پروندهٔ پیکربندی آمده استفاده کنید.
- --lock-never
- غیرفعالسازی کامل قفلگذاری. این گزینه باید تنها در محیطهای بسیار خاص استفاده شود، جایی که بتوان اطمینان یافت تنها یک فرایند در حال دسترسی به آن پروندهها است. یک فلاپی قابل بوت با سامانهٔ رمزنگاری مستقل احتمالاً از این گزینه استفاده خواهد کرد. استفادهٔ نادرست از این گزینه ممکن است منجر به خرابی دادهها و کلیدها شود.
- --exit-on-status-write-error
- این گزینه باعث میشود خطاهای نوشتن روی توصیفگر پروندهٔ وضعیت (status FD) بلافاصله فرایند را متوقف کنند. در واقع این رفتار باید حالت پیشفرض میبود، اما هرگز به این صورت عمل نکرد و بنابراین برای فعالسازی آن به یک گزینه نیاز است، تا این تغییر برنامههایی را که طرف خود از لولهٔ متصل به FD وضعیت را خیلی زود میبندند با خطا مواجه نکند. استفاده از این گزینه در کنار --enable-progress-filter میتواند برای لغو تمیز عملیات طولانیمدت gpg استفاده شود.
- --limit-card-insert-tries n
- با مقدار n بزرگتر از 0، تعداد دفعات اعلان درخواست وارد کردن کارت هوشمند به N-1 محدود میشود. بدین ترتیب با مقدار 1، چنانچه در زمان راهاندازی کارتی وارد نشده باشد، gpg اصلاً درخواست وارد کردن کارت را نخواهد داد. این گزینه در پروندهٔ پیکربندی در شرایطی مفید است که برنامه از پشتیبانی کارت هوشمند اطلاعی ندارد و تا بینهایت منتظر کارت وارد شده میماند.
- --no-random-seed-file
- ابزار GnuPG از یک پرونده برای ذخیرهٔ مخزن تصادفی درونی خود بین دفعات فراخوانی استفاده میکند. این کار تولید تصادفی را سریعتر میسازد؛ با این حال گاهی اوقات عملیات نوشتن مطلوب نیست. این گزینه میتواند برای رسیدن به این هدف، به قیمت تولید کندتر مقادیر تصادفی استفاده شود.
- --no-greeting
- جلوگیری از نمایش پیام اولیهٔ حق نشر.
- --no-secmem-warning
- جلوگیری از نمایش هشدار مربوط به "using insecure memory" (استفاده از حافظهٔ ناامن).
- --no-permission-warning
- جلوگیری از
نمایش
هشدار
مربوط به
دسترسیهای
ناامن
پرونده و
پوشهٔ
خانگی (--homedir).
توجه داشته
باشید
بررسیهای
دسترسی که GnuPG
انجام
میدهد
قرار نیست
قطعی و کامل
باشند،
بلکه صرفاً
دربارهٔ
برخی
مشکلات
رایج
دسترسی
هشدار
میدهند.
فرض نکنید
که عدم وجود
هشدار به
معنی امن
بودن
سامانهٔ
شماست.
توجه داشته باشید که هشدار مربوط به دسترسیهای ناامن --homedir را نمیتوان در پروندهٔ gpg.conf نادیده گرفت، چرا که این کار به مهاجم اجازه میدهد یک پروندهٔ gpg.conf ناامن قرار دهد و از این پرونده برای جلوگیری از هشدارهای مربوط به خود آن استفاده کند. هشدار دسترسیهای --homedir تنها از طریق خط فرمان قابل چشمپوشی است.
- --require-secmem
- --no-require-secmem
- خودداری از اجرا در صورتی که GnuPG نتواند حافظهٔ امن به دست آورد. حالت پیشفرض no است (یعنی اجرا شود، اما هشدار داده شود).
- --require-cross-certification
- --no-require-cross-certification
- هنگام تأیید اعتبار امضایی که با یک زیرکلید ایجاد شده است، اطمینان حاصل میکند که گواهی متقابل "back signature" روی زیرکلید وجود داشته و معتبر باشد. این کار از یک حملهٔ ظریف علیه زیرکلیدهایی که قابلیت امضا دارند جلوگیری میکند. مقدار پیشفرض برای gpg برابر --require-cross-certification است.
- --expert
- --no-expert
- به کاربر اجازه میدهد کارهای غیرمعقول یا نامتعارفی مانند امضای یک کلید منقضیشده یا باطلشده، یا اقدامات بالقوه ناسازگاری مانند تولید انواع نامعمول کلید را انجام دهد. این گزینه همچنین برخی پیامهای هشدار دربارهٔ عملیات بالقوه ناسازگار را غیرفعال میکند. همانطور که از نامش پیداست، این گزینه صرفاً برای افراد متخصص است. اگر پیامدهای آنچه را که مجاز میکند به طور کامل درک نمیکنید، آن را غیرفعال بگذارید. گزینهٔ --no-expert این حالت را غیرفعال میکند.
گزینههای مرتبط با کلید
- --recipient name
- -r
- رمزنگاری برای شناسه کاربری name. اگر این گزینه یا --hidden-recipient مشخص نشده باشد، GnuPG شناسه کاربری را درخواست میکند، مگر اینکه --default-recipient داده شده باشد.
- -R
- رمزنگاری برای شناسه کاربری name، اما شناسه کلید مربوط به کلید این کاربر را پنهان میکند. این گزینه به پنهان کردن گیرنده پیام کمک میکند و یک اقدام متقابل محدود در برابر تحلیل ترافیک است. اگر این گزینه یا --recipient مشخص نشده باشد، GnuPG شناسه کاربری را درخواست میکند، مگر اینکه --default-recipient داده شده باشد.
- --recipient-file file
- -f
- این گزینه مشابه --recipient است، با این تفاوت که برای کلید ذخیرهشده در فایل دادهشده رمزنگاری میکند. file باید نام فایلی حاوی دقیقاً یک کلید باشد. gpg فرض میکند که کلید موجود در این فایل کاملاً معتبر است.
- -F
- این گزینه مشابه --hidden-recipient است، با این تفاوت که برای کلید ذخیرهشده در فایل دادهشده رمزنگاری میکند. file باید نام فایلی حاوی دقیقاً یک کلید باشد. gpg فرض میکند که کلید موجود در این فایل کاملاً معتبر است.
- --encrypt-to name
- مشابه --recipient است، اما این گزینه برای استفاده در فایل تنظیمات (options file) در نظر گرفته شده است و ممکن است با شناسه کاربری خودتان به عنوان یک "encrypt-to-self" (رمزنگاری برای خود) به کار رود. پیشنهاد میشود از یک اثرانگشت یا دستکم یک شناسه کلید طولانی (long keyID) برای name استفاده شود. این کلیدها تنها زمانی استفاده میشوند که گیرندگان دیگری، چه با استفاده از --recipient و چه از طریق شناسه کاربری درخواستشده، مشخص شده باشند. هیچ بررسی اعتمادی برای این شناسههای کاربری انجام نمیشود و حتی میتوان از کلیدهای غیرفعالشده نیز استفاده کرد.
- مشابه --hidden-recipient است، اما این گزینه برای استفاده در فایل تنظیمات (options file) در نظر گرفته شده است و ممکن است با شناسه کاربری خودتان به عنوان یک "encrypt-to-self" (رمزنگاری برای خود) پنهان به کار رود. پیشنهاد میشود از یک اثرانگشت یا دستکم یک شناسه کلید طولانی (long keyID) برای name استفاده شود. این کلیدها تنها زمانی استفاده میشوند که گیرندگان دیگری، چه با استفاده از --recipient و چه از طریق شناسه کاربری درخواستشده، مشخص شده باشند. هیچ بررسی اعتمادی برای این شناسههای کاربری انجام نمیشود و حتی میتوان از کلیدهای غیرفعالشده نیز استفاده کرد.
- --no-encrypt-to
- غیرفعال کردن استفاده از تمامی کلیدهای --encrypt-to و --hidden-encrypt-to.
- --group {name=value}
- یک گروه
نامگذاریشده
ایجاد
میکند که
مشابه
نامهای
مستعار (aliases)
در
برنامههای
ایمیل است.
هر زمان که
نام گروه به
عنوان
گیرنده (-r
یا --recipient)
باشد، به
مقادیر
مشخصشده
بسط داده
خواهد شد.
چندین گروه
با نام
یکسان به
طور خودکار
در یک گروه
واحد ادغام
میشوند.
مقادیر، key IDs (شناسههای کلید) یا اثرانگشتها هستند، اما هرگونه توصیف کلیدی پذیرفته میشود. توجه داشته باشید مقداری که شامل فاصله باشد به عنوان دو مقدار متفاوت در نظر گرفته خواهد شد. همچنین توجه داشته باشید که تنها یک سطح از بسط وجود دارد --- نمیتوانید گروهی بسازید که به گروه دیگری اشاره کند. هنگام استفاده از خط فرمان، ممکن است لازم باشد آرگومان این گزینه را داخل نقلقول قرار دهید تا پوسته آن را به عنوان چندین آرگومان در نظر نگیرد.
- --ungroup name
- حذف یک مدخل مشخصشده از فهرست --group.
- --no-groups
- حذف تمامی مدخلها از فهرست --group.
- --local-user name
- -u
- از name به عنوان کلید برای امضا کردن استفاده میکند. توجه داشته باشید که این گزینه جایگزین --default-key میشود.
- --sender mbox
- این گزینه
دو کاربرد
دارد. mbox
باید یک
شناسه
کاربری
کامل حاوی
یک نشانی
رایانامه
معتبر یا
صرفاً یک
نشانی
رایانامه
ساده باشد.
این گزینه
را میتوان
چندین بار
مشخص کرد.
هنگام ایجاد یک امضا، این گزینه شناسه کاربری کلید امضاکننده را که برای ایجاد امضا استفاده شده به gpg اعلام میکند و آن شناسه کاربری را در امضای ایجادشده جاسازی مینماید (با استفاده از زیربسته "Signer's User ID" در OpenPGP). اگر این گزینه چندین بار داده شود، یک شناسه کاربری مناسب انتخاب میشود. با این حال، اگر کلید امضا مستقیماً با استفاده از نشانی رایانامه مشخص شده باشد (یعنی نه با استفاده از اثرانگشت یا شناسه کلید)، از این گزینه استفاده میشود و نشانی رایانامه در امضای ایجادشده جاسازی خواهد شد.
هنگام بازبینی امضا، از mbox برای محدود کردن اطلاعات چاپشده توسط کد TOFU به شناسههای کاربری منطبق استفاده میشود. اگر این گزینه استفاده شود و امضا شامل زیربسته "Signer's User ID" باشد، از آن اطلاعات نیز برای محدود کردن اطلاعات چاپشده استفاده خواهد شد. توجه داشته باشید که GnuPG تنها بخش نشانی رایانامه یک شناسه کاربری را در نظر میگیرد.
اگر این گزینه یا زیربسته مذکور موجود باشد، خطوط TRUST همانطور که توسط گزینه status-fd چاپ میشوند با شناسه کاربری متناظر مطابقت دارند؛ اگر هیچ شناسه کاربریای شناختهشده نباشد، خطوط TRUST مستقیماً روی کلید محاسبه میشوند و هیچ اطلاعاتی درباره شناسه کاربری ارائه نمیدهند. در حالت اخیر، به اسکریپتها و سایر فرانتاندها قویاً توصیه میشود که خط VALIDSIG را ارزیابی کنند، کلید را بازیابی نمایند و تمام شناسههای کاربری را به همراه اطلاعات اعتبار (اعتماد) آنها چاپ کنند.
- --try-secret-key name
- برای گیرندگان پنهان، GPG باید کلیدهایی را که برای رمزگشایی آزمایشی استفاده میشوند بداند. کلیدی که با --default-key تنظیم شده همیشه ابتدا آزمایش میشود، اما این کار اغلب کافی نیست. این گزینه امکان تنظیم کلیدهای بیشتری را برای استفاده در رمزگشایی آزمایشی فراهم میکند. هرچند هر مشخصه معتبری از شناسه کاربری را میتوان برای name استفاده کرد، اما منطقی است که برای جلوگیری از ابهام، حداقل از شناسه کلید بلند (long keyid) استفاده شود. توجه داشته باشید که ممکن است gpg-agent برای کلیدهای متعددی یک پنجره pinentry باز کند تا رمزگشایی آزمایشی را انجام دهد. اگر میخواهید تمام رمزگشاییهای آزمایشی بعدی را متوقف کنید، میتوانید به جای دکمه لغو (cancel)، از دکمه بستن پنجره استفاده کنید.
- --try-all-secrets
- به شناسه کلید ذخیرهشده در پیام توجه نمیکند، بلکه تمام کلیدهای مخفی را به نوبت امتحان میکند تا کلید رمزگشایی درست را بیابد. این گزینه رفتاری را که برای گیرندگان ناشناس (ایجادشده با استفاده از --throw-keyids یا --hidden-recipient) استفاده میشود تحمیل میکند و در حالتی که یک پیام رمزنگاریشده حاوی شناسه کلید جعلی باشد میتواند مفید واقع شود.
- --skip-hidden-recipients
- --no-skip-hidden-recipients
- هنگام رمزگشایی از تمام گیرندگان ناشناس صرفنظر میکند. این گزینه در شرایطی کمک میکند که افراد از قابلیت گیرندگان پنهان برای پنهان کردن کلید encrypt-to خود از دیگران استفاده میکنند. اگر کسی کلیدهای مخفی زیادی داشته باشد، این امر ممکن است دردسر زیادی ایجاد کند زیرا تمام کلیدها به نوبت برای رمزگشایی چیزی که واقعاً برای آن در نظر گرفته نشده امتحان میشوند. عیب این گزینه این است که در حال حاضر رمزگشایی پیامی که شامل گیرندگان ناشناس واقعی باشد امکانپذیر نیست.
ورودی و خروجی (Input and Output)
- --armor
- -a
- خروجی زرهپوش ASCII (ASCII armored) تولید میکند. پیشفرض، ایجاد قالب باینری OpenPGP است.
- --no-armor
- فرض میکند دادههای ورودی در قالب زرهپوش ASCII نیستند.
- --output file
- -o file
- خروجی را در file مینویسد. برای نوشتن در stdout از - به عنوان نام پرونده استفاده کنید.
- --max-output n
- این گزینه محدودیتی برای تعداد بایتهای تولیدشده هنگام پردازش یک پرونده تعیین میکند. از آنجا که OpenPGP از سطوح مختلف فشردهسازی پشتیبانی میکند، این احتمال وجود دارد که متن ساده (plaintext) یک پیام مشخص بهطور چشمگیری بزرگتر از پیام اصلی OpenPGP باشد. با وجود اینکه GnuPG با چنین پیامهایی بهدرستی کار میکند، اغلب تمایل بر این است که بیشینه اندازه پرونده تولیدی، پیش از توقف اجباری پردازش توسط محدودیتهای سیستمعامل، مشخص شود. پیشفرض 0 است، که به معنی «بدون محدودیت» است.
- --chunk-size n
- حالت رمزنگاری AEAD دادهها را در قالب تکهها (chunks) رمزنگاری میکند تا طرف گیرنده بتواند در پایان هر تکه، خطاهای انتقال یا دستکاری را بررسی کند و نیازی به معطل ماندن تا زمان دریافت کامل همه دادهها نباشد. اندازه تکه استفادهشده 2^n بایت است. کمترین مقدار مجاز برای n برابر 6 (64 بایت) و بیشترین مقدار همان پیشفرض 22 است که تکههایی با اندازه حداکثر 4 MiB ایجاد میکند.
- --input-size-hint n
- از این گزینه میتوان برای اعلام اندازه دادههای ورودی برحسب بایت به GPG استفاده کرد. n باید یک عدد مثبت در مبنای 10 باشد. این گزینه فقط در صورتی مفید است که ورودی از یک پرونده گرفته نشده باشد. GPG ممکن است از این راهنمایی برای بهینهسازی راهبرد تخصیص بافر خود استفاده کند. همچنین توسط خط ``PROGRESS'' در --status-fd برای ارائه مقداری برای ``total'' در صورتی که از روشهای دیگر در دسترس نباشد، استفاده میشود.
- --key-origin string[,url]
- دستور gpg میتواند خاستگاه یک کلید را ردیابی کند. برخی خاستگاهها بهطور ضمنی شناختهشده (مانند keyserver و web key directory) و تنظیم شدهاند. برای یک واردسازی استاندارد، خاستگاه کلیدهای واردشده را میتوان با این گزینه تنظیم کرد. برای دیدن فهرست مقادیر ممکن، از "help" برای string استفاده کنید. برخی خاستگاهها میتوانند یک آرگومان اختیاری url را ذخیره کنند. این URL میتواند پس از یک کاما به string اضافه شود.
- --import-options parameters
- این یک رشته جداشده با فاصله یا کاما است که گزینههایی را برای وارد کردن کلیدها مشخص میکند. میتوان پیشوند `no-' را به گزینهها افزود تا معنای معکوس پیدا کنند. این گزینهها عبارتند از:
- import-local-sigs
- اجازه واردسازی امضاهای کلیدی که با برچسب "local" علامتگذاری شدهاند را میدهد. این گزینه معمولاً مفید نیست مگر اینکه از یک طرح دستهکلید (keyring) مشترک استفاده شود. پیشفرض no است.
- keep-ownertrust
- بهطور معمول، مقادیر ownertrust یک کلید که احتمالاً هنوز باقی ماندهاند، در صورت وارد شدن آن کلید پاک میشوند. این رفتار بهطور کلی مطلوب است تا کلیدی که قبلاً حذف شده بود، صرفاً به دلیل واردسازی مجدد بهطور خودکار مقادیر ownertrust کسب نکند. از سوی دیگر، گاهی لازم است مجموعهای از کلیدهای مورد اعتماد مجدداً وارد شوند اما مقادیر ownertrust اختصاصیافته فعلی حفظ گردند. این کار با استفاده از این گزینه امکانپذیر است.
- repair-pks-subkey-bug
- هنگام واردسازی، تلاش میکند آسیب ناشی از باگ کارساز کلید (keyserver) PKS (نسخههای پیش از 0.9.6) را که کلیدهای دارای چندین زیرکلید را مخدوش میکرد، ترمیم کند. توجه داشته باشید که این گزینه نمیتواند کلید آسیبدیده را به طور کامل ترمیم کند زیرا برخی دادههای حیاتی توسط keyserver حذف شدهاند، اما دستکم یک زیرکلید را به شما بازمیگرداند. پیشفرض برای --import معمولی برابر no و برای --receive-keys کارساز کلید برابر yes است.
- import-show
- show-only
- نمایش فهرستی از کلید واردشده درست قبل از ذخیره شدن آن. این گزینه میتواند با گزینه --dry-run ترکیب شود تا فقط کلیدها بررسی شوند؛ گزینه show-only یک میانبر برای این ترکیب است. دستور --show-keys میانبر دیگری برای این منظور است. توجه داشته باشید که پسوندهایی مانند '#' برای خطوط "sec" و "sbb" ممکن است چاپ شوند یا نشوند.
- import-export
- تمام کد واردسازی را اجرا میکند اما به جای ذخیره کلید در دستهکلید محلی، آن را در خروجی مینویسد. گزینه صدور export-dane بر خروجی تأثیر میگذارد. از این گزینه میتوان برای مثال برای حذف تمام بخشهای نامعتبر از یک کلید بدون نیاز به ذخیره کردن آن استفاده کرد.
- merge-only
- هنگام واردسازی، اعمال بهروزرسانیها را برای کلیدهای موجود مجاز میداند، اما اجازه واردسازی هیچ کلید جدیدی را نمیدهد. پیشفرض no است.
- import-clean
- پس از درونریزی، هر شناسه کاربری از کلید جدید را که قابل استفاده نیست، فشردهسازی میکند (حذف همه امضاها بهجز خود-امضا). سپس هر امضایی از کلید جدید را که قابل استفاده نیست، حذف میکند. این شامل امضاهایی است که توسط کلیدهای ناموجود در جاکلیدی (keyring) صادر شدهاند. این گزینه همانند اجرای دستور "clean" پس از درونریزی در --edit-key است. پیشفرض no است.
- self-sigs-only
- هنگام درونریزی یک کلید، تنها خود-امضاها را میپذیرد. سایر امضاهای کلید در مراحل اولیه درونریزی نادیده گرفته میشوند. این گزینه میتواند به همراه keyserver-options برای کاهش اثر تلاشها جهت پر کردن کلید با امضاهای ساختگی از سرور کلید استفاده شود. عیب آن این است که تمامی امضاهای معتبر دیگر کلید، همانطور که توسط شبکه اعتماد (Web of Trust) الزامی شدهاند نیز درونریزی نمیشوند. توجه داشته باشید که استفاده همزمان از این گزینه به همراه import-clean، مرحله نهایی clean را پس از ادغام کلید درونریزیشده در کلید موجود لغو میکند.
- ignore-attributes
- هنگام درونریزی یک کلید، تمام شناسههای کاربری ویژگی (شناسههای عکسدار) و امضاهای آنها را نادیده میگیرد.
- repair-keys
- پس از درونریزی، مشکلات گوناگون کلیدها را برطرف میکند. برای نمونه، این کار امضاها را بازآرایی کرده و امضاهای تکراری را حذف میکند. پیشفرض yes است.
- bulk-import
- در صورت استفاده، keyboxd (گزینه use-keyboxd در ‘common.conf’) درونریزی را در قالب یک تراکنش واحد انجام میدهد.
- import-minimal
- کوچکترین کلید ممکن را درونریزی میکند. این کار تمام امضاها بهجز جدیدترین خود-امضا بر روی هر شناسه کاربری را حذف میکند. این گزینه همانند اجرای دستور "minimize" پس از درونریزی در --edit-key است. پیشفرض no است.
- restore
- import-restore
- درونریزی در حالت بازیابی کلید. این گزینه تمام دادههایی را که معمولاً هنگام درونریزی نادیده گرفته میشوند، از جمله تمامی دادههای مختص GnuPG، درونریزی میکند. تمامی گزینههای متناقض دیگر نادیده گرفته و لغو میشوند.
- --import-filter {name=expr}
- --export-filter {name=expr}
- این
گزینهها
یک فیلتر
درونریزی/برونریزی
را تعریف
میکنند که
درست پیش از
ذخیره یا
نوشته شدن،
روی بلوک
کلید
درونریزیشده/برونریزیشده
اعمال
میشود. name
نوع فیلتر
مورد
استفاده و
expr عبارت
شرطی جهت
ارزیابی را
مشخص
میکند. این
گزینه
میتواند
چندین بار
استفاده
شود که در
این صورت
عبارات
بیشتری به
همان name
الحاق
میگردد.
انواع فیلترهای موجود عبارتند از:
- keep-uid
- اگر عبارت ارزیابیشده برابر با true باشد، این فیلتر بسته شناسه کاربری و بستههای وابسته به آن را در بلوک کلید نگه میدارد.
- drop-subkey
- این فیلتر زیرکلیدهای انتخابشده را حذف میکند. در حال حاضر تنها برای --export-filter پیادهسازی شده است.
- drop-sig
- این فیلتر امضاهای کلید انتخابشده روی شناسههای کاربری را حذف میکند. خود-امضاها در نظر گرفته نمیشوند. در حال حاضر تنها برای --import-filter پیادهسازی شده است.
- select
- این فیلتر تنها توسط --list-filter پیادهسازی شده است. همه نامهای ویژگی میتوانند استفاده شوند.
برای ساختار نحوی عبارت به فصل "FILTER EXPRESSIONS" مراجعه کنید. نامهای ویژگی برای عبارات به نوع فیلتر واقعی بستگی دارند و در جدول زیر مشخص شدهاند. توجه داشته باشید که تمامی نامهای ویژگی میتوانند توسط --list-filter نیز استفاده شوند.
نامهای ویژگی ممکن است با یک دامنه که با اسلش جدا میشود پیشوند شوند. دامنههای معتبر عبارتند از "pub" برای کلیدهای اصلی عمومی و محرمانه، "sub" برای زیرکلیدهای عمومی و محرمانه، "uid" برای بستههای شناسه کاربری و "sig" برای بستههای امضا. دامنههای نامعتبر در حال حاضر نادیده گرفته میشوند.
ویژگیهای موجود عبارتند از:
- uid
- رشتهای حاوی شناسه کاربر. (keep-uid)
- mbox
- بخش addr-spec یک شناسه کاربر دارای صندوق پستی (mailbox) یا رشته خالی. (keep-uid)
- algostr
- رشتهای حاوی توصیف الگوریتم کلید. برای مثال "rsa3072" یا "ed25519".
- key_algo
- عددی نشاندهنده الگوریتم کلید عمومی یک بسته کلید یا زیرکلید. (drop-subkey)
- key_size
- عددی نشاندهنده اندازه مؤثر کلید یک بسته کلید یا زیرکلید. (drop-subkey)
- key_created
- key_created_d
- مورد اول برچسب زمانی (timestamp) ایجاد یک بسته کلید عمومی یا زیرکلید است. مورد دوم همان مقدار است اما در قالب یک رشته ISO ارائه میشود، مانند "2016-08-17". (drop-subkey)
- key_expires
- key_expires_d
- زمان انقضای یک کلید عمومی یا زیرکلید، یا 0 در صورتی که منقضی نشود. مورد دوم همان مقدار است اما در قالب یک رشته تاریخ ISO یا یک رشته خالی ارائه میشود، مانند "2038-01-19".
- fpr
- اثرانگشت در قالب هگزادسیمال برای زیرکلید فعلی یا کلید اصلی. (drop-subkey)
- primary
- مقدار بولی که مشخص میکند آیا شناسه کاربر، شناسه اصلی است یا خیر. (keep-uid)
- expired
- مقدار بولی که مشخص میکند آیا یک شناسه کاربر (keep-uid)، یک کلید (drop-subkey) یا یک امضا (drop-sig) منقضی شده است یا خیر.
- revoked
- مقدار بولی که مشخص میکند آیا یک شناسه کاربر (keep-uid) یا یک کلید (drop-subkey) باطل شده است یا خیر.
- disabled
- مقدار بولی که مشخص میکند آیا یک کلید اصلی غیرفعال است یا خیر.
- secret
- مقدار بولی که مشخص میکند آیا یک کلید یا زیرکلید از نوع محرمانه است یا خیر. (drop-subkey)
- usage
- رشتهای نشاندهنده پرچمهای کاربرد برای زیرکلید، از دنباله ``ecsa?''. برای مثال، زیرکلیدی که تنها قابلیت امضا و احراز اصالت دارد، تطابق دقیقی با ``sa'' خواهد بود. (drop-subkey)
- sig_created
- sig_created_d
- مورد اول برچسب زمانی ایجاد یک بسته امضا است. مورد دوم همان مقدار است اما در قالب یک رشته تاریخ ISO، مانند "2016-08-17". (drop-sig)
- sig_expires
- sig_expires_d
- زمان انقضای یک بسته امضا، یا 0 در صورتی که منقضی نشود. مورد دوم همان مقدار است اما در قالب یک رشته تاریخ ISO یا یک رشته خالی، مانند "2038-01-19".
- sig_algo
- عددی شامل الگوریتم کلید عمومی یک بسته امضا. (drop-sig)
- sig_digest_algo
- عددی شامل الگوریتم خلاصه (digest) یک بسته امضا. (drop-sig)
- origin
- رشتهای شامل مبدا کلید یا علامت سؤال. برای مثال، اگر کلید از طریق جستجوی Web Key Directory بهدست آمده باشد، از رشته ``wkd'' استفاده میشود.
- lastupd
- برچسب زمانی (timestamp) آخرین باری که کلید از یک کارساز کلید (keyserver) یا Web Key Directory بهروزرسانی شده است.
- url
- رشتهای شامل URL مرتبط با آخرین جستجوی کلید.
- --export-options parameters
- این یک رشته جداشده با فاصله یا ویرگول است که گزینههایی را برای برونریزی کلیدها مشخص میکند. میتوان پیشوند `no-' را به ابتدای گزینهها افزود تا معنای معکوس داشته باشند. گزینهها عبارتند از:
- export-local-sigs
- اجازه برونریزی امضاهای کلیدی که به عنوان "local" علامتگذاری شدهاند. این قابلیت معمولاً مفید نیست مگر اینکه از طرح جاکلیدی (keyring) مشترک استفاده شود. پیشفرض no است.
- export-attributes
- شامل کردن شناسههای کاربری ویژگی (شناسههای عکسدار) هنگام برونریزی. عدم درج شناسههای کاربری ویژگی برای برونریزی کلیدهایی مناسب است که قرار است توسط برنامهای بر پایه OpenPGP استفاده شوند که شناسههای کاربری ویژگی را نمیپذیرد. پیشفرض yes است.
- export-sensitive-revkeys
- شامل کردن اطلاعات ابطالکننده تعیینشده (designated revoker) که به عنوان "sensitive" علامتگذاری شده است. پیشفرض no است.
- backup
- export-backup
- برونریزی جهت استفاده به عنوان نسخه پشتیبان. دادههای برونریزیشده شامل تمام دادههایی است که بعداً برای بازیابی کلید یا کلیدها با GnuPG مورد نیاز است. قالب اساساً همان قالب OpenPGP است اما با دادههای ویژه GnuPG ارتقا یافته است. تمام گزینههای متناقض دیگر نادیده گرفته میشوند (override میشوند).
- export-clean
- فشردهسازی (حذف تمام امضاها از) شناسههای کاربریِ کلید در حال برونریزی، در صورتی که شناسههای کاربری غیرقابل استفاده باشند. همچنین هیچ امضای غیرقابل استفادهای برونریزی نمیشود. این شامل امضاهایی است که توسط کلیدهای ناموجود در جاکلیدی (keyring) صادر شدهاند. این گزینه مشابه اجرای دستور "clean" در --edit-key پیش از برونریزی است، با این تفاوت که نسخه محلی کلید تغییر داده نمیشود. پیشفرض no است.
- export-minimal
- برونریزی کوچکترین کلید ممکن. این کار تمام امضاها را بهجز تازهترین خودامضایی (self-signature) روی هر شناسه کاربری حذف میکند. این گزینه مشابه اجرای دستور "minimize" در --edit-key پیش از برونریزی است، با این تفاوت که نسخه محلی کلید تغییر داده نمیشود. پیشفرض no است.
- export-revocs
- تنها برونریزی گواهیهای ابطال مستقل کلید. این گزینه ابطالهای مربوط به گواهیهای شخص ثالث را برونریزی نمیکند.
- export-dane
- بهجای خروجی دادن محتوای کلید، رکوردهای OpenPGP DANE مناسب برای قرار دادن در پروندههای ناحیه (zone files) DNS را خروجی میدهد. پیش از هر رکورد یک خط ORIGIN چاپ میشود تا امکان هدایت رکوردها به پرونده ناحیه مربوطه فراهم شود.
- mode1003
- استفاده از یک قالب جدید برونبری کلید مخفی را فعال میکند. این قالب از رمزگذاری مجددی که در قالب فعلی OpenPGP الزامی است جلوگیری میکند و همچنین در صورتی که کلید مخفی با عبارت عبور محافظت شده باشد، امنیت آن را بهبود میبخشد. توجه داشته باشید که یک کلید محافظتنشده همانطور که هست برونبری میشود و بنابراین امن نیست؛ قاعدهٔ کلی برای انتقال کلیدهای مخفی در یک فایل رمزگذاریشدهٔ OpenPGP همچنان در این حالت برقرار است. نسخههای GnuPG قبل از 2.4.0 قادر به درونریزی چنین فایل مخفیای نیستند.
- --with-colons
- فهرستهای کلید را جداشده با دونقطه چاپ میکند. توجه داشته باشید که خروجی صرفنظر از هرگونه تنظیم --display-charset با کدگذاری UTF-8 ارائه خواهد شد. این قالب زمانی که GnuPG از اسکریپتها و سایر برنامهها فراخوانی میشود مفید است، چرا که بهسادگی توسط ماشین تجزیه میشود. جزئیات این قالب در فایل ‘doc/DETAILS’ که در توزیع کد منبع GnuPG گنجانده شده، مستند شده است.
- --fixed-list-mode
- شناسهٔ کاربری اصلی و کلید اصلی را در حالت فهرستبندی --with-colon ادغام نمیکند و تمام مهرهای زمانی را بهصورت ثانیههای سپریشده از 1970-01-01 چاپ میکند. از نسخهٔ 2.0.10 برنامهٔ GnuPG، این حالت همیشه استفاده میشود و بنابراین این گزینه منسوخ شده است؛ هرچند استفاده از آن ضرری ندارد.
- --legacy-list-mode
- بازگشت به حالت فهرستبندی کلید عمومی پیش از نسخهٔ 2.1. این گزینه تنها بر خروجی خوانا برای انسان اثر میگذارد و رابط ماشینی (یعنی --with-colons) را تغییر نمیدهد. توجه داشته باشید که این قالب قدیمی اطلاعات مناسبی برای منحنیهای بیضوی منتقل نمیکند.
- --with-fingerprint
- همانند دستور --fingerprint است اما تنها قالب خروجی را تغییر میدهد و میتواند همراه با دستور دیگری استفاده شود.
- --with-subkey-fingerprint
- اگر اثرانگشتی برای کلید اصلی چاپ شود، این گزینه چاپ اثرانگشت را برای تمامی زیرکلیدها نیز اجباری میکند. این کار با دو بار استفاده از --with-fingerprint نیز قابل دستیابی بود، اما با استفاده از این گزینه به همراه keyid-format "none" یک اثرانگشت فشرده چاپ میشود.
- --with-v5-fingerprint
- در فهرستبندی حالت دونقطه، خطوط "fp2" را برای کلیدهای نسخهٔ ۴ OpenPGP که دارای اثرانگشتی به سبک v5 هستند صادر میکند.
- --with-icao-spelling
- علاوه بر ارقام هگز، هجی ICAO اثرانگشت را نیز چاپ میکند.
- --with-keygrip
- گنجاندن keygrip در فهرستهای کلید. در حالت --with-colons این مورد بهطور ضمنی برای کلیدهای مخفی فعال است.
- --with-key-origin
- اطلاعات نگهداریشده بهصورت محلی دربارهٔ مبدأ و آخرین بهروزرسانی کلید را در فهرست کلید میگنجاند. در حالت --with-colons این مقدار همیشه چاپ میشود. این دادهها در حال حاضر آزمایشی هستند و نباید بخشی از API پایدار در نظر گرفته شوند.
- --with-wkd-hash
- یک شناسهٔ Web Key Directory را همراه با هر شناسهٔ کاربری در فهرستهای کلید چاپ میکند. این یک ویژگی آزمایشی است و ممکن است ساختار معنایی آن تغییر کند.
- --with-secret
- اطلاعات مربوط به حضور کلید مخفی را در فهرستبندیهای کلید عمومی انجامشده با --with-colons میگنجاند.
گزینههای مختص پروتکل OpenPGP
- --force-ocb
- --force-aead
- اجبار به استفاده از رمزگذاری AEAD به جای رمزگذاری MDC. روش AEAD یک راهکار مدرنتر و سریعتر برای انجام رمزگذاری اصالتسنجیشده نسبت به روش قدیمی MDC است. گزینهٔ --force-aead یک نام مستعار و منسوخ است. همچنین گزینهٔ --chunk-size را ببینید.
- --force-mdc
- --disable-mdc
- این گزینهها منسوخ شدهاند و از GnuPG 2.2.8 به بعد هیچ اثری ندارند. همواره از MDC استفاده میشود، مگر اینکه کلیدها مشخص کنند که میتوان از یک الگوریتم AEAD استفاده کرد که در این صورت از AEAD استفاده خواهد شد. اما توجه داشته باشید: اگر ایجاد استثنایی یک پیام قدیمی و بدون MDC مورد نیاز باشد، گزینهٔ --rfc2440 این کار را ممکن میسازد.
- --disable-signer-uid
- بهطور پیشفرض، شناسهٔ کاربری کلید امضاکننده درون امضای داده گنجانده میشود. در حال حاضر این کار تنها در صورتی انجام میشود که کلید امضا با local-user و با استفاده از یک نشانی ایمیل یا با sender مشخص شده باشد. این اطلاعات میتواند به اعتبارسنج برای یافتن کلید کمک کند؛ گزینهٔ --auto-key-retrieve را ببینید.
- --include-key-block
- --no-include-key-block
- این گزینه برای گنجاندن کلید امضای اصلی درون امضای داده استفاده میشود. کلید گنجاندهشده به یک شناسهٔ کاربری تقلیل یافته و تنها شامل زیرکلید امضای استفادهشده برای ایجاد امضا و همچنین زیرکلیدهای رمزنگاری معتبر است. تمام اطلاعات دیگر از کلید حذف میشوند تا اندازهٔ آن و در نتیجه اندازهٔ امضا کوچک نگه داشته شود. این گزینه همتای OpenPGP برای گزینهٔ --include-certs در gpgsm است و به گیرندهٔ یک پیام امضاشده امکان میدهد بدون نیاز به استفاده از دایرکتوریهای برخط برای یافتن کلید، پاسخی رمزنگاریشده برای فرستنده ارسال کند. پیشفرض --no-include-key-block است. همچنین گزینهٔ --auto-key-import را ببینید.
- --personal-cipher-preferences string
- فهرست اولویتهای رمزنگاری شخصی را روی string تنظیم میکند. از gpg --version برای دریافت فهرستی از الگوریتمهای موجود، و از none برای عدم تنظیم هیچ اولویتی استفاده کنید. این به کاربر اجازه میدهد با اطمینان الگوریتم انتخابشده بر اساس اولویتهای کلید گیرنده را بازنویسی کند، زیرا GPG تنها الگوریتمی را انتخاب خواهد کرد که برای تمام گیرندگان قابل استفاده باشد. بالاترین الگوریتم رمزنگاری در این فهرست همچنین برای دستور رمزنگاری متقارن --symmetric استفاده میشود.
- --personal-digest-preferences string
- فهرست اولویتهای خلاصهسازی شخصی را روی string تنظیم میکند. از gpg --version برای دریافت فهرستی از الگوریتمهای موجود، و از none برای عدم تنظیم هیچ اولویتی استفاده کنید. این به کاربر اجازه میدهد با اطمینان الگوریتم انتخابشده بر اساس اولویتهای کلید گیرنده را بازنویسی کند، زیرا GPG تنها الگوریتمی را انتخاب خواهد کرد که برای تمام گیرندگان قابل استفاده باشد. بالاترین الگوریتم خلاصهسازی در این فهرست همچنین هنگام امضا کردن بدون رمزنگاری (مانند --clear-sign یا --sign) استفاده میشود.
- --personal-compress-preferences string
- فهرست اولویتهای فشردهسازی شخصی را روی string تنظیم میکند. از gpg --version برای دریافت فهرستی از الگوریتمهای موجود، و از none برای عدم تنظیم هیچ اولویتی استفاده کنید. این به کاربر اجازه میدهد با اطمینان الگوریتم انتخابشده بر اساس اولویتهای کلید گیرنده را بازنویسی کند، زیرا GPG تنها الگوریتمی را انتخاب خواهد کرد که برای تمام گیرندگان قابل استفاده باشد. بالاترین الگوریتم فشردهسازی در این فهرست همچنین در مواردی که هیچ کلید گیرندهای برای در نظر گرفتن وجود ندارد (مانند --symmetric) استفاده میشود.
- --s2k-cipher-algo name
- استفاده از name بهعنوان الگوریتم رمزنگاری برای رمزنگاری متقارن با یک عبارت عبور، در صورتی که --personal-cipher-preferences و --cipher-algo مشخص نشده باشند. پیشفرض AES-128 است.
- --s2k-digest-algo name
- استفاده از name بهعنوان الگوریتم خلاصه که برای درهمسازی عبارتهای عبور جهت رمزنگاری متقارن استفاده میشود. پیشفرض SHA-1 است.
- --s2k-mode n
- نحوهٔ درهمسازی عبارتهای عبور برای رمزنگاری متقارن را انتخاب میکند. اگر n برابر 0 باشد، یک عبارت عبور ساده (که معمولاً توصیه نمیشود) استفاده خواهد شد، مقدار 1 یک نمک (که نباید استفاده شود) به عبارت عبور اضافه میکند و مقدار 3 (پیشفرض) کل فرایند را چندین بار تکرار میکند (به --s2k-count مراجعه کنید).
- --s2k-count n
- تعداد دفعات تکرار درهمسازی عبارت عبور برای رمزنگاری متقارن را مشخص میکند. این مقدار میتواند بین 1024 و 65011712 (شامل هر دو) باشد. مقدار پیشفرض از gpg-agent استعلام میشود. توجه داشته باشید که همهٔ مقادیر در بازهٔ 1024-65011712 مجاز نیستند و اگر یک مقدار غیرمجاز انتخاب شود، GnuPG آن را به سمت بالا به نزدیکترین مقدار مجاز گرد میکند. این گزینه تنها زمانی معنادار است که --s2k-mode روی مقدار پیشفرض 3 تنظیم شده باشد.
گزینههای سازگاری (Compliance options)
این گزینهها تعیین میکنند که GnuPG با چه استانداردی سازگار باشد. در هر لحظه تنها یکی از این گزینهها میتواند فعال باشد. اگر چندین گزینه مشخص شود، آخرین گزینه جایگزین سایر گزینهها خواهد شد. توجه داشته باشید که تنظیم پیشفرض تقریباً همیشه گزینه درست است. پیش از استفاده از یکی از این گزینهها، بخش INTEROPERABILITY WITH OTHER OPENPGP PROGRAMS را در ادامه ببینید.
- --gnupg
- استفاده از رفتار استاندارد GnuPG. این رفتار اکنون همان رفتار LibrePGP است، که یک پیشنویس پروتکل متفاوت بوده و در برخی موارد با OpenPGP همپوشانی دارد.
- --openpgp
- تنظیم تمام گزینههای بسته، رمزنگاری و خلاصهساز روی رفتار سازگار با OpenPGP (استاندارد RFC-9580). توجه داشته باشید که همه موارد RFC-9580 توسط GnuPG پیادهسازی نشده است. این گزینه پیشفرض است، بنابراین عموماً نیازی به آن نیست، اما برای جایگزین کردن یک گزینه سازگاری متفاوت در پرونده gpg.conf میتواند مفید باشد.
- --rfc4880
- تنظیم تمام گزینههای بسته، رمزنگاری و خلاصهساز روی رفتار دقیق RFC-4880. استاندارد RFC-4880 نسخه قدیمی استاندارد OpenPGP است. این گزینه بهطور ضمنی --allow-old-cipher-algos را فعال میکند.
- --rfc4880bis
- این گزینه منسوخ شده است؛ و به عنوان یک نام مستعار برای --gnupg در نظر گرفته میشود.
- --rfc2440
- تنظیم تمام گزینههای بسته، رمزنگاری و خلاصهساز روی رفتار دقیق RFC-2440. استاندارد RFC-2440 نسخه بسیار قدیمی OpenPGP است. توجه داشته باشید که با استفاده از این گزینه، بستههای رمزنگاری در یک حالت قدیمی بدون محافظت MDC ایجاد میشوند. این کار خطرناک است و بنابراین تنها باید برای آزمایشها استفاده شود. این گزینه بهطور ضمنی --allow-old-cipher-algos را فعال میکند. همچنین گزینه --ignore-mdc-error را ببینید.
- --pgp6
- این گزینه منسوخ شده است؛ و به عنوان یک نام مستعار برای --pgp7 در نظر گرفته میشود.
- --pgp7
- پیکربندی تمام گزینهها تا حد امکان سازگار با PGP 7. این حالت اجازه استفاده از الگوریتمهای رمزنگاری IDEA، 3DES، CAST5، AES128، AES192، AES256 و TWOFISH، توابع درهمسازی MD5، SHA1 و RIPEMD160، و الگوریتمهای فشردهسازی none و ZIP را میداد. این گزینه بهطور ضمنی --escape-from-lines را فعال کرده و --throw-keyids را غیرفعال میکند.
- --pgp8
- پیکربندی تمام گزینهها تا حد امکان سازگار با PGP 8. نگارش PGP 8 نسبت به نسخههای قبلی PGP بسیار به استاندارد OpenPGP نزدیکتر است، بنابراین تنها کاری که انجام میدهد غیرفعال کردن --throw-keyids و تنظیم --escape-from-lines است. تمام الگوریتمها به جز خلاصهسازهای SHA224، SHA384 و SHA512 مجاز هستند.
- --compliance string
- این گزینه میتواند بهجای یکی از گزینههای بالا استفاده شود. مقادیر معتبر برای string همان نام گزینههای بالا (بدون دو خط تیره) و احتمالاً موارد دیگری است که هنگام استفاده از "help" برای string نمایش داده میشوند.
- --min-rsa-length n
- این گزینه حالت سازگاری "de-vs" را برای الزامات سختگیرانهتر اندازه کلید تنظیم میکند. برای نمونه، مقدار 3000 کلیدهای rsa2048 و dsa2048 را به کلیدهای ناسازگار با VS-NfD تبدیل میکند.
- --require-compliance
- برای بررسی اینکه دادهها مطابق با قوانین حالت سازگاری فعلی رمزنگاری شدهاند یا خیر، کاربر gpg باید خطوط وضعیت را ارزیابی کند. این امر به رابطهای کاربری اجازه میدهد بررسی سازگاری را به شیوهای منعطفتر مدیریت کنند. با این حال، در استفاده در اسکریپتها، ارزیابی خط وضعیت نیازمند تلاش و کار زیادی است؛ این گزینه میتواند در عوض برای اطمینان از خروج ناموفق فرایند gpg در صورت برآورده نشدن قوانین سازگاری استفاده شود. توجه داشته باشید که این گزینه در حال حاضر تنها در حالت "de-vs" اثرگذار است.
انجام کارهایی که معمولاً تمایلی به انجامشان نیست
- -n
- --dry-run
- هیچ تغییری اعمال نمیکند (این قابلیت هنوز بهطور کامل پیادهسازی نشده است).
- --list-only
- رفتار برخی از دستورها را تغییر میدهد. این گزینه مانند --dry-run است اما در برخی موارد تفاوت دارد. معنا و کاربرد این گزینه ممکن است در آینده گسترش یابد. در حال حاضر فقط از مرحله رمزگشایی واقعی صرفنظر میکند و بنابراین امکان فهرستبندی سریع کلیدهای رمزنگاری را فراهم میسازد.
- -i
- --interactive
- پیش از رونویسی روی هر پرونده، تأیید میگیرد.
- --compatibility-flags flags
- تنظیم پرچمهای سازگاری برای دور زدن مشکلاتی که به دلیل کلیدها یا دادههای ناسازگار پیش میآیند. آرگومان flags به صورت فهرستی از نامهای پرچم ارائه میشود که با کاما از هم جدا شده و با یکدیگر OR منطقی میشوند. پرچم ویژه "none" فهرست را پاک کرده و امکان شروع مجدد با یک فهرست خالی را فراهم میکند. برای دریافت فهرستی از پرچمهای موجود، میتوان صرفاً از واژه "help" استفاده کرد.
- --debug-level level
- سطح اشکالزدایی را برای بررسی مشکلات انتخاب میکند. مقدار level میتواند یک مقدار عددی یا یک کلیدواژه باشد:
- none
- بدون هیچ اشکالزدایی. به جای این کلیدواژه میتوان از مقداری کمتر از 1 استفاده کرد.
- basic
- برخی پیامهای اشکالزدایی پایه. به جای این کلیدواژه میتوان از مقداری بین 1 و 2 استفاده کرد.
- advanced
- پیامهای اشکالزدایی با جزئیات بیشتر. به جای این کلیدواژه میتوان از مقداری بین 3 و 5 استفاده کرد.
- expert
- پیامهایی با جزئیات حتی بیشتر. به جای این کلیدواژه میتوان از مقداری بین 6 و 8 استفاده کرد.
- guru
- تمامی پیامهای اشکالزدایی ممکن. به جای این کلیدواژه میتوان از مقداری بزرگتر از 8 استفاده کرد. ایجاد پروندههای ردگیری هش تنها در صورتی فعال میشود که از این کلیدواژه استفاده شود.
نحوه نگاشت این پیامها به پرچمهای اشکالزدایی واقعی مشخص نشده است و ممکن است در نگارشهای جدیدتر این برنامه تغییر کند. با این حال، آنها به دقت انتخاب شدهاند تا بیشترین کمک را در اشکالزدایی ارائه دهند.
- --debug flags
- تنظیم پرچمهای اشکالزدایی. تمامی پرچمها با یکدیگر OR منطقی میشوند و flags میتواند در ساختار نگارشی زبان C (مانند 0x0042) یا به صورت فهرستی از نامهای پرچم که با کاما از هم جدا شدهاند، مشخص شود. برای دریافت فهرستی از همه پرچمهای پشتیبانیشده، میتوان از تکواژه "help" استفاده کرد. این گزینه تنها برای اشکالزدایی مفید است و رفتار آن ممکن است در هر زمان و بدون اطلاع قبلی تغییر کند.
- --debug-all
- تمامی پرچمهای اشکالزدایی کاربردی را تنظیم میکند.
- --debug-iolbf
- خروجی stdout را در حالت بافر خطی قرار میدهد. این گزینه تنها زمانی اعمال میشود که در خط فرمان مشخص شده باشد.
- --debug-set-iobuf-size n
- اندازه بافر IOBUFها را به n کیلوبایت تغییر میدهد. استفاده از 0 اندازه فعلی را چاپ میکند. توجه ویژه: این گزینه فقط مخصوص نگهدارندگان است و از این رو ممکن است در هر زمان و بدون اطلاع قبلی تغییر کند یا حذف شود.
- --debug-allow-large-chunks
- برای تسهیل آزمونها و آزمایشهای نرمافزاری، این گزینه امکان تعیین محدودهای تا سقف 4 EiB (--chunk-size 62) را فراهم میکند.
- --debug-ignore-expiration
- این گزینه تلاش میکند تاریخ انقضای برخی کلیدها را نادیده بگیرد. این گزینه فقط برای برخی آزمونهای رگرسیون کاربرد دارد.
- --faked-system-time epoch
- این گزینه
فقط برای
آزمایش
مفید است؛
زمان سیستم
را به گذشته
یا آینده به
epoch (تعداد
ثانیههای
سپریشده
از سال
۱۹۷۰) تغییر
میدهد.
همچنین
میتوان epoch
را به صورت
یک رشته
زمانی کامل
ISO (مانند "20070924T154812")
مشخص کرد.
اگر علامت تعجب (!) را به انتهای epoch بیفزایید، زمان سیستم در زمان تعیینشده منجمد (ثابت) به نظر خواهد رسید.
- --full-timestrings
- قالب زمانهای چاپشده ایجاد و انقضا را از صرفاً تاریخ، به تاریخ و زمان تغییر میدهد. این کار عموماً کاربردی ندارد و همین اطلاعات در هر صورت در حالت --with-colons نیز در دسترس است. این رشتههای طولانیتر با سایر دادههای چاپشده نیز چندان همتراز نمیشوند.
- --enable-progress-filter
- خروجیهای وضعیت PROGRESS خاصی را فعال میکند. این گزینه به رابطهای کاربری اجازه میدهد تا هنگام پردازش فایلهای بزرگتر توسط gpg، یک نشانگر پیشرفت نمایش دهند. استفاده از آن مقداری سربار عملکردی جزئی به همراه دارد.
- --status-fd n
- رشتههای وضعیت ویژه را در توصیفگر فایل n مینویسد. برای مشاهده فهرستی از آنها، پرونده DETAILS را در مستندات ببینید.
- --status-file file
- مشابه --status-fd، با این تفاوت که دادههای وضعیت در پرونده file نوشته میشوند.
- --logger-fd n
- خروجی گزارش (لاگ) را در توصیفگر فایل n مینویسد و نه در STDERR.
- --log-file file
- --logger-file file
- مشابه --logger-fd، با این تفاوت که دادههای ثبت وقایع در پرونده file نوشته میشوند. برای گزارشگیری روی یک سوکت از ‘socket://’ استفاده کنید.
- --log-time
- به ابتدای تمام خروجیهای گزارش یک برچسب زمانی اضافه میکند، حتی اگر از هیچ پرونده گزارشی استفاده نشود.
- --attribute-fd n
- زیربستههای مشخصه را در توصیفگر فایل n مینویسد. این گزینه بیشتر برای استفاده به همراه --status-fd کاربرد دارد، زیرا پیامهای وضعیت برای جداسازی زیربستههای مختلف از جریان دادههای ارسالشده به توصیفگر فایل لازم هستند.
- --attribute-file file
- مشابه --attribute-fd، با این تفاوت که دادههای مشخصه در پرونده file نوشته میشوند.
- --comment string
- --no-comments
- از string به عنوان رشته توضیح در امضاهای متن واضح و پیامها یا کلیدهای زرهدار اسکی استفاده میکند (گزینه --armor را ببینید). رفتار پیشفرض این است که از هیچ رشته توضیحی استفاده نشود. گزینه --comment را میتوان چندین بار تکرار کرد تا چندین رشته توضیح داشت. گزینه --no-comments تمام توضیحات را حذف میکند. ایده خوبی است که طول یک توضیح منفرد را زیر ۶۰ نویسه نگه دارید تا از بروز مشکلات ناشی از شکستن این خطوط در برنامههای ایمیل جلوگیری شود. توجه داشته باشید که خطوط توضیح نیز مانند سایر خطوط سرآیند، توسط امضا محافظت نمیشوند.
- --emit-version
- --no-emit-version
- گنجاندن رشته نگارش در خروجی زرهدار اسکی را اجباری میکند. اگر یک بار مشخص شود، تنها نام برنامه و شماره نگارش اصلی درج میشود؛ اگر دو بار مشخص شود، شماره فرعی نیز درج میشود؛ اگر سه بار مشخص شود، شماره خرد اضافه میشود؛ و اگر چهار بار مشخص شود، شناسه سیستمعامل نیز درج میشود. گزینه --no-emit-version (پیشفرض) خط نگارش را غیرفعال میکند.
- --sig-notation {name=value}
- --cert-notation {name=value}
- -N, --set-notation {name=value}
- جفت نام و
مقدار (name=value)
را به عنوان
دادههای
یادداشت (notation data)
درون امضا
قرار
میدهد. name
باید تنها
از
نویسههای
قابل چاپ یا
فاصله
تشکیل شده
باشد و باید
حاوی یک
نویسهٔ '@' به
صورت keyname@domain.example.com
باشد (البته
با جایگزین
کردن نام
کلید و نام
دامنهٔ
مناسب). این
کار برای
کمک به
جلوگیری از
آلودگی
فضای نام
یادداشتهای
رزروشدهٔ IETF
است. پرچم --expert
بررسی
نویسهٔ '@' را
لغو میکند.
value
میتواند
هر رشتهٔ
قابل چاپی
باشد؛ این
مقدار با
کدگذاری UTF-8
ذخیره
خواهد شد،
بنابراین
باید بررسی
کنید که --display-charset
شما به
درستی
تنظیم شده
باشد. اگر
قبل از name یک
علامت تعجب
(!) قرار
دهید،
دادههای
یادداشت به
عنوان
حیاتی (critical)
علامتگذاری
میشوند
(rfc4880:5.2.3.16). گزینهٔ
--sig-notation یک
یادداشت
برای
امضاهای
داده تعیین
میکند.
گزینهٔ --cert-notation
یک یادداشت
برای
امضاهای
کلید
(گواهیها
یا certifications) تعیین
میکند.
گزینهٔ --set-notation
هر دو را
تنظیم
میکند.
کدهای ویژهای وجود دارند که ممکن است در نامهای یادداشت به کار روند. "%k" به شناسهٔ کلید (key ID) کلیدی که امضا میشود باز میشود، "%K" به شناسهٔ کلید بلند کلیدی که امضا میشود، "%f" به اثرانگشت کلیدی که امضا میشود، "%s" به شناسهٔ کلیدِ کلید امضاکننده، "%S" به شناسهٔ کلید بلندِ کلید امضاکننده، "%g" به اثرانگشت کلید امضاکننده (که ممکن است یک زیرکلید باشد)، "%p" به اثرانگشت کلید اصلی کلید امضاکننده، "%c" به شمارندهٔ امضاها از کارت هوشمند OpenPGP، و "%%" به یک "%" تکی تبدیل میشود. کدهای %k، %K و %f تنها هنگام ایجاد یک امضای کلید (گواهی) معنادار هستند و %c تنها هنگام استفاده از کارت هوشمند OpenPGP معنا دارد.
- --known-notation name
- مقدار name را به فهرستی از یادداشتهای امضای حیاتیِ شناختهشده اضافه میکند. اثر این کار آن است که gpg امضایی را که حاوی یک یادداشت حیاتی با آن نام باشد، به عنوان امضای نامعتبر (bad) علامتگذاری نمیکند. توجه داشته باشید که gpg به طور پیشفرض تعدادی از نامهای یادداشتهای امضای حیاتی را میشناسد.
- --sig-policy-url string
- --cert-policy-url string
- --set-policy-url string
- از string به
عنوان یک
نشانی
خطمشی (Policy URL)
برای
امضاها
استفاده
میکند (rfc4880:5.2.3.20).
اگر پیش از
آن یک علامت
تعجب (!) قرار
دهید،
بستهٔ
نشانی
خطمشی به
عنوان
حیاتی
علامتگذاری
میشود.
گزینهٔ --sig-policy-url
یک نشانی
خطمشی
برای
امضاهای
داده تعیین
میکند.
گزینهٔ --cert-policy-url
یک نشانی
خطمشی
برای
امضاهای
کلید
(گواهیها)
تعیین
میکند.
گزینهٔ --set-policy-url
هر دو را
تعیین
میکند.
همان کدهای جایگزین % که برای دادههای یادداشت استفاده میشدند، در اینجا نیز در دسترس هستند.
- --sig-keyserver-url string
- از string به
عنوان یک
نشانی
کارگزار
کلید
ترجیحی
برای
امضاهای
داده
استفاده
میکند. اگر
پیش از آن
علامت تعجب
(!) قرار
دهید،
بستهٔ
نشانی
کارگزار
کلید به
عنوان
حیاتی
علامتگذاری
میشود.
همان کدهای جایگزین % که برای دادههای یادداشت استفاده میشدند، در اینجا نیز در دسترس هستند.
- --set-filename string
- از string به عنوان نام پروندهای که درون پیامها ذخیره میشود استفاده میکند. این گزینه رفتار پیشفرض را که استفاده از نام واقعی پروندهٔ در حال رمزنگاری است، لغو میکند. استفاده از یک رشتهٔ خالی برای string عملاً نام پرونده را از خروجی حذف میکند.
- --for-your-eyes-only
- --no-for-your-eyes-only
- پرچم `for your eyes only' را در پیام تنظیم میکند. این کار باعث میشود GnuPG از ذخیرهٔ پرونده خودداری کند، مگر اینکه گزینهٔ --output مشخص شده باشد، و PGP از یک "نمایشگر امن" با قلمی که ادعا میشود در برابر Tempest مقاوم است برای نمایش پیام استفاده کند. این گزینه بر --set-filename اولویت دارد. گزینهٔ --no-for-your-eyes-only این گزینه را غیرفعال میکند.
- --use-embedded-filename
- --no-use-embedded-filename
- تلاش
میکند
پروندهای
با نام
تعبیهشده
در دادهها
بسازد. این
گزینه
میتواند
خطرناک
باشد چرا که
با دادن
اختیار
نحوهٔ
ذخیرهٔ
پروندهها
به
فرستنده،
امکان
بازنویسی
پروندهها
را فراهم
میآورد.
پیشفرض no
است. توجه
داشته
باشید که
گزینهٔ --output
بر این
گزینه
اولویت
دارد.
رویکرد بهتر نسبت به استفاده از این گزینه، رمزگشایی در یک پرونده با نام موقت و سپس تغییر نام آن پرونده به نام پروندهٔ تعبیهشده پس از بررسی بیخطر بودن آن است. هنگام استفاده از گزینهٔ --status-fd، برنامهٔ gpg نام پرونده را به عنوان بخشی از پیام وضعیت PLAINTEXT اعلام میکند. اگر نام پرونده مهم است، استفاده از gpgtar گزینهٔ دیگری است، زیرا gpgtar هرگز یک پرونده را بازنویسی نمیکند، بلکه پروندهها را درون یک پوشهٔ جدید رمزگشایی میکند.
همچنین توجه داشته باشید مگر در حالتی که از یک امضای نوین نسخهٔ ۵ استفاده شود، نام پروندهٔ تعبیهشده بخشی از دادههای امضاشده نخواهد بود.
- --cipher-algo name
- از name بهعنوان الگوریتم رمزنگاری استفاده میکند. اجرای برنامه با دستور --version فهرستی از الگوریتمهای پشتیبانیشده را ارائه میدهد. اگر از این گزینه استفاده نشود، الگوریتم رمزنگاری از ترجیحات ذخیرهشده همراه با کلید انتخاب میشود. بهطور کلی، توصیه نمیشود از این گزینه استفاده کنید زیرا به شما اجازه میدهد استاندارد OpenPGP را نقض کنید. گزینهٔ --personal-cipher-preferences روش امن برای انجام همین کار است.
- --digest-algo name
- از name بهعنوان الگوریتم خلاصه پیام استفاده میکند. اجرای برنامه با دستور --version فهرستی از الگوریتمهای پشتیبانیشده را ارائه میدهد. بهطور کلی، توصیه نمیشود از این گزینه استفاده کنید چرا که به شما اجازه میدهد استاندارد OpenPGP را نقض کنید. گزینهٔ --personal-digest-preferences روش امن برای انجام همین کار است.
- --compress-algo name
- از
الگوریتم
فشردهسازی
name استفاده
میکند.
مقدار "zlib"
همان
فشردهسازی
RFC-1950 ZLIB است.
مقدار "zip"
فشردهسازی
RFC-1951 ZIP است که
توسط PGP
استفاده
میشود.
مقدار "bzip2"
یک طرح
فشردهسازی
مدرنتر
است که
میتواند
برخی موارد
را بهتر از zip
یا zlib فشرده
کند، اما به
بهای مصرف
حافظهٔ
بیشتر در
حین
فشردهسازی
و بازگشایی
فشردهسازی
تمام
میشود.
مقادیر "uncompressed"
یا "none"
فشردهسازی
را غیرفعال
میکنند.
اگر از این
گزینه
استفاده
نشود،
رفتار
پیشفرض
این است که
ترجیحات
کلید
دریافتکننده
بررسی شود
تا مشخص
گردد
دریافتکننده
از چه
الگوریتمهایی
پشتیبانی
میکند. در
صورت عدم
موفقیت، از
ZIP برای
حداکثر
سازگاری
استفاده
میشود.
فشردهسازی ZLIB ممکن است نتایج بهتری نسبت به ZIP ارائه دهد، چرا که اندازهٔ پنجرهٔ فشردهسازی به 8k محدود نیست. الگوریتم BZIP2 حتی ممکن است نتایج فشردهسازی بهتری نسبت به آن داشته باشد، اما حافظهٔ بسیار بیشتری را در طول فشردهسازی و بازگشایی مصرف خواهد کرد. این موضوع ممکن است در شرایط کمبود حافظه قابل توجه باشد. با این حال، توجه داشته باشید که PGP (تمام نسخهها) تنها از فشردهسازی ZIP پشتیبانی میکند. استفاده از هر الگوریتمی بهجز ZIP یا "none" باعث غیرقابل خواندن شدن پیام با PGP خواهد شد. بهطور کلی، توصیه نمیشود از این گزینه استفاده کنید زیرا به شما اجازه میدهد استاندارد OpenPGP را نقض کنید. گزینهٔ --personal-compress-preferences روش امن برای انجام همین کار است.
- --cert-digest-algo name
- از name بهعنوان الگوریتم خلاصه پیام مورد استفاده هنگام امضای یک کلید استفاده میکند. اجرای برنامه با دستور --version فهرستی از الگوریتمهای پشتیبانیشده را ارائه میدهد. آگاه باشید که اگر الگوریتمی را انتخاب کنید که GnuPG از آن پشتیبانی میکند ولی سایر پیادهسازیهای OpenPGP پشتیبانی نمیکنند، در این صورت برخی از کاربران قادر به استفاده از امضاهای کلیدی که ایجاد کردهاید نخواهند بود، یا حتی احتمالاً کل کلید شما غیرقابل استفاده خواهد شد. همچنین توجه داشته باشید که الگوریتم کلید عمومی باید با الگوریتم خلاصه پیام مشخصشده سازگار باشد؛ بنابراین انتخاب یک الگوریتم خلاصه پیام دلخواه ممکن است منجر به پیامهای خطا از لایههای رمزنگاری زیرین شده یا به رخنه و آسیبپذیریهای امنیتی منجر شود.
- --disable-cipher-algo name
- هرگز اجازهٔ استفاده از name را بهعنوان الگوریتم رمزنگاری نمیدهد. نام دادهشده بررسی نخواهد شد تا الگوریتمی که بعداً بارگذاری میشود نیز همچنان غیرفعال گردد.
- --disable-pubkey-algo name
- هرگز اجازهٔ استفاده از name را بهعنوان الگوریتم کلید عمومی نمیدهد. نام دادهشده بررسی نخواهد شد تا الگوریتمی که بعداً بارگذاری میشود نیز همچنان غیرفعال گردد.
- --throw-keyids
- --no-throw-keyids
- شناسههای کلید دریافتکننده را درون پیامهای رمزنگاریشده قرار نمیدهد. این به پنهان کردن دریافتکنندگان پیام کمک میکند و یک تدبیر متقابل محدود در برابر تحلیل ترافیک است. ([با استفاده از کمی مهندسی اجتماعی، هر کسی که قادر به رمزگشایی پیام باشد میتواند بررسی کند که آیا یکی از سایر دریافتکنندگان همان فرد مورد سوءظن او است یا خیر.]) در سمت دریافتکننده، ممکن است فرآیند رمزگشایی کُند شود، چرا که باید تمام کلیدهای مخفیِ موجود بررسی شوند. گزینهٔ --no-throw-keyids این گزینه را غیرفعال میکند. این گزینه اساساً معادل استفاده از --hidden-recipient برای تمام دریافتکنندگان است.
- --not-dash-escaped
- این گزینه رفتار امضاهای متنواضح (cleartext signatures) را تغییر میدهد تا بتوان از آنها برای فایلهای وصله (patch) استفاده کرد. نباید چنین فایل زرهپوشی را از طریق ایمیل ارسال کنید، چرا که تمام فاصلهها و پایان خطوط نیز هش میشوند. نمیتوانید از این گزینه برای دادههایی استفاده کنید که در ابتدای یک خط دارای ۵ خط تیره هستند؛ فایلهای وصله چنین چیزی ندارند. یک خط سرآیند زرهی ویژه، GnuPG را از این گزینهٔ امضای متنواضح مطلع میسازد.
- --escape-from-lines
- --no-escape-from-lines
- از آنجا که برخی از کارگزارهای ایمیل خطوطی را که با "From " آغاز میشوند به ">From " تغییر میدهند، هنگام ایجاد امضاهای متنآشکار (cleartext) بهتر است با چنین خطوطی به شیوهای ویژه رفتار شود تا از خراب شدن امضا توسط سامانه ایمیل جلوگیری به عمل آید. توجه داشته باشید که تمام نسخههای دیگر PGP نیز این کار را به همین صورت انجام میدهند. بهطور پیشفرض فعال است. --no-escape-from-lines این گزینه را غیرفعال میکند.
- --passphrase-repeat n
- مشخص میکند که gpg چند بار تکرار یک عبارت عبور جدید را درخواست کند. این ویژگی برای کمک به خاطر سپردن عبارت عبور مفید است. مقدار پیشفرض ۱ بار تکرار است؛ میتوان آن را روی 0 تنظیم کرد تا تکرار عبارت عبور غیرفعال شود. توجه داشته باشید که اگر n بزرگتر از ۱ باشد، پنجره pinentry حتی در صورت استفاده از یک pinentry مدرن با دو فیلد ورودی، n+1 بار باز خواهد شد.
- --passphrase-fd n
- عبارت عبور
را از
توصیفکننده
فایل (file descriptor) n
میخواند.
تنها خط
نخست از
توصیفکننده
فایل n
خوانده
خواهد شد.
اگر از 0
برای n
استفاده
کنید،
عبارت عبور
از STDIN خوانده
خواهد شد.
این گزینه
تنها در
صورتی قابل
استفاده
است که فقط
یک عبارت
عبور ارائه
شده باشد.
توجه داشته باشید که از نسخه 2.0 به بعد، این عبارت عبور تنها زمانی استفاده میشود که گزینه --batch نیز داده شده باشد. از نسخه 2.1، گزینه --pinentry-mode نیز باید روی loopback تنظیم شود.
- --passphrase-file file
- عبارت عبور
را از فایل
file
میخواند.
تنها خط
نخست از
فایل file
خوانده
خواهد شد.
این گزینه
تنها در
صورتی قابل
استفاده
است که فقط
یک عبارت
عبور ارائه
شده باشد.
بدیهی است
در صورتی که
سایر
کاربران
بتوانند
این فایل را
بخوانند،
عبارت
عبوری که در
یک فایل
ذخیره شده
باشد از
امنیت
مشکوک و
غیرقابلاطمینانی
برخوردار
است. در
صورت امکان
از این
گزینه
استفاده
نکنید.
توجه داشته باشید که از نسخه 2.0 به بعد، این عبارت عبور تنها زمانی استفاده میشود که گزینه --batch نیز داده شده باشد. از نسخه 2.1، گزینه --pinentry-mode نیز باید روی loopback تنظیم شود.
- --passphrase string
- از string به
عنوان
عبارت عبور
استفاده
میکند. این
گزینه تنها
در صورتی
قابل
استفاده
است که فقط
یک عبارت
عبور ارائه
شده باشد.
بدیهی است
که در یک
سامانه
چندکاربره،
این کار از
نظر امنیتی
بسیار جای
تردید دارد.
در صورت
امکان از
این گزینه
استفاده
نکنید.
توجه داشته باشید که از نسخه 2.0 به بعد، این عبارت عبور تنها زمانی استفاده میشود که گزینه --batch نیز داده شده باشد. از نسخه 2.1، گزینه --pinentry-mode نیز باید روی loopback تنظیم شود.
- --pinentry-mode mode
- حالت pinentry را روی mode تنظیم میکند. مقادیر مجاز برای mode عبارتند از:
- default
- استفاده از مقدار پیشفرض agent، که ask است.
- ask
- اجبار در استفاده از Pinentry.
- cancel
- شبیهسازی استفاده از دکمه لغو (cancel) در Pinentry.
- error
- بازگرداندن خطای Pinentry (``No Pinentry'').
- loopback
- هدایت پرسوجوهای Pinentry به فراخواننده. توجه داشته باشید که برخلاف Pinentry، اگر کاربر گذرواژه اشتباهی وارد کند، دوباره از او درخواست نمیشود.
- --no-symkey-cache
- حافظه موقت (cache) عبارت عبور را که برای رمزگذاری و رمزگشایی متقارن استفاده میشود، غیرفعال میکند. این حافظه موقت بر پایه مقدار salt مخصوص پیام است (ر.ک. --s2k-mode).
- --request-origin origin
- به gpg اعلام میکند فرض کند که عملیات در نهایت از origin نشأت گرفته است. بسته به مبدأ، محدودیتهای خاصی اعمال میشود و ممکن است Pinentry یادداشت اضافهای درباره مبدأ درج کند. مقادیر پشتیبانیشده برای origin عبارتند از: local که پیشفرض است، remote برای نشان دادن مبدأ دوردست، یا browser برای عملیاتی که توسط مرورگر وب درخواست شده است.
- --command-fd n
- این یک جایگزین برای حالت منسوخشدهٔ IPC از نوع حافظهٔ اشتراکی است. اگر این گزینه فعال باشد، ورودی کاربر برای پرسشها به جای TTY، از توصیفگر فایل ارائهشده انتظار میرود. این گزینه باید همراه با --status-fd استفاده شود. برای جزئیات در مورد نحوهٔ استفاده از آن، پروندهٔ doc/DETAILS را در توزیع کد منبع ببینید.
- --command-file file
- مشابه --command-fd، با این تفاوت که دستورات از پروندهٔ file خوانده میشوند.
- --allow-non-selfsigned-uid
- --no-allow-non-selfsigned-uid
- اجازه دادن به وارد کردن و استفاده از کلیدهایی با شناسهٔ کاربری که خود-امضاشده نیستند. این کار توصیه نمیشود، زیرا جعل یک شناسهٔ کاربری فاقد خود-امضا بسیار ساده است. --no-allow-non-selfsigned-uid این قابلیت را غیرفعال میکند.
- --allow-freeform-uid
- غیرفعال کردن تمام بررسیها روی قالب شناسهٔ کاربری هنگام تولید یک شناسهٔ جدید. این گزینه فقط باید در محیطهای بسیار خاص استفاده شود، زیرا قالب استاندارد بالفعل (de-facto) شناسههای کاربری را تضمین نمیکند.
- --ignore-time-conflict
- GnuPG در حالت عادی بررسی میکند که برچسبهای زمانی مرتبط با کلیدها و امضاها مقادیر معقولی داشته باشند. با این حال، گاهی اوقات به دلیل مشکلات ساعت سیستم، ممکن است یک امضا قدیمیتر از کلید به نظر برسد. این گزینه باعث میشود این بررسیها صرفاً به یک هشدار تبدیل شوند. همچنین برای مشکلات برچسب زمانی در زیرکلیدها، --ignore-valid-from را ببینید.
- --ignore-valid-from
- GnuPG در حالت عادی زیرکلیدهایی که در آینده ایجاد شدهاند را انتخاب و استفاده نمیکند. این گزینه امکان استفاده از چنین کلیدهایی را فراهم میکند و در نتیجه رفتار نسخههای پیش از 1.0.7 را ارائه میدهد. شما نباید از این گزینه استفاده کنید مگر اینکه مشکلی در ساعت سیستم وجود داشته باشد. همچنین برای مسائل برچسب زمانی امضاها، --ignore-time-conflict را ببینید.
- --ignore-crc-error
- قالب ASCII armor مورد استفادهٔ OpenPGP با یک چکسام CRC در برابر خطاهای انتقال محافظت میشود. گاهی اوقات ممکن است CRC در جایی از کانال انتقال مخدوش شود اما محتوای واقعی (که در هر صورت توسط پروتکل OpenPGP محافظت میشود) همچنان سالم باشد. این گزینه به GnuPG اجازه میدهد تا خطاهای CRC را نادیده بگیرد.
- --ignore-mdc-error
- این گزینه شکست حفاظت از یکپارچگی MDC را به یک هشدار تبدیل میکند. استفاده از آن برای رمزگشایی پیامهای قدیمی که از MDC استفاده نکردهاند ضروری است. همچنین ممکن است زمانی مفید باشد که پیامی تا حدی مخدوش شده است، اما استخراج بیشترین دادهٔ ممکن از آن پیام مخدوش لازم است. آگاه باشید که نبود یا شکست MDC میتواند نشانهای از یک حمله باشد. با احتیاط فراوان استفاده کنید؛ همچنین گزینهٔ --rfc2440 را ببینید.
- --allow-old-cipher-algos
- الگوریتمهای رمزنگاری قدیمی مانند 3DES، IDEA یا CAST5 دادهها را با بلوکهای ۶۴ بیتی رمزگذاری میکنند؛ در حالی که الگوریتمهای مدرن به جای آن از بلوکهای ۱۲۸ بیتی استفاده میکنند. برای جلوگیری از حملاتی خاص روی این الگوریتمهای قدیمی، پیشنهاد میشود بیش از 150 MiByte را با همان کلید رمزگذاری نکنید. به همین دلیل gpg استفاده از الگوریتمهای با اندازهٔ بلوک ۶۴ بیت را برای رمزگذاری مجاز نمیداند، مگر اینکه این گزینه مشخص شده باشد. برخی از حالتهای انطباق (compliance modes) از پیش این پرچم را تنظیم یا پاک میکنند و بنابراین این پرچم باید پس از تنظیم حالت انطباق استفاده شود.
- --allow-weak-digest-algos
- امضاهای ایجادشده با الگوریتمهای خلاصهٔ شناختهشده به عنوان ضعیف، به طور معمول با پیام ``invalid digest algorithm'' رد میشوند. این گزینه امکان اعتبارسنجی امضاهای ایجادشده با چنین الگوریتمهای ضعیفی را فراهم میکند. MD5 تنها الگوریتم خلاصهای است که به صورت پیشفرض ضعیف در نظر گرفته میشود. همچنین برای رد کردن سایر الگوریتمهای خلاصه، --weak-digest را ببینید.
- --weak-digest name
- در نظر گرفتن الگوریتم خلاصهٔ مشخصشده به عنوان ضعیف. امضاهای ایجادشده بر روی الگوریتمهای خلاصهٔ ضعیف به طور معمول رد میشوند. اگر قرار است چندین الگوریتم ضعیف در نظر گرفته شوند، این گزینه میتواند چندین بار مشخص شود. همچنین برای غیرفعال کردن رد خلاصههای ضعیف، --allow-weak-digest-algos را ببینید. MD5 همیشه ضعیف در نظر گرفته میشود و نیازی به ذکر صریح آن نیست.
- --allow-weak-key-signatures
- برای جلوگیری از خطر جزئی حملات برخورد (collision attacks) روی امضاهای کلید شخص ثالث که با SHA-1 ایجاد شدهاند، آن امضاهای کلید نامعتبر در نظر گرفته میشوند. این گزینه به کاربر اجازه میدهد این محدودیت را لغو کند.
- --override-compliance-check
- این گزینهای بود که موقتاً معرفی شده بود و دیگر هیچ تأثیری ندارد.
- --no-default-keyring
- دستهکلید
پیشفرض را
به فهرست
دستهکلیدها
اضافه
نمیکند.
توجه داشته
باشید که GnuPG
برای
تقریباً
تمامی
عملیات به
یک
دستهکلید
نیاز دارد.
بنابراین
اگر از این
گزینه
استفاده
کنید و
دستهکلیدهای
جایگزین را
از طریق --keyring
ارائه
نکنید، GnuPG
همچنان از
دستهکلید
پیشفرض
استفاده
خواهد کرد.
توجه داشته باشید که اگر گزینه use-keyboxd در ‘common.conf’ فعال باشد، اصلاً از هیچ دستهکلیدی استفاده نمیشود و همه کلیدها توسط فرایند keyboxd در پایگاه داده اختصاصی خودش نگهداری میشوند.
- --no-keyring
- بههیچوجه از هیچ دستهکلیدی استفاده نمیکند. این گزینه، حالت پیشفرض و تمام گزینههایی را که دستهکلیدها را مشخص میکنند لغو میکند.
- --skip-verify
- از مرحله اعتبارسنجی امضا صرفنظر میکند. در صورتی که به اعتبارسنجی امضا نیازی نباشد، میتوان از این گزینه برای بالا بردن سرعت رمزگشایی استفاده کرد.
- --with-key-data
- فهرست کلیدها را با علامت دونقطه جدا کرده و چاپ میکند (مانند --with-colons) و دادههای کلید عمومی را نمایش میدهد.
- --list-signatures
- --list-sigs
- همانند --list-keys است، اما امضاها نیز فهرست میشوند. این دستور همان اثر استفاده از --list-keys به همراه --with-sig-list را دارد. توجه داشته باشید که بر خلاف --check-signatures، امضاهای کلید اعتبارسنجی نمیشوند. از این دستور میتوان برای ایجاد فهرستی از کلیدهای امضاکنندهای که در دستهکلید محلی وجود ندارند استفاده کرد؛ برای مثال:
gpg --list-sigs --with-colons USERID | \
awk -F: '$1=="sig" && $2=="?" {if($13){print $13}else{print $5}}'
- --fast-list-mode
- خروجی دستورات فهرست را به گونهای تغییر میدهد که سریعتر کار کنند؛ این امر با خالی گذاشتن برخی از بخشها حاصل میشود. برخی از برنامهها نیازی به شناسه کاربر و اطلاعات اعتماد ارائهشده در فهرستها ندارند. با استفاده از این گزینه آنها میتوانند فهرست سریعتری دریافت کنند. رفتار دقیق این گزینه ممکن است در نسخههای آینده تغییر کند. اگر به برخی اطلاعات دسترسی ندارید، از این گزینه استفاده نکنید.
- --no-literal
- این گزینه برای استفاده عادی نیست. برای مشاهده کاربردهای احتمالی آن، به کد منبع مراجعه کنید.
- --set-filesize
- این گزینه برای استفاده عادی نیست. برای مشاهده کاربردهای احتمالی آن، به کد منبع مراجعه کنید.
- --show-session-key
- کلید نشست
استفادهشده
برای یک
پیام را
نمایش
میدهد.
برای گزینه
مکمل یا
معادل این
گزینه به
--override-session-key
مراجعه
کنید.
ما معتقدیم که امانتگذاری کلید (Key Escrow) چیز بدی است؛ با این حال کاربر باید این آزادی را داشته باشد که تصمیم بگیرد به زندان برود یا محتوای یک پیام مشخص را بدون به خطر انداختن تمام پیامهایی که تا به حال برای یک کلید مخفی رمزنگاری شدهاند، فاش کند.
همچنین اگر پیام رمزنگاریشدهای دریافت کردید که توهینآمیز یا آزاردهنده است، میتوانید از این گزینه استفاده کنید تا به مدیران سیستم پیامرسانی ثابت کنید که متن رمزنگاریشده ارسالی متناظر با یک متن آشکار نامناسب است تا آنها بتوانند علیه کاربر متخلف اقدام کنند.
- --override-session-key string
- --override-session-key-fd fd
- به جای کلید عمومی، از کلید نشست string یا به عبارتی کلید نشستی که از سطر اول خواندهشده از توصیفگر فایل fd دریافت میشود، استفاده میکند. قالب این رشته همانند قالبی است که توسط --show-session-key چاپ میشود. این گزینه معمولاً استفاده نمیشود، اما در صورتی که فردی شما را مجبور به افشای محتوای یک پیام رمزنگاریشده کند، به کار میآید؛ با استفاده از این گزینه میتوانید این کار را بدون در اختیار گذاشتن کلید مخفی انجام دهید. توجه داشته باشید که استفاده از --override-session-key ممکن است کلید نشست را از طریق جدول سراسری فرایندها برای تمام کاربران محلی افشا کند. اغلب ترکیب این گزینه با --no-keyring مفید واقع میشود.
- --ask-sig-expire
- --no-ask-sig-expire
- هنگام ایجاد یک امضای داده، زمان انقضا پرسیده میشود. اگر این گزینه مشخص نشده باشد، زمان انقضای تنظیمشده از طریق --default-sig-expire استفاده میشود. --no-ask-sig-expire این گزینه را غیرفعال میکند.
- --default-sig-expire
- زمان انقضای پیشفرض برای استفاده در انقضای امضا. مقادیر معتبر عبارتند از "0" برای بدون انقضا، یک عدد به همراه حرف d (برای روزها)، w (برای هفتهها)، m (برای ماهها) یا y (برای سالها) (برای مثال "2m" برای دو ماه، یا "5y" برای پنج سال)، یا یک تاریخ دقیق به صورت YYYY-MM-DD. مقدار پیشفرض "0" است.
- --ask-cert-expire
- --no-ask-cert-expire
- هنگام ایجاد یک امضای کلید، زمان انقضا پرسیده میشود. اگر این گزینه مشخص نشده باشد، زمان انقضای تنظیمشده از طریق --default-cert-expire استفاده میشود. --no-ask-cert-expire این گزینه را غیرفعال میکند.
- --default-cert-expire
- زمان انقضای پیشفرض برای استفاده در انقضای امضای کلید. مقادیر معتبر عبارتند از "0" برای بدون انقضا، یک عدد به همراه حرف d (برای روزها)، w (برای هفتهها)، m (برای ماهها) یا y (برای سالها) (برای مثال "2m" برای دو ماه، یا "5y" برای پنج سال)، یا یک تاریخ دقیق به صورت YYYY-MM-DD. مقدار پیشفرض "0" است.
- --default-new-key-algo string
- از این گزینه میتوان برای تغییر الگوریتمهای پیشفرض برای تولید کلید استفاده کرد. مقدار string مشابه آرگومانهای مورد نیاز برای دستور --quick-add-key است اما تفاوتهای جزئی دارد. برای اطلاع از جزئیات باید کد منبع را بررسی کنید. توجه داشته باشید که دستورات پیشرفتهٔ تولید کلید همیشه میتوانند برای تعیین مستقیم الگوریتم کلید استفاده شوند. تنظیم یک حالت سازگاری (compliance mode) این پرچم را تنظیم یا پاک میکند، بنابراین باید فقط پس از تنظیم حالت سازگاری استفاده شود.
- --no-auto-trust-new-key
- هنگام ایجاد یک کلید جدید، ownertrust (میزان اعتماد مالک) کلید جدید روی ultimate تنظیم میشود. این گزینه این رفتار را غیرفعال میکند و کاربر باید به صورت دستی یک مقدار ownertrust تعیین کند.
- --force-sign-key
- این گزینه رفتار دستورات --quick-sign-key، --quick-lsign-key و زیردستورهای "sign" در --edit-key را با اجبار به ایجاد یک امضای کلید، حتی اگر از قبل وجود داشته باشد، تغییر میدهد.
- --forbid-gen-key
- این گزینه برای استفاده در پروندهٔ پیکربندی سراسری در نظر گرفته شده است تا استفاده از دستورات تولید کلید را ممنوع کند. آن دستورات سپس با کد خطای Not Enabled با شکست مواجه خواهند شد.
- --allow-secret-key-import
- این یک گزینهٔ منسوخ است و در هیچکجا استفاده نمیشود.
- --allow-multiple-messages
- --no-allow-multiple-messages
- اینها گزینههای منسوخ هستند؛ آنها از زمان GnuPG 2.2.8 دیگر هیچ اثری ندارند.
- --enable-special-filenames
- این گزینه حالتی را فعال میکند که در آن نام پروندهها به شکل ‘-&n’، که در آن n یک عدد دهدهی غیرمنفی است، به توصیفکنندهٔ پروندهٔ n اشاره دارند و نه به پروندهای با آن نام.
- --no-expensive-trust-checks
- تنها برای استفادهٔ آزمایشی.
- --preserve-permissions
- دسترسیهای یک دسته کلید محرمانه (secret keyring) را مجدداً به فقط خواندن/نوشتن برای کاربر بازنگردانید. تنها در صورتی از این گزینه استفاده کنید که واقعاً بدانید چه کاری انجام میدهید.
- --default-preference-list string
- فهرست اولویتهای پیشفرض را روی string تنظیم میکند. این فهرست اولویتها برای کلیدهای جدید استفاده میشود و به مقدار پیشفرض برای "setpref" در منوی --edit-key تبدیل میشود.
- --default-keyserver-url name
- نشانی URL سرور کلید پیشفرض را روی name تنظیم میکند. این سرور کلید به عنوان URL سرور کلید هنگام نوشتن یک خودامضای جدید روی یک کلید، که شامل تولید کلید و تغییر ترجیحات میشود، استفاده خواهد شد.
- --list-config
- پارامترهای مختلف پیکربندی داخلی GnuPG را نمایش میدهد. این گزینه برای برنامههای خارجی در نظر گرفته شده است که GnuPG را برای انجام وظایف فراخوانی میکنند و بنابراین عموماً کاربردی ندارد. برای آگاهی از جزئیات مواردی از پیکربندی که ممکن است فهرست شوند، پروندهٔ ‘doc/DETAILS’ را در توزیع کد منبع ببینید. --list-config تنها در صورتی قابل استفاده است که --with-colons تنظیم شده باشد.
- --list-gcrypt-config
- پارامترهای مختلف پیکربندی داخلی Libgcrypt را نمایش میدهد.
- --gpgconf-list
- این دستور شبیه به --list-config است، اما در کل تنها به صورت داخلی توسط ابزار gpgconf استفاده میشود.
- --gpgconf-test
- این عملیات کموبیش یک اقدام صوری است. با این حال پروندهٔ پیکربندی را تجزیه میکند و در صورتی که پروندهٔ پیکربندی مانع از راهاندازی gpg شود، با وضعیت شکست بازمیگردد. بنابراین میتواند برای بررسی نحو روی پروندهٔ پیکربندی استفاده شود.
- --chuid uid
- کاربر فعلی را به uid تغییر میدهد که میتواند یک عدد یا یک نام باشد. این گزینه میتواند از حساب کاربری root برای اجرای gpg برای کاربری دیگر استفاده شود. اگر uid شناسهٔ UID فعلی نباشد، یک PATH استاندارد تنظیم شده و متغیر محیطی GNUPGHOME لغو تنظیم میشود. برای بازنویسی مورد اخیر، میتوان از گزینهٔ --homedir استفاده کرد. این گزینه تنها زمانی اثر دارد که در خط فرمان به کار رود. این گزینه در حال حاضر هیچ اثری روی Windows ندارد.
گزینههای منسوخشده (Deprecated options)
- -t, --textmode
- --no-textmode
- پروندههای ورودی را به عنوان متن در نظر میگیرد و آنها را در قالب متنی متعارف OpenPGP با پایان خطهای استاندارد "CRLF" ذخیره میکند. این کار همچنین پرچمهای لازم را تنظیم میکند تا به گیرنده اطلاع دهد که دادههای رمزگذاریشده یا امضاشده از نوع متن هستند و ممکن است نیاز باشد پایان خطهای آنها به هر آنچه سیستم محلی استفاده میکند بازگردانده شود. این گزینه هنگام برقراری ارتباط بین دو پلتفرم با قراردادهای متفاوت پایان خط (مانند UNIX-like به Mac، Mac به Windows و غیره) مفید بود. --no-textmode این گزینه را غیرفعال میکند و حالت پیشفرض است. توجه داشته باشید که این یک گزینهٔ قدیمی است که دیگر نباید توسط هیچ نرمافزار مدرنی استفاده شود.
- --force-v3-sigs
- --no-force-v3-sigs
- --force-v4-certs
- --no-force-v4-certs
- این گزینهها منسوخ شدهاند و از نسخهٔ GnuPG 2.1 به بعد هیچ اثری ندارند.
- --show-photos
- --no-show-photos
- باعث میشود که --list-keys، --list-signatures، --list-public-keys، --list-secret-keys و اعتبارسنجی یک امضا، شناسهٔ تصویری (photo ID) پیوستشده به کلید را نیز در صورت وجود نمایش دهند. همچنین --photo-viewer را ببینید. این گزینهها منسوخ شدهاند. به جای آنها از --list-options [no-]show-photos و/یا --verify-options [no-]show-photos استفاده کنید.
- --show-keyring
- نام دستهکلید (keyring) را در ابتدای فهرست کلیدها نمایش میدهد تا مشخص شود یک کلید معین در کدام دستهکلید قرار دارد. این گزینه منسوخ شده است: به جای آن از --list-options [no-]show-keyring استفاده کنید.
- --show-notation
- --no-show-notation
- نمایش یادداشتهای امضا در فهرستهای --list-signatures یا --check-signatures و همچنین هنگام وارسی امضایی که حاوی یادداشت است. این گزینهها منسوخ شدهاند. در عوض از --list-options [no-]show-notation و/یا --verify-options [no-]show-notation استفاده کنید.
- --show-policy-url
- --no-show-policy-url
- نمایش URLهای خطمشی در فهرستهای --list-signatures یا --check-signatures و همچنین هنگام وارسی امضایی که حاوی URL خطمشی است. این گزینهها منسوخ شدهاند. در عوض از --list-options [no-]show-policy-url و/یا --verify-options [no-]show-policy-url استفاده کنید.
- --personal-aead-preferences string
- این گزینه منسوخ شده است و از نسخه 2.3.9 به بعد دیگر هیچ تأثیری ندارد.
- --aead-algo name
- این گزینه منسوخ شده است و از نسخه 2.3.9 به بعد دیگر هیچ تأثیری ندارد.
مثالها (EXAMPLES)
- gpg -se -r Bob file
- امضا و رمزنگاری برای کاربر Bob
- gpg --clear-sign file
- ایجاد یک امضای متنآشکار
- gpg -sb file
- ایجاد یک امضای مجزا
- gpg -u 0x12345678 -sb file
- ایجاد یک امضای مجزا با کلید 0x12345678
- gpg --list-keys user_ID
- نمایش کلیدها
- gpg --fingerprint user_ID
- نمایش اثرانگشت
- gpg --verify pgpfile
- gpg --verify sigfile [datafile]
- وارسی امضای پرونده بدون نمایش دادهها در خروجی مگر آنکه درخواست شده باشد. شکل دوم برای امضاهای مجزا به کار میرود، که در آن sigfile امضای مجزا (خواه با زره ASCII یا باینری) و datafile دادههای امضاشده است؛ اگر این مورد مشخص نشود، نام پرونده حاوی دادههای امضاشده با حذف پسوند (".asc" یا ".sig") از sigfile یا با پرسش نام پرونده از کاربر تعیین میشود. اگر از گزینه --output نیز استفاده شود، دادههای امضاشده در پرونده مشخصشده توسط آن گزینه نوشته میشوند؛ برای نوشتن دادههای امضاشده در stdout از - استفاده کنید.
نحوه تعیین شناسه کاربر (HOW TO SPECIFY A USER ID)
روشهای متفاوتی برای تعیین یک شناسه کاربر در GnuPG وجود دارد. برخی از آنها تنها برای gpg معتبر هستند و برخی دیگر فقط برای gpgsm مناسباند. در اینجا فهرست کامل روشهای تعیین یک کلید آورده شده است:
- بر اساس شناسه کلید (By key Id).
- این قالب از
روی طول
رشته و
محتوای آن
یا پیشوند
0x تشخیص
داده
میشود.
شناسه کلید
یک گواهی X.509،
شامل ۶۴ بیت
کمارزشتر
اثرانگشت SHA-1
آن است.
استفاده از
شناسه کلید
صرفاً یک
میانبر
است؛ برای
تمام
پردازشهای
خودکار
باید از
اثرانگشت
استفاده
شود.
هنگام استفاده از gpg، میتوان یک علامت تعجب (!) به انتها اضافه کرد تا استفاده از کلید اصلی یا فرعیِ مشخصشده اجباری شود و تلاشی برای محاسبه اینکه کدام کلید اصلی یا فرعی استفاده شود صورت نگیرد.
چهار خط پایانی مثال، شناسه کلید را در قالب بلند آن همانگونه که درون پروتکل OpenPGP استفاده میشود ارائه میدهند. میتوانید شناسه کلید بلند را با استفاده از گزینه --with-colons مشاهده کنید.
234567C4 0F34E556E 01347A56A 0xAB123456 234AABBCC34567C4 0F323456784E56EAB 01AB3FED1347A5612 0x234AABBCC34567C4
- بر اساس اثر انگشت.
- این قالب از
روی طول
رشته و
محتوای آن
یا پیشوند
0x تشخیص
داده
میشود.
توجه داشته
باشید که
تنها نسخهٔ
اثر انگشت
۲۰ بایتی در
gpgsm موجود
است (یعنی
هش SHA-1 گواهی).
هنگام استفاده از gpg، میتوان یک علامت تعجب (!) را به انتها اضافه کرد تا استفاده از کلید اصلی یا ثانویهٔ مشخصشده اجباری شود و تلاشی برای محاسبهٔ اینکه از کدام کلید اصلی یا ثانویه استفاده شود، صورت نگیرد.
بهترین راه برای مشخص کردن شناسهٔ کلید، استفاده از اثر انگشت است. این کار از هرگونه ابهام در صورتی که شناسههای کلید تکراری وجود داشته باشند جلوگیری میکند.
1234343434343434C434343434343434 123434343434343C3434343434343734349A3434 0E12343434343434343434EAB3484343434343434 0xE12343434343434343434EAB3484343434343434
برنامهٔ gpgsm همچنین دونقطه بین هر جفت رقم هگزادسیمال را میپذیرد، زیرا این روش استاندارد عملاً پذیرفتهشده برای نحوهٔ نمایش اثر انگشتهای X.509 است. gpg نیز اجازهٔ استفاده از اثر انگشت SHA-1 جدا شده با فاصله را همانگونه که توسط دستورات فهرستبندی کلید چاپ میشود، میدهد.
- بر اساس تطابق دقیق با شناسه کاربری OpenPGP.
- این حالت با یک علامت مساوی در ابتدا نشان داده میشود. این مورد برای گواهیهای X.509 کاربردی ندارد.
=Heinrich Heine <heinrichh@uni-duesseldorf.de>
- بر اساس تطابق دقیق با یک نشانی ایمیل.
- این حالت با قرار دادن نشانی ایمیل به شیوهٔ معمول در میان علامتهای زاویهدار چپ و راست مشخص میشود.
<heinrichh@uni-duesseldorf.de>
- بر اساس تطابق جزئی با یک نشانی ایمیل.
- این حالت با قرار دادن یک پیشوند @ در ابتدای رشتهٔ جستجو مشخص میشود. این روش از جستجوی زیررشته استفاده میکند، اما تنها نشانی ایمیل را در نظر میگیرد (یعنی درون علامتهای زاویهدار).
@heinrichh
- بر اساس تطابق دقیق با DN موضوع (Subject).
- این مورد با یک اسلش در ابتدا مشخص میشود که بلافاصله پس از آن DN کدگذاریشده بر اساس RFC-2253 موضوع قرار میگیرد. توجه داشته باشید که نمیتوانید از رشتهٔ چاپشده توسط gpgsm --list-keys استفاده کنید زیرا آن رشته برای خوانایی بهتر بازآرایی و اصلاح شده است؛ از گزینهٔ --with-colons برای چاپ رشتهٔ خام RFC-2253 (اما با کاراکترهای اسکیپ استاندارد) استفاده کنید.
/CN=Heinrich Heine,O=Poets,L=Paris,C=FR
- بر اساس تطابق دقیق با DN صادرکننده (Issuer).
- این مورد با یک علامت هش (#) در ابتدا مشخص میشود که بلافاصله پس از آن یک اسلش و سپس بلافاصله DN کدگذاریشده بر اساس RFC-2253 صادرکننده میآید. این حالت باید گواهی ریشه (Root cert) صادرکننده را بازگرداند. یادداشت بالا را ببینید.
#/CN=Root Cert,O=Poets,L=Paris,C=FR
- بر اساس تطابق دقیق شماره سریال و DN صادرکننده.
- این حالت با یک علامت هش مشخص میشود که بهدنبال آن نمایش هگزادسیمال شماره سریال، و سپس یک اسلش و DN کدگذاریشده صادرکننده طبق RFC-2253 میآید. یادداشت بالا را ببینید.
#4F03/CN=Root Cert,O=Poets,L=Paris,C=FR
- بر اساس keygrip.
- این حالت با یک علامت آمپرسند مشخص میشود که بهدنبال آن ۴۰ رقم هگزادسیمال یک keygrip میآید. gpgsm هنگام استفاده از دستور --dump-cert مقدار keygrip را چاپ میکند.
&D75F22C3F86E355877348498CDC92BD21010A480
- بر اساس تطابق زیررشته.
- این حالت پیشفرض است، اما برنامهها ممکن است بخواهند با قرار دادن علامت ستاره در ابتدا، این موضوع را بهصراحت مشخص کنند. تطابق به بزرگی و کوچکی حروف حساس نیست.
Heine *Heine
- پیشوندهای . و +
- این
پیشوندها
برای
جستجوی
ایمیلهای
لنگر
انداخته در
انتها و
برای یک
حالت
جستجوی
کلمهای
رزرو
شدهاند.
آنها هنوز
پیادهسازی
نشدهاند و
استفاده از
آنها
نامشخص است.
لطفاً توجه داشته باشید که ما از شناسه علامت هش که در نسخههای قدیمی GnuPG برای مشخص کردن بهاصطلاح local-id استفاده میشد، مجدداً استفاده کردهایم. این شناسه دیگر استفاده نمیشود و هنگام استفاده با موارد مربوط به X.509 نباید تداخلی وجود داشته باشد.
استفاده از قالب RFC-2253 برای DNها این اشکال را دارد که امکان نگاشت دوباره آنها به کدگذاری اصلی وجود ندارد، با این حال نیازی به انجام این کار نداریم زیرا پایگاهداده کلید ما این کدگذاری را بهعنوان فراداده ذخیره میکند.
عبارتهای فیلتر (FILTER EXPRESSIONS)
گزینههای --import-filter و --export-filter از عبارتهایی با این نحو استفاده میکنند (کروشهها نشاندهنده یک بخش اختیاری و آکولادها نشاندهنده تکرار هستند، فاصله خالی میان عناصر مجاز است):
[lc] {[{flag}] PROPNAME op VALUE [lc]}
نام یک ویژگی (PROPNAME) فقط میتواند شامل حروف، ارقام و زیرخط باشد. توضیحات مربوط به نوع فیلتر مشخص میکند که کدام ویژگیها تعریف شدهاند. اگر از یک ویژگی تعریفنشده استفاده شود، مقدار آن به رشته خالی ارزیابی میشود. مگر در مواردی که خلاف آن ذکر شده باشد، مقدار (VALUE) باید همیشه مشخص شود و نمیتواند رشته خالی باشد. هیچ نقلقولی (کوتینگ) برای مقدار تعریف نشده است، بنابراین مقدار نمیتواند شامل رشتههای && یا || باشد که بهعنوان عملگرهای اتصال منطقی استفاده میشوند. پرچم -- میتواند برای حذف این محدودیت استفاده شود.
مقادیر عددی بهصورت long int محاسبه میشوند؛ نشانهگذاری استاندارد C اعمال میشود. lc عملگر اتصال منطقی است؛ یا && برای عطف یا || برای فصل. در ابتدای یک عبارت، عطف فرض میشود. تقدم عطف از فصل بیشتر است. اگر VALUE با یکی از نویسههای استفادهشده در هر op شروع شود، وجود یک فاصله پس از op الزامی است.
عملگرهای پشتیبانیشده (op) عبارتند از:
- =~
- زیررشته باید مطابقت داشته باشد.
- !~
- زیررشته نباید مطابقت داشته باشد.
- =
- تمام رشته باید مطابقت داشته باشد.
- <>
- تمام رشته نباید مطابقت داشته باشد.
- ==
- مقدار عددی باید مطابقت داشته باشد.
- !=
- مقدار عددی نباید مطابقت داشته باشد.
- <=
- مقدار عددی فیلد باید کمتر یا مساوی (LE) مقدار باشد.
- <
- مقدار عددی فیلد باید کمتر از (LT) مقدار باشد.
- >
- مقدار عددی فیلد باید بیشتر از (GT) مقدار باشد.
- >=
- مقدار عددی فیلد باید بیشتر یا مساوی (GE) مقدار باشد.
- -le
- مقدار رشتهای فیلد باید کمتر یا مساوی مقدار باشد.
- -lt
- مقدار رشتهای فیلد باید کمتر از مقدار باشد.
- -gt
- مقدار رشتهای فیلد باید بیشتر از مقدار باشد.
- -ge
- مقدار رشتهای فیلد باید بیشتر یا مساوی مقدار باشد.
- -n
- اگر مقدار خالی نباشد درست است (هیچ مقداری مجاز نیست).
- -t
- نام مستعار برای "PROPNAME != 0" (هیچ مقداری مجاز نیست).
- -f
- نام مستعار برای "PROPNAME == 0" (هیچ مقداری مجاز نیست).
مقادیر برای flag باید با فاصله از هم جدا شوند. پرچمهای پشتیبانیشده عبارتند از:
- --
- VALUE تا انتهای عبارت امتداد مییابد.
- -c
- تطبیق رشته در این بخش بهصورت حساس به بزرگی و کوچکی حروف انجام میشود.
- -t
- فاصلههای ابتدا و انتهای VALUE حذف نمیشوند. تکفاصلهٔ اختیاری پس از op در اینجا الزامی است.
گزینههای فیلتر، چندین مشخصه را برای یک فیلتر از همان نوع به یکدیگر متصل میکنند. برای مثال، چهار گزینه در این نمونه:
--import-filter keep-uid="uid =~ Alfa" --import-filter keep-uid="&& uid !~ Test" --import-filter keep-uid="|| uid =~ Alpha" --import-filter keep-uid="uid !~ Test"
که معادل است با:
--import-filter \ keep-uid="uid =~ Alfa" && uid !~ Test" || uid =~ Alpha" && "uid !~ Test"
تنها شناسههای کاربری کلیدی را وارد میکند که شامل رشتههای "Alfa" یا "Alpha" باشند، اما شامل رشتهٔ "test" نباشند.
مقادیر اعتماد (TRUST VALUES)
مقادیر اعتماد برای نشان دادن سطح اعتماد به مالک و اعتبار کلیدها و شناسههای کاربری استفاده میشوند. آنها با حروف یا رشتهها نمایش داده میشوند:
- -
- unknown
- هیچ اعتمادی به مالک تعیین نشده است / هنوز محاسبه نشده است.
- e
- expired
-
محاسبهٔ اعتماد ناموفق بود؛ احتمالاً به دلیل یک کلید منقضیشده.
- q
- undefined, undef
- اطلاعات کافی برای محاسبه وجود ندارد.
- n
- never
- هرگز به این کلید اعتماد نشود.
- m
- marginal
- دارای اعتماد حاشیهای (نسبی).
- f
- full
- دارای اعتماد کامل.
- u
- ultimate
- دارای اعتماد نهایی (مطلق).
- r
- revoked
- تنها برای بررسی اعتبار: کلید یا شناسهٔ کاربری باطل شده است.
- ?
- err
- برنامه با یک مقدار اعتماد ناشناخته مواجه شد.
فایلها (FILES)
چند فایل پیکربندی برای کنترل جنبههای مشخصی از عملکرد gpg وجود دارد. مگر در مواردی که ذکر شده باشد، انتظار میرود که آنها در دایرکتوری خانگی فعلی قرار داشته باشند (ببینید: [option --homedir]).
- gpg.conf
- این فایل پیکربندی استانداردی است که توسط gpg هنگام راهاندازی خوانده میشود. این فایل میتواند شامل هر گزینهٔ بلند معتبری باشد؛ دو خط تیرهٔ ابتدایی نباید وارد شوند و گزینه نباید مخفف شود. این نام پیشفرض را میتوان در خط فرمان تغییر داد (ببینید: [gpg-option --options]). باید از این فایل نسخهٔ پشتیبان تهیه کنید.
- common.conf
- این یک فایل پیکربندی اختیاری است که توسط gpg هنگام راهاندازی خوانده میشود. این فایل میتواند شامل گزینههای مربوط به تمام مؤلفههای GnuPG باشد. کاربرد اصلی فعلی آن برای گزینهٔ "use-keyboxd" است. اگر دایرکتوری خانگی پیشفرض ‘~/.gnupg’ وجود نداشته باشد، GnuPG این دایرکتوری و یک فایل ‘common.conf’ را با "use-keyboxd" ایجاد میکند.
توجه داشته باشید که در نصبهای بزرگتر، قرار دادن فایلهای از پیش تعریفشده در دایرکتوری ‘/etc/skel/.gnupg’ مفید است تا کاربران تازه ایجادشده با یک پیکربندی فعال آغاز به کار کنند. برای کاربران موجود یک اسکریپت کمکی کوچک برای ایجاد این فایلها ارائه شده است (ببینید: [addgnupghome]).
برای اهداف داخلی، gpg چند فایل دیگر را ایجاد و نگهداری میکند؛ همهٔ آنها در دایرکتوری خانگی فعلی قرار دارند (ببینید: [option --homedir]). تنها برنامهٔ gpg مجاز به تغییر این فایلها است.
- ~/.gnupg
- این دایرکتوری خانگی پیشفرضی است که در صورت مشخص نشدن متغیر محیطی GNUPGHOME یا گزینهٔ --homedir استفاده میشود.
- ~/.gnupg/pubring.gpg
- دستهکلید
عمومی با
استفاده از
قالب قدیمی.
شما باید از
این فایل
پشتیبان
تهیه کنید.
اگر این فایل در دسترس نباشد، gpg به طور پیشفرض از قالب جدید keybox استفاده کرده و فایل ‘pubring.kbx’ را ایجاد میکند، مگر اینکه آن فایل از قبل وجود داشته باشد که در این صورت برای کلیدهای OpenPGP نیز از همان فایل استفاده خواهد شد.
توجه داشته باشید در صورتی که هر دو فایل ‘pubring.gpg’ و ‘pubring.kbx’ وجود داشته باشند اما دومی فاقد هرگونه کلید OpenPGP باشد، فایل قدیمی ‘pubring.gpg’ استفاده خواهد شد. دقت کنید: نسخههای GnuPG پیش از 2.1 همواره از فایل ‘pubring.gpg’ استفاده خواهند کرد زیرا آنها قالب جدید keybox را نمیشناسند. در صورتی که ناچارید از GnuPG 1.4 برای رمزگشایی دادههای بایگانیشده استفاده کنید، باید این فایل را نگه دارید.
- ~/.gnupg/pubring.gpg.lock
- فایل قفل برای دستهکلید عمومی.
- ~/.gnupg/pubring.kbx
- دستهکلید
عمومی با
استفاده از
قالب جدید keybox.
این فایل با
gpgsm به
اشتراک
گذاشته
میشود. شما
باید از این
فایل
پشتیبان
تهیه کنید.
برای اطلاع
از ارتباط
میان این
فایل و
نسخهٔ
پیشین آن،
توضیحات
بالا را
ببینید.
برای تبدیل یک فایل موجود ‘pubring.gpg’ به قالب keybox، ابتدا از مقادیر ownertrust پشتیبان بگیرید، سپس نام ‘pubring.gpg’ را به ‘publickeys.backup’ تغییر دهید تا توسط هیچ نسخهای از GnuPG شناسایی نشود، دستور import را اجرا کرده و در نهایت مقادیر ownertrust را بازیابی کنید:
$ cd ~/.gnupg $ gpg --export-ownertrust >otrust.lst $ mv pubring.gpg publickeys.backup $ gpg --import-options restore --import publickeys.backup $ gpg --import-ownertrust otrust.lst
- ~/.gnupg/pubring.kbx.lock
- فایل قفل برای ‘pubring.kbx’.
- ~/.gnupg/secring.gpg
- دستهکلید مخفی قدیمی که توسط نسخههای پیش از 2.1 از GnuPG استفاده میشد. این فایل توسط GnuPG نسخهٔ 2.1 و بعد از آن استفاده نمیشود. ممکن است بخواهید آن را نگه دارید تا در صورتی که مجبور به استفاده از GnuPG 1.4 برای رمزگشایی دادههای بایگانیشده شدید، از آن استفاده کنید.
- ~/.gnupg/secring.gpg.lock
- فایل قفل برای دستهکلید مخفی قدیمی.
- ~/.gnupg/.gpg-v21-migrated
- فایلی که نشان میدهد مهاجرت به GnuPG 2.1 انجام شده است.
- ~/.gnupg/trustdb.gpg
- پایگاهدادهٔ اعتماد. نیازی به پشتیبانگیری از این فایل نیست؛ بهتر است از مقادیر ownertrust پشتیبان تهیه کنید (ببینید: [گزینهٔ --export-ownertrust]).
- ~/.gnupg/trustdb.gpg.lock
- فایل قفل برای پایگاهدادهٔ اعتماد.
- ~/.gnupg/random_seed
- فایلی که برای حفظ وضعیت استخر تصادفی داخلی استفاده میشود.
- ~/.gnupg/openpgp-revocs.d/
- این دایرکتوری جایی است که gpg گواهیهای ابطال از پیش تولید شده را در آن ذخیره میکند. نام فایل با اثرانگشت OpenPGP کلید مربوطه مطابقت دارد. پیشنهاد میشود از این گواهیها پشتیبان بگیرید و چنانچه کلید خصوصی اصلی روی دیسک ذخیره نشده است، آنها را به یک دستگاه ذخیرهسازی خارجی منتقل نمایید. هر کسی که به این فایلها دسترسی داشته باشد میتواند کلید مربوطه را باطل کند. شاید بخواهید یک نسخه از آنها را چاپ کنید. شما باید از تمام فایلهای موجود در این دایرکتوری پشتیبان تهیه کرده و دقت کنید که این نسخهٔ پشتیبان را در جایی امن و دور از دسترس نگهداری نمایید.
عملکرد برنامه علاوه بر این توسط چند متغیر محیطی کنترل میشود:
- HOME
- برای تعیین محل دایرکتوری خانگی پیشفرض استفاده میشود.
- GNUPGHOME
- در صورت تنظیم، این دایرکتوری به جای "~/.gnupg" استفاده میشود.
- GPG_AGENT_INFO
- این متغیر منسوخ شده است؛ در نسخههای GnuPG قبل از 2.1 استفاده میشد.
- PINENTRY_USER_DATA
- این مقدار از طریق gpg-agent به pinentry ارسال میشود. برای انتقال اطلاعات اضافی به یک pinentry سفارشی مفید است.
- COLUMNS
- LINES
- برای تنظیم اندازه برخی نمایشها به اندازه تمامصفحه استفاده میشود.
- LANGUAGE
- جدا از کاربرد آن توسط GNU، در نسخه W32 برای نادیده گرفتن انتخاب زبان انجامشده از طریق Registry استفاده میشود. اگر استفاده شود و روی یک نام زبان معتبر و موجود (langid) تنظیم شده باشد، فایل حاوی ترجمه از مسیر gpgdir/gnupg.nls/langid.mo بارگذاری میشود. در اینجا gpgdir دایرکتوریای است که فایل باینری gpg از آن بارگذاری شده است. اگر نتوان آن را بارگذاری کرد، Registry امتحان میشود و به عنوان آخرین راهکار از سیستم محلی (locale) بومی Windows استفاده میشود.
- GNUPG_BUILD_ROOT
- این متغیر تنها توسط مجموعه آزمونهای رگرسیون به عنوان یک ابزار کمکی در سیستمعاملهای فاقد پشتیبانی مناسب جهت تشخیص نام فایل متنی یک فرایند استفاده میشود.
- GNUPG_EXEC_DEBUG_FLAGS
- این متغیر امکان فعال کردن عیبیابی برای مدیریت فرایند را فراهم میکند. یک مقدار عددی در مبنای ۱۰ انتظار میرود. بیت ۰ عیبیابی عمومی را فعال میکند و بیت ۱ برخی هشدارهای خاص را در Windows فعال میسازد.
هنگام فراخوانی مؤلفه gpg-agent، دستور gpg مجموعهای از متغیرهای محیطی را به gpg-agent ارسال میکند. نام این متغیرها را میتوان با استفاده از این دستور فهرست کرد:
gpg-connect-agent 'getinfo std_env_names' /bye | awk '$1=="D" {print $2}'
نکات (NOTES)
gpg اغلب به عنوان یک موتور پشتیبان (backend) توسط نرمافزارهای دیگر استفاده میشود. برای کمک به این امر، یک رابط ماشین تعریف شده است تا روشی بدون ابهام برای انجام این کار فراهم شود. گزینههای --status-fd و --batch تقریباً همیشه برای این منظور لازم هستند.
استفاده برنامهنویسی از GnuPG
لطفاً به جای فراخوانی مستقیم gpg، استفاده از GPGME را مد نظر قرار دهید. GPGME یک رابط پایدار و مستقل از بخش پشتیبان برای بسیاری از عملیات رمزنگاری ارائه میدهد. این رابط از OpenPGP و S/MIME پشتیبانی میکند و همچنین امکان تعامل با مؤلفههای مختلف GnuPG را فراهم میسازد.
GPGME یک C-API ارائه میدهد و همراه با بایندینگهایی برای C++، Qt و Python عرضه میشود. بایندینگها برای سایر زبانها نیز در دسترس هستند.
دایرکتوریهای خانگی گذرا
گاهی اوقات میخواهید اثرات یک عملیات را محدود کنید؛ برای مثال میخواهید کلیدی را برای بررسی وارد کنید، اما نمیخواهید این کلید به دسته کلید (keyring) شما افزوده شود. در نسخههای قبلی GnuPG، امکان تعیین فایلهای دسته کلید جایگزین برای هر دو کلید عمومی و مخفی وجود داشت. با این حال، در نسخههای مدرن GnuPG، نحوه ذخیرهسازی کلیدهای مخفی را تغییر دادیم تا از محتوای کلید مخفی بهتر محافظت شود، و حفظ این رابط ممکن نبود.
روش ارجح برای انجام این کار، استفاده از دایرکتوریهای خانگی گذرا است. این روش در تمام نسخههای GnuPG کار میکند.
یک دایرکتوری موقت بسازید، پیکربندی متناسب با نیاز خود ایجاد (یا کپی) کنید، و کاری کنید که gpg چه با استفاده از متغیر محیطی GNUPGHOME و چه با گزینه --homedir از این دایرکتوری استفاده کند. GPGME نیز از این کار بر پایه هر زمینه (per-context) با اصلاح اطلاعات موتور زمینهها پشتیبانی میکند. اکنون هر عملیاتی که مایل هستید اجرا کنید، و دادههای کلید را بر حسب نیاز وارد یا صادر نمایید. پس از اتمام کار، میتوانید دایرکتوری را حذف کنید. تمام سرویسهای پشتیبان GnuPG که راهاندازی شده بودند این موضوع را تشخیص داده و خاموش میشوند.
- key_algo
- عددی شامل الگوریتم کلید عمومی یک بسته کلید یا کلید فرعی. (drop-subkey)
- key_size
- عددی شامل اندازه مؤثر کلید یک بسته کلید یا کلید فرعی. (drop-subkey)
- key_created
- key_created_d
- مورد اول برچسب زمانی ایجاد یک بسته کلید عمومی یا کلید فرعی است. مورد دوم همان است اما به صورت یک رشته ISO، مانند "2016-08-17" ارائه میشود. (drop-subkey)
- key_expires
- key_expires_d
- زمان انقضای یک کلید عمومی یا کلید فرعی، یا 0 در صورتی که منقضی نشود. مورد دوم همان است اما به عنوان یک رشته تاریخ ISO یا یک رشته خالی، مانند "2038-01-19" ارائه میشود.
- fpr
- اثرانگشت هگزادسیمال کلید فرعی یا کلید اصلی فعلی. (drop-subkey)
- primary
- مقدار بولی که نشان میدهد آیا شناسه کاربر شناسه اصلی است یا خیر. (keep-uid)
- expired
- مقدار بولی که نشان میدهد آیا یک شناسه کاربر (keep-uid)، یک کلید (drop-subkey)، یا یک امضا (drop-sig) منقضی شده است یا خیر.
- revoked
- مقدار بولی که نشان میدهد آیا یک شناسه کاربر (keep-uid) یا یک کلید (drop-subkey) باطل شده است یا خیر.
- disabled
- مقدار بولی که نشان میدهد آیا یک کلید اصلی غیرفعال است یا خیر.
- secret
- مقدار بولی که نشان میدهد آیا یک کلید یا کلید فرعی از نوع مخفی است یا خیر. (drop-subkey)
پارامترهای عمومی:
- Key-Type: algo
- با مشخص کردن نوع کلید اصلی، یک بلوک پارامتر جدید را آغاز میکند. الگوریتم باید قابلیت امضا داشته باشد. این یک پارامتر الزامی است. algo میتواند یک شماره الگوریتم OpenPGP یا یک رشته شامل نام الگوریتم باشد. مقدار ویژهٔ ‘default’ میتواند برای algo جهت ایجاد نوع کلید پیشفرض استفاده شود؛ در این صورت نباید ‘Key-Usage’ داده شود و همچنین برای ‘Subkey-Type’ نیز باید از ‘default’ استفاده شود.
- Key-Length: nbits
- طول درخواستی کلید تولیدشده بر حسب بیت. مقدار پیشفرض با اجرای دستور ‘gpg --gpgconf-list’ بازگردانده میشود. برای کلیدهای ECC این پارامتر نادیده گرفته میشود.
- Key-Curve: curve
- منحنی بیضوی درخواستی برای کلید تولیدشده. این پارامتر برای کلیدهای ECC الزامی است و برای کلیدهای غیر ECC نادیده گرفته میشود.
- Key-Grip: hexstring
- این پارامتر اختیاری است و برای تولید یک CSR یا گواهی برای کلیدی که از قبل وجود دارد استفاده میشود. در صورت ارائه، Key-Length نادیده گرفته خواهد شد.
- Key-Usage: usage-list
- فهرستی از کاربردهای کلید که با فاصله یا کاما از هم جدا شدهاند. مقادیر مجاز عبارتند از ‘encrypt’، ‘sign’ و ‘auth’. این پارامتر برای تولید پرچمهای کلید استفاده میشود. لطفاً اطمینان حاصل کنید که الگوریتم توانایی این کاربرد را دارد. توجه داشته باشید که OpenPGP ایجاب میکند تمام کلیدهای اصلی قابلیت صدور گواهی داشته باشند، بنابراین صرفنظر از کاربردی که در اینجا مشخص میشود، پرچم ‘cert’ فعال خواهد بود. اگر هیچ ‘Key-Usage’ مشخص نشده باشد و ‘Key-Type’ برابر با ‘default’ نباشد، تمام کاربردهای مجاز برای آن الگوریتم خاص استفاده میشوند؛ اگر مشخص نشده باشد ولی از ‘default’ استفاده شده باشد، کاربرد ‘sign’ خواهد بود.
- Subkey-Type: algo
- یک کلید ثانویه (زیرکلید) تولید میکند. در حال حاضر فقط یک زیرکلید میتواند مدیریت شود. همچنین به ‘Key-Type’ در بالا مراجعه کنید.
- Subkey-Length: nbits
- طول کلید ثانویه (زیرکلید) بر حسب بیت. مقدار پیشفرض با اجرای دستور ‘gpg --gpgconf-list’ بازگردانده میشود.
- Subkey-Curve: curve
- منحنی کلید برای یک زیرکلید؛ مشابه با ‘Key-Curve’.
- Subkey-Usage: usage-list
- فهرستهای کاربرد کلید برای یک زیرکلید؛ مشابه با ‘Key-Usage’.
- Passphrase: string
- اگر میخواهید برای کلید محرمانه یک عبارت عبور تعیین کنید، آن را در اینجا وارد کنید. حالت پیشفرض استفاده از کادر محاورهای Pinentry برای درخواست عبارت عبور است.
- Name-Real: name
- Name-Comment: comment
- Name-Email: email
- سه بخش نام کاربری. به یاد داشته باشید که در اینجا از کدگذاری UTF-8 استفاده کنید. اگر هیچیک از آنها را وارد نکنید، هیچ شناسه کاربری (user ID) ایجاد نخواهد شد.
- Expire-Date: iso-date|(number[d|w|m|y])
- تاریخ انقضا را برای کلید (و زیرکلید) تعیین میکند. این مقدار میتواند در قالب تاریخ ISO (مانند "20000815T145012") یا بهصورت تعداد روز، هفته، ماه یا سال پس از تاریخ ایجاد وارد شود. نمادگذاری ویژه "seconds=N" نیز برای تعیین تعداد ثانیهها از زمان ایجاد مجاز است. بدون پسوند حرفی، روز فرض میشود. توجه داشته باشید که هیچ بررسی برای سرریز نوع داده استفادهشده توسط OpenPGP برای برچسبهای زمانی انجام نمیشود. بنابراین بهتر است مطمئن شوید که مقدار ارائهشده معقول و منطقی است. اگرچه OpenPGP با بازههای زمانی کار میکند، اما GnuPG در داخل از یک مقدار مطلق استفاده میکند و از این رو آخرین سالی که میتوانیم نمایش دهیم سال 2105 است.
- Creation-Date: iso-date
- تاریخ ایجاد کلید را تنظیم میکند، همانگونه که در اطلاعات کلید ذخیره شده و بخشی از محاسبه اثر انگشت نیز میباشد. میتوان از تاریخی مانند "1986-04-26" یا یک برچسب زمانی کامل مانند "19860426T042640" استفاده کرد. زمان بر اساس UTC در نظر گرفته میشود. نمادگذاری ویژه "seconds=N" را میتوان برای تعیین مستقیم تعداد ثانیهها از مبدا زمانی (Epoch / زمان یونیکس) به کار برد. در صورت عدم ارائه، از زمان فعلی استفاده میشود.
- Preferences: string
- مقادیر ترجیحی رمزنگاری، هش و فشردهسازی را برای این کلید تنظیم میکند. این مورد همان نوع رشتهای را انتظار دارد که زیردستور ‘setpref’ در منوی --edit-key دریافت میکند.
- Revoker: algo:fpr [sensitive]
- یک باطلکنندهٔ تعیینشده را به کلید تولیدشده اضافه میکند. Algo الگوریتم کلید عمومی باطلکنندهٔ تعیینشده است (یعنی RSA=1، DSA=17 و غیره). fpr اثرانگشت باطلکنندهٔ تعیینشده است. fpr نباید شامل فاصله یا دونقطه باشد. پرچم اختیاری ‘sensitive’ باطلکنندهٔ تعیینشده را بهعنوان اطلاعات حساس علامتگذاری میکند. فقط کلیدهای v4 و v5 میتوانند باطلکنندهٔ تعیینشده باشند.
- Keyserver: string
- این یک پارامتر اختیاری است که URL کارگزار کلید ترجیحی را برای این کلید مشخص میکند.
- Handle: string
- این یک پارامتر اختیاری است که فقط با خطوط وضعیت KEY_CREATED و KEY_NOT_CREATED استفاده میشود. string میتواند تا ۱۰۰ نویسه باشد و نباید شامل فاصله باشد. این پارامتر برای تولید دستهای کلید مفید است تا یک بلوک پارامتر کلید را با یک خط وضعیت مرتبط کند.
در اینجا مثالی از نحوهٔ ایجاد یک کلید در یک دایرکتوری خانگی موقت آورده شده است:
$ export GNUPGHOME="$(mktemp -d)"
$ cat >foo <<EOF
%echo Generating a basic OpenPGP key
Key-Type: DSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: Joe Tester
Name-Comment: with stupid passphrase
Name-Email: joe@foo.bar
Expire-Date: 0
Passphrase: abc
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
EOF
$ gpg --batch --generate-key foo
[...]
$ gpg --list-secret-keys
/tmp/tmp.0NQxB74PEf/pubring.kbx
-------------------------------
sec dsa1024 2016-12-16 [SCA]
768E895903FC1C44045C8CB95EEBDB71E9E849D0
uid [ultimate] Joe Tester (with stupid passphrase) <joe@foo.bar>
ssb elg1024 2016-12-16 [E]
اگر میخواهید کلیدی با الگوریتمهای پیشفرض ایجاد کنید، از این پارامترها استفاده خواهید کرد:
%echo Generating a default key Key-Type: default Subkey-Type: default Name-Real: Joe Tester Name-Comment: with stupid passphrase Name-Email: joe@foo.bar Expire-Date: 0 Passphrase: abc # Do a commit here, so that we can later print "done" :-) %commit %echo done
باگها (BUGS)
در سیستمهای قدیمیتر این برنامه باید بهصورت setuid(root) نصب شود. این کار برای قفل کردن صفحات حافظه ضروری است. قفل کردن صفحات حافظه از نوشتن صفحات حافظه (که ممکن است حاوی عبارتهای عبور یا سایر اطلاعات حساس باشند) بر روی دیسک توسط سیستمعامل جلوگیری میکند. اگر هیچ پیام هشداری در مورد حافظهٔ ناامن دریافت نمیکنید، سیستمعامل شما از قفل کردن بدون نیاز به کاربر root پشتیبانی میکند. این برنامه به محض تخصیص حافظهٔ قفلشده، دسترسیهای root را رها میکند.
همچنین توجه داشته باشید که برخی سیستمها (بهویژه لپتاپها) قابلیت ``suspend to disk'' (که با نام ``safe sleep'' یا ``hibernate'' نیز شناخته میشود) را دارند. این قابلیت پیش از رفتن به حالت کممصرف یا حتی خاموش شدن، تمام حافظه را روی دیسک مینویسد. مگر اینکه تدابیری در سیستمعامل برای محافظت از حافظهٔ ذخیرهشده اتخاذ شده باشد، ممکن است عبارتهای عبور یا سایر دادههای حساس بعداً از روی آن قابل بازیابی باشند.
پیش از آنکه باگی را گزارش کنید، ابتدا باید در آرشیو فهرستهای پستی به دنبال مشکلات مشابه بگردید و در وهلهٔ دوم بررسی کنید که آیا چنین باگی قبلاً در سامانهٔ ردیابی باگ ما در https://bugs.gnupg.org گزارش شده است یا خیر.
همچنین ببینید (SEE ALSO)
gpgv(1), gpgsm(1), gpg-agent(1)
مستندات کامل این ابزار بهصورت یک راهنمای Texinfo نگهداری میشود. اگر GnuPG و برنامه info بهدرستی در سیستم شما نصب شده باشند، دستور
info gnupg
باید دسترسی به راهنمای کامل شامل ساختار منو و نمایه را برای شما فراهم کند.
| 2025-02-19 | GnuPG 2.4.9 |