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