FIDO2-CRED(1) General Commands Manual FIDO2-CRED(1)

fido2-cred — ساخت و تایید اعتبارنامه FIDO2

fido2-cred -M [-bdhqruvw] [-t option] [-a mode] [-c cred_protect] [-i input_file] [-o output_file] device [type] fido2-cred -V [-dhv] [-c cred_protect] [-i input_file] [-o output_file] [type]

fido2-cred اعتبارنامه FIDO2 را ایجاد یا تایید صحت می‌کند.

نوع اعتبارنامه ( type ) می‌تواند es256 (نشان‌دهنده ECDSA روی NIST P-256 با SHA-256)، (نشان‌دهنده ECDSA روی NIST P-384 با SHA-384)، (نشان‌دهنده RSA با طول کلید ۲۰۴۸ بیتی با پدینگ PKCS#1.5 و SHA-256)، یا (نشان‌دهنده EDDSA روی Curve25519 با SHA-512) باشد. اگر type مشخص نشود، es256 فرض می‌شود.

هنگام ساخت اعتبارنامه، احرازکننده‌هویت ممکن است از کاربر بخواهد با PIN احراز هویت کند. اگر گزینه -q مشخص نشده باشد، fido2-cred از کاربر درخواست وارد کردن PIN خواهد کرد. اگر یک در دسترس باشد، fido2-cred از آن برای دریافت PIN استفاده می‌کند. در غیر این صورت، stdin استفاده می‌شود.

ورودی fido2-cred توسط پارامترهای اعتبارنامه‌ای که قرار است ایجاد یا تایید شود، تعریف می‌گردد. برای جزئیات به بخش قالب ورودی (INPUT FORMAT) مراجعه کنید.

خروجی fido2-cred توسط نتیجه عملیات انتخابی تعریف می‌شود. برای جزئیات به بخش قالب خروجی (OUTPUT FORMAT) مراجعه کنید.

اگر اعتبارنامه‌ای با موفقیت ایجاد یا تایید شود، fido2-cred با کد وضعیت 0 خارج می‌شود. در غیر این صورت، fido2-cred با کد وضعیت 1 خارج می‌شود.

گزینه‌ها به شرح زیر هستند:

به fido2-cred می‌گوید که یک اعتبارنامه جدید روی device بسازد.
به fido2-cred می‌گوید که یک اعتبارنامه را تایید صحت کند.
درخواست “largeBlobKey” مربوط به اعتبارنامه؛ یک کلید متقارن ۳۲ بایتی مرتبط با اعتبارنامه تولیدشده.
mode
هنگام ساخت اعتبارنامه، درخواست تصدیق سازمانی (enterprise attestation). لطفاً برای مجموعه مقادیر ممکن به <fido/param.h> مراجعه کنید.
cred_protect
در صورت ساخت اعتبارنامه، تعیین سطح حفاظت اعتبارنامه روی cred_protect ، که در آن cred_protect سطح حفاظت اعتبارنامه در نماد ده‌دهی (دسیمال) است. لطفاً برای مجموعه مقادیر ممکن به <fido/param.h> مراجعه کنید. در صورت تایید اعتبارنامه، بررسی می‌کند که آیا سطح حفاظت اعتبارنامه توسط احرازکننده‌هویت به عنوان cred_protect امضا شده است یا خیر.
باعث می‌شود fido2-cred خروجی اشکال‌زدایی را روی چاپ کند.
در صورت ساخت اعتبارنامه، فعال‌سازی افزونه hmac-secret پروتکل FIDO2. در صورت تایید اعتبارنامه، بررسی می‌کند که آیا بیت داده‌های افزونه توسط احرازکننده‌هویت امضا شده است یا خیر.
input_file
به fido2-cred دستور می‌دهد پارامترهای اعتبارنامه را به جای stdin از input_file بخواند.
output_file
به fido2-cred دستور می‌دهد خروجی را به جای در output_file بنویسد.
به fido2-cred می‌گوید که در حالت بی‌صدا کار کند. اگر وارد کردن PIN الزامی باشد و -q مشخص شده باشد، fido2-cred با شکست مواجه خواهد شد.
ایجاد یک اعتبارنامه مقیم (resident credential). اعتبارنامه‌های مقیم در پروتکل CTAP 2.1 با نام “discoverable credentials” شناخته می‌شوند.
option
تغییر وضعیت یک گزینه کلید/مقدار option ، که در آن option رشته‌ای به صورت “key=value” است. گزینه‌هایی که در حال حاضر پشتیبانی می‌شوند عبارتند از:
=true|false
از احرازکننده‌هویت درخواست می‌کند که تایید هویت کاربر فعال یا غیرفعال باشد.
=true|false
به fido2-cred می‌گوید که آیا درخواست PIN را نمایش دهد و تایید هویت کاربر را بخواهد یا خیر.

گزینه -t می‌تواند چندین بار مشخص شود.

ساخت یک اعتبارنامه U2F. به طور پیش‌فرض، fido2-cred در صورت پشتیبانی احرازکننده‌هویت از FIDO2 استفاده می‌کند، و در غیر این صورت به U2F بازمی‌گردد.
در صورت ساخت اعتبارنامه، درخواست تایید هویت کاربر. در صورت تایید اعتبارنامه، بررسی می‌کند که آیا بیت تایید کاربر توسط احرازکننده‌هویت امضا شده است یا خیر.
به fido2-cred می‌گوید که خط اول ورودی هنگام ساخت اعتبارنامه باید به عنوان داده‌های هش‌نشده سرویس‌گیرنده (unhashed client data) تفسیر شود. این گزینه برای Windows Hello مورد نیاز است، زیرا هش داده‌های کلاینت را در درون خود محاسبه می‌کند.

ورودی fido2-cred شامل بلوک‌های base64 و رشته‌های UTF-8 است که با کاراکترهای خط جدید ('\n') از یکدیگر جدا شده‌اند.

هنگام ساخت اعتبارنامه، fido2-cred انتظار دارد ورودی آن شامل موارد زیر باشد:

  1. هش داده‌های کلاینت (بلوک base64)؛
  2. شناسه طرف متکی یا Relying Party (رشته UTF-8)؛
  3. نام کاربر (رشته UTF-8)؛
  4. شناسه کاربر (بلوک base64).

هنگام تایید اعتبارنامه، fido2-cred انتظار دارد ورودی آن شامل موارد زیر باشد:

  1. هش داده‌های کلاینت (بلوک base64)؛
  2. شناسه طرف متکی یا Relying Party (رشته UTF-8)؛
  3. قالب اعتبارنامه (رشته UTF-8)؛
  4. داده‌های احرازکننده‌هویت کدگذاری‌شده با CBOR (بلوک base64)؛
  5. شناسه اعتبارنامه (بلوک base64)؛
  6. امضای تصدیق (بلوک base64)؛
  7. گواهی تصدیق (اختیاری، بلوک base64).

رشته‌های UTF-8 ارسال‌شده به fido2-cred نباید دارای کاراکترهای خط جدید یا NUL باشند.

خروجی fido2-cred شامل بلوک‌های base64، رشته‌های UTF-8 و کلیدهای عمومی با قالب کدگذاری‌شده PEM است که با کاراکترهای خط جدید ('\n') از یکدیگر جدا شده‌اند.

پس از تولید موفقیت‌آمیز یک اعتبارنامه، fido2-cred موارد زیر را در خروجی چاپ می‌کند:

  1. هش داده‌های کلاینت (بلوک base64)؛
  2. شناسه طرف متکی یا Relying Party (رشته UTF-8)؛
  3. قالب اعتبارنامه (رشته UTF-8)؛
  4. داده‌های احرازکننده‌هویت کدگذاری‌شده با CBOR (بلوک base64)؛
  5. شناسه اعتبارنامه (بلوک base64)؛
  6. امضای تصدیق (بلوک base64)؛
  7. گواهی تصدیق، در صورت وجود (بلوک base64).
  8. کلید متقارن ۳۲ بایتی مرتبط با اعتبارنامه (“largeBlobKey ،”) در صورت وجود (بلوک base64).

پس از تایید موفقیت‌آمیز یک اعتبارنامه، fido2-cred موارد زیر را در خروجی چاپ می‌کند:

  1. شناسه اعتبارنامه (بلوک base64)؛
  2. کلید اعتبارنامه کدگذاری‌شده با PEM.

ساخت یک اعتبارنامه جدید es256 روی /dev/hidraw5 ، تایید صحت آن، و ذخیره شناسه و کلید عمومی اعتبارنامه در :

$ echo credential challenge | openssl sha256 -binary | base64 > cred_param
$ echo relying party >> cred_param
$ echo user name >> cred_param
$ dd if=/dev/urandom bs=1 count=32 | base64 >> cred_param
$ fido2-cred -M -i cred_param /dev/hidraw5 | fido2-cred -V -o cred

fido2-assert(1), fido2-token(1)

لطفاً توجه داشته باشید که fido2-cred تصدیق پایه (Basic Attestation) و خودتصدیقی (Self Attestation) را به طور شفاف مدیریت می‌کند. در صورت استفاده از تصدیق پایه، اعتبار گواهی تصدیق احرازکننده‌هویت بررسی و تایید نمی‌شود.

December 8, 2025 Linux 6.12.107+deb13-amd64