Devo conoscere i vantaggi di separare le parti SSN in tre tabelle separate

-2

Ho utilizzato tre tabelle separate per i numeri di previdenza sociale: lgls1, lgls2 e lgls3. Ogni tabella memorizza una delle tre parti dei numeri di previdenza sociale. È più sicuro di un campo, nella stessa tabella del primo, del secondo e del cognome? Sono un principiante e non capisco il verbale dell'IT, quindi ho bisogno di termini facili da capire.

Ogni tabella ha una chiave primaria, che corrisponde al campo ID "tabella nomi".

Quindi, invece di:
personID
personLast
personFirst
personMiddle
personSSN

Ho:
personID
personLast
personFirst
personMiddle

lgls1ID
lgls1 _

lgls2ID
lgls2 _

lgls3ID
lgls3 _

    
posta Douglas Benoit 12.08.2016 - 06:47
fonte

3 risposte

10

L'unico vantaggio di sicurezza è che hai una migliore sicurezza del lavoro perché a nessun altro piacerà lavorare con tale architettura.

Non c'è alcun vantaggio reale in termini di sicurezza nel dividere il SSN in tre tabelle.

    
risposta data 12.08.2016 - 07:08
fonte
1

Tutto ciò fornisce "sicurezza per oscurità". Qualcuno che osserva nel tuo database potrebbe non capire che stai memorizzando un numero di previdenza sociale, ma questo è solo perché il nome della colonna sembra essere senza senso. Chiunque guardi realmente i tuoi dati dirà "Qui ci sono tre numeri, qui ce ne sono altri due, eccone altri 4. Questo deve essere un numero di previdenza sociale!" Non molto sicuro.

Puoi renderlo più "sicuro" offuscandolo ulteriormente: cambiando l'ordine delle parti (inserisci due cifre in 1, tre in 2 ...), combinandole in vari modi (sei cifre in una tabella, tre in un altro), aggiungendo 5 a ogni cifra (mod 10) o altrimenti trasformandola in qualche modo che è possibile annullare. Tuttavia, una volta che si inizia a farlo, si può anche farlo correttamente e crittografare i dati.

La sicurezza dell'oscurità è valida solo quanto la tua capacità di pensare a come proteggerla. Devi presumere che chiunque sia in grado di entrare nel tuo database sarà più intelligente di te e sarà in grado di non oscurare tutto ciò che hai oscurato. La crittografia è l'unica scommessa sicura.

    
risposta data 12.08.2016 - 15:32
fonte
1

Questo è uno schema molto strano. Ho lavorato con molti dati personali per oltre 20 anni e non l'ho mai visto fare in questo modo.

L'unica ragione per cui posso pensare di fare questo tipo di questo è il supporto per l'accesso SSN parziale. Considera un caso d'uso comune, un utente che verifica la propria identità inserendo gli ultimi quattro del SSN. Per supportare questo caso d'uso, è necessario fornire alla propria applicazione un utente DB con autorizzazioni di accesso a lgls3, ma potrebbe negare esplicitamente l'accesso a lgls1 e lgls2. In questo modo, se le credenziali vengono mai compromesse, l'hacker non è in grado di recuperare il numero completo di sicurezza sociale. D'altra parte, ci sono altri modi migliori per gestire questo caso d'uso (ad esempio prendendo un hash unidirezionale degli ultimi quattro e memorizzandolo in una colonna diversa, quindi usando una vista per applicare la sicurezza a livello di colonna).

Un altro possibile motivo, girato al buio qui .... se lgls1, lgls2 e lgls3 si trovano su partizioni di dati diverse, potrebbero finire in backup diversi, che potrebbero aiutarti a proteggerti se qualcuno dovesse mai irrompere nel tuo archiviazione di backup del sito e ha rubato un paio di nastri. Supponendo che ti sei preso la briga di inviare i tuoi backup a siti diversi.

Oltre a questo, non vedo molti benefici oltre alla sicurezza per oscurità.

    
risposta data 16.08.2016 - 01:12
fonte

Leggi altre domande sui tag