2010-04-16 2 views
4

데이터베이스의 일부 데이터를 루트 공격으로부터 보호하는 응용 프로그램을 설계해야합니다. 즉, 침입자가 데이터가 저장된 시스템이나 응용 프로그램 서버로 제어하는 ​​시스템을 제어하더라도 데이터베이스에서 비즈니스 중요한 데이터를 읽을 수는 없습니다. 이것은 고객의 요구 사항입니다. 일부 비대칭 알고리즘을 사용하여 데이터를 암호화 할 예정입니다. 개인용 키를 저장할 위치가 어디에서 좋은지, 데이터가 안전하고 응용 프로그램의 유용성이 매우 편안하도록 좋은 아이디어가 필요합니까? 간단하게하기 위해 하나의 키 쌍만 사용한다고 가정 할 수 있습니다.데이터베이스의 데이터를 암호화하는 보안 응용 프로그램 아키텍처

+2

고객이 클라우드에서이 도구를 실행하려고하지만 클라우드 운영자로부터 안전하다고 주장하려고합니다. – Yishai

답변

1

데이터베이스 옵션에 대해서는 확실하지 않지만 Oracle Advanced Security (OAS)을 살펴볼 필요가 있습니다. 그러나 키는 데이터베이스 내부에 저장되지 않지만 오라클 지갑 (OS 관리)에 저장되어 있으므로 알 수 있듯이이를 손상시키는 것은 어렵습니다.

OAS는 테이블 공간 및 열 수준에서 암호화를 지원합니다. 이 모든 것들은 오버 헤드없이 수행되고 있다고 주장합니다.

+0

좋은 옵션입니다. bu 무료 또는 저렴한 데이터베이스가 동일한 기능을 가지고 있는지 알고 있습니까? –

+0

AFAIK, 현재 오라클 만 이러한 기능을 제공합니다. – Guru

+0

무료는 아니지만 Microsoft SQL Server에는 2008 Enterprise Edition에 해당하는 투명한 데이터 암호화와 동일한 기능이 있습니다. –

1

특히 question을 원본 질문에서 언급 한 자료를 살펴보십시오.

나는 이런 종류의 시스템을 구축 할 때의 문제점에 대한 훌륭한 개요로서 책을 추천 할 수 있습니다.

8

이것은 고객의 요구 사항입니다.

고객의 요구 사항은 실제 세계에 투영되어야합니다.

응용 프로그램이 일부 비즈니스 데이터를 읽을 수 있고 aggresor가 응용 프로그램을 제어하는 ​​경우 공격기는 해당 비즈니스 데이터를 읽을 수 있습니다.

어시 메트릭 암호는 마법을 걸지 않습니다.

+0

+1. 잘했다. 어떤 때는 모든 종류의 요구 사항을 갖게됩니다. – Guru

3

개인 키를 저장할 위치는 클라이언트와 함께 있으며 클라이언트에서만 해독합니다. 데이터는 암호 해독 된 형태로 서버를 통해 암호 해독, 읽기 또는 전달 될 필요가 없습니다.

+0

합리적인 것 같지만 클라이언트가 키를 보관하는 것이 문제 일 수 있습니다. 시스템 사용자는 기술적으로 진보되어 있지 않으며 암호화 키가 작업의 핵심이라는 사실을 깨닫지 못할 수도 있습니다. 나는 시스템 관리자에게 키를 관리 할 책임이 있다고 생각하지만 응용 프로그램이 효과적으로 작동 할 수 있도록 키를 안전하게 저장할 수있는 곳은 어디입니까? 어떤 생각을 한 후에 관리자가 서버 응용 프로그램을 시작할 때 키를 제공하면 고객이 받아 들일 만하다고 생각하지만 메모리에 키를 저장하는 것이 안전할까요? 메모리에서 키를 선택하기가 어렵습니까? –

+0

@Przemyslaw, 확실히 메모리에서 읽는 것은 어렵지만 컴퓨터를 루트하기는 어렵습니다. 누군가가 뿌리를 뽑을 수 있다면 나는 기억을 장벽으로 보지 않을 것이다. 특히 메모리를 버리고 분석 할 수 있기 때문에. – Yishai