next up previous contents index
Next: Ressurs-databasen Up: X Windows og sikkerhet Previous: Kommandoen xhost

Protokollen MIT-MAGIC-COOKIE-1

Protokollen MIT-MAGIC-COOKIE-1 baserer seg på mange måtar på aksess-rettighetane for filar i UNIX. På heime katalogen opprettar ein ei fil .Xauthority, denne skal kun vere lesbar og skrivbar for eigar. 

    zevs# ls -al .Xauthority
-rw----   1 trondk										          47 Nov  5 20:12 .Xauthority
zevs#  
I denne fila ligg det innslag som inneheld følgande parametre. Det symbolske namnet for display dvs. verdien av miljø-variabelen DISPLAY, protokoll[*] og den såkalla COOKIE. Begrepet COOKIE blir brukt om ein hexadesimal streng som er ein slags nøkkel for å kunne aksessere Xserveren. For kvar gong ein klient skal kontakte Xserveren vil Xserver-prosessen slå opp i denne fila og hente ut denne strengen og be om å få tilsvarande streng frå klienten. Dersom begge strengane er like vil Xserveren la klienten få tilgang. Formatet på .Xauthority er ikkje lesbart,- derfor må ein bruke programmet xauth  for å kunne manipulere på innholdet i fila.

    arion# xauth 
Using authority file /home/zevs/ifitrondk/.Xauthority
xauth> help
		add dpyname protoname hexkey										 add entry
		exit										                 save changes and exit program
		extract filename dpyname...										extract entries into file
		help [topic]										         print help
		info										                 print information about entries
		list [dpyname...]										    list entries
		merge filename...										    merge entries from files
		nextract filename dpyname...										 numerically extract entries
		nlist [dpyname...]										   numerically list entries
		nmerge filename...										   numerically merge entries
		quit										                 abort changes and exit program
		remove dpyname...										    remove entries
		source filename										      read commands from file
		?										                    list available commands
xauth>
Her har vi starta opp xauth og utført kommandoen help. Programmet er laga slik at ein treng ikkje å starte det opp første og gje kommandoar etterpå. Ein kan godt bruke programmet i batch-kommandoar,- som f.eks xauth list eller xauth remove $DISPLAY. På våre maskiner har eg laga programmet cookie som lagar ein tilfeldig heksadesimal streng som kan brukast for å lage nøklar til xauth i batch-kommandoar. Den vert brukt på følgande måte:

zevs# xauth add :0 . `cookie`
zevs#  
Punktumet i kommandoen er ein alias for protokollen MIT-MAGIC-COOKIE-1,- dei andre protokollane brukar andre tegn. Etter at ein har lagt inn nøkkel for display kan ein sjekke med kommandoen:

    zevs# xauth list
zevs/unix:0				MIT-MAGIC-COOKIE-1								2bbc8f6f31d7147c14b9b10515de155a57a
zevs#  
Ved feil i .Xauthority eller forsøk på tilgang til ein Xserver utan nøkkel vil ein få:

zevs# xterm &
Xlib:  connection to ":0.0" refused by server
Xlib:  Client is not authorized to connect to Server
Error: Can't open display: :0.0
zevs#  
På våre maskiner vil dette ikkje vere noko problem,- stort sett vil ein logge inn via xdm ( X Display Manager ),- dette programmet vil som standard lage ein tilfeldig nøkkel eller COOKIE for den som loggar inn. I tilegg har ein kun ein heime-katalog i nettet og dermed er .Xauthority-fila den samme uansett kva maskin ein brukar. Problemet oppstår når ein loggar på andre maskiner der ein har ein anna heimekatalog. Derfor må ein overføre riktig innslag i .Xauthority over til heimekataloen på den andre maskina. På UNIT har ein laga eit program for å automatisk overføre COOKIE og starte klientar på andre maskiner. Dette programmet heiter startxcmd.

zevs# startxcmd vier.idt.unit.no
zevs#  
Dersom ein startar startxcmd kun med maskin-namnet som parameter vil ein starte opp ein xterm på denne maskina. Ønskjer ein å starte opp noko anna enn xterm kan ein spesifisere kommandoen etter maskin-namnet.

zevs# startxcmd vier.idt.unit.no xmaple
zevs#  
Dersom ein ikkje finn denne kommandoen må ein ta i bruk xauth sine batch-mulighetar og programmet xon.

zevs# xauth extract - $DISPLAY | rsh vier.idt.unit.no xauth      merge -
zevs# xon vier.idt.unit.no xmaple &
zevs#  
Programmet xon  startar klientar på andre maskiner men er mykje meir primitiv enn startxcmd,- men i prinsippet kan ein seie at xon gjer det same som startxcmd.

I X11R6 har ein teke i bruk sikkerthetsprotokollen kerberos,- sidan dette er rimeleg ferskt har eg endå ikkje hatt mulighet til å sette meg inn i hverken teorien eller korleis kerberos fungerer i praksis. Det er iallefall liten tvil om at kerberos vil blir brukt i alle sikkerthetsmekanismer for distribuert databehandling som X Windows, fjerninnlogging, DCE ( Distributed Computing Enviroment ), osv...


next up previous contents index
Next: Ressurs-databasen Up: X Windows og sikkerhet Previous: Kommandoen xhost
Trond.Kandal@itea.ntnu.no