2015-01-21 4 views
-1

나는 웹 호스팅 될 작은 paramedical app (주로 달력과 환자에 관한 정보)에서 일하고있다. 앱에서 데이터를 공유하지 않는 여러 계정 (각 개업의 경우 1 명)을 허용합니다. , 전체 데이터베이스가 도난당한 경우 2/다른 사람의 데이터에 액세스하는 하나 개의 실천을 이끌 수웹 응용 프로그램/데이터베이스에서 의료 데이터를 보호하는 방법은 무엇입니까?

1/프로그래밍 버그 : 나는 특히이 가능한 문제를 방지하기 위해, 개인 정보를 보호하기 위해 가능한 한 많이합니다 나는 개인 정보가 안전하기를 바란다.

나는 최초의 것들이 모든 SQL이나 매개 변수 주입을 피하는 것이라는 것을 안다. 그러나 나는 인간이기 때문에 여분의 조치를 취하고 싶다. 데이터가 유출되면 진짜 혼란스러워 ... 나는 그것을 피하고 싶다.

  • 애플 리케이션은 PHP와 MySQL
  • 를 기반으로하는 응용 프로그램은 예를 들어 그들에게 상기시켜 환자에게 배경 이메일과 SMS로 전송하기 때문에, 그 자체로 개인 데이터를 해독 할 수있는 방법을 가지고 있어야 자신의 설비.
  • 실무자는 종종 자신의 로그인/비밀번호로 애플리케이션에 액세스 할 수 있어야하며 의사의 데이터를 볼 수 있어야하는 비서를 가지고 있습니다 (단, 전체는 아니지만 연락처 정보, 약속 날짜/시간과 관련된 정보 만 볼 수 있음). .)
  • 당연히 의사 또는 비서는 데이터베이스에서 암호화되어 있어도 이름, 전화 번호로 환자를 찾는 방법으로 데이터베이스에서 검색 할 수 있어야합니다.

그래서 ... 데이터를 저장, 암호화 및 해독하는 가장 좋은 방법을 찾아 내려고하고 있습니다. 1/새로운 개업 내가 생성 계정을 생성 : 지금 여기 들어 암호화 된 데이터에 대한 예를 들어, 검색 엔진 ...

, 성능도 약간 무서워 내가 가지고있는 가장 간단한 아이디어 계정과 관련이 있고 변경되지 않고 데이터베이스에 저장하는 고유 키 ... "소금"종류 일 것입니다 2/모든 개인 데이터에 대해 암호화합니다 (예 : 환자의 이름 , 전화 번호) : 두 부분으로 구성된 키 : 하나는 전체 응용 프로그램 (예 : PHP 구성 파일에 저장되어 있음) + 실무자 계정에서 가져온 "소금"으로 구성됩니다.

실무자의 비밀 번호와 앱 사이에는 아무런 관련이 없으므로 실무자의 비서가 데이터에 액세스하는 데 문제가 없으며 데이터를 해독하는 전자 메일/SMS 작업과 실무자가 비밀번호를 잃어 버리면 실용적입니다. (데이터베이스의 도용보다 일어날 확률이 더 높음). 처음에는 개업의 비밀번호를 사용하여 암호화 키를 암호화하겠다고 생각했지만 비서 계정 또는 일정 작업으로 데이터에 액세스하는 것은 불가능합니다. 데이터베이스에 저장된 실무자 암호의 해시로 암호화 키를 암호화하면 작업이 훨씬 복잡해지며 실제로 보안 상 전혀 도움이되지 않습니다.

질문 :

A/당신은 충분히 강한 생각이나 내가 뭔가를 놓친 게 뭐죠? 전체 서버가 손상된 경우 데이터가 안전하지 않을 수 있습니다 (해커가 키를 찾기에 충분히 똑똑하고 모든 데이터를 해독하는 코드를 작성하는 경우) ...하지만 그건 내가 두려워하는 것이 아닙니다. 그리고 나는 일정 작업이 데이터를 해독 할 수있게하는 더 나은 해결책을 찾을 수 없다. 더 좋은 제안이 있습니까?

