2011-02-07 8 views
6

우리는 사용자가 데이터베이스에 매우 개인적이고 중요한 데이터를 저장할 사이트가 있습니다.데이터베이스에 저장하기위한 데이터 암호화

물론이 데이터를 데이터베이스에 저장하고 SSL을 사용하기 전에 암호화해야합니다. 폼 인증을 사용하는 MVC 응용 프로그램입니다. 이 데이터가 저장 될 때부터 개인 페이지에 표시하기 위해 해독 될 때까지이 데이터가 암호화되도록하는 가장 좋은 방법은 무엇입니까?

우리 개발자와 dba가 앱을 사용하고 있어도 보안이 유지 될 수 있도록해야합니다.

이 상황을 처리하는 가장 좋은 방법은 무엇입니까?

+0

데이터를 보호하려는 사람은 누구입니까? –

+0

그것을 얻고 싶어하는 사람. 기본적으로 우리는 사용자가 데이터를 볼 수있는 유일한 사용자가 될 수 있도록해야합니다. (100 % 보장 할 수 없다는 것을 알고 있지만 가능하면 최대한 가까이 가야합니다.) – twal

+3

그러면 기본적으로 런타임에 사용자가 제공 한 키를 사용하여 암호화해야합니다. 물론, 사용자가 해당 키를 잃어 버린다면 (우리가 말하는 사용자 들임을 기억하십시오), 데이터에 대해 바이 바이라고 말하십시오. –

답변

1

공개 키 암호화를 사용하고 최종 사용자가이를 제어해야하는 경우가 아니면 데이터에서 DBA를 보호 할 방법이 없습니다. 최종 사용자가 키를 분실하면 모든 데이터가 손실됩니다.

키를 저장하고 DBA가이 DB에 액세스 할 수없는 별도의 데이터베이스를 가질 수 있습니다.

두 개의 DBA (하나는 데이터 용이고 다른 하나는 키용)가 있어야합니다.

이것은 DBA를 신뢰하지 않는다고 가정하고 있지만 DBA를 고용해서는 안됩니다.

DBA를 신뢰한다면 두 DB 모두에 액세스 할 수 있지만 별도의 계정이 필요하므로 한 계정이 해킹 당하면 해커가 모든 것을 액세스 할 수 없게됩니다.

일반적으로 잘 설계된 시스템에서 DBA/Admins는 개인 작업을위한 별도의 계정과 작업을 수행하는 상승 된 계정을 가지고 있습니다.

프로그래머는 테스트 환경에만 액세스 할 수 있다고 가정합니다. 프로덕션 환경에 액세스 할 수 있으면 키와 데이터에 모두 액세스 할 수 있습니다.

+0

가능한 한 많은 프라이버시를 고객에게 보장합니다. 이상적이라고 설명하는 상황을 이해합니다. 물론 우리는 결국 사람들이 내부적으로 데이터에 액세스 할 수 있음을 이해합니다. 실제로 원하는 경우/얻을 필요가있는 경우입니다. 우리는 가능한 한 이상적인 시나리오에 가까워 지려고 노력하고 있습니다. 이 의견은 크게 도움이됩니다. 고맙습니다 – twal

0

는 모든 암호화 키를 가지고 있으며, 키는 (/ 얻을하지 얻기 위해) 해당 키 : 가장 좋은 방법은 당신이 어떤 프로그래밍 배경


없이 할 수의 Web.config에 키를 설정하는 것입니다 을

그리고 나는 아름다운 AES Encryption Algorithm implementation at StackOverflow을 보았습니다. 나는 그것을 사용하는 것이 좋습니다.

+0

뭔가를 놓치지 않으면 web.config에서 키를 설정하면 개발자가 데이터에 액세스 할 수 있습니다. – mxmissile

+0

@mxmissile : 프로덕션 web.config ≠ 개발 web.config. 또한 생산 db ≠ 개발 db. – rsenna

+0

@mxmissile : 개발자가 알고있는 키로 개발하게하십시오. 우리는 배포 후에 그것을 변경할 수 있습니다. – naveen

관련 문제