FreeBSD ¨Ï¥Î¤â¥U : ¨Ï¥ÎªÌ, ¸s²Õ, »P¨t²Î¦w¥þ : DES, MD5, ¥H¤Î Crypt
Previous: ¨Ï¥ÎªÌ, ¸s²Õ, »P¨t²Î¦w¥þ
Next: S/Key

6.1. DES, MD5, ¥H¤Î Crypt

Contributed by Garrett Wollman <wollman@FreeBSD.ORG>
24 September 1995.

½t°_

¬°¤F«OÅ@ ¦b UNIX ¨t²Î password ªº¦w¥þ©Ê¡A ¦b¶Ç²Î¤W password ¥Î¤F³\ ¦h¤èªk¥hÂZ¶Ã¡A¨Ï¨ä¤£³Q®e©öªºÅãÅS¥X¨Ó¡C¥Ñ¨©º¸¹êÅç«Ç²Ä¤Cª©ªº Unix ¶}©l¡Apassword ¥Î¤F"one-way hash fuction" ¥±K¡C³o¤´N¬O»¡¡A passowrd ³Q¤W­zªº¤èªkÂà´«¨Ï­ì¨Óªº password ¤£¯à³Q¸Ñ¥X¡A°£«D¨Ï¥Î ¼É¤O¤èªk·j´M©Ò¦³¥i¯àªº password¡C¤£©¯¦a¡A°ß¤@¥i¥H¥Ñ AT&T ±o¨ìªº¦w¥þªº¤èªk¬O DES (Data Encryption Standard)¡C³o¹ï°Ó·~ª©ªº ³c°â°Óªº¼vÅT¤£¤j¡AµM¦Ó¹ï FreeBSD ³oºØ­ì©l½X¦Û¥Ñ¤½¶}ªº§@·~¨t²Î «o¬O¤@­Ó«ÜÄY­«ªº°ÝÃD¡A¦]¬°³\¦h°ê®aªº¬F©²­­¨î DES ©M¨ä¥L¥±K³nÅé¥X¤f¡C

¦]¦¹¡A FreeBSD ¤p²Õ­±¹ï¤@­Ó¨âÃø°ÝÃD¡G§Ú­Ì¦p¦ó´£¨Ñ¦b¬ü°ê¥H¥~ªº ©Ò¦³ UNIX ¨t²Îªº¬Û®e©Ê¦Ó¤£·|¹Hªk¡H§Ú­Ì¨M©w±Ä¥ÎÂù­y¨î¡G §Ú­Ì§Æ±æ±Nµo¦æªºª©¥»¥u¥]§t¤@­Ó«D¥¿¦¡ªº password ÂZ¶Ã¾¹¡A¨Ã´£ ¨Ñ¤@­Ó¤À¶}¨Óªºªþ¥¨ç¦¡®w(DES-based password hash)¡C³o­Ó±N password ÂZ¶Ãªº¨ç¦¡±q C ªº¨ç¦¡®w¤ÀÂ÷¨ì¥t¤@­Ó¨ç¦¡®w¥s`libcrypt'¦Ó¨ä ¤¤ C ªº¨ç¦¡¥s`crypt'¡C¦b FreeBSD 1.x ©M¤@¨Ç2.0ªº¸Õ¥Îª©¤¤¡A ³o­Ó«D¥¿³WªºÂZ¶Ã¾¹¨Ï¥Î¤F¤@­Ó¥Ñ Nate Williams©Ò¼g¤£¦w¥þªº¨ç¦¡¡F©¹ «áªºªºª©¥»¤¤³o­Ó¨ç¼Æ³Q¨Ï¥Î¥Ñ RSA Data Security¤½¥qªºMD5 one-way hash fuction ªº¾÷¨î©Ò´À¥N¡C¦]¬°¥H¤W³o¨â­Ó¨ç¦¡³£¨S¦³¥±Kªº¥\¯à¡A ©Ò¥H¥i¥H¥Ñ¬ü°ê¿é¥X©Î¬O¿é¤J¨ì¤@¨Ç°ê®a¡C

