LEAP Encryption Access Project. Αλέξανδρος Αφεντούλης



Similar documents
Mithi Connect Server deployment options

CIPHERMAIL ENCRYPTION. CipherMail white paper

Signing and Encryption with GnuPG

GPG - GNU Privacy Guard

Proxies. Chapter 4. Network & Security Gildas Avoine

How To Get The Most Out Of Your From Your Mail Server (For A Small Business)

Introduction to Computer Security Benoit Donnet Academic Year

The basic groups of components are described below. Fig X- 1 shows the relationship between components on a network.

Free Dynamic DNS account you can use one of your choosing I like DynDNS but there's also No-IP and probably others.

Pretty Good Privacy with GnuPG

DANE Secured Demonstration. Wes Hardaker Parsons

Clearswift Information Governance

Signing and Encryption with GnuPG

Introduction to Cryptography

DJIGZO ENCRYPTION. Djigzo white paper

Basic Exchange Setup Guide

White paper. Why Encrypt? Securing without compromising communications

BlackBerry Enterprise Solution Security Release Technical Overview

Ciphire Mail. Abstract

F-Secure Messaging Security Gateway. Deployment Guide

CS 356 Lecture 27 Internet Security Protocols. Spring 2013

OVERVIEW OF TYPICAL WINDOWS SERVER ROLES

Softnix Messaging Server (SMS)

Introduction to the EIS Guide

Playing Server Hide and Seek.

Using Your PGP Tool to Update Your Address Settings for Encrypted Messaging

Djigzo encryption. Djigzo white paper

An Introduction to Secure . Presented by: Addam Schroll IT Security & Privacy Analyst

Architecture and Data Flow Overview. BlackBerry Enterprise Service Version: Quick Reference

Configuration Manual for Lime Domains

Internet Privacy Options

Requirements Collax Security Gateway Collax Business Server or Collax Platform Server including Collax SSL VPN module

A D M I N I S T R A T O R V 1. 0

PineApp TM Mail Encryption Solution TM

Toll Free: International:

Astaro Mail Archiving Getting Started Guide

Secured Mail through PGP Mail Gateway

The Case For Secure

Security. Michael E. Locasto University of Calgary

System Admin Module User Guide. Schmooze Com Inc.

dotmailer for Dynamics Frequently Asked Questions v 6,0

7 Network Security. 7.1 Introduction 7.2 Improving the Security 7.3 Internet Security Framework. 7.5 Absolute Security?

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Security. Contents. S Wireless Personal, Local, Metropolitan, and Wide Area Networks 1

TFS ApplicationControl White Paper

GL254 - RED HAT ENTERPRISE LINUX SYSTEMS ADMINISTRATION III

Open Thunderbird. To set up an account in Thunderbird, from the Tools menu select Account Settings; choose account; then click Next.

Simple. Control Panel. for your Linux Server. Getting Started Guide. Simple Control Panel // Linux Server

Parallels Plesk Panel 11 for your Windows Server

Parallels. for your Linux or Windows Server. Small Business Panel. Getting Started Guide. Parallels Small Business Panel // Linux & Windows Server

Instructions Microsoft Outlook Express Page 1

Getting Started With Your Dedicated Server. Getting Started Guide

BSA Best Practices Webinars Role Based Access Control Sean Berry Customer Engineering

VICTORIA UNIVERSITY OF WELLINGTON Te Whare Wānanga o te Ūpoko o te Ika a Māui

Key & Data Storage on Mobile Devices

March PGP White Paper. Transport Layer Security (TLS) & Encryption: Complementary Security Tools

Configuration Guide. BlackBerry Enterprise Service 12. Version 12.0

How to build an Identity Management System on Linux. Simo Sorce Principal Software Engineer Red Hat, Inc.

For Paranoid People. by _NSAKEY

Important Information

PZVM1 Administration Guide. V1.1 February 2014 Alain Ganuchaud. Page 1/27

Enterprise Vault.cloud Deployment Checklist

Parallels Plesk Panel 11 for your Linux server

Patriots Outlook Configuration

SESA Securing with Cisco Security Appliance Parts 1 and 2

How To Understand And Understand The Security Of A Key Infrastructure

PrivaSphere Gateway Certificate Authority (GW CA)

How To Configure Forefront Threat Management Gateway (Forefront) For An Server

Troubleshooting BlackBerry Enterprise Service 10 version Instructor Manual

