De senaste månaderna har gett oss mycket ny information om vad NSA och andra myndighetsorganisationer världen runt ägnar sig åt. Mängden spionage och dataintrång som pågår hela tiden är häpnadsväckande.
Så vad innebär det för oss utvecklare? I min mening betyder det att vi har ett ansvar gentemot våra användare att göra det svårare att spionera på dem. Inte enbart för att det är rätt, utan också för att genom att säkra system på det här sättet gör vi det svårare för alla typer av intrång.
Vi måste fokusera på säkerhet och kvalitet i det vi bygger, men det här är viktigast:
Vi måste använda öppen och fri källkod så mycket som möjligt. Vi har ingen aning om vad som händer i stängda system, vilket gör att vi inte kan lita på dem. Det kan fortfarande finnas buggar och bakdörrar i öppna projekt, men risken är betydligt mindre. Vi kan också inspektera säkerheten och protokollen i öppna system, något som inte går att göra i stängda system.
Öppen källkod är inte nog. Vi måste fokusera på att decentralisera våra lösningar. Om det finns en central punkt som kan kontrolleras eller avlyssnas innebär det att den punkten är ett naturligt ställe att attackera. Om all användarinformation finns på ett ställe är det naturligt att gå dit. Så decentraliserade system och peer to peer-arkitekturer är nödvändiga för att säkra framtiden.
Den sista delen som är nödvändig är kryptering mellan slutpunkterna. Det innebär att det får inte finnas en server eller något mellansteg som kan dekryptera information. Om jag skickar information till punkt B måste krypteringen ske hos mig, och dekrypteringen enbart hos punkt B. Det är svårt, men går att göra.
Tekniker som framtidssäkring hjälper. Diffie-Hellmans nyckelutbyte är en väldigt användbar teknik. Kryptering bör användas för allt man kan. Om du bygger en hemsida eller webbapplikation, se till att https fungerar.
Med de här tre delarna kan man bygga system som ger makten tillbaka till användarna.