Quanto è sicuro XMPP con certificati SSL autofirmati?

1

Sto cercando un modo semplice per configurare una semplice infrastruttura di messaggistica istantanea che protegga i messaggi in transito e che eviti di registrare in luoghi in cui né io né qualcuno di cui mi fido i controlli. Sono residente in Germania e, secondo Mr. Snowden, il mio traffico viene effettivamente filtrato e analizzato, e non mi sento affatto a mio agio. IM è qualcosa che mi infastidisce molto a riguardo.

Sto pensando di avere un server XMPP isolato con account per tutti nel gruppo di persone che ne hanno bisogno e per richiedere SSL con certificati autofirmati. Sto eseguendo un server XMPP sul mio raspberry pi in ogni caso, quindi perché non sfruttarlo con qualche sicurezza SSL. È configurato per non scrivere alcun log tranne errori e diagnostica, quindi il problema del registro è già stato risolto. Le persone in questione sanno come usare Pidgin, ma qualsiasi cosa eccessivamente fastidiosa non potrebbe volare con nessuno di loro. Anche il cellulare sarebbe un requisito, Facebook è troppo conveniente. Penso che XMPP abbia quello coperto.

Non mi piace tanto OTR, dato che il plug-in Pidgin richiede un discreto livello di competenza tecnica, si blocca Pidgin ogni tanto e impiega 10 o più secondi per iniziare una conversazione (per me) durante la quale Pidgin si blocca completamente. Inoltre, per quanto ne so, c'è solo il plugin di IM + per piattaforme mobili ed è piuttosto costoso. Affidarsi a un server self-hosted e ai certificati SSL dovrebbero funzionare per tutte le piattaforme immaginabili (suppongo?), Essere relativamente facili da configurare dal lato client e fornire un miglioramento decente nella sicurezza.

La domanda è, sarebbe abbastanza sicuro? Per lo meno tendo a mantenere la mia comunicazione su questa infrastruttura dai database dell'NSA. Non sto cercando di resistere a qualsiasi attacco diretto da parte di esperti qualificati o simili, vorrei solo avere conversazioni private che sono private come una volta una telefonata, e non archiviate e analizzate da qualche altra parte come una questione di routine .

Se lo è, un'altra domanda a parte, qualche consiglio su come esattamente generare i certificati per renderli sicuri? Ho letto che alcuni algoritmi potrebbero essere stati compromessi, vorrei evitarli se possibile. Ho visto alcuni thread qui su questo, ma nessuno (che ho preso in considerazione) con quella rotazione NSA-proofness.

    
posta Stegosaurus 16.12.2013 - 15:55
fonte

3 risposte

4

I certificati autofirmati valgono quanto i certificati firmati da un'altra entità. L'unica cosa che non sono è nella Public Key Infrastructure . Ogni computer moderno viene fornito con un elenco di certificati radice noti e affidabili . Qualsiasi certificato firmato da una di queste radici attendibili viene automaticamente considerato attendibile dal tuo computer. I certificati autofirmati non fanno parte di questa catena di fiducia, quindi spetta a te fidarti di questi certificati. In genere i client ti chiedono quando incontri un certificato che non può essere ricondotto a una radice conosciuta, quindi spetta a te confermare tale richiesta.

Il problema in questo è che se confermi questo prompt ogni volta a mano, è molto facile essere compromesso da un uomo nel mezzo, poiché la verifica umana di un certificato è molto soggetta a errori. Dovrai quindi stabilire la fiducia nel tuo certificato autofirmato una volta inizialmente e poi lasciare che sia il tuo cliente a gestirlo. Come farlo dipende dal client e dalla piattaforma, ma la maggior parte / tutte le piattaforme hanno un modo di aggiungere certificati arbitrari all'archivio certificati attendibili.

    
risposta data 16.12.2013 - 16:06
fonte
0

OK, le telefonate erano mai private. La compagnia telefonica ha sempre avuto la possibilità di toccare e registrare le chiamate. Il sistema è stato progettato in modo tale da aiutare le forze dell'ordine e il governo a spiare fin dall'inizio. L'idea che le telefonate siano personali e non possano essere violate è un errore.

