Crittografia che assomiglia all'e-mail ordinaria

41

Vorrei rimanere fuori dai filtri automatici installati dalle agenzie di sicurezza e non essere inserito accidentalmente in una lista di non volo o altro. Diciamo che sto avendo un dibattito politico con un amico sulla democrazia e cose del genere, e termini come la rivoluzione, il capitalismo, la libertà e così via (oh, ciao, NSA!) Sono gettati in giro molto. L'invio di un'e-mail crittografata in cui normalmente dovrei inviare e-mail in formato testo è un modo sicuro per attivare alcuni filtri, presumo.

Esiste un modo per crittografare le e-mail in modo che il testo cifrato sia difficile per un algoritmo distinguere dalle e-mail normali (diciamo spam, difficile da ottenere più regolari dello spam)?

Ad esempio:

Testo cifrato PGP normale, facile da distinguere:

-----BEGIN PGP MESSAGE-----
Comment: GPGTools - http://gpgtools.org

hQIMA7t6lidYOUd0AQ//Z7y+/tvQQ0TRoOT0ydUwVjJZh5sLQOEVQNDHGEUjfvL9
7UJhtEaisVwlDsqTEqpa04FWzgehBBDnxgOUFcPB3xSGD9Bi61MItK6gm1phTnEn
hOezHmGqAyrCarofkYn5vpwPZtpSmRvpS9tykhRTKMlhsN5EOLvaDa8TsqMnqwGm
pPC8j219YG2U/OmRa96GTslMaDtIx6470Ea4fcJf2jdo3RlgLEc7BGQVcrOpHj/0
-----END PGP MESSAGE-----

Cyphertext, meno facile da distinguere:

pen3s grow for cheap russion brides are looking for parntners in 
Detroid area visit our website now click to unsubscribe
    
posta Rodin 08.11.2013 - 14:20
fonte

10 risposte

43

Di 'ciò che in realtà vuoi fare è rendere l'e-mail crittografata simile allo spam. OK, come realizzare quello?

Un modo possibile sarebbe prendere il testo cifrato e scomporlo in parti gestibili, diciamo, di nove bit ciascuna. Usando una serie di dizionari, queste quantità a nove bit sono mappate su una o più parole in una lingua di destinazione (nove bit richiederebbero un dizionario di 512 parole, che è fattibile mentre allo stesso tempo fornisce la variazione). È possibile utilizzare una catena Markov per scegliere il dizionario successivo in base alla parola selezionata nel dizionario precedente, che probabilmente potrebbe essere fatto per rendere l'output simile al testo scritto male nella lingua data.

Modificando l'interazione tra le due parti, l'output di un tale schema potrebbe essere in pratica qualsiasi cosa, da testo senza senso a testo semi-leggibile (molto simile a molte e-mail di spam). E sarà testo, non dati binari.

Una variante ancora più semplice sarebbe quella di codificare semplicemente il testo cifrato usando qualcosa come l'elenco di parole PGP . Il risultato sarà ovviamente completo e senza senso, ma probabilmente passerà i più semplici test statistici per una determinata lingua di destinazione.

Ora che ho descritto queste idee, sono ovviamente del tutto inutili. Dovrai inventarti qualcosa di tuo. ; -)

    
risposta data 08.11.2013 - 14:58
fonte
10

Stai chiedendo il link , che è un sito web che fa esattamente questo. Usano un metodo steganografico per codificare bit usando frasi spam.

Tuttavia, gli svantaggi dell'implementazione spammimica sono gravi. Sono conosciuti pubblicamente, quindi puoi scommettere che qualcuno che potrebbe essere interessato a ciò che scorre attraverso il loro sito lo sta già intercettando. E la loro lista di parole e frasi è statica, quindi una singola codifica è sempre riconoscibile come tale. Successivamente, il loro algoritmo sembra codificare 13 blocchi di byte in circa 1 kb di testo spam, quindi è altamente inefficiente. Le persone non leggono (né inviano) più di un paragrafo di spam, quindi un blocco di 10 kb di testo di spam sarebbe altamente sospetto.

