Hardware authentication for Linux using ordinary USB Flash Drives.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

211 lines
9.0 KiB

13 years ago
16 years ago
16 years ago
17 years ago
16 years ago
17 years ago
17 years ago
17 years ago
17 years ago
  1. * 0.5.0
  2. - Migrated the code base to UDisks. pam_usb doesn't depend on HAL anymore.
  3. - Added deny_remote option (defaults to true). If false,
  4. local login check will be disabled.
  5. - Fixed a bug in the device recognition (--add-device)
  6. * 0.4.2
  7. - Added the pad_expiration option which tells pam_usb how often pads
  8. should be updated in order to reduce device writing.
  9. - Support for time options in the configuration parser (5s, 2h, 10m, etc)
  10. - Added the --verbose option to pamusb-conf
  11. - Added the --debug option to pamusb-check
  12. - Fixed the ElementTree import statement of pamusb-agent to work with
  13. Python 2.5. Thanks to Donald Hayward <liquidsunshine@gmail.com> for
  14. the patch.
  15. - Fixed pamusb-conf to work without vendor and product name
  16. - Improved the device detection to work with any removable storage device.
  17. Thanks to Guillermo Antonio Amaral Bastidas <me@guillermoamaral.com>
  18. for providing the patch.
  19. - Added a workaround for a DBUS bug that prevented pam_usb to work with su.
  20. https://bugs.freedesktop.org/show_bug.cgi?id=11876
  21. - Disable log outputting if the application doesn't have any tty
  22. attached (fixes gksudo and other software).
  23. - Various minor bugfix
  24. * 0.4.1
  25. - Fixed a security issue related to OpenSSH authentication
  26. - Fixed the quiet option (now it is really quiet)
  27. - Support for devices without vendor/model information
  28. * 0.4.0
  29. - Both pam_usb and its tools (adm, hotplug) have been redesigned from the
  30. ground up and rewritten from scratch.
  31. - Hardware recognition is now done through HAL which provides a stable
  32. interface over kernel changes.
  33. - Certificates have been replaced by one time pads. That will prevent
  34. copies of the USB device to be used for authentication.
  35. - Device's manufacturer properties verification. pam_usb now verifies
  36. device informations (vendor, product, serial number, UUID) in the
  37. authentication process.
  38. - Configuration is now handled in a central place, the pamusb.conf
  39. configuration file. This XML file contains configuration entries for
  40. users, devices and services.
  41. - pamusb-agent (formely usbhotplug) make use of DBUS signals (sent by HAL)
  42. instead of kernel hotplugging. Also, its configuration has been merged
  43. into the pamusb.conf configuration file.
  44. - A new tool named pamusb-check has been added. It can perform authentication
  45. the way the PAM module does. It can be useful for testing and scripting
  46. purposes.
  47. * 0.3.3
  48. - The option keypath is now splitted into local_keypath and device_keypath.
  49. - Fixed a bug that occurred when the TTY entry was empty.
  50. - pam_usb doesn't get anymore the tty name from PAM_TTY as it used to be
  51. empty on some systems.
  52. - Better defaults. The default options have been set to fit most needs,
  53. you are no longer required to use !check_device on 2.6.
  54. - Verbose mode. By default, pam_usb now prints some informations during
  55. the login process (access granted, the reason why access was refused, etc).
  56. This can be turned off using the brand new 'quiet' option.
  57. - Other small fixes.
  58. * 0.3.2
  59. - Now pam_usb will also try to autodetect /dev/sdN devices (not just
  60. /dev/sdNX).
  61. - Fixed a bug that happened when the application using PAM didn't set
  62. PAM_TTY correctly.
  63. - Added the use_first_pass and try_first_pass options.
  64. Now if you enter your password on another PAM module (such as pam_mount
  65. or pam_ssh), pam_usb will use that password to decrypt the private key.
  66. * 0.3.1
  67. - Lot of misc fixes (memory management, Makefiles, sanity checks, etc).
  68. I'd like to thank the PaX Team <pageexec@freemail.hu> who did almost
  69. the whole job.
  70. - Added the hostname option which allows to select what hostname should
  71. be used for authentication (useful for shared public keys over lan).
  72. Thanks to Nicolas Chauvat <chauvat@nerim.net> who reported the issue,
  73. the idea and the patch for this feature.
  74. * 0.3.0
  75. - Not much changes in this version beside a gcc fix, but the 0.2 branch
  76. reached too many new features so i wanted to name this release 0.3.0
  77. as i should have done with 0.2.3
  78. - Fixed a gcc 3.3 compile issue, and all related warning.
  79. I would like to thank the following guys for having reported this bug so fast:
  80. Lalande Fabrice <fabrice.lalande@orange.fr>
  81. Marco <gaedol@softhome.net>
  82. Neil Dunbar <neil.dunbar@hp.com>
  83. * 0.2.3
  84. - Added the usbhotplug tool.
  85. usbhotplug is a hotplug agent that will automagically start a lock handler
  86. when the usb device is removed and an unlock handler when the usb device
  87. is plugged back in and authenticated through pam_usb.
  88. The default handlers will start xlock when the usb device is removed,
  89. and will kill it when the usb device is plugged back in and authenticated.
  90. I'd like to thank Wout Mertens <wmertens@cisco.com> as we had a couple
  91. of discussions about hotplug which helped me implementing this tool.
  92. - The parser can now understand "option" and "!option" instead of
  93. option=1 and option=-1 (e.g. debug !check_device).
  94. Thanks to Jean-Christophe JASKULA <jean.christophe.jasku-la@wanadoo.fr> who
  95. suggested me that and provided an initial patch.
  96. - Fixed a loop bug on serial number checking. Thanks to Zs <horzsol@freemail.hu>
  97. for reporting the bug and a patch to fix it.
  98. - Added the direct_open option which allows to open the private key
  99. using O_DIRECT to avoid disk caching (works only on devices that
  100. supports it). Thanks to myles <myles@tenhand.com> who suggested me that.
  101. - Added some sanity checks here and there because it seems that the PAM
  102. API can return weird stuff from time to time.
  103. - Handling the mount point creation/remotion in a better way which seems
  104. to fix a couple of mntpoint problems.
  105. * 0.2.2
  106. - Added the keep_mounted option, which allows to not umount the mount point
  107. once logged (useful if the gpg/ssh key is stored on there)
  108. - Fixed the mntpoint option: do not delete the directory if it's not a
  109. temporary one.
  110. - Added the support to pass multiple filesystems name with the fs=
  111. option (comma separated list). Changed the default fs to "ext2,vfat"
  112. - Added the log_file option. Takes a filename as a argument.
  113. Combined with debug=1 it can log debug messages to a file.
  114. - Not mounting the device as read-only anymore. Instead, the mount_opts
  115. option has been created. It accepts a comma separated list of mount
  116. options (accepted options are: ro,bind,sync,remount,nosuid,noexec,nodev).
  117. - Fixed an issue which made the allow_remote feature not working correctly
  118. with gdm/kdm.
  119. - Introduced the local_hosts and local_consoles options. They contain a
  120. comma separated lists of hosts and consoles allowed to log in while using
  121. allow_remote=-1
  122. * 0.2.1
  123. - Changed the naming method from x.y to x.y.z
  124. - pam_usb is now able to distinguish local users from remote (as in
  125. logged via ssh), and denies the authentication of non-local users.
  126. Setting allow_remote to 1 disable this feature.
  127. - Mounting is now done in read-only.
  128. - Added the missing mandatory PAM functions.
  129. * 0.2_rc2
  130. - Workaround to make pam_usb not use /proc so it can run on Linux 2.6
  131. By setting check_device to -1, pam_usb will neither check the device's
  132. serial number, nor if it's attached. It's not a real problem if you
  133. don't need serial number checking, but don't combine it with
  134. check_if_mounted.
  135. - Added the force_device capability. Now you can specify a device that
  136. will be mounted without going in guessing mode. If the device cannot
  137. be mounted, it'll switch back to the default guess mode.
  138. Useful if guess mode fails, if you don't want it to try several
  139. devices before getting the right one (so you can login faster), or if
  140. you want to login using a floppy disk, a cdrom or whatever you want.
  141. - Modified the serial number authentication method so now if no serial
  142. numbers are avaible on a device, it will try to use the GUID.
  143. Thanks to Damien Braillard <damien.b@freesurf.ch> who reported the
  144. issue, suggested a way to fix it, and provided a first patch for it.
  145. * 0.2_rc1
  146. - Radically changed the way pam_usb authenticates the user on the
  147. system. Now it works with a pair of DSA keys.
  148. Thanks to Wout Mertens <wmertens@cisco.com> who told me that i could
  149. use a couple of SSH keys to fix the authentication issue.
  150. That gave me the idea to use a set of private/public keys.
  151. Thanks to Ilkka Mattila <ilkka@lyseo.edu.ouka.fi> who helped me to
  152. find out a better way to implement the key challenge: extracting the
  153. public key was inadequate.
  154. Also thanks to those who brought up weird scenarios and/or tested
  155. pre-releases of pam_usb, in alphabetical order:
  156. Ilkka Mattila <ilkka@lyseo.edu.ouka.fi>
  157. Joonas Kortesalmi
  158. Thomas Stewart <thomas@stewarts.org.uk>
  159. Tuure Laurinolli <tuure@laurinolli.net>
  160. * 0.1:
  161. - Now pam_usb doesn't require a mount point. Instead, it creates
  162. a temporary directory under /tmp.
  163. Thanks to Loic Jaquemet <jaquemet@fiifo.u-psud.fr> who gave me the idea.
  164. - Compiles with gcc 2.95 thanks to Tobias Bayer <tobi.bayer@gmx.de> bug
  165. report.
  166. * 0.1-beta2:
  167. - procfile and device entries autodetection have been fixed thanks to
  168. Thomas Stewart <thomas@stewarts.org.uk> bug reports.
  169. - devfs support added. Thanks to Loic Jaquemet <jaquemet@fiifo.u-psud.fr>
  170. for the bug report.
  171. * 0.1-beta1:
  172. - Initial release