Sembra che tu stia cercando di mettere insieme un sistema che sia facile da usare per le persone tecnicamente analfabete, nel qual caso suggerirei semplicemente di usare gli strumenti esistenti invece di farli girare da soli. Voglio dire, pensi davvero che le tue comunicazioni personali siano davvero interessanti per le agenzie di spionaggio che vale la pena reinventare la ruota, specialmente quando rende il sistema più difficile da usare?

I certificati firmati da Delf non sono una grande opzione in quanto non offrono alcuna garanzia sull'identità del titolare del certificato a meno che non si configurino in modo specifico le proprie associazioni di chiavi utente del pool, il che è un sovraccarico amministrativo. Se un utente desidera accedere allo strumento da più sistemi, deve associare ciascuna chiave privata di ciascun sistema con la propria identità o importare-trasferire-importare la stessa chiave autofirmata su ciascuna macchina. Gli utenti di computer più alfabetizzati non vorrebbero preoccuparsi di questo, chiedere a un principiante di fare quelle cose renderebbe il tuo strumento inutilizzabile. Quindi rende le cose difficili senza alcun vantaggio per la sicurezza.

    
risposta data 16.12.2013 - 16:19
fonte
0

Per quanto è sicuro .. È come detto anche sopra, quasi sicuro come qualsiasi altro certificato a meno che non si utilizzino software o sistemi operativi con vulnerabilità. TBH, io uso una CA propria e faccio rotolare i miei certificati per diverse cose da me stesso e stanno bene finora (ad esempio, certificati server, certificati utente, certificato RADIUS, SQUID MITM CA).

Probabilmente ti suggerisco di considerare creare una CA e firmare ogni certificato utente usando la CA o le sue CA intermedie in quanto ciò assicurerebbe che l'utente sia realmente l'utente di cui ti fidi e non qualcun altro in mezzo a cui ti fidi ogni volta che stabilisce una connessione. E un altro vantaggio: devi solo fidarti del certificato radice e quindi tutti gli utenti saranno considerati affidabili.

Non so molto di XAMPP, ma dovresti anche cercare modi per implementare un segreto in avanti. Nelle connessioni TLS, questo viene distribuito usando DH Keys (almeno 2048 bit per essere sicuro, io di solito utilizzo il 4096% didhparam, ma su un RasPi, ti consiglierei di usare dsaparam cuz che è più veloce e si dice che sia sicuro come dhparam ). In questo modo, con ogni sessione, viene generato un nuovo segreto per stretta di mano e anche se in seguito i tuoi certificati sono stati compromessi, sarebbe quasi impossibile decifrare i messaggi precedenti. Puoi anche verificare quali cifrate e curve utilizzare per mantenere le cose sicure in cipherli.st in quanto vi sono regolarmente cifrari sicuri aggiornati,

Nota anche che la generazione di chiavi da 8k bit non significa che avrai davvero la forza dell'8k, quindi non andare oltre l'orizzonte solo per rendere le cose "più sicure". Dipende sempre dall'entropia sul dispositivo e ad es. in una vecchia versione di Debian, c'era un po 'di "Debian Weak Key Vulnerabilty", quindi non importa quanti bit hai impostato, le chiavi erano sempre deboli, quindi anche tenere aggiornato il tuo sistema e utilizzare un sistema operativo sicuro che personalmente fiducia. (Personalmente uso BSD per generare le chiavi al giorno d'oggi dal momento che NSA ha effettuato un commit nel kernel Linux per quanto ne so e si dice che questo commit influenzi diversi punti di sicurezza in qualsiasi Distro Linux. Quindi per ovvi motivi, non mi fido dell'NSA anche in open source commette, ma non giudicherò la decisione di Linus su quel tho)

Fra, non è necessario gestire una PKI propria solo per pochi utenti, solo la CA openSSL autosufficiente sarebbe sufficiente. Ma se vuoi essere pulito, EJBCA non è così male per gestire certificati CA e registrati e liste di revoche.

    
risposta data 03.04.2017 - 04:56
fonte

Leggi altre domande sui tag