Första intrycket är viktigt

av Stefan Pettersson

TOFU är inte bara något som vegetarianer, av outgrundlig anledning, äter. (Hej CJ!) Det är även en förkortning av begreppet trust on first use. Något som Stanley utnyttjade när han sade: ”Doctor Livingstone, I presume?” i Afrika för hundra år sedan. Vad menar jag nu?

Principen är att du bara behöver lita blint på en motpart vid din första kontakt med dem. Tänk dig en blind date; din kompis (förmedlaren av dejt) säger att din träff kommer att stå och vänta utanför Åhléns entré vid Drottninggatan klockan 18 på fredag. När du kommer dit, hur vet du att det är rätt person du går fram till?

Det gör du inte.

Man kan ju tänka sig att någon med alldeles för mycket fritid skulle kunna ställa sig utanför Åhléns eller vid ”ringen” på Centralstation på luncher och kvällar. Sedan väntar de bara på att någon går fram, ser lite tveksam ut och frågar om det är Adam. Denne svarar jakande och ser vart det hela leder.

Ganska osannolikt men hey…

Vid dejt nummer två kommer det däremot att vara betydligt mindre riskfyllt då ni kommer att känna igen varandra till utseendet och inte behöver lita blint på varandra. Notera här att du kan ha haft fel vid första dejten utan att ha upptäckt det ännu. Låt oss dock anta att det i s f hade framgått vid den här tiden. (Skadan kan i o f redan vara gjord…)

Jag tar upp det här för att ”blind date-metoden” (TOFU) är en säkerhetsfunktion i flera av de protokoll vi använder varje dag. De mest framgångsrika exemplena är vanlig SSH samt SSL i de fall ingen pålitlig tredjepart (Certificate Authority) har signerat certifikatet.

Du har säkert sett följande någon gång när du har loggat in på en SSH-server första gången:

$ ssh 10.0.0.1
The authenticity of host ‘10.0.0.1 (10.0.0.1)’ can’t be established.
RSA key fingerprint is 92:0f:34:9d:a5:ea:65:70:a3:70:56:0f:4e:fa:6e:33.
Are you sure you want to continue connecting (yes/no)?

Om du svarar yes tar du precis samma risk som när du går fram till någon utanför Åhléns och frågar om han heter Adam. Du kanske har rätt och vid er nästa dejt (inloggning) kommer du inte att behöva ta ställning i frågan.

Men. Tänk dig att du vid dejt nummer tre föreslår att Adam ska komma över och käka middag. Vid utsatt tid ringer det på dörren men där står inte Adam utan någon helt annan lirare som du aldrig har träffat förut med blommor och en chokladask i handen.

$ ssh 10.0.0.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
09:c3:02:a4:50:0d:c4:d0:0b:03:be:98:5d:c8:00:8e.
Please contact your system administrator.
Add correct host key in /home/stef/.ssh/known_hosts to get rid of this message.
Offending key in /home/stef/.ssh/known_hosts:3
RSA host key for 10.0.0.1 has changed and you have requested strict checking.
Host key verification failed.
$

Hur handlar du nu? Om du var min kompis/dotter/syster skulle jag förstås rekommendera att du slog igen dörren alternativt sparkade icke-Adam i magen och sedan slog igen dörren.

Notera att den här händelsen är säkerhetsmässigt mycket värre än problemet ni hade vid det första mötet. Då fanns ingen möjlighet att avgöra om det var något fuffens, det var möjligt att det var okej. Nu är det tveklöst att något är i görningen.

Men, som felmeddelandet i OpenSSH beskriver, det är möjligt att nyckeln bara har ändrats, att icke-Adam gick till fel adress eller att du hade glömt att ta på dig glasögonen och inte känner igenom honom. Samtidigt kan det ju också vara så att liraren utanför dörren är en listig inbrottstjuv eller något värre. Det viktiga är att undersöka omständigheterna och fatta beslut utifrån dem och att inte bara chansa och släppa in icke-Adam utan vidare. Vid ert första möte var du tvungen, nu har du mer information.

Hur var det med herr Stanley då? Chansade han vid sitt första möte med Dr. Livingstone? Inte helt förstås, han hade säkerligen en uppfattning om hur doktorn såg ut redan innan han åkte. Blott en vag uppfattning om att det är en vit, skotsk herre runt 60 fungerade säkerligen ganska väl i Tanzania under 1800-talet. Jag har svårt att tänka mig att det drällde av dem.

Om vi inte vill lita blint på någon godtycklig person utanför Åhléns kan vi göra samma sak som Stanley. Ta reda på hur personen ifråga ser ut i förväg, helt enkelt. Eller för datorer, se till att du på förhand vet vilket fingerprint (SSH eller SSL-certifikat) den kommer att presentera. Då behöver du inte chansa.

Trevlig helg!

Update: om ni är intresserade av mer kan ni läsa Perspectives: Improving SSH-style Host Authentication with Multi-path Network Probing (pdf) eller Certified Lies: Detecting and Defeating Government Interception Attacks Against SSL (pdf).


Stefan Pettersson

Annonser