www.ntnu.no *
INFOWEB >  sikkerhet >  kryptering  > IMAP, SSL og PGP i Pine
Artikkelen er utdatert
Forfatteren mener at denne artikkelen er utdatert siden oktober, 2007. Av hensyn til fullstendighet og referanser er artikkelen gjengitt nedenfor, men husk at vi ikke kan garantere nøyaktigheten av den.
Verktøy
Du kan legge til kommentarer
Eller sende denne artikkelen
Les artikler skrevet av sibtehai
Brukervurdering
Hvor mye hjelp var det i denne artikkelen?
Mye Noe Lite
Forhåndsvisning
Du trenger ikke en 'utskriftsvennlig side' for å skrive ut denne siden. Forklaring
Innhold

IMAP, SSL og PGP i Pine

Introduksjon

Pine er et tekstbasert epostprogram for flere platformer. For informasjon om basisfunksjonaliteten i programmet, ta en titt på artikkelen om å lese epost med Pine. Informasjonen i denne artikkelen er beregnet på de som vil benytte Pine på en annen maskin enn NTNUs loginservere, via IMAP-protokollen, samt de som ønsker å benytte kryptering via PGP i Pine.

IMAP i Pine

Det er svært enkelt å sette opp Pine til å bruke IMAP. Den greieste måten å gjøre dette på er å editere konfigurasjonsfilen. Denne heter .pinerc og ligger på roten av ditt hjemmeområde på unix-systemer, og den heter PINERC på Windows-maskiner og ligger i samme katalog som Pine-programmet. I denne filen skal du kunne finne en linje som begynner med inbox-path=. Fjern det som eventuelt står etter =-tegnet, og skriv inn banen til den nye innboksen på formen {imapserver.domene}inbox. For en konto på stud vil det ikke stå noe på denne linjen i .pinerc, da dette er en instilling brukere ikke kan overstyre på stud. Men setter du opp pine på en egen boks skal linjen se omtrent slik ut:

kode #1
  inbox-path={imap.stud.ntnu.no}INBOX
der du må huske å fylle inn ditt eget brukernavn. Merk, på stud bruker en IMAPS, mer om det kommer lenger ned i artikkelen.

De fleste har flere epost-mapper enn bare innboksen, og disse må spesifiseres som en samling mapper du vil se bruke. Dette gjøres på linjen som begynner med folder-collections=. Formen er den samme som for innboksen, så for en stud-konto skal linjen se slik ut:

kode #2
folder-collections=stud {imap.stud.ntnu.no}INBOX.[]

Ordet "stud" rett etter =-tegnet er bare et kallenavn, og kan settes til hva du måtte ønske. Tegnene "[]" til slutt indikerer at alle mapper i katalogen skal tas med. Det er mulig å legge til flere slike samlinger av mapper ved å separere dem med komma. Med disse verdiene satt kan du forsøke å starte Pine, og du bør få tilgang til eposten din.

Brukernavn og passord

En irriterende ting som man fort merker er at man blir spurt om brukernavn og passord hver gang man starter Pine. Det kan til og med hende at man blir spurt hver gang man skifter mappe. Sistnevnte problem oppstår i såfall fordi Pine er forvirret med hensyn på hvilket brukernavn som skal benyttes når. Dette fikses enkelt ved å spesifisere brukernavn på linjene i konfigurasjonsfilen nevnt ovenfor. Den første linjen skal nå se slik ut:

kode #3
  inbox-path={imap.stud.ntnu.no/user=brukernavn}INBOX

der brukernavn er ditt eget brukernavn på stud. Linjen med folder-collections endres på samme måte. På stud er Pine satt opp til å banen gitt over, slik at du slipper å taste brukernavn hver gang Pine starter.

Du vil imidlertid fortsatt bli spurt om passord ved oppstart. Pine spør ikke i utgangspunktet om du vil lagre passordet, men det er mulig å få til. Her er det imidlertid viktig å komme med en sterk advarsel. Passordet blir lagret i en særdeles dårlig kryptert fil, og du bør derfor ikke benytte denne muligheten med mindre du er den eneste som har tilgang på maskinen.

Dersom du bruker Pine for Windows trenger du bare å opprette en tom fil i samme katalog som pine-programmet som heter PINE.PWD. Når du neste gang starter Pine og taster inn passordet vil programmet spørre deg om du vil lagre passordet. Dersom du svarer ja på dette vil passordet bli lagret i filen PINE.PWD. Dersom du ønsker å gi filen et annet navn, kan du starte Pine med argumentet -passfile filnavn der filnavn er det navnet du ønsker. Merk at filen allerede må eksistere, ellers spør ikke Pine om du vil lagre passordet.

Dersom du bruker unix-versjonen av Pine er det noe mer komplisert. Standard-kompilasjonen av Pine støtter nemlig ikke dette, nettopp på grunn av den dårlige sikkerheten. Du er derfor nødt til å kompilere Pine på nytt. Før du gjør dette må du gjøre en liten forandring i en av filene. Åpne filen pine/pine.h i Pine-katalogen, og legg til følgende linje i denne:

