Wahl einer Beacon-Länge - AWS SDK für Datenbankverschlüsselung

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wahl einer Beacon-Länge

Unsere clientseitige Verschlüsselungsbibliothek wurde in AWS Database Encryption SDK umbenannt. Dieses Entwicklerhandbuch enthält weiterhin Informationen zum DynamoDB Encryption Client.

Wenn Sie einen neuen Wert in ein verschlüsseltes Feld schreiben, das für eine durchsuchbare Verschlüsselung konfiguriert ist, berechnet das AWS Database Encryption SDK einen HMAC über den Klartextwert. Diese HMAC-Ausgabe entspricht eins zu eins (1:1) dem Klartextwert dieses Felds. Die HMAC-Ausgabe wird gekürzt, sodass mehrere unterschiedliche Klartextwerte demselben verkürzten HMAC-Tag zugeordnet werden. Diese Kollisionen oder Fehlalarme schränken die Fähigkeit eines nicht autorisierten Benutzers ein, charakteristische Informationen über den Klartextwert zu identifizieren.

Die durchschnittliche Anzahl falsch positiver Signale, die für jedes Beacon generiert wurden, wird durch die Länge des Beacons bestimmt, die nach der Kürzung noch übrig ist. Sie müssen nur die Länge der Beacons definieren, wenn Sie Standard-Beacons konfigurieren. Zusammengesetzte Beacons verwenden die Beacon-Längen der Standard-Beacons, aus denen sie gebaut sind.

Das Beacon verändert den verschlüsselten Zustand des Feldes nicht. Wenn Sie Beacons verwenden, besteht jedoch ein inhärenter Kompromiss zwischen der Effizienz Ihrer Abfragen und der Menge an Informationen, die über die Verteilung Ihrer Daten preisgegeben werden.

Das Ziel der durchsuchbaren Verschlüsselung besteht darin, die mit clientseitig verschlüsselten Datenbanken verbundenen Leistungskosten zu senken, indem Beacons verwendet werden, um Abfragen verschlüsselter Daten durchzuführen. Beacons werden neben den verschlüsselten Feldern gespeichert, aus denen sie berechnet wurden. Das bedeutet, dass sie unterschiedliche Informationen über die Verteilung Ihres Datensatzes preisgeben können. In Extremfällen kann ein unberechtigter Benutzer die über Ihre Distribution offengelegten Informationen analysieren und anhand dieser Informationen den Klartextwert eines Felds ermitteln. Die Wahl der richtigen Beacon-Länge kann dazu beitragen, diese Risiken zu mindern und die Vertraulichkeit Ihres Vertriebs zu wahren.

Überprüfen Sie Ihr Bedrohungsmodell, um das Sicherheitsniveau zu ermitteln, das Sie benötigen. Je mehr Personen beispielsweise Zugriff auf Ihre Datenbank haben, aber keinen Zugriff auf die Klartextdaten haben sollten, desto mehr sollten Sie die Vertraulichkeit Ihrer Datensatzverteilung schützen. Um die Vertraulichkeit zu erhöhen, muss ein Beacon mehr Fehlalarme generieren. Eine erhöhte Vertraulichkeit führt zu einer verringerten Abfrageleistung.

Sicherheit im Vergleich zu Leistung
  • Eine zu lange Beacon-Länge führt zu wenig falsch positiven Ergebnissen und kann zu Unterscheidungsinformationen über die Verteilung Ihres Datensatzes führen.

  • Eine zu kurze Beacon-Länge erzeugt zu viele Fehlalarme und erhöht die Leistungskosten von Abfragen, da dafür ein umfassenderer Scan der Datenbank erforderlich ist.

Bei der Bestimmung der geeigneten Beacon-Länge für Ihre Lösung müssen Sie eine Länge finden, die die Sicherheit Ihrer Daten angemessen gewährleistet, ohne die Leistung Ihrer Abfragen mehr als unbedingt erforderlich zu beeinträchtigen. Das Maß an Sicherheit, das ein Beacon gewährleistet, hängt von der Verteilung Ihres Datensatzes und der Korrelation der Felder ab, aus denen Ihre Beacons erstellt wurden. In den folgenden Themen wird davon ausgegangen, dass Ihre Beacons gleichmäßig verteilt sind und keine korrelierten Daten enthalten.

