
Har du noen gang tenkt på hva som egentlig skjer når du trykker "Send"? Vi bruker e-post for å identifisere brukerne i LMS'ene våre, sende dem diplomer, sende dem påminnelser om kurs osv. Så da bør vi jo også vite litt om hvordan dette fungerer.
Ray Tomlinson regnes som den første som sendte en e-post, det var i 1971. Han var en av utviklerne av ARPANET, som var forløperen til internett. Han var også den som fant på å bruke @-tegnet for å skille brukernavn fra domenenavn og det åpnet for å sende meldinger ikke bare mellom brukere på samme maskin men på tvers av nettverk.
For å sende e-post kobler din e-postklient seg opp mot en server. Serveren som skal sende e-post kalles SMTP-server (Simple Mail Transfer Protocol). For å motta e-post brukes som regel enten en POP3-server (Post Office Protocol) eller en IMAP-server (Internet Mail Access Protocol).
SMTP-serveren sender e-posten til en server som kalles MX-server (Mail Exchange). MX-serveren sender så e-posten videre til mottakerens POP3- eller IMAP-server. Som så sender e-posten videre til mottakerens e-postklient. SMTP-serveren lytter på port 25, POP3-serveren lytter på port 110 og IMAP-serveren lytter på port 143.
For at SMTP-serveren skal vite hvilken server den skal kontakte for å sende e-posten må den bruke DNS for å få vite det. DNS gikk vi jo gjennom i luke 8 så gå dit om du trenger å friske opp igjen minnet. La oss si at vi skal sende en e-post til en bruker som har e-postadressen post@task.no. Domenet task.no er registrert hos DomeneShop, og vi har satt opp CloudFlare som vår navne-server.
Når SMTP-serveren da ber om å få vite MX-serveren for task.no så får den adressen til Google sin mail-server (aspmx.l.google.com) siden det er der vår e-post håndteres. SMTP-serveren kontakter så aspmx.l.google.com og kommunikasjonen mellom dem er temmelig enkel. SMTP-serveren forstår bare noen enkle kommandoer som HELO, MAIL FROM, RCPT TO, DATA og QUIT. HELO er en slags hilsen, MAIL FROM er hvem som sender e-posten, RCPT TO er hvem som skal motta e-posten, DATA er selve e-posten og QUIT er en avslutning.
Her er et eksempel på kommunikasjon mellom en e-postklient og en SMTP-server:
SMTP server: 220 smtp.example.com ESMTP Postfix
Mail client: HELO relay.example.com
SMTP server: 250 smtp.example.com, I am glad to meet you
Mail client: MAIL FROM:<bob@example.com>
SMTP server: 250 Ok
Mail client: RCPT TO:<alice@example.com>
SMTP server: 250 Ok
Mail client: RCPT TO:<theboss@example.com>
SMTP server: 250 Ok
Mail client: DATA
SMTP server: 354 End data with <CR><LF>.<CR><LF>
Mail client: From: "Bob Example" <bob@example.com>
Mail client: To: Alice Example <alice@example.com>
Mail client: CMail client: theboss@example.com
Mail client: Date: Tue, 15 Jan 2008 16:02:43 -0500
Mail client: Subject: Test message
Mail client:
Mail client: Hello Alice.
Mail client: This is a test message with 5 header fields and 4 lines in the message body.
Mail client: Your friend,
Mail client: Bob
Mail client: .
SMTP server: 250 Ok: queued as 12345
Mail client: QUIT
SMTP server: 221 Bye
For bare noen få år siden kunne man relativt enkelt sende en e-post fra f.eks julenissen@nordpolen.com uten at man egentlig hadde noe eierskap til det domenet eller den postkassen. Det var rett og slett temmelig enkelt å drive spam og svindel. Heldigvis har det kommet litt mer sikring rundt e-post. Men den sendes fortsatt stort sett ukryptert og du bør derfor egentlig ikke sende noe mer sensitivt på e-post enn du ville sendt på et vanlig postkort (som da ikke ligger i en konvolutt som et brev).
Her er tre viktige sikkerhetstiltak for e-post:
DKIM - DomainKeys Identified Mail
DKIM inneholder en offentlig kryptografisk nøkkel som kan brukes til å verifisere at e-posten kommer fra en legitim kilde. For vårt domene task.no har vi satt opp DKIM omtrent slik i DNS:
google._domainkey.task.no. 1 IN TXT "v=DKIM1; k=rsa; p= (resten her er fjernet pga plassmangel ...)
SPF - Sender Policy Framework
For domenet task.no har vi satt opp SPF-record slik i DNS:
v=spf1 include:_spf.google.com mx include:sendgrid.net ~all
Den sier vi det er ok å sende e-post for vårt domeen fra Google og SendGrid sine servere.
DMARC - Domain-based Message Authentication, Reporting and Conformance
Vår DMARC-record ser slik ut:
_dmarc.task.no. 1 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@task.no; pct=100"
Her er vi pr nå kanskje litt for "snille" og lar e-post som feiler både SPF og DKIM slippe gjennom (p=none), så det bør jeg stramme opp.
Er du usikker på om en e-post er svindel eller er ekte så kan det være lurt å sjekke nettopp disse tre tingene. Med Gmail i nettleseren er det ganske enkelt. Gå inn på en e-post. Trykk på de tre prikkene lengst til høyre, velg "Show original". Da får du noe ala dette:

Her er det mange røde flagg som bør få deg til å stoppe opp. Google gjør heldigvis mye av jobben for oss og filterer automatisk spam osv bort fra innboksen vår, markerer mistenkelig e-poster som mulig svindel og dette gjøres blant annet basert på disse sikkerhetsinnstillingene. Her er det FAIL på DMARC, bare NEUTRAL på SPF og ingen DKIM. I tillegg virker det jo litt suspekt at informasjon om min BankID (som her er feilstavet bankID.no) skal komme fra en adressen kundeservice@navneskilthund.dk
En uskyldig og ikke-svindel e-post kan se slik ut:

Her er det PASS på DMARC, PASS på SPF og PASS på DKIM. I tillegg er det fra en adresse som virker mer legitim.
Så da håper jeg at det blir litt mindre risiko for at du "går på" en svindel e-post i fremtiden. Og at du nå vet litt mer om hvordan e-post fungerer.
Vil du virkelig gå i dybden er det bare å lese videre her: