%!PS-Adobe-3.0 %%Creator: Basser Lout Version 3.01 (October 1994) %%CreationDate: Tue May 2 22:39:43 1995 %%DocumentData: Binary %%DocumentNeededResources: (atend) %%DocumentSuppliedResources: (atend) %%Pages: (atend) %%BoundingBox: 0 0 612 792 %%EndComments %%BeginProlog %%BeginResource: procset LoutStartUp /m { 3 1 roll moveto show } bind def /s { exch currentpoint exch pop moveto show } bind def /k { exch neg 0 rmoveto show } bind def /in { 1440 mul } def /cm { 567 mul } def /pt { 20 mul } def /em { 120 mul } def /sp { louts mul } def /vs { loutv mul } def /ft { loutf mul } def /dg { } def /LoutGraphic { /louts exch def /loutv exch def /loutf exch def /ymark exch def /xmark exch def /ysize exch def /xsize exch def } def /LoutFont { findfont exch scalefont setfont } bind def /LoutRecode { { findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding exch def currentdict end definefont pop } stopped {} } bind def /BeginEPSF { /LoutEPSFState save def /dict_count countdictstack def /op_count count 1 sub def userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bind def /EndEPSF { count op_count sub { pop } repeat countdictstack dict_count sub { end } repeat LoutEPSFState restore } bind def %%EndResource %%BeginResource encoding vec1 /vec1 [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /quotedblleft /quotedblright /fi /fl /endash /emdash /bullet /dagger /daggerdbl /florin /fraction /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndResource %%BeginResource: procset LoutTabPrependGraphic % @PrependGraphic file /usr/local/share/lout/include/tab_prepend %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % PostScript @SysPrependGraphic file for @Tab % % % % To assist in avoiding name clashes, the names % % of all these symbols begin with "ltab". % % % % Jeffrey H. Kingston % % 24 September 1991 % % 22 December 1992 % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % linewidth ltabhs - % horizontal single line /ltabhs { 0 0 moveto xsize 0 lineto setlinewidth 0 setlinecap stroke } def % linewidth ltabhsp - % horizontal single line with projecting ends /ltabhsp { 0 0 moveto xsize 0 lineto setlinewidth 2 setlinecap stroke } def % linewidth ltabhd - % horizontal double line /ltabhd { dup dup 0 0 moveto xsize 0 lineto 0 exch 3 mul moveto xsize exch 3 mul lineto setlinewidth 0 setlinecap stroke } def % linewidth ltabhdb - % horizontal double line below mark /ltabhdb { dup dup 0 0 moveto xsize 0 lineto 0 exch -3 mul moveto xsize exch -3 mul lineto setlinewidth 0 setlinecap stroke } def % linewidth ltabhdnw - % horizontal double line with northwest corner /ltabhdnw { dup dup dup dup 0 0 moveto xsize 0 lineto xsize exch 3 mul moveto -3 mul exch 3 mul lineto -3 mul 0 lineto setlinewidth 0 setlinejoin 2 setlinecap stroke } def % linewidth ltabhdne - % horizontal double line with northeast corner /ltabhdne { dup dup dup dup 0 0 moveto xsize 0 lineto 0 exch 3 mul moveto 3 mul xsize add exch 3 mul lineto 3 mul xsize add 0 lineto setlinewidth 0 setlinejoin 2 setlinecap stroke } def % linewidth ltabhdsw - % horizontal double line with southwest corner /ltabhdsw { dup dup dup dup 0 0 moveto xsize 0 lineto xsize exch -3 mul moveto -3 mul exch -3 mul lineto -3 mul 0 lineto setlinewidth 0 setlinejoin 2 setlinecap stroke } def % linewidth ltabhdse - % horizontal double line with southeast corner /ltabhdse { dup dup dup dup 0 0 moveto xsize 0 lineto 0 exch -3 mul moveto 3 mul xsize add exch -3 mul lineto 3 mul xsize add 0 lineto setlinewidth 0 setlinejoin 2 setlinecap stroke } def % linewidth ltabvs - % vertical single line /ltabvs { 0 0 moveto 0 ysize lineto setlinewidth 0 setlinecap stroke } def % linewidth ltabvd - % vertical double line /ltabvd { dup dup 0 0 moveto 0 ysize lineto -3 mul 0 moveto -3 mul ysize lineto setlinewidth 0 setlinecap stroke } def % linewidth ltabvdr - % vertical double line to right of mark /ltabvdr { dup dup 0 0 moveto 0 ysize lineto 3 mul 0 moveto 3 mul ysize lineto setlinewidth 0 setlinecap stroke } def %%EndResource %%BeginResource: procset LoutFigPrependGraphic % @PrependGraphic file /usr/local/share/lout/include/fig_prepend %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % PostScript @SysPrependGraphic file for @Fig Jeffrey H. Kingston % % Version 2.0 (includes CIRCUM label) January 1992 % % % % To assist in avoiding name clashes, the names of all symbols % % defined here begin with "lfig". However, this is not feasible % % with user-defined labels and some labels used by users. % % % % is two numbers, a point. % % is one number, a length % % is one number, an angle in degrees % % is one number, the preferred length of a dash % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% errordict begin /handleerror { { /Times-Roman findfont 8 pt scalefont setfont 0 setgray 4 pt 4 pt moveto $error /errorname get dup lfigdict exch known { lfigdict exch get } { 30 string cvs } ifelse show ( Command: ) show $error /command get 30 string cvs show } stopped {} if showpage stop } def end % concat strings: lfigconcat % must be defined outside lfigdict since used in lfigpromotelabels /lfigconcat { 2 copy length exch length add string dup 0 4 index putinterval dup 3 index length 3 index putinterval 3 1 roll pop pop } def % lfigdebugprint - % must be defined outside lfigdict since used in arbitrary places % /lfigdebugprint % { print % (; operand stack:\n) print % count copy % count 2 idiv % { == % (\n) print % } repeat % (\n) print % } def /lfigdict 120 dict def lfigdict begin % error messages /dictfull (dictfull error: too many labels?) def /dictstackoverflow (dictstackoverflow error: labels nested too deeply?) def /execstackoverflow (execstackoverflow error: figure nested too deeply?) def /limitcheck (limitcheck error: figure nested too deeply or too large?) def /syntaxerror (syntaxerror error: syntax error in text of figure?) def /typecheck (typecheck error: syntax error in text of figure?) def /undefined (undefined error: unknown or misspelt label?) def /VMError (VMError error: run out of memory?) def % push pi onto stack: - lfigpi /lfigpi 3.14159 def % arc directions /clockwise false def /anticlockwise true def % maximum of two numbers: lfigmax /lfigmax { 2 copy gt { pop } { exch pop } ifelse } def % minimum of two numbers: lfigmin /lfigmin { 2 copy lt { pop } { exch pop } ifelse } def % add two points: lfigpadd /lfigpadd { exch 3 1 roll add 3 1 roll add exch } def % subtract first point from second: lfigpsub /lfigpsub { 3 2 roll sub 3 1 roll exch sub exch } def % max two points: lfigpmax /lfigpmax { exch 3 1 roll lfigmax 3 1 roll lfigmax exch } def % min two points: lfigpmin /lfigpmin { exch 3 1 roll lfigmin 3 1 roll lfigmin exch } def % scalar multiplication: lfigpmul /lfigpmul { dup 3 1 roll mul 3 1 roll mul exch } def % point at angle and distance: lfigatangle /lfigatangle { 2 copy cos mul 3 1 roll sin mul lfigpadd } def % angle from one point to another: lfigangle /lfigangle { lfigpsub 2 copy 0 eq exch 0 eq and {pop} {exch atan} ifelse } def % distance between two points: lfigdistance /lfigdistance { lfigpsub dup mul exch dup mul add sqrt } def % difference in x coords: lfigxdistance /lfigxdistance { pop 3 1 roll pop sub } def %difference in y coords: lfigydistance /lfigydistance { 3 1 roll pop sub exch pop } def % stroke a solid line: lfigsolid - /lfigsolid { pop pop [] 0 setdash stroke } def % stroke a lfigdashed line: lfigdashed - /lfigdashed { 2 copy div 2 le 1 index 0 le or { exch pop 1 pt lfigmax [ exch dup ] 0 setdash } { dup [ exch 4 2 roll 2 copy div 1 sub 2 div ceiling dup 4 1 roll 1 add mul sub exch div ] 0 setdash } ifelse stroke } def % stroke a lfigcdashed line: lfigcdashed - /lfigcdashed { 2 copy le 1 index 0 le or { exch pop 1 pt lfigmax [ exch dup ] dup 0 get 2 div setdash } { dup [ 4 2 roll exch 2 copy exch div 2 div ceiling div 1 index sub ] exch 2 div setdash } ifelse stroke } def % stroke a dotted line: lfigdotted - /lfigdotted { 2 copy le 1 index 0 le or { exch pop 1 pt lfigmax [ exch 0 exch ] 0 setdash } { 1 index exch div ceiling div [ 0 3 2 roll ] 0 setdash } ifelse stroke } def % stroke a noline line: lfignoline - /lfignoline { pop pop } def % painting (i.e. filling): - lfigwhite - (etc.) /lfignopaint { } def /lfignochange { fill } def /lfigdarkblue { 0.0 0.0 0.5 setrgbcolor fill } def /lfigblue { 0.0 0.0 1.0 setrgbcolor fill } def /lfiglightblue { 0.5 0.5 1.0 setrgbcolor fill } def /lfigdarkgreen { 0.0 0.5 0.0 setrgbcolor fill } def /lfiggreen { 0.0 1.0 0.0 setrgbcolor fill } def /lfiglightgreen { 0.5 1.0 0.5 setrgbcolor fill } def /lfigdarkred { 0.5 0.0 0.0 setrgbcolor fill } def /lfigred { 1.0 0.0 0.0 setrgbcolor fill } def /lfiglightred { 1.0 0.5 0.5 setrgbcolor fill } def /lfigdarkcyan { 0.0 0.5 0.5 setrgbcolor fill } def /lfigcyan { 0.0 1.0 1.0 setrgbcolor fill } def /lfiglightcyan { 0.5 1.0 1.0 setrgbcolor fill } def /lfigdarkmagenta { 0.5 0.0 0.5 setrgbcolor fill } def /lfigmagenta { 1.0 0.0 1.0 setrgbcolor fill } def /lfiglightmagenta { 1.0 0.5 1.0 setrgbcolor fill } def /lfigdarkyellow { 0.5 0.5 0.0 setrgbcolor fill } def /lfigyellow { 1.0 1.0 0.0 setrgbcolor fill } def /lfiglightyellow { 1.0 1.0 0.5 setrgbcolor fill } def /lfigdarkgray { 0.2 0.2 0.2 setrgbcolor fill } def /lfiggray { 0.5 0.5 0.5 setrgbcolor fill } def /lfiglightgray { 0.8 0.8 0.8 setrgbcolor fill } def /lfigdarkgrey { 0.2 0.2 0.2 setrgbcolor fill } def /lfiggrey { 0.5 0.5 0.5 setrgbcolor fill } def /lfiglightgrey { 0.8 0.8 0.8 setrgbcolor fill } def /lfigblack { 0.0 0.0 0.0 setrgbcolor fill } def /lfigwhite { 1.0 1.0 1.0 setrgbcolor fill } def % line caps (and joins, not currently used) /lfigbutt 0 def /lfiground 1 def /lfigprojecting 2 def /lfigmiter 0 def /lfigbevel 2 def % shape and labels of the @Box symbol /lfigbox { 0 0 /SW lfigpointdef xsize 0 /SE lfigpointdef xsize ysize /NE lfigpointdef 0 ysize /NW lfigpointdef SE 0.5 lfigpmul /S lfigpointdef NW 0.5 lfigpmul /W lfigpointdef W SE lfigpadd /E lfigpointdef S NW lfigpadd /N lfigpointdef NE 0.5 lfigpmul /CTR lfigpointdef [ CTR NE lfigpsub /lfigboxcircum cvx ] lfigcircumdef SW SE NE NW SW } def % shape and labels of the @Square symbol /lfigsquare { xsize ysize 0.5 lfigpmul /CTR lfigpointdef CTR xsize xsize ysize ysize lfigpmax 0.5 lfigpmul lfigpadd /NE lfigpointdef CTR 0 0 CTR NE lfigdistance 135 lfigatangle lfigpadd /NW lfigpointdef CTR 0 0 CTR NE lfigdistance 225 lfigatangle lfigpadd /SW lfigpointdef CTR 0 0 CTR NE lfigdistance 315 lfigatangle lfigpadd /SE lfigpointdef SW 0.5 lfigpmul SE 0.5 lfigpmul lfigpadd /S lfigpointdef NW 0.5 lfigpmul NE 0.5 lfigpmul lfigpadd /N lfigpointdef SW 0.5 lfigpmul NW 0.5 lfigpmul lfigpadd /W lfigpointdef SE 0.5 lfigpmul NE 0.5 lfigpmul lfigpadd /E lfigpointdef [ CTR NE lfigpsub /lfigboxcircum cvx ] lfigcircumdef SW SE NE NW SW } def % shape and labels of the @Diamond symbol /lfigdiamond { xsize 0 0.5 lfigpmul /S lfigpointdef 0 ysize 0.5 lfigpmul /W lfigpointdef S W lfigpadd /CTR lfigpointdef CTR W lfigpadd /N lfigpointdef CTR S lfigpadd /E lfigpointdef [ xsize ysize 0.5 lfigpmul /lfigdiamondcircum cvx ] lfigcircumdef S E N W S } def % shape and labels of the @Ellipse symbol /lfigellipse { xsize 0 0.5 lfigpmul /S lfigpointdef 0 ysize 0.5 lfigpmul /W lfigpointdef S W lfigpadd /CTR lfigpointdef CTR W lfigpadd /N lfigpointdef CTR S lfigpadd /E lfigpointdef CTR xsize 0 0.3536 lfigpmul lfigpadd 0 ysize 0.3536 lfigpmul lfigpadd /NE lfigpointdef 0 ysize 0.3536 lfigpmul CTR xsize 0 0.3536 lfigpmul lfigpadd lfigpsub /SE lfigpointdef xsize 0 0.3536 lfigpmul CTR lfigpsub 0 ysize 0.3536 lfigpmul lfigpadd /NW lfigpointdef 0 ysize 0.3536 lfigpmul xsize 0 0.3536 lfigpmul CTR lfigpsub lfigpsub /SW lfigpointdef [ xsize ysize 0.5 lfigpmul /lfigellipsecircum cvx ] lfigcircumdef S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S } def % shape and labels of the @Circle symbol /lfigcircle { xsize ysize 0.5 lfigpmul /CTR lfigpointdef CTR xsize 0 ysize 0 lfigpmax 0.5 lfigpmul lfigpadd /E lfigpointdef CTR 0 0 CTR E lfigdistance 45 lfigatangle lfigpadd /NE lfigpointdef CTR 0 0 CTR E lfigdistance 90 lfigatangle lfigpadd /N lfigpointdef CTR 0 0 CTR E lfigdistance 135 lfigatangle lfigpadd /NW lfigpointdef CTR 0 0 CTR E lfigdistance 180 lfigatangle lfigpadd /W lfigpointdef CTR 0 0 CTR E lfigdistance 225 lfigatangle lfigpadd /SW lfigpointdef CTR 0 0 CTR E lfigdistance 270 lfigatangle lfigpadd /S lfigpointdef CTR 0 0 CTR E lfigdistance 315 lfigatangle lfigpadd /SE lfigpointdef [ S E lfigpsub /lfigellipsecircum cvx ] lfigcircumdef S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S } def % shape and labels of the @HLine and @HArrow symbols /lfighline { 0 ymark lfigprevious /FROM lfigpointdef xsize ymark lfigprevious /TO lfigpointdef } def % shape and labels of the @VLine and @VArrow symbols /lfigvline { xmark ysize lfigprevious /FROM lfigpointdef xmark 0 lfigprevious /TO lfigpointdef } def % points of a polygon around base with given no of sides, vert init angle: % figpolygon ... /lfigpolygon { xsize ysize 0.5 lfigpmul /CTR lfigpointdef 90 sub CTR 2 copy lfigmax 5 3 roll [ 4 copy pop /lfigpolycircum cvx ] lfigcircumdef exch dup 360 exch div exch 1 1 3 2 roll { 4 string cvs (P) exch lfigconcat cvn 6 copy pop pop lfigatangle 2 copy 10 2 roll 3 2 roll lfigpointdef dup 3 1 roll add exch } for pop lfigatangle } def % next array element: lfiggetnext true % or false /lfiggetnext { 2 copy exch length ge { false } { 2 copy get exch 1 add exch true } ifelse } def % check whether thing is number: lfigisnumbertype /lfigisnumbertype { dup type dup /integertype eq exch /realtype eq or } def % check whether thing is an array: lfigisarraytype /lfigisarraytype { dup type /arraytype eq } def % get next item: lfiggetnextitem 0 % or 1 % or 2 /lfiggetnextitem { lfiggetnext { lfigisarraytype { 1 } { lfigisnumbertype { 3 1 roll lfiggetnext { lfigisnumbertype { 4 3 roll exch 2 } { pop 3 2 roll pop 0 } ifelse } { 3 2 roll pop 0 } ifelse } { pop 0 } ifelse } ifelse } { 0 } ifelse } def % set arc path: bool x1 y1 x2 y2 x0 y0 lfigsetarc % the path goes from x1 y1 to x2 y2 about centre x0 y0, % anticlockwise if bool is true else clockwise. % The orientations of backwards pointing and forwards pointing % arrowheads are returned in the two angles, and % the length of the arc is returned in . /lfigsetarc { 20 dict begin matrix currentmatrix 8 1 roll 2 copy translate 2 copy 8 2 roll 4 2 roll lfigpsub 6 2 roll lfigpsub dup /y1 exch def dup mul /y1s exch def dup /x1 exch def dup mul /x1s exch def dup /y2 exch def dup mul /y2s exch def dup /x2 exch def dup mul /x2s exch def y1s y2s eq { -1 } { y1s x2s mul y2s x1s mul sub y1s y2s sub div } ifelse /da exch def x1s x2s eq { -1 } { x1s y2s mul x2s y1s mul sub x1s x2s sub div } ifelse /db exch def da 0 gt db 0 gt and { /LMax da sqrt db sqrt lfigmax def /scalex da sqrt LMax div def /scaley db sqrt LMax div def scalex scaley scale 0 0 LMax 0 0 x1 scalex mul y1 scaley mul lfigangle 0 0 x2 scalex mul y2 scaley mul lfigangle 2 copy eq { 360 add } if 2 copy 8 2 roll 5 index { arc } { arcn } ifelse 2 index 1 index { 90 sub } { 90 add } ifelse dup sin scaley mul exch cos scalex mul atan 2 index 2 index { 90 add } { 90 sub } ifelse dup sin scaley mul exch cos scalex mul atan 5 2 roll % res1 res2 ang1 ang2 anticlockwise { exch sub } { sub } ifelse dup 0 le { 360 add } if lfigpi mul LMax mul 180 div } { 0 0 x1 y1 lfigdistance 0 0 x2 y2 lfigdistance eq 0 0 x1 y1 lfigdistance 0 gt and { 0 0 0 0 x1 y1 lfigdistance 0 0 x1 y1 lfigangle 0 0 x2 y2 lfigangle 2 copy eq { 360 add } if 2 copy 8 2 roll 5 index { arc } { arcn } ifelse 2 index 1 index { 90 sub } { 90 add } ifelse 2 index 2 index { 90 add } { 90 sub } ifelse 5 2 roll % res1 res2 ang1 ang2 clockwise { exch sub } { sub } ifelse dup 0 le { 360 add } if lfigpi mul 0 0 x1 y1 lfigdistance mul 180 div } { x2 y2 lineto pop x2 y2 x1 y1 lfigangle x1 y1 x2 y2 lfigangle x1 y1 x2 y2 lfigdistance } ifelse } ifelse 4 -1 roll setmatrix end } def % lfigsetcurve: set up a Bezier curve from x0 y0 to x3 y3 % and return arrowhead angles and length of curve (actually 0) % x0 y0 x1 y1 x2 y2 x3 y3 lfigsetcurve /lfigsetcurve { 8 copy curveto pop pop lfigangle 5 1 roll 4 2 roll lfigangle exch 0 } def % lfigpaintpath: paint a path of the given shape % /paint [ shape ] lfigpaintpath - /lfigpaintpath { 10 dict begin 0 newpath /prevseen false def /curveseen false def { lfiggetnextitem dup 0 eq { pop exit } { 1 eq { /curveseen true def /curve exch def curve length 0 eq { /curveseen false def } if } { /ycurr exch def /xcurr exch def prevseen { curveseen { curve length 4 eq { xprev yprev curve 0 get curve 1 get curve 2 get curve 3 get xcurr ycurr lfigsetcurve pop pop pop } { xprev yprev xcurr ycurr curve length 1 ge { curve 0 get } { 0 } ifelse curve length 2 ge { curve 1 get } { 0 } ifelse curve length 3 ge { curve 2 get } { true } ifelse 7 1 roll lfigsetarc pop pop pop } ifelse } { xcurr ycurr lineto } ifelse } { xcurr ycurr moveto } ifelse /xprev xcurr def /yprev ycurr def /prevseen true def /curveseen false def } ifelse } ifelse } loop pop pop cvx exec end } def % stroke a path of the given shape in the given linestyle and dash length. % Return the origin and angle of the backward and forward arrow heads. % dashlength /linestyle [shape] lfigdopath [ ] [ ] /lfigdopath { 10 dict begin 0 /prevseen false def /curveseen false def /backarrow [] def /fwdarrow [] def { lfiggetnextitem dup 0 eq { pop exit } { 1 eq { /curveseen true def /curve exch def curve length 0 eq { /prevseen false def } if } { /ycurr exch def /xcurr exch def prevseen { newpath xprev yprev moveto curveseen { curve length 4 eq { xprev yprev curve 0 get curve 1 get curve 2 get curve 3 get xcurr ycurr lfigsetcurve } { xprev yprev xcurr ycurr curve length 1 ge { curve 0 get } { 0 } ifelse curve length 2 ge { curve 1 get } { 0 } ifelse curve length 3 ge { curve 2 get } { true } ifelse 7 1 roll lfigsetarc } ifelse } { xcurr ycurr lineto xcurr ycurr xprev yprev lfigangle dup 180 sub xprev yprev xcurr ycurr lfigdistance } ifelse 6 index 6 index cvx exec [ xprev yprev 5 -1 roll ] backarrow length 0 eq { /backarrow exch def } { pop } ifelse [ xcurr ycurr 4 -1 roll ] /fwdarrow exch def } if /xprev xcurr def /yprev ycurr def /prevseen true def /curveseen false def } ifelse } ifelse } loop pop pop pop pop backarrow length 0 eq { [ 0 0 0 ] } { backarrow } ifelse fwdarrow length 0 eq { [ 0 0 0 ] } { fwdarrow } ifelse end } def % lfigdoarrow: draw an arrow head of given form % dashlength /lstyle /pstyle hfrac height width [ ] lfigdoarrow - /lfigdoarrow { matrix currentmatrix 8 1 roll dup 0 get 1 index 1 get translate 2 get rotate [ 2 index neg 2 index 0 0 3 index 3 index neg 1 index 10 index mul 0 7 index 7 index ] 4 1 roll pop pop pop dup 3 1 roll gsave lfigpaintpath grestore lfigdopath pop pop setmatrix } def % arrow head styles /lfigopen 0.0 def /lfighalfopen 0.5 def /lfigclosed 1.0 def % stroke no arrows, forward, back, and both /lfignoarrow { pop pop pop pop pop pop pop pop } def /lfigforward { 7 -1 roll lfigdoarrow pop } def /lfigback { 8 -2 roll pop lfigdoarrow } def /lfigboth { 8 -1 roll 7 copy lfigdoarrow pop 7 -1 roll lfigdoarrow } def % lfigprevious: return previous point on path /lfigprevious { lfigisnumbertype { 2 copy } { lfigisarraytype { 2 index 2 index } { 0 0 } ifelse } ifelse } def % label a point in 2nd top dictionary: /name lfigpointdef - /lfigpointdef { % (Entering lfigpointdef) lfigdebugprint [ 4 2 roll transform /itransform cvx ] cvx currentdict end 3 1 roll % currentdict length currentdict maxlength lt % { def } % { exec moveto (too many labels) show stop } % ifelse def begin % (Leaving lfigpointdef) lfigdebugprint } def % promote labels from second top to third top dictionary % lfigpromotelabels - /lfigpromotelabels { % (Entering lfigpromotelabels) lfigdebugprint currentdict end exch currentdict end { exch 20 string cvs 2 index (@) lfigconcat exch lfigconcat cvn exch def } forall pop begin % (Leaving lfigpromotelabels) lfigdebugprint } def % show labels (except CIRCUM): - lfigshowlabels - /lfigshowlabels { % (Entering lfigshowlabels) lfigdebugprint currentdict end currentdict { 1 index 20 string cvs (CIRCUM) search % if CIRCUM in key { pop pop pop pop pop } { pop cvx exec 2 copy newpath 1.5 pt 0 360 arc 0 setgray fill /Times-Roman findfont 8 pt scalefont setfont moveto 0.2 cm 0.1 cm rmoveto 20 string cvs show } ifelse } forall begin % (Leaving lfigshowlabels) lfigdebugprint } def % fix an angle to between 0 and 360 degrees: lfigfixangle /lfigfixangle { % (Entering lfigfixangle) lfigdebugprint { dup 0 ge { exit } if 360 add } loop { dup 360 lt { exit } if 360 sub } loop % (Leaving lfigfixangle) lfigdebugprint } def % find point on circumference of box: alpha a b lfigboxcircum x y /lfigboxcircum { % (Entering lfigboxcircum) lfigdebugprint 4 dict begin /b exch def /a exch def lfigfixangle /alpha exch def 0 0 a b lfigangle /theta exch def % if alpha <= theta, return (a, a*tan(alpha)) alpha theta le { a a alpha sin mul alpha cos div } { % else if alpha <= 180 - theta, return (b*cot(alpha), b) alpha 180 theta sub le { b alpha cos mul alpha sin div b } { % else if alpha <= 180 + theta, return (-a, -a*tan(alpha)) alpha 180 theta add le { a neg a neg alpha sin mul alpha cos div } { % else if alpha <= 360 - theta, return (-b*cot(alpha), -b) alpha 360 theta sub le { b neg alpha cos mul alpha sin div b neg } { % else 360 - theta <= alpha, return (a, a*tan(alpha)) a a alpha sin mul alpha cos div } ifelse } ifelse } ifelse } ifelse end % (Leaving lfigboxcircum) lfigdebugprint } def % find point on circumference of diamond: alpha a b lfigdiamondcircum x y /lfigdiamondcircum { % (Entering lfigdiamondcircum) lfigdebugprint 4 dict begin /b exch def /a exch def lfigfixangle /alpha exch def b alpha cos abs mul a alpha sin abs mul add /denom exch def a b mul alpha cos mul denom div a b mul alpha sin mul denom div end % (Leaving lfigdiamondcircum) lfigdebugprint } def % find point on circumference of ellipse: alpha a b lfigellipsecircum x y /lfigellipsecircum { % (Entering lfigellipsecircum) lfigdebugprint 4 dict begin /b exch def /a exch def lfigfixangle /alpha exch def b alpha cos mul dup mul a alpha sin mul dup mul add sqrt /denom exch def a b mul alpha cos mul denom div a b mul alpha sin mul denom div end % (Leaving lfigellipsecircum) lfigdebugprint } def % find point of intersection of two lines each defined by two points % x1 y1 x2 y2 x3 y3 x4 y4 lfiglineintersect x y /lfiglineintersect { % (Entering lfiglineintersect) lfigdebugprint 13 dict begin /y4 exch def /x4 exch def /y3 exch def /x3 exch def /y2 exch def /x2 exch def /y1 exch def /x1 exch def x2 x1 sub /x21 exch def x4 x3 sub /x43 exch def y2 y1 sub /y21 exch def y4 y3 sub /y43 exch def y21 x43 mul y43 x21 mul sub /det exch def % calculate x y21 x43 mul x1 mul y43 x21 mul x3 mul sub y3 y1 sub x21 mul x43 mul add det div % calculate y x21 y43 mul y1 mul x43 y21 mul y3 mul sub x3 x1 sub y21 mul y43 mul add det neg div end % (Leaving lfiglineintersect) lfigdebugprint } def % find point on circumference of polygon % alpha radius num theta lfigpolycircum x y /lfigpolycircum { % (Entering lfigpolycircum) lfigdebugprint 13 dict begin /theta exch def /num exch def /radius exch def /alpha exch def % calculate delta, the angle from theta to alpha alpha theta sub lfigfixangle % calculate the angle which is the multiple of 360/num closest to delta 360 num div div truncate 360 num div mul theta add /anglea exch def % calculate the next multiple of 360/num after anglea anglea 360 num div add /angleb exch def % intersect the line through these two points with the alpha line anglea cos anglea sin angleb cos angleb sin 0 0 alpha cos 2 mul alpha sin 2 mul lfiglineintersect radius lfigpmul end % (Leaving lfigpolycircum) lfigdebugprint } def % add CIRCUM operator with this body: lfigcircumdef - /lfigcircumdef { % (Entering lfigcircumdef) lfigdebugprint /CIRCUM exch cvx currentdict end 3 1 roll % currentdict length currentdict maxlength lt % { def } % { exec moveto (too many labels) show stop } % ifelse def begin % (Leaving lfigcircumdef) lfigdebugprint } def end %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Times-Italic /Times-Italicfnt83 vec1 /Times-Italic LoutRecode /fnt83 { /Times-Italicfnt83 LoutFont } def %%IncludeResource: font Times-Bold /Times-Boldfnt84 vec1 /Times-Bold LoutRecode /fnt84 { /Times-Boldfnt84 LoutFont } def %%IncludeResource: font Times-Roman /Times-Romanfnt82 vec1 /Times-Roman LoutRecode /fnt82 { /Times-Romanfnt82 LoutFont } def %%EndSetup %%Page: ? 1 %%BeginPageSetup %%PageResources: font Times-Italic %%+ font Times-Bold %%+ font Times-Roman /pgsave save def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 200 fnt83 0.0 0.0 0.0 setrgbcolor 3005 -1576(Originally)m 3884(published)s 4709(in)s 4914(the)s 5207(pr)s 9(oceedings)k 6221(of)s 6426(the)s 6719(5th)s 7024(Usenix)s 7626(Security)s 8327(Symposium)s 224 fnt84 4401 -3032(DNS)m 280 fnt84 4917 -3034(and)m 224 fnt84 5437 -3032(BIND)m 280 fnt84 6065 -3034(Security)m 7127(Issues)s 240 fnt82 5620 -3494(P)m 3(aul)k 6102(V)s 14(ixie)k 5279 -3734()m 240 fnt83 4695 -4067(Internet)m 5511(Softwar)s 8(e)k 6414(Consortium)s 200 fnt82 5619 -4494(2)m 5769(May)s 13(,)k 6221(1995)s 200 fnt84 5750 -5395(Abstract)m 200 fnt82 2160 -5773(Ef)m 5(forts)k 2757(are)s 3049(underw)s 2(ay)k 3883(to)s 4088(add)s 4426(security)s 5105(to)s 5310(the)s 160 fnt82 5603 -5771(DNS)m 200 fnt82 5971 -5773(protocol.)m 6785(W)s 16(e)k 7095(ha)s 4(v)k 3(e)k 7514(observ)s 3(ed)k 8280(that)s 8628(if)s 160 fnt82 8799 -5771(BIND)m 200 fnt82 9238 -5773(w)m 2(ould)k 9785(just)s 2160 -6013(do)m 2400(what)s 2827(the)s 160 fnt82 3110 -6011(DNS)m 200 fnt82 3468 -6013(speci\207cations)m 4590(say)s 4895(it)s 5045(should)s 5617(do,)s 5907(stop)s 6279(crashing,)s 7043(and)s 7371(start)s 7752(checking)s 8511(its)s 8738(inputs,)s 9315(then)s 9698(most)s 2160 -6253(of)m 2382(the)s 2681(e)s 3(xisting)k 3364(security)s 4049(holes)s 4525(in)s 160 fnt82 4736 -6251(DNS)m 200 fnt83 5110 -6252(as)m 5343(pr)s 3(acticed)k 200 fnt82 6147 -6253(w)m 2(ould)k 6700(go)s 6956(a)s 3(w)k 2(ay)k 13(.)k 7514(T)s 16(o)k 7776(be)s 8020(sure,)s 8457(attack)s 2(ers)k 9216(w)s 2(ould)k 9769(still)s 2160 -6493(ha)m 4(v)k 3(e)k 2588(a)s 2735(pretty)s 3258(easy)s 3670(time)s 4082(co-opting)s 160 fnt82 4905 -6491(DNS)m 200 fnt82 5282 -6493(in)m 5496(their)s 5919(break-in)s 6641(attempts.)s 7473(Our)s 7842(aim)s 8199(has)s 8523(been)s 8958(to)s 9172(get)s 160 fnt82 9474 -6491(BIND)m 200 fnt82 9922 -6493(to)m 2160 -6733(the)m 2459(point)s 2925(where)s 3467(its)s 3710(only)s 4121(vulnerabilities)s 5314(are)s 5612(due)s 5956(to)s 6167(the)s 160 fnt82 6466 -6731(DNS)m 200 fnt82 6840 -6733(protocol,)m 7610(and)s 7954(not)s 8265(to)s 8476(the)s 8775(implementation.)s 2160 -6973(This)m 2564(paper)s 3056(describes)s 3845(our)s 4161(progress)s 4885(to)s 5090(date.)s 240 fnt84 1440 -7606(1.)m 1740(Intr)s 4(oduction)k 200 fnt82 1440 -7985(Man)m 3(y)k 1949(were)s 2382(the)s 2672(reasons)s 3315(for)s 3594(starting)s 4237(w)s 2(ork)k 4692(on)s 160 fnt82 4939 -7983(BIND)m 200 fnt82 5375 -7985(ag)m 1(ain)k 5852(a)s 1440 -8225(fe)m 5(w)k 1784(years)s 2254(back.)s 2731(The)s 160 fnt82 3092 -8223(BIND)m 200 fnt82 3532 -8225(serv)m 3(er)k 4065(and)s 4404(resolv)s 3(er)k 5092(are)s 5385(critical)s 1440 -8465(to)m 1630(the)s 1908(daily)s 2341(acti)s 5(vities)k 3087(of)s 3288(millions)s 3975(of)s 4176(Internet)s 4829(users,)s 5322(yet)s 5600(the)s 3(y)k 1440 -8705(ha)m 4(v)k 3(e)k 1861(each)s 2277(been)s 2705(infested)s 3386(with)s 3792(b)s 4(ugs)k 4217(from)s 4656(their)s 5072(\207rst)s 5433(day)s 5773(of)s 1440 -8945(use.)m 1853(W)s 16(e)k 2161(ha)s 4(v)k 3(e)k 2578(made)s 3057(some)s 3525(good)s 3973(progress)s 4695(on)s 4943(plugging)s 5701(the)s 1440 -9185(memory)m 2169(leaks)s 2642(and)s 2995(core)s 3402(dumps)s 3999(that)s 160 fnt82 4362 -9183(BIND)m 200 fnt82 4816 -9185(is)m 5013(f)s 2(amous)k 5662(for)s 8(,)k 1440 -9425(and)m 1784(along)s 2283(the)s 2582(w)s 2(ay)k 2968(we)s 3256(ha)s 4(v)k 3(e)k 3681(found)s 4203(a)s 4347(lot)s 4613(of)s 4835(w)s 2(ays)k 5298(to)s 5509(mak)s 2(e)k 160 fnt82 1440 -9663(BIND)m 200 fnt82 1879 -9665(more)m 2338(secure.)s 1840 -9976(Man)m 3(y)k 2355(of)s 2574(the)s 2870(classic)s 3451(security)s 4133(breaches)s 4881(in)s 5089(the)s 5385(history)s 1440 -10216(of)m 1674(computers)s 2571(and)s 2927(computer)s 3747(netw)s 2(orking)k 4721(ha)s 4(v)k 3(e)k 5158(had)s 5514(to)s 5737(do)s 1440 -10456(not)m 1770(with)s 2199(fundamental)s 3269(algorythm)s 4163(or)s 4404(protocol)s 5143(\210a)s 3(ws,)k 5685(b)s 4(ut)k 1440 -10696(with)m 1834(implementation)s 3123(errors.)s 3726(Sometimes)s 4650(those)s 5110(errors)s 5613(tak)s 2(e)k 1440 -10936(the)m 1721(form)s 2146(of)s 2350(ignorant)s 3052(or)s 3256(\205security)s 4011(una)s 3(w)k 2(are\206)k 4806(programming,)s 1440 -11176(such)m 1855(as)s 2070(collecting)s 2904(potentially)s 3805(unbounded)s 4743(streams)s 5399(of)s 5615(data)s 1440 -11416(from)m 1910(the)s 2236(netw)s 2(ork)k 2970(using)s 3485(functions)s 4309(which)s 4879(do)s 5162(not)s 5500(kno)s 5(w)k 1440 -11656(the)m 1784(length)s 2383(of)s 2650(their)s 3115(destination)s 4089(b)s 4(uf)k 5(fers,)k 4794(or)s 5061(the)s 5405(use)s 5771(of)s 1440 -11896(predictable)m 2391(magic)s 2945(cookies)s 3621(since)s 4097(the)s 4408(programmer')s 11(s)k 5592(goal)s 1440 -12136(is)m 1618(to)s 1819(pre)s 5(v)k 3(ent)k 2454(accidental)s 3305(data)s 3682(errors)s 4191(rather)s 4700(than)s 5089(intentional)s 1440 -12376(ones.)m 1950(Other)s 2448(times,)s 2973(a)s 3106(code)s 3527(branch)s 4114(rarely)s 4622(or)s 4833(ne)s 5(v)k 3(er)k 5312(tak)s 2(en)k 5786(in)s 1440 -12616(normal)m 2053(use)s 2367(is)s 2548(found)s 3063(to)s 3267(ha)s 4(v)k 3(e)k 3685(\205security)s 4451(f)s 2(atal\206)k 4938(b)s 4(ugs)k 5360(or)s 5575(e)s 5(v)k 3(en)k 1440 -12856(deliberate)m 2273(back)s 2699(doors)s 3192(or)s 3408(loopholes.)s 1840 -13167(While)m 2407(we)s 2720(do)s 3001(not)s 3337(intend)s 3916(to)s 4152(demean)s 4852(the)s 5176(ef)s 5(forts)k 5770(of)s 1440 -13407(those)m 1956(in)s 8(v)k 4(olv)k 3(ed)k 2735(in)s 2986(upgrading)s 3891(the)s 4230(Internet)s 4944(protocols)s 5781(to)s 1440 -13647(mak)m 2(e)k 1945(security)s 2650(a)s 2814(more)s 3299(realistic)s 4002(goal,)s 4471(we)s 4779(ha)s 4(v)k 3(e)k 5224(observ)s 3(ed)k 1440 -13887(that)m 1813(if)s 160 fnt82 2009 -13885(BIND)m 200 fnt82 2473 -13887(w)m 2(ould)k 3045(just)s 3407(do)s 3682(what)s 4144(the)s 160 fnt82 4462 -13885(DNS)m 200 fnt82 4855 -13887(speci\207cations)m 1440 -14127(say)m 1788(it)s 1981(should)s 2596(do,)s 2929(stop)s 3344(crashing,)s 4151(and)s 4522(start)s 4946(checking)s 5748(its)s 6300 -7577(inputs,)m 6887(then)s 7280(most)s 7717(of)s 7933(the)s 8226(e)s 3(xisting)k 8903(security)s 9582(holes)s 10052(in)s 160 fnt82 10257 -7575(DNS)m 200 fnt83 10625 -7576(as)m 6300 -7816(pr)m 3(acticed)k 200 fnt82 7120 -7817(w)m 2(ould)k 7689(go)s 7961(a)s 3(w)k 2(ay)k 13(.)k 8535(T)s 16(o)k 8813(be)s 9073(sure,)s 9526(attack)s 2(ers)k 10301(w)s 2(ould)k 6300 -8057(still)m 6705(ha)s 4(v)k 3(e)k 7182(a)s 7378(pretty)s 7950(easy)s 8411(time)s 8872(co-opting)s 160 fnt82 9744 -8055(DNS)m 200 fnt82 10170 -8057(in)m 10433(their)s 6300 -8297(break-in)m 7026(attempts.)s 7862(Our)s 8235(aim)s 8596(has)s 8924(been)s 9363(to)s 9581(get)s 160 fnt82 9887 -8295(BIND)m 200 fnt82 10339 -8297(to)m 10557(the)s 6300 -8537(point)m 6785(where)s 7346(its)s 7608(only)s 8038(vulnerabilities)s 9250(are)s 9567(due)s 9930(to)s 10160(the)s 160 fnt82 10478 -8535(DNS)m 200 fnt82 6300 -8777(protocol,)m 7064(and)s 7402(not)s 7707(to)s 7912(the)s 8205(implementation.)s 240 fnt84 6300 -9465(2.)m 6600(Wh)s 3(y)k 7150(Is)s 192 fnt84 7396 -9463(DNS)m 240 fnt84 7838 -9465(Security)m 8747(Important?)s 200 fnt82 6300 -9890(Let')m 11(s)k 6778(say)s 7124(that)s 7503(a)s 7672(security)s 8382(conscious)s 9248(user)s 9660(al)s 2(w)k 2(ays)k 10289(uses)s 10712(a)s 160 fnt82 6300 -10128(DES)m 200 fnt82 6650 -10130(challenge/response)m 8213(de)s 5(vice)k 8777(when)s 9259(connecting)s 10183(to)s 10388(hosts)s 6300 -10370(outside)m 6940(the)s 7248(local)s 7699(netw)s 2(ork,)k 8465(b)s 4(ut)k 8781(when)s 9278(connecting)s 10217(locally)s 13(,)k 6300 -10610(she)m 6635(\207gures)s 7247(that)s 7615(it)s 7795(is)s 7997(safe)s 8386(to)s 8611(send)s 9046(her)s 9370(passw)s 2(ord)k 10190(in)s 10415(clear)s 6300 -10850(te)m 3(xt)k 6660(since)s 7133(she)s 7463(kno)s 5(ws)k 128 fnt82 7979 -10761(1)m 200 fnt82 8108 -10850(that)m 8471(outsiders)s 9254(cannot)s 9850(snif)s 5(f)k 10274(on)s 10539(her)s 6300 -11090(pri)m 5(v)k 5(ate)k 6906(netw)s 2(ork.)k 7721(Further)s 8371(assume)s 9020(that)s 9382(hers)s 9777(is)s 9973(one)s 10325(of)s 10555(the)s 6300 -11330(man)m 3(y)k 6796(installations)s 7812(which)s 8355(does)s 8776(not)s 9087(restrict)s 9693(outbound)s 160 fnt82 10504 -11328(TCP)m 200 fnt82 6300 -11570(connections,)m 7383(on)s 7665(the)s 7990(assumption)s 8979(that)s 9359(\207re)s 5(w)k 2(alls)k 10118(are)s 10442(only)s 6300 -11810(necessary)m 7121(to)s 7325(k)s 2(eep)k 7748(people)s 200 fnt83 8328 -11809(out)m 128 fnt82 8583 -11721(2)m 200 fnt82 8647 -11810(.)m 8796(If)s 8977(her)s 9280(name)s 9760(serv)s 3(er)k 10291(is)s 10472(able)s 6300 -12050(to)m 6509(recei)s 5(v)k 3(e)k 160 fnt82 7128 -12048(UDP)m 200 fnt82 7500 -12050(pack)m 2(ets)k 8148(on)s 8402(port)s 8777(53)s 9031(from)s 9472(outside)s 10101(her)s 10409(local)s 6300 -12290(netw)m 2(ork,)k 7091(then)s 7524(this)s 7901(security)s 8620(conscious)s 9495(user)s 9916(is)s 10138(in)s 10383(for)s 10705(a)s 6300 -12530(potentially)m 7201(rough)s 7717(ride.)s 6700 -12841(Before)m 7318(we)s 7627(be)s 3(gin,)k 8194(we')s 10(d)k 8659(lik)s 2(e)k 9032(to)s 9264(emphasize)s 10180(that)s 10555(the)s 6300 -13081(e)m 3(xamples)k 7145(are)s 7484(not)s 7836(dra)s 3(wn)k 8428(from)s 8912(theoretical)s 9847(studies,)s 10546(b)s 4(ut)k 6300 -13321(rather)m 6813(the)s 200 fnt84 7106 -13322(tcpdump)m 200 fnt82 7920 -13321(command)m 8756(running)s 9427(on)s 9677(real)s 10024(netw)s 2(orks.)k gsave 6300 -13861 translate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1134 0 0 0 200 240 50 LoutGraphic gsave 0 0 moveto xsize 0 lineto stroke grestore grestore 102 fnt82 0.0 0.0 0.0 setrgbcolor 6300 -14042(1)m 160 fnt82 6351 -14113(W)m 12(e')k 1(ll)k 6741(assume)s 7251(that)s 7530(she)s 7783(is)s 7929(correct.)s 102 fnt82 6300 -14295(2)m 160 fnt82 6351 -14366(An)m 6586(assumption)s 7353(with)s 7676(which)s 8106(we)s 8332(do)s 8532(not)s 8776(agree.)s grestore pgsave restore showpage %%Page: ? 2 %%BeginPageSetup %%PageResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic /pgsave save def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1440 -1576(F)m 3(olks)k 1944(o)s 3(v)k 3(er)k 2356(on)s 2620(the)s 2927(Dark)s 3389(Side)s 3807(ha)s 4(v)k 3(e)k 4240(tools)s 4691(to)s 4910(e)s 3(xploit)k 5524(these)s 1440 -1816(weaknesses,)m 2469(and)s 2809(the)s 3(y)k 3201(are)s 3495(real,)s 3894(right)s 4322(here,)s 4766(right)s 5194(no)s 5(w)k 13(.)k 5672(W)s 16(e)k 1440 -2056(learned)m 2067(of)s 2275(these)s 2725(weaknesses)s 3694(by)s 3936(studying)s 4665(some)s 5127(successful)s 1440 -2296(attacks,)m 2092(not)s 2398(just)s 2736(by)s 2987(a)s 3126(careful)s 3728(e)s 3(xamination)k 4760(of)s 4977(the)s 5271(protocol)s 1440 -2536(and)m 1778(the)s 160 fnt82 2071 -2534(BIND)m 200 fnt82 2510 -2536(source)m 3079(code.)s 200 fnt84 1440 -3036(2.1)m 1690(.)s 1840(Misdir)s 3(ected)k 2902(Destination)s 200 fnt82 1440 -3414(A)m 1660(user)s 2067(asks)s 2485(her)s 2815(telnet)s 3332(client)s 3849(to)s 4080(connect)s 4775(to)s 200 fnt84 5006 -3415(host1)m 200 fnt82 5460 -3414(.)m 5636(Her)s 1440 -3654(client)m 1972(asks)s 2405(the)s 2739(name)s 3261(serv)s 3(er)k 3834(for)s 4157(the)s 4491(address)s 5178(of)s 200 fnt84 5435 -3655(host1)m 200 fnt82 5889 -3654(,)m 1440 -3894(recei)m 5(v)k 3(es)k 2201(a)s 2408(corrupt)s 3102(answer)s 8(,)k 3826(and)s 4233(then)s 4695(initiates)s 5442(a)s 160 fnt82 5649 -3892(TCP)m 200 fnt82 1440 -4134(connection)m 2415(to)s 2671(the)s 3015(telnet)s 3557(serv)s 3(er)k 4140(at)s 4384(that)s 4783(address.)s 5580(This)s 1440 -4374(address)m 2098(does)s 2525(not)s 2842(correspond)s 3789(to)s 4006(her)s 4322(intended)s 5070(host,)s 5514(b)s 4(ut)k 5827(it)s 1440 -4614(displays)m 2140(the)s 2431(usual)s 2899(greeting,)s 3649(and)s 3985(she)s 4298(types)s 4766(her)s 5068(usual)s 5536(login)s 1440 -4854(and)m 1789(passw)s 2(ord.)k 2700(The)s 3071(connection)s 4006(drops,)s 4560(she)s 4886(tries)s 5288(it)s 5459(ag)s 1(ain,)k 1440 -5094(all)m 1677(is)s 1848(well,)s 2279(she)s 2583(chalks)s 3130(it)s 3279(up)s 3518(to)s 3712(a)s 3839(gremlin)s 4497(in)s 4691(the)s 4973(netw)s 2(ork)k 5663(and)s 1440 -5334(for)m 3(gets)k 2032(all)s 2273(about)s 2759(it.)s 3012(But)s 3343(there)s 200 fnt83 3783 -5333(is)m 200 fnt82 3958 -5334(a)m 4089(gremlin)s 4751(in)s 4949(her)s 5246(netw)s 2(ork,)k 1440 -5574(and)m 1778(that)s 2126(gremlin)s 2795(just)s 3132(harv)s 3(ested)k 3941(her)s 4245(passw)s 2(ord.)k 200 fnt84 1440 -6115(2.2)m 1690(.)s 1840(Misdir)s 3(ected)k 2902(Sour)s 3(ce)k 200 fnt82 1440 -6494(If)m 1630(that)s 1986(same)s 2452(user)s 2841(depends)s 3552(on)s 3810(name)s 4299(based)s 4810(authentication)s 1440 -6734(when)m 1941(inside)s 2485(what)s 2941(she)s 3275(considers)s 4095(to)s 4319(be)s 4576(the)s 4888(safe)s 5276(con\207nes)s 1440 -6974(of)m 1697(her)s 2042(internal)s 2740(netw)s 2(ork,)k 3532(she')s 11(s)k 4020(in)s 4266(for)s 4589(another)s 5277(hellride.)s 1440 -7214(An)m 3(yone)k 2131(on)s 2393(an)s 3(y)k 2740(interior)s 3387(host)s 3781(can)s 4119(almost)s 4711(tri)s 5(vially)k 5397(bypass)s 1440 -7454(name)m 1944(based)s 2470(authentication,)s 3720(causing)s 4401(this)s 4761(user')s 11(s)k 5297(hosts)s 5779(to)s 1440 -7694(belie)m 5(v)k 3(e)k 2051(that)s 2394(\205the)s 3(y\206)k 2955(are)s 3242(\205her\206)s 3717(and)s 4050(therefore)s 4812(allo)s 5(wing)k 5549(them)s 1440 -7934(to)m 1643(log)s 1946(in)s 2149(with)s 2551(her)s 2853(access)s 3407(rights)s 3908(and)s 4244(pri)s 5(viledges.)k 5221(An)s 3(y)k 5610(host)s 1440 -8174(which)m 1998(is)s 2201(allo)s 5(wed)k 2897(to)s 3123(accept)s 3701(incoming)s 4525(connections)s 5547(from)s 1440 -8414(outside)m 2087(the)s 2402(local)s 2860(netw)s 2(ork)k 3583(could)s 4098(be)s 4358(fooled)s 4939(in)s 5166(this)s 5525(same)s 1440 -8654(w)m 2(ay)k 13(,)k 1857(b)s 4(ut)k 2158(by)s 2408(an)s 2646(outside)s 3271(host.)s 240 fnt84 1440 -9342(3.)m 1740(Ho)s 2(w)k 2277(Did)s 2709(That)s 3261(Happen?)s 200 fnt82 1440 -9767(Clearly)m 13(,)k 2150(the)s 2481(abo)s 3(v)k 3(e)k 3039(acti)s 5(vities)k 3838(were)s 4312(not)s 4655(design)s 5263(goals)s 5771(of)s 1440 -10007(the)m 160 fnt82 1749 -10005(DNS)m 200 fnt82 2133 -10007(protocol)m 2863(or)s 3095(of)s 3327(the)s 160 fnt82 3636 -10005(BIND)m 200 fnt82 4091 -10007(implementation)m 5406(of)s 5638(that)s 1440 -10247(protocol.)m 2254(Let')s 11(s)k 2701(look)s 3106(at)s 3299(ho)s 5(w)k 3688(the)s 3(y)k 4078(could)s 4571(occur)s 11(.)k 200 fnt84 1440 -10788(3.1)m 1690(.)s 1840(Misdir)s 3(ected)k 2902(Destination)s 200 fnt82 1440 -11166(It)m 1627(could)s 2136(be)s 2390(as)s 2621(simple)s 3217(as)s 3448(a)s 3602(for)s 3(ged)k 4185(response)s 4947(sent)s 5333(directly)s 1440 -11406(to)m 1673(her)s 2005(resolv)s 3(er)k 11(.)k 2759(Ev)s 3(en)k 3244(after)s 3685(25)s 3963(years)s 4460(of)s 4704(e)s 3(xperience,)k 5690(the)s 1440 -11646(Internet)m 2136(still)s 2511(has)s 2854(no)s 3132(production)s 4074(routers)s 4704(which)s 5269(disallo)s 5(w)k 1440 -11886(pack)m 2(ets)k 2084(with)s 2488(impossible)s 3400(source)s 3969(addresses.)s 4880(So)s 5141(if)s 5312(you)s 5662(can)s 1440 -12126(route)m 1919(pack)s 2(ets)k 2583(to)s 2808(someone,)s 3636(you)s 4006(can)s 4352(mak)s 2(e)k 4851(those)s 5341(pack)s 2(ets)k 1440 -12366(look)m 1857(as)s 2084(though)s 2701(the)s 3(y)k 3103(came)s 3584(from)s 4033(a)s 4183(close)s 4653(and)s 5003(trusted)s 5606(host)s 1440 -12606(\211)m 1600(e)s 5(v)k 3(en)k 2028(if)s 2209(the)s 3(y)k 2609(originated)s 3476(outside)s 4111(that)s 4469(host')s 11(s)k 4993(netw)s 2(ork.)k 5804(If)s 1440 -12846(an)m 1678(attack)s 2(er)k 2354(can)s 2680(predict)s 3282(the)s 3575(time)s 3978(that)s 4326(a)s 4464(query)s 4968(will)s 5327(be)s 5565(sent,)s 1440 -13086(he)m 1699(need)s 2146(only)s 2572(\210ood)s 3054(the)s 3368(resolv)s 3(er)k 4076(with)s 4501(bogus)s 5049(replies)s 5649(and)s 1440 -13326(hope)m 1890(that)s 2250(his)s 2544(bogons)s 3183(arri)s 5(v)k 3(e)k 3700(earlier)s 4268(than)s 4673(the)s 4978(real)s 5337(answer)s 11(.)k 1440 -13566(Predicting)m 2351(the)s 160 fnt82 2687 -13564(UDP)m 200 fnt82 3098 -13566(port)m 3512(used)s 3970(by)s 4263(the)s 4599(resolv)s 3(er)k 5329(for)s 5654(an)s 3(y)k 1440 -13806(gi)m 5(v)k 3(en)k 1947(query)s 2473(might)s 3010(require)s 3645(that)s 4015(a)s 4175(no)s 3(vice)k 4775(attack)s 2(er)k 5473(spend)s 1440 -14046(se)m 5(v)k 3(eral)k 2038(minutes)s 2712(thinking)s 3421(about)s 3908(it,)s 4112(b)s 4(ut)k 4407(man)s 3(y)k 4891(attack)s 2(ers)k 5638(will)s 1440 -14286(consider)m 2164(that)s 2512(time)s 2915(well)s 3307(spent.)s 6700 -1576(This)m 7114(w)s 2(ould)k 7671(not)s 7986(ha)s 4(v)k 3(e)k 8415(w)s 2(ork)k 2(ed)k 9069(in)s 9284(our)s 9610(e)s 3(xample,)k 10391(since)s 6300 -1816(we')m 10(re)k 6820(assuming)s 7650(a)s 7816(one-w)s 2(ay)k 8578(\207re)s 5(w)k 2(all.)k 9356(Her)s 9732(resolv)s 3(er)k 10447(isn')s 3(t)k 6300 -2056(reachable)m 7158(by)s 7455(pack)s 2(ets)k 8146(from)s 8630(outside)s 9302(her)s 9653(net)s 9993(\211)s 10190(b)s 4(ut)k 10538(her)s 6300 -2296(name)m 6812(serv)s 3(er)k 7375(is.)s 7688(If)s 7901(that)s 8280(name)s 8792(serv)s 3(er)k 9355(can)s 9712(be)s 9981(corrupted,)s 6300 -2536(e)m 5(v)k 3(en)k 6804(for)s 7172(an)s 7496(instant,)s 8212(then)s 8691(an)s 9015(attack)s 2(er)k 9777(can)s 10189(redirect)s 6300 -2776(telnet)m 6825(sessions)s 7560(\(containing)s 8551(passw)s 2(ords\),)k 9578(electronic)s 10445(mail)s 6300 -3016(\(containing)m 7349(proprietary)s 8375(information\),)s 9573(or)s 9881(e)s 5(v)k 3(en)k 10391(other)s 160 fnt82 6300 -3254(DNS)m 200 fnt82 6674 -3256(queries)m 7304(\(thus)s 7758(using)s 8246(one)s 8590(name)s 9077(serv)s 3(er)k 9615(to)s 9826(help)s 10225(corrupt)s 6300 -3496(others.\))m 6990(Ev)s 3(ery)k 7501(one)s 7827(of)s 8031(those)s 8489(things)s 9014(has)s 9317(been)s 9731(seen)s 10122(in)s 10315(action)s 6300 -3736(\211)m 6450(we')s 10(re)k 6942(not)s 200 fnt83 7247 -3735(just)m 200 fnt82 7584 -3736(being)m 8077(paranoid.)s 200 fnt84 6300 -4277(3.2)m 6550(.)s 6700(Misdir)s 3(ected)k 7762(Sour)s 3(ce)k 200 fnt82 6300 -4656(On)m 6594(late)s 6930(mod)s 7285(el)s 160 fnt82 7478 -4654(BSD)m 200 fnt82 7787 -4656(-de)m 8041(ri)s 5(v)k 3(ed)k 8492(sys)s 8746(tems,)s 9221(name)s 9702(based)s 10205(au)s 10393(then)s 10736(-)s 6300 -4896(ti)m 6410(ca)s 6586(tion)s 6975(usu)s 7252(al)s 7395(ly)s 7629(tak)s 2(es)k 8114(the)s 8436(form)s 8902(of)s 9147(\207les)s 9557(con)s 9845(tain)s 10143(ing)s 10477(lists)s 6300 -5136(of)m 6551(host)s 6968(names)s 7561(or)s 7812(ad)s 8000(dress)s 8408(es,)s 8708(pos)s 8985(si)s 9117(bly)s 9457(in)s 9612(clud)s 9955(ing)s 10295(a)s 10468(user)s 6300 -5376(name)m 6769(to)s 6962(be)s 7188(matched)s 7900(ag)s 1(ainst)k 8500(the)s 8781(re)s 8935(mote)s 9371(\(\205incoming\206\))s 10470(user)s 6300 -5616(name)m 128 fnt82 6731 -5527(1)m 200 fnt82 6795 -5616(.)m 6896(A)s 7091(con)s 7379(v)s 3(en)k 7664(tion)s 8025(is)s 8208(up)s 8408(held)s 8802(where)s 9288(by)s 9539(cer)s 9781(tain)s 160 fnt82 10130 -5614(TCP)m 200 fnt82 10472 -5616(port)m 6300 -5856(num)m 6655(bers)s 128 fnt82 6986 -5767(2)m 200 fnt82 7099 -5856(are)m 7390(able)s 7770(to)s 7974(be)s 8211(bound)s 8760(only)s 9164(by)s 9413(pro)s 9679(cess)s 10009(es)s 10223(e)s 3(x)k 10408(e)s 10496(cut)s 10739(-)s 6300 -6096(ing)m 6608(with)s 7015(so-)s 7258(called)s 7785(\205super)s 8357(user\206)s 8829(pri)s 5(v)k 9145(iledges)s 128 fnt82 9708 -6007(3)m 200 fnt82 9772 -6096(.)m 9925(This)s 10332(rather)s 6300 -6336(brit)m 6576(tle)s 6849(chain)s 7355(of)s 7596(causal)s 8092(i)s 8147(ty)s 8377(per)s 8631(mits)s 9048(the)s 160 fnt82 9366 -6334(BSD)m 200 fnt84 9750 -6337(ruser)m 3(ok\(\))k 200 fnt82 10617 -6336(li)m 10727(-)s 6300 -6576(brary)m 6780(call)s 7126(to)s 7341(as)s 7506(sume)s 7986(that)s 8344(the)s 8647(re)s 8801(mote)s 9259(user)s 9650(name)s 10141(gi)s 5(v)k 10391(en)s 10639(in)s 6300 -6816(the)m 6603(data)s 6994(stream)s 7583(is)s 7775(\205authentic\206)s 8740(from)s 9187(the)s 9490(point)s 9960(of)s 10186(vie)s 5(w)k 10628(of)s 6300 -7056(the)m 6598(re)s 6752(mote)s 7205(host)s 7592(and)s 7935(its)s 8177(ad)s 8365(min)s 8675(is)s 8807(tra)s 9016(tors.)s 9469(Users)s 9976(are)s 10273(not)s 10583(al)s 10726(-)s 6300 -7296(lo)m 5(wed)k 6834(to)s 7041(claim,)s 7584(when)s 8068(the)s 3(y)k 8460(use)s 8777(the)s 200 fnt84 9072 -7297(rsh)m 200 fnt82 9400 -7296(or)m 200 fnt84 9618 -7297(rdist)m 200 fnt82 10067 -7296(or)m 200 fnt84 10285 -7297(rlogin)m 200 fnt82 6300 -7536(com)m 6643(mands,)s 7265(that)s 7615(the)s 3(y)k 8007(are)s 8301(some)s 8721(body)s 9173(the)s 3(y')k 10(re)k 9775(not)s 10082(\211)s 10234(at)s 10429(least)s 6300 -7776(on)m 6550(well)s 6942(run,)s 7308(trust)s 7661(w)s 2(or)k 7969(th)s 1(y)k 8273(mul)s 8583(tius)s 8870(er)s 9074(hosts.)s 160 fnt82 6700 -8085(BSD)m 200 fnt82 7009 -8087(')m 11(s)k 7264(security)s 8016(took)s 8494(a)s 8705(giant)s 9226(step)s 9669(forw)s 2(ard)k 10420(back)s 6300 -8327(in)m 6567(1989)s 7079(or)s 7357(so,)s 7696(when)s 8240(the)s 8595(callers)s 9224(of)s 200 fnt84 9502 -8328(ruser)m 3(ok\(\))k 200 fnt82 10406 -8327(were)m 6300 -8567(encouraged)m 7316(to)s 7569(do)s 7867(more)s 8374(than)s 8815(blindly)s 9478(assume)s 10161(that)s 10557(the)s 6300 -8807(result)m 6891(of)s 200 fnt84 7207 -8808(gethostbyaddr\(getpeer)m 3(name\()k 200 fnt82 9659 -8807(remote)m 200 fnt84 10211 -8808(\)\))m 200 fnt82 10493 -8807(w)m 2(as)k 6300 -9047(accurate.)m 7095(It)s 7250(used)s 7649(to)s 7838(be)s 8060(that)s 8392(whate)s 5(v)k 3(er)k 160 fnt82 9147 -9045(DNS)m 200 fnt82 9499 -9047(g)m 1(a)k 4(v)k 3(e)k 9901(as)s 10100(the)s 10377(name)s 6300 -9287(corresponding)m 7535(to)s 7785(the)s 8123(source)s 8737(address)s 9428(of)s 9689(a)s 9872(connection,)s 6300 -9527(w)m 2(as)k 6717(used)s 7192(directly)s 7909(as)s 8184(the)s 8537(search)s 9154(k)s 2(e)k 3(y)k 9547(when)s 10089(scanning)s 200 fnt84 6300 -9768(~/.rhosts)m 200 fnt82 7150 -9767(and)m 7560(its)s 7869(bretheren.)s 8842(After)s 9383(someone)s 10213(noticed)s 6300 -10007(that)m 6684(the)s 7013(name)s 7530(serv)s 3(er)k 8098(being)s 8627(ask)s 2(ed)k 9164(for)s 9482(this)s 9855(information)s 6300 -10247(w)m 2(as)k 6675(the)s 6986(one)s 7342(belonging)s 8208(to)s 8431(the)s 8742(connection')s 11(s)k 9816(initiator)s 8(,)k 10555(the)s 6300 -10487(con)m 8(v)k 3(ention)k 7210(changed:)s 7964(No)s 5(w)k 13(,)k 8419(after)s 8817(calling)s 200 fnt84 9393 -10488(gethostbyaddr\(\))m 200 fnt82 10754 -10487(,)m 6300 -10727(the)m 6626(result)s 7150(is)s 7365(passed)s 7978(back)s 8437(through)s 200 fnt84 9141 -10728(gethostbyname\(\))m 200 fnt82 10640 -10727(to)m 6300 -10967(see)m 6642(if)s 6852(the)s 7184(addresses)s 8034(and)s 8411(names)s 9008(all)s 9295(match.)s 9970(The)s 10369(name)s 6300 -11207(serv)m 3(er)k 6843(for)s 200 fnt84 7136 -11208(gethostbyname\(\))m 200 fnt82 8613 -11207(will)m 8983(be,)s 9282(barring)s 9918(corruption,)s 6300 -11447(authoritati)m 5(v)k 3(e)k 7346(for)s 7627(an)s 3(y)k 7961(gi)s 5(v)k 3(en)k 8445(host)s 8826(name)s 9306(in)s 200 fnt84 9510 -11448(~/.rhosts)m 200 fnt82 10287 -11447(\(et)m 10545(al.\))s 6300 -11687(Someone)m 7104(who)s 7510(can)s 7848(mak)s 2(e)k 8339(their)s 8765(address)s 9423(appear)s 10015(to)s 10232(map)s 10637(to)s 6300 -11927(one)m 6655(of)s 6888(your)s 7321(hosts)s 7797(will)s 8173(ha)s 4(v)k 3(e)k 8609(to)s 8831(tak)s 2(e)k 9227(some)s 9714(e)s 3(xtra)k 10175(steps)s 10639(to)s 6300 -12167(also)m 6670(mak)s 2(e)k 7149(your)s 7565(host)s 7947(appear)s 8527(to)s 8732(ha)s 4(v)k 3(e)k 9151(one)s 9489(of)s 9705(his)s 9987(addresses.)s 6700 -12478(\(SunOS)m 7403(put)s 7729(this)s 8087(check)s 8622(into)s 200 fnt84 9003 -12479(gethostbyaddr\(\))m 200 fnt82 10435 -12478(\211)m 10606(an)s 6300 -12718(error)m 6728(that)s 7068(will)s 7419(li)s 5(v)k 3(e)k 7751(in)s 7948(inf)s 2(amy)k 13(,)k 8589(since)s 9039(not)s 9336(e)s 5(v)k 3(ery)k 9812(caller)s 10294(of)s 10502(that)s 6300 -12958(function)m 7033(w)s 2(ants)k 7564(to)s 7788(get)s 8100(an)s 8357(\205error\206)s 8988(return)s 9532(status)s 10053(when)s 10554(the)s gsave 6300 -13574 translate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1134 0 0 0 200 240 50 LoutGraphic gsave 0 0 moveto xsize 0 lineto stroke grestore grestore 102 fnt82 0.0 0.0 0.0 setrgbcolor 6300 -13755(1)m 160 fnt82 6351 -13826(E.g.,)m 160 fnt84 6688(hosts.equi)s 1(v)k 160 fnt82 7443(,)s 160 fnt84 7523(hosts.lpd)s 160 fnt82 8128(,)s 160 fnt84 8208(~/.rhosts)s 102 fnt82 6300 -14041(2)m 160 fnt82 6351 -14112(Those)m 6781(from)s 7131(512)s 7411(to)s 7575(1023.)s 102 fnt82 6300 -14295(3)m 160 fnt82 6351 -14366(This)m 6674(con)s 6(v)k 2(ention)k 7416(is)s 7562(of)s 7735(course)s 8192(meaningless)s 9021(on)s 9221(single-user)s 9961(hosts.)s grestore pgsave restore showpage %%Page: ? 3 %%BeginPageSetup %%PageResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic /pgsave save def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1440 -1576(forw)m 2(ard)k 2150(and)s 2520(re)s 5(v)k 3(erse)k 3167(lookups)s 3881(yield)s 4361(asymmetric)s 5370(results.)s 1440 -1816(The)m 1853(proper)s 2476(place)s 2998(for)s 3333(this)s 3723(mapping)s 4524(logic)s 5025(is)s 5260(in)s 5518(those)s 1440 -2056(applications)m 2459(and)s 2805(library)s 3393(calls)s 3814(who)s 4216(intend)s 4772(to)s 4985(use)s 5308(the)s 5609(data)s 1440 -2296(for)m 1720(some)s 2188(kind)s 2591(of)s 2805(authentication)s 3980(\211)s 4128(it)s 4286(is)s 4466(not)s 4769(a)s 4905(naming)s 5551(issue)s 1440 -2536(per)m 1744(se,)s 2009(and)s 2347(does)s 2762(not)s 3067(belong)s 3660(in)s 3865(the)s 4158(resolv)s 3(er)k 11(.\))k 1840 -2847(As)m 2114(ef)s 5(fecti)k 5(v)k 3(e)k 2848(as)s 3066(that)s 3417(e)s 3(xtra)k 200 fnt84 3864 -2848(gethostbyname\(\))m 200 fnt82 5333 -2847(call)m 5672(has)s 1440 -3087(been,)m 1908(its)s 2137(goal)s 2522(w)s 2(as)k 2871(to)s 3068(k)s 2(eep)k 3484(attack)s 2(ers)k 4229(from)s 4658(just)s 4987(editing)s 5582(their)s 160 fnt82 1440 -3325(IN-ADDR.ARP)m 14(A)k 200 fnt82 2603 -3327(zones)m 3097(and)s 3426(zooming)s 4165(on)s 4406(in.)s 4702(No)s 4987(thought)s 5638(w)s 2(as)k 1440 -3567(gi)m 5(v)k 3(en)k 1949(to)s 2178(whether)s 2893(the)s 3210(name)s 3715(serv)s 3(ers)k 4348(could)s 4865(be)s 5127(corrupted.)s 1440 -3807(So)m 1724(while)s 2239(an)s 2500(attack)s 2(er)k 3199(has)s 3537(a)s 3698(little)s 4134(more)s 4616(w)s 2(ork)k 5097(to)s 5325(do)s 5598(no)s 5(w)k 1440 -4047(than)m 1853(in)s 2078(the)s 2391(Old)s 2760(Days,)s 3289(it)s 3469(is)s 3671(still)s 4038(tri)s 5(vially)k 4732(easy)s 5155(to)s 5380(pollute)s 1440 -4287(the)m 1733(caches)s 2312(of)s 2528(the)s 2821(set)s 3091(of)s 3307(serv)s 3(ers)k 3916(who)s 4310(will)s 4669(be)s 4907(ask)s 2(ed)k 5408(for)s 5690(the)s 200 fnt84 1440 -4528(gethostbyaddr\(\))m 200 fnt82 2885 -4527(and)m 200 fnt84 3257 -4528(gethostbyname\(\))m 200 fnt82 4757 -4527(answers,)m 5531(or)s 5781(to)s 1440 -4767(\210ood)m 1905(the)s 2202(resolv)s 3(ers)k 2970(with)s 3378(bogus)s 3909(responses)s 4736(at)s 4933(the)s 5230(time)s 5637(that)s 1440 -5007(the)m 3(y)k 1830(are)s 2122(predicted)s 2912(to)s 3117(be)s 3355(w)s 2(aiting)k 4000(for)s 4282(the)s 4575(answers.)s 1840 -5318(If)m 2035(an)s 2286(attack)s 2(er)k 2975(can)s 3314(reach)s 3807(the)s 4113(victim')s 11(s)k 4816(host,)s 5261(the)s 3(y)k 5664(can)s 1440 -5558(probably)m 2223(mak)s 2(e)k 2726(their)s 3164(host)s 3570(name)s 4075(seem)s 4557(to)s 4786(be)s 5048(almost)s 5652(an)s 3(y)k 1440 -5798(arbitrary)m 2210(string)s 2749(when)s 3267(vie)s 5(wed)k 3923(by)s 4209(the)s 4538(victim')s 11(s)k 200 fnt84 5264 -5799(rlogind)m 200 fnt82 5884 -5798(.)m 1440 -6038(And,)m 1869(if)s 2025(the)s 3(y)k 2400(can)s 2711(also)s 3066(break)s 3543(\205super)s 4097(user\206)s 4551(on)s 4786(the)s 5064(source)s 5618(host)s 1440 -6278(\(or)m 1727(if)s 1903(that)s 2256(host)s 2643(is)s 2830(their)s 3249(o)s 5(wn)k 3643(of\207ce)s 4151(w)s 2(orkstation\),)k 5260(the)s 3(y)k 5655(can)s 1440 -6518(mak)m 2(e)k 1930(the)s 2234(victim)s 2803(see)s 3117(an)s 3(y)k 3463(arbitrary)s 4208(remote)s 4821(user)s 5213(name.)s 5805(If)s 1440 -6758(this)m 1777(attack)s 2(er)k 2453(kno)s 5(ws)k 3019(an)s 3(y)k 3354(of)s 3570(the)s 3863(contents)s 4576(of)s 4792(your)s 200 fnt84 5208 -6759(~/.rhosts)m 200 fnt82 1440 -6998(\207les)m 1817(or)s 2029(your)s 2441(~B)s 2682(hosts.equi)s 5(v)k 3625(\207le)s 3925(\211)s 4071(and)s 4405(these)s 4859(are)s 5147(eminently)s 1440 -7238(guessable)m 2263(\211)s 2413(then)s 2806(the)s 3(y)k 3196(are)s 200 fnt83 3488 -7237(in)m 200 fnt82 3643 -7238(.)m 240 fnt84 1440 -7926(4.)m 1740(Pr)s 4(otocol)k 2659(V)s 8(iew)k 3229(of)s 3488(W)s 15(eaknesses)k 200 fnt82 1440 -8306(One)m 1869(w)s 2(ay)k 2296(of)s 2559(looking)s 3266(at)s 3506(these)s 4011(weaknesses)s 5035(is)s 5264(from)s 5748(an)s 1440 -8546(operational)m 2461(point)s 2997(of)s 3289(vie)s 5(w)k 13(,)k 3834(which)s 4447(gi)s 5(v)k 3(en)k 5008(the)s 5377(current)s 1440 -8786(state)m 1883(of)s 2129(the)s 2452(art,)s 2791(tells)s 3201(us:)s 200 fnt83 3513 -8785(name)m 4025(based)s 4570(authentication)s 5801(is)s 1440 -9025(inher)m 7(ently)k 2303(insecur)s 7(e)k 200 fnt82 2969 -9026(.)m 3133(Sessions)s 3882(\(whether)s 160 fnt82 4653 -9024(TELNET)m 200 fnt82 5253 -9026(,)m 160 fnt82 5367 -9024(NFS)m 200 fnt82 5658 -9026(,)m 5772(or)s 1440 -9266(whate)m 5(v)k 3(er\))k 2279(should)s 2863(require)s 3478(something)s 4360(stronger)s 5064(than)s 5459(trying)s 1440 -9506(to)m 1645(determine)s 2490(a)s 2628(host')s 11(s)k 3142(name)s 3623(and)s 3961(and)s 4299(then)s 4692(looking)s 5352(for)s 5634(that)s 1440 -9746(name)m 1923(in)s 2130(some)s 2602(statically)s 3370(con\207gured)s 4275(list.)s 4619(\()s 4685([)s 4751(RFC1510)s 5528(])s 5646(and)s 1440 -9986([)m 1506(RFC1760)s 2283(])s 2399(are)s 2691(each)s 3105(cause)s 3596(for)s 3878(optimism.\))s 1840 -10297(From)m 2307(the)s 2585(bottom,)s 3235(though,)s 3875(these)s 4318(weaknesses)s 5280(all)s 5513(come)s 1440 -10537(with)m 1875(particular)s 2717(sets)s 3095(of)s 3342(details)s 3941(and)s 4310(can)s 4667(be)s 4936(described)s 5779(in)s 1440 -10777(terms)m 1960(of)s 160 fnt82 2205 -10775(DNS)m 200 fnt82 2602 -10777(protocol)m 3345(elements.)s 4230(As)s 4530(implementors)s 5703(we)s 1440 -11017(are)m 1728(more)s 2183(interested)s 3001(in)s 3202(this)s 3535(vie)s 5(w)k 3963(than)s 4352(in)s 4553(the)s 4842(more)s 5297(political)s 1440 -11257(questions)m 2225(of)s 2424(Global)s 2999(Internet)s 3650(Authentication.)s 4966(So)s 5210(let')s 11(s)k 5573(ha)s 4(v)k 3(e)k 1440 -11497(a)m 1595(look)s 2017(at)s 2227(the)s 2537(pack)s 2(ets,)k 3248(shall)s 3690(we?)s 4127(After)s 4613(that)s 4978(we')s 2(ll)k 5451(tak)s 2(e)k 5847(a)s 1440 -11737(look)m 1845(at)s 2038(the)s 2331(w)s 2(ays)k 2788(the)s 3(y)k 3178(can)s 3504(be)s 3742(perv)s 3(erted.)k 1840 -12048(W)m 16(e)k 2161(do)s 2422(not)s 2738(in)s 2893(tend)s 3297(to)s 3513(present)s 4148(an)s 4397(e)s 3(x)k 4582(haus)s 4947(ti)s 5(v)k 3(e)k 5298(de)s 5486(scrip)s 5872(-)s 1440 -12288(tion)m 1794(of)s 160 fnt82 2004 -12286(DNS)m 200 fnt82 2366 -12288(\211)m 2510([)s 2576(RFC1034)s 3353(])s 3463(and)s 3795([)s 3861(RFC1035)s 4638(])s 4748(al)s 4891(ready)s 5377(\207ll)s 5642(that)s 1440 -12528(need.)m 1963(Our)s 2320(goal)s 2710(in)s 2912(this)s 3246(sec)s 3499(tion)s 3856(is)s 4035(to)s 4237(present)s 4858(enough)s 5493(in)s 5648(for)s 5880(-)s 1440 -12768(ma)m 1683(tion)s 2030(about)s 160 fnt82 2510 -12766(DNS)m 200 fnt82 2865 -12768(that)m 3200(some)s 3620(one)s 3945(un)s 4145(f)s 2(a)k 4297(mil)s 4562(iar)s 4808(with)s 5199(its)s 5423(de)s 5611(tails)s 1440 -13008(can)m 1795(still)s 2171(un)s 2371(der)s 2625(stand)s 3124(the)s 3446(se)s 3611(cu)s 3799(ri)s 3920(ty)s 4154(rami\207cations)s 5271(of)s 5516(some)s 1440 -13248(of)m 160 fnt82 1691 -13246(DNS)m 200 fnt82 2009 -13248(')m 11(s)k 2226(de)s 2414(sign)s 2831(choic)s 3262(es.)s 3612(If)s 3829(this)s 4201(re)s 4355(port)s 4761(dis)s 4993(agrees)s 5585(with)s 1440 -13488([)m 1506(RFC1034)s 2283(])s 2405(or)s 2627([)s 2693(RFC1035)s 3470(])s 3592(in)s 3803(an)s 3(y)k 4144(de)s 4332(tail,)s 4691(it)s 4857(is)s 5045(most)s 5488(lik)s 2(e)k 5784(ly)s 1440 -13728(that)m 1788(the)s 2081(re)s 2235(port)s 2606(is)s 2788(wrong.)s 200 fnt84 6300 -1577(4.1)m 6550(.)s 160 fnt84 6700 -1574(DNS)m 200 fnt84 7068 -1577(Datagram)m 7982(F)s 5(ormats)k 160 fnt82 6300 -1992(DNS)m 200 fnt82 6664 -1994(queries)m 7284(and)s 7618(responses)s 8437(use)s 8748(a)s 8882(common)s 9626(format,)s 10252(though)s 6300 -2234(not)m 6651(all)s 6945(protocol)s 7705(elements)s 8507(are)s 8845(used)s 9306(all)s 9600(the)s 9939(time.)s 10488(The)s 6300 -2474(simplest)m 7047(case,)s 7523(described)s 8370(here,)s 8847(uses)s 160 fnt82 9274 -2472(IP/UDP)m 200 fnt82 9862 -2474(where)m 10433(each)s 6300 -2714(datagram)m 7085(contains)s 7793(one)s 160 fnt82 8126 -2712(DNS)m 200 fnt82 8489 -2714(query)m 8988(or)s 9199(response.)s 160 fnt82 10040 -2712(DNS)m 200 fnt82 10358 -2714(')m 11(s)k 10535(use)s 6300 -2954(of)m 160 fnt82 6520 -2952(IP/TCP)m 200 fnt82 7050 -2954(is)m 7236(be)s 3(yond)k 7875(the)s 8172(scope)s 8679(of)s 8899(this)s 9240(report)s 9769(other)s 10232(than)s 10629(as)s 6300 -3194(it)m 6460(af)s 5(fects)k 7033(zone)s 7459(transfers,)s 8242(which)s 8779(we)s 9061(will)s 9420(discuss)s 10044(shortly)s 13(.)k 200 fnt84 6300 -3506(Header)m 7064(Section)s 200 fnt82 7683 -3505(:)m 7872(Describes)s 8789(the)s 9166(other)s 9709(sections,)s 10533(has)s 6700 -3745(\210ags)m 7207(including)s 160 fnt82 8091 -3743(RD)m 200 fnt82 8443 -3745(\(recursion)m 9380(desired\))s 10151(and)s 160 fnt82 10570 -3743(AA)m 200 fnt82 6700 -3985(\(authoritati)m 5(v)k 3(e)k 7831(answer\),)s 8578(and)s 8934(most)s 9389(important)s 10231(for)s 10531(our)s 6700 -4225(discussion,)m 7629(has)s 7944(a)s 8082(16)s 8332(bit)s 8592(\205query)s 160 fnt82 9184 -4223(ID)m 200 fnt82 9352 -4225(.)m 14(\206)k 200 fnt84 6300 -4537(Query)m 6884(Section)s 200 fnt82 7503 -4536(:)m 7600(Contains)s 8350(the)s 8635(name,)s 9158(class,)s 9635(and)s 9965(type)s 10350(of)s 10558(the)s 6700 -4776(resource)m 7406(record)s 7947(set)s 8200(\(\205RRset\206\))s 9027(being)s 9503(queried)s 10133(for)s 11(.)k 160 fnt82 10487 -4774(DNS)m 200 fnt82 6700 -5016(permits)m 7353(multiple)s 8073(queries)s 8704(in)s 8916(this)s 9260(section)s 9880(b)s 4(ut)k 10188(this)s 10532(has)s 6700 -5256(ne)m 5(v)k 3(er)k 7184(been)s 7610(tried)s 8024(and)s 8362(is)s 8544(not)s 8849(well)s 9241(speci\207ed.)s 200 fnt84 6300 -5568(Answer)m 7041(Section)s 200 fnt82 7660 -5567(:)m 7804(Al)s 2(w)k 2(ays)k 8497(empty)s 9084(in)s 9328(queries.)s 10091(Contains)s 6700 -5807(the)m 7003(RRset)s 7549(matching)s 8350(the)s 8653(query)s 13(,)k 9204(or)s 9430(is)s 9622(empty)s 10180(if)s 10361(name)s 6700 -6047(doesn')m 3(t)k 7349(e)s 3(xist,)k 7837(if)s 8024(no)s 8290(data)s 8687(matched)s 9427(the)s 9736(query)s 13(,)k 10293(or)s 10525(if)s 10712(a)s 6700 -6287(nonrecursi)m 5(v)k 3(e)k 7770(query)s 8274(results)s 8842(in)s 9047(a)s 9185(referral.)s 200 fnt84 6300 -6599(A)m 10(uthority)k 7210(Section)s 200 fnt82 7829 -6598(:)m 7963(Al)s 2(w)k 2(ays)k 8646(empty)s 9223(in)s 9457(queries.)s 10210(Can)s 10610(be)s 6700 -6838(empty)m 7282(in)s 7521(responses.)s 8478(If)s 8694(nonempty)s 13(,)k 9613(it)s 9807(contains)s 10554(the)s 160 fnt82 6700 -7076(NS)m 200 fnt82 6992 -7078(and)m 160 fnt82 7369 -7076(SO)m 5(A)k 7771(RR)s 200 fnt82 7983 -7078(s)m 8149(for)s 8470(the)s 8802(enclosing)s 9654(zone.)s 10219(This)s 10662(is)s 6700 -7318(sometimes)m 7600(called)s 8124(\205referral)s 8845(data.)s 14(\206)k 200 fnt84 6300 -7630(Additional)m 7245(Data)s 7692(Section)s 200 fnt82 8311 -7629(:)m 8403(Al)s 2(w)k 2(ays)k 9044(empty)s 9579(in)s 9771(queries.)s 10482(Can)s 6700 -7869(be)m 6958(empty)s 7526(in)s 7751(responses.)s 8694(If)s 8896(the)s 9209(answer)s 9842(or)s 10078(authority)s 6700 -8109(section)m 7326(contains)s 8052(an)s 3(y)k 160 fnt82 8400 -8107(RR)m 200 fnt82 8612 -8109(s)m 8752(whose)s 9324(data)s 9718(\207elds)s 10212(contain)s 6700 -8349(RRnames,)m 7609(the)s 7937(RRsets)s 8585(for)s 8902(those)s 9407(RRnames)s 10266(appear)s 6700 -8589(here.)m 200 fnt84 6300 -9089(4.2)m 6550(.)s 6700(Ser)s 2(v)k 2(ers)k 7386(and)s 7758(Resolv)s 2(ers)k 200 fnt82 6300 -9468(The)m 6687(client)s 7205(in)s 160 fnt82 7437 -9466(DNS)m 200 fnt82 7832 -9468(is)m 8041(called)s 8592(a)s 8757(\205resolv)s 3(er)k 11(.)k 14(\206)k 9722(The)s 10109(serv)s 3(er)k 10668(is)s 6300 -9708(called,)m 6865(appropriately)s 7967(enough,)s 8646(a)s 8775(\205name)s 9335(serv)s 3(er)k 11(.)k 14(\206)k 10021(Resolv)s 3(ers)k 6300 -9948(ha)m 4(v)k 3(e)k 6714(some)s 7179(static)s 7642(con\207guration)s 8750(information,)s 9785(consisting)s 10637(of)s 6300 -10188(a)m 6427(domain)s 7064(\205search)s 7698(list\206)s 8067(and)s 8394(a)s 8521(list)s 8802(of)s 9007(name)s 9477(serv)s 3(er)k 9998(addresses.)s 6300 -10428(Theoretically)m 13(,)k 7471(a)s 7633(resolv)s 3(er)k 8344(can)s 8694(also)s 9088(be)s 9350(con\207gured)s 10277(with)s 10705(a)s 6300 -10668(static)m 6759(map)s 7143(of)s 7350(domains)s 8066(to)s 8262(name)s 8734(serv)s 3(er)k 9257(addresses,)s 10109(allo)s 5(wing)k 6300 -10908(queries)m 6969(to)s 7219(be)s 7502(forw)s 2(arded)k 8413(directly)s 9115(to)s 9365(appropriate)s 10366(name)s 6300 -11148(serv)m 3(ers)k 6941(for)s 7255(some)s 7757(set)s 8059(of)s 8307(locally)s 8930(kno)s 5(wn)k 9551(domains.)s 160 fnt82 10408 -11146(BIND)m 200 fnt82 6300 -11388(does)m 6725(not)s 7040(implement)s 7951(this)s 8298(last)s 8633(part)s 9002(yet.)s 9355(The)s 9725(resolv)s 3(er')k 11(s)k 10554(list)s 6300 -11628(of)m 6526(name)s 7017(serv)s 3(er)k 7559(addresses)s 8380(had)s 8728(better)s 9240(include)s 9886(at)s 10089(least)s 10512(one)s 6300 -11868(recursi)m 5(v)k 3(e)k 7069(name)s 7549(serv)s 3(er)k 8(,)k 8122(or)s 8337(the)s 160 fnt82 8629 -11866(DNS)m 200 fnt82 8996 -11868(name)m 9476(space)s 9966(is)s 10147(going)s 10651(to)s 6300 -12108(look)m 6705(pretty)s 7219(small.)s 200 fnt84 6300 -12649(4.3)m 6550(.)s 6700(Recursion)s 200 fnt82 6300 -13027(T)m 16(o)k 6557(\205recurse\206)s 7357(on)s 7608(a)s 7747(query)s 8252(means)s 8811(that)s 9160(when)s 9643(a)s 9782(query)s 10287(comes)s 6300 -13267(in)m 6507(for)s 6791(an)s 7031(RRset)s 7569(not)s 7876(kno)s 5(wn)k 8467(to)s 8674(the)s 8969(serv)s 3(er)k 9503(recei)s 5(ving)k 10290(it,)s 10502(that)s 6300 -13507(serv)m 3(er)k 6829(will)s 7185(forw)s 2(ard)k 7860(it)s 8017(to)s 8219(some)s 8686(name)s 9164(serv)s 3(er)k 9693(more)s 10149(lik)s 2(ely)k 10647(to)s 6300 -13747(kno)m 5(w)k 6802(the)s 7108(answer)s 11(.)k 7823(In)s 8052(some)s 8535(cases,)s 9066(the)s 9372(forw)s 2(arding)k 10318(serv)s 3(er)k 6300 -13987(will)m 6678(kno)s 5(w)k 7186(the)s 7498(name)s 7998(serv)s 3(er)k 8549(list)s 8860(for)s 9161(the)s 9473(e)s 3(xact)k 9958(domain)s 10625(or)s 6300 -14227(parent)m 6862(domain)s 7525(of)s 7756(the)s 8064(query)s 13(.)k 8670(More)s 9166(often,)s 9690(a)s 9843(grandparent)s grestore pgsave restore showpage %%Page: ? 4 %%BeginPageSetup %%PageResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic /pgsave save def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1440 -1576(domain')m 11(s)k 2254(serv)s 3(ers)k 2897(are)s 3223(kno)s 5(wn,)k 3896(or)s 4146(no)s 4430(serv)s 3(ers)k 5073(are)s 5399(kno)s 5(wn)k 1440 -1816(and)m 1777(the)s 2069(query)s 2572(is)s 2753(sent)s 3122(all)s 3369(the)s 3661(w)s 2(ay)k 4040(to)s 4244(the)s 4536(root)s 4906(name)s 5386(serv)s 3(ers)k 1440 -2056(\(which)m 2041(are)s 2331(co-operated)s 3318(by)s 3566(the)s 3857(InterNIC)s 4623(and)s 4959(a)s 5095(w)s 2(orldwide)k 1440 -2296(cadre)m 1910(of)s 2116(v)s 4(olunteers.\))k 3097(There)s 3601(is)s 3773(a)s 3901(\210ag)s 4240(in)s 4435(the)s 4718(query)s 5212(called)s 160 fnt82 5726 -2294(RD)m 200 fnt82 1440 -2536(which,)m 2037(if)s 2218(set,)s 2548(speci\207es)s 3292(that)s 3650(recursion)s 4450(is)s 4642(desired;)s 5331(if)s 5512(clear)s 8(,)k 1440 -2776(a)m 1592(name)s 2087(serv)s 3(er)k 2633(will)s 3006(answer)s 3633(queries)s 4271(for)s 4567(unkno)s 5(wn)k 5370(RRsets)s 1440 -3016(with)m 1838(an)s 2070(appropriate)s 3020(error)s 3450(\(\205name)s 4079(unkno)s 5(wn\206)k 4950(or)s 5160(\205no)s 5492(data,)s 14(\206)k 1440 -3256(depending.\))m 1840 -3567(Sending)m 2561(nonrecursi)s 5(v)k 3(e)k 3648(queries)s 4289(is)s 4488(a)s 4643(\207ne)s 5009(w)s 2(ay)k 5406(to)s 5628(\207nd)s 1440 -3807(out)m 1748(what)s 2188(a)s 2329(name)s 2813(serv)s 3(er)k 3348(already)s 3986(kno)s 5(ws,)k 4605(since,)s 5116(otherwise,)s 1440 -4047(you)m 1790(will)s 2149(get)s 2442(an)s 2680(answer)s 3293(e)s 5(v)k 3(en)k 3711(if)s 3882(the)s 4175(name)s 4656(serv)s 3(er)k 5188(had)s 5526(to)s 5731(go)s 1440 -4287(searching)m 2252(for)s 2534(it)s 2694(at)s 2887(the)s 3180(time)s 3583(of)s 3799(your)s 4215(query)s 13(.)k 200 fnt84 1440 -4828(4.4)m 1690(.)s 1840(Referrals)s 200 fnt82 1440 -5207(If)m 1615(a)s 1746(name)s 2220(serv)s 3(er)k 2745(recei)s 5(v)k 3(es)k 3430(a)s 3561(query)s 4058(for)s 4333(a)s 4464(<)s 200 fnt83 4576 -5206(name)m 200 fnt82 5008 -5207(,)m 200 fnt83 5058 -5206(class)m 200 fnt82 5455 -5207(,)m 200 fnt83 5505 -5206(type)m 200 fnt82 5836 -5207(>)m 1440 -5447(tuple)m 1937(that)s 2334(it)s 2543(kno)s 5(ws)k 3158(it)s 3367(has)s 3731(dele)s 3(g)k 1(ated,)k 4638(it)s 4847(answers)s 5586(with)s 1440 -5687(what')m 11(s)k 2052(called)s 2619(a)s 2800(\205referral.)s 14(\206)k 3688(A)s 3925(referral)s 4601(response)s 5390(has)s 5748(an)s 1440 -5927(empty)m 1995(answer)s 2615(section)s 3235(b)s 4(ut)k 3543(a)s 3688(nonempty)s 4543(authority)s 5319(section;)s 1440 -6167(the)m 1755(intent)s 2280(of)s 2518(this)s 2877(message)s 3622(is)s 3826(to)s 4053(tell)s 4378(another)s 5047(serv)s 3(er)k 5601(\205the)s 1440 -6407(name)m 1934(you)s 2297(ask)s 2(ed)k 2811(for)s 3106(e)s 3(xists,)k 3668(b)s 4(ut)k 3982(I)s 4111(don')s 3(t)k 4592(ha)s 4(v)k 3(e)k 5024(the)s 5330(answer)s 8(,)k 1440 -6647(go)m 1726(try)s 2033(these)s 2527(other)s 3022(serv)s 3(ers.)k 14(\206)k 3791(Bogus)s 4387(referrals)s 5133(are)s 5461(a)s 5635(\207ne)s 1440 -6887(w)m 2(ay)k 1832(to)s 2049(pollute)s 2664(a)s 2814(cache)s 3328(indirectly)s 4152(\211)s 4314(if)s 4497(you)s 4859(can)s 5197(snoop)s 5736(on)s 1440 -7127(a)m 1609(forw)s 2(arded)k 2506(query)s 3041(and)s 3410(then)s 3834(inject)s 4356(a)s 4525(referral)s 5189(response,)s 1440 -7367(you)m 1809(can)s 2154(mak)s 2(e)k 2652(the)s 2964(forw)s 2(arding)k 3916(serv)s 3(er)k 4467(ef)s 5(fecti)k 5(v)k 3(ely)k 5372(belie)s 5(v)k 3(e)k 1440 -7607(that)m 200 fnt83 1795 -7606(you)m 200 fnt82 2140 -7607(are)m 2439(the)s 2739(dele)s 3(g)k 1(ated)k 3554(serv)s 3(er)k 4093(for)s 4382(an)s 4627(entire)s 5136(subtree)s 5767(of)s 1440 -7847(the)m 160 fnt82 1742 -7845(DNS)m 200 fnt82 2119 -7847(name)m 2609(space.)s 3209(This)s 3622(is)s 3813(actually)s 4501(the)s 4803(easiest)s 5390(w)s 2(ay)k 5779(to)s 1440 -8087(pollute)m 2057(a)s 2209(cache)s 2725(since)s 3197(there')s 11(s)k 3790(no)s 4054(guessing)s 4815(in)s 8(v)k 4(olv)k 3(ed:)k 5617(Y)s 22(ou)k 1440 -8327(kno)m 5(w)k 1938(the)s 2240(source)s 2818(address,)s 3523(source)s 160 fnt82 4101 -8325(UDP)m 200 fnt82 4478 -8327(port,)m 4908(and)s 5255(query)s 160 fnt82 5768 -8325(ID)m 200 fnt82 1440 -8567(by)m 1680(inspection.)s 2638(Y)s 22(ou)k 3000(e)s 5(v)k 3(en)k 3408(kno)s 5(w)k 3887(the)s 4170(query)s 4664(name.)s 5235(The)s 5585(only)s 1440 -8807(trick)m 1854(is)s 2036(in)s 2241(breaking)s 2988(into)s 3348(a)s 3486(host)s 3868(on)s 4118(a)s 4256(netw)s 2(ork)k 4957(backbone)s 5771(so)s 1440 -9047(that)m 1795(you)s 2152(can)s 2485(actually)s 3171(see)s 3481(the)s 3781(queries)s 4412(being)s 4912(forw)s 2(arded)k 5785(to)s 1440 -9287(the)m 1733(root)s 2104(serv)s 3(ers.)k 2763(This)s 3167(has)s 3482(been)s 3908(done)s 128 fnt82 4296 -9198(1)m 200 fnt82 4360 -9287(,)m 4460(b)s 4(ut)k 4761(not)s 5066(often.)s 200 fnt84 1440 -9813(4.5)m 1690(.)s 1840(A)s 10(uthority:)k 2787(Masters)s 3521(and)s 3893(Sla)s 5(v)k 2(es)k 200 fnt82 1440 -10230(T)m 16(o)k 1720(be)s 1982(\205authoritati)s 5(v)k 3(e\206)k 3229(means)s 3811(that)s 4183(a)s 4345(name)s 4850(serv)s 3(er)k 5406(has)s 5745(an)s 1440 -10470(entire)m 1955(\205zone\206)s 2570(loaded,)s 3214(either)s 3729(via)s 4035(a)s 4186(\205master)s 4866(\207le\206)s 5271(that)s 5632(w)s 2(as)k 1440 -10710(created)m 2069(by)s 2325(the)s 2624(name)s 3111(serv)s 3(er)k 3649(administrator)s 8(,)k 4807(or)s 5029(via)s 5328(a)s 5472(\205zone)s 1440 -10950(transfer)m 8(,)k 14(\206)k 2196(which)s 2717(is)s 2883(a)s 160 fnt82 3005 -10948(TCP)m 200 fnt82 3330 -10950(session)m 3938(with)s 4326(another)s 4957(name)s 5422(serv)s 3(er)k 11(.)k 1440 -11190(The)m 1806(former)s 2403(kind)s 2814(of)s 3036(serv)s 3(er)k 3574(is)s 3762(called)s 4292(the)s 4591(\205master\206)s 5352(and)s 5696(the)s 1440 -11430(latter)m 1890(is)s 2065(a)s 2196(\205sla)s 4(v)k 3(e.)k 14(\206)k 2852(Sla)s 4(v)k 3(es)k 3407(generally)s 4190(do)s 4433(their)s 4840(zone)s 5259(transfers)s 1440 -11670(from)m 1891(the)s 2198(master)s 8(,)k 2833(b)s 4(ut)k 3148(sometimes)s 4062(\207re)s 5(w)k 2(alls)k 4803(are)s 5109(interposed)s 1440 -11910(and)m 1797(it)s 1976(becomes)s 2741(necessary)s 3582(to)s 3806(ha)s 4(v)k 3(e)k 4244(sla)s 4(v)k 3(es)k 4791(pull)s 5170(their)s 5603(data)s 1440 -12150(from)m 1884(other)s 2350(sla)s 4(v)k 3(es,)k 2935(which)s 3479(are)s 3778(themselv)s 3(es)k 4715(stationed)s 5490(at)s 5690(the)s 1440 -12390(border)m 8(,)k 2052(perhaps)s 2721(e)s 5(v)k 3(en)k 3139(on)s 3389(the)s 3682(\207re)s 5(w)k 2(all)k 4332(itself.)s 1840 -12701(Masters)m 2570(and)s 2960(sla)s 4(v)k 3(es)k 3540(will)s 3951(set)s 4273(the)s 160 fnt82 4618 -12699(AA)m 200 fnt82 4950 -12701(\210ag)m 5351(on)s 5653(an)s 3(y)k 1440 -12941(response)m 2234(whose)s 2841(answer)s 3502(section)s 4163(contains)s 4924(only)s 5377(RRsets)s 1440 -13181(from)m 1884(authoriti)s 5(v)k 3(e)k 2795(zones.)s 3405(The)s 160 fnt82 3772 -13179(AA)m 200 fnt82 4059 -13181(\210ag)m 4415(will)s 4781(be)s 5026(clear)s 5468(if)s 5646(an)s 3(y)k 1440 -13421(RRset)m 1985(in)s 2199(the)s 2501(answer)s 3123(section)s 3745(came)s 4223(from)s 4669(the)s 4971(the)s 5273(\205cache,)s 14(\206)k gsave 1440 -14114 translate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1134 0 0 0 200 240 50 LoutGraphic gsave 0 0 moveto xsize 0 lineto stroke grestore grestore 102 fnt82 0.0 0.0 0.0 setrgbcolor 1440 -14295(1)m 160 fnt82 1491 -14366(No,)m 1766(we')s 8(re)k 2161(not)s 2405(going)s 2809(to)s 2973(name)s 3359(names.)s 200 fnt82 6300 -1576(which)m 6837(is)s 7019(what)s 7456(we)s 7738(call)s 8074(the)s 8367(portion)s 8993(of)s 9209(the)s 160 fnt82 9502 -1574(DNS)m 200 fnt82 9870 -1576(name)m 10351(space)s 6300 -1816(that)m 6669(is)s 6872(outside)s 7518(all)s 7787(of)s 8024(a)s 8183(serv)s 3(er')k 11(s)k 8868(zones)s 9392(of)s 9629(authority)s 13(.)k 10506(If)s 10709(a)s 6300 -2056(serv)m 3(er)k 6846(has)s 7175(no)s 7439(zones)s 7956(of)s 8186(authority)s 13(,)k 9006(then)s 9413(all)s 9675(of)s 9905(its)s 10156(answers)s 6300 -2296(will)m 6668(be)s 6915(nonauthoritati)s 5(v)k 3(e)k 8271(since)s 8738(all)s 8995(it)s 9164(has)s 9488(is)s 9679(a)s 9826(cache.)s 10437(This)s 6300 -2536(kind)m 6725(of)s 6961(serv)s 3(er)k 7513(is)s 7715(sometimes)s 8635(called)s 9179(a)s 9337(\205caching)s 10114(only\206)s 10627(or)s 6300 -2776(\205forw)m 2(arding\206)k 7409(serv)s 3(er)k 11(.)k 200 fnt84 6300 -3317(4.6)m 6550(.)s 6700(F)s 5(orwarding)k 7764(-vs-)s 8123(Recursion)s 200 fnt82 6300 -3734(When)m 6834(a)s 6980(name)s 7469(serv)s 3(er)k 8009(recei)s 5(v)k 3(es)k 8709(a)s 8855(query)s 9367(for)s 9657(data)s 10046(it)s 10214(doesn')s 3(t)k 6300 -3974(ha)m 4(v)k 3(e,)k 6792(it)s 6975(can)s 7324(either)s 7849(send)s 8287(back)s 8736(an)s 8997(error)s 9456(response)s 10225(\(if)s 10485(it)s 10668(is)s 6300 -4214(authoritati)m 5(v)k 3(e)k 7379(for)s 7693(the)s 8018(name')s 11(s)k 8663(zone,)s 9171(it)s 9363(kno)s 5(ws)k 9961(that)s 10341(either)s 6300 -4454(the)m 6637(name)s 7162(or)s 7422(data)s 7847(doesn')s 3(t)k 8524(e)s 3(xist\),)k 9106(send)s 9565(back)s 10035(a)s 10217(referral)s 6300 -4694(\(if)m 6563(running)s 7260(in)s 7491(\205nonrecursi)s 5(v)k 3(e)k 8675(mode\206)s 9282(as)s 9523(the)s 9842(root)s 10239(serv)s 3(ers)k 6300 -4934(all)m 6566(do,)s 6884(or)s 7118(if)s 7307(the)s 160 fnt82 7618 -4932(RD)m 200 fnt82 7907 -4934(\210ag)m 8274(is)s 8474(clear)s 8927(in)s 9150(the)s 9461(query\),)s 10099(or)s 10333(it)s 10511(can)s 6300 -5174(forw)m 2(ard)k 6970(the)s 7255(query)s 13(.)k 7838(This)s 8234(last)s 8551(possibility)s 9422(is)s 9596(of)s 9804(interest)s 10430(to)s 10627(us)s 6300 -5414(in)m 6508(our)s 6827(security)s 7509(study)s 13(,)k 8031(because)s 8713(of)s 8932(what)s 9372(will)s 9734(happen)s 10363(when)s 6300 -5654(some)m 6781(response)s 7538(\207nally)s 8108(comes)s 8677(back.)s 9214(F)s 3(orw)k 2(arding)k 10200(is)s 10393(not)s 10709(a)s 6300 -5894(three-party)m 7239(transaction)s 8178(\211)s 8345(a)s 8500(forw)s 2(arded)k 9383(query)s 9904(results)s 10489(in)s 10711(a)s 6300 -6134(response)m 7068(to)s 7295(the)s 7610(forw)s 2(arder)k 8464(who)s 8880(must)s 9339(then)s 9754(complete)s 10555(the)s 6300 -6374(original)m 6984(transaction)s 7921(by)s 8186(forw)s 2(arding)k 9134(the)s 9442(response)s 10203(back)s 10644(to)s 6300 -6614(the)m 6593(originator)s 11(.)k 160 fnt82 6700 -6923(BIND)m 200 fnt82 7139 -6925(tak)m 2(es)k 7595(its)s 7832(forw)s 2(arding)k 8765(duties)s 9290(one)s 9628(step)s 9998(further)s 8(,)k 10631(as)s 6300 -7165(an)m 6555(optimization)s 7628(attempt:)s 8346(It)s 8534(caches)s 9130(all)s 9395(the)s 9705(RRsets)s 10335(in)s 10557(the)s 6300 -7405(forw)m 2(arded)k 7190(response.)s 8060(This)s 8488(promiscuity)s 9513(is)s 9719(the)s 10036(source)s 10629(of)s 6300 -7645(most)m 6738(of)s 160 fnt82 6955 -7643(BIND)m 200 fnt82 7344 -7645(')m 11(s)k 7527(bad)s 7866(reputation)s 8724(in)s 8930(both)s 9336(the)s 9630(operations)s 10510(and)s 6300 -7885(the)m 6609(security)s 7304(\207elds.)s 7901(Other)s 8420(serv)s 3(ers)k 9045(are)s 9353(free)s 9727(to)s 9948(put)s 10269(almost)s 6300 -8125(an)m 3(ything)k 7062(into)s 7439(the)s 7749(response,)s 8562(e)s 5(v)k 3(en)k 8997(if)s 9185(it)s 9362(has)s 9694(nothing)s 10371(to)s 10593(do)s 6300 -8365(with)m 6687(the)s 6963(query)s 13(.)k 7537(As)s 7791(sho)s 5(wn)k 8340(in)s 8528([)s 8594(Bel95a)s 9158(])s 9224(,)s 9307(this)s 9627(has)s 9925(disasterous)s 6300 -8605(ef)m 5(fects)k 6873(on)s 7123(security)s 13(.)k 6700 -8916(It)m 6886(is)s 7083(w)s 2(orth)k 7611(noting)s 8186(that)s 8549(the)s 8857(\207rst)s 9231(query)s 9750(handled)s 10446(by)s 10711(a)s 6300 -9156(forw)m 2(arding)k 7255(or)s 7493(recursi)s 5(v)k 3(e)k 8285(name)s 8788(serv)s 3(er)k 9342(for)s 9646(a)s 9806(gi)s 5(v)k 3(en)k 10313(RRset)s 6300 -9396(is)m 6511(lik)s 2(ely)k 7041(to)s 7275(result,)s 7845(ultimately)s 13(,)k 8767(in)s 9001(it)s 9190(forw)s 2(arding)k 10152(back)s 10607(an)s 6300 -9636(answer)m 6958(obtained)s 7739(from)s 8221(an)s 8504(authoritati)s 5(v)k 3(e)k 9596(name)s 10122(serv)s 3(er)k 10699(\211)s 6300 -9876(thus)m 6687(the)s 160 fnt82 6985 -9874(AA)m 200 fnt82 7270 -9876(\210ag)m 7624(will)s 7988(be)s 8231(set)s 8506(in)s 8716(the)s 9014(response,)s 9815(e)s 5(v)k 3(en)k 10238(though)s 6300 -10116(the)m 6635(forw)s 2(arder)k 7509(is)s 7733(not)s 8080(itself)s 8568(authoritati)s 5(v)k 3(e)k 9657(for)s 9981(the)s 10316(name.)s 6300 -10356(Subsequent)m 7264(queries)s 7883(to)s 8083(the)s 8371(same)s 8824(name)s 9300(serv)s 3(er)k 9827(for)s 10104(the)s 10392(same)s 6300 -10596(RRset)m 6850(will)s 7223(probably)s 7996(be)s 8248(satis\207ed)s 8963(from)s 9414(the)s 9721(cache,)s 10287(and)s 10639(in)s 6300 -10836(that)m 6652(case)s 7047(the)s 160 fnt82 7344 -10834(AA)m 200 fnt82 7628 -10836(\210ag)m 7981(will)s 8344(not)s 8653(be)s 8895(set)s 9169(in)s 9378(the)s 9675(response.)s 10475(Y)s 22(ou)k 6300 -11076(can)m 6625(see)s 6927(this)s 7263(in)s 7467(action)s 8002(using)s 8483(the)s 160 fnt82 8775 -11074(ISI)m 200 fnt84 9018 -11077(dig)m 200 fnt82 9333 -11076(tool)m 9692(from)s 10128(the)s 160 fnt82 10420 -11074(BIND)m 200 fnt82 6300 -11316(kit.)m 200 fnt84 6300 -11816(4.7)m 6550(.)s 6700(F)s 5(orwarding)k 7764(-vs-)s 8123(T)s 3(imeouts)k 200 fnt82 6300 -12233(When)m 160 fnt82 6893 -12231(BIND)m 200 fnt82 7282 -12233(')m 11(s)k 7531(resolv)s 3(er)k 8285(needs)s 8855(to)s 9127(forw)s 2(ard)k 9872(a)s 10077(query)s 13(,)k 10685(it)s 6300 -12473(chooses)m 6991(the)s 7295(ne)s 3(xt)k 7696(name)s 8188(serv)s 3(er)k 8731(address)s 9388(from)s 9836(its)s 10084(statically)s 6300 -12713(con\207gured)m 7229(list,)s 7597(sends)s 8115(the)s 8434(query)s 13(,)k 9001(w)s 2(aits)k 9494(a)s 9658(short)s 10132(time)s 10561(for)s 6300 -12953(an)m 6549(answer)s 8(,)k 7215(chooses)s 7906(the)s 8210(ne)s 3(xt)k 8611(name)s 9103(serv)s 3(er)k 9646(address,)s 10353(sends)s 6300 -13193(and)m 6636(w)s 2(aits,)k 7151(and)s 7487(so)s 7712(on.)s 160 fnt82 8060 -13191(BIND)m 200 fnt82 8449 -13193(')m 11(s)k 8629(timeouts)s 9362(are)s 9652(f)s 2(airly)k 10128(short;)s 10679(It)s 6300 -13433(will)m 6666(often)s 7132(send)s 7554(a)s 7699(query)s 8210(to)s 8422(name)s 8910(serv)s 3(er)k 9449(#1,)s 9756(then)s 10156(to)s 10368(name)s 6300 -13673(serv)m 3(er)k 6867(#2,)s 7202(then)s 7630(the)s 7958(response)s 8739(will)s 9133(come)s 9649(in)s 9889(from)s 10361(name)s 6300 -13913(serv)m 3(er)k 6834(#1,)s 7136(and)s 7476(the)s 7771(resolv)s 3(er)k 8460(will)s 8821(close)s 9281(its)s 9520(sock)s 2(et)k 10078(such)s 10495(that)s 6300 -14153(when)m 6805(name)s 7309(serv)s 3(er)k 7864(#2')s 11(s)k 8269(response)s 9038(comes)s 9619(in)s 9847(a)s 10008(second)s 10634(or)s 6300 -14393(so)m 6532(later)s 6939(the)s 7237(k)s 2(ernel)k 7787(sends)s 8284(back)s 8715(an)s 160 fnt82 8958 -14391(ICMP)m 200 fnt82 9402 -14393(Port)m 9789(Unreachable)s grestore pgsave restore showpage %%Page: ? 5 %%BeginPageSetup %%PageResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic /pgsave save def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1440 -1576(message.)m 2257(W)s 16(e)k 2561(wish)s 2981(there)s 3422(were)s 3852(a)s 3984(w)s 2(ay)k 4358(to)s 4557(ask)s 4866(the)s 5153(k)s 2(ernel)k 5692(not)s 1440 -1816(to)m 1650(send)s 2070(these,)s 2583(other)s 3047(than)s 3445(k)s 2(eeping)k 4129(the)s 4427(sock)s 2(et)k 4988(open)s 5431(longer)s 1440 -2056(\(which)m 2060(w)s 2(ould)k 2624(lead)s 3022(to)s 3244(resource)s 3984(starv)s 5(ation)k 4830(among)s 5440(k)s 2(ernel)k 1440 -2296(protocol)m 2151(control)s 2762(blocks.\))s 3445(Lengthening)s 4500(the)s 4790(timeout)s 5445(w)s 2(ould)k 1440 -2536(lead)m 1812(to)s 2008(longer)s 2558(application-visible)s 4079(delays)s 4628(when)s 5101(a)s 5230(statically)s 1440 -2776(con\207gured)m 2343(name)s 2824(serv)s 3(er)k 3356(goes)s 3771(of)s 5(f)k 4048(the)s 4341(air)s 8(,)k 4642(b)s 4(ut)k 4943(life)s 5257(is)s 5439(full)s 5765(of)s 1440 -3016(hard)m 1844(choices.)s 200 fnt84 1440 -3516(4.8)m 1690(.)s 1840(Query)s 160 fnt84 2432 -3513(ID)m 200 fnt84 2609 -3516(s)m 2736(and)s 160 fnt84 3108 -3513(UDP)m 200 fnt84 3485 -3516(P)m 4(orts)k 200 fnt82 1440 -3933(Each)m 1898(query)s 2412(sent)s 2792(out)s 3107(by)s 3367(a)s 3515(resolv)s 3(er)k 4212(will)s 4581(come)s 5072(from)s 5519(some)s 160 fnt82 1440 -4171(UDP)m 200 fnt82 1819 -4173(port)m 2201(on)s 2462(some)s 2943(address)s 3600(of)s 3827(the)s 4131(resolv)s 3(er')k 11(s)k 4961(host,)s 5404(and)s 5753(its)s 1440 -4413(header)m 2017(will)s 2373(contain)s 3006(a)s 3141(unique)s 3731(\(in)s 3999(the)s 4289(conte)s 3(xt)k 4919(of)s 5132(the)s 5422(source)s 1440 -4653(address)m 2068(and)s 2388(port)s 2741(number\))s 3448(query)s 160 fnt82 3934 -4651(ID)m 200 fnt82 4102 -4653(.)m 160 fnt82 4234 -4651(UDP)m 200 fnt82 4584 -4653(port)m 4937(numbers)s 5655(and)s 160 fnt82 1440 -4891(DNS)m 200 fnt82 1806 -4893(query)m 160 fnt82 2308 -4891(ID)m 200 fnt82 2476 -4893(s)m 2601(are)s 2891(both)s 3294(unsigned)s 4062(16)s 4310(bit)s 4568(quantities,)s 5439(gi)s 5(ving)k 1440 -5133(a)m 1572(range)s 2058(from)s 2489(0)s 2633(to)s 2832(65535)s 3376(for)s 3652(each.)s 4160(Port)s 4536(numbers)s 5266(could)s 5753(be)s 1440 -5373(conserv)m 3(ed)k 2295(and)s 2634(reused)s 3204(by)s 3455(the)s 3749(resolv)s 3(er)k 8(,)k 4479(b)s 4(ut)k 160 fnt82 4781 -5371(BIND)m 200 fnt82 5221 -5373(currently)m 1440 -5613(opens)m 1971(a)s 2125(ne)s 5(w)k 2518(sock)s 2(et)k 3090(for)s 3388(each)s 3818(query)s 13(,)k 4375(and)s 4729(k)s 2(ernels)k 5367(tend)s 5776(to)s 1440 -5853(use)m 1765(an)s 160 fnt82 2013 -5851(LR)m 6(U)k 200 fnt82 2385 -5853(mechanism)m 3351(when)s 3843(assigning)s 4655(port)s 5036(numbers)s 5782(to)s 1440 -6093(ne)m 5(w)k 1862(sock)s 2(ets.)k 2590(The)s 2995(tuple)s 3488(<)s 200 fnt83 3600 -6092(addr)m 7(ess)k 200 fnt82 4212 -6093(,)m 200 fnt83 4262 -6092(port)m 200 fnt82 4594 -6093(,)m 200 fnt83 4644 -6092(query)m 160 fnt83 5097 -6090(ID)m 200 fnt82 5265 -6093(>)m 5472(forms)s 1440 -6333(a)m 1594(unique)s 2203(identi\207er)s 2987(that)s 3351(serv)s 3(ers)k 3976(can)s 4318(use)s 4649(to)s 4870(k)s 2(eep)k 5310(track)s 5773(of)s 1440 -6573(queries)m 2109(in)s 2359(progress.)s 3228(Resolv)s 3(ers)k 4104(should)s 4731(v)s 3(erify)k 5298(that)s 5691(the)s 1440 -6813(query)m 160 fnt82 1944 -6811(ID)m 200 fnt82 2162 -6813(of)m 2378(the)s 2671(response)s 3417(matches)s 4118(that)s 4466(of)s 4682(their)s 5096(query)s 13(.)k 200 fnt84 1440 -7354(4.9)m 1690(.)s 1840(Delegations,)s 2924(Zones,)s 3533(Domains,)s 4386(and)s 4758(Subdomains)s 200 fnt82 1440 -7771(Strictly)m 2125(speaking,)s 2983(e)s 5(v)k 3(ery)k 160 fnt82 3517 -7769(DNS)m 200 fnt82 3935 -7771(name)m 4466(is)s 4698(a)s 4886(domain.)s 5684(All)s 1440 -8011(domains)m 2204(e)s 3(xcept)k 2809(the)s 3141(root)s 3551(are)s 3882(also)s 4291(\205subdomains.)s 14(\206)k 5594(An)s 3(y)k 1440 -8251(time)m 1832(a)s 1959(subdomain)s 2873(is)s 3044(dele)s 3(g)k 1(ated)k 3841(to)s 4035(some)s 4494(other)s 4942(master)s 5510(name)s 1440 -8491(serv)m 3(er)k 8(,)k 2027(a)s 2178(\205zone)s 2705(cut\206)s 3099(is)s 3294(said)s 3677(to)s 3895(e)s 3(xist.)k 4430(A)s 4637(zone)s 5076(consists)s 5768(of)s 1440 -8731(all)m 1704(names)s 2278(from)s 2731(a)s 2885(zone)s 3327(cut)s 3636(do)s 5(wnw)k 2(ard)k 4537(to)s 4758(either)s 5276(terminal)s 1440 -8971(names)m 1983(\(sometimes)s 2934(called)s 3443(\205leaf)s 3863(domains\206\))s 4727(or)s 4928(other)s 8(,)k 5414(deeper)s 1440 -9211(zone)m 1866(cuts.)s 1840 -9522(The)m 2259(most)s 2755(common)s 3562(case)s 4012(of)s 4287(a)s 4484(zone)s 4969(be)s 3(gins)k 5595(at)s 5847(a)s 1440 -9762(subdomain)m 2387(and)s 2747(has)s 3084(no)s 3356(zone)s 3804(cuts)s 4196(beneath)s 4887(it.)s 5169(The)s 5551(most)s 1440 -10002(f)m 2(amous)k 2120(zone)s 2592(is)s 2820(the)s 3159(root)s 3576(\(\205)s 200 fnt84 3730 -10003(.)m 200 fnt82 3780 -10002(\206\))m 4030(which)s 4613(has)s 4974(no)s 5270(terminal)s 1440 -10242(names,)m 2048(just)s 2385(dele)s 3(g)k 1(ations.)k 1840 -10553(There)m 2391(are)s 2720(tw)s 2(o)k 3104(vie)s 5(ws)k 3650(of)s 3903(a)s 4078(dele)s 3(g)k 1(ation:)k 5045(The)s 5442(parent)s 1440 -10793(zone,)m 1942(which)s 2505(has)s 2846(some)s 160 fnt82 3342 -10791(NS)m 3585(RR)s 200 fnt82 3797 -10793(s)m 3950(at)s 4169(the)s 4488(cut,)s 4857(and)s 5221(the)s 5540(child)s 1440 -11033(zone,)m 1932(which)s 2485(has)s 2816(a)s 2970(superset)s 3687(of)s 3919(those)s 160 fnt82 4405 -11031(NS)m 4648(RR)s 200 fnt82 4860 -11033(s)m 5003(and)s 5357(also)s 5743(an)s 160 fnt82 1440 -11271(SO)m 5(A)k 1793(RR)s 200 fnt82 2005 -11273(.)m 2170(When)s 2711(we)s 3008(say)s 3338(\205superset\206)s 4230(we)s 4527(mean)s 5023(that)s 5386(a)s 5539(child)s 1440 -11513(will)m 1827(ha)s 4(v)k 3(e)k 2274(at)s 2495(least)s 2936(the)s 160 fnt82 3257 -11511(NS)m 3500(RR)s 200 fnt82 3712 -11513(s)m 3867(kno)s 5(wn)k 4484(by)s 4762(its)s 5027(parent,)s 5652(and)s 1440 -11753(perhaps)m 2118(some)s 2597(additional)s 160 fnt82 3452 -11751(NS)m 3695(RR)s 200 fnt82 3907 -11753(s)m 4043(that)s 4400(the)s 4702(parent)s 5258(does)s 5682(not)s 1440 -11993(kno)m 5(w)k 1929(about.)s 200 fnt84 1440 -12493(4.)m 1590(10)s 1790(.)s 1940(Lame)s 2477(Delegations)s 200 fnt82 1440 -12910(If)m 1705(a)s 1926(dele)s 3(g)k 1(ation)k 160 fnt82 2884 -12908(NS)m 3127(RR)s 200 fnt82 3472 -12910(names)m 4113(a)s 4334(host)s 4799(which)s 5419(is)s 5684(not)s 1440 -13150(authoritati)m 5(v)k 3(e)k 2512(for)s 2819(the)s 3137(zone,)s 3638(then)s 4056(that)s 4429(host)s 4836(when)s 5343(queried)s 1440 -13390(nonrecursi)m 5(v)k 3(ely)k 2665(for)s 2947(names)s 3505(in)s 3710(that)s 4058(zone)s 4484(will)s 4843(answer)s 5456(with)s 5860(a)s 1440 -13630(dele)m 3(g)k 1(ation)k 2302(to)s 2494(a)s 2619(higher)s 3165(\(that)s 3566(is,)s 3785(closer)s 4296(to)s 4488(the)s 4768(root\))s 5192(authority)s 13(.)k 1440 -13870(This)m 1847(is)s 2032(an)s 2273(error)s 2712(condition)s 3518(as)s 3736(percei)s 5(v)k 3(ed)k 4554(by)s 4807(the)s 5103(serv)s 3(er)k 5638(that)s 1440 -14110(forw)m 2(arded)k 2341(a)s 2514(nonrecursi)s 5(v)k 3(e)k 3619(query)s 4158(\211)s 4343(if)s 4549(a)s 4722(name)s 5238(serv)s 3(er)k 5805(is)s 1440 -14350(listed)m 1931(in)s 2147(an)s 160 fnt82 2396 -14348(NS)m 2639(RR)s 200 fnt82 2851 -14350(,)m 2962(it)s 3133(is)s 3326(supposed)s 4129(to)s 4345(ha)s 4(v)k 3(e)k 4775(the)s 5079(zone.)s 5616(It)s 5798(is)s 6300 -1576(reasonable)m 7193(to)s 7391(declare)s 8007(f)s 2(ailure)k 8566(at)s 8752(this)s 9082(point,)s 9585(though)s 10183(perhaps)s 6300 -1816(a)m 6438(bit)s 6698(se)s 5(v)k 3(ere.)k 160 fnt82 6700 -2125(BIND)m 200 fnt82 7089 -2127(s)m 7207(from)s 7635(v)s 3(ersion)k 8259(4.9)s 8550(ha)s 4(v)k 3(e)k 200 fnt84 8960 -2128(syslog)m 200 fnt82 9469 -2127('ed)m 9764(the)s 10048(condition)s 6300 -2367(and)m 6624(gone)s 7048(on)s 7284(to)s 7475(try)s 7732(the)s 8011(other)s 8456(dele)s 3(g)k 1(ated)k 9250(serv)s 3(ers.)k 9945(The)s 200 fnt84 10291 -2368(syslog)m 200 fnt82 6300 -2607(v)m 4(olume)k 6949(generated)s 7777(by)s 8032(this)s 8374(condition)s 9182(is)s 9369(the)s 9667(cause)s 10163(of)s 10384(more)s 6300 -2847(than)m 6683(half)s 7032(the)s 7315(questions)s 8107(we)s 8379(see)s 8672(about)s 160 fnt82 9155 -2845(BIND)m 200 fnt82 9584 -2847(from)m 10011(ne)s 5(w)k 10378(name)s 6300 -3087(serv)m 3(er)k 6835(administrators.)s 8125(The)s 8488(only)s 8896(w)s 2(ay)k 9279(to)s 9487(\207x)s 9751(the)s 10047(condition)s 6300 -3327(is)m 6507(to)s 6737(get)s 7055(someone)s 7838(to)s 8068(edit)s 8441(the)s 8759(dele)s 3(g)k 1(ation)k 9659(to)s 9889(remo)s 3(v)k 3(e)k 10555(the)s 6300 -3567(nonauthoritati)m 5(v)k 3(e)k 7714(name)s 8262(serv)s 3(er)k 8(,)k 8903(or)s 9186(to)s 9458(get)s 9818(someone)s 10643(to)s 6300 -3807(mak)m 2(e)k 6837(the)s 7188(name)s 7727(serv)s 3(er)k 8317(authoritati)s 5(v)k 3(e.)k 9522(Either)s 10116(w)s 2(ay)k 10554(it')s 11(s)k 6300 -4047(not)m 6637(something)s 7549(the)s 7874(detecting)s 8685(serv)s 3(er')k 11(s)k 9381(administrator)s 10523(can)s 6300 -4287(do)m 6569(an)s 3(ything)k 7333(about)s 7845(directly;)s 8576(we)s 8877(hope)s 9334(that)s 9701(the)s 10013(continued)s 200 fnt84 6300 -4528(syslog)m 200 fnt82 6891 -4527(v)m 4(olume)k 7567(will)s 7958(lead)s 8371(to)s 8608(more)s 9099(hate)s 9512(mail)s 9947(being)s 10472(sent)s 6300 -4767(to)m 6541(the)s 6870(administrators)s 8093(of)s 8345(brok)s 2(en)k 8983(zones,)s 9572(thus)s 9990(ultimately)s 6300 -5007(leading)m 6941(to)s 7151(a)s 7294(decline)s 7923(in)s 8133(the)s 8431(number)s 9095(of)s 9316(brok)s 2(en)k 9923(zones.)s 10531(W)s 16(e)k 6300 -5247(ha)m 4(v)k 3(e)k 6719(been)s 7145(accused)s 7824(of)s 8040(optimism)s 8842(in)s 9047(this)s 9384(matter)s 11(.)k 200 fnt84 6300 -5788(4.)m 6450(11)s 6650(.)s 6800(Glue)s 200 fnt82 6300 -6167(When)m 6836(transmitting)s 7857(a)s 8005(zone)s 8441(via)s 8744(a)s 160 fnt82 8892 -6165(TCP)m 200 fnt82 9243 -6167(\205zone)m 9767(transfer)s 8(,)k 14(\206)k 10549(the)s 6300 -6407(general)m 6942(rule)s 7308(is)s 7497(to)s 7709(send)s 8131(only)s 8543(the)s 8843(RRsets)s 9463(whose)s 10029(names)s 10594(lie)s 6300 -6647(within)m 6852(the)s 7138(zone)s 7557(being)s 8043(transferred,)s 8996(which)s 9526(is)s 9701(to)s 9899(say)s 10207(starting)s 6300 -6887(from)m 6791(the)s 7138(initial)s 7705(zone)s 8185(cut,)s 8582(and)s 8974(proceeding)s 9963(do)s 5(wnw)k 2(ard)k 6300 -7127(\(a)m 3(w)k 2(ay)k 6838(from)s 7282(the)s 7582(root\))s 8026(to)s 8238(include)s 8881(all)s 9136(names)s 9701(which)s 10245(are)s 10544(not)s 6300 -7367(further)m 6919(dele)s 3(g)k 1(ated.)k 7805(There)s 8347(is)s 8557(an)s 8823(e)s 3(xception)k 9672(to)s 9905(this,)s 10320(called)s 6300 -7607(\205glue.)m 14(\206)k 6967(An)s 3(y)k 7370(address)s 8028(records)s 8675(\()s 160 fnt82 8741 -7605(A)m 8896(RR)s 200 fnt82 9108 -7607(s\))m 9313(which)s 9862(are)s 10166(referred)s 6300 -7847(to)m 6521(by)s 6787(an)s 160 fnt82 7041 -7845(NS)m 7284(RR)s 200 fnt82 7562 -7847(inside)m 8103(the)s 8412(zone)s 8854(\(at)s 9129(the)s 9438(initial)s 9967(cut)s 10276(or)s 10508(an)s 3(y)k 6300 -8087(do)m 5(wnw)k 2(ard)k 7171(cuts\))s 7593(must)s 8016(be)s 8240(included,)s 9012(e)s 5(v)k 3(en)k 9416(if)s 9573(the)s 3(y)k 9949(lie)s 10183(beneath)s 6300 -8327(one)m 6638(of)s 6854(the)s 7147(do)s 5(wnw)k 2(ard)k 8032(zone)s 8458(cuts.)s 6700 -8638(If)m 6943(this)s 7341(information)s 8392(is)s 8635(not)s 9001(included)s 9798(in)s 10064(the)s 10418(zone)s 6300 -8878(transfer)m 8(,)k 7002(then)s 7399(referral)s 8036(responses)s 8863(w)s 2(on')k 3(t)k 9377(be)s 9619(able)s 10004(to)s 10213(include)s 6300 -9118(those)m 6785(addresses)s 7611(in)s 7831(their)s 8260(additional)s 9121(data)s 9517(sections.)s 10322(In)s 10553(the)s 6300 -9358(absence)m 6978(of)s 7193(that)s 7540(additional)s 8385(data,)s 8815(the)s 9107(name)s 9587(serv)s 3(ers)k 10195(will)s 10553(not)s 6300 -9598(be)m 6543(reachable)s 7359(e)s 3(xcept)k 7930(by)s 8185(serv)s 3(ers)k 8799(who)s 9198(ha)s 4(v)k 3(e)k 9622(the)s 9920(zone)s 10351(\211)s 10506(and)s 6300 -9838(that')m 11(s)k 6792(not)s 7109(v)s 3(ery)k 7522(useful.)s 8170(It)s 8353(is)s 8547(important)s 9383(that)s 9743(a)s 9893(serv)s 3(er)k 10437(only)s 6300 -10078(send)m 6705(\(or)s 6977(accept\))s 7590(rele)s 5(v)k 5(ant)k 8260(glue)s 8643(during)s 9204(zone)s 9620(transfers,)s 10393(since)s 6300 -10318(otherwise)m 7147(this)s 7508(becomes)s 8278(an)s 8540(easy)s 8967(w)s 2(ay)k 9371(for)s 9677(your)s 10117(cache)s 10643(to)s 6300 -10558(become)m 6969(polluted.)s 240 fnt84 6300 -11246(5.)m 6600(What)s 7232(W)s 15(e)k 7623(Ha)s 6(v)k 2(e)k 8207(Fixed)s 160 fnt82 6300 -11623(BIND)m 200 fnt82 6689 -11625(s)m 6822(from)s 7265(v)s 3(ersion)k 7904(4.9)s 8210(ha)s 4(v)k 3(e)k 8635(plugged)s 9334(a)s 9478(lot)s 9744(of)s 9966(holes)s 10442(with)s 6300 -11865(respect)m 6912(to)s 7117(earlier)s 7673(v)s 3(ersions.)k 8483(An)s 8777(incomplete)s 9711(list)s 10003(follo)s 5(ws:)k 200 fnt84 6300 -12406(5.1)m 6550(.)s 6700(Cache)s 7281(T)s 18(agging)k 160 fnt82 6300 -12821(BIND)m 200 fnt82 6758 -12823(no)m 5(w)k 7166(maintains)s 8008(for)s 8309(each)s 8742(cached)s 160 fnt82 9363 -12821(RR)m 200 fnt82 9644 -12823(a)m 9801(\205credibility\206)s 6300 -13063(le)m 5(v)k 3(el)k 6758(sho)s 5(wing)k 7509(whether)s 8230(the)s 8553(data)s 8964(came)s 9463(from)s 9930(a)s 10098(zone,)s 10604(an)s 6300 -13303(authoritati)m 5(v)k 3(e)k 7366(answer)s 8(,)k 8040(an)s 8297(authority)s 9085(section,)s 9767(or)s 10002(additional)s 6300 -13543(data)m 6681(section.)s 7394(When)s 7920(a)s 8058(more)s 8517(credible)s 9207(RRset)s 9743(comes)s 10301(in,)s 10556(the)s 6300 -13783(old)m 6631(one)s 6995(is)s 7203(completely)s 8163(wiped)s 8726(out.)s 9157(Older)s 160 fnt82 9686 -13781(BIND)m 200 fnt82 10075 -13783(s)m 10228(blindly)s 6300 -14023(aggre)m 3(g)k 1(ated)k 7228(data)s 7618(from)s 8064(all)s 8321(sources,)s 9026(paying)s 9628(no)s 9887(attention)s 10642(to)s 6300 -14263(the)m 6593(maxim)s 7196(that)s 7544(some)s 8014(sources)s 8660(are)s 8952(better)s 9454(than)s 9847(others.)s grestore pgsave restore showpage %%Page: ? 6 %%BeginPageSetup %%PageResources: font Times-Roman %%+ font Times-Bold %%+ font Symbol %%+ font Times-Italic /pgsave save def %%IncludeResource: font Symbol /fnt78 { /Symbol LoutFont } def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1840 -1576(Each)m 160 fnt82 2278 -1574(RR)m 200 fnt82 2530 -1576(also)m 2890(has)s 3195(the)s 3478(address)s 4114(of)s 4320(the)s 4603(name)s 5074(serv)s 3(er)k 5596(who)s 1440 -1816(sent)m 1803(it)s 1956(to)s 2154(us.)s 2424(This)s 2821(can)s 3140(be)s 3371(seen)s 3767(in)s 3965(cache)s 4460(dump)s 4958(when)s 5433(you')s 10(re)k 1440 -2056(looking)m 2121(at)s 2335(some)s 2826(bad)s 3185(data)s 3587(and)s 3946(w)s 2(ondering)k 4868(ho)s 5(w)k 5278(it)s 5459(got)s 5785(to)s 1440 -2296(you.)m 200 fnt84 1440 -2837(5.2)m 1690(.)s 1840(Additional)s 2798(Data)s 3258(Pr)s 3(omiscuity)k 200 fnt82 1440 -3254(W)m 16(e)k 1763(accelerate)s 2618(the)s 160 fnt82 2924 -3252(TTL)m 200 fnt82 3278 -3254(decline)m 3915(for)s 4210(data)s 4604(which)s 5154(arri)s 5(v)k 3(ed)k 5772(as)s 1440 -3494(additional)m 2293(data.)s 2781(W)s 16(e)k 3098(are)s 3397(considering)s 4383(not)s 4695(caching)s 5371(it)s 5538(at)s 5738(all)s 1440 -3734(other)m 1894(than)s 2282(as)s 2492(necessary)s 3309(for)s 3586(forw)s 2(arding)k 4514(the)s 4802(response)s 5543(\211)s 5688(see)s 1440 -3974(belo)m 5(w)k 13(.)k 200 fnt84 1440 -4474(5.3)m 1690(.)s 1840(Irr)s 3(ele)k 3(v)k 2(ant)k 2743(Answers)s 200 fnt82 1440 -4852(W)m 16(e)k 1758(check)s 2280(the)s 2581(response)s 3335(to)s 3548(ensure)s 4125(that)s 4481(all)s 4737(RRsets)s 5358(in)s 5571(each)s 1440 -5092(section)m 2091(ha)s 4(v)k 3(e)k 2548(names)s 3144(and)s 3520(types)s 4028(that)s 4414(mak)s 2(e)k 4931(sense)s 5449(in)s 5692(the)s 1440 -5332(conte)m 3(xt)k 2130(of)s 2403(the)s 2753(query)s 3314(and)s 3709(answer)s 4379(sections.)s 5176(Including)s 1440 -5572(spurious)m 2200(additional)s 3081(data)s 3497(w)s 2(on')k 3(t)k 4042(automatically)s 5209(pollute)s 5847(a)s 1440 -5812(cache)m 1973(an)s 3(y)k 2339(more;)s 2884(As)s 3186(of)s 160 fnt82 3433 -5810(BIND)m 200 fnt82 3903 -5812(4.9.3)m 4384(it)s 4575(is)s 4788(necessary)s 5641(that)s 1440 -6052(the)m 1750(answer)s 2380(section)s 3010(contain)s 3663(a)s 160 fnt82 3818 -6050(CN)m 5(AME)k 4428(RR)s 200 fnt82 4707 -6052(to)m 4929(introduce)s 5748(an)s 1440 -6292(arbitrary)m 2158(name,)s 2673(after)s 3070(which)s 3591(it')s 11(s)k 3867(b)s 4(usiness)k 4571(as)s 4770(usual)s 5224(for)s 5490(cache)s 1440 -6532(polluters.)m 2294(This)s 2706(is)s 2896(the)s 3197(best)s 3575(we)s 3865(can)s 4199(do)s 4457(without)s 5124(a)s 5270(protocol)s 1440 -6772(change.)m 200 fnt84 1440 -7313(5.4)m 1690(.)s 1840(Nonmatching)s 3042(Answers)s 200 fnt82 1440 -7730(Belie)m 5(v)k 3(e)k 2132(it)s 2335(or)s 2594(not,)s 2992(older)s 160 fnt82 3494 -7728(BIND)m 200 fnt82 3883 -7730(s)m 4053(did)s 4401(not)s 4749(check)s 5306(that)s 5697(the)s 1440 -7970(answer)m 2099(name)s 2626(matched)s 3396(the)s 3735(query)s 4285(name.)s 4912(No)s 5(w)k 13(,)k 5428(within)s 1440 -8210(the)m 1760(limits)s 2289(of)s 160 fnt82 2532 -8208(CN)m 5(AME)k 200 fnt82 3102 -8210(s)m 3256(and)s 3621(wildcard)s 4394(answers,)s 160 fnt82 5161 -8208(BIND)m 200 fnt82 5627 -8210(will)m 1440 -8450(insist)m 1935(that)s 2309(a)s 2473(response)s 3245(answers)s 3961(the)s 4280(right)s 4732(question.)s 5583(This)s 1440 -8690(error)m 1907(w)s 2(as)k 2295(particularly)s 3292(pernicious)s 4202(with)s 4637(respect)s 5280(to)s 5516(some)s 1440 -8930(of)m 1686(the)s 2009(name)s 200 fnt78 2520 -8935(\253)m 200 fnt82 2808 -8930(address)m 3484(symmetry)s 4360(checking,)s 5209(since)s 5697(the)s 1440 -9170(answer')m 11(s)k 2170(RRname)s 2902(sets)s 3234(the)s 3512(name)s 3978(in)s 4168(the)s 4446(resolv)s 3(er')k 11(s)k 5250(response)s 1440 -9410(structure,)m 2249(which)s 2800(meant)s 3350(that)s 3712(callers)s 4293(of)s 200 fnt84 4523 -9411(gethostbyname\(\))m 200 fnt82 1440 -9650(could)m 1991(end)s 2387(up)s 2695(comparing)s 3655(a)s 3851(foreign)s 4534(name)s 5073(to)s 5336(another)s 1440 -9890(foreign)m 2065(name.)s 200 fnt84 1440 -10431(5.5)m 1690(.)s 1840(Logging)s 200 fnt82 1440 -10848(Man)m 3(y)k 1961(of)s 2186(the)s 2488(detectable)s 3352(conditions)s 4241(indicating)s 5096(a)s 5243(probable)s 1440 -11088(break-in)m 2164(attempt)s 2821(were)s 3268(in)s 3484(the)s 3788(past)s 4169(either)s 4682(not)s 4998(detected,)s 5771(or)s 1440 -11328(treated)m 2019(as)s 2223(protocol)s 2926(errors)s 3428(\(which)s 4020(is)s 4191(to)s 4385(say)s 13(,)k 4726(silently)s 5350(w)s 2(ork)k 2(ed)k 1440 -11568(around\).)m 160 fnt82 2195 -11566(BIND)m 200 fnt82 2619 -11568(no)m 5(w)k 2993(f)s 2(airly)k 3456(shrieks)s 4054(whene)s 5(v)k 3(er)k 4855(it)s 5000(has)s 5300(e)s 5(v)k 3(en)k 5703(the)s 1440 -11808(slightest)m 2147(cause)s 2633(for)s 2910(alarm,)s 3457(which)s 3989(is)s 4166(a)s 4299(mix)s 3(ed)k 4839(blessing)s 5536(since)s 1440 -12048(the)m 1748(v)s 4(olume)k 2407(of)s 2638(its)s 2890(complaints)s 3828(is)s 4025(so)s 4267(high)s 4687(that)s 5050(most)s 5502(name)s 1440 -12288(serv)m 3(er)k 1972(administrators)s 3159(pay)s 3497(no)s 3747(attention.)s 1840 -12599(The)m 200 fnt84 2235 -12600(syslog)m 200 fnt82 2829 -12599(data)m 3245(is)s 3462(of)s 3713(greatest)s 4415(interest)s 5084(during)s 5690(the)s 1440 -12839(post)m 1834(mortem)s 2515(analysis)s 3217(of)s 3445(a)s 3595(break-in)s 4320(attempt.)s 5078(The)s 5450(log)s 5767(of)s 1440 -13079(unsolicited)m 2394(responses,)s 3298(for)s 3611(e)s 3(xample,)k 4413(can)s 4770(sho)s 5(w)k 5267(attempts)s 1440 -13319(at)m 1659(cache)s 2187(pollution)s 2983(during)s 3580(the)s 3899(early)s 4372(stages)s 4933(\211)s 5109(before)s 5693(the)s 1440 -13559(attack)m 2(ers)k 2217(switched)s 2998(to)s 3227(whate)s 5(v)k 3(er)k 4022(technology)s 4982(actually)s 5685(got)s 1440 -13799(them)m 1905(in,)s 2177(or)s 2410(set)s 2697(of)s 5(f)k 2991(your)s 3424(alarms,)s 4070(or)s 4303(whate)s 5(v)k 3(er)k 11(.)k 5180(Be)s 5468(a)s 3(w)k 2(are)k 1440 -14039(while)m 1979(e)s 3(xamining)k 2914(these)s 3419(logs)s 3848(that)s 4243(some)s 4760(systems)s 5486(\(most)s 1440 -14279(notably)m 2118(SunOS\))s 2830(cannot)s 3441(cause)s 3962(pack)s 2(ets)k 4636(to)s 4871(come)s 5382(from)s 5849(a)s 6300 -1576(particular)m 7114(address)s 7763(if)s 7937(the)s 3(y)k 8330(ha)s 4(v)k 3(e)k 8752(more)s 9214(than)s 9610(one)s 9951(interf)s 2(ace)k 10696(\211)s 6300 -1816(so)m 6540(if)s 6724(you')s 10(re)k 7297(on)s 7560(the)s 7866(wrong)s 8439(side)s 8822(of)s 9051(a)s 9202(multihomed)s 10228(SunOS)s 6300 -2056(name)m 6845(serv)s 3(er)k 8(,)k 200 fnt83 7483 -2055(all)m 200 fnt82 7807 -2056(of)m 8087(its)s 8388(responses)s 9275(will)s 9698(appear)s 10342(to)s 10611(be)s 6300 -2296(\205unsolicited.)m 14(\206)k 200 fnt84 6300 -2796(5.6)m 6550(.)s 6700(Glue)s 160 fnt82 6300 -3173(BIND)m 200 fnt82 6689 -3175(s)m 6854(from)s 7329(v)s 3(ersion)k 8000(4.9)s 8338(restrict)s 8976(glue)s 9407(to)s 9650(just)s 10025(the)s 160 fnt82 10356 -3173(A)m 10511(RR)s 200 fnt82 10723 -3175(s)m 6300 -3415(under)m 6841(the)s 7171(dele)s 3(g)k 1(ation)k 8083(point,)s 8630(whereas)s 9368(pre)s 5(vious)k 10136(v)s 3(ersions)k 6300 -3655(included)m 7057(all)s 7326(the)s 160 fnt82 7640 -3653(A)m 7795(RR)s 200 fnt82 8007 -3655(s)m 8155(referred)s 8854(to)s 9080(by)s 9351(a)s 9510(zone')s 11(s)k 160 fnt82 10089 -3653(NS)m 10332(RR)s 200 fnt82 10544 -3655(s)m 10692(\211)s 6300 -3895(e)m 5(v)k 3(en)k 6735(those)s 7222(abo)s 3(v)k 3(e)k 7759(the)s 8069(zone.)s 8612(By)s 8912(\205restrict\206)s 9705(we)s 10004(mean)s 10502(that)s 160 fnt82 6300 -4133(BIND)m 200 fnt82 6751 -4135(will)m 7122(be)s 7372(conserv)s 5(ati)k 5(v)k 3(e)k 8426(both)s 8843(in)s 9060(what)s 9509(it)s 9681(generates)s 200 fnt83 10493 -4134(and)m 6300 -4374(what)m 6726(it)s 6874(accepts)s 200 fnt82 7470 -4375(.)m 7558(This)s 7950(may)s 8331(\210y)s 8580(in)s 8773(the)s 9054(f)s 2(ace)k 9420(of)s 9624(the)s 9905(Rob)s 4(ustness)k 6300 -4615(Principle)m 128 fnt82 7018 -4526(1)m 200 fnt82 7139 -4615(of)m 7362([)s 7428(RFC1123)s 8205(])s 8271(,)s 8378(b)s 4(ut)k 8686(the)s 8986(old)s 9298(beha)s 4(viour)k 10148(w)s 2(as)k 10512(just)s 6300 -4855(simply)m 200 fnt83 6892 -4854(wr)m 9(ong)k 200 fnt82 7393 -4855(.)m 240 fnt84 6300 -5543(6.)m 6600(What)s 7232(W)s 15(e)k 7623(Cannot)s 8441(Fix)s 200 fnt82 6300 -5923(W)m 16(e)k 6660(are)s 7002(counting)s 7800(on)s 8100(the)s 160 fnt82 8443 -5921(IETF)m 8878(DNSSEC)s 200 fnt82 9587 -5923(ef)m 5(fort)k 10123(to)s 10378(bring)s 6300 -6163(us)m 6585(a)s 160 fnt82 6781 -6161(DNS)m 200 fnt82 7207 -6163(protocol)m 7979(re)s 5(vision)k 8723(that)s 9129(authoritati)s 5(v)k 3(ely)k 10389(signs)s 6300 -6403(responses.)m 7235(W)s 8(ith)k 7687(that)s 8047(in)s 8264(place)s 8745(we)s 9039(will)s 9410(all)s 9670(stop)s 10064(w)s 2(orrying)k 6300 -6643(about)m 6789(attack)s 2(ers)k 7538(who)s 7928(spoof)s 8417(their)s 8827(source)s 9392(addresses,)s 10249(predict)s 6300 -6883(our)m 160 fnt82 6620 -6881(UDP)m 200 fnt82 6992 -6883(port)m 7367(numbers)s 8107(and)s 8449(query)s 160 fnt82 8957 -6881(ID)m 200 fnt82 9179 -6883(numbers,)m 9969(and)s 10311(so)s 10542(on.)s 6300 -7123(Response)m 7107(data)s 7482(will)s 7835(be)s 8067(objecti)s 5(v)k 3(ely)k 8987(v)s 3(eri\207able,)k 9829(independent)s 6300 -7363(of)m 6526(whether)s 7227(it)s 7397(is)s 7589(e)s 5(v)k 3(en)k 8017(a)s 8165(response)s 8921(to)s 9136(some)s 9616(query)s 10130(we)s 10422(ha)s 4(v)k 3(e)k 6300 -7603(sent.)m 6771(Until)s 160 fnt82 7231 -7601(DNSSEC)m 200 fnt82 7891 -7603(is)m 8074(\207nished)s 8756(and)s 9095(in)s 9301(wide)s 9739(use,)s 10105(there)s 10553(are)s 6300 -7843(some)m 6770(things)s 7307(we')s 10(re)k 7799(just)s 8136(going)s 8641(to)s 8846(ha)s 4(v)k 3(e)k 9265(to)s 9470(li)s 5(v)k 3(e)k 9810(with.)s 200 fnt84 6300 -8384(6.1)m 6550(.)s 6700(Query)s 160 fnt84 7292 -8381(ID)m 200 fnt84 7519 -8384(Pr)m 3(ediction)k 200 fnt82 6300 -8801(W)m 8(ith)k 6760(only)s 7185(16)s 7455(bits)s 7812(w)s 2(orth)k 8345(of)s 8581(query)s 160 fnt82 9105 -8799(ID)m 200 fnt82 9343 -8801(and)m 9701(16)s 9971(bits)s 10328(w)s 2(orth)k 6300 -9041(of)m 160 fnt82 6543 -9039(UDP)m 200 fnt82 6938 -9041(port)m 7336(number)s 8(,)k 8064(it')s 11(s)k 8383(hard)s 8814(not)s 9146(to)s 9378(be)s 9643(predictable.)s 10653(A)s 6300 -9281(determined)m 7232(attack)s 2(er)k 7895(can)s 8208(try)s 8466(all)s 8701(the)s 8981(numbers)s 9704(in)s 9896(a)s 10021(v)s 3(ery)k 10409(short)s 6300 -9521(time)m 6689(and)s 7013(can)s 7325(use)s 7626(patterns)s 8291(deri)s 5(v)k 3(ed)k 8916(from)s 9339(e)s 3(xamination)k 10356(of)s 10558(the)s 6300 -9761(freely)m 6800(a)s 4(v)k 5(ailable)k 160 fnt82 7545 -9759(BIND)m 200 fnt82 7971 -9761(source)m 8527(code.)s 9040(Ev)s 3(en)k 9484(if)s 9642(we)s 9911(had)s 10236(a)s 10361(white)s 6300 -10001(noise)m 6777(generator)s 7585(to)s 7797(help)s 8197(randomize)s 9094(our)s 9417(numbers,)s 10210(it')s 11(s)k 10509(just)s 6300 -10241(too)m 6605(easy)s 7008(to)s 7213(try)s 7484(them)s 7932(all.)s 200 fnt84 6300 -10782(6.1)m 6550(.)s 160 fnt84 6700 -10779(CN)m 3(AME)k 200 fnt84 7349 -10782(Indir)m 3(ection)k 200 fnt82 6300 -11160(As)m 6608(mentioned)s 7536(pre)s 5(viously)k 13(,)k 8496(a)s 160 fnt82 8671 -11158(CN)m 5(AME)k 200 fnt82 9328 -11160(response)m 10111(allo)s 5(ws)k 10712(a)s 6300 -11400(remote)m 6890(name)s 7359(serv)s 3(er)k 7879(to)s 8072(introduce)s 8862(a)s 8988(ne)s 5(w)k 9353(name)s 9822(for)s 10092(an)s 10318(RRset)s 6300 -11640(of)m 6526(arbitrary)s 7270(type.)s 7773(F)s 3(orw)k 2(arders)k 8734(recei)s 5(ving)k 9529(such)s 9954(a)s 10102(response)s 6300 -11880(should)m 6889(not)s 7201(cache)s 7710(those)s 8187(RRsets)s 8807(\(as)s 160 fnt82 9095 -11878(BIND)m 200 fnt82 9541 -11880(currently)m 10316(does\),)s 6300 -12120(b)m 4(ut)k 6607(e)s 5(v)k 3(en)k 7031(with)s 7441(that)s 7795(precaution)s 8691(it)s 8857(will)s 9222(be)s 9466(possible)s 10174(to)s 10385(use)s 10706(a)s 160 fnt82 6300 -12358(CN)m 5(AME)k 200 fnt82 6939 -12360(response)m 7704(to)s 7928(bypass)s 8539(the)s 8851(name/address)s 10002(symmetry)s 6300 -12600(checking.)m gsave 6300 -14114 translate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1134 0 0 0 200 240 50 LoutGraphic gsave 0 0 moveto xsize 0 lineto stroke grestore grestore 102 fnt82 0.0 0.0 0.0 setrgbcolor 6300 -14295(1)m 160 fnt82 6351 -14366(\205Be)m 6639(liberal)s 7086(in)s 7250(what)s 7600(you)s 7880(accept,)s 8368(and)s 8639(conserv)s 4(ati)k 4(v)k 2(e)k 9476(in)s 9640(what)s 9990(you)s 10270(send.)s 11(\206)k grestore pgsave restore showpage %%Page: ? 7 %%BeginPageSetup %%PageResources: font Times-Bold %%+ font Times-Roman %%+ font Times-Italic %%+ font Symbol /pgsave save def %%IncludeResource: font Symbol /fnt78 { /Symbol LoutFont } def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 240 fnt84 0.0 0.0 0.0 setrgbcolor 1440 -1605(7.)m 1740(What)s 2372(W)s 15(e)k 2763(W)s 18(ould)k 3497(Lik)s 2(e)k 4020(T)s 22(o)k 4338(Fix)s 200 fnt82 1440 -1984(Ev)m 3(ery)k 2017(change)s 2685(to)s 160 fnt82 2944 -1982(BIND)m 200 fnt82 3437 -1984(has)m 3806(the)s 4153(potential)s 4953(to)s 5212(push)s 5693(the)s 1440 -2224(Internet)m 2160(into)s 2572(the)s 2917(\207nal)s 3373(abyss.)s 4017(W)s 16(e)k 4379(are)s 4723(therefore)s 5542(quite)s 1440 -2464(conserv)m 5(ati)k 5(v)k 3(e)k 2484(about)s 2979(an)s 3(ything)k 3726(that)s 4076(looks)s 4560(lik)s 2(e)k 4908(it)s 5070(could)s 5565(ha)s 4(v)k 3(e)k 1440 -2704(f)m 2(ar)k 1738(reaching)s 2503(consequences,)s 3727(which)s 4294(is)s 4506(to)s 4741(say)s 13(,)k 5123(just)s 5490(about)s 1440 -2944(an)m 3(ything)k 128 fnt82 2135 -2855(1)m 200 fnt82 2199 -2944(.)m 200 fnt84 1440 -3485(7.1)m 1690(.)s 1840(Query)s 2432(Restarts)s 200 fnt82 1440 -3902(Some)m 1967(of)s 2206(the)s 2522(information)s 3535(needed)s 4172(to)s 4400(properly)s 5148(v)s 5(alidate)k 5845(a)s 160 fnt82 1440 -4140(DNS)m 200 fnt82 1834 -4142(response)m 2606(is)s 2814(e)s 3(xpensi)k 5(v)k 3(e)k 3675(\(in)s 3972(terms)s 4489(of)s 4731(bandwidth)s 5649(and)s 1440 -4382(delay\))m 2010(to)s 2238(obtain,)s 2859(and)s 3220(for)s 3525(that)s 3896(reason)s 4488(it)s 4671(is)s 4876(inappropriate)s 1440 -4622(for)m 1714(e)s 5(v)k 3(ery)k 2190(resolv)s 3(er)k 2869(to)s 3066(e)s 3(xhausti)k 5(v)k 3(ely)k 4103(v)s 5(alidate)k 4769(e)s 5(v)k 3(ery)k 5245(response)s 1440 -4862(it)m 1631(recei)s 5(v)k 3(es.)k 2454(Recursi)s 5(v)k 3(e)k 3322(or)s 3569(forw)s 2(arding)k 4533(name)s 5045(serv)s 3(ers,)k 5735(on)s 1440 -5102(the)m 1767(other)s 2260(hand,)s 2782(ha)s 4(v)k 3(e)k 3235(\(or)s 3551(should)s 4167(be)s 4439(able)s 4854(to)s 5093(obtain\))s 5741(all)s 1440 -5342(the)m 1750(information)s 2757(the)s 160 fnt82 3067 -5340(DNS)m 200 fnt82 3452 -5342(has)m 3784(to)s 4006(of)s 5(fer)k 8(,)k 4496(and)s 4851(it)s 5028(w)s 2(ould)k 5592(be)s 5847(a)s 1440 -5582(good)m 1891(thing)s 2352(if)s 2524(the)s 2818(name)s 3300(serv)s 3(er)k 3833(v)s 5(alidated)k 4608(responses)s 5432(before)s 1440 -5822(forw)m 2(arding)k 2363(them)s 2801(to)s 2996(the)s 3279(client.)s 160 fnt82 3860 -5820(BIND)m 200 fnt82 4289 -5822(does)m 4694(not)s 4989(currently)s 5747(do)s 1440 -6062(this,)m 1812(since)s 2255(it)s 2400(is)s 2567(not)s 2857(possible)s 3544(to)s 3734(edit)s 4067(responses)s 200 fnt83 4875 -6061(in)m 5065(situ)s 200 fnt82 5387 -6062(and)m 5710(we)s 1440 -6302(are)m 1751(uncomfortable)s 2981(with)s 3404(the)s 3716(idea)s 4116(of)s 160 fnt82 4351 -6300(BIND)m 200 fnt82 4809 -6302(autonomously)m 1440 -6542(deciding)m 2184(that)s 2540(certain)s 3138(responses)s 3969(should)s 4559(not)s 4872(be)s 5118(forw)s 2(arded)k 1440 -6782(at)m 1633(all.)s 1840 -7093(Our)m 2184(current)s 2781(plan)s 3158(for)s 3424(circumv)s 3(enting)k 4605(this)s 4926(problem)s 5624(is)s 5790(to)s 1440 -7333(restart)m 1981(all)s 2225(queries.)s 2895(T)s 16(o)k 3147(\205restart\206)s 3864(means)s 4418(that)s 4762(upon)s 5208(recei)s 5(ving)k 1440 -7573(an)m 1701(answer)s 2337(from)s 2797(a)s 2958(forw)s 2(arded)k 3847(query)s 13(,)k 4411(a)s 4572(name)s 5076(serv)s 3(er)k 5631(will)s 1440 -7813(v)m 5(alidate)k 2120(the)s 2419(response)s 3171(and)s 3515(insert)s 4012(\205kno)s 5(wn)k 4695(good\206)s 5239(data)s 5626(into)s 1440 -8053(its)m 1702(cache,)s 2279(and)s 2642(then)s 3060(pretend)s 3732(that)s 4105(the)s 4423(original)s 5117(query)s 5646(had)s 1440 -8293(\205just)m 1863(no)s 5(w\206)k 2338(been)s 2762(recei)s 5(v)k 3(ed.)k 3575(All)s 3877(the)s 4168(original)s 4835(RRsets)s 5446(w)s 2(ould)k 1440 -8533(be)m 1700(look)s 2(ed)k 2313(up)s 2585(ag)s 1(ain,)k 3137(and)s 3497(if)s 3690(an)s 3(y)k 4047(are)s 4361(still)s 4730(missing)s 5421(\(either)s 1440 -8773(because)m 2136(no)s 2403(response)s 3166(has)s 3498(yet)s 3808(included)s 4561(them,)s 5076(or)s 5309(because)s 1440 -9013(the)m 1758(responses)s 2606(that)s 2979(included)s 3740(them)s 4213(were)s 4674(in)s 8(v)k 5(alid)k 5289(in)s 5519(some)s 1440 -9253(w)m 2(ay\),)k 1966(ne)s 5(w)k 2373(queries)s 3027(w)s 2(ould)k 3604(be)s 3872(generated)s 4725(to)s 4960(bring)s 5461(in)s 5696(the)s 1440 -9493(missing)m 2131(data.)s 2634(Query)s 3204(restarts)s 3848(are)s 4162(the)s 200 fnt83 4477 -9492(only)m 200 fnt82 4892 -9493(w)m 2(ay)k 5294(to)s 5521(solv)s 3(e)k 1440 -9733(certain)m 2059(other)s 2547(problems)s 3367(currently)s 4164(being)s 4686(encountered)s 5738(by)s 160 fnt82 1440 -9971(BIND)m 128 fnt82 1829 -9884(2)m 200 fnt82 1943 -9973(\211)m 2093(the)s 2386(security)s 3065(bene\207ts)s 3734(will)s 4093(be)s 4331(a)s 4469(happ)s 2(y)k 5005(side)s 5375(ef)s 5(fect.)k 1840 -10284(One)m 2284(interesting)s 3235(question)s 4022(we')s 10(re)k 4576(pondering)s 5497(about)s 1440 -10524(query)m 1957(restarts)s 2592(is)s 2787(whether)s 3491(to)s 3709(preserv)s 3(e)k 4442(the)s 160 fnt82 4748 -10522(AA)m 200 fnt82 5041 -10524(\210ag,)m 5453(which)s 1440 -10764(as)m 1697(discussed)s 2551(earlier)s 3149(will)s 3550(tend)s 3985(to)s 4232(be)s 4512(set)s 4824(on)s 5116(forw)s 2(arded)k 1440 -11004(responses)m 2271(if)s 2450(those)s 2928(responses)s 3759(come)s 4248(from)s 4693(an)s 4939(authoritati)s 5(v)k 3(e)k 1440 -11244(serv)m 3(er)k 8(,)k 1998(b)s 4(ut)k 2283(will)s 2626(tend)s 3003(to)s 3192(be)s 3414(clear)s 3833(on)s 4067(responses)s 4874(satis\207ed)s 5559(from)s 1440 -11484(the)m 1766(forw)s 2(arder')k 11(s)k 2763(cache.)s 3398(W)s 16(e)k 3741(could)s 4267(maintain)s 5046(the)s 5372(current)s 1440 -11724(semantics)m 2298(with)s 2727(the)s 3045(hierarchical)s 4057(cache)s 4584(described)s 5421(belo)s 5(w)k 13(,)k 1440 -11964(b)m 4(ut)k 1741(it')s 11(s)k 2033(not)s 2338(clear)s 2773(that)s 3121(the)s 160 fnt82 3414 -11962(AA)m 200 fnt82 3694 -11964(\210ag)m 4043(on)s 4293(forw)s 2(arded)k 5159(responses)s 1440 -12204(really)m 1937(matters)s 2566(that)s 2909(much.)s 160 fnt82 3497 -12202(DNS)m 200 fnt82 3815 -12204(v2)m 4060(will)s 4414(probably)s 5168(ha)s 4(v)k 3(e)k 5582(a)s 160 fnt82 5715 -12202(AD)m 200 fnt82 1440 -12444(\210ag)m 1795(\211)s 1951(authority)s 2726(desired)s 3356(\211)s 3512(to)s 3723(force)s 4187(forw)s 2(arding)k 5126(in)s 5337(spite)s 5768(of)s 1440 -12684(an)m 3(y)k 1786(cache.)s 2399(The)s 2770(proposed)s 160 fnt82 3562 -12682(AD)m 200 fnt82 3853 -12684(\210ag)m 4213(will)s 4583(probably)s 5353(ha)s 4(v)k 3(e)k 5783(to)s 1440 -12924(bypass)m 2032(the)s 2325(query)s 2829(restart)s 3374(logic)s 3822(described)s 4634(here.)s gsave 1440 -13828 translate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1134 0 0 0 200 240 50 LoutGraphic gsave 0 0 moveto xsize 0 lineto stroke grestore grestore 102 fnt82 0.0 0.0 0.0 setrgbcolor 1440 -14009(1)m 160 fnt82 1491 -14080(A)m 1646(Usenet)s 2129(article)s 2567(once)s 2909(opined,)s 3424(\205)s 128 fnt82 3495 -14078(BIND)m 160 fnt82 3846 -14080(is)m 3992(lik)s 1(e)k 4270(a)s 4381(train)s 4713(wreck)s 5143(inside.)s 11(\206)k 102 fnt82 1440 -14295(2)m 160 fnt82 1491 -14366(Out)m 1770(of)s 1943(zone)s 128 fnt82 2285 -14364(CN)m 4(AME)k 160 fnt82 2741 -14366(s,)m 2883(for)s 3109(e)s 2(xample.)k 200 fnt84 6300 -1578(7.2)m 6550(.)s 6700(Hierar)s 3(chical)k 7818(Cache)s 200 fnt82 6300 -1957(W)m 16(e)k 6613(w)s 2(ould)k 7163(lik)s 2(e)k 7512(to)s 7720(se)s 3(gment)k 8433(the)s 8729(cache)s 9234(such)s 9652(that)s 10003(additional)s 6300 -2197(data)m 6686(can)s 7017(be)s 7260(cached)s 7867(for)s 8154(the)s 8452(duration)s 9171(of)s 9392(a)s 9535(query')s 11(s)k 10176(restarts,)s 6300 -2437(b)m 4(ut)k 6586(not)s 6876(used)s 7276(to)s 7466(satisfy)s 8019(other)s 8463(queries)s 9072(\(either)s 9625(as)s 9825(answer)s 10423(data,)s 6300 -2677(authority)m 7053(data,)s 7468(or)s 7668(additional)s 8498(data\).)s 9029(Ideally)s 13(,)k 9652(the)s 9929(only)s 10318(things)s 6300 -2917(we)m 6586(w)s 2(ould)k 7137(e)s 5(v)k 3(er)k 7525(cache)s 8031(w)s 2(ould)k 8582(be)s 8824(the)s 9121(answer)s 9738(and)s 10080(authority)s 6300 -3157(sections,)m 7051(and)s 7400(only)s 7816(those)s 8297(from)s 8745(authoritati)s 5(v)k 3(e)k 9803(answers)s 10504(\()s 160 fnt82 10570 -3155(AA)m 200 fnt82 6300 -3397(\210ag)m 6676(set\).)s 160 fnt82 7139 -3395(BIND)m 200 fnt82 7528 -3397(')m 11(s)k 7737(current)s 8377(cache)s 8906(design)s 9503(is)s 9712(not)s 10044(ready)s 10563(for)s 6300 -3637(this)m 6654(kind)s 7076(of)s 7309(o)s 3(v)k 3(erloading)k 8322(\211)s 8489(we')s 10(v)k 3(e)k 9029(pushed)s 9661(it)s 9838(about)s 10348(as)s 10580(f)s 2(ar)k 6300 -3877(as)m 6519(it)s 6683(will)s 7046(go)s 7300(just)s 7641(by)s 7895(adding)s 8492(the)s 8789(credibility)s 9660(tags)s 10034(described)s 6300 -4117(earlier)m 11(.)k 6957(What')s 11(s)k 7582(needed)s 8208(is)s 8402(a)s 8552(multile)s 5(v)k 3(el)k 9412(translucent)s 10346(cache)s 6300 -4357(such)m 6762(that)s 7157(each)s 7618(lookup)s 8270(can)s 8643(specify)s 9314(a)s 9499(stack)s 10004(of)s 10267(caches)s 6300 -4597(to)m 6528(be)s 6789(searched,)s 7607(and)s 7968(each)s 8405(cache)s 8930(can)s 9279(be)s 9540(managed)s 10332(by)s 10605(an)s 6300 -4837(appropriate)m 7256(pur)s 3(ge)k 7757(polic)s 3(y)k 13(.)k 200 fnt84 6300 -5378(7.3)m 6550(.)s 6700(Empty)s 7326(Nonterminal)s 8460(Names)s 200 fnt82 6300 -5795(One)m 6691(of)s 6916(the)s 7218(g)s 1(aping)k 7819(holes)s 8298(in)s 160 fnt82 8512 -5793(BIND)m 200 fnt82 8901 -5795(')m 11(s)k 9092(ne)s 5(w)k 9478(nonpromiscuous)s 6300 -6035(polic)m 3(y)k 6845(to)s 5(w)k 2(ards)k 7518(cache)s 8020(data)s 8401(is)s 8583(that)s 8931(the)s 9224(credibility)s 10091(and)s 10429(zone)s 6300 -6275(tags)m 6673(are)s 6968(held)s 7364(in)s 7572(the)s 160 fnt82 7868 -6273(RR)m 200 fnt82 8080 -6275(,)m 8183(not)s 8491(in)s 8699(the)s 8995(name.)s 9579(It)s 9753(is)s 9938(possible)s 10643(to)s 6300 -6515(determine,)m 7194(kno)s 5(wing)k 7937(only)s 8341(a)s 8478(name,)s 9008(whether)s 9698(that)s 10045(name)s 10525(lies)s 6300 -6755(within)m 6858(an)s 3(y)k 7192(of)s 7407(a)s 7544(serv)s 3(er')k 11(s)k 8207(zones)s 8709(of)s 8924(authority)s 13(.)k 160 fnt82 9779 -6753(BIND)m 200 fnt82 10217 -6755(doesn')m 3(t)k 6300 -6995(do)m 6550(that)s 6898(right)s 7324(no)s 5(w)k 13(,)k 7750(it)s 7910(currently)s 8678(checks)s 9269(the)s 160 fnt82 9562 -6993(RR)m 200 fnt82 9774 -6995(s)m 9901(looking)s 10561(for)s 6300 -7235(an)m 3(y)k 6628(that)s 6969(ha)s 4(v)k 3(e)k 7381(a)s 7512(zone)s 7931(tag,)s 8267(and)s 8598(if)s 8762(none)s 9193(are)s 9478(found)s 9987(it)s 10140(assumes)s 6300 -7475(that)m 6669(it)s 6850(is)s 7053(in)s 7279(the)s 7593(cache.)s 8216(This)s 8641(is)s 8844(bad)s 9203(ne)s 5(ws)k 9678(in)s 9904(the)s 10218(case)s 10630(of)s 6300 -7715(empty)m 6854(nonterminal)s 7872(names)s 8436(\211)s 8592(those)s 9068(names)s 9632(which)s 10175(ha)s 4(v)k 3(e)k 10600(no)s 160 fnt82 6300 -7953(RR)m 200 fnt82 6512 -7955(s)m 6635(and)s 6969(are)s 7257(only)s 7658(present)s 8278(to)s 8479(k)s 2(eep)k 8899(tw)s 2(o)k 9242(dots)s 9620(from)s 10053(smashing)s 6300 -8195(into)m 6660(each)s 7074(other)s 11(.)k 6700 -8506(The)m 160 fnt84 7084 -8504(ARP)m 11(A)k 200 fnt82 7589 -8506(domain)m 8261(w)s 2(as)k 8642(once)s 9092(empty)s 9664(other)s 10147(than)s 10564(for)s 6300 -8746(its)m 160 fnt84 6569 -8744(IN-ADDR.ARP)m 11(A)k 200 fnt82 7812 -8746(subdomain,)m 8819(and)s 9189(e)s 5(v)k 3(entually)k 10092(someone)s 6300 -8986(accidentally)m 7317(fed)s 7628(a)s 7773(root)s 8151(serv)s 3(er)k 8690(some)s 160 fnt82 9167 -8984(NS)m 9410(RR)s 200 fnt82 9622 -8986(s)m 9756(at)s 9956(that)s 10311(name.)s 6300 -9226(That)m 6746(root)s 7148(serv)s 3(er)k 7711(told)s 8102(the)s 8426(other)s 8916(root)s 9318(serv)s 3(ers,)k 10008(and)s 10377(those)s 6300 -9466(root)m 6683(serv)s 3(ers)k 7304(told)s 7676(e)s 5(v)k 3(ery)k 8172(name)s 8665(serv)s 3(er)k 9209(on)s 9471(the)s 9776(Internet,)s 10506(and)s 6300 -9706(pretty)m 6816(soon)s 7245(nobody)s 7897(an)s 3(ywhere)k 8720(could)s 9215(do)s 9467(address)s 200 fnt78 10115 -9711(\256)m 200 fnt82 10364 -9706(name)m 6300 -9946(translations.)m 7364(W)s 16(e)k 7672(quickly)s 8318(added)s 8842(some)s 160 fnt82 9310 -9944(NS)m 9553(RR)s 200 fnt82 9765 -9946(s)m 9890(at)s 10081(the)s 160 fnt84 10372 -9944(ARP)m 11(A)k 200 fnt82 6300 -10186(domain)m 6948(and)s 7286(cold)s 7679(started)s 8258(the)s 8551(uni)s 5(v)k 3(erse.)k 6700 -10497(It)m 6891(w)s 2(ould)k 7458(be)s 7716(better)s 8238(if)s 160 fnt82 8429 -10495(BIND)m 200 fnt82 8888 -10497(did)m 9213(not)s 9538(need)s 9984(data)s 10385(to)s 10610(be)s 6300 -10737(present)m 6943(at)s 7155(a)s 7312(name)s 7812(in)s 8036(order)s 8525(to)s 8749(kno)s 5(w)k 9257(that)s 9624(that)s 9991(name)s 10491(w)s 2(as)k 6300 -10977(inside)m 6826(a)s 6965(local)s 7402(zone)s 7829(of)s 8046(authority)s 13(.)k 8903(Astute)s 9473(readers)s 10097(will)s 10457(note)s 6300 -11217(that)m 6659(it')s 11(s)k 6962(really)s 7475(quite)s 7934(easy)s 8348(to)s 8564(add)s 8913(ne)s 5(w)k 9301(names)s 9870(to)s 10086(someone)s 6300 -11457(else')m 11(s)k 6815(authority)s 7609(zones)s 8137(\211)s 8312(just)s 8674(k)s 2(eep)k 9123(in)s 9353(mind)s 9838(during)s 10434(your)s 6300 -11697(e)m 3(xperiments)k 7327(that)s 7683(these)s 8149(ne)s 5(w)k 8534(names)s 9100(w)s 2(on')k 3(t)k 9618(appear)s 10206(in)s 10419(zone)s 6300 -11937(transfers,)m 7113(so)s 7370(you)s 7750(will)s 8139(ha)s 4(v)k 3(e)k 8588(to)s 8823(infect)s 9355(each)s 9799(authoritati)s 5(v)k 3(e)k 6300 -12177(name)m 6781(serv)s 3(er)k 7313(manually)s 13(.)k 200 fnt84 6300 -12718(7.4)m 6550(.)s 6700(Uni\207ed)s 7370(Zone)s 7852(Cut)s 8223(V)s 7(iew)k 200 fnt82 6300 -13097(Right)m 6815(no)s 5(w)k 7226(the)s 7541(answer)s 8176(you')s 2(ll)k 8722(get)s 9037(for)s 9341(an)s 160 fnt82 9601 -13095(NS)m 200 fnt82 9876 -13097(query)m 10402(for)s 10706(a)s 6300 -13337(domain)m 6948(will)s 7307(depend)s 7933(on)s 8183(who)s 8577(you)s 8927(ask.)s 9342(If)s 9524(you)s 9874(ask)s 10189(a)s 10327(serv)s 3(er)k 6300 -13577(of)m 6501(the)s 6779(parent)s 7311(zone,)s 7772(you)s 8107(will)s 8451(get)s 8729(the)s 9007(dele)s 3(g)k 1(ation)k 9867(information)s 6300 -13817(from)m 6762(\205abo)s 3(v)k 3(e\206)k 7483(the)s 7801(zone)s 8252(cut.)s 8670(If)s 8877(you)s 9252(ask)s 9592(the)s 9910(a)s 10073(serv)s 3(er)k 10630(of)s 6300 -14057(the)m 6599(zone)s 7031(itself,)s 7533(you)s 7889(will)s 8254(get)s 8553(the)s 8852(actual)s 9382(authority)s 10157(data)s 10544(\(an)s 160 fnt82 6300 -14295(NS)m 200 fnt82 6586 -14297(RRset)m 7155(and)s 7526(an)s 160 fnt82 7797 -14295(SO)m 5(A)k 200 fnt82 8110 -14297(.\))m 8309(W)s 16(e)k 8652(belie)s 5(v)k 3(e)k 9301(it)s 9494(w)s 2(ould)k 10074(be)s 10345(better)s grestore pgsave restore showpage %%Page: ? 8 %%BeginPageSetup %%PageResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Helvetica-Bold /pgsave save def %%IncludeResource: font Helvetica-Bold /Helvetica-Boldfnt37 vec1 /Helvetica-Bold LoutRecode /fnt37 { /Helvetica-Boldfnt37 LoutFont } def 0.0500 dup scale 10 setlinewidth %%EndPageSetup gsave 0 15840 translate 0.0000 rotate grestore gsave 0 15840 translate 0.0000 rotate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1440 -1576(in)m 1656(most)s 2104(cases)s 2583(to)s 2799(ha)s 4(v)k 3(e)k 3229(the)s 3533(serv)s 3(er)k 4076(for)s 4369(the)s 4673(parent)s 5231(zone)s 5668(use)s 1440 -1816(its)m 1704(dele)s 3(g)k 1(ation)k 2606(data)s 3014(only)s 3446(as)s 3688(hints,)s 4202(and)s 4567(that)s 4942(it)s 5129(should)s 5738(go)s 1440 -2056(out)m 1787(and)s 2167(ask)s 2524(the)s 2859(serv)s 3(ers)k 3510(named)s 4133(therein)s 4777(for)s 5101(their)s 5557(vie)s 5(w)k 1440 -2296(of)m 1694(the)s 2025(real)s 2410(dele)s 3(g)k 1(ation)k 3323(data.)s 3842(This)s 4284(w)s 2(ould)k 4869(pre)s 5(v)k 3(ent)k 5546(most)s 1440 -2536(of)m 1696(the)s 2029(current)s 2682(instances)s 3500(of)s 3756(lame)s 4232(dele)s 3(g)k 1(ation,)k 5197(since)s 5695(the)s 1440 -2776(lameness)m 2226(w)s 2(ould)k 2781(be)s 3027(detected)s 3747(by)s 4005(the)s 4306(serv)s 3(er)k 4846(for)s 5136(the)s 5437(parent)s 1440 -3016(zone)m 1867(where)s 2404(it)s 2565(can)s 2892(most)s 3330(lik)s 2(ely)k 3832(be)s 4071(\207x)s 3(ed)k 4518(by)s 4769(the)s 5063(local)s 5500(name)s 1440 -3256(serv)m 3(er)k 1985(administrator)s 11(.)k 3197(The)s 3570(lame)s 4019(data)s 4413(can)s 4752(be)s 5003(elided)s 5552(from)s 1440 -3496(dele)m 3(g)k 1(ation)k 2406(responses,)s 3370(thus)s 3843(pre)s 5(v)k 3(enting)k 4828(other)s 5378(serv)s 3(ers)k 1440 -3736(from)m 1907(follo)s 5(wing)k 2757(it)s 2947(and)s 3315(ha)s 4(ving)k 3934(each)s 4378(other)s 4867(serv)s 3(er)k 200 fnt84 5429 -3737(syslog)m 200 fnt82 1440 -3976(the)m 1756(lameness)s 2557(information)s 3570(to)s 3798(their)s 4235(local,)s 4744(helpless,)s 5507(name)s 1440 -4216(serv)m 3(er)k 1954(administrator)s 11(.)k 3135(Naturally)s 3918(we)s 4182(w)s 2(ould)k 4711(e)s 3(xtend)k 5271(the)s 5546(logic)s 1440 -4456(so)m 1703(that)s 2087(the)s 2416(zone)s 2878(serv)s 3(ers)k 3523(v)s 5(alidate)k 4233(their)s 4683(o)s 5(wn)k 5108(dele)s 3(g)k 1(ation)k 1440 -4696(information)m 2466(and)s 2840(lik)s 2(e)k 5(wise)k 3581(elide)s 4053(lame)s 4525(information)s 5551(from)s 1440 -4936(their)m 1854(responses.)s 1840 -5247(This)m 2253(uni\207cation)s 3164(w)s 2(ould)k 3720(put)s 4034(a)s 4181(stop)s 4572(to)s 4786(the)s 5088(unpleasant)s 1440 -5487(question,)m 2269(\205ho)s 5(w)k 2800(can)s 3180(both)s 3639(the)s 3986(parent)s 4587(and)s 4979(child)s 5481(zones)s 1440 -5727(answer)m 2108(authoritati)s 5(v)k 3(ely)k 3365(if)s 3591(the)s 3(y)k 4036(are)s 4383(allo)s 5(wed)k 5113(to)s 5373(answer)s 1440 -5967(dif)m 5(ferently?\206)k 2598(W)s 16(e)k 2956(may)s 3397(implement)s 4346(a)s 4532(stopg)s 1(ap)k 5249(whereby)s 1440 -6207(parents)m 2084(stop)s 2486(setting)s 3086(the)s 160 fnt82 3399 -6205(AA)m 200 fnt82 3699 -6207(\210ag)m 4068(on)s 4338(referral)s 4991(responses)s 5834(\211)s 1440 -6447(since)m 1902(the)s 2199(child)s 2651(is)s 2837(really)s 3343(the)s 3640(authority)s 13(.)k 4450(Unfortunately)s 13(,)k 5658(last)s 1440 -6687(time)m 1846(we)s 2131(changed)s 2848(the)s 3144(w)s 2(ay)k 3527(we)s 3812(handed)s 4441(out)s 4749(referrals,)s 5512(some)s 1440 -6927(major)m 1988(clients)s 2590(could)s 3117(not)s 3456(handle)s 4071(it)s 4265(and)s 4637(we)s 4953(had)s 5325(to)s 5564(back)s 1440 -7167(out)m 1767(to)s 1994(older)s 8(,)k 2517(brok)s 2(en)k 3141(beha)s 4(viour)k 11(.)k 4045(K)s 5(eeping)k 4787(track)s 5256(of)s 5494(client)s 1440 -7407(sensiti)m 5(vities)k 2422(has)s 2737(become)s 3406(a)s 3544(\207rst)s 3903(order)s 4373(task)s 4743(for)s 5025(us.)s 1840 -7718(What)m 2318(we')s 10(re)k 2807(wrestling)s 3594(with)s 3995(on)s 4242(the)s 4532(uni\207cation)s 5431(theory)s 1440 -7958(is)m 1667(whether)s 2403(the)s 2741(root)s 3157(serv)s 3(ers)k 3811(should)s 4438(try)s 4754(to)s 5004(v)s 3(erify)k 5571(their)s 1440 -8198(dele)m 3(g)k 1(ation)k 2360(data.)s 2886(W)s 8(ith)k 3371(millions)s 4118(of)s 4379(zones)s 4927(dele)s 3(g)k 1(ated,)k 5830(it)s 1440 -8438(could)m 1948(tak)s 2(e)k 2342(quite)s 2805(a)s 2958(while)s 3465(for)s 3762(each)s 4191(root)s 4577(serv)s 3(er)k 5124(to)s 5344(get)s 5652(this)s 1440 -8678(done)m 1869(at)s 2053(startup)s 2635(time,)s 3079(so)s 3297(if)s 3459(we)s 3732(do)s 3973(it,)s 4174(it')s 2(ll)k 4499(ha)s 4(v)k 3(e)k 4909(to)s 5105(come)s 5577(after)s 1440 -8918(we)m 1722(mak)s 2(e)k 2201(the)s 2494(cache)s 2996(persistent.)s 240 fnt84 1440 -9606(8.)m 192 fnt84 1740 -9604(DNSSEC)m 240 fnt84 2554 -9606(\211)m 2734(The)s 192 fnt84 3193 -9604(IETF)m 3700(DNS)s 240 fnt84 4142 -9606(Security)m 192 fnt84 5051 -9604(WG)m 200 fnt82 1440 -10031(As)m 1743(we')s 10(v)k 3(e)k 2298(mentioned)s 3221(se)s 5(v)k 3(eral)k 3857(times)s 4369(in)s 4606(this)s 4975(paper)s 8(,)k 5541(there)s 1440 -10271(is)m 1626(presently)s 2409(w)s 2(ork)k 2871(underw)s 2(ay)k 3709(to)s 3918(add)s 4260(security)s 4943(to)s 160 fnt82 5152 -10269(DNS)m 200 fnt82 5470 -10271(.)m 5624(The)s 1440 -10511(current)m 2069(model)s 2633(is)s 2831(something)s 3727(lik)s 2(e)k 4089(a)s 4243(\205web)s 4729(of)s 4961(trust,)s 14(\206)k 5504(using)s 1440 -10751(public)m 2003(k)s 2(e)k 3(y)k 2351(technology)s 13(.)k 3389(A)s 3598(ne)s 5(w)k 160 fnt82 3990 -10749(KEY)m 4357(RR)s 200 fnt82 4634 -10751(holds)m 5131(the)s 5439(public)s 1440 -10991(k)m 2(e)k 3(y)k 1812(and)s 2189(is)s 2410(added)s 2975(to)s 3219(the)s 3551(dele)s 3(g)k 1(ation)k 4465(data.)s 4985(This)s 5428(k)s 2(e)k 3(y)k 5800(is)s 1440 -11231(suf\207cient)m 2246(to)s 2467(v)s 5(alidate)k 3157(signed)s 3743(answers)s 4449(b)s 4(ut)k 4766(not)s 5087(to)s 5308(actually)s 1440 -11471(sign)m 1832(them.)s 2390(Signing)s 3071(is)s 3263(done)s 3711(by)s 3971(the)s 4274(authoritati)s 5(v)k 3(e)k 5331(serv)s 3(ers,)k 1440 -11711(and)m 1778(the)s 160 fnt82 2071 -11709(SIG)m 2367(RR)s 200 fnt82 2629 -11711(is)m 2811(used)s 3226(to)s 3431(carry)s 3889(the)s 4182(signature)s 4961(of)s 5177(an)s 3(y)k 5512(gi)s 5(v)k 3(en)k 1440 -11951(RRset.)m 1840 -12262(Once)m 160 fnt82 2360 -12260(DNSSEC)m 200 fnt82 3069 -12262(is)m 3301(widely)s 3943(implemented,)s 5132(it)s 5342(will)s 5751(be)s 1440 -12502(possible)m 2228(to)s 2519(determine)s 3450(from)s 3973(e)s 3(xamination)k 5090(of)s 5392(a)s 160 fnt82 5616 -12500(DNS)m 200 fnt82 1440 -12742(response)m 2184(whether)s 2873(its)s 3108(contents)s 3819(are)s 4109(authentic.)s 4986(This)s 5388(sounds)s 1440 -12982(simple)m 2019(b)s 4(ut)k 2319(it)s 2478(has)s 2792(deep)s 3217(reaching)s 3951(consequences)s 5094(in)s 5298(both)s 5702(the)s 1440 -13222(protocol)m 2140(and)s 2464(the)s 2743(implementation)s 4028(\211)s 4164(which)s 4687(is)s 4855(wh)s 1(y)k 5234(it')s 11(s)k 5512(tak)s 2(en)k 1440 -13462(more)m 1895(than)s 2284(a)s 2418(year)s 2806(to)s 3007(choose)s 3606(a)s 3740(security)s 4415(model)s 4959(and)s 5293(design)s 5859(a)s 1440 -13702(solution.)m 2234(W)s 16(e)k 2546(e)s 3(xpect)k 3114(it)s 3276(to)s 3483(be)s 3723(another)s 4372(year)s 4766(before)s 160 fnt82 5326 -13700(DNSSEC)m 200 fnt82 1440 -13942(is)m 1612(in)s 1807(wide)s 2234(use)s 2539(on)s 2779(the)s 3062(leading)s 3688(edge,)s 4154(and)s 4482(at)s 4665(least)s 5068(a)s 5196(year)s 5578(after)s 1440 -14182(that)m 1788(before)s 2346(its)s 2583(use)s 2898(is)s 3080(commonplace)s 4247(on)s 4497(the)s 4790(Internet.)s 240 fnt84 6300 -1605(9.)m 6600(Which)s 192 fnt84 7338 -1603(BIND)m 240 fnt84 7876 -1605(V)m 24(ersion)k 8709(Plugs)s 9327(Which)s 10065(Hole?)s 200 fnt82 6300 -2030(Al)m 2(w)k 2(ays)k 6951(assume)s 7583(that)s 7928(you)s 8275(need)s 8698(the)s 8988(latest)s 160 fnt82 9453 -2028(BIND)m 200 fnt82 9889 -2030(you)m 10236(can)s 10559(lay)s 6300 -2270(your)m 6728(hands)s 7255(on.)s 7567(Our)s 160 fnt82 7939 -2268(RCS)m 200 fnt82 8301 -2270(libraries)m 9013(ha)s 4(v)k 3(e)k 9444(the)s 9749(whole)s 10298(sordid)s 6300 -2510(story)m 13(,)k 6785(and)s 7123(from)s 7560(them)s 8008(we)s 8290(could)s 8783(deri)s 5(v)k 3(e)k 9322(a)s 9460(table)s 9896(of)s 10112(V)s 22(ersions)k 6300 -2750(-vs-)m 6668(V)s 15(ulnerabilities.)k 7993(Y)s 22(ou)k 8374(can)s 8709(bet)s 9011(that)s 9368(the)s 9670(upper)s 10183(class)s 10627(of)s 6300 -2990(attack)m 2(ers)k 7063(can)s 7399(do)s 7659(this)s 8006(as)s 8231(well.)s 8733(Deri)s 5(ving)k 9496(that)s 9854(table)s 10300(w)s 2(ould)k 6300 -3230(be)m 6553(a)s 6706(lot)s 6981(of)s 7212(w)s 2(ork)k 7685(and)s 8038(publishing)s 8945(it)s 9120(might)s 9650(do)s 9915(more)s 10389(harm)s 6300 -3470(\(gi)m 5(ving)k 6907(folks)s 7341(the)s 7620(f)s 2(alse)k 8028(idea)s 8395(that)s 8729(the)s 3(y)k 9105(don')s 3(t)k 9559(need)s 9971(to)s 10162(upgrade)s 6300 -3710(their)m 160 fnt82 6730 -3708(BIND)m 200 fnt82 7119 -3710(\))m 7251(than)s 7660(good)s 8126(\(letting)s 8766(folks)s 9230(see)s 9549(ho)s 5(w)k 9954(bad)s 10308(things)s 6300 -3950(really)m 6812(are.\))s 7280(When)s 7816(we)s 8108(took)s 8523(o)s 3(v)k 3(er)k 160 fnt82 8931 -3948(BIND)m 200 fnt82 9320 -3950(,)m 9430(the)s 9733(latest)s 10211(v)s 3(ersion)k 6300 -4190(w)m 2(as)k 160 fnt82 6655 -4188(UCB)m 200 fnt82 7030 -4190(4.8.3.)m 7578(Our)s 7936(\207rst)s 8293(release)s 8891(w)s 2(as)k 160 fnt82 9246 -4188(DECWRL)m 200 fnt82 9966 -4190(4.9,)m 10314(which)s 6300 -4430(contained)m 7177(quite)s 7678(a)s 7869(fe)s 5(w)k 8265(security)s 8997(related)s 9640(changes.)s 10484(Our)s 6300 -4670(current)m 6916(release)s 7519(as)s 7737(of)s 7956(this)s 8296(writing)s 8924(is)s 160 fnt82 9109 -4668(ISC)m 200 fnt82 9409 -4670(4.9.3)m 128 fnt82 9809 -4581(1)m 200 fnt82 9873 -4670(,)m 9976(and)s 10317(it)s 10480(also)s 6300 -4910(contains)m 7013(quite)s 7461(a)s 7599(fe)s 5(w)k 7942(security)s 8621(related)s 9211(changes.)s 200 fnt84 6300 -5571(Refer)m 3(ences)k 200 fnt82 6300 -5950([)m 6366(Bel95a)s 6930(])s 7300(Ste)s 5(v)k 3(en)k 7953(M.)s 8299(Bello)s 3(vin)k 8982(.)s 9201(Us)s 9422(ing)s 9796(the)s 10158(Do)s 10402(main)s 7300 -6190(Name)m 7889(Sys)s 8177(tem)s 8589(for)s 8935(Syetem)s 9646(Break-)s 10187(ins)s 10419(.)s 10633(In)s 200 fnt83 7300 -6429(Pr)m 9(o)k 7590(ceed)s 7954(ings)s 8449(of)s 8767(the)s 9173(F)s 9(ifth)k 9714(Usenix)s 160 fnt83 10429 -6427(UNIX)m 200 fnt83 7300 -6669(Se)m 7488(cu)s 7676(ri)s 7808(ty)s 8094(Sy)s 8282(po)s 8482(sium,)s 9051(Salt)s 9504(Lak)s 2(e)k 10032(City)s 11(,)k 160 fnt83 10545 -6667(UT)m 200 fnt82 10748 -6670(.)m 7300 -6910(A)m 22(T&T Bell Laboratories)k 9257(,)s 9357(1995)s 9757(.)s 6300 -7314([)m 6366(RFC1034)s 7143(])s 7300(P)s 3(aul)k 7797(V)s 25(.)k 8112(Mockapetris)s 9252(\(ISI\))s 9627(.)s 9873(RFC)s 10396(1034)s 7300 -7554(\211)m 7496(Domain)s 8234(Concepts)s 9071(and)s 9455(F)s 3(acilities)k 10179(,)s 10325(IETF)s 10746(,)s 7300 -7794(1987)m 7700(.)s 6300 -8175([)m 6366(RFC1035)s 7143(])s 7300(P)s 3(aul)k 7756(V)s 25(.)k 8030(Mockapetris)s 9129(\(ISI\))s 9504(.)s 9709(RFC)s 10191(1035)s 10696(\211)s 7300 -8415(Domain)m 8015(Implementation)s 9348(and)s 9709(Speci\207cation)s 10748(,)s 7300 -8655(IETF)m 7721(,)s 7821(1987)s 8221(.)s 6300 -9059([)m 6366(RFC1123)s 7143(])s 7300(R.)s 7569(Braden,)s 8280(Ed)s 8502(i)s 8557(tor)s 8778(.)s 8964(RFC)s 9427(1123)s 9913(\211)s 10099(Re)s 10320(quire)s 10729(-)s 7300 -9299(ments)m 7840(for)s 8137(In)s 8303(ter)s 8512(net)s 8820(Hosts)s 9338(\211)s 9503(Ap)s 9747(pli)s 9957(ca)s 10133(tion)s 10508(and)s 7300 -9539(Sup)m 7611(port)s 7932(,)s 8032(IETF)s 8453(,)s 8553(1989)s 8953(.)s 6300 -9959([)m 6366(RFC1510)s 7143(])s 7300(John)s 7795(T)s 14(.)k 8071(K)s 7(ohl,)k 8631(et)s 8892(al)s 9035(.)s 9253(RFC)s 9748(1510)s 10266(\211)s 10484(The)s 7300 -10199(K)m 5(erberos)k 8124(Netw)s 2(ork)k 8919(Authentication)s 10202(Service)s 7300 -10439(\(V5\))m 7676(,)s 7776(IETF)s 8197(,)s 8297(1993)s 8697(.)s 6300 -10850([)m 6366(RFC1760)s 7143(])s 7300(N.)s 7651(Haller)s 8147(.)s 8404(RFC)s 8938(1760)s 9495(\211)s 9752(The)s 10219(S/KEY)s 7300 -11090(One-T)m 7(ime)k 8161(P)s 3(assw)k 2(ord)k 8969(System)s 9555(,)s 9655(IETF)s 10076(,)s 10176(1995)s 10576(.)s gsave 6300 -14117 translate 200 fnt82 0.0 0.0 0.0 setrgbcolor 1134 0 0 0 200 240 50 LoutGraphic gsave 0 0 moveto xsize 0 lineto stroke grestore grestore 102 fnt82 0.0 0.0 0.0 setrgbcolor 6300 -14298(1)m 160 fnt82 6351 -14369(see)m 140 fnt37 6595 -14370(http://www)m 5(.isc.or)k 2(g/isc/)k 160 fnt82 8056 -14369(.)m grestore pgsave restore showpage %%Trailer %%DocumentNeededResources: font Helvetica-Bold %%+ font Symbol %%+ font Times-Roman %%+ font Times-Italic %%+ font Times-Bold %%DocumentSuppliedResources: procset LoutStartUp %%+ procset LoutTabPrependGraphic %%+ procset LoutFigPrependGraphic %%+ encoding vec1 %%Pages: 8 %%EOF