52
# # BitmasK: BitmasK: encryption for encryption for mere mortals mere mortals FOSDEM 2018 FOSDEM 2018 kali - meskio - kwadronaut kali - meskio - kwadronaut https://leap.se

BitmasK - · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

  • Upload
    haanh

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

# #

BitmasK:BitmasK:encryption forencryption formere mortalsmere mortals

FOSDEM 2018FOSDEM 2018kali - meskio - kwadronautkali - meskio - kwadronaut

https://leap.se

Page 2: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

Problem: encrypted email isProblem: encrypted email is...complicated...complicated

Page 3: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 4: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 5: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 6: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

Problem:Problem:providersproviders

Page 7: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 8: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

Peer to peer?Peer to peer?

Page 9: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

BetterBetterfederation!federation!

Protect providers from their usersProtect providers from their usersProtect users from the providerProtect users from the provider

Page 10: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

What doesWhat does LEAP do?LEAP do?

LEAP Platform: toolkit to make it easier to run a service providerNew protocols: so no need to trust your connection providerBitmask client: smooth working client with compatible providers

Page 11: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

leap mail serviceleap mail serviceEnd-to-end encryptionBackwards compatible with email and current OpenPGP usageService provider has no access to user dataAutomatic key discovery and validationCloud synchronized for high availability on multiple devices

Page 12: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 13: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

email serviceemail service

Page 14: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

soledadsoledad

Page 15: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

mxmx

Page 16: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 17: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

generic rules for automatic key management, transition from TOFU to more advanced ruleset.

transitional key validationtransitional key validation

bind key <-> email addresskey directoryendorser (provider)binding info: evidence for "educated guess"veri�ed key transition (automatic)

[leap.se/en/docs/design/transitional-key-validation]

Page 18: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

With a bunch of exceptions

TOFUTOFU

Page 19: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

1. First Contact1. First ContactWhen one or more keys are �rst discovered for a particular email

address, the key with the highest validation level is registered.

Page 20: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

2. Regular Refresh2. Regular RefreshAll keys are regularly refreshed to check for modi�ed expirations, or

new subkeys, or new keys signed by old keys.This refresh SHOULD happen via some anonymizing mechanism.

Page 21: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

3. Key Replacement3. Key ReplacementA registered key MUST be replaced by a new key in one of the

following situations, and ONLY these situations:

Veri�ed key transitions.If the user manually veri�es the �ngerprint of the new key.If the registered key is expired or revoked and the new key is ofequal or higher validation level.If the registered key has never been successfully used and the newkey has a higher validation level.If the registered key has no expiration date.

Page 22: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

VPNVPNPrevent eavesdropping.Circunvent internet censorship.Prevent leaks (DNS, IPv6, ...).

Page 23: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

LEAP platformLEAP platformsudo gem install leap_cli leap new example --domain example.org cd example leap add-user --self leap cert ca leap cert dh leap cert csr leap node add blueberry services:openvpn \ ip_address:1.1.1.1 openvpn.gateway_address:1.1.1.2 leap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy

Page 24: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

sysadmins are humansysadmins are humanand deserve usability tooand deserve usability too

Page 25: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

"leap deploy""leap deploy"

Page 26: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 27: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 28: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

show me the code!show me the code!https://0xacab.org/leap/

~10 important reposGPL code

Page 29: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

current statecurrent state

Page 30: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

Email Beta (0.10…)Email Beta (0.10…)works on Linuxworks on Linux

Bitmask VPNBitmask VPNworks on Linux && Androidworks on Linux && Android

Page 31: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

next stepsnext stepsOSX and windows

Page 32: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

let a thousand providerslet a thousand providersbloombloom

Page 33: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

🐧 thanks! questions?🐧 thanks! questions?

https://bitmask.nethttps://bitmask.net

https://leap.sehttps://leap.se

😼😼katzenpost.mixnetworks.org katzenpost.mixnetworks.org

Page 34: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 35: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 36: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 37: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 38: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"
Page 39: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

2. ability to use multiple2. ability to use multipledevicesdevices

Page 40: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

🔑 🔑 🔄🔄Synchronization OfSynchronization Of

Locally Encrypted Data Among DevicesLocally Encrypted Data Among Devices

Page 41: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

data = 🖂 data = 🖂 + 🔑+ 🔑

Page 42: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

bitmask keymanagerbitmask keymanagerrequires no user interactionrequires no user interaction

Page 43: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

interoperability is a mustinteroperability is a mustmany projects convergingmany projects converging

(Watch AUTOCRYPT: Enigmail, K9, Mailpile, Bitmask)(Watch AUTOCRYPT: Enigmail, K9, Mailpile, Bitmask)

Page 44: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

SOLEDADSOLEDADSynchronization of Locally Encrypted Data Among Devicesauth: srpkdf: scryptAES-256-GCMbuilt on top of canonical's u1dbvector clocksclientside: sqlcipher backendserverside: couchdb cluster

Page 45: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

Problem: AttachmentsProblem: AttachmentsSyncing blobs in a convoluted storePluggable BlobsIO backend for server (in dev)FS as MVP, others welcome!

Page 46: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

Validation levelsValidation levelslow == less trust on the source

Page 47: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

1. Weak Chain1. Weak Chainsks key servers, email attached key, OpenPGP header, ...

Page 48: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

2. Provider Trust2. Provider Trustweb�nger, provider mailvelope

Page 49: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

3. Provider Endorsement3. Provider EndorsementNickNym

Page 50: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

4. Historical Auditing4. Historical AuditingCONIKS, google's transparent keyserver

Page 51: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

5. Known Key5. Known Keyclient pinned keys

Page 52: BitmasK -   · PDF fileleap node add raspberry services:couchdb,webapp \ ip_address:1.1.1.3 leap init node leap deploy. sysadmins are human and deserve usability too "leap deploy"

6. Fingerprint6. Fingerprintmanual veri�cation