Qual è il modo più sicuro per trasmettere un messaggio a un altro client attraverso un server nascosto da utenti malintenzionati di alto livello? [chiuso]

11

Supponiamo di essere costantemente minacciato da hacker e agenzie di alto profilo che tentano di intercettare i messaggi inviati tra te e un amico.

La domanda è: qual è il modo più sicuro per inviare messaggi a lui senza che nessun utente o agenzia malevolo sia in grado di:

  1. Intercetta e decrittografa i tuoi o i messaggi dei tuoi amici.
  2. Interrompi la comunicazione tramite MiTM o DDoS. I server cloud ospitati in diverse parti del mondo aiutano a scaricare il traffico DDoS e rendono difficile spegnere i server? Che dire di più proxy senza alcuna informazione ragionevole inoltrata nelle intestazioni, in modo che il tuo provider internet non sappia del server che stai contattando nel caso qualcuno riesca a sequestrare i log di navigazione in Internet?
  3. Qualsiasi altro attacco come attacco di ripetizione , Meet-in-the-Middle-Attack e così via che in poche parole potrebbe finalmente derivare il contenuto del messaggio o portare alla rappresentazione.

Supponiamo anche che tu sia uno studente e non possa permettersi un laptop potente per scricchiolare grandi numeri , quindi un algoritmo crittograficamente lento deve essere escluso per cominciare.

Questa è la situazione in cui ci troviamo:

                              C                     B
                       ----------------     ------------------
         A             |              |     |                |
      -------          |    Server    |'''''|     Friend     |
      | You |''''''''''|              |     |                | 
      -------          ----------------     ------------------
                 |                              |
               |                D                 |
             ---------------------------------------
             |                                     |
             |                                     |
             |      Malicious user or agency       |
             |                                     |
             |                                     |
             ---------------------------------------

A dovrebbe essere in grado di inviare qualsiasi elemento a B fino a C senza D in grado di interagire .

Si sta scambiando la chiave con RSA e usandola come crittografia / decifrazione dicendo AES128 abbastanza? Che ne pensi di utilizzare sia RSA che PGP in modo che dopo aver decrittato con la chiave RSA devi decodificare anche con PGP? O è superfluo?

Ho pensato ad una sorta di schema MAC-then-encrypt-and-encrypt-again : AES128(Message + RSA pub key) + (PGP pub key + nonce) <-> server <-> ((AES128(Message + RSA pub key) + (PGP pub key + nonce)) - nonce) == PGP priv key == RSA priv key | stop

Lanciamo un diagramma lì dentro ancora una volta per comprenderlo meglio:

Mittente

             -------------     ---------------    
             |           |     |             |
             |  Message  |--+--| RSA pub key |
             |           |     |             |
             -------------     ---------------           
                      \          /    
                       \        /
                        \   D  /
                         \    /
                          \  /
                           \/
                      -------------     -----------------     -----------
                      |           |     |               |     |         |
                      |  AES128   |--+--|  PGP pub key  |--+--|  Nonce  |
                      |           |     |               |     |         |
                      -------------     -----------------     -----------

Ricevente

                                                                 \    /
                      -------------     -----------------     ----\--/---
                      |           |     |               |     |    \/   |
                      |  AES128   |--+--|  PGP pub key  |--+--|  No/\ce |
                      |           |     |               |     |   /  \  |
                      -------------     -----------------     ---/----\--
                           /       \                /           /      \
                          /         \              +                    
                         /           \            /             
  ---------------     -----------     +   -----------------            
  |             |     |         |      \  |               |
  |  RSA pubkey |--+--| Message |       \ |  PGP priv key | <----- Symmetric
  |             |     |         |        \|               |
  ---------------     -----------         -----------------   
          \
           +
            \
         ----------------
         |              |
         | RSA priv key | <---- Asymmetric. Only the receiver knows this key.
         |              |
         ----------------
                    \
                     \
                 -------------
                 |           |
                 |  Message  |
                 |           |
                 -------------

