lördag 2 oktober 2010

Skicka krypterade filer för ickeavancerade användare

Jag använder sedan ett par år krypterad epost. Jättebra och ganska enkelt, men en stor sak är fel: att det är få som använder det. Nu har jag ibland behov av att skicka saker krypterat med användare som ibland inte är särskilt datorkunniga eller inte har tillräckliga rättigheter att bestämma över sin egen dator.

När en sådan användare ska skicka något hemligt till mig kan jag be personen att komprimera filen med 7-zip lösenordsskyddat och välja något lösenord som meddelas mig på något annat sätt. Problemet är att användaren då behöver komma över tröskeln att installera och/eller använda 7zip. Samt något annat jobbigt och potentiellt svårt: att meddela lösenordet. Och inte minst, att komma på ett tillräckligt varierat lösenord som dessutom inte missuppfattas över en raspig mobilanslutning.

En lösning skulle vara att jag sätter upp en säker (https) sida för filuppladdning på min webserver som i sin tur får kryptera och maila mig, med pgp och min publika nyckel. Nackdelen är att https är tungt för servern, samt att servern får jobba hårt för att kryptera ytterligare en gång. Fördelen är att användaren inte behöver veta något annat än adressen till min sida.

En väldigt bra ide är att låta användaren stå för datorkraften själv, genom att låta krypteringen ske hos användaren. Den krypterade filen kan sedan skickas över nätet utan några speciella åtgärder. Som med andra lösningar löser det inte problemet med autentisering (att jag kan vara säker på vem som skickat det) på samma sätt som "riktig" krypterad epost gör.

Såhär skulle det kunna se ut:
  • jag sätter upp en sida som användaren går in på, https-skyddad för att hindra man in the middle-attack på java-scripten. Typ "https://www.pauldreik.se/laddauppfiler.php" eller något sådant. Här finns javascripen inbäddade som senare sköter krypteringen. Den lilla trafik som måste krypteras är själva htmlkoden för sidan samt scripten, enbart några kb.
  • jag sätter även upp en normal (http) sida med ett php-script eller vad som helst, t ex "http://www.pauldreik.se/mottagare.php" som accepterar indata i form av uppladdade filer. användaren ser ej denna, så denna kan vara vad som helst.
  • användaren väljer en fil ifrån en vanlig htmlform, som de flesta användare använt väldigt många andra ställen, t ex när man laddar upp en bilaga till webmail. Filen läses sedan lokalt på användarens dator, krypteras lokalt med javascript och min publika nyckel, och postas sedan till "http://www.pauldreik.se/mottagare.php" i krypterad form över vanlig http. 
  • på webservern skickas den mottagna filen i ett mail till mig.  Eftersom bara jag har den privata nyckeln är det bara jag som kan läsa filen. Kringdetaljer som datum och ev namn och så som användaren skrivit in samt avsändande ipadress följer med. Dessa går naturligtvis att mixtra med på samma sätt som vem som helst kan skicka mig en fil och hävda att de heter något annat.Detta problem löses genom signering, som finns stöd för i "riktig" krypterad epost.
På detta sätt behöver användaren inte ha några rättigheter, inte installera något, och kan skicka mig filer utan yttre insyn. Jag behöver inte ha en kraftig server eftersom den inte gör någon kryptering.

Byggstenar kommer från hanewin.net (se länk i texten ovan), pgp och standard html samt javascript.

fredag 24 september 2010

Mailserver i egen regi

Något jag länge funderat på är nu klart - jag kör min egen mailserver. Jag har haft två epostleverantörer - en för inkommande och en för utgående.
Den inkommande spamfiltrerade så hårt att fullt legitima mail inte kom igenom. En oförstående support gjorde inte saken bättre.
Den utgående mailleverantören hade även annan verksamhet på sina servrar som skickade spam, till den grad att servern klassades som skräpserver och blev blockerad av andra mailservrar.
Därtill var imapservern väldigt seg, och kontostorleken var för liten.
Det som fick mig att till slut få tummen ur var dock att avtalet skulle löpa ut.

Varför valde jag att köra eposten själv och inte ta en extern leverantör?
  • jag vill inte råka ut för för hård spamfiltrering som tar bort legitima mail
  • jag vill inte riskera att klassifiseras som en dålig server pga. andra användare
  • jag vill ha så stora mailboxar jag själv känner för
  • jag vill inte att min mail passerar sveriges gränser i onödan
  • jag vill kunna backupa mailen i mitt normala backupsystem
  • det är skoj att kunna!
