Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
PAM_U2F(8)		      PAM U2F Module Manual		      PAM_U2F(8)

NAME
     pam_u2f - Module for U2F authentication

SYNOPSIS
     pam_u2f [...]

DESCRIPTION
     The module provides U2F authentication against Yubikeys and other compliant
     authenticators.

OPTIONS
     debug
	 Enables debug output

     debug_file
	 Filename  to  write  debugging  messages  to.	If this file is missing,
	 nothing will be logged. This regular file has to be created by the user
	 or must exist and be a regular file for anything getting logged to  it.
	 It  is not created by pam-u2f on purpose (for security considerations).
	 This filename may be alternatively set to "stderr" (default), "stdout",
	 or "syslog".

     origin=origin
	 Set the relying party ID for the FIDO authentication procedure.  If  no
	 value is specified, the identifier "pam://$HOSTNAME" is used.

     appid=appid
	 Set  the  application	ID  for the FIDO authentication procedure. If no
	 value	is  specified,	the  same  value  used	for  origin   is   taken
	 ("pam://$HOSTNAME"  if  also  origin is not specified). This setting is
	 only applicable for FIDO credentials created  with  pamu2fcfg	versions
	 v1.0.8  or earlier. Note that on v1.1.0 and v1.1.1 of pam-u2f, handling
	 of this setting was temporarily broken if the value was not the same as
	 the value of origin.

     authfile=file
	 Set the location of the file that holds the mappings of user  names  to
	 keyHandles  and user keys. An individual (per user) file may be config-
	 ured relative to the users' home dirs,  e.g.  ".ssh/u2f_keys".  If  not
	 specified,  the  location defaults to $XDG_CONFIG_HOME/Yubico/u2f_keys.
	 If $XDG_CONFIG_HOME is not set, $HOME/.config/Yubico/u2f_keys is  used.
	 The   authfile   format   is  <username>:<KeyHandle1>,<UserKey1>,<Cose-
	 Type1>,<Options1>:<KeyHandle2>,<UserKey2>,<CoseType2>,<Options2>:...

     expand
	 Enables variable expansion within the authfile path: %u is expanded  to
	 the  local user name (PAM_USER) and %% is expanded to %. Unknown expan-
	 sion sequences result in an authentication error. See also openasuser.

     authpending_file=file
	 Set the location of the file that is used for touch  request  notifica-
	 tions.  This file will be opened when pam-u2f starts waiting for a user
	 to touch the FIDO authenticator, and will be closed when it  no  longer
	 waits	for  a	touch.	Use inotify to listen on these events, or a more
	 high-level   tool   like   yubikey-touch-detector.    Default	  value:
	 /var/run/user/$UID/pam-u2f-authpending.  Set an empty value in order to
	 disable this functionality, like so: "authpending_file=".

     nouserok
	 Set to enable authentication attempts to succeed even if the user  try-
	 ing  to  authenticate	is  not  found inside authfile or if authfile is
	 missing/malformed.

     openasuser
	 Setuid to the authenticating user when  opening  the  authfile.  Useful
	 when  the  user's  home  is  stored  on  an NFS volume mounted with the
	 root_squash option (which maps root to nobody which will not be able to
	 read the file). Note that after release 1.0.8 this is done  by  default
	 when  no global authfile (path is absolute) or XDG_CONFIG_HOME environ-
	 ment variable has been set.

     alwaysok
	 Set to enable all authentication attempts to succeed (aka  presentation
	 mode).

     max_devices=n_devices
	 Maximum number of FIDO authenticators allowed per user (default is 24).
	 FIDO  authenticators  specified  in the authorization mapping file that
	 exceed this value will be ignored.

     interactive
	 Set to prompt a message and wait before testing the presence of a  FIDO
	 authenticator.  Recommended  if your authenticator doesn't have tactile
	 trigger.

     [prompt=your prompt here]
	 Set individual prompt message for interactive mode.  Watch  the  square
	 brackets  around  this  parameter to get spaces correctly recognized by
	 PAM.

     manual
	 Set to drop to a manual console where challenges are printed on  screen
	 and  response	read  from  standard input. Useful for debugging and SSH
	 sessions without FIDO support from the SSH client/server.  If	enabled,
	 interactive mode becomes redundant and has no effect.

     cue
	 Set to prompt a message to remind to touch the FIDO authenticator.

     [cue_prompt=your prompt here]
	 Set  individual  prompt  message  for	the cue option. Watch the square
	 brackets around this parameter to get spaces  correctly  recognized  by
	 PAM.

     nodetect
	 Skip detecting if a suitable FIDO authenticator is inserted before per-
	 forming a full authentication. See NOTES below.

     userpresence=int
	 If 1, require user presence during authentication. If 0, do not request
	 user  presence  during  authentication. If omitted, fallback to the au-
	 thenticator's default behaviour.

     userverification=int
	 If 1, require user verification  during  authentication  (e.g.  biomet-
	 rics). If 0, do not request user verification during authentication. If
	 omitted, fallback to the authenticator's default behaviour. If enabled,
	 an authenticator with support for FIDO2 user verification is required.

     pinverification=int
	 If  1, require PIN verification during authentication. If 0, do not re-
	 quest PIN verification during authentication. If omitted,  fallback  to
	 the  authenticator's  default	behaviour.  If enabled, an authenticator
	 with support for a FIDO2 PIN is required.

     sshformat
	 Use credentials produced by versions of OpenSSH that have  support  for
	 FIDO  authenticator.  It  is not possible to mix native credentials and
	 SSH credentials. Once this option is enabled all  credentials	will  be
	 parsed as SSH.

     conf=path/to/pam_u2f.conf
	 Set  an  alternative  location for the configuration file. The supplied
	 path must be absolute and must correspond to an existing regular  file.
	 See CONFIGURATION FILE.

