LEAP Encryption Access Project

LEAP

El Cifrado deberia ser
simple de proveer y facil de usar

  • Herramientas para comunicaciones seguras en la red
  • Decentralizar los proveedores de servicios
centralized-decentralized-distributed

La Cripto es Dificil

Espera, pero habias dicho...

El Cifrado deberia ser
simple de proveer y facil de usar

asi que...

Solucionemos los Problemas Dificiles

Los “7 Magnificos”

  1. El problema de la Autenticidad
  2. El problema de los Metadatos
  3. El problema de la Asincronicidad
  4. El problema del Grupo
  5. El problema de los Recursos
  6. El problema de la Disponibilidad
  7. El problema de las Actualizaciones

Problema: Autenticidad

La validacion de claves publicas es muy dificil desde el punto de vista de los usuarios, pero sin esto no puedes tener confidencialidad.
  • Nicknym - auto-descubrimiento y validacion de claves publicas, de forma transparente!
  • Problema: Metadatos

    Los protocolos existentes son vulnerables al analisis de metadatos, pese a que los metadatos son con frecuencia mucho mas sensibles que el contenido.
    • DNSSEC/DANE a prueba de downgrades

    Con uno o mas esquemas oportunistas:

    • pares de alias automaticos
    • Onion routing headers
    • Third party dropbox
    • Mixmaster con firmas

    Problema: Asincronicidad

    Para las comunicaciones cifradas, tienes que elegir entre forward secrecy o la capacidad de comunicar asincronamente
    • OpenPGP vs. OTR
    • A corto: Una capa de transporte forward secrecy sobre OpenPGP
    • A largo plazo: Colaborar con otros grupos para crear nuevos estandares para protocolos de cifrado

    Problema: Grupos

    En la practica, trabajamos en grupos, pero... la criptografia de clave publica no.
    • Lo primero... ummm
    • Avances interesantes en backup/sync/comparticion segura de archivos (e.g. Wuala and SpiderOak)
    • Proxy con re-encryptacion
    • Firmas en anillo

    Problema: (acceso a) recursos

    No existen protocolos abiertos para permitir a los usuarios compartir un recurso
    • Pues... no les trajimos nada :/
    • "Read-write-web" les presenta [ponga la solucion al "Group problem" aqui]
    • De nuevo, mirando hacia el campo del sincronizado de archivos (Lazy Revocation y Key Regression)

    Problema: Disponibilidad

    Queremos ser capaces de cambiar de dispositivo sin pensarlo, y recuperar nuestros datos si perdemos un dispositivo... pero es dificil hacerlo de forma segura
  • Soledad - Synchronization of Locally Encrypted Documents Among Devices
    vaya! no nos habiamos quedado del todo sin ideas!
  • Problema: Actualizaciones

    De forma casi universal, las actualizaciones de software se hacen de forma que invitan a los ataques y el compromiso de dispositivos
  • TUF (thanks, Thandy/Tor!)
  • Gitian en la mira
  • Bien, pero... que nos traen hoy?

    Servicios

    Encrypted Internet Proxy aka VPN - Bitmask 0.6.1

    Email - Bitmask 0.7.0

    Servicios Planeados

    Chat (comenzado)

    Client-Encrypted Filehosting

    Voip

    Collaborative Text Editor

    Para usuarias

  • Bitmask-Client for Linux, Android
  • OSX, Windows de camino...
  • Bitmask-Client
    Bitmask-Client

    Para proveedores

    • Instalacion y configuracion de servicios "automatica"
    • Configuraciones de crypto seguras por defecto (parametros TLS, etc)

    leap-platform

    Recetas Puppet para configurar el servidor

    
    # smtp TLS                                                                    
    postfix::config {                                                             
      'smtp_use_tls':        value  => 'yes';                                     
      'smtp_tls_CApath':     value  => '/etc/ssl/certs/';                         
      'smtp_tls_CAfile':     value  => $ca_path;                                  
      'smtp_tls_cert_file':  value  => $cert_path;                                
      'smtp_tls_key_file':   value  => $key_path;                                 
      'smtp_tls_ask_ccert':  value  => 'yes';                                     
      'smtp_tls_loglevel':   value  => '1';                                       
      'smtp_tls_exclude_ciphers':                                                 
        value => 'aNULL, MD5, DES';                                               
      # upstream default is md5 (since 2.5 and older used it), we force sha1      
      'smtp_tls_fingerprint_digest':                                              
        value => 'sha1';                                                          
      'smtp_tls_session_cache_database':                                          
        value => 'btree:${queue_directory}/smtp_cache';                           
      'smtp_tls_security_level':                                                  
        value  => 'may';                                                          
      # see issue #4011                                                           
      'smtp_tls_protocols':                                                       
        value => '!SSLv2, !SSLv3';                                                
    }                            
                

    Configuracion del Proveedor

    Server Layout, IPs, contact details, etc

    
    $ cat provider.json 
    //
    // General service provider configuration.
    //
    {
      "domain": "example.org",
      "name": {
        "en": "example"
      },
      "description": {
        "en": "You really should change this text"
      },
      "contacts": {
        "default": "admin@example.org"
      },
      "languages": ["en"],
      "default_language": "en",
      "enrollment_policy": "open"
    }
    
    $ cat nodes/web1.json 
    {
      "ip_address": "99.231.92.23",
      "services": "webapp",
      "tags": "production"
    }
                

    Leap-cli

    Herramientas de linea de comandos para Admins

    
    $ leap --yes deploy
     Deploying to these nodes: web1, vpn1, couch1
     = updated hiera/couch1.yaml
     = updated hiera/web1.yaml
     = checking node 
       - [web1] ok
       - [couch1] ok
       - [vpn1] ok
     = synching configuration files
       - hiera/web1.yaml -> web1:/etc/leap/hiera.yaml
       - hiera/vpn1.yaml -> vpn1:/etc/leap/hiera.yaml
       - hiera/couch1.yaml -> couch1:/etc/leap/hiera.yaml
       - files/branding/tail.scss, files/branding/head.scss -> web1:/etc/leap
     = synching puppet manifests
       - /home/demo/leap/demo/leap_platform/[bin,puppet] -> web1:/srv/leap
       - /home/demo/leap/demo/leap_platform/[bin,puppet] -> vpn1:/srv/leap
       - /home/demo/leap/demo/leap_platform/[bin,puppet] -> couch1:/srv/leap
    ...
                

    Instalando un nuevo Proveedor

    Inicializacion y puesta en marcha de nuevos nodos

    Proveedor de pruebas

    demo.bitmask.net - Proveedor de referencia de LEAP

    ya abierto para beta testers =)

    Proveedores futuros

    Etc

    para servirles 24/7 en #leap @ irc.freenode.org

    Website: https://leap.se

    Github Mirror: https://github.com/leapcode

    Hecho con reveal.js