B/어떻게 텍스트 데이터를 암호화/해독하겠습니까? (알고리즘, 키, 데이터베이스 ...) 나는 PHP에서이 새로운 것이므로 실수하는 것을 두려워한다. 나는 설명서를 읽었지 만 (키 생성에서 텍스트 암호화/암호 해독에 이르기까지) 완벽한 실제 사례가 부족합니다. utf8 문제, 키 길이 문제 (고정 부분 (PHP 구성 파일) 및 데이터베이스에 저장된 가변 부분을 만드는 좋은 방법은 무엇입니까?) ...

C/for 검색 엔진, 어떻게 할 것인가? 예를 들어 "ABCD"로 시작하는 이름을 가진 사람을 찾고 싶습니다. 암호화 된 이름의 전체 목록을 검색하고 모든 이름을 해독 (php)하여 목록에 넣은 다음 (아직도 PHP는) 그 목록 안에 검색 기능을 만드시겠습니까? 대신에 MySQL의 AES_ENCRYPT/AES_DECRYPT 함수를 사용하여 전체 데이터를 암호화/해독해야한다고 생각합니까? 당신의 DB는 내 의견으로는, 암호화/해독 사용 mysql functions에 대한 MySQL의입니다

답변

1

경우 사전에

덕분에, 자신의 함수를 작성하는 것은 제로 혜택을 추가합니다. 버그를 프로그램하십시오 - 어쩌면 사용자/데이터베이스에 대해 동일한 응용 프로그램을 전달 하시겠습니까? (실무자/비서가 제공 한 사용자 및 암호로 데이터베이스에 연결하는 응용 프로그램을 의미 함), 모든 실무자가 자신의 권한 세트가있는 자신의 db를 가지고 있습니다.

Ad.C 가능하면 데이터베이스 모터를 사용하십시오. 자신의 암호화 알고리즘이 더 안전 할 수도 있지만 다른 쪽 보안 방법 - 백업/복원, 환경 변화 - 호스팅 서비스, db? 보안뿐만 아니라 해커 - 교수. 주의와 함께 사용 :

그리고 가장 중요한 - 의료 데이터 보안에 관한 법규를 확인하십시오.

+0

MySQL의 함수 (AES_ENCRYPT/AES_DECRYPT)는 좋은 방법입니다. 나는 당신이 말한 것처럼 일을 처리하기 쉽게 만든다. (삽입/업데이트) ... 검색 기능은 꽤 잘 작동한다. 간단한 "SELECT ... FROM ... WHERE AES_DECRYPT (이름, 'mykey') LIKE '% .. %'는 아무 문제없이 작동합니다. – spf

0

여기에서 질문하는 것이므로, 귀하는 암호 전문가가 아닌 것으로 간주합니다. 이것을 보려면 암호화 전문가가 필요합니다. 귀하의 신청서가 개인 정보를 유출했기 때문에 귀하의 책임 보험이 귀하의 소송에 얼마나 잘 대응할 수 있습니까?

이 문제를 확인하려면 암호 전문가가 필요합니다.

+0

저는 암호 전문가가 아니지만 제가 고용 할 필요가 없다고 생각합니다. 목표는 명확한 조치를 취하여 이러한 민감한 데이터에주의하십시오. 일부 "증명"(공유 웹 호스팅, https, 암호화 된 데이터가 아닌 ...)을 갖게되며 기술적 인 지식이없는 법원과 관련하여 종종 가장 중요합니다. 또한 법적 요구 사항을 읽습니다. 그 중 대부분은 데이터 액세스 (누가 읽을 수 있는지), 정보 (환자가 데이터가 저장되어 있음을 알아야 함) 및 파기 (환자가 요구하는 경우)와 관련되어 있습니다. – spf

관련 문제