Як розділити конфіденційні дані в базі даних (MySql)


9

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

Яким може бути підхід для реалізації стовпців таблиць БД: зашифрувати інформацію, відокремити дані у двох різних БД, один для конфіденційних даних та інший для нечутливих даних, або той чи інший підхід?


1
Кому вам потрібно захистити дані?
Од

Хороший питання, але, можливо, це слід перенести на dba.stackexchange.com/questions ?
FrustratedWithFormsDesigner

@ Додано, dba не має можливості переглядати інформацію про захворювання користувача бази даних.
carlo

2
Але хто не повинен ?
Од

1
Ви можете зашифрувати його на стороні програми, але в програмі буде ключ. Це веб-додаток, який "вводить" дані?
Омін

Відповіді:


5

Ви можете зашифрувати дані ключем, який зберігається у вашій веб-програмі, щоб вони записувались / читалися з db у зашифрованому вигляді. Однак кожен, хто має доступ до коду, мав би доступ до ключа та за допомогою ключа незашифрованих даних. Це вирішує вимогу

dba не повинен мати можливість переглядати інформацію про захворювання користувача бази даних.

Щодо використання для розділення баз даних, я не думаю, що це потрібно. Ви зберігаєте зашифровані дані та використовуєте права доступу до бази даних користувачем, таблиці (якщо це навіть потрібно) буде більш ніж достатньо. Я думаю, що додаткова БД додає шар складності без особливого іншого. Якщо це не в іншому місці, то воно може мати незначне вдосконалення від єдиної системи баз даних.


1
Ще однією причиною окремих баз даних є юридична чи контрактна вимога, щоб конфіденційні дані зберігалися в межах юрисдикції (а не в хмарі).
Гілберт Ле Блан

2

Відповідь Омінуса стосується вашого першого питання. У відповіді на друге питання може знадобитися додаткова інформація про вашу заявку.

Ще одним підходом із ще більшою безпекою, якщо пацієнти повинні мати доступ до бази даних, може бути окрема база даних для кожного користувача. У такому підході ви можете використовувати рамку, яка забезпечує функціонування кількох орендарів, багатозахисних баз даних. Однак проблема полягає в тому, що якщо у вас є окремі користувачі програми та окремі користувачі бази даних, синхронізувати цих користувачів буде надзвичайно складно. Я б здогадався, що пацієнтам не потрібно отримувати доступ до вашої бази даних. Якщо їм це потрібно, можливо, найбезпечніше мати ключ на кожного користувача.

На додаток до юридичних чи договірних вимог, я можу подумати, що я маю окремі бази даних: сприйняття клієнтом підвищеної безпеки, що полегшує продажі, турбота про порушення шифрування, а також занепокоєння тим, що (ключ) будуть порушені.

Що стосується частини відповіді Бріддмуса, де він зазначає, що "потрібно зашифрувати більше, ніж просто медичну інформацію": це справедливо лише в тому випадку, якщо всі в базі даних мають медичний стан. (Я б здогадався, що це так).

Примітка: частини цієї відповіді краще відповідатимуть коментарям, але я ще не маю достатньої кількості відповідей для розміщення коментарів тут.


1

Для цього типу додатків потрібно подумати, кому слід отримати доступ до даних. Що стосується медичної інформації, я думаю, що це може бути обмежено користувачем, який ввійшов до неї, і тим, хто їм дав дозвіл на перегляд.

Для того, щоб DBA не переглянув дані, вам доведеться зашифрувати їх за допомогою коду, до якого DBA не має доступу.

Також потрібно зашифрувати інформацію таким чином, що програміст програми також не може отримати доступ до неї. Немає сенсу шифрувати інформацію з DBA, якщо програміст може увійти як будь-який користувач.

Ви також не хочете шифрувати всі дані одним і тим же кодом. Програмне забезпечення може мати помилку, яка показує одному користувачеві інформацію іншого. Тому, мабуть, найкраще буде зашифрувати дані кожного користувача, використовуючи специфічний для цього код.

Важливо зазначити, що потрібно шифрувати більше, ніж просто медичну інформацію; як кінцевий користувач, я не хотів би, щоб ваша DBA навіть знала, що я маю стан здоров'я, не кажучи вже про те, що це таке. Тому вам потрібно буде також зашифрувати будь-яку особисту інформацію про користувача. Сюди входять такі речі, як:

  • назва
  • дата народження
  • адреса електронної пошти
  • секс
  • адреса
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.