2011-09-09 4 views
1

현재 웹 응용 프로그램을 설계하고 있으며 요구 사항 중 하나는 사용자 자격 증명과 역할을 보호하는 것입니다. 이제 보통의 pwd 해시 + 소금 + 외에 ... 나는 암호화 된 H2 데이터베이스에 특정 테이블을 넣을 생각이었고 나머지 데이터는 MySQL 데이터베이스에 넣으려고했다. 제 경우의 H2의 장점은 다음과 같습니다. 메모리 내 저장은 빠른 액세스를 의미합니다. 암호화 된 데이터베이스가 있으므로 보안이 강화되어 서버가 손상 될 수 있습니다.DB에 민감한 데이터를 안전하게 보호하려면 H2를 사용하고 있습니까?

내 질문 : 추가 보안 레이어가 필요할 때 일반적인 방법입니까? 다른 데이터의 로그인 정보 (필자의 경우 민감한 데이터)를 분리하는 것이 좋습니다.

감사합니다.

답변

0

나는 이것이 보안의 관련 계층을 추가한다고 생각하지 않습니다. 서버가 를 손상

경우 서버가 사용자의 자격 증명을 확인할 수 있습니다, 당신의 서버 (예를 들어,뿐만 아니라 그것을 확인하는 데 필요한 데이터가 손상 누구든지 : 당신은 암호화 키를 저장해야하는 것/암호를 입력하면 DB를 해독 할 수 있습니다.

그리고 : 설정 자체가 복잡하여 보안 문제 ("구성 요소 A가이 파일을 읽을 수없는 이유는 무엇입니까? 아, 전 세계에서 읽을 수 있도록 할 것입니다")가 많습니다. 단순함 은 보안을 위해 좋은 일 수 있습니다.

+0

입니다, 보안 포럼에서 내 대답을 얻었다. 필자의 경우 dbs는 webapp보다 별도의 서버에 저장되므로 보안 채널을 사용하여 서버 A에서 서버 B로 통신이 이루어집니다. 그러나 나는 이것이 설치를 복잡하게 할 것이라는 점에 동의한다 ... DB를 디자인하고 몇 개의 테이블에 저장된 특정 민감한 데이터를 보호해야한다는 것을 알고 있다면,이 방법을 쓰겠다. 해야 할 것? – Elio

0

응용 프로그램이 매우 단순하다면 한 가지 유형의 데이터베이스 만 사용할 수 있다고 생각합니다. MySql. 데이터베이스에 저장하기 전에 암호를 해싱 할 수 있습니다. 해시 된 암호에서 실제 암호를 가져올 수 없다는 점에서 해싱은 암호화와 다릅니다. 사용자가 로그인을 시도하면 사용자가 입력 한 암호를 해시하고 이미 데이터베이스에 저장된 해시 값을 비교합니다. salt 값을 사용하면 해시 된 암호에 대한 액세스 권한이 있어도 해커가 실제 암호를 얻는 것이 매우 어려울 수 있습니다.

더 복잡한 응용 프로그램의 경우 ldap 서버 중 하나 (예 : openladp)를 사용하는 것이 좋습니다. 그런 다음 암호 정책과 해싱을 무료로받습니다.

관련 문제