Come funziona la firma con Elliptic Curve Crypto?

4

Quindi ho letto e ho una comprensione decente di come funziona la crittografia con Crittografia a curve ellittiche. Penso anche di aver capito come funziona la firma con algoritmi come Elliptic Curve Digital Signature Algorithm (ECDSA). Il certificato e la chiave privata sul mio server web sono entrambi chiavi RSA a 2048 bit. Posso fare solo firme RSA perché è quello che sono le mie chiavi? Se posso fare cose come ECDSA, in che modo la fiducia è concatenata dalle mie chiavi RSA alle chiavi ECC utilizzate per firmare sotto ECDSA?

    
posta user225295 06.07.2014 - 05:11
fonte

1 risposta

1

La crittografia a curva ellittica (EC) è significativamente diversa dalla crittografia tradizionale in stile RSA.

Linea in alto Fronte ( BLUF ): il tuo server può gestire solo gli scambi di chiavi RSA in base alle informazioni fornite.

Come primer, entrambi sono protocolli crittografici asimmetrici. Vengono utilizzati per trasmettere in modo sicuro una chiave SYMMETRIC utilizzata da entrambe le parti per crittografare i dati / messaggi effettivi. La ragione di questo è che i protocolli crittografici asimmetrici sono estremamente computazionalmente intensi rispetto ai protocolli crittografici simmetrici (nel caso generale). Pertanto, la crittografia di un set di dati di grandi dimensioni o di un messaggio di streaming richiederebbe un uso intensivo delle risorse. Invece, viene utilizzata la chiave simmetrica.

Quindi torna alla tua domanda. La tua firma digitale è stata creata e firmata affermando che la tua chiave pubblica è una chiave RSA a 2048 bit. Ciò significa necessariamente che la tua chiave privata è anche una chiave RSA: non puoi utilizzare i protocolli CE con quella firma digitale o le chiavi che possiedi. Quindi la risposta alla tua prima domanda è: Sì, puoi fare solo scambi di chiavi RSA a 2048 bit sul tuo server web.

Per creare / generare chiavi EC dovresti essere emesso uno (o più) da un fornitore upstream o generarlo tu stesso tramite uno strumento di terze parti come openssl.

Come ulteriore accenno, i lettori potrebbero chiedersi perché si dovrebbe usare EC su RSA. Beh, questo è dovuto alle prestazioni. In teoria (almeno per quanto è stato dimostrato fino ad oggi nella comunità di sicurezza), le chiavi EC occupano molto meno spazio e vengono eseguite più rapidamente su un particolare sistema (le implementazioni hardware possono variare in contraddizione con tale affermazione, ma solo con implementazioni software sullo stesso il sistema EC dovrebbe essere più veloce della RSA a resistenza equivalente.

Ad esempio, secondo la pagina openssl su EC ( link ), crittografando una chiave simmetrica a 256 bit in RSA richiederebbe una chiave RSA15360 bit ma solo una chiave EC a 512 bit.

Quindi, se si utilizza un server HTTPS con molti client, è necessario utilizzare le chiavi EC perché è possibile proteggere la chiave simmetrica molto più rapidamente e ridurre di molto l'elaborazione complessiva (compresa la quantità di dati inviati sopra il filo nelle borse della chiave).

Vai alla tua seconda domanda. Se si dovessero avere chiavi EC, sarebbero probabilmente in un certificato diverso perché sarebbero emesse / generate in un momento diverso. Il trust dovrebbe provenire da qualunque fonte sia la tua attuale fiducia, indipendentemente dal fatto che si tratti di un'autorità di certificazione radice interna o esterna come verisign o godaddy.

In teoria, se al tuo certificato sono state concesse le autorizzazioni appropriate, potrebbe essere usato per firmare i certificati down-stream (cioè, il tuo certificato è un'autorità di certificazione intermedia che può quindi firmare richieste da altri all'interno della tua organizzazione). In tal caso (non è probabile che il certificato venga utilizzato su un server Web), è possibile creare chiavi EC e una richiesta di firma del certificato CE e emettere un certificato autorizzato dalla firma RSA a 2048 bit per consentire l'utilizzo per il proprio , ad esempio, chiave EC 384 bit.

Spero che questo aiuti alcuni. Avrei letto il link di openssl che ho postato per un po 'di più su questo.

    
risposta data 27.07.2014 - 18:42
fonte

Leggi altre domande sui tag