SCDAEMON(1) GNU Privacy Guard 2.4 SCDAEMON(1)

scdaemon - دیمن مدیریت کارت‌های هوشمند برای سیستم GnuPG

scdaemon [--homedir dir] [--options file] [options] --server
scdaemon [--homedir dir] [--options file] [options] --daemon [command_line]

دستور scdaemon دیمنی برای مدیریت کارت‌های هوشمند است. این برنامه معمولاً توسط gpg-agent فراخوانی می‌شود و به طور کلی مستقیماً به کار نمی‌رود.

دستورات تفاوتی با گزینه‌ها ندارند، به جز این حقیقت که تنها استفاده از یک دستور مجاز است.

اطلاعات نسخه برنامه و مجوز آن را چاپ می‌کند. توجه داشته باشید که نمی‌توانید این دستور را خلاصه کنید.
پیام راهنمای استفاده را چاپ کرده و مفیدترین گزینه‌های خط فرمان را خلاصه می‌کند. توجه داشته باشید که نمی‌توانید این دستور را خلاصه کنید.
فهرستی از تمامی گزینه‌ها و دستورات موجود را چاپ می‌کند. توجه داشته باشید که نمی‌توانید این دستور را خلاصه کنید.
در حالت سرور اجرا شده و در stdin منتظر دریافت دستورات می‌ماند. حالت پیش‌فرض، ایجاد یک سوکت و گوش دادن به دستورات در آن است.
در حالت سرور اجرا شده و هم در stdin و هم روی یک سوکت دامنه یونیکس (Unix Domain socket) اضافی منتظر دریافت دستورات می‌ماند. از دستور سرور GETINFO می‌توان برای دریافت نام این سوکت اضافی استفاده کرد.
برنامه را در پس‌زمینه اجرا می‌کند. این گزینه برای جلوگیری از اجرای تصادفی برنامه در پس‌زمینه الزامی است.

پیکربندی را به‌جای فایل پیکربندی پیش‌فرض اختصاصی کاربر، از file می‌خواند. فایل پیکربندی پیش‌فرض ‘scdaemon.conf’ نام دارد و انتظار می‌رود مستقیماً در دایرکتوری ‘.gnupg’ در زیر دایرکتوری خانگی کاربر قرار داشته باشد.
نام دایرکتوری خانگی را روی dir تنظیم می‌کند. اگر از این گزینه استفاده نشود، دایرکتوری خانگی به‌طور پیش‌فرض ‘~/.gnupg’ خواهد بود. این گزینه تنها زمانی شناسایی می‌شود که در خط فرمان داده شود. همچنین هر دایرکتوری خانگی تعیین‌شده از طریق متغیر محیطی ‘GNUPGHOME’ یا (در سیستم‌های ویندوز) از طریق مدخل رجیستری HKCU\Software\GNU\GnuPG:HomeDir را بازنویسی می‌کند.

در سیستم‌های ویندوز امکان نصب GnuPG به عنوان یک برنامه پرتابل وجود دارد. در این حالت تنها این گزینه خط فرمان در نظر گرفته می‌شود و تمام روش‌های دیگر برای تنظیم دایرکتوری خانگی نادیده گرفته می‌شوند.

اطلاعات اضافی را هنگام اجرا نمایش می‌دهد. شما می‌توانید با دادن چندین دستور پرگویی به gpgsm، مانند ‘-vv’، سطح پرگویی را افزایش دهید.
سطح اشکال‌زدایی را برای بررسی مشکلات انتخاب می‌کند. level می‌تواند یک مقدار عددی یا یک کلیدواژه باشد:
بدون هیچ‌گونه اشکال‌زدایی. به‌جای کلیدواژه می‌توان از یک مقدار کمتر از 1 استفاده کرد.
برخی پیام‌های اولیه اشکال‌زدایی. به‌جای کلیدواژه می‌توان از یک مقدار بین 1 و 2 استفاده کرد.
پیام‌های اشکال‌زدایی با جزئیات بیشتر. به‌جای کلیدواژه می‌توان از یک مقدار بین 3 و 5 استفاده کرد.
پیام‌های حتی با جزئیات بیشتر. به‌جای کلیدواژه می‌توان از یک مقدار بین 6 و 8 استفاده کرد.
تمام پیام‌های اشکال‌زدایی ممکن. به‌جای کلیدواژه می‌توان از یک مقدار بزرگتر از 8 استفاده کرد. ایجاد فایل‌های ردگیری هش تنها در صورتی فعال می‌شود که از این کلیدواژه استفاده شود.

