Scelta della lunghezza del faro - AWS SDK per la crittografia del database

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Scelta della lunghezza del faro

La nostra libreria di crittografia lato client è stata rinominata AWS Database Encryption SDK. Questa guida per gli sviluppatori fornisce comunque informazioni sul client di crittografia DynamoDB.

Quando scrivi un nuovo valore in un campo crittografato configurato per la crittografia ricercabile, AWS Database Encryption SDK calcola un HMAC rispetto al valore di testo normale. Questo output HMAC corrisponde uno a uno (1:1) per il valore in testo normale di quel campo. L'output HMAC viene troncato in modo che più valori di testo in chiaro distinti vengano mappati allo stesso tag HMAC troncato. Queste collisioni, o falsi positivi, limitano la capacità di un utente non autorizzato di identificare informazioni distintive sul valore in testo non crittografato.

Il numero medio di falsi positivi generati per ogni beacon è determinato dalla lunghezza residua del beacon dopo il troncamento. È necessario definire la lunghezza del beacon solo quando si configurano i beacon standard. I beacon composti utilizzano le lunghezze dei beacon standard da cui sono costruiti.

Il beacon non altera lo stato crittografato del campo. Tuttavia, quando si utilizzano i beacon, esiste un compromesso intrinseco tra l'efficienza delle query e la quantità di informazioni rivelate sulla distribuzione dei dati.

L'obiettivo della crittografia ricercabile è ridurre i costi di prestazioni associati ai database crittografati lato client utilizzando i beacon per eseguire query su dati crittografati. I beacon vengono archiviati insieme ai campi crittografati da cui vengono calcolati. Ciò significa che possono rivelare informazioni distintive sulla distribuzione del set di dati. In casi estremi, un utente non autorizzato potrebbe essere in grado di analizzare le informazioni rivelate sulla tua distribuzione e utilizzarle per identificare il valore di testo in chiaro di un campo. La scelta della giusta lunghezza del beacon può contribuire a mitigare questi rischi e preservare la riservatezza della distribuzione.

Esamina il tuo modello di minaccia per determinare il livello di sicurezza di cui hai bisogno. Ad esempio, più persone hanno accesso al tuo database, ma non dovrebbero avere accesso ai dati in chiaro, più potresti voler proteggere la riservatezza della distribuzione del tuo set di dati. Per aumentare la riservatezza, un beacon deve generare più falsi positivi. Una maggiore riservatezza si traduce in una riduzione delle prestazioni delle query.

Sicurezza e prestazioni
  • Una lunghezza del beacon troppo lunga produce un numero insufficiente di falsi positivi e potrebbe rivelare informazioni distintive sulla distribuzione del set di dati.

  • Una lunghezza del beacon troppo corta produce troppi falsi positivi e aumenta il costo delle prestazioni delle query perché richiede una scansione più ampia del database.

Nel determinare la lunghezza del beacon appropriata per la tua soluzione, devi trovare una lunghezza che preservi adeguatamente la sicurezza dei tuoi dati senza influire sulle prestazioni delle tue query più del necessario. La quantità di sicurezza preservata da un beacon dipende dalla distribuzione del set di dati e dalla correlazione dei campi da cui sono costruiti i beacon. Gli argomenti seguenti presuppongono che i beacon siano distribuiti uniformemente e non contengano dati correlati.

Calcolo della lunghezza del faro

La lunghezza del beacon è definita in bit e si riferisce al numero di bit del tag HMAC che vengono conservati dopo il troncamento. La lunghezza del beacon consigliata varia in base alla distribuzione del set di dati, alla presenza di valori correlati e ai requisiti specifici di sicurezza e prestazioni. Se il tuo set di dati è distribuito in modo uniforme, puoi utilizzare le seguenti equazioni e procedure per identificare la lunghezza del beacon migliore per la tua implementazione. Queste equazioni stimano solo il numero medio di falsi positivi che il beacon produrrà, non garantiscono che ogni valore univoco nel set di dati produca un numero specifico di falsi positivi.

Nota

L'efficacia di queste equazioni dipende dalla distribuzione del set di dati. Se il tuo set di dati non è distribuito uniformemente, consulta. I beacon sono adatti al mio set di dati?