Jag försökte hitta en leverantör som kunde erbjuda ett par imap-konton med rimlig storlek (>=500 MB) och inget annat. Det var svårt! Det närmaste jag kom skulle kosta över 100 kr i månaden. För den pengen kan jag lägga ner ganska mycket tid själv för att räkna hem det på lång tid. Och epost är långsiktig.

Nu kör jag postfix (för smtp) och dovecot (för imap) bakom NAT och dynamisk DNS och det fungerar mycket väl. Detta på en mycket klen server.
Det var inte helt lätt att förstå konfigurationen av postfix - det är mycket som kan konfigureras i en mailserver. Att få igång postfix med ett enstaka konto är inte särskilt svårt, däremot flera domäner, virtuella mailboxar, autentisering utan pam, kryptering, förhindra open relay, spf-verifiering och greylisting tog lite tid. Dovecot gick fortare att konfigurera - det mesta är klart från start. Den medföljande konfigurationsfilen på över 1000 rader förklarar det mesta.

Jag följde dokumentationen på postfix hemsida, samt diverse howtos. Här finns ett exempel på en howto som ger en god översikt.

I huvudsak går det ut på följande. Om man gör det i ordning så är det inte skarpt förrän sista punkten, när DNS-en ändras (MX-recorden). Här är arbetsgången i huvudsak. För mig tog det ca 30 timmar att få det att fungera, men då visste jag i princip ingenting om smtp, postfix eller dovecot.
  • konfigurera DNS så att din server kan nås via namn
  • sätt upp filstruktur för virtuella mailboxar
  • skapa lösenordsdatabas för eposten
  • konfigurera dovecot så att den når dina mailboxar och autentiserar mot lösenordsdatabasen
  • konfigurera dovecot till att använda kryptering (TLS/SSL)
  • konfigurera postfix så att den kan skicka mail ut
  • konfigurera postfix så att den inte är en open relay
  • konfigurera postfix till att autentisera genom dovecot
  • konfigurera postfix till att levera mail till dina mailboxar
  • konfigurera postfix med alla dina maildomäner, vidarebefodringar och alias
  • konfigurera postfix till att använda kryptering (TLS)
  • vidarebefodra portar smtp 25 och 587 i din router
  • vidarebefodra port 993 i din router för dovecot
  • peka om MX-recorden för din domän (det är nu extern epost faktiskt dirigeras in till servern, till dess kan du härja runt fritt för att prova att det fungerar!)
  • lägg till greylisting och spf till postfix
  • ordna backup av mailboxarna

Det som återstår att göra är att fixa självsignerade certifikat så att jag slipper bekräfta varningarna i mitt epostprogram. Samt möjligtvis spam-filtrering...
Och kanske webmail, men det är en annan historia.

Nu så här en vecka efter att allt gått i drift måste jag säga att det fungerar riktigt bra. Responstiden är makalöst kort - precis som det ska vara.

Jag använder Debian, en helt fantastisk linuxdistribution. Tack, alla debianutvecklare och ni som skrivit alla program jag använder!

onsdag 8 september 2010

Bränsleåtgång för flygplan

Ett flygplan förbrukar väldigt mycket bränsle vid start, något mindre vid stigning upp till flyghöjd och förhållandevis lite vid flygning på konstant höjd. Här finns en sida som ger några intressanta siffror: http://fluglaerm.de/hamburg/klima.htm
Jag har tänkt på det här när jag läst flygbolagens redovisning som brukar finnas med i ombordtidningen - där specificeras bränsleåtgången men ej vid vilken flyglängd som avses.

Bränsleförbrukning per person (räknat på 300 personer, verkar vara något lågt) blir
50 mils flygning - 148 g CO2/km (kort resa för flygplanstypen)
200 mils flygning - 102 g CO2/km
5000 mils flygning - 93 g CO2/km

Av detta är 3133 g/person för starten , 213 g/person och km för stigningen  och sedan dalar det mot 87g per person och km för flygning på konstant höjd.

Ganska stor variation!



Fotnot: det är bränsleåtgång och ej co2 som anges på nedersta raden i tabellen på länken, trots texten.

onsdag 4 augusti 2010

Lättlästa nyheter om linuxkärnan