نحوه نگاشت این پیام‌ها به فلگ‌های واقعی اشکال‌زدایی مشخص نشده است و ممکن است در نسخه‌های جدیدتر این برنامه تغییر کند. با این حال، آن‌ها با دقت انتخاب شده‌اند تا بهترین کمک را در اشکال‌زدایی ارائه دهند.

تمام گزینه‌های اشکال‌زدایی ممکن است تغییر کنند و بنابراین نباید توسط هیچ برنامه کاربردی استفاده شوند. همان‌طور که از نامشان پیداست، آن‌ها تنها به عنوان کمکی برای اشکال‌زدایی مشکلات استفاده می‌شوند.
فلگ‌های اشکال‌زدایی را تنظیم می‌کند. تمام فلگ‌ها با یکدیگر OR بیتی می‌شوند و flags می‌تواند در ساختار نحوی C (مانند 0x0042) یا به صورت فهرستی از نام‌های فلگ که با کاما جدا شده‌اند، ارائه شود. برای دریافت فهرستی از تمام فلگ‌های پشتیبانی‌شده می‌توان از کلمه یکتای "help" استفاده کرد. این گزینه تنها برای اشکال‌زدایی مفید است و رفتار آن ممکن است در هر زمانی بدون اطلاع قبلی تغییر کند.
معادل --debug=0xffffffff است.
هنگام اجرا در حالت سرور، پیش از ورود به حلقه پردازش واقعی، به مدت n ثانیه منتظر می‌ماند و pid را چاپ می‌کند. این کار فرصت لازم را برای متصل کردن یک اشکال‌زدا فراهم می‌کند.
خروجی اشکال‌زدایی را از درایور گنجانده‌شده CCID برای کارت‌های هوشمند فعال می‌کند. استفاده از این گزینه برای دو بار، همچنین مقداری ردگیری از پروتکل T=1 را فعال می‌کند. توجه داشته باشید که این گزینه ممکن است داده‌های حساس را آشکار سازد.
این گزینه تمام عملکردهای دوره‌ای تیکر مانند بررسی قرار دادن کارت در دستگاه را غیرفعال می‌کند.
به دلایل امنیتی، در صورت توقف ناگهانی فرایند، یک core dump ایجاد نخواهد شد. برای اهداف اشکال‌زدایی، گاهی بهتر است اجازه ایجاد core dump داده شود. این گزینه آن را فعال می‌کند و همچنین هنگام اجرا در حالت --server دایرکتوری کاری را به ‘/tmp’ تغییر می‌دهد.
این گزینه یک شناسه ریسه (thread ID) را به PID در خروجی لاگ اضافه می‌کند.
دسته‌بندی‌های فعال لاگ‌گیری Libassuan را به cats تغییر می‌دهد. مقدار cats یک عدد صحیح بدون علامت است که با ساختار نحوی معمول C مشخص می‌شود. مقدار 0 به دسته‌بندی پیش‌فرض تغییر وضعیت می‌دهد. اگر از این گزینه استفاده نشود، دسته‌بندی‌ها از متغیر محیطی ASSUAN_DEBUG دریافت می‌شوند. توجه داشته باشید که این گزینه تنها در صورتی اثرگذار است که فلگ اشکال‌زدایی Assuan با گزینه --debug نیز داده شده باشد. برای مشاهده فهرستی از دسته‌بندی‌ها به راهنمای Libassuan مراجعه کنید.
فرایند را از کنسول جدا نمی‌کند. این گزینه عمدتاً برای اشکال‌زدایی کاربرد دارد.
اندازه صف اتصالات در انتظار را تنظیم می‌کند. مقدار پیش‌فرض 64 است. این گزینه تنها در صورتی اثرگذار است که از --multi-server نیز استفاده شده باشد.
تمام خروجی‌های لاگ را به file ضمیمه می‌کند. این گزینه برای دیدن این که عامل در عمل چه کاری انجام می‌دهد بسیار مفید است. برای ثبت لاگ در یک سوکت از ‘socket://’ استفاده کنید.
از حالت اشتراکی برای دسترسی به کارت از طریق PC/SC استفاده می‌کند. این یک گزینه تا حدی خطرناک است زیرا Scdaemon دسترسی انحصاری به کارت را فرض می‌کند و به عنوان مثال اطلاعات خاصی را از کارت کش می‌کند. از این گزینه تنها در صورتی استفاده کنید که می‌دانید چه کاری انجام می‌دهید.
از library برای دسترسی به کارت‌خوان هوشمند استفاده می‌کند. پیش‌فرض فعلی در یونیکس ‘libpcsclite.so’ و در ویندوز ‘winscard.dll’ است. به‌جای استفاده از این گزینه، ممکن است بخواهید یک پیوند نمادین به نام فایل پیش‌فرض ایجاد کنید (برای مثال از ‘libpcsclite.so.1’). در ویندوز ممکن است از نام فایل یونیکد استفاده نشود.
درایور داخلی CCID برای دستگاه‌های سازگار با CCID در صورتی که libusb در زمان ساخت شناسایی شده باشد در دسترس است، و از آن برای دسترسی به کارت‌خوان هوشمند استفاده می‌شود. در صورتی که دسترسی از طریق درایور PC/SC نیاز باشد، لطفاً این گزینه را برای غیرفعال کردن پشتیبانی از درایور CCID (در صورت وجود) تنظیم کنید. در GnuPG 2.2 یک سازوکار بازگشتی (fallback) از درایور CCID به درایور PC/SC وجود داشت. این سازوکار بازگشتی کار می‌کرد زیرا scdaemon در GnuPG 2.2 فقط از یک توکن/کارت‌خوان منفرد پشتیبانی می‌کرد. برای پشتیبانی همزمان از چندین توکن/کارت‌خوان، سازوکار بازگشتی حذف شد.
از این گزینه می‌توان برای تعیین پورت ترمینال کارت استفاده کرد. مقدار 0 به اولین دستگاه سریال اشاره دارد؛ برای دسترسی به دستگاه‌های USB عدد 32768 را اضافه کنید. مقدار پیش‌فرض 32768 (اولین دستگاه USB) است. کارت‌خوان‌های PC/SC یا CCID ممکن است در اینجا به یک رشته نیاز داشته باشند؛ برنامه را در حالت پرگویی اجرا کنید تا فهرستی از کارت‌خوان‌های موجود را دریافت کنید. در این صورت پیش‌فرض اولین کارت‌خوانِ پیداشده خواهد بود.

