È possibile impilare algoritmi di crittografia con SSL?

1

SSL supporta un numero di cifrari, ma è possibile impilare / nidificare i cifrari ed elaborare il testo in chiaro in più fasi? Il mio avversario potrebbe essere in grado di crackare facilmente uno o più stadi, ma per decodificare il mio messaggio, hanno bisogno di craccarli tutti se posso usare più cifrari.

Ad esempio:

ciphertext = Encrypt(plaintext, key, alg=[1,2] )
           = Encrypt1(Encrypt2(plaintext,key2),key1)

Se voglio stabilire una connessione protetta da Blowfish, una curva ellittica, un debole cifrario sostitutivo di mia creazione e 3 round di 3DES con chiavi diverse, può farlo SSL?

Poiché tutti i cifrari possono avere punti deboli sconosciuti, l'utilizzo di tutta una vasta gamma di cifrari potenzialmente sicuri richiede che la mia minaccia persistente avanzata sia competente in tutti loro. Se solo una delle cifre è valida, il mio messaggio rimane protetto (a condizione che le cifre non condividano le informazioni chiave). Desidero trasmettere un enigma, avvolto in un mistero, ecc.

    
posta Des Cent 09.04.2014 - 22:19
fonte

3 risposte

1

SSL è chiamato TLS al giorno d'oggi.

Durante un handshake TLS, client e server sono d'accordo su un cypher-suite. Una suite di crittografia è una combinazione di un algoritmo di scambio di chiavi, un algoritmo di crittografia di massa, un algoritmo di hash e una funzione pseudocasuale.

La specifica TLS definisce un elenco fisso di possibili suite-cypher in Appendice A.5 .

Quando un client si connette a un server TLS, invia al server un elenco delle suite di crittografia supportate. Queste suite devono provenire dagli elenchi definiti nelle specifiche. Il cliente non può proporre uno personalizzato. Il server quindi seleziona una (1) di queste suite cifrate. Quella suite viene quindi utilizzata per la crittografia.

Un server TLS conforme agli standard non consentirà di stratificare più cyphers, né accetterà alcuna cifra non elencata nelle specifiche.

Ma quando utilizzi TLS per avvolgere il tuo protocollo, puoi naturalmente aggiungere ulteriore crittografia a livello di applicazione. TLS trasporta solo byte. Ciò che questi byte rappresentano non ha importanza.

    
risposta data 09.04.2014 - 23:06
fonte
2

SSL / TLS è un protocollo per l'invio di "dati dell'applicazione" come flusso bidirezionale di byte, quindi puoi inviare attraverso di esso tutto ciò che può essere codificato come byte, cioè tutto ciò che si adatta a tutti nella memoria di un computer. Se desideri applicare strati di crittografia aggiuntivi personalizzati, nulla ti impedirà.

Ora credere che un simile collegamento a cascata di algoritmi di crittografia possa fare bene alla tua sicurezza è un delirio noto, purtroppo abbastanza comune. Gli algoritmi di crittografia, se usati correttamente (ad es. Poiché sono utilizzati in TLS), non sono la parte più debole del sistema; sono la parte più strong. Quando sei attaccato, non sarà attraverso la rottura degli algoritmi. L'aggiunta di algoritmi aggiuntivi non aiuterà. In realtà probabilmente farà male, se non altro perché la complessità extra ucciderà le tue prestazioni e indurrà non a utilizzare TLS in alcuni casi, a causa di quel sovraccarico gratuito. Vedi questa risposta per ulteriori discussioni sul soggetto.

Credendo che il tuo algoritmo in casa aiuterà anche anche un delirio comune. La parte principale della formazione come crittografo è imparare che nessuno può costruire da solo un algoritmo che sarà sicuro in modo affidabile. Pertanto, i crittografi professionisti non creano algoritmi in questo modo; al contrario, pubblicano candidati , per essere controllati dai loro colleghi. Se nessuno di questi altri crittografi ben intenzionati ha trovato qualcosa di negativo da dire sul nuovo algoritmo dopo alcuni anni, allora potremmo iniziare a immaginare che l'algoritmo potrebbe essere abbastanza robusto, dopo tutto. Questo è l'unico metodo conosciuto per la progettazione di algoritmi sicuri. Non puoi farlo da solo, da solo, per definizione. Non posso neanche. Nessuno può.

    
risposta data 10.04.2014 - 15:23
fonte
0

Bene, pensa in questo modo:

Ogni crittografia produce un'uscita. Inventiamo una crittografia e rappresentala con f() . Diremo che il messaggio che stai crittografando è "Hello World". f("Hello World") produrrà un output di qualche tipo. Diciamo che quell'uscita è ... 1234567890. Ora, cosa succede se creiamo un altro schema, diciamo d() ? d("1234567890") ci fornisce un altro output, diremo solo che è 0987654321. Ora, cosa accadrebbe se inviassi "0987654321" tramite SSL / TLS? Otterresti l'equivalente di questo:

ssl(d(f("Hello World")))

Quindi, in breve, sì, è possibile. Tuttavia, come ha detto @Phillip, potrebbe essere o non essere supportato dal server che stai cercando di contattare ...

    
risposta data 09.04.2014 - 23:06
fonte

Leggi altre domande sui tag