Le persone che cercano di inviare più di poche parole si stanno mascherando in file più grandi, come immagini o file musicali. Non che questi non possano essere individuati, ma scambiare immagini con un amico è meno sospetto di qualcuno che scambia grandi quantità di spam.

Infine, le persone usano "dead drops". Piuttosto che inviare per e-mail i piani segreti in un'immagine al co-cospiratore, possono postare l'immagine su una qualsiasi delle migliaia di siti di hosting di immagini, o allegata alla recensione di un prodotto o a una vendita su eBay. Ciò rende un po 'più difficile per qualcuno sapere quale degli spettatori della pagina è stata la persona che lo ha decodificato.

    
risposta data 08.11.2013 - 16:12
fonte
6

Supponete di sostituire ogni carattere di testo cifrato per una parola del dizionario impostata, quindi avrete un gruppo di parole non correlate in un messaggio molto lungo. Anche se questo non farebbe scattare un algoritmo alla ricerca di un tipico testo cifrato, probabilmente farebbe scattare gli algoritmi che le persone estremamente intelligenti impiegate dai servizi di sicurezza hanno messo in atto per scoprire nuovi metodi di crittografia della comunicazione, quindi sarebbe molto più probabile attirare l'attenzione a te stesso che se hai appena usato qualcosa di run of the mill come GPG.

Penso che la tua ipotesi che l'invio di messaggi crittografati attirerà automaticamente l'attenzione su di te è probabilmente sbagliata. Un sacco di persone inviano email crittografate per ragioni perfettamente normali, non vengono improvvisamente inserite in liste di non volo solo per questo motivo.

    
risposta data 08.11.2013 - 15:08
fonte
6

Leo Mark hanno ideato un sistema per comunicare in codice che sembrava innocuo e in chiaro. Lo descrive brevemente nel capitolo 79 di Tra seta e cianuro . In sostanza, un grande libro di codici che mappa i caratteri in frammenti di frasi consente di codificare un breve messaggio come un numero di frasi. Data la natura concisa del testo di merda che viene gettato nello SPAM, sarebbe relativamente facile generare un libro di codice che genererebbe testo che non ha sollevato le sopracciglia.

Ci sono due svantaggi in questo schema:

  1. Dimensione: una piccola quantità di testo in chiaro genererà un grande volume di testo codificato
  2. Libri di codice -
    1. Devi generare un libro di codice molto grande
    2. Devi condividere il libro dei codici con i tuoi amici senza che nessun altro ne ottenga una copia

Essenzialmente, questo è solo un altro codice di trasposizione, e come tale è vulnerabile a vari attacchi. Se lo usi per codificare l'output di un testo cifrato con un algoritmo moderno, forse la coppia soddisfa i tuoi requisiti sia per riservatezza che per segretezza - sebbene, come osserva Adnan, proteggere il tuo traffico da un avversario sufficientemente competente e capace come la NSA ha tutti i tipi di insidie.

    
risposta data 08.11.2013 - 15:18
fonte
4

Ci sono due lati di questo. Uno è la crittografia e l'altro nasconde la crittografia nello spam (steganografia). Entrambi sono problemi risolti, quindi sì, questo è possibile oggi usando componenti standard.

Si noti che la steganografia non è crittografia. Se vuoi la sicurezza di entrambi, dovresti fare entrambi.

Prima di tutto, la crittografia. Supponiamo che tu possa farlo già. Il risultato è una stringa di bit, che ora si interromperà nello spam.

Il prossimo passo richiederà necessariamente un certo grado di segretezza. Poiché stai nascondendo il messaggio "in bella vista", se il tuo hacker conosce il tuo meccanismo di codifica, potrebbe essere in grado di rilevare i messaggi codificati. Ma componiamo un algoritmo proprio qui:

Passaggio 1: Acquisisci contenuto di spam
È possibile generare questo algoritmicamente utilizzando catene di Markov, oppure è possibile catturare spam in ingresso o altra sorgente simile.