برای دریافت فهرستی از کارت‌خوان‌های CCID موجود می‌توانید از این دستور استفاده کنید:

echo scd getinfo reader_list \
  | gpg-connect-agent --decode | awk '/^D/ {print $2}'
این گزینه منسوخ شده است. در GnuPG 2.0، از این گزینه برای دستور DISCONNECT جهت کنترل مشکل زمان‌بندی استفاده می‌شد. از آنجا که دستور DISCONNECT به صورت همگام کار می‌کند، این گزینه تاثیری ندارد.
لطفاً زمانی این گزینه را مشخص کنید که کارت‌خوان از ورودی طول متغیر برای صفحه‌کلید پین (pinpad) پشتیبانی کند (پیش‌فرض «خیر» است). برای کارت‌خوان‌های شناخته‌شده (فهرست‌شده در ccid-driver.c و apdu.c)، به این گزینه نیازی نیست. توجه داشته باشید که اگر کارت‌خوان شما از ورودی طول متغیر پشتیبانی نمی‌کند اما می‌خواهید از آن استفاده کنید، باید درخواست pinpad خود را روی کارت مشخص کنید.
حتی اگر کارت‌خوان دارای صفحه‌کلید پین (pinpad) است، سعی نکنید از آن استفاده کنید.
این گزینه استفاده از دستورات کلاس مدیریت (admin class) را برای برنامه‌های کارتی که از آن پشتیبانی می‌کنند غیرفعال می‌کند. در حال حاضر ما از آن برای کارت OpenPGP پشتیبانی می‌کنیم. این گزینه برای جلوگیری از دسترسی تصادفی به دستورات کلاس مدیریت که در نهایت ممکن است کارت را از طریق شماره‌های PIN اشتباه قفل کند، مفید است. توجه داشته باشید که نسخه‌های قدیمی‌تر GnuPG قبل از 2.0.11 دارای گزینه --allow-admin بودند که برای استفاده از چنین دستورات مدیریتی لازم بود. این گزینه امروزه دیگر اثری ندارد زیرا اکنون حالت پیش‌فرض، مجاز بودن دستورات مدیریت است.
این گزینه استفاده از برنامه کاربردی کارت با نام name را غیرفعال می‌کند. این گزینه عمدتاً برای اشکال‌زدایی مفید است یا اگر برنامه‌ای با اولویت پایین‌تر باید به طور پیش‌فرض استفاده شود.
این گزینه امکان تغییر ترتیبی را می‌دهد که برنامه‌های یک کارت در صورت عدم درخواست برنامه مشخص امتحان می‌شوند. namelist فهرستی از نام‌های برنامه‌ها است که با فاصله یا کاما از هم جدا شده‌اند. نام‌های ناشناخته به سادگی نادیده گرفته می‌شوند. برنامه‌هایی که در این فهرست ذکر نشده‌اند، با همان ترتیب پیشین در انتهای فهرست اولویت جدید قرار می‌گیرند.

