| FIDO2-ASSERT(1) | General Commands Manual | FIDO2-ASSERT(1) |
نام (NAME)
fido2-assert —
دریافت
یا
اعتبارسنجی
یک ادعای FIDO2
خلاصه دستور (SYNOPSIS)
fido2-assert -G
[-bdhpruvw] [-t
option] [-i
input_file] [-o
output_file] device
fido2-assert -V
[-dhpv] [-i
input_file] key_file
[type]
توضیحات (DESCRIPTION)
fido2-assert یک
ادعای (assertion) FIDO2 را
دریافت یا
اعتبارسنجی
میکند.
ورودی
fido2-assert توسط
پارامترهای
ادعایی که
قرار است
دریافت یا
اعتبارسنجی
شود تعیین
میشود.
برای
جزئیات
بیشتر به
بخش
قالب
ورودی (INPUT FORMAT)
مراجعه
کنید.
خروجی
fido2-assert توسط
نتیجه
عملیات
انتخابشده
تعیین
میشود.
برای
جزئیات
بیشتر به
بخش
قالب
خروجی (OUTPUT FORMAT)
مراجعه
کنید.
اگر یک
ادعا با
موفقیت
دریافت یا
اعتبارسنجی
شود، fido2-assert
با کد وضعیت 0
خارج
میشود. در
غیر این
صورت،
fido2-assert با کد
وضعیت 1 خارج
میشود.
گزینهها به شرح زیر هستند:
-G- به
fido2-assertدستور میدهد تا یک ادعای جدید را از device دریافت کند. -V- به
fido2-assertدستور میدهد تا یک ادعا را با استفاده از کلید عمومی با کدگذاری PEM در key_file از نوع type اعتبارسنجی کند، که در آن type میتواند es256 (نشاندهنده ECDSA روی NIST P-256 با SHA-256)، es384 (نشاندهنده ECDSA روی NIST P-384 با SHA-384)، rs256 (نشاندهنده RSA با طول ۲۰۴۸ بیت با پدینگ PKCS#1.5 و SHA-256)، یا eddsa (نشاندهنده EDDSA روی Curve25519 با SHA-512) باشد. اگر type مشخص نشده باشد، es256 فرض میشود. -b- درخواست “largeBlobKey” مربوط به اعتبارنامه؛ یک کلید متقارن ۳۲ بایتی مرتبط با اعتبارنامه ادعاشده.
-h- هنگام دریافت ادعا، افزونه hmac-secret در FIDO2 را فعال میکند. هنگام اعتبارسنجی ادعا، بررسی میکند که آیا بیت داده افزونه توسط احرازکننده امضا شده است یا خیر.
-d- باعث
میشود
fido2-assertخروجی اشکالزدایی را روی stderr چاپ کند. -iinput_file- به
fido2-assertدستور میدهد تا پارامترهای ادعا را به جای stdin از input_file بخواند. -ooutput_file- به
fido2-assertدستور میدهد تا خروجی را به جای stdout در output_file بنویسد. -p- هنگام دریافت ادعا، حضور کاربر (user presence) را درخواست میکند. هنگام اعتبارسنجی ادعا، بررسی میکند که آیا بیت حضور کاربر توسط احرازکننده امضا شده است یا خیر.
-r- دریافت یک
ادعا با
استفاده از
یک
اعتبارنامه
مقیم (resident credential).
اگر
-rمشخص شده باشد،fido2-assertدر ورودی خود انتظار شناسه اعتبارنامه را نخواهد داشت و ممکن است چندین ادعا را در خروجی ارائه دهد. اعتبارنامههای مقیم در CTAP 2.1 با عنوان “discoverable credentials” (اعتبارنامههای قابلکشف) نامیده میشوند. -toption- یک option
کلید/مقدار
را تغییر
وضعیت
میدهد، که
در آن option
رشتهای به
صورت “key=value”
است.
گزینههایی
که در حال
حاضر
پشتیبانی
میشوند
عبارتند از:
up=true|false- از احرازکننده درخواست میکند که حضور کاربر فعال یا غیرفعال شود.
uv=true|false- از احرازکننده درخواست میکند که اعتبارسنجی کاربر فعال یا غیرفعال شود.
pin=true|false- به
fido2-assertمیگوید که آیا PIN را از کاربر درخواست کند و اعتبارسنجی کاربر را بخواهد یا خیر.
گزینه
-tمیتواند چندین بار مشخص شود. -u- دریافت یک
ادعا با
استفاده از
U2F. به طور
پیشفرض،
fido2-assertدر صورت پشتیبانی احرازکننده از FIDO2 استفاده میکند، و در غیر این صورت به U2F بازمیگردد. -v- هنگام دریافت ادعا، از کاربر درخواست PIN میکند و اعتبارسنجی کاربر را از احرازکننده تقاضا مینماید. هنگام اعتبارسنجی ادعا، بررسی میکند که آیا بیت اعتبارسنجی کاربر توسط احرازکننده امضا شده است یا خیر.
-w- به
fido2-assertمیگوید که هنگام دریافت یک ادعا، خط اول ورودی را به عنوان دادههای هشنشده کلاینت تفسیر کند. این مورد برای Windows Hello لازم است، که هش دادههای کلاینت را به صورت داخلی محاسبه میکند.
اگر یک
tty در
دسترس
باشد،
fido2-assert از آن
برای
دریافت PIN
استفاده
خواهد کرد.
در غیر این
صورت، stdin
استفاده
میشود.
قالب ورودی (INPUT FORMAT)
ورودی
fido2-assert شامل
دادههای
باینری (blob) در
قالب base64 و
رشتههای UTF-8
است که با
نویسه خط
جدید ('\n') از هم
جدا
شدهاند.
هنگام
دریافت یک
ادعا،
fido2-assert
انتظار
دارد ورودی
آن شامل
موارد زیر
باشد:
- هش دادههای کلاینت (blob در قالب base64)؛
- شناسه طرف متکی (relying party id) (رشته UTF-8)؛
- شناسه اعتبارنامه، در صورتی که اعتبارنامه مقیم نباشد (blob در قالب base64)؛
- سالت hmac، در صورتی که افزونه hmac-secret در FIDO2 فعال باشد (blob در قالب base64)؛
هنگام
اعتبارسنجی
یک ادعا،
fido2-assert
انتظار
دارد ورودی
آن شامل
موارد زیر
باشد:
- هش دادههای کلاینت (blob در قالب base64)؛
- شناسه طرف متکی (relying party id) (رشته UTF-8)؛
- دادههای احرازکننده کدگذاریشده با CBOR (blob در قالب base64)؛
- امضای ادعا (blob در قالب base64)؛
رشتههای
UTF-8
ارسالشده
به fido2-assert
نباید حاوی
نویسههای
خط جدید یا NUL
در میان خود
باشند.
قالب خروجی (OUTPUT FORMAT)
خروجی
fido2-assert شامل
دادههای
باینری (blob) در
قالب base64 و
رشتههای UTF-8
است که با
نویسه خط
جدید ('\n') از هم
جدا
شدهاند.
به ازای هر
ادعای
تولیدشده،
fido2-assert
موارد زیر
را در خروجی
چاپ
میکند:
- هش دادههای کلاینت (blob در قالب base64)؛
- شناسه طرف متکی (relying party id) (رشته UTF-8)؛
- دادههای احرازکننده کدگذاریشده با CBOR (blob در قالب base64)؛
- امضای ادعا (blob در قالب base64)؛
- شناسه کاربر، در صورتی که اعتبارنامه مقیم باشد (blob در قالب base64)؛
- رمز hmac، در صورتی که افزونه hmac-secret در FIDO2 فعال باشد (blob در قالب base64)؛
- کلید متقارن ۳۲ بایتی مرتبط با اعتبارنامه (“largeBlobKey ،”) در صورت درخواست (blob در قالب base64).
هنگام
اعتبارسنجی
یک ادعا،
fido2-assert هیچ
خروجیای
تولید
نمیکند.
مثالها (EXAMPLES)
با فرض اینکه cred شامل یک اعتبارنامه es256 است که بر اساس مراحل شرح داده شده در fido2-cred(1) ایجاد شده است، دریافت یک ادعا از یک احرازکننده در /dev/hidraw5 و اعتبارسنجی آن:
$ echo assertion challenge | openssl
sha256 -binary | base64 > assert_param$ echo relying party >>
assert_param$ head -1 cred >>
assert_param$ tail -n +2 cred >
pubkey$ fido2-assert -G -i assert_param
/dev/hidraw5 | fido2-assert -V pubkey es256همچنین ببینید (SEE ALSO)
| July 3, 2023 | Linux 6.12.107+deb13-amd64 |