In generale, più il set di dati si allontana da una distribuzione uniforme, più è necessario ridurre la lunghezza del beacon.

  1. Stimare la popolazione

    La popolazione è il numero previsto di valori univoci nel campo da cui è costruito il beacon standard, non il numero totale previsto di valori memorizzati nel campo. Ad esempio, si consideri un Room campo crittografato che identifica il luogo delle riunioni dei dipendenti. Il Room campo dovrebbe contenere 100.000 valori totali, ma ci sono solo 50 sale diverse che i dipendenti possono prenotare per le riunioni. Ciò significa che la popolazione è 50 perché nel Room campo possono essere memorizzati solo 50 valori univoci possibili.

    Nota

    Se il beacon standard è costruito a partire da un campo virtuale, la popolazione utilizzata per calcolare la lunghezza del faro è il numero di combinazioni univoche create dal campo virtuale.

    Quando stimate la popolazione, assicuratevi di considerare la crescita prevista del set di dati. Dopo aver scritto nuovi record con il beacon, non è possibile aggiornare la lunghezza del beacon. Esamina il tuo modello di minaccia e tutte le soluzioni di database esistenti per creare una stima del numero di valori univoci che prevedi che questo campo memorizzerà nei prossimi cinque anni.

    Non è necessario che la tua popolazione sia precisa. Innanzitutto, identifica il numero di valori univoci nel tuo database corrente o stima il numero di valori univoci che prevedi di memorizzare nel primo anno. Successivamente, utilizza le seguenti domande per determinare la crescita prevista di valori unici nei prossimi cinque anni.

    • Ti aspetti che i valori univoci si moltiplichino per 10?

    • Ti aspetti che i valori univoci si moltiplichino per 100?

    • Ti aspetti che i valori univoci si moltiplichino per 1000?

    La differenza tra 50.000 e 60.000 valori univoci non è significativa e entrambi produrranno la stessa lunghezza del beacon consigliata. Tuttavia, la differenza tra 50.000 e 500.000 valori univoci influirà in modo significativo sulla lunghezza consigliata del beacon.

    Valuta la possibilità di esaminare i dati pubblici sulla frequenza dei tipi di dati più comuni, come i codici postali o i cognomi. Ad esempio, ci sono 41,707 codici postali negli Stati Uniti. La popolazione utilizzata deve essere proporzionale al proprio database. Se il ZIPCode campo del database include dati provenienti da tutti gli Stati Uniti, è possibile definire la popolazione come 41.707, anche se al momento il ZIPCode campo non ha 41.707 valori univoci. Se il ZIPCode campo del database include solo i dati di un singolo stato e includerà sempre e solo i dati di un singolo stato, è possibile definire la popolazione come il numero totale di codici postali in quello stato anziché 41.704.

  2. Calcola l'intervallo consigliato per il numero previsto di collisioni

    Per determinare la lunghezza del beacon appropriata per un determinato campo, è necessario innanzitutto identificare un intervallo appropriato per il numero previsto di collisioni. Il numero previsto di collisioni rappresenta il numero medio previsto di valori di testo in chiaro univoci mappati a un particolare tag HMAC. Il numero previsto di falsi positivi per un valore di testo non crittografato univoco è inferiore di uno al numero previsto di collisioni.

    Ti consigliamo che il numero previsto di collisioni sia maggiore o uguale a due e inferiore alla radice quadrata della tua popolazione. Le equazioni seguenti funzionano solo se la tua popolazione ha 16 o più valori univoci.

    2 ≤ number of collisions < √(Population)

    Se il numero di collisioni è inferiore a due, il beacon produrrà un numero insufficiente di falsi positivi. Ne consigliamo due come numero minimo di collisioni previste perché significa che, in media, ogni valore univoco nel campo genererà almeno un falso positivo mappando un altro valore univoco.

  3. Calcola l'intervallo consigliato per le lunghezze dei beacon

    Dopo aver identificato il numero minimo e massimo di collisioni previste, utilizza la seguente equazione per identificare un intervallo di lunghezze di segnalazione appropriate.

    number of collisions = Population * 2-(beacon length)

    Innanzitutto, calcola la lunghezza del faro in cui il numero di collisioni previste è uguale a due (il numero minimo consigliato di collisioni previste).

    2 = Population * 2-(beacon length)

    Quindi, calcola la lunghezza del faro in cui il numero previsto di collisioni è uguale alla radice quadrata della tua popolazione (il numero massimo consigliato di collisioni previste).

    √(Population) = Population * 2-(beacon length)

    Si consiglia di arrotondare l'uscita prodotta da questa equazione alla lunghezza più corta del faro. Ad esempio, se l'equazione produce una lunghezza del beacon di 15,6, consigliamo di arrotondare quel valore a 15 bit invece di arrotondare a 16 bit.

  4. Scegli la lunghezza del faro

    Queste equazioni identificano solo la gamma consigliata di lunghezze dei beacon per il tuo campo. Ti consigliamo di utilizzare una lunghezza del beacon inferiore per preservare la sicurezza del tuo set di dati quando possibile. Tuttavia, la lunghezza del beacon che utilizzi effettivamente è determinata dal tuo modello di minaccia. Considerate i vostri requisiti prestazionali mentre esaminate il vostro modello di minaccia per determinare la lunghezza del beacon migliore per il vostro settore.

    L'utilizzo di una lunghezza del beacon inferiore riduce le prestazioni delle query, mentre l'utilizzo di una lunghezza del beacon maggiore riduce la sicurezza. In generale, se il set di dati è distribuito in modo non uniforme o se si costruiscono beacon distinti da campi correlati, è necessario utilizzare lunghezze di beacon più brevi per ridurre al minimo la quantità di informazioni rivelate sulla distribuzione dei set di dati.

    Se esamini il tuo modello di minaccia e decidi che qualsiasi informazione distintiva rivelata sulla distribuzione di un campo non rappresenta una minaccia per la tua sicurezza generale, potresti scegliere di utilizzare una lunghezza del beacon maggiore dell'intervallo consigliato che hai calcolato. Ad esempio, se si calcola che l'intervallo consigliato di lunghezze dei beacon per un campo sia di 9-16 bit, è possibile scegliere di utilizzare una lunghezza del beacon di 24 bit per evitare perdite di prestazioni.

    Scegli con cura la lunghezza del tuo faro. Dopo aver scritto nuovi record con il beacon, non è possibile aggiornare la lunghezza del beacon.

