2010-07-01 5 views
1

월별 요금제로 고객이 사용할 전자 상거래 응용 프로그램을 개발하는 중입니다.암호화 된 개인 정보 저장 - 상식?

우리는 데이터베이스에 저장된 모든 개인 데이터의 암호화를 제공하여 최종 소비자에게 우리의 응용 프로그램을 더욱 안전하게 할 수 있다고 생각했습니다.
암호화는 프런트 엔드와 백엔드 모두에서 완전히 투명하게 처리되며 누군가가 순수한 데이터베이스 액세스 권한을 획득하더라도 암호화 키없이 최종 소비자의 개인 정보를 해독하는 것은 불가능합니다.

이것은 상식입니까, 아니면 이것이 최종 고객에게 추가되는 안전성이 증가 했음에 비해 너무 많이 물지는 것입니까?

+1

* (관련 기사) * [서버 소유자/개발자가 읽을 수없는 비공개 메시지 숨기기] (http://stackoverflow.com/questions/3156870/crypt-private-messages-wich-cant- be-read-by-server-owner-developer) – Gordon

+1

해독하는 것이 불가능하다는 것을 목표로 조심하고 싶습니다. 나는 당신이 무엇을 얻고 있는지 알고 있지만, 제거와는 반대로 위험 완화의 라인을 따라 생각하려고 노력합니다. –

답변

3

내가 보안 전문가는 아니지만 여기에 마음에 와서 몇 가지 질문의로 나는 여기에 내 깊이에서 수 있습니다 :

  • 의 가능성은 무엇인가를 공격자가 데이터에 액세스 할 수 있습니까?

  • 데이터에 기밀이 있습니까?

  • 공격자가 데이터에 액세스하는 것을 어떻게 막을 수 있습니까?

  • 침입자가 데이터에 액세스 할 수 있다면 귀하 또는 귀하의 회사는 무엇을 잃을 수 있습니까? 그것은 단지 데이터 일뿐만 아니라 잠재적으로 당신의 명성입니다.

  • 얼마입니까 cost 구현할 수 있습니까?

  • 고객 데이터와 관련하여 legal obligations은 무엇입니까?

  • 데이터가 단일 전역 키를 사용하여 암호화되는 경우 어떻게 키를 안전하게 지키겠습니까?

  • 키가 정말로 안전하다면 어떻게 데이터를 암호화하고 해독 할 수 있습니까?

  • 데이터가 여러 키 (고객 로그인마다 하나씩)를 사용하여 암호화되는 경우 고객이 키/비밀번호를 잃어 버리면 데이터를 어떻게 복구합니까?

  • 고객 데이터를 복구 할 수 있다면 어떻게 안전에 영향을 줍니까?

  • computer repair technicians, sysadmins 등은 데이터베이스 서버에 대한 액세스 권한과 데이터 보안에 어떤 영향을 미칩니 까? (외부 해커 만이 아닙니다.)

  • 암호화 및 암호 해독의 성능 효과는 무엇입니까?

  • 방화벽, 물리적 보안 및 직원 수사와 같은 다른 메커니즘을 구현할 수 있습니까?

    데이터 보호 잘못을 얻기 , 규제 및 법적 처벌을, 상업 명성 가져올 수 :

다음은 영국 FSA Your responsibilities for customer data security (pdf)에서 인용합니다. 바로 얻으려면 고객 신뢰도 신뢰의 조건으로 보상을 제공합니다.

+0

안녕 마이크! 많은 좋은 점을 가져 주셔서 감사합니다! +1! – Industrial

2

내 대답은 : 가끔입니다. 저는 전자 상거래 솔루션을 사용하는 몇몇 회사에서 일했습니다. 보안 및 암호화는 정보가 가치있는 것보다 더 잘해야합니다. 이름과 주소는 신용 카드 번호 및 거래 정보를 말하는 것보다 "가치있는"것이 아닙니다. 필자가 가장 익숙한 설정은 일반적으로 더 자주 가져 오는 모든 일반 CRM 데이터 (이름, 주소 등)가 서버 데이터베이스 (일반 텍스트)에 저장되고 서버의 보안이 강화됩니다 (방화벽, 패치, 등) 데이터베이스에 액세스하는 스크립트는 물론 개발자의 지식을 최대한 활용하여 보안을 유지합니다.

신용 카드, 거래 정보, 사람들이 훔쳐 가고 싶어하는 진짜 정보는 서버에 포함되어 있으며, 암호화되고 보안되며 지역 LAN을 통해서만 제공됩니다. 암호화 키는 두 번째 서버에 있었는데이 컴퓨터에 액세스하려면 세 번째 서버 만 알고 있던 순환 인증 키가 필요했습니다. 두 개의 키/데이터 서버는 서로를 인식하지 못했습니다. 구매가 이루어질 때 - 제 3의 서버 - 제 4의 서버 -는 "마술처럼"- 구매를 완료하기 위해 모두 모이게 할 것입니다.

매우 복잡하고 끔찍한 대답입니다. 간단히 말해서 매우 민감한 데이터를 보호/암호화하는 것은 고객이 도난으로부터 보호받을 수 있도록하려는 것입니다. 그러나 모든 정보가 응용 프로그램에 불필요한 오버 헤드가 될 수 있습니다. 보안은 데이터가 도둑에게 가치가있는 가치가 있습니다.

2

이렇게하면 관계형 데이터베이스의 장점 (검색, 비즈니스 인텔리전스 보고서 등)이 많이 손실됩니다.

또한 키를 저장하면 '보안'계층 만 추가됩니다. 공격자가 데이터를 읽으려면 키를 얻어야하지만 데이터베이스에 대한 전체 액세스 권한이 있다면 액세스 권한이있는 것입니다 키 저장소 (프런트 엔드 및 백 오피스 응용 프로그램에 대한 해당 저장소에 대한 액세스 권한이 있어야 함)에도 적용됩니다.

대신 사용자가 자신의 키를 저장할 책임이있는 경우 사용자가 키를 잃어 버릴 경우 데이터를 복원 할 가능성이 상실됩니다.

실질적인 정보를 얻고 별도의 서버에두고 가능한 한 많은 보안을 설정하고 필요할 때만 데이터에 액세스하십시오.

내 생각에 귀하의 접근 방식의 주요 위협은 암호화가 제공 할 보안의 (거짓) 감각이 될 것입니다. 적절한 데이터는 저장시주의 깊게 다루어야하며 정교화 및 사용 중에도 처리해야합니다. 귀사의 비즈니스가 요구하는 경우 우수한 시스템 관리자, 준비된 소프트웨어 엔지니어 및 정기 보안 평가에 돈을 투입하십시오.

2

왜 더 안전한가요?

사용자에게 데이터를 제공하려면 decrpytion 키를 저장해야합니다. 해커가 반드시 알아야하는 백엔드에 도달하려면 '프런트 엔드'시스템에서만 보유하고있는 것과 관련이 없습니다. 먼저 프론트 엔드를 통해

당신은 또한 검색 기능을 많이 제거합니다.

imlpement를 구현하려면 많은 코딩 작업을해야합니다.

시스템에 대한 요구가 너무 많습니다 (하드웨어 비용이 많이 들고 성능이 좋지 않음).

IMHO 다른 곳에서 보안을 개선하는 데 돈과 시간을 투자하는 것이 좋습니다.

C.

관련 문제