Passaggio 2: modifica in modo sottile il contenuto in un modo difficile da rilevare Questo dipenderà in qualche modo dalla tua fonte di spam. Ma una tecnica potrebbe essere la capitalizzazione delle parole. Converti lo spam in entrata in lettere minuscole e quindi, spostando il testo cifrato un bit alla volta, imposta la parola successiva in maiuscolo se il bit è un 1 o lascia in minuscolo se è uno zero.

Più efficiente è lo spazio, l'algoritmo stenografico, più facile da rilevare. Capitalizzare la prima lettera di ogni parola è meno ovvio che capitalizzare ogni singola lettera. Capitalizzare una lettera per ogni frase è ancora meno ovvio. Aggiungere o omettere la punteggiatura potrebbe essere un'altra tattica.

Se tu e la parte ricevente avete entrambi una copia dello spam sorgente, potreste modificare leggermente il contenuto per indicare le posizioni dei bit. Ad esempio, puoi aggiungere parole altrimenti inutili, omettere frasi, alterare la punteggiatura o altre tecniche simili.

Passaggio 3: decodifica il messaggio
Questo è semplice come invertire la tecnica applicata nel passaggio 2. Ad esempio, verifica la maiuscola di ogni parola e registra un 1 o 0 in base al risultato.

Passaggio 4: decrittografare il messaggio
Ora che hai il tuo bitstream del testo cifrato, decrittalo usando tecniche tradizionali.

    
risposta data 08.11.2013 - 20:54
fonte
3

Probabilmente il modo migliore che questo può essere fatto è la steganografia, cioè il processo di nascondere qualcosa dentro qualcosa. Questo può essere fatto girando forse frammenti di file non importanti o nascondendo interi documenti all'interno di immagini, ecc. Ci sono un sacco di strumenti di stegonografia gratuiti che possono darvi il succo (in particolare se volete creare il vostro) .

Consiglio vivamente di esaminarlo, è un mondo nascosto là fuori;)

    
risposta data 08.11.2013 - 15:15
fonte
2

Puoi farlo, ma solo se cambi il metodo di crittografia.

Come accennato da @Adnan, è praticamente impossibile trovare una chiave che sputa il cipherete inglese per un dato testo in chiaro.

Tuttavia, è possibile creare un metodo di codifica in cui mappare il testo cifrato alle parole inglesi. Fondamentalmente, trova un modo per associare i numeri alle parole (ad esempio, prendi un database di, diciamo, 65536 parole e mappale a ogni possibile abbinamento di due caratteri ASCII)

Tuttavia, i destinatari dovranno sapere che stai usando questa offuscazione e devono essere forniti con il tuo database per decrittografarlo.

    
risposta data 08.11.2013 - 15:01
fonte
1

Qualcosa che sia intelligente e facile è inviare un'immagine bitmap a colori reali dove hai cambiato l'ultimo bit di ogni byte (a parte i metadati) per contenere un messaggio binario.

Ho realizzato qualcosa di simile, per un progetto AS Computer Science. Non è molto difficile e nasconde completamente i dati. La codifica e la decodifica sono veloci (ho usato una soluzione Python piuttosto inefficiente che è capace di scrivere migliaia di caratteri in una singola immagine in meno di un secondo) e di avere immagini in una e-mail non attiverà alcun algoritmo.

La semplice memorizzazione dei caratteri ASCII (codificati) consente di nascondere grandi quantità di testo normale in una singola immagine. L'immagine non è visibilmente diversa (come il vero colore, per definizione, non ha alcun cambiamento visibile dal cambiare il bit meno significativo), e quindi apparirà completamente innocente, specialmente se è semplicemente di te / la tua famiglia, o forse un gatto che fa qualcosa di divertente .

Finché è possibile approssimare una distribuzione uniforme di bit nel testo codificato che si desidera inviare, apparirà completamente innocuo. Questo è anche il motivo per cui un'immagine personale è buona - non sarà (normalmente) reperibile altrove su Internet, e quindi non può essere paragonata per trovare il testo cifrato nascosto. Per distribuire uniformemente i bit, utilizzare un file di dizionario.

    
risposta data 08.11.2013 - 19:25
fonte
0

