Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Кой е най-добрият начин за криптиране на SSN в SQL Server 2008?

Ако шифровате данни, трябва да се запитате кой ще ги дешифрира. Ако използвате система за асиметрично криптиране (напр. RSA), тогава криптирането използва публичния ключ, а декриптирането използва съответния частен ключ; „асиметрията“ идва от факта, че частният ключ не може да бъде преизчислен от публичния ключ (въпреки че и двата ключа са математически свързани заедно).

Асиметричното криптиране обикновено има допълнителни разходи. Първата забележка е, че такова криптиране трябва да има някаква произволна част в него, защото всеки може да криптира (публичният ключ е, да, публичен):ако процесът на криптиране е детерминистичен, тогава всеки може да криптира всички възможни SSN (има по-малко от милиард от тях, което е наистина малък брой за модерен компютър) и съответстват на криптираните стойности. Следователно, трябва да има произволно добавено по време на криптирането и шифрованият SSN е по-голям от SSN в обикновен текст.

Известните системи за асиметрично криптиране използват математически структури, които имат собствена цена. По принцип, за системата за криптиране RSA, с "достатъчно силен" ключ, криптираното съобщение ще има дължина най-малко 128 байта. Някои системи за криптиране се справят по-добре; докато се придържам към добре утъпканите пътеки на академичните изследвания, можех да го направя в около 41 байта (с El-Gamal върху елиптичната крива на NIST K-163). По-малкото изглежда по-трудно.

Така че не е чудно, че дадена система от бази данни няма да включва такава функция по подразбиране.

За вашия проблем първо трябва да дефинирате (и да напишете), възможно най-ясно:

  • какви са данните, които искате да защитите
  • кой въвежда данните
  • който трябва да прочете данните обратно

и едва тогава трябва да се запитате дали криптирането е подходящ инструмент за това. Шифроването е добро, когато предвиденият нападател може да се докопа до необработените, съхранени данни. Това означава, че атакуващият е заобиколил защитата на операционната система. В този момент каквото операционната система знае, атакуващият също знае. Ако базата данни се хоства на машина и има интерфейс, чрез който може да бъде получен декриптираният SSN, тогава тази машина „знае“ как да получи данните, както и нападателят... От друга страна, ако хостът машинната операционна система се счита за достатъчно устойчива, тогава криптирането изглежда изобщо не е необходимо.

Симетричното криптиране на базата данни може да адресира по-слаб проблем, при който атакуващият получава копие на твърдия диск след това . Хост системата знае ключа за симетрично криптиране, но го знае само в RAM. Нападател, който открадне твърдия диск, няма да има този ключ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вътрешни елементи на SQL Server:Планово кеширане, т. II – Прекомпилиране на планове

  2. Съхраняване на DateTime (UTC) срещу съхраняване на DateTimeOffset

  3. Изпратете SMS с помощта на тригери и съхранени процедури от SQL Server 2008

  4. Разберете дали дадена таблица е разделена в SQL Server (T-SQL)

  5. Периодични повреди на ODBC връзката