Jag blev inspirerad av Tutanotas Secure Connect – ett säkert webbformulär som skickar uppgifterna krypterat direkt till inkorgen. Skulle det inte gå att bygga något liknande med PGP? Det gick, och det var dessutom förvånansvärt enkelt då det redan finns ett GnuPG-bibliotek för PHP.

Svart-vit bild av ett hänglås Bild: John Salvino

Hela projektet finns på github.com/jackbenny/encrypted-form.

Filerna placeras på en webbserver som har PHP-stöd och biblioteket php-gnupg installerat. Biblioteket installeras med apt install php-gnupg i Debian och Ubuntu. För att formulärdatan ska kunna skickas behöver servern även ha en fungerande SMTP-server.

Den publika PGP-nyckeln till den som ska ta emot mejlen från formuläret klistras in i varibeln $key. Fingeravtrycket för nyckeln klistras in i variabeln $fingerprint. Förutom PGP-nyckeln och fingeravtrycket behövs även mottagarens e-postadress. Den läggs in i variabeln $recipient.

Det är bara dessa variabler som behöver fyllas i för att skriptet ska fungera. När någon fyller i formuläret kommer meddelandet krypteras med PGP-nyckeln på webbservern, och därefter skickas till den e-postadress som angavs som mottagare i skriptet.

Tänk dock på att informationen i formuläret bara skickas krypterat från webbservern till mottagarens e-post. Från webbläsaren till webbservern behöver informationen krypteras med HTTPS.

En nackdel med denna lösningen är att även om HTTPS används blir meddelandet inte end-to-end-krypterat. Det finns fortfarande en risk att någon på webbservern snappar upp meddelandet innan det krypteras med PGP-nyckeln.

För den som vill bygga en lösning med sann end-to-end-kryptering finns ett Javascript-bibliotek på openpgpjs.org.

Detta är fördelen med öppna standarder som OpenPGP. Det går att bygga precis den lösningen man själv vill – ofta med färdiga bibliotek – till skillnad från andra mer slutna krypteringsformer.


Nyhetsbrev
Nyhetsuppdateringar från tidningen direkt till din inkorg, helt kostnadsfritt. Avsluta när du vill.

Kommentarer

Kommentarsfältet är modererat. Det innebär att alla kommentarer granskas av ansvarig utgivare före publicering.

Du väljer själv om du vill ange ditt riktiga namn, en pseudonym eller vara helt anonym. Ingen registrering behövs.