Penso che la soluzione migliore sarebbe non memorizzare testo cifrato all'interno del messaggio di posta elettronica, ma eseguire una delle seguenti operazioni:

  • Trova una spiegazione plausibile per inviare un sacco di immagini tra di voi e usa la steanografia per nascondere il testo cifrato all'interno (esistono semplici soluzioni off-the-shelf).
  • Puoi fare lo stesso se invii un sacco di testo scansionato tra di voi (come articoli scientifici)
  • Trova una spiegazione plausibile per archiviare allegati crittografati --- in Polonia si invierà una sorta di dati personali tra di voi.
  • Memorizza il testo cifrato al di fuori del messaggio, ad esempio nei contenuti di un file torrent o su qualche tipo di servizio di incolla libera --- e invia solo il link a quella risorsa. Questi collegamenti potrebbero anche essere codificati usando steanografia --- in questo caso vincerai comunque perché dovresti nascondere una quantità di testo molto più piccola all'interno della posta elettronica (ad esempio usando il metodo proposto da @gowenfawr).
risposta data 10.11.2013 - 12:10
fonte
0

Come sottolineato da altri post in questa discussione, ci sono modi per nascondere il testo crittografato. Sfortunatamente, come menzionato anche in questa discussione, tali tecniche presentano notevoli inconvenienti. Tuttavia, penso che la tua premessa iniziale sia forse finita. Mentre potrebbe essere vero che agenzie come la NSA stanno raccogliendo molti dati e persino facendo un ordinamento e classificazione molto sofisticati dei dati raccolti, non è la stessa cosa che usare o applicare i dati per fare cose come mettere le persone su liste di non volo ecc. Il vero problema con il tipo di raccolta di dati che si sta verificando entra in gioco principalmente quando si verificano altri eventi. Ad esempio, fai qualcos'altro che ti porta all'attenzione delle autorità, come essere arrestato per un crimine, correre per un ufficio politico, essere coinvolto nell'attivismo politico ecc. Quando si verificano questi tipi di eventi, agenzie come la NSA sono probabilmente per cercare tra i loro dati e creare un profilo basato su ciò che hanno raccolto. Prima di questo, i dati che hanno raccolto rischiano semplicemente di sedersi nei loro archivi di dati e di non essere mai guardati da un umano. Il problema con questo è che è molto difficile sapere quali eventi o azioni potresti suscitare la loro attenzione. Va notato che quando si alza la propria attenzione, è probabile che l'e-mail sia una delle molte fonti di dati che utilizza - probabilmente avrà anche un sacco di dati sulle transizioni finanziarie, ha tracciato i movimenti tramite l'uso della carta di credito, sviluppata in dettaglio profili basati su acquisti, movimenti, conversazioni telefoniche, elenchi di contatti ecc.

Tutte le informazioni che sono venute alla luce su ciò che varie agenzie governative in tutto il mondo hanno fatto è molto inquietante. Tuttavia, un aspetto negativo di questa conoscenza è stato quello di rendere le persone piuttosto paranoiche. Forse dobbiamo essere paranoici. Tuttavia, troppe persone sono preoccupate per ciò che le persone inseriscono nella loro e-mail e chi ha accesso ad essa. La realtà è che, se sei preoccupato che le persone sappiano cosa hai inserito nei tuoi messaggi di posta elettronica, non usare la posta elettronica. Infatti, se sei preoccupato che la NSA possa metterti in una lista di non volo a causa di ciò che hai inserito nei tuoi messaggi di posta elettronica, dovresti essere ancora più preoccupato per quello che faranno perché hai fatto questa domanda su questo posto. È molto più probabile che se stanno monitorando il livello che ti preoccupa, questo thread e post avranno fatto più "danno" di qualsiasi cosa tu abbia inviato ad un amico in un messaggio di posta elettronica.

    
risposta data 14.11.2013 - 23:08
fonte

Leggi altre domande sui tag