kode #4
#define PASSFILE "filnavn"

der filnavn er den filen du vil at Pine skal bruke til passord (denne vil ligge på roten av ditt hjemmeområde). Bruk gjerne et filnavn som starter med et punktum, så filen ikke blir synlig. Når du har kompilert Pine på nytt ved å skrive kommandoen ./build og eventuelle argumenter, må du, som i Windows-versjonen, opprette en tom fil med samme navn som det du definerte, på roten av ditt hjemmeområde. Pine vil nå spørre deg om du vil lagre passordet neste gang du skriver det inn.

SSL i Pine

SSL står for Secure Socket Layer, og er en kryptert protokoll som brukes i utstrakt grad på internett, blant annet for å sikre IMAP. Dette kalles gjerne IMAPS eller S-IMAP. Det er på det sterkeste anbefalt å benytte kryptert kommunikasjon når man sjekker epost. Da unngår man at passordet sendes i klartekst og kan snappes opp av uvedkommende på vei til epost-serveren. SSL kompileres inn som standard i Pine. Den antar imidlertid at OpenSSL er installert i /usr/local/ssl. Dersom det er installert en annen plass, som for eksempel /usr/share/ssl, må dette spesifiseres gjennom argumentet SSLDIR når Pine kompileres. Kommandoen blir da

konsoll #1
    $ ./build SSLDIR=/usr/share/ssl port
  

når du står i Pine-katalogen. "port" er koden for plattformen du kompilerer for. En liste over disse finnes i filen doc/pine-ports. For å benytte SSL på IMAP-forbindelsene du har definert i Pine, kreves nesten ingen konfigurasjon. Du trenger bare å slenge på en ekstra opsjon etter servernavnet, i de to linjene i konfigurasjonsfilen nevnt ovenfor. Dersom vi benytter samme eksempel, skal linjen med inbox-path nå se slik ut:

kode #5
inbox-path={imap.stud.ntnu.no/ssl/user=brukernavn}INBOX

Tilsvarende forandring gjøres på linjen med folder-collections. På stud er disse instillingene allerede satt, dog, disse instillingene vil ikke vises i .pinerc, men du vil se dette om du går inn i Setup og så Config inne i Pine.

Sertifikatproblemer

Det er sannsynlig at du, når du starter Pine igjen, vil få opp en skjerm med beskjed om at SSL-sertifikatet ikke kunne verifiseres fordi det er selv-signert. Du kan akseptere dette og gå videre likevel, men du må gjøre dette hver gang du starter Pine. Det finnes to løsninger på problemet.

Den første er den enkleste, men også den dårligste. Den går ut på å instruere Pine om ikke å bry seg om å sjekke SSL-sertifikatet til serveren (for mer informasjon om kryptografi og sertifikater, les artikkelen om kryptografi og PGP). Dette gjøres ved å føye på nok en opsjon i de to etterhvert-så-kjente linjene i konfigurasjonsfilen. Linjen med inbox-path blir seende slik ut:

kode #6
    inbox-path={imap.stud.ntnu.no/novalidate-cert/ssl/user=brukernavn}INBOX
  

Det tilsvarende gjøres nok en gang for folder-collections.

Den andre metoden går ut på å faktisk gi Pine det det vil ha, nemlig en kopi av sertifikatet til serveren, der det forsøker å lete etter godkjente sertifikater. Kopier sertifikatet, inkludert linjene med BEGIN og END, og lagre det i en fil. Hva du gjør videre avhenger av hvilken platform du kjører Pine på.

Ved å kopiere sertfikatet ovenfor velger du å stole på at informasjonen på denne siden er riktig og ikke har blitt tuklet med. Generelt skal man være forsiktig med å godta sertifikater og offentlige nøkler som man finner liggende rundt på Internett. Man bør så langt det er mulig prøve å få bekreftet gyldigheten av slike. Dersom du er interessert i å finne sertifikatet på en annen måte, eller slett ikke skal benytte imap.stud.ntnu.no, men en annen epost-server, kan du få tak i sertifikatet ved å skrive følgende kommando i unix:

konsoll #2
    $ openssl s_client -connect din.epostserver.no:993
  

Du later da som du er en SSL-klient, og kobler opp mot IMAPS-porten, 993, på serveren. Du vil få et svar i form av en utskrift, der blant annet sertifikatet er inkludert. Kopier så dette til en fil. Dersom du skal benytte det på en unix-maskin, må du finne filnavnet som kommer etter $SSLDIR/certs. Dette er en hash som du finner ved å bruke følgende kommando:

konsoll #3
    $ openssl x509 -in filnavn -hash -noout
  

der filnavn er navnet på filen med sertifikatet i.

