Sikkerhedshensyn for MCOP

Eftersom en MCOP-server lytter på en TCP-port, kan potentielt set alle (hvis du er forbundet til internettet) forsøge at forbinde til en MCOP-tjeneste. Derfor er det vigtigt at identificere klienter. MCOP bruger md5-auth protokollen.

Protokollen md5-auth gør følgende for at sikre at kun udvalgte (pålidelige) klienter kan forbinde til en server:

For at give hver klient den hemmelige cookie, putter MCOP den (normalt) i mcop mappen (i /tmp/mcop-USER/secret-cookie). Du kan naturligvis kopiere den til andre maskiner. Men hvis du gør det, så brug en sikker overførselsmekanisme, såsom scp (fra ssh).

Godkendelsen af klienter anvender følgende skridt:

  1. [SERVER] opret en ny (tilfældig) cookie R

  2. [SERVER] send den til klienten

  3. [KLIENT] læs den "hemmelige cookie" S fra en fil

  4. [KLIENT] bland cookierne R og S for at oprette en blandet cookie M med MD5-algoritmen

  5. [KLIENT] send M til serveren

  6. [SERVER] verificerer at blanding af R og S giver præcis samme cookie som cookien M som blev modtaget fra klienten. Hvis dette stemmer er godkendelsen lykkedes.

Denne algoritme skulle være sikker, under forudsætning af at

  1. De hemmelige og tilfældige cookier er “tilfældige nok” og

  2. MD5-algoritmen ikke tillader at “originalteksten” kan afgøres, det vil sige den hemmelige cookie S og den tilfældige cookie R (som er kendt alligevel), fra den blandede cookie M.

MCOP-protokollen starter hver ny forbindelse med en godkendelsesprocess. Basalt ser den sådan her ud:

  1. Serveren sender meddelelsen ServerHello, som beskriver de kendte godkendelsesprotokoller.

  2. Klienten sender meddelelsen ClientHello, som indeholder godkendelsesinformation.

  3. Serveren sender meddelelsen AuthAccept.

For at se at sikkerheden virkelig virker, bør vi kigge på hvordan meddelelser behandles for ikke godkendte forbindelser: