Double RatchetK0K1K2K3DHDHDHm1m2m3m4fresh key per message → forward + future secrecy

Protocollo di segnale

12 minimo lettoCrittografia

Il protocollo Signal è il motore crittografico dietro Signal, WhatsApp, i thread crittografati di Facebook Messenger e la messaggistica RCS di Google. È la cosa più vicina a uno standard consolidato per la messaggistica asincrona sicura: sottoposto a revisione paritaria, distribuito su scala multimiliardaria e senza eguali nella sua combinazione di segretezza in avanti, segretezza futura e autenticazione.

Il corpo completo dell'articolo è fornito in inglese di seguito.

LIl protocollo Signal è stato sviluppato da Open Whisper Systems (ora Signal Foundation) a partire dal 2013. Si è evoluto da precedenti protocolli di messaggistica sicura (OTR, SCIMP) e ha combinato le loro idee con una nuova costruzione a cricchetto. L'innovazione principale: ogni messaggio utilizza una nuova chiave di crittografia, quindi la compromissione di una chiave rivela un solo messaggio e il protocollo si ripristina automaticamente dopo una compromissione includendo nuovo materiale della chiave nei messaggi successivi. Diffie-Hellman) per l'accordo sulle chiavi

  • HKDF (KDF basato su HMAC) per derivare chiavi da segreti condivisi
  • AES-256 in modalità CBC con HMAC-SHA256 per la crittografia dei messaggi ("Crittografa-poi-MAC")
  • Ed25519 firme per chiavi di identità
  • La stretta di mano iniziale X3DH

    Quando Alice invia per la prima volta un messaggio a Bob, che potrebbe essere offline, Signal ha bisogno di un modo per stabilire una chiave condivisa senza uno scambio interattivo. La risposta è X3DH (Triplo Diffie-Hellman esteso). L'app di Bob carica tre chiavi sul server di Signal:

    • La sua chiave di identità a lungo termine
    • Una prechiave firmata a medio termine (aggiornata periodicamente)
    • Un pool di chiavi una tantum prekeys (consumato una volta per nuova sessione)

    L'app di Alice li recupera tutti e tre. Esegue quattro calcoli Diffie-Hellman combinando le sue chiavi effimere e di identità con le tre prechiavi di Bob, quindi HKDF mescola i risultati in un segreto condiviso. Il primo messaggio include la chiave pubblica temporanea di Alice e gli ID prechiave da lei utilizzati; L'app di Bob ricostruisce lo stesso segreto condiviso dalla sua parte.

    La matematica è asimmetrica: Alice non ha bisogno di Bob online, ma la forza crittografica è equivalente a una stretta di mano interattiva.

    LIl doppio cricchetto

    Una volta che Alice e Bob condividono un segreto root, il protocollo entra nel suo stato stazionario. Due cricchetti a chiave avanzano per ogni messaggio:

    • Cricchetto a chiave simmetrica: per ogni messaggio di fila dallo stesso mittente, deriva una nuova chiave di catena eseguendo l'hashing della chiave di catena precedente. La chiave della catena viene mischiata con HKDF per produrre una chiave di messaggio univoca.
    • Diffie-Hellman cricchetto: ogni volta che la direzione della conversazione si inverte (Bob risponde ad Alice), Bob genera una nuova coppia di chiavi effimere, esegue DH con l'ultima chiave effimera di Alice e il segreto condiviso risultante viene mescolato nella chiave radice. Da quel punto viene eseguito un nuovo cricchetto simmetrico.

    Questa combinazione fornisce sia segretezza futura (i messaggi passati rimangono confidenziali se una chiave corrente viene persa) sia segretezza futura/sicurezza post-compromesso (dopo un passo del cricchetto dopo un compromesso, i messaggi futuri sono di nuovo privati).

    Cosa Il segnale funziona bene

    • Segretezza inoltrata alla granularità del messaggio. La maggior parte dei protocolli crittografati fornisce segretezza inoltrata alla granularità della sessione. Signal lo fa per messaggio.
    • Consegna fuori ordine. Se i messaggi 5, 6, 7 arrivano nell'ordine 7, 5, 6, il destinatario può comunque decodificarli tutti salvando brevemente le chiavi dei messaggi saltati.
    • Una comunicazione sincrona. X3DH consente di avviare una conversazione senza che il destinatario online.
    • Supporto multi-dispositivo. Il protocollo Sesame stratificato in alto gestisce più dispositivi per utente.
    • Metadati minimi. Il design del server di Signal (mittente sigillato, rilevamento dei contatti privati) nasconde più metadati rispetto ai concorrenti.

    Cosa c'è hard

    Lil protocollo è bipartito. Messaggistica di gruppo richiede macchinari aggiuntivi: la soluzione di Signal sono le "chiavi mittente" in cui ciascun mittente deriva una chiave per gruppo e la distribuisce a coppie a ciascun membro tramite il protocollo normale. Le garanzie di segretezza nei gruppi sono più deboli che nelle chat 1:1; è possibile aggiungere nuovi membri, ma il costo delle operazioni crittografiche cresce con la dimensione del gruppo. Lo standard IETF MLS (Messaging Layer Security) affronta questo problema su larga scala e viene gradualmente adottato.

    Verifica dell'identità dipende ancora dal confronto fuori banda dei numeri di sicurezza. Se non verifichi, ti fidi che il server di Signal non scambi le chiavi in ​​silenzio. La maggior parte degli utenti non verifica mai; la sicurezza del protocollo è quindi condizionata all'onestà dell'operatore oltre alla difficoltà di uno scambio di massa non rilevato.

    Dove incontri il protocollo Signal

    • Signal stesso (l'implementazione di riferimento)
    • WhatsApp (2,5 miliardi di utenti: il più grande servizio di messaggistica end-to-end mai crittografato)
    • Facebook Messenger (implementazione E2E predefinita completata in 2024)
    • Google Messaggi/RCS (chat 1:1 per impostazione predefinita; chat di gruppo aggiunte in seguito)
    • Conversazioni private di Skype (legacy)
    • Vari altri client

    LIl protocollo La libreria libsignal è open source e controllata. Il design crittografico ha resistito a più di un decennio di controlli.

    Domande frequenti

    Signal è davvero crittografato end-to-end o devi fidarti del server?
    Matematicamente end-to-end: il server non può decrittografare i messaggi perché non dispone delle chiavi. Ti fidi che il server di Signal non scambi silenziosamente le chiavi di identità durante la configurazione dell'account. La funzione di verifica del numero di sicurezza consente di confermare fuori banda che non si è verificato alcuno scambio.
    WhatsApp utilizza davvero lo stesso protocollo?
    Sì, il protocollo del segnale sottostante è lo stesso. La differenza sono i metadati: WhatsApp memorizza i numeri di telefono e (fino a poco tempo fa) alcuni metadati su chi invia messaggi a chi e quando. Signal nasconde più metadati in base alla progettazione. La crittografia del contenuto del messaggio è identica.
    Qual è la differenza tra protocollo di segnale e MLS?
    Il protocollo Signal è bipartitico con estensioni per i gruppi; MLS (Messaging Layer Security, RFC 9420) è uno standard IETF più recente progettato nativamente per i gruppi, con operazioni efficienti in base alle dimensioni del gruppo. MLS utilizza una derivazione di chiavi basata su albero che gestisce in modo efficiente gruppi di migliaia di membri. Alcuni servizi principali stanno migrando su MLS per le chat di gruppo; Signal Protocol rimane leader per 1:1.
    Il protocollo del segnale può essere violato dai computer quantistici?
    X25519 e Ed25519 sono vulnerabili ai computer quantistici su larga scala. Signal ha aggiunto PQXDH (un ibrido post-quantistico) nel 2023, mescolando CRYSTALS-Kyber per garantire la segretezza contro i futuri aggressori quantistici. Il doppio cricchetto stesso rimane classicamente sicuro; PQXDH indirizza "harvest-now-decrypt-tater".
    Perché non tutte le app di messaggistica utilizzano il protocollo Signal?
    La maggior parte dei principali ora cambia o sta cambiando. Gli holdout hanno ragioni aziendali: Telegram per impostazione predefinita non è E2E per le chat cloud in modo che possa servirle su tutti i dispositivi; iMessage utilizza il protocollo di Apple; alcuni servizi regolamentati dalla conformità necessitano dell'accesso lato server al contenuto del messaggio per la revisione legale. Il protocollo ha vinto tecnicamente; L’adozione è ora politica.
    Spiegazione del protocollo Signal: come funziona effettivamente la messaggistica crittografata end-to-end