PGP i Pine

PGP er en programvare for kryptering og dekryptering, og grunnlaget for OpenPGP-standarden. For mer informasjon om prinsippene bak PGP og grunnleggende bruk av programvaren, les artikkelen om kryptering og PGP.

Pine har ikke innebygd støtte for PGP. Det er imidlertid svært lett å benytte PGP i sammenheng med Pine, på grunn av Pines filter-muligheter. Dette går ut på at du kan fortelle Pine, gjennom konfigurasjonsfilen, at den skal sende informasjonen i epost som sendes ut eller leses gjennom et eksternt program, "på veien". Dette kan utnyttes ved å filtrere utgående meldinger gjennom PGP for kryptering. Tilsvarende filtreres epost når den leses gjennom PGP, og vi forteller PGP at det skal dekryptere.

Vi gir her kommandoene for PGP versjon 6.5.8 og GnuPG versjon 1.2.1 for unix. Vi antar at programmene ligger i katalogen /usr/bin. Andre versjoner/programmer vil kreve forskjellig syntax. For å sette opp Pine slik at dette fungerer må du editere konfigurasjonfilen, som beskrevet lenger opp i dette dokumentet. Finn først linjen som begynner med display-filters=. Fullfør denne linjen, så den ser slik ut:

kode #7
For PGP:
display-filters=_BEGINNING("-----BEGIN PGP MESSAGE-----")_ /usr/bin/pgp -f,
	_BEGINNING("-----BEGIN PGP SIGNED MESSAGE-----")_ /usr/bin/pgp -f

For GnuPG:
display-filters=_BEGINNING("-----BEGIN PGP MESSAGE-----")_ /usr/bin/gpg -t,
	_BEGINNING("-----BEGIN PGP SIGNED MESSAGE-----")_ /usr/bin/gpg -t

Denne første linjen instruerer Pine til å sende all epost som du leser gjennom programmet pgp eller gpg, men ikke før uttrykket "-----BEGIN PGP MESSAGE-----" dukker opp i eposten. All epost som PGP har kryptert begynner på denne måten, og dermed aktiveres denne kommandoen hvis eposten som leses er kryptert med PGP, og bare den krypterte delen av eposten sendes gjennom PGP. Med de gitte argumentene tas informasjonen fra standard inn og sendes til standard ut. Dette gjør at det i praksis fungerer som et slags filter. Den andre linjen (med ...SIGNED...fungerer tilsvarende, bortsett fra at den omfatter epost i klartekst med digital signatur. Hvis du gjør det akkurat slik som beskrevet her, vil du imidlertid ikke kunne se utskriften fra programmet, som blant annet forteller om signaturen var gyldig. En måte å løse dette på kan for eksempel være å lage en skriptfil, for eksempel med navnet pgpfilter, og la den inneholde følgende:

kode #8
/usr/bin/pgp -f
read < /dev/tty

eller tilsvarende for GnuPG. Den andre linjen som må forandres i konfigurasjonsfilen er den som begynner med sending-filters=. Fullfør denne så den ser slik ut:

kode #9
For PGP:
sending-filters=/usr/bin/pgp -estaf _RECIPIENTS_,
	/usr/bin/pgp -fast

For GPG:
sending-filters=/usr/bin/gpg -seat -r _RECIPIENTS_,
	/usr/bin/gpg -sat

Dette fungerer på samme måte som display-filteret, bare at det fungerer som et krypteringsfilter istedet for et dekrypteringsfilter, og det signerer også eposten. I tillegg har den første linjen argumentet _RECIPIENTS_. Dette forteller Pine at det skal sette inn listen med mottakere som argument til programmet. PGP slår da opp i den offentlige nøkkelringen, finner den offentlige nøkkelen som tilhører mottakeren og bruker denne i krypteringen. Den andre linjen definerer et filter nummer to, som kan brukes til å sende meldinger i klartekst, med digital signatur.

Når du heretter sender epost i Pine, vil du få spørsmål om du vil sende eposten ufiltrert ("Send message (unfiltered)?"). Dersom du svarer ja på dette, krypteres ikke den utgående eposten. Dersom du istedet trykker Ctrl-N, vil den gå gjennom filtreringsalternativene. Du vil du få spørsmålet "Send message (filtered thru "pgp")?" (eller gpg). Hvis du svarer ja på dette vil eposten du sender krypteres, såfremt den offentlige nøkkelen til mottakeren eksisterer i nøkkelringen din. Hvis du trykker Ctrl-N en gang til vil det fortsatt stå det samme (fordi det er samme program), men hvis du svarer ja her vil du sende en epost i klartekst med digital signatur. For å skille alternativene går det også an å lage to skript med entydige navn som benyttes av Pine.


Språk: no Kommentarer: 0 Aid: 229 Brukervurdering:
 
 
Sist oppdatert: 2007-06-29 Forfatter: sibtehai Lest: 8530 ganger