sql >> Databáze >  >> RDS >> Sqlserver

Jaký je nejlepší způsob šifrování SSN v SQL Server 2008?

Pokud šifrujete data, musíte si položit otázku, kdo je dešifruje. Pokud používáte asymetrický šifrovací systém (např. RSA), pak šifrování používá veřejný klíč a dešifrování používá odpovídající soukromý klíč; "asymetrie" pochází ze skutečnosti, že soukromý klíč nelze přepočítat z veřejného klíče (ačkoli jsou oba klíče matematicky propojeny).

Asymetrické šifrování má tendenci mít režii. První poznámkou je, že takové šifrování musí mít nějakou náhodnou část, protože šifrovat může každý (veřejný klíč je, ano, veřejný):pokud je proces šifrování deterministický, pak kdokoli může zašifrovat všechna možná SSN (existuje méně než miliard z nich, což je na moderní počítač opravdu malé číslo) a odpovídají zašifrovaným hodnotám. Proto musí být během šifrování přidáno nějaké náhodné číslo a šifrované SSN je větší než SSN s prostým textem.

Známé asymetrické šifrovací systémy používají matematické struktury, které mají své vlastní náklady. V zásadě pro šifrovací systém RSA s „dostatečně silným“ klíčem bude mít šifrovaná zpráva délku alespoň 128 bajtů. Některé šifrovací systémy jsou na tom lépe; i když jsem se držel dobře prošlapaných cest akademického výzkumu, mohl bych to udělat ve 41 bytech nebo tak (s El-Gamalem přes eliptickou křivku NIST K-163). Menší se zdá těžší.

Není tedy divu, že daný databázový systém takovou funkci standardně neobsahuje.

Pro svůj problém byste měli nejprve definovat (a napsat), co nejjasněji:

  • jaká jsou data, která chcete chránit
  • kdo vkládá data
  • kdo má číst data zpět

a teprve potom byste si měli položit otázku, zda je k tomu šifrování vhodným nástrojem. Šifrování je dobré, když se útočníkovi podaří získat nezpracovaná uložená data. To znamená, že útočník obešel ochranu operačního systému. V tu chvíli, cokoli operační systém ví, ví i útočník. Pokud je databáze hostována na počítači a existuje rozhraní, přes které lze získat dešifrované SSN, pak tento stroj „ví“, jak data získat, a útočník také... Na druhou stranu, pokud hostitel operační systém stroje je považován za dostatečně odolný, pak se nezdá, že by šifrování bylo vůbec potřeba.

Symetrické šifrování v databázi může vyřešit slabší problém, kdy útočník získá kopii pevného disku potom . Hostitelský systém zná symetrický šifrovací klíč, ale zná ho pouze v paměti RAM. Útočník, který ukradne pevný disk, nebude mít tento klíč.



  1. Jak implementovat verzi light Entity s úložištěm Jpa?

  2. Proč se znaky Unicode v databázi zobrazují správně, ale jako ? při tisku v Javě přes Hibernate?

  3. Nebyl nalezen žádný vhodný ovladač pro jdbc:postgresql://192.168.1.8:5432/NexentaSearch

  4. Jak mohu obejít MySQL Errcode 13 pomocí SELECT INTO OUTFILE?