برای دریافت فهرستی از برنامه‌های فعال فعلی، استفاده کنید از

gpg-connect-agent 'scd getinfo app_list' /bye

تمام گزینه‌های طولانی پس از حذف دو خط تیره ابتدایی، می‌توانند در فایل پیکربندی نیز قرار گیرند.

دستور scdaemon از برنامه‌های کاربردی کارت به شرح زیر پشتیبانی می‌کند.

 

این برنامه در حال حاضر تنها توسط gpg استفاده می‌شود اما در آینده ممکن است با gpgsm نیز مفید باشد. نسخه 1 و نسخه 2 این کارت پشتیبانی می‌شوند.

مشخصات این کارت در نشانی زیر در دسترس است:
(https://gnupg.org/ftp/specs) .

 

این برنامه اصلی کارت‌های Telesec است که در آلمان عرضه می‌شود. این یک ابرمجموعه از کارت آلمانی DINSIG است. این کارت توسط gpgsm استفاده می‌شود.

 

این برنامه‌ای است همان‌طور که در پیش‌نویس استاندارد آلمانی DIN V 66291-1 شرح داده شده است. این برنامه برای استفاده توسط کارت‌هایی در نظر گرفته شده است که از قانون امضای آلمان و آیین‌نامه‌های اجرایی آن (SigG و SigV) پشتیبانی می‌کنند.

 

این یک چارچوب رایج برای برنامه‌های کارت هوشمند است. این برنامه توسط gpgsm استفاده می‌شود.

 

این یک برنامه ساده برای نمایش اطلاعات Geldkarte آلمانی است. کارت Geldkarte یک برنامه کارت بدهی با مبالغ خرد است که همراه با تقریباً تمام کارت‌های بانکی آلمان ارائه می‌شود.

 

این برنامه پشتیبانی فقط‌خواندنی را برای کلیدها و گواهی‌های ذخیره‌شده روی یک (http://www.smartcard-hsm.com, SmartCard-HSM) اضافه می‌کند.

برای تولید کلیدها و ذخیره گواهی‌ها می‌توانید از (https://github.com/OpenSC/OpenSC/wiki/SmartCardHSM, OpenSC) یا ابزارهای (http://www.openscdp.org, OpenSCDP) استفاده کنید.

کارت‌های SmartCard-HSM نیازمند کارت‌خوانی هستند که از APDU با طول گسترش‌یافته (Extended Length APDUs) پشتیبانی کند.

 

این یک برنامه ساختگی (stub) است که امکان استفاده از دستور APDU را حتی در صورتی که هیچ برنامه پشتیبانی‌شده‌ای روی کارت یافت نشود، فراهم می‌کند. این برنامه به صورت خودکار استفاده نمی‌شود بلکه باید صراحتاً با استفاده از دستور SERIALNO درخواست شود.

$ scdaemon --server -v

چندین فایل پیکربندی برای کنترل جنبه‌های مشخصی از عملکرد scdaemon وجود دارد. مگر در مواردی که ذکر شده باشد، انتظار می‌رود این فایل‌ها در دایرکتوری خانگی فعلی قرار داشته باشند (ببینید: [گزینه --homedir]).

این فایل پیکربندی استانداردی است که در هنگام راه‌اندازی توسط scdaemon خوانده می‌شود. این فایل می‌تواند شامل هر گزینه طولانی معتبری باشد؛ دو خط تیره ابتدایی نباید وارد شوند و گزینه نباید خلاصه شود. این نام پیش‌فرض را می‌توان در خط فرمان تغییر داد (ببینید: [گزینه --options]).
اگر این فایل وجود داشته و قابل اجرا باشد، در هر بار تغییر وضعیت کارت‌خوان فراخوانی می‌شود. نمونه‌ای از این اسکریپت به همراه توزیع کد منبع ارائه شده است. این گزینه به نفع DEVINFO --watch منسوخ شده است.
این فایل توسط scdaemon ایجاد می‌شود تا برنامه‌های دیگر را از تغییرات وضعیت کارت‌خوان مطلع سازد. استفاده از آن اکنون به نفع ‘scd-event’ منسوخ شده است.

gpg-agent(1), gpgsm(1), gpg(1)

مستندات کامل این ابزار در قالب یک راهنمای Texinfo نگهداری می‌شود. اگر GnuPG و برنامه info به درستی در سیستم شما نصب شده باشند، دستور

info gnupg

باید دسترسی شما به راهنمای کامل، شامل ساختار منو و نمایه را فراهم سازد.

2025-02-19 GnuPG 2.4.9