PKCS11.CONF(5) System Files PKCS11.CONF(5)

pkcs11.conf - فایل‌های پیکربندی برای ماژول‌های PKCS#11

فایل‌های پیکربندی pkcs11.conf روشی استاندارد برای پیکربندی ماژول‌های PKCS#11 هستند.

یک پیکربندی کامل از چندین فایل تشکیل شده است. این فایل‌ها متنی هستند. از آنجا که p11-kit برای استفاده در انواع محیط‌ها و در سطوح بسیار پایین پشته نرم‌افزاری ساخته شده است، نمی‌تواند از رابط‌های برنامه‌نویسی پیکربندی سطح بالا که در میزکارهای امروزی یافت می‌شوند استفاده کند.

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

مقدار پس از نام در همان خط مشخص می‌شود و با یک دو‌نقطه : (colon) از آن جدا می‌گردد. فاصله‌های خالی میان نام و مقدار نادیده گرفته می‌شوند.

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

یک فایل فرضی پیکربندی ماژول ممکن است به این شکل باشد:

module: module.so
# Here is a comment
managed: true
setting.2: A long value with text.
x-custom : text

هر ماژول پیکربندی‌شده PKCS#11 فایل پیکربندی ویژه خود را دارد. این فایل‌ها می‌توانند در مکان‌های گوناگونی قرار گیرند.

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

مهم‌تر از همه، هر فایل پیکربندی مسیر ماژول PKCS#11 جهت بارگذاری را مشخص می‌کند. فایل پیکربندی ماژول دارای فیلدهای زیر است:

module:

نام فایل ماژول PKCS#11 برای بارگذاری. این نام باید شامل پسوندی مانند .so باشد.

اگر این مقدار خالی باشد، ماژول نادیده گرفته خواهد شد. از این قابلیت می‌توان در پیکربندی‌های کاربر برای لغو بارگذاری ماژولی که در پیکربندی سیستم مشخص شده است استفاده کرد.

اگر این مسیر یک مسیر نسبی باشد، ماژول از دایرکتوری پیش‌فرض ماژول‌ها بارگذاری خواهد شد.

critical:

روی yes تنظیم کنید اگر ماژول حیاتی است و بارگذاری آن الزامی است. اگر یک ماژول حیاتی در بارگذاری یا مقداردهی اولیه شکست بخورد، فرایند بارگذاری برای تمامی ماژول‌های ثبت‌شده متوقف خواهد شد و یک کد خطا بازگردانده می‌شود.

این آرگومان اختیاری است و مقدار پیش‌فرض آن no است.

enable-in:

فهرستی جداشده با کاما و/یا فاصله از نام برنامه‌هایی که این ماژول تنها باید در آن‌ها بارگذاری شود. این ماژول برای سایر برنامه‌هایی که از p11-kit استفاده می‌کنند بارگذاری نخواهد شد. نام پایه فایل اجرایی فرایند باید در اینجا استفاده شود، برای نمونه seahorse, ssh.

از این گزینه می‌توان همچنین برای کنترل اینکه آیا ماژول توسط ماژول پروکسی بارگذاری شود یا خیر استفاده کرد. برای فعال‌سازی بارگذاری تنها از ماژول پروکسی، مقدار p11-kit-proxy را مشخص کنید.

این یک ویژگی امنیتی نیست. این آرگومان اختیاری است. در صورت عدم وجود، هر فرایندی ماژول را بارگذاری خواهد کرد.

disable-in:

فهرستی جداشده با کاما و/یا فاصله از نام برنامه‌هایی که این ماژول نباید در آن‌ها بارگذاری شود. این ماژول برای تمامی برنامه‌های دیگری که از p11-kit استفاده می‌کنند بارگذاری خواهد شد. نام پایه فایل اجرایی فرایند باید در اینجا استفاده شود، برای نمونه firefox, thunderbird-bin.

از این گزینه می‌توان همچنین برای کنترل اینکه آیا ماژول توسط ماژول پروکسی بارگذاری شود یا خیر استفاده کرد. برای غیرفعال‌سازی بارگذاری از ماژول پروکسی، مقدار p11-kit-proxy را مشخص کنید.

این یک ویژگی امنیتی نیست. این آرگومان اختیاری است. در صورت عدم وجود، هر فرایندی ماژول را بارگذاری خواهد کرد.

managed:

روی no تنظیم کنید اگر قرار نیست ماژول توسط p11-kit مدیریت شود. خارج کردن ماژول از حالت مدیریت‌شده توصیه نمی‌شود و در صورتی که فراخوان‌های متعددی در یک فرایند واحد یک ماژول PKCS#11 را به اشتراک بگذارند، باعث بروز مشکلاتی خواهد شد.

این آرگومان اختیاری است و مقدار پیش‌فرض آن yes است.

priority:

مقدار باید یک عدد صحیح باشد. هنگامی که فهرست ماژول‌ها به یک فراخوان‌کننده p11-kit بازگردانده می‌شود، ماژول‌های با عدد بزرگ‌تر ابتدا مرتب می‌شوند. هنگامی که برنامه‌ها ماژول‌ها را برای گواهی‌ها، کلیدها و اطلاعات خط‌مشی اعتماد جستجو می‌کنند، این تنظیم بر روی آنچه ابتدا پیدا می‌شود اثر می‌گذارد.