Berechnung der Beacon-Länge

Die Beacon-Länge wird in Bits definiert und bezieht sich auf die Anzahl der Bits des HMAC-Tags, die nach der Kürzung beibehalten werden. Die empfohlene Beacon-Länge hängt von der Verteilung der Datensätze, dem Vorhandensein korrelierter Werte und Ihren spezifischen Sicherheits- und Leistungsanforderungen ab. Wenn Ihr Datensatz einheitlich verteilt ist, können Sie die folgenden Gleichungen und Verfahren verwenden, um die beste Beacon-Länge für Ihre Implementierung zu ermitteln. Diese Gleichungen schätzen nur die durchschnittliche Anzahl falsch positiver Ergebnisse, die das Beacon erzeugen wird. Sie garantieren nicht, dass jeder Einzelwert in Ihrem Datensatz zu einer bestimmten Anzahl falsch positiver Ergebnisse führt.

Anmerkung

Die Effektivität dieser Gleichungen hängt von der Verteilung Ihres Datensatzes ab. Wenn Ihr Datensatz nicht gleichmäßig verteilt ist, finden Sie weitere Informationen unter. Sind Beacons das Richtige für meinen Datensatz?

Generell gilt: Je weiter Ihr Datensatz von einer gleichmäßigen Verteilung entfernt ist, desto mehr müssen Sie Ihre Beacon-Länge verkürzen.

  1. Schätzen Sie die Bevölkerung

    Die Population ist die erwartete Anzahl von Einzelwerten in dem Feld, aus dem Ihr Standard-Beacon erstellt wurde, sie ist nicht die erwartete Gesamtzahl der im Feld gespeicherten Werte. Stellen Sie sich zum Beispiel ein verschlüsseltes Room Feld vor, das den Ort von Mitarbeiterversammlungen identifiziert. Das Room Feld wird voraussichtlich 100.000 Gesamtwerte speichern, aber es gibt nur 50 verschiedene Räume, die Mitarbeiter für Besprechungen reservieren können. Dies bedeutet, dass die Population 50 beträgt, da es nur 50 mögliche Einzelwerte gibt, die im Room Feld gespeichert werden können.

    Anmerkung

    Wenn Ihr Standard-Beacon aus einem virtuellen Feld aufgebaut ist, entspricht die Population, die zur Berechnung der Beacon-Länge verwendet wird, der Anzahl der eindeutigen Kombinationen, die durch das virtuelle Feld erzeugt werden.

    Berücksichtigen Sie bei der Schätzung Ihrer Population unbedingt das prognostizierte Wachstum des Datensatzes. Nachdem Sie mit dem Beacon neue Datensätze geschrieben haben, können Sie die Beacon-Länge nicht mehr aktualisieren. Überprüfen Sie Ihr Bedrohungsmodell und alle vorhandenen Datenbanklösungen, um eine Schätzung der Anzahl der eindeutigen Werte zu erstellen, die dieses Feld in den nächsten fünf Jahren voraussichtlich speichern wird.

    Ihre Population muss nicht präzise sein. Ermitteln Sie zunächst die Anzahl der Einzelwerte in Ihrer aktuellen Datenbank oder schätzen Sie die Anzahl der Einzelwerte, die Sie voraussichtlich im ersten Jahr speichern werden. Verwenden Sie als Nächstes die folgenden Fragen, um das prognostizierte Wachstum der Einzelwerte in den nächsten fünf Jahren zu ermitteln.

    • Erwarten Sie, dass sich die Einzelwerte mit 10 multiplizieren?

    • Erwarten Sie, dass sich die Einzelwerte mit 100 multiplizieren?

    • Erwarten Sie, dass sich die Einzelwerte mit 1000 multiplizieren?

    Der Unterschied zwischen 50.000 und 60.000 Einzelwerten ist nicht signifikant und beide führen zu derselben empfohlenen Beacon-Länge. Der Unterschied zwischen 50.000 und 500.000 Einzelwerten wird sich jedoch erheblich auf die empfohlene Beacon-Länge auswirken.

    Erwägen Sie, öffentliche Daten zur Häufigkeit gängiger Datentypen wie Postleitzahlen oder Nachnamen zu überprüfen. Zum Beispiel gibt es in den Vereinigten Staaten 41.707 Postleitzahlen. Die von Ihnen verwendete Population sollte proportional zu Ihrer eigenen Datenbank sein. Wenn das ZIPCode Feld in Ihrer Datenbank Daten aus den gesamten Vereinigten Staaten enthält, können Sie Ihre Population als 41.707 definieren, auch wenn das ZIPCode Feld derzeit keine 41.707 Einzelwerte enthält. Wenn das ZIPCode Feld in Ihrer Datenbank nur Daten aus einem einzigen Bundesstaat enthält und immer nur Daten aus einem einzigen Bundesstaat enthält, können Sie Ihre Bevölkerung als die Gesamtzahl der Postleitzahlen in diesem Bundesstaat definieren, anstatt als 41.704.

  2. Berechnet den empfohlenen Bereich für die erwartete Anzahl von Kollisionen

    Um die geeignete Beacon-Länge für ein bestimmtes Feld zu bestimmen, müssen Sie zunächst einen geeigneten Bereich für die erwartete Anzahl von Kollisionen identifizieren. Die erwartete Anzahl von Kollisionen entspricht der durchschnittlichen erwarteten Anzahl von eindeutigen Klartextwerten, die einem bestimmten HMAC-Tag zugeordnet sind. Die erwartete Anzahl falsch positiver Ergebnisse für einen eindeutigen Klartextwert ist eins weniger als die erwartete Anzahl von Kollisionen.

    Wir empfehlen, dass die erwartete Anzahl von Kollisionen größer oder gleich zwei und kleiner als die Quadratwurzel Ihrer Grundgesamtheit ist. Die folgenden Gleichungen funktionieren nur, wenn Ihre Population 16 oder mehr Einzelwerte hat.

    2 ≤ number of collisions < √(Population)

    Wenn die Anzahl der Kollisionen weniger als zwei beträgt, erzeugt das Beacon zu wenige Fehlalarme. Wir empfehlen zwei als Mindestanzahl erwarteter Kollisionen, da dies bedeutet, dass im Durchschnitt jeder Einzelwert im Feld mindestens ein falsch positives Ergebnis generiert, wenn er einem anderen eindeutigen Wert zugeordnet wird.

  3. Berechne die empfohlene Reichweite für Beacon-Längen

    Nachdem Sie die minimale und maximale Anzahl der erwarteten Kollisionen ermittelt haben, verwenden Sie die folgende Gleichung, um einen Bereich geeigneter Beacon-Längen zu ermitteln.

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

    Suchen Sie zunächst nach der Beacon-Länge, wobei die Anzahl der erwarteten Kollisionen gleich zwei ist (die empfohlene Mindestanzahl erwarteter Kollisionen).

    2 = Population * 2-(beacon length)

    Suchen Sie dann nach der Länge des Leuchtfeuers, wobei die erwartete Anzahl von Kollisionen der Quadratwurzel Ihrer Population entspricht (der empfohlenen Höchstzahl erwarteter Kollisionen).

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

    Wir empfehlen, die durch diese Gleichung erzeugte Ausgabe auf die kürzere Beacon-Länge abzurunden. Wenn die Gleichung beispielsweise eine Beacon-Länge von 15,6 ergibt, empfehlen wir, diesen Wert auf 15 Bit abzurunden, anstatt auf 16 Bit aufzurunden.

  4. Wählen Sie eine Beacon-Länge

    Diese Gleichungen identifizieren nur einen empfohlenen Bereich von Beacon-Längen für Ihr Feld. Wir empfehlen, eine kürzere Beacon-Länge zu verwenden, um die Sicherheit Ihres Datensatzes zu gewährleisten, wann immer dies möglich ist. Die Länge der Beacons, die Sie tatsächlich verwenden, hängt jedoch von Ihrem Bedrohungsmodell ab. Berücksichtigen Sie bei der Überprüfung Ihres Bedrohungsmodells Ihre Leistungsanforderungen, um die beste Beacon-Länge für Ihr Gebiet zu ermitteln.

    Die Verwendung einer kürzeren Beacon-Länge verringert die Abfrageleistung, während die Verwendung einer längeren Beacon-Länge die Sicherheit verringert. Im Allgemeinen gilt: Wenn Ihr Datensatz ungleichmäßig verteilt ist oder wenn Sie unterschiedliche Beacons aus korrelierten Feldern konstruieren, müssen Sie kürzere Beacon-Längen verwenden, um die Menge an Informationen, die über die Verteilung Ihrer Datensätze preisgegeben werden, zu minimieren.

    Wenn Sie Ihr Bedrohungsmodell überprüfen und zu dem Schluss kommen, dass alle eindeutigen Informationen über die Verteilung eines Feldes keine Bedrohung für Ihre allgemeine Sicherheit darstellen, können Sie sich dafür entscheiden, eine Beacon-Länge zu verwenden, die länger ist als die von Ihnen berechnete empfohlene Reichweite. Wenn Sie beispielsweise den empfohlenen Bereich der Beacon-Längen für ein Feld mit 9—16 Bit berechnet haben, können Sie sich für eine Beacon-Länge von 24 Bit entscheiden, um Leistungseinbußen zu vermeiden.

    Wählen Sie die Länge Ihres Beacons sorgfältig aus. Nachdem Sie mit dem Beacon neue Datensätze geschrieben haben, können Sie die Beacon-Länge nicht mehr aktualisieren.

