이 데이터를 얼마나 멀리 보호해야하는지에 따라 달라 지므로 대답하기가 정말 어렵습니다.
첫 번째 단계는 분명히 mysql에 저장된 모든 세부 사항을 암호화하는 것입니다. 누군가가 데이터베이스를 덤프하는 경우입니다.
이 솔루션은 좋지만 다른 사람이 응용 프로그램 서버에서 암호 해독 키를 가져 오면 어쨌든 데이터베이스 덤프를 해독 할 수있는 것처럼 취약점을 소개합니다.
여기에서 고려해야 할 여러 솔루션이있다, 난 당신이 몇 가지 괜찮은 사람을 찾을 수 있어야합니다 몇 가지 조사와 확신하지만, 마음 속에 떠오르는 한 가지 방법은 다음과 같습니다
이
당신은에 데이터를 암호화 할 수 공개/개인 키 암호화 알고리즘을 사용하는 응용 프로그램 서버 공용 키는 응용 프로그램 서버에있는 저장소 정보를 암호화하는 데만 사용할 수 있습니다. 해킹 당하면 데이터베이스에서 데이터를 더 추가하는 것 밖에 할 수 없습니다. 이 경우 개인 키는 사람이이 정보를 볼 때마다 입력해야하는 암호입니다.
이것은 표시 될 때까지 여행이 완전히 암호화되어 있기 때문에 데이터에 대한 기계 처리를 할 수 없다는 명백한 단점이 있습니다.
(그리고 당신은 여전히 응용 프로그램 서버에 대한 액세스 권한을 얻는 사람의 취약점을 가지고 단순히 세션 파일 키가 임시로 저장되어야 할 것이다/memcache에 덤핑)
정직하기를, 우선 내가 할 것 데이터베이스 전체를 암호화합니다. 그만이 알맞은 보호 계층을 추가합니다. 대부분의 경우 서버의 파일 시스템에 액세스하는 것보다 데이터베이스를 덤프하는 것이 더 쉽습니다.
당신이 간접적으로 머리에 못을 충돌 생각 - 직불 데이터베이스가 어떤 상황에서 웹 프론트 엔드에서 액세스를 읽을 수 없습니다해야합니다. 이는 고전적인 보안 격리입니다. –
좋은 지적, 격리에 의한 보안 +1. 나는 첫 걸음에서 고립에 의존하는 경향이 없다. 일반적으로 나는 할 수있는 모든 것을 해싱하므로 물리적으로 데이터를 가지지 않으며, 가역적 방법이 필요하다면 대신 키를 암호화하고 보호해야합니다. 전체 DB보다는 키를 보호하는 것이 더 간단합니다. –