Esempio

Si consideri un database che contrassegna il unit campo come ENCRYPT_AND_SIGN nelle azioni crittografiche. Per configurare un beacon standard per il unit campo, è necessario determinare il numero previsto di falsi positivi e la lunghezza del beacon per il campo. unit

  1. Stimare la popolazione

    Dopo aver esaminato il nostro modello di minaccia e l'attuale soluzione di database, prevediamo che alla fine il unit campo avrà 100.000 valori univoci.

    Ciò significa che Popolazione = 100.000.

  2. Calcola l'intervallo consigliato per il numero previsto di collisioni.

    Per questo esempio, il numero previsto di collisioni dovrebbe essere compreso tra 2 e 316.

    2 ≤ number of collisions < √(Population)
    1. 2 ≤ number of collisions < √(100,000)
    2. 2 ≤ number of collisions < 316
  3. Calcola l'intervallo consigliato per la lunghezza del faro.

    Per questo esempio, la lunghezza del beacon deve essere compresa tra 9 e 16 bit.

    number of collisions = Population * 2-(beacon length)
    1. Calcola la lunghezza del faro in cui il numero previsto di collisioni è uguale al minimo identificato nella fase 2.

      2 = 100,000 * 2-(beacon length)

      Lunghezza del beacon = 15,6 o 15 bit

    2. Calcola la lunghezza del faro in cui il numero previsto di collisioni è uguale al massimo identificato nella fase 2.

      316 = 100,000 * 2-(beacon length)

      Lunghezza del beacon = 8,3 o 8 bit

  4. Determina la lunghezza del beacon appropriata per i tuoi requisiti di sicurezza e prestazioni.

    Per ogni bit inferiore a 15, il costo delle prestazioni e la sicurezza raddoppiano.

    • 16 bit

      • In media, ogni valore univoco corrisponderà ad altre 1,5 unità.

      • Sicurezza: due record con lo stesso tag HMAC troncato hanno il 66% di probabilità di avere lo stesso valore di testo non crittografato.

      • Prestazioni: una query recupererà 15 record ogni 10 record effettivamente richiesti.

    • 14 bit

      • In media, ogni valore univoco corrisponderà ad altre 6,1 unità.

      • Sicurezza: due record con lo stesso tag HMAC troncato hanno il 33% di probabilità di avere lo stesso valore di testo in chiaro.

      • Prestazioni: una query recupererà 30 record ogni 10 record effettivamente richiesti.