Esiste un motivo per crittografare una chiave di crittografia con un certificato prima di memorizzarlo?

5

Supponiamo che la mia applicazione .Net installata nel client codifichi un dato. Voglio usare una chiave diversa generata casualmente per ogni cliente in modo che ogni client non conosca la chiave dell'altro.
Qualcuno mi ha detto che archiviarlo in un file non è abbastanza buono, ed è meglio usare un certificato per crittografare questa chiave prima di memorizzarla.
Ma non vedo la differenza. Se un hacker accede al computer del client e può copiare la chiave di testo normale dal file, può anche ottenere chiavi private e certificati dall'archivio certificati e utilizzarli per decodificare e ottenere la chiave originale.

    
posta Ronen Festinger 15.07.2013 - 14:40
fonte

2 risposte

4

Questa è una discussione che è stata menzionata un sacco di volte prima su questo sito. Hai ragione nella tua dichiarazione dicendo che questo semplicemente offusca (quindi la sicurezza per oscurità) la chiave di crittografia. Ad alcune persone piace farlo per rendere molto più difficile agli hacker accedere alle loro chiavi. Alla fine puoi solo rallentarli.

Quindi qual è la differenza? Non molto eccetto che potresti guadagnare un po 'di tempo.

    
risposta data 15.07.2013 - 14:53
fonte
1

In sostanza, ciò che il cliente memorizza, il cliente memorizza. I livelli di crittografia non impediranno a un utente malintenzionato locale di estrarre la chiave. Tuttavia, alcuni attaccanti deboli possono essere scoraggiati ad un certo punto. Fondamentalmente, lo preferisci quando i segreti memorizzati localmente sono protetti da ciò che il meglio che il sistema operativo può offrire; in contesti Windows, significa DPAPI o anche smart card. Con DPAPI, un utente malintenzionato di successo avrà bisogno di un accesso a livello di sistema alla macchina; con smart card , l'attaccante anche deve sovvertire la macchina in modo non appariscente e catturare segreti mentre il l'utente normale applica la sua carta. Non è una protezione al 100% e gli aggressori motivati vogliono superare questi livelli, ma è meglio di niente.

Il punto delicato, tuttavia, è che tali infrastrutture sono state progettate per essere utilizzate con chiavi e certificati asimmetrici. Quindi non si desidera utilizzare un certificato per motivi di crittografia asimmetrica; vuoi utilizzare un certificato perché, nella pratica , è ciò che serve per trarre vantaggio dalle migliori funzionalità di protezione locali.

(Ma non credere che "migliore" significhi "buono".)

    
risposta data 16.07.2013 - 16:25
fonte

Leggi altre domande sui tag