데이터베이스에서 민감한 데이터를 분리하는 방법 (MySql)


9

개인 사용자 질병에 대한 정보가 들어있는 데이터베이스를 설계해야합니다.

DB 테이블의 열을 구현하기위한 접근 방법은 무엇입니까? 정보를 암호화하고, 서로 다른 두 개의 DB 내에서 데이터를 구분합니다. 하나는 민감한 데이터를위한 것이고 다른 하나는 민감한 데이터를위한 것이 아닌 다른 방법이거나 또는 두 가지 또는 다른 방법일까요?


1
데이터를 누구로부터 보호해야합니까?
Oded

좋은 질문이지만 아마도 dba.stackexchange.com/questions 로 마이그레이션해야 합니까 ?
FrustratedWithFormsDesigner 2016

@ dba가 데이터베이스 사용자의 질병에 대한 정보를 볼 수 없어야합니다.
carlo

2
그러나 누가 해서는 안 됩니까?
오디드

1
응용 프로그램 측에서 암호화 할 수는 있지만 응용 프로그램에는 키가 있습니다. 데이터를 "입력하는"웹 응용 프로그램입니까?
Ominus

답변:


5

웹 애플리케이션에 저장된 키로 데이터를 암호화하여 데이터를 암호화 된 형식으로 db에서 쓰거나 읽을 수 있습니다. 그러나 코드에 액세스 할 수있는 사람은 키와 암호화되지 않은 데이터에 액세스 할 수 있습니다. 이것은 요구 사항을 해결

dba는 데이터베이스 사용자의 질병에 대한 정보를 볼 수 없어야합니다.

데이터베이스를 분리하는 데 사용하는 한 필요하다고 생각하지 않습니다. 암호화 된 데이터를 저장하고 사용자별로 데이터베이스 권한을 사용하면 테이블 (필요한 경우)으로 충분합니다. 여분의 DB가 별다른 어려움없이 복잡한 계층을 추가한다고 생각합니다. 다른 위치에 있지 않으면 단일 데이터베이스 시스템에서 약간 개선 될 수 있습니다.


1
별도의 데이터베이스를 사용해야하는 또 다른 이유는 민감한 데이터를 관할 구역 (클라우드가 아닌)에 저장해야하는 법적 또는 계약상의 요구 사항입니다.
Gilbert Le Blanc

2

Ominus의 답변은 첫 번째 질문을 해결합니다. 두 번째 질문에 대한 답변에는 귀하의 신청서에 대한 자세한 내용이 필요할 수 있습니다.

환자가 데이터베이스에 액세스해야하는 경우 보안이 강화 된 또 다른 방법은 각 사용자마다 별도의 데이터베이스를 보유하는 것입니다. 이 방법에서는 다중 테넌트, 다중 데이터베이스 기능을 제공하는 프레임 워크를 사용할 수 있습니다. 그러나 문제는 별도의 응용 프로그램 사용자와 별도의 데이터베이스 사용자가있는 경우 이러한 사용자를 동기화하는 것이 매우 어렵다는 것입니다. 환자가 데이터베이스에 액세스 할 필요는 없다고 생각합니다. 필요한 경우 사용자 당 키를 갖는 것이 가장 안전 할 수 있습니다.

법적 또는 계약 적 요구 사항 외에도 별도의 데이터베이스를 보유하고 있다고 생각할 수있는 다른 이유는 다음과 같습니다. 보안 강화에 대한 고객의 인식으로 인해 판매가 쉬워지고 암호화가 손상 될 우려가 있으며 키가 손상 될 우려가 있습니다.

Briddmus의 답변에서 "의료 정보 이상의 것을 암호화해야한다"고 말한 경우 데이터베이스의 모든 사람이 의학적 상태 인 경우에만 해당됩니다. (이 경우라고 생각합니다).

참고 :이 답변의 일부는 의견에 더 적합하지만 아직 의견을 게시 할 충분한 담당자가 없습니다.


1

이 유형의 응용 프로그램의 경우 데이터에 액세스 할 수있는 사람을 고려해야합니다. 의료 정보를 통해 정보를 입력 한 사용자와 해당 정보를 볼 수있는 권한을 가진 사람에게만 제한되는 것으로 생각합니다.

DBA가 데이터를 보지 못하게하려면 DBA가 액세스 할 수없는 코드를 사용하여 데이터를 암호화해야합니다.

또한 응용 프로그램 프로그래머가 정보에 액세스 할 수없는 방식으로 정보를 암호화해야합니다. 프로그래머가 사용자로 로그인 할 수 있으면 DBA의 정보를 암호화 할 필요가 없습니다.

또한 동일한 코드로 모든 데이터를 암호화하고 싶지 않습니다. 소프트웨어에는 한 사용자에게 다른 사용자의 정보를 표시하는 버그가있을 수 있습니다. 따라서 해당 사용자 고유의 코드를 사용하여 각 사용자 데이터를 암호화하는 것이 가장 좋습니다.

의료 정보 이상의 것을 암호화해야합니다. 최종 사용자로서 나는 당신의 DBA가 내가 건강 상태가 무엇인지 알기조차 원하지 않을 것입니다. 따라서 사용자에 대한 개인 식별 정보도 암호화해야합니다. 여기에는 다음과 같은 것들이 포함됩니다 :

  • 이름
  • 생년월일
  • 이메일 주소
  • 섹스
  • 주소
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.