Vai al contenuto

Postura di sicurezza

Quel che promettiamo, e cosa significa per te.

Le tue chiavi non lasciano mai il tuo dispositivo.

Le chiavi sono generate nel tuo browser con libsodium. Sono cifrate con una password che scegli tu (Argon2id + XSalsa20-Poly1305) prima di essere memorizzate. Nessun server Morphit le vede mai.

Zero tracciamento.

Niente cookie. Niente analytics. Niente script di terze parti. Niente telemetria. Il tuo indirizzo IP arriva al server che usi, come per qualsiasi sito web; il codice di Morphit lo tiene solo in memoria per limitare la frequenza delle richieste e non lo scrive mai su disco né in un log. Guarda la scheda Rete del tuo browser.

Un nodo può funzionare senza clearnet.

Un operatore può gestire un nodo Morphit che non tocca mai l'internet clearnet. Le letture della catena e gli aggiornamenti viaggiano su Tor e I2P; i controlli delle commissioni in BTC/XMR e i prezzi arrivano da servizi onion (block explorer, server dei prezzi di Haveno e Bisq) e da altri nodi Morphit; un aggiornamento viene installato solo se corrisponde all'hash firmato da @morphit sulla catena. Perfino il sistema del server resta fuori dal clearnet: gli aggiornamenti dei pacchetti passano da Tor e l'orologio si regola su servizi onion. Il software rifiuta il clearnet e un firewall lascia uscire solo Tor e I2P; se Tor è bloccato, il nodo passa da solo ai bridge. Il nodo dichiara zero clearnet solo quando i suoi controlli vanno a buon fine, e gli altri nodi lo mostrano come dichiarazione dell'istanza stessa: non possono verificarlo. (Chi osserva la linea del server può comunque vedere che usa I2P.)

La chat è cifrata end-to-end.

Ogni messaggio viene cifrato nel tuo browser prima di partire (X25519 e ChaCha20-Poly1305, da libsodium), con una chiave monouso nuova combinata con le chiavi di chat di entrambi: solo tu e la tua controparte potete leggerlo, e la tua controparte sa che arriva davvero da te. Nessun server ha una chiave che lo apra. La chiave della tua controparte viene fissata: se mai cambia, Morphit si ferma e ti chiede prima, e un numero di sicurezza di 60 cifre vi permette di verificarvi a vicenda fuori da Morphit. Resta pubblica la busta: i messaggi stanno sulla catena Blurt, quindi si vede chi scrive a chi, quando, su quale ordine e quanto è lungo ogni messaggio, e non c'è forward secrecy. Il progetto completo è in docs/adr/0015-chat-crypto.md.

Release firmate e con impronta.

Ogni release viene compilata da un tag git firmato GPG su main, e @morphit la ancora sulla catena Blurt: lo SHA-256 del tarball dei sorgenti e del pacchetto offline, e gli hash dei file che avviano il sito (la pagina di base, il service worker, il codice di ingresso). Il tuo browser legge quel record firmato direttamente da un nodo Blurt pubblico, non da questo sito, ricontrolla con esso i file che questo sito gli ha servito e segnala in un avviso rosso quelli diversi; un nodo installa un aggiornamento solo se corrisponde. Così si scopre un file cambiato per errore o da un server parzialmente compromesso; non può proteggerti da un operatore ostile, che serve anche il codice di controllo. Gli script non hanno Subresource Integrity e le build non sono ancora riproducibili byte per byte, quindi verifichi un download con il suo hash e la sua firma (docs/VERIFY-YOUR-DOWNLOAD.md), non ricompilandolo.

Open source, threat model aperto.

Il threat model completo è nel docs/SECURITY.md del repo. Siamo espliciti su cosa proteggiamo e cosa no — fingere il contrario sarebbe peggio della sincerità.

Programma di ricompensa per bug

Operiamo un programma discrezionale di riconoscimento della sicurezza. Ogni scoperta perseguibile viene revisionata da un ingegnere reale, riceve una risposta e — se migliora materialmente la postura di sicurezza di Morphit — viene ricompensata in BLURT (pagato da @morphit-fees) o BTC, scalato in base alla severità e alla qualità del rapporto. Nessuna tabella di livelli fissa; giudizio caso per caso. Credito nella hall of fame disponibile anche senza pagamento. L'ambito completo, la guida alla severità, il flusso di pagamento e cosa non faremo (nessun NDA, nessuna divulgazione esclusiva) è documentato in docs/SECURITY.md.

Leggere l'ambito e le regole complete

Canarino di mandato

Pubblichiamo un canarino settimanale firmato con la chiave PGP dell'operatore. Il canarino dichiara esplicitamente che nessuna NSL / FISA / ordine di silenzio / richiesta di backdoor è stata ricevuta. Le prove di freschezza includono un'intestazione di blockchain attuale, un'intestazione di catena Bitcoin attuale e un titolo di notizie attuale (prova che il canarino non può essere pregenerato). Se il canarino smette di aggiornarsi per più di 14 giorni, trattalo come silenzioso: l'operatore potrebbe essere sotto pressione coercitiva, e dovresti passare a un altro operatore federato.

Vedere il canarino attuale di questo operatore · Chiavi PGP dell'operatore

Hai trovato un problema di sicurezza? Invialo solo come messaggio privato Matrix a @agorise:matrix.org. Non pubblicare mai i dettagli: né in una issue di Forgejo (lì le issue sono pubbliche), né in una stanza di chat, né sulla catena (un messaggio a morphit lì resta pubblico per sempre).