Hashing von SSNs und anderen Informationen zu eingeschränkten Domänen

Ich arbeite derzeit an einer Anwendung, bei der wir private Gesundheitsinformationen erhalten. Eines der größten Probleme ist mit der SSN. Derzeit verwenden wir die SSN nicht für irgendetwas, aber in Zukunft möchten wir sie verwenden können, um einen Patienten in mehreren Einrichtungen eindeutig zu identifizieren. Die einzige Möglichkeit, dies zuverlässig zu tun, ist die SSN. Wir (zusätzlich zu unseren Kunden) möchten die SSN jedoch WIRKLICH nicht speichern.

Natürlich dachte ich nur an SHA-Hashing, da wir es nur zur Identifizierung verwenden. Das Problem dabei ist, dass sich ein Angreifer, der die Problemdomäne (ein SSN) kennt, auf diese Domäne konzentrieren kann. Es ist also viel einfacher, die Milliarden SSNs zu berechnen, als eine praktisch unbegrenzte Anzahl von Passwörtern. Ich weiß, dass ich ein Standortsalz und ein Salz pro Patient verwenden sollte, aber kann ich noch etwas tun, um zu verhindern, dass ein Angreifer die SSN aufdeckt? Anstelle von SHA wollte ich BCrypt verwenden, da Ruby eine gute Bibliothek hat und skalierbare Komplexität und automatisches Salting handhabt.

Es wird nicht als Passwort verwendet. Im Wesentlichen erhalten wir Nachrichten von vielen Einrichtungen und jede beschreibt einen Patienten. Das einzige, was einem global eindeutigen Identifikator für einen Patienten nahekommt, ist die SSN-Nummer. Wir werden den Hash verwenden, um denselben Patienten in mehreren Einrichtungen zu identifizieren.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage