La memorizzazione di due componenti di un segreto in due punti aumenta la sicurezza?

2

Diciamo che ho un intero segreto X, quindi non rischio di perderlo, lo memorizzo su alcuni servizi cloud. Ma penso che ci sia una piccola probabilità che venga violato. Quindi, per dissipare queste paure, posso generare un numero casuale R e archiviare X + R sul cloud e R su un altro servizio cloud. sembra come se dovessi sentirmi più sicuro, dal momento che un hacker non può fare nulla con X + R da solo, o R da solo. È giusto?

PS: Credo di aver aumentato anche le mie possibilità di perdere i miei dati (approssimativamente raddoppiati). Ma sembra che la probabilità che qualcuno capisca che X è probabilmente diminuita di una frazione molto più grande (1 / P) rispetto a questo raddoppio.

    
posta user42541 19.01.2018 - 19:58
fonte

2 risposte

2

Sì, la memorizzazione di parti di segreti in più posizioni aiuta a prevenire l'uso non autorizzato. Un utente malintenzionato avrebbe bisogno di entrambe le parti (nello schema che descrivi) per utilizzare il tuo segreto. Come fai notare, raddoppia anche il rischio che tu perdi l'accesso al tuo segreto. Nel mondo della triade della CIA (Riservatezza, integrità e disponibilità), hai barattato una disponibilità inferiore per una maggiore riservatezza. Se sei a tuo agio con quel rapporto, puoi fermarti qui.

Se desideri un maggiore controllo sul rapporto tra Riservatezza e disponibilità, puoi utilizzare uno schema inventato da Adi Shamir (la S in RSA). Lo schema di condivisione segreta di Shamir è essenzialmente "RAID" per i segreti. Memorizzi più pezzi in modo tale che sia necessario un numero di pezzi per ricostruirlo. Ad esempio, puoi "dividere" il segreto in 5 pezzi, ma in un modo che solo 3 sono necessari per recuperare il segreto originale. Supponendo che tu abbia abbastanza posti per mettere le chiavi, questo significa che avrai bisogno di 3 fallimenti per perdere l'accesso alla tua chiave, e un utente malintenzionato dovrebbe compromettere 3 host per accedere alla chiave.

    
risposta data 19.01.2018 - 20:23
fonte
-1

Quello che descrivi è simile a un one time pad. Per n byte di dati d , prendi n byte di dati casuali r e archivia r in una posizione e r xor d in un'altra. Senza entrambi r e r xor d è impossibile ottenere d (con l'avvertenza di r che deve essere veramente casuale, un difetto nel generatore di numeri casuali potrebbe renderlo banale da interrompere).

    
risposta data 19.01.2018 - 20:11
fonte

Leggi altre domande sui tag