Att versionsnumren tickar framåt på linuxkärnan är lätt att se (www.kernel.org). Commitloggen är inte lätt att förstå, och det är svårt att se skogen för alla träden. Det behövs tolkningshjälp. 

Jag har tidigare läst den bra sammanställningen på kernel newbies.
Här finns en annan bra förklaring: h-online.com

onsdag 7 juli 2010

Pris/prestanda för datorsystem

Snabba datorer är dyra. Att maximera prestanda för en given budget är lättare när man har en sådan här jämförelse framför sig.
http://techreport.com/articles.x/18799/15
Bläddra ner till "overall performance per dollar". X6-orna (AMD:s sexkärninga) ligger bra till!

måndag 5 juli 2010

Javareklam

Jag skrattade gott åt den här reklamfilmen.

http://jz10.java.no/java-4-ever-trailer.html

måndag 14 juni 2010

dimbar LED-belysning

Att koppla in LED-belysning är inte enkelt. Detta beror på att lysdioder har en tröskeleffekt i sin ström-spänningskurva. Under en viss spänning lyser det inte alls, över en viss spänning överbelastas lysdioden till dess att den går sönder. En illustrerande graf finns på engelska wikipedia. Normal drift sker alltså i ett smalt intervall. Därför ska dioder strömstyras.

Vissa lysdiodlister man köper är kopplade med ett motstånd i serie. På det sättet ökar intervallet för vilken spänning lysdioden lyser lagom, så att man kan koppla till en fast spänning (vanligast 12 V) utan att vare sig överbelasta eller inte få något ljus alls.



För att dimma led kan man antingen styra spänningen (väldigt svårt), reglera strömmen eller pulsa strömmen/spänningen (PWM-styrning).  Att reglera strömmen faller sig naturligt om man har strömstyrning. Då låter man kretsen som styr strömmen ha justerbar ström, istället för ett fast värde. Detta komplicerar inte kretsen särskilt mycket - det svåra är att reglera strömmen.

Det är jättesvårt att köpa dimbar led. Nomenklaturen är inte enhetlig. Man får höra sådana termer som "mekanisk transformator", som jag inte tycker finns. Själva LED-listen påverkas inte av dimbarhet. Däremot drivdonet. Vissa dimmerenheter är avsedda att kopplas in mellan drivdon och LED, andra avsedda att koppla in på 230V-sidan. Vad jag är ute efter är ett drivdon som är reglerbart i sig.

Till slut fastnade jag för ett drivdon från designlight, köpt från Theofils. Enligt specifikationen är strömmen ställbar från 10-350mA. Det finns i två varianter, en D-LT15WD som klarar upp till 15 W och en D-LT30WD som klarar upp till 30W. Ohms lag ger att den då kan ge en maximal utspänning på 15/0.350=43V respektive 86V. Den för högre effekt var något dyrare, 464 kr på Theofils.
En annan drivenhet jag övervägde är från Lumoluce, via ledbutiken. Denna har flera olika drivlägen (konstant spänning, konstant ström, dimbar, master/slav-funktionalitet. allt detta för 650 kr). Eller den här, också från ledbutiken.

Till detta kommer led-listen. Efter att ha letat runt lite på olika ställen fastnade jag för LED-tejp super 1 varmvit 90 lumen från återförsäljaren Molectric som är en flexibel remsa med 60 lysdioder per meter. Man kan dela den var tredje diod (var 5:e cm) vilket gör den lätt att koppla in. På baksidan sitter självhäftande tejp.
Den nominella effekten är 5W per meter vid 12 V (den är alltså avsedd för konstant spänning).


Man kan då räkna ut att för att få max effekt vid 350 mA ska man seriekoppla bitar om 0.350A/(5W/m/12V)=0.84m. Med delbarheten var 5:e cm blir det då 85 cm. 6 m ledlist totalt går att koppla in på denna regulator. Listen kostar 258kr/m före mängdrabatt.

När jag kopplat in allt visar det sig att ljuset är väldigt bra från LED-listen. Den gör skäl för benämningen varmvit. Regulatorn är däremot inte särskilt bra - lägsta läget är väldigt starkt och ljuset ökar inte jämnt med rattens vridning. Dimbart är det, men inte lika stort område som en normal dimmer med glödlampa ger. Här finns mer att göra!

Sammanlagt så tycker jag att det är jättefint att ha en remsa med lysande punkter. Det ger stora möjligheter att utforma belysningen!