¦b³o´Á¶¡¡ADES-based ±K½X hash ¨ç¦¡¨ÌµM¦b¶i¦æ¤¤¡A­º¥ý¤@­Ó¦b¬ü°ê ¥H¥~µo®iªº`crypt' ¨ç¦¡³Q¿é¤J¡A¦]¦¹¬ü°êª©»P«D¬ü°êª©¦³¤F¤@ ­P©Ê¡CµM«á¡A¥±K¤è­±ªº¨ç¦¡®w³Q­×§ï¨Ã©î¦¨¨â­Ó¡A¤@¬° DES `libcrypt' ¥u¥]§t one-way password hash¡A¥t¤@­Ó¨ç¦¡®w `libcipher' ¥]§t¯u¥¿ªº¥±K¨ç¦¡¡A³o¨Ç¨ç¦¡®w¤§©Ò¥H³Q¤ÀÂ÷¥X¨Ó ¡A¬O¬°¤F¥i¥H®e©öªº¨ú±o½sĶ¨ç¦¡®wªº¥X¤f°õ·Ó¡C

¤F¸Ñ§Aªº `crypt' ¤èªk

¤À¿ì DES-based ©Î MD5-based hash ¨ç¦¡©Ò²£¥Íªº±K½X¦r¦ê¬O«Ü®e©öªº¡C MD5 ±K½X¦r¦êªº±Ò©l¦r¤¸Á`¬O`$1$'. ¦Ó DES±K½X¦r ¦ê«h¨S¦³¥ô¦ó¯S®íªº¦r¤¸¡A¦ý¬O³o¨Ç¦r¦ê¤ñ MD5©Ò²£¥Íªº¸ûµu¡A¦Ó¥B ³Q½s¦¨64­Ó¤£¥]§t`$' ªº¦r¤¸¡A¦]¦¹¤ñ¸ûµu¥B¤£§t¿ú¦r¸¹ ªº¦r¦ê´N«Ü¦³¥i¯à¬O DES ªº±K½X¡C

¦b¤j³¡¤Àµ{¦¡¤¤¡A­n¨M©w§Aªº¨t²Î¬O¨Ï¥Î¨º¤@­Ó¨ç¦¡®w¬O¬Û·í®e©öªº¡C °£¤F¨º¨Ç¹³¬OÀRºA³sµ²ªº`init'((¹ï¨º¨Çµ{¦¡¦Ó¨¥¡A°ß¤@ªº¤èªk ¬O¥Î¤@­Ó¤wª¾ªº±K½X¥h¸Õ¬Ý¬Ý¨Ã¦Û¤v¥h¬Ý)¥Î`crypt' ªºµ{¦¡ ¾a`libcrypt'©Ò³sµ²ªº¡A¨C¤@­Ó¨ç¦¡®w³£³sµ²¨ì¾A·íªº¦a¤è¡C Á|­Ó¨Ò¤l¡A¦b¨Ï¥Î DES ªº¨t²Î¤¤¡G

$ cd /usr/lib
$ ls -l /usr/lib/libcrypt*
lrwxr-xr-x  1 bin  bin  13 Sep  5 12:50 libcrypt.a -> libdescrypt.a
lrwxr-xr-x  1 bin  bin  18 Sep  5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0
lrwxr-xr-x  1 bin  bin  15 Sep  5 12:50 libcrypt_p.a -> libdescrypt_p.a

¦b¤@­Ó¨Ï¥Î´Ó°ò©ó MD5 ¨ç¦¡®wªº¨t²Î¡A¤@¼Ë¦³³sµ²¦s¦b¡A¦ý¬O¥¦¬O³s µ²¨ì`libscrypt' ¦Ó¤£¬O`libdescrypt'.


FreeBSD ¨Ï¥Î¤â¥U : ¨Ï¥ÎªÌ, ¸s²Õ, »P¨t²Î¦w¥þ : DES, MD5, ¥H¤Î Crypt
Previous: ¨Ï¥ÎªÌ, ¸s²Õ, »P¨t²Î¦w¥þ
Next: S/Key