Unifying Information Security. Implementing Encryption on the CLEARSWIFT SECURE Gateway

Configuring IPsec VPN with a FortiGate and a Cisco ASA

VPN Lesson 2: VPN Implementation. Summary

Configuration Guide BES12. Version 12.1

Encrypting your Communications using PGP

How To Create A Virtual Private Cloud On Amazon.Com

Compiled By: Chris Presland v th September. Revision History Phil Underwood v1.1

THE BCS PROFESSIONAL EXAMINATIONS BCS Level 6 Professional Graduate Diploma in IT. April 2009 EXAMINERS' REPORT. Network Information Systems

THE COMPLETE GUIDE TO GOOGLE APPS SECURITY. Building a comprehensive Google Apps security plan

Linux VPS with cpanel. Getting Started Guide

Employee Active Directory Self-Service Quick Setup Guide

Aloaha Mail and Archive

MDaemon Vs. Microsoft Exchange Server 2013 Standard

Transcription:

LEAP Encryption Access Project Αλέξανδρος Αφεντούλης

The state of the internet Quite dystopic at the moment Mass surveillance as a status quo, states' and corporal spying on netizens Censorship, access blocks Centralized corporal services, central points of failure/surveillance Insecure protocols, applications, software, practices Snowden did confirm some of our worst fears

Why's internet like that? Some make profit from surveillance/censorship: Money Power/social control The internet was not designed with respect to privacy and security. Major part of netizens still don't care about their digital rights/existence. A lot of things are broken in our world.

What should we do? Digital communications is still a very important issue. People have the right to communicate in a private, secure way. Have the right to whisper or shout when they want. Back up and consider radical solutions to build a better internet/world. Decentralize! Diversity! Understand our digital rights, the importance of our digital existence. In the meantime... use Crypto!

Ok, let's encrypt all the things! But...

Security vs Usability A all time classic hard problem. Ways/software/practices to securely communicate already exist, but... Most of the time not easy to reach the average user Hard to use a specific tool or coordinate usage of a bunch of tools that provide security Usability is a factor of adoption

Security vs Usability Snowden tried hard to persuade Greenwald to use OpenPGP in email communication. There's no point to have cool secure tools if nobody uses them In communications' security is bound to the weakest link Anonymity loves company, Dingledine, Mathewson Well, security too!

Big problems in secure digital communications Usability user experience Adoption we need company! Data availability multiple devices used Forward Secure & Asynchronous (OTR vs OpenPGP) Binding key to identity trust a key Metadata problem who's talking to whom Difficulty to deploy and maintain a secure service provider

So, what is LEAP anyway? LEAP is a project dedicated to give all internet users access to secure communications in a userfriendly way LEAP tries to address the aforementioned problems LEAP produces open/libre software both client side and server side A community of people around the world fighting for the right to whisper

LEAP Goals People be able to deploy a service provider in a structured way (Leap Platform) A user will have transparently & securely VPN Encrypted & signed email (Bitmask client) Users be able to choose from a variety of federated providers More services to come: chat, file sync, mailing list, voice More providers, perhaps federated

LEAP Overview LEAP has a bunch of components, client side, server side or both LEAP is written in Python, Ruby, Puppet Use of open standards and open/libre software LEAP uses existing software/technology such as GPG, TLS, SRP, OpenVPN, CouchDB, Twisted Also introduces new ones: Soledad, Nicknym, Tapicero, leap_cli, Bitmask Client

LEAP Basic Components Bitmask client (desktop & android) Soledad, IMAP, SMTP, Nicknym-agent, GPG, OpenVPN Leap Platform a set of nodes (puppet recipes) with different services (webapp, soledad, vpn, mx, nickserver) WebApp User registration, management, tickets, REST API Nicknym Key discovery, validation, identity-to-key pairing Soledad U1DB, CouchDB, Tapicero Leap cli admin tool to deploy leap nodes

LEAP Platform Provider in a box A set of server recipes to manage, deploy, maintain services in provider's nodes Recipes define an abstract provider with some predefined sane values in Debian environment Puppet Custom recipes if desired Services already included: vpn, couchdb, soledad, mx, webapp, monitoring, Tor, static site

LEAP Provider instance Essentially a directory with all a provider needs Contains provider's global configuration files Contains configuration for every node, service Contains keys for admins and nodes Contains certificates Most confs are.json files Has a pointer to where Platform recipes reside Managed with leap cli