Accoppiando questo con (Perfetto) Inoltrare la segretezza vorrebbe renderlo ancora più sicuro?

Il risultato dovrebbe essere uno e solo uno: infrangibilità o molto -slow breakability (che richiederebbe cento anni anche per un supercomputer) da parte dell'utente malintenzionato.

Se possibile, aggiungi fatti, riferimenti, competenze specifiche o qualsiasi altra cosa che non renda basata l'opinione della tua risposta.

    
posta Alper Turan 05.04.2015 - 15:17
fonte

7 risposte

21

Credi davvero di poter rilevare se il tuo computer è stato manipolato in modo da poter annusare i dati semplici direttamente sul computer o che il software di crittografia è stato modificato in modo da facilitare lo sniffing? Credi davvero che tuo padre potrebbe fare anche questo? Se hai scaricato il software di crittografia: come fai a sapere che fa ciò che afferma e solo quello? Se hai scritto tu stesso il software di crittografia: hai veramente compreso appieno tutti gli algoritmi coinvolti e ti sei assicurato che la tua implementazione non sia corretta ma usi un RNG appropriato e sicuro, ecc. La crittografia stessa è già difficile, ma risolve solo una parte del problema, non l'intero problema. Non dimenticare link .

    
risposta data 05.04.2015 - 17:00
fonte
6

Il tuo primo problema determinerà di cosa è capace l'NSA. Ad esempio, il tuo laptop ha un keylogger installato? Il BIOS è compromesso? Il firmware del disco rigido è compromesso?

Inoltre, dal momento che si desidera utilizzare un server intermedio, si dovrebbe in qualche modo sapere che l'operatore di quel server non viene ricattato con una National Security Letter o simile, o si dovrebbe trovare un meccanismo che ti protegga di fronte a un intermediario non fidato.

Con tutte queste situazioni, sarebbe game over.

In secondo luogo, se sei ragionevolmente sicuro che l'hardware non è compromesso, ecco cosa guarderei in:

  • Prendi una nuova chiavetta USB da un negozio al dettaglio di massa (non per corrispondenza) e pagane il denaro.
  • Scarica Tails.
  • Disconnetti da Internet.
  • Installa Tails sulla penna USB.
  • Rimuovi il disco rigido (che ti proteggerà da un firmware HD difettoso, anche se non da un BIOS errato nel tuo stesso computer).

Ovviamente tuo padre dovrebbe prendere le stesse precauzioni.

Quindi, definisci cosa vuoi nascondere:

  • Vuoi nascondere il contenuto del tuo messaggio?
  • Vuoi nascondere il destinatario del tuo messaggio?
  • Vuoi nascondere il fatto che hai comunicato affatto?

Se vuoi semplicemente nascondere il contenuto del tuo messaggio, è PGP. La riga dell'oggetto e il destinatario saranno comunque in testo normale. Dalla tua domanda, è così.

Se si desidera nascondere il destinatario del messaggio, è possibile utilizzare SSH per accedere a un computer di terze parti (noto non compromesso) e lasciare un messaggio lì come file di testo. Tuo padre userebbe anche SSH sullo stesso computer per recuperare il messaggio.

Se vuoi nascondere il fatto della comunicazione, dovrai connetterti attraverso la rete TOR.

L'ultima domanda è quale algoritmo usare per la crittografia. Prima di tutto, non usare SHA256. Non è affatto un algoritmo di crittografia, ma piuttosto un algoritmo di hashing. Se lo avessi usato, rimarrai stupito di quanto velocemente potresti trasferire anche file di dimensioni gigabyte in pochi secondi anche su una linea dial-up. E ti stupiresti perché tuo padre non è riuscito a recuperare il file che hai inviato. SHA256 genera sostanzialmente un checksum di alcune dozzine di byte e lascia intatto il messaggio originale.

