L'uso delle chiavi DSA è un rischio per la sicurezza?

6

Secondo le risposte su questa domanda le differenze tra RSA e DSA sembrano essere banali. Tuttavia, secondo questa pagina DSA compromette la tua sicurezza se qualcuno sta fiutando i tuoi pacchetti quando usi la chiave. E secondo questa pagina , DSA è limitato a 1024 bit.

Se tali affermazioni sono vere, non vedo alcun motivo per utilizzare mai le chiavi DSA. La politica dell'azienda a cui sto lavorando, tuttavia, consentirà solo le chiavi DSA.

Qual è la verità? L'uso di DSA riduce davvero la sicurezza tanto quanto mi sembra?

    
posta iconoclast 18.01.2013 - 16:47
fonte

2 risposte

10

Hai erroneamente letto la pagina sullo sniffing dei pacchetti; è già paranoico e allarmista, ma non a quel punto.

Quando si produce una firma DSA , il motore della firma funziona in un gruppo che è incorporato da un modulo p (un numero primo grande) e un ordine di gruppo q (un numero primo più piccolo, il divisore di p-1 ). Questi valori fanno parte della chiave pubblica. Per ogni firma , il motore della firma deve utilizzare un generatore di numeri casuali per produrre un valore casuale k che DEVE essere scelto in modo uniforme in 1..q-1 intervallo. Il termine "uniformemente" è molto importante. Se la scelta di k è distorta, allora consente il recupero delle chiavi dopo aver osservato un numero di firme. Se questo è critico o meno dipende dal pregiudizio. Un errore relativamente piccolo (ad es. k viene generato come una sequenza di bit delle dimensioni di q , quindi un modulo ridotto q ) incorre in un " accademico "rompere con il recupero chiave dopo circa 2 63 firme: un attacco, sì, ma non pratico. D'altra parte, se il generatore casuale è talmente macchiato che emette sempre lo stesso valore per k , allora due firme sono sufficienti per ricalcolare la chiave privata. Sony ha implementato un sistema di firma / RNG completamente fallito .

Ciò che equivale a è che se l'implementazione di un algoritmo di firma è fasulla, beh, potrebbe perdere dati importanti, inclusa la chiave privata. Questo è vero per qualsiasi algoritmo crittografico e RSA non è esente. Individuare il DSA è ingiustificato.

(Ciò che può essere detto in tutta la neutralità è che DSA ed ECDSA richiedono una fonte di casualità per ogni firma, che è un requisito relativamente pesante per i sistemi embedded come le smartcard. avere tempo, Io lavoro sul problema . Modifica: questo è ora un RFC pubblicato .)

Come per dimensioni della chiave , lo standard corrente specifica le dimensioni di 1024, 2048 e 3072 bit (che è la dimensione di p ). Una versione precedente dello standard consentiva solo 1024 bit, mentre una versione ancora più vecchia consentiva tutti i formati multipli di 64 da 512 a 1024 bit. Un certo numero di implementazioni implementate di DSA sono un po 'in ritardo rispetto allo standard 2009 e quindi consentono solo chiavi a 1024 bit.

Una chiave DSA a 1024 bit non è un rischio critico. Per quanto sappiamo, il DSA sembra essere almeno strong quanto RSA con le stesse dimensioni della chiave, e in pratica un po 'più strong. DSA fa affidamento su logaritmo discreto e l'attuale record DL-break è per 530 bit, mentre il record corrente per la fattorizzazione (RSA) è 768 bit. Gli algoritmi più conosciuti per la fattorizzazione e DL hanno molte somiglianze, ma il passaggio finale (dove è necessaria molta RAM veloce) sembra essere più costoso con la DL che con la fattorizzazione. Pertanto, al momento, una chiave DSA a 1024 bit non è un vero rischio per la sicurezza . Soprattutto da quando, per le firme, abbiamo meno preoccupazioni per le interruzioni future che per la crittografia; e DSA è solo per la firma.

Il problema principale con DSA è che non è ampiamente supportato come RSA; quando è supportato, può avere limitazioni (ad esempio limitate a chiavi a 1024 bit o utilizzabili insieme solo a un insieme limitato di altri algoritmi crittografici). Queste limitazioni non sono intrinseche all'algoritmo, ma riflettono lo stato del mercato, che è dominato da RSA. Tuttavia, attualmente è abbastanza di moda passare a varianti di curve ellittiche di DSA e, di conseguenza, il mercato è lento ( molto lentamente) spostando verso un maggiore supporto per il (DS) DSA.

    
risposta data 18.01.2013 - 17:17
fonte
2

Esamina i tuoi due problemi:

  1. L'utilizzo di un RNG errato fa filtrare la chiave privata

    Questo è un problema con il modo in cui il DSA viene solitamente descritto e implementato, ma non un problema intrinseco del DSA. Puoi implementare il DSA in modo deterministico evitando questo problema.
    Penso che sia un difetto nelle implementazioni tipiche e dovrebbe essere risolto. Ma a quanto pare coloro che lavorano su queste implementazioni non sono d'accordo, o vogliono seguire alcune procedure standard imperfette.

    I sistemi con un RNG rotto sono un grosso problema, non importa quale cripto si usi. Ad esempio, spesso interromperà totalmente la riservatezza delle connessioni crittografate perché le chiavi di sessione sono cattive. Evita questi sistemi a tutti i costi.

    Matthew Green ha scritto un post sul blog sui problemi causati da un cattivo RNG: Sopravvivere a un RNG sbagliato

  2. DSA è limitato a 1024 bit

    Alcuni standard precedenti (FIPS 186-2) impongono chiavi a 1024 bit e alcune implementazioni potrebbero essere limitate a quella dimensione. Ma il più recente standard FIPS 186-3 li consente e molte implementazioni supportano chiavi a 2048 bit.

    Quindi non penso che sia più pertinente.

If those claims are true, I can't see any reason to ever use DSA keys [over RSA keys]

Ci sono pochi motivi per usare il DSA a campo finito su RSA. Hanno prestazioni simili a livelli di sicurezza simili. Ma ECDSA, che è DSA sulle curve ellittiche, offre prestazioni migliori (almeno per la firma) ad alti livelli di sicurezza. Quindi ci sono dei motivi per utilizzarlo, nonostante la debolezza degli RNG danneggiati.

    
risposta data 18.01.2013 - 17:16
fonte

Leggi altre domande sui tag