1*2ccfa855SEd Maste.\" Copyright (c) 2018-2022 Yubico AB. All rights reserved. 20afa8e06SEd Maste.\" 3*2ccfa855SEd Maste.\" Redistribution and use in source and binary forms, with or without 4*2ccfa855SEd Maste.\" modification, are permitted provided that the following conditions are 5*2ccfa855SEd Maste.\" met: 6*2ccfa855SEd Maste.\" 7*2ccfa855SEd Maste.\" 1. Redistributions of source code must retain the above copyright 8*2ccfa855SEd Maste.\" notice, this list of conditions and the following disclaimer. 9*2ccfa855SEd Maste.\" 2. Redistributions in binary form must reproduce the above copyright 10*2ccfa855SEd Maste.\" notice, this list of conditions and the following disclaimer in 11*2ccfa855SEd Maste.\" the documentation and/or other materials provided with the 12*2ccfa855SEd Maste.\" distribution. 13*2ccfa855SEd Maste.\" 14*2ccfa855SEd Maste.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 15*2ccfa855SEd Maste.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 16*2ccfa855SEd Maste.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 17*2ccfa855SEd Maste.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 18*2ccfa855SEd Maste.\" HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19*2ccfa855SEd Maste.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 20*2ccfa855SEd Maste.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21*2ccfa855SEd Maste.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22*2ccfa855SEd Maste.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23*2ccfa855SEd Maste.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24*2ccfa855SEd Maste.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*2ccfa855SEd Maste.\" 26*2ccfa855SEd Maste.\" SPDX-License-Identifier: BSD-2-Clause 27*2ccfa855SEd Maste.\" 28*2ccfa855SEd Maste.Dd $Mdocdate: April 11 2022 $ 290afa8e06SEd Maste.Dt FIDO2-TOKEN 1 300afa8e06SEd Maste.Os 310afa8e06SEd Maste.Sh NAME 320afa8e06SEd Maste.Nm fido2-token 330afa8e06SEd Maste.Nd find and manage a FIDO2 authenticator 340afa8e06SEd Maste.Sh SYNOPSIS 350afa8e06SEd Maste.Nm 360afa8e06SEd Maste.Fl C 370afa8e06SEd Maste.Op Fl d 380afa8e06SEd Maste.Ar device 390afa8e06SEd Maste.Nm 400afa8e06SEd Maste.Fl D 410afa8e06SEd Maste.Op Fl d 420afa8e06SEd Maste.Fl i 430afa8e06SEd Maste.Ar cred_id 440afa8e06SEd Maste.Ar device 450afa8e06SEd Maste.Nm 460afa8e06SEd Maste.Fl D 470afa8e06SEd Maste.Fl b 480afa8e06SEd Maste.Op Fl d 490afa8e06SEd Maste.Fl k Ar key_path 500afa8e06SEd Maste.Ar device 510afa8e06SEd Maste.Nm 520afa8e06SEd Maste.Fl D 530afa8e06SEd Maste.Fl b 540afa8e06SEd Maste.Op Fl d 550afa8e06SEd Maste.Fl n Ar rp_id 560afa8e06SEd Maste.Op Fl i Ar cred_id 570afa8e06SEd Maste.Ar device 580afa8e06SEd Maste.Nm 590afa8e06SEd Maste.Fl D 600afa8e06SEd Maste.Fl e 610afa8e06SEd Maste.Op Fl d 620afa8e06SEd Maste.Fl i 630afa8e06SEd Maste.Ar template_id 640afa8e06SEd Maste.Ar device 650afa8e06SEd Maste.Nm 660afa8e06SEd Maste.Fl D 670afa8e06SEd Maste.Fl u 680afa8e06SEd Maste.Op Fl d 690afa8e06SEd Maste.Ar device 700afa8e06SEd Maste.Nm 710afa8e06SEd Maste.Fl G 720afa8e06SEd Maste.Fl b 730afa8e06SEd Maste.Op Fl d 740afa8e06SEd Maste.Fl k Ar key_path 750afa8e06SEd Maste.Ar blob_path 760afa8e06SEd Maste.Ar device 770afa8e06SEd Maste.Nm 780afa8e06SEd Maste.Fl G 790afa8e06SEd Maste.Fl b 800afa8e06SEd Maste.Op Fl d 810afa8e06SEd Maste.Fl n Ar rp_id 820afa8e06SEd Maste.Op Fl i Ar cred_id 830afa8e06SEd Maste.Ar blob_path 840afa8e06SEd Maste.Ar device 850afa8e06SEd Maste.Nm 860afa8e06SEd Maste.Fl I 870afa8e06SEd Maste.Op Fl cd 880afa8e06SEd Maste.Op Fl k Ar rp_id Fl i Ar cred_id 890afa8e06SEd Maste.Ar device 900afa8e06SEd Maste.Nm 910afa8e06SEd Maste.Fl L 920afa8e06SEd Maste.Op Fl bder 930afa8e06SEd Maste.Op Fl k Ar rp_id 940afa8e06SEd Maste.Op device 950afa8e06SEd Maste.Nm 960afa8e06SEd Maste.Fl R 970afa8e06SEd Maste.Op Fl d 980afa8e06SEd Maste.Ar device 990afa8e06SEd Maste.Nm 1000afa8e06SEd Maste.Fl S 1010afa8e06SEd Maste.Op Fl adefu 1020afa8e06SEd Maste.Ar device 1030afa8e06SEd Maste.Nm 1040afa8e06SEd Maste.Fl S 1050afa8e06SEd Maste.Op Fl d 1060afa8e06SEd Maste.Fl i Ar template_id 1070afa8e06SEd Maste.Fl n Ar template_name 108f540a430SEd Maste.Ar device 1090afa8e06SEd Maste.Nm 1100afa8e06SEd Maste.Fl S 1110afa8e06SEd Maste.Op Fl d 1120afa8e06SEd Maste.Fl l Ar pin_length 1130afa8e06SEd Maste.Ar device 1140afa8e06SEd Maste.Nm 1150afa8e06SEd Maste.Fl S 1160afa8e06SEd Maste.Fl b 1170afa8e06SEd Maste.Op Fl d 1180afa8e06SEd Maste.Fl k Ar key_path 1190afa8e06SEd Maste.Ar blob_path 1200afa8e06SEd Maste.Ar device 1210afa8e06SEd Maste.Nm 1220afa8e06SEd Maste.Fl S 1230afa8e06SEd Maste.Fl b 1240afa8e06SEd Maste.Op Fl d 1250afa8e06SEd Maste.Fl n Ar rp_id 1260afa8e06SEd Maste.Op Fl i Ar cred_id 1270afa8e06SEd Maste.Ar blob_path 1280afa8e06SEd Maste.Ar device 1290afa8e06SEd Maste.Nm 1300afa8e06SEd Maste.Fl S 1310afa8e06SEd Maste.Fl c 1320afa8e06SEd Maste.Op Fl d 1330afa8e06SEd Maste.Fl i Ar cred_id 1340afa8e06SEd Maste.Fl k Ar user_id 1350afa8e06SEd Maste.Fl n Ar name 1360afa8e06SEd Maste.Fl p Ar display_name 1370afa8e06SEd Maste.Ar device 1380afa8e06SEd Maste.Nm 139f540a430SEd Maste.Fl S 140f540a430SEd Maste.Fl m 141f540a430SEd Maste.Ar rp_id 142f540a430SEd Maste.Ar device 143f540a430SEd Maste.Nm 1440afa8e06SEd Maste.Fl V 1450afa8e06SEd Maste.Sh DESCRIPTION 1460afa8e06SEd Maste.Nm 1470afa8e06SEd Mastemanages a FIDO2 authenticator. 1480afa8e06SEd Maste.Pp 1490afa8e06SEd MasteThe options are as follows: 1500afa8e06SEd Maste.Bl -tag -width Ds 1510afa8e06SEd Maste.It Fl C Ar device 1520afa8e06SEd MasteChanges the PIN of 1530afa8e06SEd Maste.Ar device . 1540afa8e06SEd MasteThe user will be prompted for the current and new PINs. 1550afa8e06SEd Maste.It Fl D Fl i Ar id Ar device 1560afa8e06SEd MasteDeletes the resident credential specified by 1570afa8e06SEd Maste.Ar id 1580afa8e06SEd Mastefrom 1590afa8e06SEd Maste.Ar device , 1600afa8e06SEd Mastewhere 1610afa8e06SEd Maste.Ar id 1620afa8e06SEd Masteis the credential's base64-encoded id. 1630afa8e06SEd MasteThe user will be prompted for the PIN. 1640afa8e06SEd Maste.It Fl D Fl b Fl k Ar key_path Ar device 1650afa8e06SEd MasteDeletes a 1660afa8e06SEd Maste.Dq largeBlob 1670afa8e06SEd Masteencrypted with 1680afa8e06SEd Maste.Ar key_path 1690afa8e06SEd Mastefrom 1700afa8e06SEd Maste.Ar device , 1710afa8e06SEd Mastewhere 1720afa8e06SEd Maste.Ar key_path 173*2ccfa855SEd Masteholds the blob's base64-encoded 32-byte AES-256 GCM encryption key. 1740afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 1750afa8e06SEd Maste.It Fl D Fl b Fl n Ar rp_id Oo Fl i Ar cred_id Oc Ar device 1760afa8e06SEd MasteDeletes a 1770afa8e06SEd Maste.Dq largeBlob 1780afa8e06SEd Mastecorresponding to 1790afa8e06SEd Maste.Ar rp_id 1800afa8e06SEd Mastefrom 1810afa8e06SEd Maste.Ar device . 1820afa8e06SEd MasteIf 1830afa8e06SEd Maste.Ar rp_id 1840afa8e06SEd Mastehas multiple credentials enrolled on 1850afa8e06SEd Maste.Ar device , 1860afa8e06SEd Mastethe credential ID must be specified using 1870afa8e06SEd Maste.Fl i Ar cred_id , 1880afa8e06SEd Mastewhere 1890afa8e06SEd Maste.Ar cred_id 1900afa8e06SEd Masteis a base64-encoded blob. 1910afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 1920afa8e06SEd Maste.It Fl D Fl e Fl i Ar id Ar device 1930afa8e06SEd MasteDeletes the biometric enrollment specified by 1940afa8e06SEd Maste.Ar id 1950afa8e06SEd Mastefrom 1960afa8e06SEd Maste.Ar device , 1970afa8e06SEd Mastewhere 1980afa8e06SEd Maste.Ar id 1990afa8e06SEd Masteis the enrollment's template base64-encoded id. 2000afa8e06SEd MasteThe user will be prompted for the PIN. 2010afa8e06SEd Maste.It Fl D Fl u Ar device 2023e696dfbSEd MasteDisables the CTAP 2.1 2030afa8e06SEd Maste.Dq user verification always 2040afa8e06SEd Mastefeature on 2050afa8e06SEd Maste.Ar device . 2060afa8e06SEd Maste.It Fl G Fl b Fl k Ar key_path Ar blob_path Ar device 2073e696dfbSEd MasteGets a CTAP 2.1 2080afa8e06SEd Maste.Dq largeBlob 2090afa8e06SEd Masteencrypted with 2100afa8e06SEd Maste.Ar key_path 2110afa8e06SEd Mastefrom 2120afa8e06SEd Maste.Ar device , 2130afa8e06SEd Mastewhere 2140afa8e06SEd Maste.Ar key_path 215*2ccfa855SEd Masteholds the blob's base64-encoded 32-byte AES-256 GCM encryption key. 2160afa8e06SEd MasteThe blob is written to 2170afa8e06SEd Maste.Ar blob_path . 2180afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 2190afa8e06SEd Maste.It Fl G Fl b Fl n Ar rp_id Oo Fl i Ar cred_id Oc Ar blob_path Ar device 2203e696dfbSEd MasteGets a CTAP 2.1 2210afa8e06SEd Maste.Dq largeBlob 2220afa8e06SEd Masteassociated with 2230afa8e06SEd Maste.Ar rp_id 2240afa8e06SEd Mastefrom 2250afa8e06SEd Maste.Ar device . 2260afa8e06SEd MasteIf 2270afa8e06SEd Maste.Ar rp_id 2280afa8e06SEd Mastehas multiple credentials enrolled on 2290afa8e06SEd Maste.Ar device , 2300afa8e06SEd Mastethe credential ID must be specified using 2310afa8e06SEd Maste.Fl i Ar cred_id , 2320afa8e06SEd Mastewhere 2330afa8e06SEd Maste.Ar cred_id 2340afa8e06SEd Masteis a base64-encoded blob. 2350afa8e06SEd MasteThe blob is written to 2360afa8e06SEd Maste.Ar blob_path . 2370afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 2380afa8e06SEd Maste.It Fl I Ar device 2390afa8e06SEd MasteRetrieves information on 2400afa8e06SEd Maste.Ar device . 2410afa8e06SEd Maste.It Fl I Fl c Ar device 2420afa8e06SEd MasteRetrieves resident credential metadata from 2430afa8e06SEd Maste.Ar device . 2440afa8e06SEd MasteThe user will be prompted for the PIN. 2450afa8e06SEd Maste.It Fl I Fl k Ar rp_id Fl i Ar cred_id Ar device 2460afa8e06SEd MastePrints the credential id (base64-encoded) and public key 2470afa8e06SEd Maste(PEM encoded) of the resident credential specified by 2480afa8e06SEd Maste.Ar rp_id 2490afa8e06SEd Masteand 2500afa8e06SEd Maste.Ar cred_id , 2510afa8e06SEd Mastewhere 2520afa8e06SEd Maste.Ar rp_id 2530afa8e06SEd Masteis a UTF-8 relying party id, and 2540afa8e06SEd Maste.Ar cred_id 2550afa8e06SEd Masteis a base64-encoded credential id. 2560afa8e06SEd MasteThe user will be prompted for the PIN. 2570afa8e06SEd Maste.It Fl L 2580afa8e06SEd MasteProduces a list of authenticators found by the operating system. 2590afa8e06SEd Maste.It Fl L Fl b Ar device 2603e696dfbSEd MasteProduces a list of CTAP 2.1 2610afa8e06SEd Maste.Dq largeBlobs 2620afa8e06SEd Masteon 2630afa8e06SEd Maste.Ar device . 2640afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 2650afa8e06SEd Maste.It Fl L Fl e Ar device 2660afa8e06SEd MasteProduces a list of biometric enrollments on 2670afa8e06SEd Maste.Ar device . 2680afa8e06SEd MasteThe user will be prompted for the PIN. 2690afa8e06SEd Maste.It Fl L Fl r Ar device 2700afa8e06SEd MasteProduces a list of relying parties with resident credentials on 2710afa8e06SEd Maste.Ar device . 2720afa8e06SEd MasteThe user will be prompted for the PIN. 2730afa8e06SEd Maste.It Fl L Fl k Ar rp_id Ar device 2740afa8e06SEd MasteProduces a list of resident credentials corresponding to 2750afa8e06SEd Masterelying party 2760afa8e06SEd Maste.Ar rp_id 2770afa8e06SEd Masteon 2780afa8e06SEd Maste.Ar device . 2790afa8e06SEd MasteThe user will be prompted for the PIN. 2800afa8e06SEd Maste.It Fl R 2810afa8e06SEd MastePerforms a reset on 2820afa8e06SEd Maste.Ar device . 2830afa8e06SEd Maste.Nm 2840afa8e06SEd Mastewill NOT prompt for confirmation. 2850afa8e06SEd Maste.It Fl S 2860afa8e06SEd MasteSets the PIN of 2870afa8e06SEd Maste.Ar device . 2880afa8e06SEd MasteThe user will be prompted for the PIN. 2890afa8e06SEd Maste.It Fl S Fl a Ar device 2903e696dfbSEd MasteEnables CTAP 2.1 Enterprise Attestation on 2910afa8e06SEd Maste.Ar device . 2920afa8e06SEd Maste.It Fl S Fl b Fl k Ar key_path Ar blob_path Ar device 293*2ccfa855SEd MasteSets a CTAP 2.1 2940afa8e06SEd Maste.Dq largeBlob 2950afa8e06SEd Masteencrypted with 2960afa8e06SEd Maste.Ar key_path 2970afa8e06SEd Masteon 2980afa8e06SEd Maste.Ar device , 2990afa8e06SEd Mastewhere 3000afa8e06SEd Maste.Ar key_path 301*2ccfa855SEd Masteholds the blob's base64-encoded 32-byte AES-256 GCM encryption key. 302*2ccfa855SEd MasteThe blob is read from 303*2ccfa855SEd Maste.Fa blob_path . 3040afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 3050afa8e06SEd Maste.It Fl S Fl b Fl n Ar rp_id Oo Fl i Ar cred_id Oc Ar blob_path Ar device 306*2ccfa855SEd MasteSets a CTAP 2.1 3070afa8e06SEd Maste.Dq largeBlob 3080afa8e06SEd Masteassociated with 3090afa8e06SEd Maste.Ar rp_id 3100afa8e06SEd Masteon 3110afa8e06SEd Maste.Ar device . 312*2ccfa855SEd MasteThe blob is read from 313*2ccfa855SEd Maste.Fa blob_path . 3140afa8e06SEd MasteIf 3150afa8e06SEd Maste.Ar rp_id 3160afa8e06SEd Mastehas multiple credentials enrolled on 3170afa8e06SEd Maste.Ar device , 3180afa8e06SEd Mastethe credential ID must be specified using 3190afa8e06SEd Maste.Fl i Ar cred_id , 3200afa8e06SEd Mastewhere 3210afa8e06SEd Maste.Ar cred_id 3220afa8e06SEd Masteis a base64-encoded blob. 3230afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 3240afa8e06SEd Maste.It Fl S Fl c Fl i Ar cred_id Fl k Ar user_id Fl n Ar name Fl p Ar display_name Ar device 3250afa8e06SEd MasteSets the 3260afa8e06SEd Maste.Ar name 3270afa8e06SEd Masteand 3280afa8e06SEd Maste.Ar display_name 3290afa8e06SEd Masteattributes of the resident credential identified by 3300afa8e06SEd Maste.Ar cred_id 3310afa8e06SEd Masteand 3320afa8e06SEd Maste.Ar user_id , 3330afa8e06SEd Mastewhere 3340afa8e06SEd Maste.Ar name 3350afa8e06SEd Masteand 3360afa8e06SEd Maste.Ar display_name 3370afa8e06SEd Masteare UTF-8 strings and 3380afa8e06SEd Maste.Ar cred_id 3390afa8e06SEd Masteand 3400afa8e06SEd Maste.Ar user_id 3410afa8e06SEd Masteare base64-encoded blobs. 3420afa8e06SEd MasteA PIN or equivalent user-verification gesture is required. 3430afa8e06SEd Maste.It Fl S Fl e Ar device 3440afa8e06SEd MastePerforms a new biometric enrollment on 3450afa8e06SEd Maste.Ar device . 3460afa8e06SEd MasteThe user will be prompted for the PIN. 3470afa8e06SEd Maste.It Fl S Fl e Fl i Ar template_id Fl n Ar template_name Ar device 3480afa8e06SEd MasteSets the friendly name of the biometric enrollment specified by 3490afa8e06SEd Maste.Ar template_id 3500afa8e06SEd Masteto 3510afa8e06SEd Maste.Ar template_name 3520afa8e06SEd Masteon 3530afa8e06SEd Maste.Ar device , 3540afa8e06SEd Mastewhere 3550afa8e06SEd Maste.Ar template_id 3560afa8e06SEd Masteis base64-encoded and 3570afa8e06SEd Maste.Ar template_name 3580afa8e06SEd Masteis a UTF-8 string. 3590afa8e06SEd MasteThe user will be prompted for the PIN. 3600afa8e06SEd Maste.It Fl S Fl f Ar device 3610afa8e06SEd MasteForces a PIN change on 3620afa8e06SEd Maste.Ar device . 3630afa8e06SEd MasteThe user will be prompted for the PIN. 3640afa8e06SEd Maste.It Fl S Fl l Ar pin_length Ar device 3650afa8e06SEd MasteSets the minimum PIN length of 3660afa8e06SEd Maste.Ar device 3670afa8e06SEd Masteto 3680afa8e06SEd Maste.Ar pin_length . 3690afa8e06SEd MasteThe user will be prompted for the PIN. 370f540a430SEd Maste.It Fl S Fl m Ar rp_id Ar device 371f540a430SEd MasteSets the list of relying party IDs that are allowed to retrieve 372f540a430SEd Mastethe minimum PIN length of 373f540a430SEd Maste.Ar device . 374f540a430SEd MasteMultiple IDs may be specified, separated by commas. 375f540a430SEd MasteThe user will be prompted for the PIN. 3760afa8e06SEd Maste.It Fl S Fl u Ar device 3773e696dfbSEd MasteEnables the CTAP 2.1 3780afa8e06SEd Maste.Dq user verification always 3790afa8e06SEd Mastefeature on 3800afa8e06SEd Maste.Ar device . 3810afa8e06SEd Maste.It Fl V 3820afa8e06SEd MastePrints version information. 3830afa8e06SEd Maste.It Fl d 3840afa8e06SEd MasteCauses 3850afa8e06SEd Maste.Nm 3860afa8e06SEd Masteto emit debugging output on 3870afa8e06SEd Maste.Em stderr . 3880afa8e06SEd Maste.El 3890afa8e06SEd Maste.Pp 3900afa8e06SEd MasteIf a 3910afa8e06SEd Maste.Em tty 3920afa8e06SEd Masteis available, 3930afa8e06SEd Maste.Nm 3940afa8e06SEd Mastewill use it to prompt for PINs. 3950afa8e06SEd MasteOtherwise, 3960afa8e06SEd Maste.Em stdin 3970afa8e06SEd Masteis used. 3980afa8e06SEd Maste.Pp 3990afa8e06SEd Maste.Nm 4000afa8e06SEd Masteexits 0 on success and 1 on error. 4010afa8e06SEd Maste.Sh SEE ALSO 4020afa8e06SEd Maste.Xr fido2-assert 1 , 4030afa8e06SEd Maste.Xr fido2-cred 1 4040afa8e06SEd Maste.Sh CAVEATS 4050afa8e06SEd MasteThe actual user-flow to perform a reset is outside the scope of the 4060afa8e06SEd MasteFIDO2 specification, and may therefore vary depending on the 4070afa8e06SEd Masteauthenticator. 4080afa8e06SEd MasteYubico authenticators do not allow resets after 5 seconds from 4090afa8e06SEd Mastepower-up, and expect a reset to be confirmed by the user through 4100afa8e06SEd Mastetouch within 30 seconds. 4110afa8e06SEd Maste.Pp 4120afa8e06SEd MasteAn authenticator's path may contain spaces. 4130afa8e06SEd Maste.Pp 4140afa8e06SEd MasteResident credentials are called 4150afa8e06SEd Maste.Dq discoverable credentials 4163e696dfbSEd Mastein CTAP 2.1. 4170afa8e06SEd Maste.Pp 4183e696dfbSEd MasteWhether the CTAP 2.1 4190afa8e06SEd Maste.Dq user verification always 4200afa8e06SEd Mastefeature is activated or deactivated after an authenticator reset 4210afa8e06SEd Masteis vendor-specific. 422