Beispiel

Stellen Sie sich eine Datenbank vor, die das unit Feld als ENCRYPT_AND_SIGN in den kryptografischen Aktionen gekennzeichnet hat. Um ein Standard-Beacon für das unit Feld zu konfigurieren, müssen wir die erwartete Anzahl von Fehlalarmen und die Länge des Beacons für das unit Feld ermitteln.

  1. Schätzen Sie die Bevölkerung

    Nach der Überprüfung unseres Bedrohungsmodells und der aktuellen Datenbanklösung gehen wir davon aus, dass das unit Feld irgendwann 100.000 eindeutige Werte haben wird.

    Das bedeutet, dass Bevölkerung = 100.000.

  2. Berechnet den empfohlenen Bereich für die erwartete Anzahl von Kollisionen.

    In diesem Beispiel sollte die erwartete Anzahl von Kollisionen zwischen 2 und 316 liegen.

    2 ≤ number of collisions < √(Population)
    1. 2 ≤ number of collisions < √(100,000)
    2. 2 ≤ number of collisions < 316
  3. Ermitteln Sie die empfohlene Reichweite für die Länge des Beacons.

    In diesem Beispiel sollte die Länge des Beacons zwischen 9 und 16 Bit liegen.

    number of collisions = Population * 2-(beacon length)
    1. Berechnen Sie die Länge des Beacons, bei der die erwartete Anzahl von Kollisionen dem in Schritt 2 angegebenen Minimum entspricht.

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

      Beacon-Länge = 15,6 oder 15 Bit

    2. Berechnen Sie die Länge des Beacons, bei der die erwartete Anzahl von Kollisionen dem in Schritt 2 angegebenen Maximum entspricht.

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

      Beacon-Länge = 8,3 oder 8 Bit

  4. Ermitteln Sie die Beacon-Länge, die Ihren Sicherheits- und Leistungsanforderungen entspricht.

    Für jedes Bit unter 15 verdoppeln sich die Leistungskosten und die Sicherheit.

    • 16 Bit

      • Im Durchschnitt wird jeder Einzelwert 1,5 anderen Einheiten zugeordnet.

      • Sicherheit: Bei zwei Datensätzen mit demselben verkürzten HMAC-Tag besteht eine Wahrscheinlichkeit von 66%, dass sie denselben Klartextwert haben.

      • Leistung: Eine Abfrage ruft 15 Datensätze für jeweils 10 Datensätze ab, die Sie tatsächlich angefordert haben.

    • 14 Bit

      • Im Durchschnitt wird jeder Einzelwert 6,1 anderen Einheiten zugeordnet.

      • Sicherheit: Bei zwei Datensätzen mit demselben verkürzten HMAC-Tag besteht eine Wahrscheinlichkeit von 33%, dass sie denselben Klartextwert haben.

      • Leistung: Eine Abfrage ruft 30 Datensätze für jeweils 10 Datensätze ab, die Sie tatsächlich angefordert haben.