EXAMPLES
     Second  factor  authentication deferring user verification configuration to
     the authorization mapping file.

	 auth required pam_u2f.so authfile=/etc/u2f_mappings cue

     Passwordless authentication enforcing PIN verification.

	 auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue pinverification=1 userverification=0

     Passwordless authentication using built-in  UV  (e.g.  biometrics)  with  a
     fallback to PIN.

	 auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue pinverification=0 userverification=1
	 auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue pinverification=1 userverification=0

CAVEATS
     By  default,  relative  paths  to the authfile will be opened as the target
     user, whereas absolute paths will be opened as  "root".  If  the  "XDG_CON-
     FIG_HOME"	variable is set, privileges will not be dropped unless the "ope-
     nasuser" configuration setting is set.

     Using pam-u2f to secure the login to a computer while storing  the  mapping
     file  in  an  encrypted home directory, will result in the impossibility of
     logging into the system. The partition is decrypted  after  login	and  the
     mapping file can not be accessed.

CONFIGURATION FILE
     A configuration file can be used to set the default module arguments.

     *	 The  file  has a name = value format, with comments starting with the #
	 character.

     *	 White spaces at the beginning of line, end of line, and  around  the  =
	 sign are ignored.

     *	 Any conf argument in the configuration file is ignored.

     *	 The maximum size for the configuration file is 4 KiB.

     *	 The  default  path  for  the configuration file is /usr/local/etc/secu-
	 rity/pam_u2f.conf. The default file is allowed to not exist. An  alter-
	 native path may be set in the module command line options.

     *	 The  options  specified  on the module command line override the values
	 from the configuration file.

NOTES
     Nodetect

     The "nodetect" option should be used with caution. pam_u2f  checks  that  a
     key  configured for the user is inserted before performing the full tactile
     authentication. This detection is done by sending a "check-only"  authenti-
     cation request to all inserted tokens to so see if at least one of them re-
     sponds  affirmatively  to	one or more of the keyhandles configured for the
     user. By doing this, pam_u2f can avoid emitting the "cue" prompt  (if  con-
     figured),	which  can  cause some confusing UI issues if the cue is emitted
     followed by the underlying library immediately failing the tactile  authen-
     tication.	This option is also useful to avoid an unintended 1-second delay
     prior to the tactile authentication caused by versions  of  libu2f-host  <=
     1.1.5.

     If pam_u2f is configured to "cue" and "nodetect", an attacker can determine
     that  pam_u2f  is	part of the authentication stack by inserting any random
     U2F token and performing an authentication attempt. In this  scenario,  the
     attacker  would  see  the	cue  message  followed	by an immediate failure,
     whereas with detection enabled, the authentication will fail silently.  Un-
     derstand  that an attacker could choose an authenticator that alerts him or
     her in some way to the "check-only" authentication attempt, so this precau-
     tion only pushes the issue back a step.

     In summary, the detection feature was added to avoid  confusing  UI  issues
     and  to  prevent leaking information about the authentication stack in very
     specific scenario when "cue" is configured. The "nodetect" option was added
     to avoid buggy sleep behavior in older versions of libu2f-host and for  hy-
     pothetical tokens that do not tolerate the double authentication. Detection
     is  performed, and likewise "nodetect" honored, regardless of whether "cue"
     is also specified.

     SELinux

     Due to an issue with Fedora Linux, and possibly  with  other  distributions
     that  use	SELinux, a system configured with pam-u2f may end up in a situa-
     tion where access to the credentials file is denied. If the nouserok option
     is also set, this will result in a  successful  authentication  within  the
     module, without using the FIDO authenticator.

     In  order to correctly update the security context the command fixfiles on-
     boot should be used on existing installations

     Moreover, to allow read access to an authfile  or	directory  placed  in  a
     non-standard location, the command

	 # chcon -R -t auth_home_t /path/to/authfile

     should be used.

     For      more	information	 see	 https://access.redhat.com/secu-
     rity/cve/CVE-2020-24612.

BUGS
     Report  pam-u2f  bugs  in	 the   issue   tracker:   https://github.com/Yu-
     bico/pam-u2f/issues

SEE ALSO
     pam(7)

     The pam-u2f home page: https://developers.yubico.com/pam-u2f/

     YubiKeys can be obtained from Yubico: http://www.yubico.com/

pam-u2f 			  Version 1.4.0 		      PAM_U2F(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pam_u2f&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help