LEAP cli Written in ruby Used by a leap provider sysadmin on their desktop Create a provider instance Create, init, deploy, remove nodes/services Manage keys and certificates General control over a provider instance A master less puppet strategy is followed by pushing changes to every node Compiles configuration files before deploying

Let's get it together $ cd ~/leap/unipi $ leap new. $ leap add user self $ leap node add web1 ip_address:10.1.1.1 services:webapp,mx tags:production $ leap node add vpn1 ip_address:10.1.1.3 openvpn.gateway_address:10.1.1.4 services:openvpn,tor tags:production $ leap init production $ leap deploy vpn1 $ leap list $ leap ssh vpn1

Let's get it together $ cd ~/leap/unipi $ leap new contacts admin@unipi domain leap.cs.unipi.gr name LeapUnipi platform=~/leap/leap_platform. $ leap add user pgp pub key=gpg.pub ssh pub key=ssh.pub alex $ leap node add web1 ip_address:10.1.1.1 services:webapp,mx tags:production $ leap node add vpn1 ip_address:10.1.1.3 openvpn.gateway_address:10.1.1.4 services:openvpn,tor tags:production $ leap init production $ leap deploy vpn1 $ leap list $ leap ssh vpn1

LEAP WebApp Written in ruby, rails Web interface of the provider Handles user registration/management Exposes a REST API that clients communicate with Help tickets Billing

LEAP WebApp Clients bootstrap with a provider via the API Clients authenticate using SRP (Secure Remote Password protocol) server never knows clients' passwords Clients fetch.json files containing necessary provider's descriptors, certificates, service definitions, services' details.

LEAP Soledad Rationale Availability/Recovery: data get synced with the cloud and user's devices Client side encryption: little trust in the server, no cleartext data online Used both in server and client Based on Ubuntu's U1DB, but client side encryption is added cross platform, cross device, syncable, document centric database api

LEAP Soledad in client U1DB api, SQLcipher, Sqlite, python gnupg, scrypt Python implementation Everything is stored in local database Emails Keys Gets encrypted before getting synced Provides a storage API for rest of client's application AES 256 CTR for encryption, HMAC with SHA256

LEAP Soledad in server CouchDB backend Python implementation Keeps replicas of users' databases Incoming emails are stored as couchdb docs encrypted to user's public key Server doesn't have access to users' data, still can track changes to data Resistant to offline/online attacks

LEAP Nicknym Problem: bind an identity to a key Alice wants to communicate securely with Bob, how does she find and validate Bob's key? Many approaches exist: X.509, Web of Trust, Trust on First Use, DNSSEC, Network Perspective, physically meet Nicknym attempts to solve the binding problem Nickagent in client (python) Nickserver in server (ruby)

LEAP Nicknym Map a human memorable identity user@domain to public key Automatic discovery and validation of a cryptographic key TOFU, X.509, Network Perspective, Provider keys, Federated WoT Short lived keys instead of revocation Keys are stored in soledad

Bitmask client Written in python Multi platform OpenVPN, Soledad, GnuPG, Twisted, QT All a user needs to access LEAP services Let user pick a provider & bootstrap Local encrypted database (soledad) Keymanager

Bitmask client Minimal control interface IMAP service on localhost Fetches emails stored in soledad SMTP service on localhost relay emails to remote smtp Encrypted internet service (VPN) No GUI email interface yet MUA pointed to localhost, e.g. Thunderbird Coworking with Mailpile

Encrypted Internet Proxy VPN service, OpenVPN Clients use certificates Clients pick a provider vpn gateway Traffic's routed encrypted till the gateway Simple interface No DNS leaks Optionally provider sets available bandwidth

Mails flow Emails arriving at MX get encrypted if not already Stored in a message queue, soledad Soledad client syncs with cloud News emails get decrypted then stored in local soledad User reads them through IMAP Outgoing emails get signed and encrypted, as long as nikcagent finds a valid recipient's key Sender's key is automatically linked

Want to give it try? https://dl.bitmask.net Pick a provider: demo.bitmask.net (vpn only) or dev.bitmask.net (vpn+email, but volatile as dev)

How may I contribute? An overview of the project https://leap.se/en/docs/design/overview The source https://leap.se/en/docs/get involved/source Project ideas https://leap.se/en/docs/get involved/project ideas IRC: #leap on Freenode Mailing list: discuss@leap.se

Thanks!