La tua idea di uno scambio di chiavi separato con la crittografia a chiave pubblica, seguita da una fase di trasferimento dei dati con crittografia simmetrica, è molto buona per la comunicazione diretta.

Per la selezione del cipher, guarderei a ciò che offre TLS 1.2. RSA per la chiave pubblica è buona. Anche AES128 per la crittografia simmetrica è una buona scelta.

Ovviamente, dal momento che stai usando un intermediario (il tuo server C), sarai vincolato da qualunque cosa offra quel server.

    
risposta data 05.04.2015 - 19:02
fonte
6

Pad uso una tantum

Qualsiasi utilizzo della matematica oltre i pad di utilizzo temporaneo è un'opportunità per la "NSA" di interrompere l'algoritmo. Nell'istante in cui si utilizza un algoritmo denominato, è necessario accettare la possibilità che l'NSA abbia violato quel particolare algoritmo. Mancando qualsiasi informazione riguardo a quali algoritmi hanno rotto, l'unico algoritmo "a prova di NSA" è il pad monouso.

E ti fidi dei tuoi generatori di numeri casuali e del tuo scambio di chiavi! (Modifica: e con questo intendo i generatori di numeri casuali reali Nessuno di quei generatori di numeri pseudocasuali sissy che girano su quelle cose "informatiche" nuove!)

    
risposta data 05.04.2015 - 21:21
fonte
3

Sali su un aereo e vai a trovare tuo padre. Una volta che sei in un luogo in cui sei solo tu, sussurra i tuoi segreti all'orecchio di tuo padre. Se insisti sulla parte "attraverso un server", scrivi il tuo messaggio su un pezzo di carta, mettilo nel caso del server, e poi fai in modo che papà Edwin lo tiri fuori di nuovo.

Né tu né io sappiamo di cosa sia capace l'NSA. Possono compromettere non solo i download del software, ma tutti. Possono avere bug hardware nel BIOS della tua scheda madre, tastiera, router, disco rigido e telefono cellulare. Potrebbero avere degli exploit per gli oggetti che non hanno buggato. Possono avere telecamere, microfoni e altri rilevatori a casa tua, in auto e sulla tua persona (smartphone).

Oh, hanno budget quasi illimitato e accesso ai record precedenti. Hanno psicologi e scienziati comportamentali per delineare te. Hanno influenza sui mass media e sull'intrattenimento che influenzano l'opinione pubblica e i valori.

L'unica mossa vincente non è quella di giocare.

    
risposta data 06.04.2015 - 12:26
fonte
1

Lasciami dire così. I tuoi veri problemi sono accesso fisico e US Mail . In questa situazione ipotetica, l'NSA ti sta monitorando. Mentre questo può essere evitato con un uso sufficiente della crittografia nella misura in cui ciò non è efficace, si dovrebbe prima, comunicare con la crittografia pad un tempo o una chiave per la maggior parte delle soluzioni. Non c'è nulla che impedisca alla NSA di cercare solo la tua posta. Potrebbero intercettare un router e installare un'intercettazione telefonica o installare un software su un laptop. Il modo migliore per farti ignorare dalla NSA è essere così noioso che non ha senso guardarti. Nel 2038, la NSA avrà probabilmente abbastanza potere di calcolo per rompere qualsiasi cosa la maggior parte di noi stia usando oggi. Usa, ad esempio, RSA a 4096 bit per le chiavi e Serpent a 256 bit per crittografarli, se qualche algoritmo ha un attacco statistico messo a punto dalla NSA contro di esso, sarà AES. In secondo luogo, essere noioso. Ex. Messaggio, chiave crittografata da RSA 4096-Bit, Serpent a 256-bit a tre strati (che impedisce l'attacco man-in-the-middle) Encrypt "Ciao papà, ho una nuova ragazza, zia Ruth ha appena divorziato dallo zio Jake e la nonnina Snowden sta facendo meglio con la sua chemio, spero che tu possa tornare presto negli Stati Uniti, il mio GF vuole incontrarti. - (Ipotetico figlio di Edward Snowden) Viaggia attraverso server core non protetti Raccolto dalla NSA Ricevuto da Edward Snowden L'NSA, dopo aver decrittografato mesi di messaggi del genere e utilizzando una grande quantità di energia del computer, con ogni probabilità ti ignorerà e farà qualcos'altro.

