:css .reveal h1 { margin-bottom: 30px; } .reveal h3 li { margin-bottom: 10px; } .reveal h1, .reveal h3, .reveal p, .reveal li, .reveal .p { text-shadow: 0px 0px 10px rgba(0, 0, 0, 1) } .left-column { display: block; width: 50%; float: left; } .right-column { width: 50%; float: left; } .row { display: table; width: 100%; } ul.plain { list-style-type: none; } .reveal p, .reveal .p, ul.plain li { margin-top: 15px; margin-bottom: 15px; } .reveal li { margin-top: 10px; margin-bottom: 10px; } %section(data-background="images/kid-jumping.svg" data-background-size="50%") %h1 LEAP Encryption Access Project .p.row .left-column Elijah Sparrow
elijah@leap.se
@ecsparrow .right-column Sean Leonard
MeanderingCode@leap.se
@MeanderingCode %section %h1 What is the goal? %h3 Communication that is %h3 %ul %li super easy %li super secure %p For example: email, chat, voice, files, VPN. %section %h1 What is the strategy? %h3 Federated service providers
using open protocols %p (Not peer-to-peer, not centralized) %section %h1 What is the strategy? .row .left-column %h3 Bitmask %p Cross platform client application .right-column %h3 LEAP Platform %p Service provider automation %section(data-background="") %p %img{src: "images/bitmask-icon.png", style:"height: 200px; width 200px; float: left;"} %h1 Bitmask %p With Bitmask App, you choose among any
LEAP-powered service provider. %p Currently, we support VPN and Email. %section %h1 Bitmask %h3 %ul %li Auto-configuring %li Single click VPN %li Email via a local IMAP and SMTP services. %p %img{src: "images/bitmask-main-window.jpg" } %section %h1 LEAP Platform %p A few people with high skill but without unlimited time should be able to run a service provider. %pre %code.bash(data-trim) :preserve sudo gem install leap_cli leap new example --domain example.org cd example leap add-user --self leap node add blueberry services:openvpn ip_address:1.1.1.1 leap node add rasberry services:couchdb,webapp ip_address:2.2.2.2 leap node init leap deploy %section %h1 LEAP Platform %ul %li Everything is just a JSON configuration. %li Can use git to maintain your provider. %li Heavily customizable: override node behavior with tags & environments. Easy to fork. %li Includes a testing and monitoring framework. %li Includes a webapp with user management, help tickets and billing. %p See %a(href="https://leap.se/platform") leap.se/platform %section %h3 How to make something easy and secure? %p Just create a better user interface! %p Yes and no. %section %h1 A better UI %p %img(src="images/bitmask-android.png") %section %h1 A better UI %p In many cases, it turns out that is not enough. %p No point in polishing a turd. %section %h1 Hard problems %h3 in making security easy. %ol %li Data availability problem %li Secure identity validation problem %li Meta-data problem %li Asynchronous forward secrecy problem %p and many others... %section %h1 Data availability %ul %li Securely back up data to the cloud %li Available on all devices %li Ensure it is also encrypted locally %li Ensure access to data even when offline %section %h1 Data availability %ul.plain %li %b Issue 1: can't use normal hashed passwords. %li %b Solution: use Secure Remote Password, two pass authentication scheme built on a zero knowledge proof such that the server never has access to the password. %section %h1 Data availability %ul.plain %li %b Issue 2: when stored locally, we need the data in a database. %li %b Solution: stored local in sqlcipher (encrypted sqlite db) %section %h1 Data availability %ul.plain %li %b Issue 3: don't trust the provider %li %b Solution: clients individually encrypt each document record before synchronizing with distributed cloud database. %a(href="https://leap.se/soledad") leap.se/soledad %section %h1 Secure identity %p Bedrock precondition for secure communication between two people. %p All other security properties flow from it. %section %h1 Secure identity %ul.plain %li %b Zooko's triangle: identifiers may be globally unique, easy to remember, or decentralized: pick two. %li %b The binding problem: how to strongly bind a human name to a long random cryptographic key. %section %h1 Secure identity %p Existing models don't work: X.509 or WoT. %p New ideas: TOFU, DANE, CT, Namecoin. %section %h1 Secure identity %p What we are trying: %ul.plain %li %b TOFU: Trust On First Use. %li %b Provider endorsement: providers sign & revoke user public keys. %li %b Network perspective: audit providers to keep them honest. %p %p Goals: gradual adoption, backward compatible, ramp up. %p See %a(href="https://leap.se/nicknym") leap.se/nicknym %section %h1 Meta-data problem %p The problems: %ul.plain %li Headers in email are not end-to-end encrypted. %li Network observers, and your service provider, knows who you are corresponding with. %section %h1 Meta-data problem %p Our solutions: %ul.plain %li %b Short term: use StartTLS with enforced certificate validation via DANE. %li %b Long term: direct delivery of email to recipient's provider using SMTP over Tor. %section %h1 Asynchronous forward secrecy %p Why forward secrecy? Needed to future-proof your security. %ul.plain %li %b Short term: frequently rotating OpenPGP encryption sub-keys. %li %b Long term: Axolotl? github.com/trevp/axolotl/wiki %section %h1 Links %p LEAP Encryption Access Project %a(href="https://leap.se") https://leap.se %p Bitmask App %a(href="https://bitmask.net") https://bitmask.net %p Demo %a(href="https://demo.bitmask.net") https://demo.bitmask.net %section %h1 Appendix %section %h1 Why not p2p? %ul %li The "natural" network: many to many networks don't look like networks found in nature, which follow a power law ("scale free") distribution. %li The Internet: internet infrastructure is actually very polycentric rather than decentralized (more akin to a tree than a spider's web). %li Traffic Analysis: p2p message routing schemes are more vulnerable to traffic analysis. %li Sybil Attacks: By their nature, peer-to-peer networks are highly vulnerable to Sybil attacks, where an attacker creates fake participants in order to reveal secrets or hijack network. %section %h1 Why not p2p? %ul %li Mobile: Peer-to-peer networks are resource intensive, typically with every node in the network responsible for continually relaying traffic and keeping the network healthy. %li Identifiers: There are no good schemes for secure p2p identity. Everyone uses fingerprints, but this makes user identifiers impossible to remember. %li Data Availability: p2p has very poor data availability.