home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume22 / crack / part04 < prev    next >
Text File  |  1991-08-23  |  40KB  |  785 lines

  1. Newsgroups: comp.sources.misc
  2. From: Alec David Muffett <aem@aber.ac.uk>
  3. Subject:  v22i052:  crack - The Password Cracker, version 3.2a, Part04/04
  4. Message-ID: <1991Aug23.150458.1123@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 5df258ab8536436ac4247a9ef9caa705
  6. Date: Fri, 23 Aug 1991 15:04:58 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Alec David Muffett <aem@aber.ac.uk>
  10. Posting-number: Volume 22, Issue 52
  11. Archive-name: crack/part04
  12. Environment: UNIX
  13.  
  14. #! /bin/sh
  15. # it by saving it into a file and typing "sh file".  To overwrite existing
  16. # files, type "sh file -c".  You can also feed this as standard input via
  17. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  18. # will see the following message at the end:
  19. #        "End of archive 4 (of 4)."
  20. # Contents:  Docs/README.ps
  21. # Wrapped by aem@aberda on Fri Aug 23 13:20:43 1991
  22. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  23. if test -f 'Docs/README.ps' -a "${1}" != "-c" ; then 
  24.   echo shar: Will not clobber existing file \"'Docs/README.ps'\"
  25. else
  26. echo shar: Extracting \"'Docs/README.ps'\" \(37992 characters\)
  27. sed "s/^X//" >'Docs/README.ps' <<'END_OF_FILE'
  28. X%!PS-Adobe-3.0
  29. X%%Creator: groff version 1.02
  30. X%%DocumentNeededResources: font Times-Bold
  31. X%%+ font Times-Italic
  32. X%%+ font Times-Roman
  33. X%%+ font Courier
  34. X%%DocumentSuppliedResources: procset grops 1.02 0
  35. X%%Pages: 6
  36. X%%PageOrder: Ascend
  37. X%%Orientation: Portrait
  38. X%%EndComments
  39. X%%BeginProlog
  40. X%%BeginResource: procset grops 1.02 0
  41. X
  42. X/setpacking where {
  43. X    pop
  44. X    currentpacking
  45. X    true setpacking
  46. X} if
  47. X
  48. X/grops 120 dict dup begin 
  49. X
  50. X% The ASCII code of the space character.
  51. X/SC 32 def
  52. X
  53. X/A /show load def
  54. X/B { 0 SC 3 -1 roll widthshow } bind def
  55. X/C { 0 exch ashow } bind def
  56. X/D { 0 exch 0 SC 5 2 roll awidthshow } bind def
  57. X/E { 0 rmoveto show } bind def
  58. X/F { 0 rmoveto 0 SC 3 -1 roll widthshow } bind def
  59. X/G { 0 rmoveto 0 exch ashow } bind def
  60. X/H { 0 rmoveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  61. X/I { 0 exch rmoveto show } bind def
  62. X/J { 0 exch rmoveto 0 SC 3 -1 roll widthshow } bind def
  63. X/K { 0 exch rmoveto 0 exch ashow } bind def
  64. X/L { 0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  65. X/M { rmoveto show } bind def
  66. X/N { rmoveto 0 SC 3 -1 roll widthshow } bind def
  67. X/O { rmoveto 0 exch ashow } bind def
  68. X/P { rmoveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  69. X/Q { moveto show } bind def 
  70. X/R { moveto 0 SC 3 -1 roll widthshow } bind def
  71. X/S { moveto 0 exch ashow } bind def
  72. X/T { moveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  73. X
  74. X% name size font SF -
  75. X
  76. X/SF {
  77. X    findfont exch
  78. X    [ exch dup 0 exch 0 exch neg 0 0 ] makefont
  79. X    dup setfont
  80. X    [ exch /setfont cvx ] cvx bind def
  81. X} bind def
  82. X
  83. X% name a c d font MF -
  84. X
  85. X/MF {
  86. X    findfont
  87. X    [ 5 2 roll
  88. X    0 3 1 roll % b
  89. X    neg 0 0 ] makefont
  90. X    dup setfont
  91. X    [ exch /setfont cvx ] cvx bind def
  92. X} bind def
  93. X
  94. X/level0 0 def
  95. X/RES 0 def
  96. X/PL 0 def
  97. X/LS 0 def
  98. X
  99. X% BP -
  100. X
  101. X/BP {
  102. X    /level0 save def
  103. X    1 setlinecap
  104. X    1 setlinejoin
  105. X    72 RES div dup scale
  106. X    LS {
  107. X        90 rotate
  108. X    } {
  109. X        0 PL translate
  110. X    } ifelse
  111. X    1 -1 scale
  112. X} bind def
  113. X
  114. X/EP {
  115. X    level0 restore
  116. X    showpage
  117. X} bind def
  118. X
  119. X
  120. X% centerx centery radius startangle endangle DA -
  121. X
  122. X/DA {
  123. X    newpath arcn stroke
  124. X} bind def
  125. X
  126. X% x y SN - x' y'
  127. X% round a position to nearest (pixel + (.25,.25))
  128. X
  129. X/SN {
  130. X    transform 
  131. X    .25 sub exch .25 sub exch
  132. X    round .25 add exch round .25 add exch
  133. X    itransform
  134. X} bind def
  135. X    
  136. X% endx endy startx starty DL -
  137. X% we round the endpoints of the line, so that parallel horizontal
  138. X% and vertical lines will appear even
  139. X
  140. X/DL {
  141. X    SN
  142. X    moveto
  143. X    SN
  144. X    lineto stroke
  145. X} bind def
  146. X
  147. X% centerx centery radius DC -
  148. X
  149. X/DC {
  150. X    newpath 0 360 arc closepath
  151. X} bind def
  152. X
  153. X
  154. X/TM matrix def
  155. X
  156. X%  width height centerx centery DE -
  157. X
  158. X/DE {
  159. X    TM currentmatrix pop
  160. X    translate scale newpath 0 0 .5 0 360 arc closepath
  161. X    TM setmatrix
  162. X} bind def
  163. X
  164. X% these are for splines
  165. X
  166. X/RC /rcurveto load def
  167. X/RL /rlineto load def
  168. X/ST /stroke load def
  169. X/MT /moveto load def
  170. X/CL /closepath load def
  171. X
  172. X% fill the last path
  173. X
  174. X% amount FL -
  175. X
  176. X/FL {
  177. X    currentgray exch setgray fill setgray
  178. X} bind def
  179. X
  180. X% fill with the ``current color''
  181. X
  182. X/BL /fill load def
  183. X
  184. X/LW /setlinewidth load def
  185. X% new_font_name encoding_vector old_font_name RE -
  186. X
  187. X/RE {
  188. X    findfont
  189. X    dup maxlength dict begin
  190. X    {
  191. X        1 index /FID ne { def } { pop pop } ifelse
  192. X    } forall
  193. X    /Encoding exch def
  194. X    dup /FontName exch def
  195. X    currentdict end definefont pop
  196. X} bind def
  197. X
  198. X/DEFS 0 def
  199. X
  200. X% hpos vpos EBEGIN -
  201. X
  202. X/EBEGIN {
  203. X    moveto
  204. X    DEFS begin
  205. X} bind def
  206. X
  207. X/EEND /end load def
  208. X
  209. X/CNT 0 def
  210. X/level1 0 def
  211. X
  212. X% llx lly newwid wid newht ht newllx newlly PBEGIN -
  213. X
  214. X/PBEGIN {
  215. X    /level1 save def
  216. X    translate
  217. X    div 3 1 roll div exch scale
  218. X    neg exch neg exch translate
  219. X    % set the graphics state to default values
  220. X    0 setgray
  221. X    0 setlinecap
  222. X    1 setlinewidth
  223. X    0 setlinejoin
  224. X    10 setmiterlimit
  225. X    [] 0 setdash
  226. X    /setstrokeadjust where {
  227. X        pop
  228. X        false setstrokeadjust
  229. X    } if
  230. X    /setoverprint where {
  231. X        pop
  232. X        false setoverprint
  233. X    } if
  234. X    newpath
  235. X    /CNT countdictstack def
  236. X    /showpage {} def
  237. X} bind def
  238. X
  239. X/PEND {
  240. X    clear
  241. X    countdictstack CNT sub { end } repeat
  242. X    level1 restore
  243. X} bind def
  244. X
  245. Xend def
  246. X
  247. X/setpacking where {
  248. X    pop
  249. X    setpacking
  250. X} if
  251. X%%EndResource
  252. X%%IncludeResource: font Times-Bold
  253. X%%IncludeResource: font Times-Italic
  254. X%%IncludeResource: font Times-Roman
  255. X%%IncludeResource: font Courier
  256. Xgrops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL
  257. X792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron/scaron/zcaron
  258. X/Ydieresis/trademark/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
  259. X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
  260. X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space/exclam
  261. X/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright
  262. X/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven
  263. X/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J
  264. X/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
  265. X/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z
  266. X/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
  267. X/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl/endash
  268. X/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut/dotaccent/breve
  269. X/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash/quotedblbase/OE/Lslash
  270. X/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis
  271. X/copyright/ordfeminine/guilsinglleft/logicalnot/minus/registered/macron/degree
  272. X/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla
  273. X/onesuperior/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
  274. X/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
  275. X/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth
  276. X/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave
  277. X/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex
  278. X/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
  279. X/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde
  280. X/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn
  281. X/ydieresis]def/Courier@0 ENC0/Courier RE/Times-Roman@0 ENC0/Times-Roman RE
  282. X/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
  283. X%%EndProlog
  284. X%%Page: 1 1
  285. X%%BeginPageSetup
  286. XBP
  287. X%%EndPageSetup
  288. X/F0 12/Times-Bold@0 SF("Crack V)235.398 123 Q(ersion 3.2")-1.104 E 3(AS)184.428
  289. X138 S(ensible Password Checker for)202.764 138 Q/F1 9.6/Times-Bold@0 SF(UNIX)3
  290. XE F0<ae>A/F2 10/Times-Italic@0 SF(Alec D.E. Muffett)253.005 162 Q/F3 10
  291. X/Times-Roman@0 SF(Computer Unit, University College of W)198.685 180 Q(ales)-.8
  292. XE(Aberystwyth, W)222.99 192 Q(ales, SY23 3DB)-.8 E F2(aem@aber)254.52 204 Q
  293. X(.ac.uk)-1.11 E F3(+44 970 622492)255.18 216 Q F2(ABSTRACT)264.385 252 Q/F4 10
  294. X/Times-Bold@0 SF(Crack)133 279.6 Q/F5 7/Times-Roman@0 SF(1)159.66 275.5 Q F3
  295. X.018(is a freely available program designed to \214nd standard)165.678 279.6 R
  296. X/F6 8/Times-Roman@0 SF(UNIX)2.518 E F3(eight-character)2.518 E .744
  297. X(DES encrypted passwords by standard guessing techniques outlined below)108
  298. X291.6 R 5.745(.I)-.65 G 3.245(ti)423.73 291.6 S 3.245(sw)432.535 291.6 S
  299. X(ritten)446.89 291.6 Q 1.431(to be \215exible, con\214gurable and fast, and to\
  300. X be able to make use of several networked)108 303.6 R(hosts via the Berkeley)
  301. X108 315.6 Q/F7 10/Courier@0 SF(rsh)2.5 E F3
  302. X(program \(or similar\), where possible.)2.5 E F4 2.5(1. Intent)72 351.6 R
  303. X(of this pr)2.5 E(ogram)-.18 E F3
  304. X(My intentions, whilst writing this program, were)72 367.2 Q 14.17(1\) T)72
  305. X382.8 R 2.828(op)-.7 G .328(rovide the average system manager with a simple, \
  306. X\215exible and fast tool to \214nd passwords which)115.238 382.8 R
  307. X(would be easily compromised by a dictionary search.)97 394.8 Q 14.17(2\) T)72
  308. X410.4 R 4.295(ow)-.7 G 1.794
  309. X(eaken the complacency which has developed amongst many \(in\)?experienced)
  310. X118.925 410.4 R F6(UNIX)4.294 E F3(systems)4.294 E .526
  311. X(managers about password security)97 422.4 R 3.026(.J)-.65 G .526
  312. X(ust because the)244.814 422.4 R F7(crypt\(\))3.026 E F3 .526
  313. X(function cannot be reversed does not)3.026 F .582
  314. X(mean that your passwords are secure.)97 434.4 R .582
  315. X(If this program helps to raise the overall quotient of paranoia)5.582 F(just \
  316. Xone little bit, then it will have served its purpose and is all to the good.)97
  317. X446.4 Q 2.769(Ia)72 462 S 2.769(mq)82.539 462 S .269(uite certain that some ch\
  318. Xildish morons out there will abuse the work that I have put into creating this)
  319. X98.088 462 R 2.794(program. It')72 474 R 2.794(su)-.55 G 2.794(pt)134.248 474 S
  320. X2.794(ot)144.822 474 S .294(hem how they use it, but if it')155.396 474 R 2.794
  321. X(su)-.55 G .294(sed for some illegal purpose it')286.918 474 R 2.793(sn)-.55 G
  322. X.293(ot my intention, nor)423.671 474 R(my fault. I hope they get caught.)72
  323. X486 Q .252(Crack was not designed to do anything)72 501.6 R F2(nasty)2.752 E F3
  324. X2.752(,o)C .252(ther than to attack passwords in sensible order)263.166 501.6 R
  325. X5.253(.T)-.55 G .253(his is why)462.934 501.6 R 2.877(If)72 513.6 S .376
  326. X(eel I can post it to the net without fear of recrimination.)81.537 513.6 R
  327. X.376(This version of Crack is supplied with a \(hope-)5.376 F .697
  328. X(fully\) portable version of)72 525.6 R F7(fcrypt\(\))3.197 E F3 3.197(,f)C
  329. X.697(or speed reasons.)234.575 525.6 R .698
  330. X(Fcrypt\(\) is not yet widely available, but several)5.697 F 2.148
  331. X(versions have now been posted to USENET)72 537.6 R 4.648(,a)-.74 G 2.148
  332. X(nd with the growing ability to access anonymous FTP)271.266 537.6 R 1.081
  333. X(databases like)72 549.6 R F4(Ar)3.581 E(chie)-.18 E F3 3.581(,Ib)C 1.082(elie\
  334. Xve that people who really want access to such programs as fcrypt\(\) will be)
  335. X179.174 549.6 R .388(able to get them easily)72 561.6 R 5.388(.P)-.65 G .388
  336. X(eople who need them but don')176.34 561.6 R 2.888(th)-.18 G .387
  337. X(ave the time to look, on the other hand, will not)310.138 561.6 R .013
  338. X(get them.)72 573.6 R .013
  339. X(This is not a good thing if you are a systems manager)5.013 F 2.513(,b)-.4 G
  340. X.013(ecause it gives the crackers an advantage.)337.592 573.6 R
  341. X(My philosophy is:)72 585.6 Q F2
  342. X(give it to everyone, then at least the people who need it can get it)2.5 E F3
  343. X(.)A F4 2.5(2. Fcrypt\(\))72 609.6 R(Statistics)2.5 E F3 .469(The version of f\
  344. Xcrypt\(\) that comes with Crack is some 3.4 times faster than the version that\
  345. X was originally)72 625.2 R 1.593(supplied to me, and should outperform most ot\
  346. Xhers which are publicly available.)72 637.2 R 4.094(Ih)6.594 G(aven')430.452
  347. X637.2 Q 4.094(tt)-.18 G 1.594(ried many)462.136 637.2 R .738
  348. X(speed-demon style tricks, but rather I have gone for portability)72 649.2 R
  349. X3.238(,e)-.65 G .738(legance and simplicity)338.68 649.2 R 3.237(,w)-.65 G .737
  350. X(here applicable)442.453 649.2 R F7(8-\).)72 661.2 Q F3 .131(On a DECStation 5\
  351. X000/200, fcrypt\(\) iterates ~550 times per second, and overall, I measure thi\
  352. Xs to be)5.131 F .967(13 times faster than standard crypt\(\).)72 673.2 R .967
  353. X(There are faster versions available, but at least I feel free to redis-)5.967
  354. XF(trubute this version without stepping on anyones toes.)72 685.2 Q .32 LW 144
  355. X708.2 72 708.2 DL/F8 5.6/Times-Roman@0 SF(1)82 716.72 Q/F9 8/Courier@0 SF
  356. X(Crack)2 3.28 M F6(is available for anonymous FTP from)2 E/F10 8/Times-Italic@0
  357. XSF(wuar)2 E(chive.wustl.edu)-.296 E F6(\(128.252.135.4\) in)2 E F10(~/packages)
  358. X2 E EP
  359. X%%Page: 2 2
  360. X%%BeginPageSetup
  361. XBP
  362. X%%EndPageSetup
  363. X/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q 3.378<418c>72 84 S .879(nal note about\
  364. X my motives: If you think that I am a moron for writing and then distributing \
  365. Xthis pro-)88.158 84 R .824(gram, and you think that the program is in itself d\
  366. Xangerous, I suggest that you carefully consider the fact)72 96 R
  367. X(that any moron could have written this program.)72 108 Q(Flames to)5 E/F1 10
  368. X/Courier@0 SF(/dev/null)2.5 E F0 2.5(,p)C(lease.)375.98 108 Q/F2 10
  369. X/Times-Bold@0 SF 2.5(3. Implementation)72 132 R F0 4.031(Ih)72 147.6 S 1.531
  370. X(ave tried to make Crack as portable as possible without compromising speed.)
  371. X84.361 147.6 R 1.531(Needless to say)6.531 F 4.032(,i)-.65 G 4.032(ti)490.518
  372. X147.6 S(s)500.11 147.6 Q .592(imperfect in the this respect, but I have tried.)
  373. X72 159.6 R .591(If you have problems getting Crack up, please let me know)5.592
  374. XF .489
  375. X(what these problems were, and what system you were trying to put Crack up on.)
  376. X72 171.6 R 2.989(Ib)5.489 G .489(elieve that Crack will)416.713 171.6 R .187
  377. X(work on)72 183.6 R F2(Xenix)2.687 E F0 .186(and various versions of)2.686 F F2
  378. X.186(System V)2.686 F F0 2.686(,b)C .186(ut it may require a little ef)282.536
  379. X183.6 R .186(fort if your)-.18 F/F3 8/Times-Roman@0 SF(UNIX)2.686 E F0 .186
  380. X(is not fairly)2.686 F(modern.)72 195.6 Q .956(There have been some nasty stor\
  381. Xies sent back to me about problems encountered due to the Crack script)72 211.2
  382. XR .619(being written in c-shell.)72 223.2 R .619
  383. X(Because of this, I enclose a program)5.619 F F1(Crack.sh)3.119 E F0 .618
  384. X(which is a functionally equiva-)3.119 F .44
  385. X(lent script in Bourne shell, using)72 235.2 R F1(nohup)2.94 E F0 .44
  386. X(to kick the cracker of)2.94 F 2.94(fi)-.18 G .44(nto the background.)335.68
  387. X235.2 R .44(If your version of c-)5.44 F 1.398
  388. X(shell is non standard \(ie: not BSDish\) or you are worried, you may use)72
  389. X247.2 R F1(Crack.sh)3.897 E F0(in)3.897 E F1(Crack)3.897 E F0 2.497 -.55('s p)D
  390. X(lace.).55 E .059(Note, though, that if you want to use the network options, y\
  391. Xou will also have to edit)72 259.2 R F1(Scripts/RCrack)2.56 E F0(to)2.56 E
  392. X(change the program-name that is called on remote machines to)72 271.2 Q F1
  393. X(Crack.sh)2.5 E F0 5(.F)C(or more on this, see below)386.34 271.2 Q(.)-.65 E
  394. X2.835 -.7(To u)72 286.8 T 1.435(se the).7 F F1 1.434(Crack -network)3.934 F F0
  395. X1.434(option, you must have)3.934 F F1(rsh)3.934 E F0 3.934(,o)C 3.934(ras)
  396. X335.692 286.8 S 1.434(imilar program.)355.22 286.8 R F1(rsh)6.434 E F0 1.434
  397. X(is a BSD-ism)3.934 F .611(which has become fairly common on non-BSD systems.)
  398. X72 298.8 R .611(If you don')5.611 F 3.111(th)-.18 G .611
  399. X(ave it or something similar)363.791 298.8 R 3.112(,l)-.4 G .612(et me)481.448
  400. X298.8 R 1.306(know what you do have which might, with a little ingenuity)72
  401. X310.8 R 3.805(,d)-.65 G 3.805(ot)334.87 310.8 S 1.305
  402. X(he job, and I shall see what I can do.)346.455 310.8 R(Again, have a look in)
  403. X72 322.8 Q F1(Scripts/RCrack)2.5 E F0(if you want to play around.)2.5 E F2 .314
  404. X(Note: Xenix)97 338.4 R F0 .314(users and some others have a)2.814 F F1(rcmd)
  405. X2.815 E F0 .315(program instead of)2.815 F F1(rsh)2.815 E F0 5.315(.I)C .315
  406. X('m not sure of the)406.64 338.4 R 1.19
  407. X(correct syntax for this program, but it should not be hard to get it to work.)
  408. X97 350.4 R 1.189(There is a note)6.189 F(about it in)97 362.4 Q F1
  409. X(Scripts/RCrack)2.5 E F0 1.1
  410. X(On such System V based systems, users may also be missing the BSD function)97
  411. X378 R F1(gethost-)3.6 E(name\(\))97 390 Q F0 8.102(.I)C 5.602(ft)146.932 390 S
  412. X3.102(his is so, but you)158.644 390 R F2(do)5.601 E F0 3.101(have the)5.601 F
  413. XF1(uname\(\))5.601 E F0 3.101(system call, de\214ne the macro)5.601 F F1
  414. X(CRACK_UNAME)97 402 Q F0(in)2.504 E F1(Sources/conf.h)2.504 E F0 .005
  415. X(instead. This ought to \214x the problem, but it)2.504 F/F4 10/Times-Italic@0
  416. XSF(may)2.505 E F0(need)2.505 E 4.131(al)97 414 S 1.631
  417. X(ittle user intervention \214rst \(it depends where your header \214le for)
  418. X108.351 414 R F1(uname\(\))4.13 E F0(is\).)4.13 E F4(Caveat)6.63 E(Emptor!)97
  419. X426 Q F2 2.5(4. Method)72 450 R(of Password Cracking)2.5 E F0 .268(Crack does \
  420. Xnot take the serial approach to password guessing that other programs like the)
  421. X72 465.6 R F2(COPS)2.769 E F0(password)2.769 E(cracker does.)72 477.6 Q(Rather)
  422. X5 E 2.5(,C)-.4 G(rack makes two passes over the users' password entries.)167.68
  423. X477.6 Q .372(The \214rst pass bases its guesses on the contents of the)72 493.2
  424. XR F4(gecos)2.872 E F0 .372
  425. X(\214eld \(containing the users' real name\), and the)2.872 F .282
  426. X(username itself.)72 505.2 R .283(The \214rst pass is fast and usually very fr\
  427. Xuitful, and completes quite quickly)5.283 F 5.283(.Y)-.65 G .283(ou would be)
  428. X453.994 505.2 R 1.395(surprised at the number of spods out there who still thi\
  429. Xnk that their middle name, backwards and capi-)72 517.2 R
  430. X(talised, is a good password.)72 529.2 Q 1.219(The second pass is made by encr\
  431. Xypting several pre-processed dictionaries on the \215y)72 544.8 R 3.72(,a)-.65
  432. XG 1.22(nd comparing the)431.57 544.8 R .197(results with users passwords.)72
  433. X556.8 R .197
  434. X(Crack optimises the number of calls to the encryption function by sorting the)
  435. X5.197 F .875(user passwords by their)72 568.8 R F4 .875(encryption salt)3.375 F
  436. XF0 .876(before loading, so that the dictionaries only have to be encrypted)
  437. X3.375 F 1.824(once for each dif)72 580.8 R 1.824(ferent salt.)-.18 F 1.823
  438. X(This generally saves about 30% of the calls you would have to make to)6.824 F
  439. XF1(crypt\(\))72 592.8 Q F0(.)A .083
  440. X(The preprocessed dictionaries are created my mer)72 608.4 R .084
  441. X(ging the source dictionaries found in the directory)-.18 F F1(Dict-)2.584 E
  442. X(Src)72 620.4 Q F0 .944
  443. X(and then truncating, sorting and uniq'ing the output from the preprocessor)
  444. X3.445 F 5.944(.T)-.55 G .944(he default dictionaries)413.242 620.4 R 6.628
  445. X(named are)72 632.4 R F1(/usr/dict/words)9.128 E F0 6.628
  446. X(which provides the bulk of the input data, and)9.128 F F1(Dict-)9.129 E
  447. X(Src/bad_pws.dat)72 644.4 Q F0 .498
  448. X(which is meant to provide all of those non-dictionary passwords, such as)2.999
  449. XF F4(12345678)2.998 E F0(or)72 656.4 Q F4(qwerty)2.5 E F0(.)A/F5 7
  450. X/Times-Roman@0 SF(2)112.55 652.3 Q F0 .739
  451. X(If you wish to add a dictionary of your own, just copy it into the)72 672 R F1
  452. X(DictSrc)3.238 E F0 .738(directory and then delete the)3.238 F .926
  453. X(contents of the)72 684 R F1(Dicts)3.426 E F0(directory)3.426 E 5.926(.Y)-.65 G
  454. X.926(our new dictionary will be mer)219.68 684 R .926(ged in on the next run.)
  455. X-.18 F .927(Do not worry)5.926 F .161
  456. X(about replication of data, as the preprocessor driver script sorts and uniq')
  457. X72 696 R 2.661(st)-.55 G .161(he data before putting it into the)374.714 696 R
  458. X.32 LW 144 704 72 704 DL/F6 5.6/Times-Roman@0 SF(2)82 712.52 Q F3 1.319
  459. X(Extra dictionaries \(those used in Dan Klein')2 3.28 N 3.319(sp)-.44 G(aper)
  460. X245.569 715.8 Q 3.319(,b)-.32 G 1.32
  461. X(elow\) can be obtained via anonymous FTP from)268.336 715.8 R/F7 8
  462. X/Times-Italic@0 SF(uunet.uu.net)72 725.8 Q F3(\(192.48.96.2\) as)2 E F7
  463. X(~/pub/dictionaries.tar)2 E(.Z)-.888 E EP
  464. X%%Page: 3 3
  465. X%%BeginPageSetup
  466. XBP
  467. X%%EndPageSetup
  468. X/F0 10/Times-Roman@0 SF(-3-)282.17 48 Q/F1 10/Courier@0 SF(Dicts)72 84 Q F0
  469. X(directory)2.5 E(.)-.65 E(The formats of the output dictionaries are:)72 99.6 Q
  470. X14.73(a\) Unique)72 115.2 R 1.144
  471. X(words that have been forced lowercase, forwards.)3.644 F 1.145
  472. X(These are the most common passwords)6.145 F
  473. X(you will \214nd, thus they are tried \214rst.)97 127.2 Q 14.17(b\) Dictionary)
  474. X72 142.8 R .473(words which have been arti\214cially pluralised, because not m\
  475. Xany dictionaries contain plu-)2.974 F(rals.)97 154.8 Q 14.73(c\) Dictionary)72
  476. X170.4 R(words which were supplied in mixed-case \(eg:)2.5 E/F2 10
  477. X/Times-Italic@0 SF(Capitalised)2.5 E F0(\).)A 14.17(d\) Dictionary)72 186 R
  478. X(words forced lowercase and backwards.)2.5 E 14.73(e\) Dictionary)72 201.6 R
  479. X.401(words, forced lowercase, with a leading or trailing 0 or 1 \(this may be \
  480. Xextended by hack-)2.9 F(ing Sources/crack-pp.c\).)97 213.6 Q 15.84
  481. X(f\) Dictionary)72 229.2 R(words, forced uppercase, forwards.)2.5 E 14.17
  482. X(g\) Dictionary)72 244.8 R(words, forced uppercase, backwards.)2.5 E 14.17
  483. X(h\) Dictionary)72 260.4 R
  484. X(words which were supplied in mixed-case, backwards \(eg:)2.5 E F2(desilatipaC)
  485. X2.5 E F0(\).)A .065
  486. X(This choice of attack is entirely empirical, my own, and made up on the spot.)
  487. X72 288 R .064(It has also been horrendously)5.064 F .209(successful, and becau\
  488. Xse Crack uses each of these dictionaries in turn, it tends to get passwords fa\
  489. Xster than a)72 300 R(program like the)72 312 Q/F3 10/Times-Bold@0 SF(COPS)2.5 E
  490. XF0(password cracker which tries words every-which-way for each user)2.5 E(.)
  491. X-.55 E/F4 7/Times-Roman@0 SF(3)441.62 307.9 Q F0 2.115
  492. X(Optimisation Note: Crack has an)97 327.6 R F3(compile-time)4.615 E F0 2.115
  493. X(option, called)4.615 F F1(CRACK_SHORT_PASSWDS)4.615 E F0(,)A .095(which, if)97
  494. X339.6 R F3(not)2.595 E F0 .094(de\214ned, makes the dictionary preprocessor)
  495. X2.595 F F2(thr)2.594 E .094(ow away)-.37 F F0 .094(words which are less than)
  496. X2.594 F 2.644(5c)97 351.6 S .144(haracters long.)109.084 351.6 R .144
  497. X(The reasoning for this is that many sites, with a semi-sensible)5.144 F F1
  498. X(passwd)2.644 E F0(pro-)2.644 E
  499. X(gram, will not have passwords shorter than 5 characters long.)97 363.6 Q .561
  500. X(It is up to you whether you bother testing these short passwords, but I would\
  501. X recommend that)97 379.2 R 1.983(you do so at least once, to be safe.)97 391.2
  502. XR 1.983(\(Setting the option also leads to having smaller pre-)6.983 F
  503. X(processed dictionaries.)97 403.2 Q(The option, however)5 E 2.5(,i)-.4 G 2.5
  504. X(sd)283.51 403.2 S(e\214ned by default\))294.9 403.2 Q F3 2.5(5. Installation)
  505. X72 427.2 R F0 .212
  506. X(Crack is one of those most unusual of beasties, a self-installing program.)72
  507. X442.8 R .212(Once the necessary con\214guration)5.212 F(options have been set,\
  508. X the executables are created via 'make' by running the main shellscript.)72
  509. X454.8 Q .122(Some people have complained about this apparent weirdness, but it\
  510. X has grown up with Crack ever since the)72 470.4 R .714(earliest network versi\
  511. Xon, when I could not be bothered to log into several dif)72 482.4 R .714
  512. X(ferent machines with several)-.18 F(dif)72 494.4 Q
  513. X(ferent architectures, just in order to build the binaries.)-.18 E 1.587
  514. X(Crack needs to know where it has been installed.)72 510 R 1.588
  515. X(Please edit the)6.588 F F1(CRACK_HOME)4.088 E F0 1.588(variable in the Crack)
  516. X4.088 F .918(shellscript to the correct value.)72 522 R .917
  517. X(This variable should be set to an absolute path name \(relative to)5.917 F F2
  518. X(~user)3.417 E F0(is)3.417 E .334
  519. X(OK\) through which the directory containing Crack may be accessed on)72 534 R
  520. XF3(all)2.835 E F0 .335(the machines that Crack will be)2.835 F(run on.)72 546 Q
  521. X1.133(The other bit of installation you will have to do is decide whether you \
  522. Xwill want to use the)72 561.6 R F1(-network)3.633 E F0 .358
  523. X(option. If you do, edit the \214le)72 573.6 R F1(Sources/conf.h)2.859 E F0
  524. X.359(and de\214ne the)2.859 F F1(CRACK_NETWORK)2.859 E F0 2.859(symbol. This)
  525. X2.859 F(forces)2.859 E .323(Crack to create all of its output \214les with an \
  526. Xembedded hostname \(obtained by the)72 585.6 R F1(gethostname\(\))2.822 E F0
  527. X(rou-)2.822 E .111
  528. X(tine\) so that you can keep track of output from all over the network.)72
  529. X597.6 R .112(If you have no)5.112 F F1(gethostname\(\))2.612 E F0(but)2.612 E
  530. X6.528(have a)72 609.6 R F1(uname\(\))9.028 E F0 6.528
  531. X(system call, you can use that instead, by de\214ning)9.028 F F1(CRACK_UNAME)
  532. X9.027 E F0(in)9.027 E F1(Sources/conf.h)72 621.6 Q F0(.)A -1(Yo)72 637.2 S
  533. X3.776(uw)1 G 1.276(ill then have to generate a)99.216 637.2 R F1
  534. X(Scripts/network.conf)3.776 E F0 1.276
  535. X(\214le. This contains a list of hostnames to)3.776 F F1(rsh)72 649.2 Q F0 .337
  536. X(to, what their binary type is \(useful when running a network Crack on severa\
  537. Xl dif)2.837 F .336(ferent architectures\),)-.18 F 2.563(ag)72 661.2 S .063
  538. X(uesstimate of their relative power \(take your slowest machine as unary)84.003
  539. X661.2 R 2.564(,a)-.65 G .064(nd measure all others relative to)375.65 661.2 R
  540. X.214(it\), and a list of per)72 673.2 R .214(-host default \215ags.)-.2 F .214
  541. X(There is an example of such a \214le provided in the Scripts directory -)5.214
  542. XF(take a look at it.)72 685.2 Q .32 LW 144 698.2 72 698.2 DL/F5 5.6
  543. X/Times-Roman@0 SF(3)82 706.72 Q/F6 8/Times-Roman@0 SF .151(For more informatio\
  544. Xn, see "Foiling the Cracker: A Survey of, and Improvements to, Password Securi\
  545. Xty" by)2 3.28 N(Daniel Klein, available from major FTP sites.)72 720 Q EP
  546. X%%Page: 4 4
  547. X%%BeginPageSetup
  548. XBP
  549. X%%EndPageSetup
  550. X/F0 10/Times-Roman@0 SF(-4-)282.17 48 Q 3.106(Ia)72 84 S .606
  551. X(lso recommend that you play around with the)82.876 84 R/F1 10/Courier@0 SF
  552. X(#define)3.106 E F0 3.106(si)C 3.106(nt)323.37 84 S .606(he \214le)334.256 84 R
  553. XF1(Sources/conf.h)3.106 E F0 5.606(.E)C .606(ach switch)460.904 84 R .661
  554. X(has a small note explaining its meaning.)72 96 R .66
  555. X(Where I've been in doubt about the portability of certain library)5.661 F .324
  556. X(functions, usually I've re-written it, so it shouldn')72 108 R 2.824(tb)-.18 G
  557. X2.824(em)283.842 108 S .325(uch of a problem.)298.886 108 R .325
  558. X(Let me know of your problems.)5.325 F F1(8-\).)72 120 Q/F2 10/Times-Bold@0 SF
  559. X2.5(6. Crack)72 144 R(Usage)2.5 E F1(Crack)148.285 165.6 Q F0([)2.5 E/F3 10
  560. X/Times-Italic@0 SF(options)A F0 2.5(][)C F3(bindir)222.725 165.6 Q F0(])A F1
  561. X(/etc/passwd)2.5 E F0([...other passwd \214les])2.5 E F1(Crack -network)148.285
  562. X189.6 Q F0([)2.5 E F3(options)A F0(])A F1(/etc/passwd)2.5 E F0
  563. X([...other passwd \214les])2.5 E(Where)72 211.2 Q F2(bindir)3.422 E F0 .921
  564. X(is the optional name of the directory where you want the binaries installed.)
  565. X3.422 F .921(This is useful)5.921 F .944
  566. X(where you want to be able to run versions of Crack on several dif)72 223.2 R
  567. X.944(ferent architectures. If)-.18 F F2(bindir)3.444 E F0 .944(does not)3.444 F
  568. X(exist, a warning will be issued, and the directory)72 235.2 Q 2.5(,c)-.65 G
  569. X(reated.)274.65 235.2 Q(Note:)97 250.8 Q F2(bindir)2.5 E F0
  570. X(defaults to the name)2.5 E F1(generic)2.5 E F0(if not supplied.)2.5 E F2 -1.11
  571. X(Ye)97 266.4 S .859(llow Pages \(NIS\) Users:)1.11 F F0 3.359(Ih)3.359 G .859
  572. X(ave had some queries about how to get Crack running from a)225.435 266.4 R
  573. X.736(YP password \214le.)97 278.4 R .737
  574. X(There are several methods, but by far the simplest is to generate a passwd)
  575. X5.737 F(format \214le by running:-)97 290.4 Q F1(ypcat passwd > passwd.yp)216
  576. X308.4 Q F0(and then running Crack on this \214le.)97 326.4 Q F2 2.5(7. Options)
  577. X72 350.4 R(-network)72 366 Q F0 .775
  578. X(Throws Crack into network mode, in which it reads the)97 378 R F1
  579. X(Scripts/network.conf)3.274 E F0 .774(\214le, splits its)3.274 F .251
  580. X(input into chunks which are sized according to the power of the tar)97 390 R
  581. X.252(get machine, and calls)-.18 F F1(rsh)2.752 E F0 .252(to run)2.752 F 1.217
  582. X(Crack on that machine.)97 402 R 1.216(Options for Crack running on the tar)
  583. X6.217 F 1.216(get machine may be supplied on the)-.18 F .998(command line \(eg\
  584. X: verbose or recover mode\), or in the network.conf \214le if they pertain to \
  585. Xspeci\214c)97 414 R(hosts \(eg:)97 426 Q F1(nice\(\))2.5 E F0(values\).)2.5 E
  586. XF2(-v)72 441.6 Q F0 .851
  587. X(Sets verbose mode, whereby Crack will print every guess it is trying on a per)
  588. X97 441.6 R .85(-user basis.)-.2 F .85(This is a)5.85 F 2.852
  589. X(very quick way of \215ooding your \214lestore.)97 453.6 R 2.852
  590. X(If you unde\214ne the)7.852 F F1(CRACK_VERBOSE)5.353 E F0 2.853(symbol in)
  591. X5.353 F F1(Sources/conf.h)97 465.6 Q F0 2.5(,v)C
  592. X(erbose mode will be permanently disabled.)191 465.6 Q F2(-nvalue)72 481.2 Q F0
  593. X.547(Sets the process to be)97 493.2 R F1(nice\(\))3.047 E F0 .547(ed to)B F3
  594. X(value)3.046 E F0 3.046(,s)C 3.046(ot)278.744 493.2 S .546(hat the switch)
  595. X289.57 493.2 R F1(-n19)3.046 E F0 .546(sets the Crack process to run at)3.046 F
  596. X(the lowest priority)97 505.2 Q(.)-.65 E F2(-rpoint\214le)72 520.8 Q F0 .582
  597. X(This is only for use when running in)97 532.8 R F3 -.37(re)3.082 G(cover).37 E
  598. XF0 3.082(mode. When)3.082 F 3.082(ar)3.082 G .583
  599. X(unning Crack starts pass 2, it periodi-)350.794 532.8 R .997
  600. X(cally saves its state in a \214le named)97 544.8 R F1(point.<pid>)3.497 E F0
  601. X(or)3.497 E F1(point.<hostname>.<pid>)3.497 E F0(depending)3.497 E .89
  602. X(on your naming convention \(see "Installation", above\).)97 556.8 R .891
  603. X(This \214le can be used to recover where you)5.891 F .192
  604. X(were should a host crash.)97 568.8 R .191(Simply invoke Crack in)5.191 F F2
  605. X(exactly)2.691 E F0 .191(the same manner as the last time, with the)2.691 F
  606. X1.212(addition of the)97 580.8 R F1(-rpoint.file.name)3.712 E F0 3.712
  607. X(switch. Crack)3.712 F 1.212(will startup and read the \214le, and jump to)
  608. X3.712 F .013(slightly before where it left of)97 592.8 R 2.513(f. If)-.18 F
  609. X.013(you are cracking a very lar)2.513 F .012
  610. X(ge password \214le, this can save oodles of)-.18 F(time after a crash.)97
  611. X604.8 Q .35(If you are running a)97 620.4 R F3(network)2.85 E F0 .35
  612. X(Crack, then the jobs will again be spawned onto all the machines)2.85 F .181
  613. X(of the original Crack.)97 632.4 R .18
  614. X(The program will then check that the host it is running on is the same as)
  615. X5.181 F .785(is mentioned in the point\214le.)97 644.4 R .786
  616. X(If it is not, it will silently die.)5.786 F .786
  617. X(Thus, assuming that you supply)5.786 F 2.007
  618. X(the same input data and do not change your)97 656.4 R F1(network.conf)4.506 E
  619. XF0 2.006(\214le, Crack should pick up)4.506 F F2(exactly)97 668.4 Q F0
  620. X(where it left of)2.5 E 2.5(f. This)-.18 F(is a bit inelegant, but it')2.5 E
  621. X2.5(sb)-.55 G(etter than nothing at the moment.)325.41 668.4 Q F2 2.5
  622. X(8. Multipr)72 692.4 R(ocessing and parallelism)-.18 E F0 .788(The method of e\
  623. Xrror recovery outlined above causes headaches for users who want to do multipr\
  624. Xocessing)72 708 R .499(on parallel architectures.)72 720 R .499
  625. X(Crack is in no way parallel, and because of the way it')5.499 F 2.998(ss)-.55
  626. XG .498(tructured, readind stdin)409.964 720 R EP
  627. X%%Page: 5 5
  628. X%%BeginPageSetup
  629. XBP
  630. X%%EndPageSetup
  631. X/F0 10/Times-Roman@0 SF(-5-)282.17 48 Q(from shellscript frontends, it is a pa\
  632. Xin to divide the work amongst several processes via)72 84 Q/F1 10/Courier@0 SF
  633. X(fork\(\))2.5 E F0(ing.)A .423
  634. X(The hack solution to get several copies of Crack running on one machine with)
  635. X72 99.6 R/F2 10/Times-Italic@0 SF(n)2.924 E F0 .424(processors at the moment)
  636. X2.924 F 1.546(is to run with the)72 111.6 R F1(CRACK_NETWORK)4.046 E F0 1.545
  637. X(option enabled, and insert)4.045 F F2(n)4.045 E F0 1.545
  638. X(copies of the entry for your parallel)4.045 F .697(machine into the)72 123.6 R
  639. XF1(Scripts/network.conf)3.197 E F0 .697(\214le. If you use the)3.197 F F1(-r)
  640. X3.197 E F0 .697(option in these circumstances how-)3.197 F(ever)72 135.6 Q
  641. X3.172(,y)-.4 G .672(ou will get)99.482 135.6 R F2(n)3.172 E F0 .671(copies of \
  642. Xthe recovered process running, only one of them will have the correct input)
  643. X3.172 F 3(data. I'm)72 147.6 R .5(working on this.)3 F .5(My current solution \
  644. Xis to save the current username in the checkpoint \214le, and)5.5 F .265
  645. X(test it on startup, but doing this)72 159.6 R F2(may)2.765 E F0 .264
  646. X(break your recovery if you supply dif)2.765 F .264
  647. X(ferent input data \(so that the data)-.18 F 1.325(is sorted even slightly dif)
  648. X72 171.6 R 3.826(ferently\). Hohum. If)-.18 F 1.326(you want to use this)3.826
  649. XF F2 1.326(verify username)3.826 F F0(facility)3.826 E 3.826(,u)-.65 G(se)
  650. X468.238 171.6 Q F1(-R)3.826 E F0(in)3.826 E(place of)72 183.6 Q F1(-r)2.5 E F0
  651. X(.)A(As for not using the)72 199.2 Q F1(network.conf)2.5 E F0
  652. X(\214le to provide multiprocessing, I'm working on it.)2.5 E/F3 10/Times-Bold@0
  653. XSF 2.5(9. Notes)72 223.2 R(on fast crypt\(\) implementations)2.5 E F0 .58
  654. X(The stdlib version of the)72 238.8 R F1(crypt\(\))3.08 E F0 .58
  655. X(subroutine is incredibly slow)3.08 F 5.58(.I)-.65 G 3.08(ti)348.58 238.8 S
  656. X3.08(sa)357.22 238.8 S F2(massive)A F0 .58(bottleneck to the execu-)3.08 F .838
  657. X(tion of Crack and on typical platforms that you get at universities, it is ra\
  658. Xre to \214nd a machine which will)72 250.8 R .343
  659. X(achieve more than 50 standard)72 262.8 R F1(crypt\(\))2.842 E F0 2.842(sp)C
  660. X.342(er second.)252.134 262.8 R .342
  661. X(On low-end diskless workstations, you may expect)5.342 F 3.026(2o)72 274.8 S
  662. X3.026(r3p)85.026 274.8 S .526(er second.)104.408 274.8 R .527
  663. X(It was this slowness of the)5.526 F F1(crypt\(\))3.027 E F0 .527
  664. X(algorithm which originally supplied much of the)3.027 F(security)72 286.8 Q/F4
  665. X8/Times-Roman@0 SF(UNIX)2.5 E F0(needed.)2.5 E/F5 7/Times-Roman@0 SF(4)159.472
  666. X282.7 Q F0(However)72 302.4 Q 2.557(,t)-.4 G .057(here are now)116.087 302.4 R
  667. XF1(many)2.557 E F0 .057(implementations of faster versions of)2.557 F F1
  668. X(crypt\(\))2.558 E F0 .058(to be found on the network.)2.558 F
  669. X(The one supplied with Crack v3.2 and upwards is called)72 314.4 Q F1
  670. X(fcrypt\(\))2.5 E F0(.)A F1(fcrypt\(\))72 330 Q F0 .898
  671. X(was originally written in May 1986 by Robert Baldwin at MIT)3.398 F 3.398(,a)
  672. X-.74 G .897(nd is a good version of the)392.516 330 R F1(crypt\(\))72 342 Q F0
  673. X2.837(subroutine. I)2.837 F .338
  674. X(received a copy from Icarus Sparry at Bath University)2.837 F 2.838(,w)-.65 G
  675. X.338(ho had made a couple of)404.28 342 R
  676. X(portability enhancements to the code.)72 354 Q 3.167(Ir)72 369.6 S .667(ewrot\
  677. Xe most of the tables and the KeySchedule generating algorithm in the original)
  678. X81.827 369.6 R F2(fdes-init.c)3.167 E F0 .666(to knock)3.166 F .406(40% of)72
  679. X381.6 R 2.906(ft)-.18 G .406(he execution overhead of)110.402 381.6 R F1
  680. X(fcrypt\(\))2.906 E F0 .407(in the form that it was shipped to me.)2.906 F
  681. X2.907(Ii)5.407 G .407(nlined a bunch of)433.069 381.6 R(stuf)72 393.6 Q 1.11(f\
  682. X, put it into a single \214le, got some advice from Matt Bishop and Bob Baldwi\
  683. Xn [both of whom I am)-.18 F .002(greatly indebted to] about what to do to the)
  684. X72 405.6 R F1(xform\(\))2.502 E F0 .002
  685. X(routine and to the fcrypt function itself, and tidied up)2.502 F 3.185
  686. X(some algorithms.)72 417.6 R 3.185(I've also added more lookup tables and redu\
  687. Xced several formula for faster use.)8.185 F F1(fcrypt\(\))72 429.6 Q F0
  688. X(is now barely recognisable as being based on its former incarnation.)2.5 E
  689. X.562(On a DecStation 5000/200, it is also ~13 times faster than the standard c\
  690. Xrypt \(your mileage may vary with)72 445.2 R .542
  691. X(other architectures and compilers\).)72 457.2 R .542(This speed puts)5.542 F
  692. XF1(fcrypt\(\))3.041 E F0 .541(into the "moderately fast" league of crypt)3.041
  693. XF 2.53(implementations. By)72 469.2 R(using)2.53 E F1(fcrypt\(\))2.53 E F0 .031
  694. X(with Crack, I extracted 135 passwords from my standard 1087 user)2.53 F .114
  695. X(password \214le in a little over 1 hour using 3 networked machines.)72 481.2 R
  696. X.114(This is from a moderately good password)5.114 F(\214le.)72 493.2 Q
  697. X(Why am I saying this sort of thing ? Am I scaremongering ? In a word, yes.)72
  698. X508.8 Q .087(If a fast version of)72 524.4 R F1(crypt\(\))2.587 E F0 .088
  699. X(is wired into a program like Crack it can break a poorly passworded site open)
  700. X2.587 F .249(in minutes.)72 536.4 R .249(There are such programs available, eg\
  701. X: the "Killer Cracker" written by the anonymous "Doctor)5.249 F .326
  702. X(Dissector", with anonymous motives.)72 548.4 R .326
  703. X(It comes with a modi\214ed version of Baldwin')5.326 F 2.826(sf)-.55 G .326
  704. X(crypt, as a MS-DOS)421.922 548.4 R(executable with a GNU copyleft licence.)72
  705. X560.4 Q .239(The point that needs to be hammered home is that unless something\
  706. X is done, and done soon, about the gen-)72 576 R .81
  707. X(eral quality of passwords on)72 588 R F4(UNIX)3.31 E F0 .811
  708. X(systems, then in the near future our doors will be wide open to people)3.31 F
  709. X(who have programs like Crack and questionable motives.)72 600 Q F3 2.5
  710. X(10. Solutions)72 624 R(and Conclusions)2.5 E F0
  711. X(What can be done about this form of attack ?)72 639.6 Q -1(Yo)72 655.2 S 2.754
  712. X(um)1 G .253(ust get a drop-in replacement for the)98.754 655.2 R F1(passwd)
  713. X2.753 E F0(and)2.753 E F1(yppasswd)2.753 E F0 .253
  714. X(commands; one which will stop peo-)2.753 F .79
  715. X(ple from choosing bad passwords in the \214rst place.)72 667.2 R .791
  716. X(There are several programs to do this; Matt Bishop')5.791 F(s)-.55 E F1
  717. X(passwd+)72 679.2 Q F0 .315(and Clyde Hoover)2.815 F -.55('s).37 G F1(npasswd)
  718. X3.365 E F0 .314(program are good examples which are freely available.)2.815 F
  719. X(Consult)5.314 E(an)72 691.2 Q F3(Ar)2.5 E(chie)-.18 E F0
  720. X(database for more details on where you can get them from.)2.5 E .32 LW 144
  721. X708.2 72 708.2 DL/F6 5.6/Times-Roman@0 SF(4)82 716.72 Q F4 .216
  722. X(See: "Password Security)2 3.28 N 2.216(,AC)-.52 G .215
  723. X(ase History" by Bob Morris & Ken Thomson, in the)182.624 720 R/F7 6.4
  724. X/Times-Roman@0 SF(UNIX)2.215 E F4 .215(Programmer Docs.)2.215 F EP
  725. X%%Page: 6 6
  726. X%%BeginPageSetup
  727. XBP
  728. X%%EndPageSetup
  729. X/F0 10/Times-Roman@0 SF(-6-)282.17 48 Q 3.046(Al)72 84 S .546(ittle common-sen\
  730. Xse is all that is required to vet passwords: I enclose a module in the Sources\
  731. X directory)85.046 84 R/F1 10/Times-Italic@0 SF(goodpass.c)72 96 Q F0 1.017
  732. X(which I use in a modi\214ed version of the)3.517 F/F2 10/Courier@0 SF
  733. X(yppasswd)3.517 E F0 1.016(in order to provide some security)3.517 F 6.016(.I)
  734. X-.65 G 3.516(ti)491.034 96 S(s)500.11 96 Q
  735. X(quite heavily customised for use in the UK, but it should be easily portable.)
  736. X72 108 Q(The routine is invoked:)5 E F2
  737. X(char *retval = GoodPass\(char *input\);)177 138 Q F0(where)72 159.6 Q F2
  738. X(input)2.848 E F0 .348(is the password under test, and)2.848 F F2(retval)2.848
  739. XE F0 .349(will be set either to NULL \(if the password is OK\))2.848 F .436
  740. X(or to a diagnostic string which says what is wrong with the password.)72 171.6
  741. XR .435(It is far less complex than a system)5.435 F .442(such as)72 183.6 R F1
  742. X(passwd+)2.942 E F0 2.942(,b)C .442(ut still ef)151.186 183.6 R .443
  743. X(fective enough to make a password \214le withstand)-.18 F F2(Crack)2.943 E F0
  744. X5.443(.I)C 2.943(tw)432.238 183.6 S .443(ould be nice if)445.181 183.6 R .959
  745. X(an or)72 195.6 R .959(ganisation \(such as)-.18 F/F3 10/Times-Bold@0 SF(CER)
  746. X3.459 E(T)-.35 E F0 3.459(?\) could)B .958(be persuaded to supply skeletons of)
  747. X3.459 F F1(sensible)3.458 E F0 .958(passwd commands)3.458 F .445
  748. X(for the public good, as well as an archive of security related utilities)72
  749. X207.6 R/F4 7/Times-Roman@0 SF(5)348.68 203.5 Q F0 .446(on top of the excellent)
  750. X355.125 207.6 R F2(COPS)2.946 E F0 5.446(.H)C(ow-)488.45 207.6 Q(ever)72 219.6
  751. XQ 3.216(,f)-.4 G(or)97.856 219.6 Q/F5 8/Times-Roman@0 SF(UNIX)3.216 E F0 .716(\
  752. Xsecurity to improve on a global scale, we will also require pressure on the ve\
  753. Xndors, so that)3.216 F(programs are written correctly from the beginning.)72
  754. X231.6 Q .32 LW 144 708.2 72 708.2 DL/F6 5.6/Times-Roman@0 SF(5)82 716.72 Q/F7 8
  755. X/Courier@0 SF(COPS)2 3.28 M F5(is available for anonymous FTP from)2 E/F8 8
  756. X/Times-Italic@0 SF(cert.sei.cmu.edu)2 E F5(\(128.237.253.5\) in)2 E F8(~/cops)2
  757. XE EP
  758. X%%Trailer
  759. Xend
  760. X%%EOF
  761. END_OF_FILE
  762. if test 37992 -ne `wc -c <'Docs/README.ps'`; then
  763.     echo shar: \"'Docs/README.ps'\" unpacked with wrong size!
  764. fi
  765. # end of 'Docs/README.ps'
  766. fi
  767. echo shar: End of archive 4 \(of 4\).
  768. cp /dev/null ark4isdone
  769. MISSING=""
  770. for I in 1 2 3 4 ; do
  771.     if test ! -f ark${I}isdone ; then
  772.     MISSING="${MISSING} ${I}"
  773.     fi
  774. done
  775. if test "${MISSING}" = "" ; then
  776.     echo You have unpacked all 4 archives.
  777.     rm -f ark[1-9]isdone
  778. else
  779.     echo You still need to unpack the following archives:
  780.     echo "        " ${MISSING}
  781. fi
  782. ##  End of shell archive.
  783. exit 0
  784. exit 0 # Just in case...
  785.