Non sottovalutare mai il potere della psicologia nella sicurezza. La NSA si preoccuperà solo di guardare cose che sembrano sospette.

    
risposta data 06.04.2015 - 16:39
fonte
1

Un sacco di risposte, ma nessuna molto fattibile per il tuo joe medio, a.k.a Snowden Jr. Questa risposta è scritta da uno scenario attuale. Un sacco di cose possono accadere o cambiare in pochi anni, quindi riflettere su una situazione più di 2 decenni dopo non è molto utile, specialmente per quanto riguarda l'Information Technology.

Soluzione a puntina

Costruisci / Utilizza un computer che non dispone di sistemi di comunicazione wireless, ovvero nessun H / W in grado di trasmettere o ricevere dati in modalità wireless. No Bluetooth, Wi-Fi o altre funzionalità di comunicazione wireless. Disabilita anche qualsiasi capacità di connessione Ethernet o internet. Non connetti mai questo computer a Internet anche durante l'installazione di un sistema operativo . Il sistema operativo appena installato dovrebbe ovviamente essere Open Source e ampiamente testato solo per essere sicuro. Cripta l'intero disco rigido usando il software Open Source come VeraCrypt utilizzando Crittografia sicura . All'interno della partizione del sistema operativo "nascosta", crea le tue chiavi PGP. Criptare la chiave privata usando lo standard di crittografia simmetrica AES-256. Utilizzare una nuova unità flash acquistata in modo casuale e montarla su un dispositivo / PC secondario configurato in modo simile e cancellarlo, ri-partizionarlo e formattarlo in modo sicuro. Fai sempre questo passo prima di connetterlo al nostro PC principale dove abbiamo effettivamente le nostre chiavi PGP.

Una volta che abbiamo digitato e crittografato il nostro messaggio sul PC principale, collega l'unità flash "appena formattata" e copia il nostro messaggio su di essa.

Questo messaggio crittografato può ora essere inviato tramite qualsiasi PC sicuro (sicuro come un normale PC connesso a Internet potrebbe essere), connesso a Internet utilizzando qualsiasi servizio di posta sicura come ProtonMail .

    
risposta data 06.04.2015 - 17:06
fonte
-1

Appena ho letto il titolo stavo pensando One Time Pad e sono contento che Cort Ammon l'abbia pubblicato :) Comunque, non era per la mia soddisfazione e il mio post potrebbe essere un po 'lungo quindi non volevo per aggiungerlo nei commenti per il suo nel caso sia stato sepolto.

Ho anche visto che anche il relativo fumetto di xkcd è stato pubblicato :) Randall Munroe sicuramente ha ottenuto una grande distanza da quel particolare:)

Quindi quello che ho per te è un approccio a più livelli basato sulla configurazione del problema che hai descritto.

Penso che la tua migliore scommessa per la comunicazione sarebbe un rimbalzo della luna! Conosciuto anche come EME. Perché la NSA potrebbe sempre disconnetterti da Internet.

link

Ora torna al One Time Pad. Per chiarire il motivo per cui si vuole che l'OTP sia su un altro algoritmo di crittografia è perché l'OTP è un tipo simmetrico di crittografia, dove quelli standard usati oggi in rete (RSA, PGP, ecc ...) sono asimmetrici, il che significa che al loro centro usano un tipo di problema matematico che è costoso da fare computazionale nella direzione opposta e facile da fare nella direzione in avanti (ovviamente lo hai impostato a tuo favore).