این آرگومان اختیاری است و مقدار پیش‌فرض آن صفر است. ماژول‌های با گزینه priority یکسان به ترتیب الفبایی مرتب خواهند شد.

remote:

به جای بارگذاری ماژول PKCS#11 به صورت محلی، ماژول را از راه دور اجرا کنید.

دستوری را برای اجرا مشخص کنید که پیشوند آن با یک خط عمودی (پایپ) | باشد. این دستور باید در ورودی استاندارد و خروجی استاندارد خود با پروتکل کنترل از راه دور p11-kit ارتباط برقرار کند. برای نمونه:

remote: |ssh user@remote p11-kit remote /path/to/module.so

انواع دیگر کنترل از راه دور در نسخه‌های بعدی p11-kit ارائه خواهند شد.

trust-policy:

روی yes تنظیم کنید تا از این ماژول به عنوان منبع اطلاعات خط‌مشی اعتماد مانند مهارهای گواهی و فهرست‌های مسدودشده استفاده شود.

log-calls:

روی yes تنظیم کنید تا گزارشی از تمامی فراخوانی‌ها به ماژول در stderr نوشته شود. این گزینه فقط برای ماژول‌های مدیریت‌شده پشتیبانی می‌شود.

این آرگومان اختیاری است و مقدار پیش‌فرض آن no است.

server-address:

یک آدرس سوکت که سرور p11-kit روی آن گوش می‌دهد. فقط برای ماژول p11-kit-client کاربرد دارد.

این گزینه را می‌توان با متغیر محیطی P11_KIT_SERVER_ADDRESS بازنویسی کرد.

هر دو گزینه enable-in و disable-in را برای یک ماژول به طور هم‌زمان مشخص نکنید.

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

ممکن است یک پیکربندی سراسری نیز وجود داشته باشد. این فایل حاوی تنظیماتی است که مربوط به یک ماژول منفرد PKCS#11 نیستند. مکان(های) پیکربندی سراسری در زیر شرح داده شده است. فایل پیکربندی سراسری می‌تواند حاوی فیلدهای زیر باشد:

user-config:

این فیلد برابر با یکی از مقادیر زیر خواهد بود: none، merge، only.

managed:

روی yes یا no تنظیم کنید تا همه ماژول‌ها مجبور به مدیریت‌شدن یا نشدن توسط p11-kit شوند. اعمال این تنظیم در یک فایل پیکربندی سراسری، تنظیم managed را در فایل‌های پیکربندی ماژول‌های مجزا باطل خواهد کرد. خارج کردن ماژول‌ها از حالت مدیریت‌شده توصیه نمی‌شود و در صورتی که فراخوان‌های متعدد در یک فرایند واحد از یک ماژول PKCS#11 به طور مشترک استفاده کنند، مشکل‌ساز خواهد شد.

این آرگومان اختیاری است.

log-calls:

روی yes تنظیم کنید تا گزارشی از تمامی فراخوانی‌ها به تمامی ماژول‌های پیکربندی‌شده در stderr نوشته شود. این گزینه فقط برای ماژول‌های مدیریت‌شده پشتیبانی می‌شود.

این آرگومان اختیاری است.

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

هر ماژول PKCS#11 پیکربندی‌شده فایل پیکربندی مخصوص به خود را دارد. این فایل‌ها در یک دایرکتوری قرار می‌گیرند. علاوه بر این، یک فایل پیکربندی سراسری نیز وجود دارد. یک پیکربندی سیستمی متشکل از فایل‌های پیکربندی ماژول‌های گوناگون و یک فایل برای پیکربندی سراسری وجود دارد. به صورت اختیاری، هر کاربر می‌تواند پیکربندی اضافی ارائه داده یا پیکربندی سیستم را بازنویسی کند.

فایل پیکربندی سراسری سیستم معمولاً در مسیر /etc/pkcs11/pkcs11.conf و فایل پیکربندی سراسری کاربر در مسیر ~/.config/pkcs11/pkcs11.conf در دایرکتوری خانگی کاربر قرار دارد.

فایل‌های پیکربندی ماژول‌ها معمولاً در دایرکتوری /etc/pkcs11/modules قرار دارند که به ازای هر ماژول یک فایل پیکربندی وجود دارد. علاوه بر این، دایرکتوری ~/.config/pkcs11/modules می‌تواند برای ماژول‌های نصب‌شده توسط کاربر مورد استفاده قرار گیرد.

توجه داشته باشید که اگر برنامه در قالب یک برنامه setuid یا setgid اجرا شود، فایل‌های پیکربندی کاربر از دایرکتوری خانگی بارگذاری نمی‌شوند.

فایل پیکربندی سیستمی پیش‌فرض و دایرکتوری ماژول‌ها را می‌توان هنگام ساخت p11-kit تغییر داد. همواره این مسیرها را با استفاده از pkg-config جستجو کنید.

p11-kit(8)

جزئیات بیشتر در مستندات برخط p11-kit در نشانی زیر در دسترس است: https://p11-glue.github.io/p11-glue/p11-kit/manual.

p11-kit