home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3891 < prev    next >
Encoding:
Internet Message Format  |  1991-08-23  |  39.5 KB

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