Nel mio approccio per questo hai detto che avrebbe ipoteticamente avuto luogo nell'anno 2038 e che non hai molti soldi e sei il figlio di Edward Snowden e vuoi comunicare con i tuoi pop. Il problema con OTP come giustamente sottolineato da cpast su Cort Ammons post è nell'invio del Pad perché si finisce per dover usare una crittografia asimmetrica per trasferire i dati rendendo il vuoto OTP (teoricamente), ma la svolta che ho è che sia tu che Edward Snowden avete già l'OTP!

Lo schema prevede che il tuo DNA venga sequenziato (dovrebbe essere più economico entro il 2038) e circa la metà di questo dovrebbe corrispondere al DNA di Edward Snowden che dovrebbe anche essere sequenziato. Ora scegliendo un qualsiasi 2 umani casuali dovresti vedere che il 99,5% del loro DNA è lo stesso. Quindi, con una differenza del 0,5%, ne avresti solo la metà, lo 0,25% di Edward Snowden e ogni umano ha circa 3,3 miliardi di coppie di basi che equivalgono a 8.250.000 paia di basi di dati che puoi utilizzare per il tuo One Time Pad.

Il problema è che se Edward Snowden non ha accesso al DNA di tua madre, la trasmissione sarà molto inefficiente. Perché dovrai continuare a inviare il messaggio in modo ridondante mangiando i 2 ^ 22 (4194304) a 2 ^ 23 (8388608) bit di dati che hai. Non conosco davvero la matematica sulla probabilità di far capire un messaggio dall'altra parte quando metà del tuo OTP corrisponde, ma forse puoi chiedertelo dal lato matematico del forum, la mia ipotesi è che dovrebbe essere abbastanza inviare alcuni messaggi e potrebbe essere aumentato se sul lato di Edward Snowden fosse in grado di ottenere alcuni algoritmi e computer pesanti per setacciarlo per creare un messaggio leggibile.

Si noti che inviando lo stesso messaggio in modo ridondante non è un punto debole che consente di decifrare il messaggio, tuttavia l'uso ripetuto delle stesse informazioni OTP per più messaggi è un punto debole e permetterà a qualcuno di decripta i tuoi messaggi.

Ora potresti chiederti come lo saprebbe Edward Snowden per ottenere il sequenziamento del suo DNA e ottenere una configurazione di rimbalzo della luna e tutte le altre cose. Ci sono due risposte a questo. O entrambi siete Superrational (controllate wikipedia per Superrationality) o Edward Snowden sarà come la maggior parte delle persone con internet che cercano di capire la soluzione a un problema e poi Google per vedere se riesce a trovare un modo per raggiungere il suo bambino nel 2038 in definitiva leggendo questo pubblicare e rendersi conto che dovrebbe fare tutto quel DNA e roba radio:)

Sfortunatamente per entrambi voi, pubblicando questo, la NSA sarà anche consapevole e tenterà di rubare campioni di DNA da voi per sventare i vostri piani alla comunicazione in modo da poter indossare un completo davvero divertente e mascherare tutto il tempo per evitare di lasciare il DNA ovunque.

Inoltre, c'è da notare che Edward Snowden nel corso della tua comunicazione non sarà in grado di dire se sei stato compromesso dalla NSA, così non sarai in grado di inviare informazioni "mission critical" solo per una conversazione casuale.

L'ultimo modo in cui ciò potrebbe essere possibile è con qualche tipo di non ancora inventato lo schema di comunicazione quantistica completamente wireless e più facilmente disponibile. Qui puoi leggere le basi di uno schema di comunicazione quantistica cablato:

link

Potresti anche diventare presidente e poi sciogliere l'NSA in modo da non doverti preoccupare di essere spiato, ma a quel punto i paparazzi e gli agenti dei governi stranieri potrebbero spiarti.

Spero che questo sia stato utile:)

    
risposta data 06.04.2015 - 12:54
fonte

Leggi altre domande sui tag