2009-05-22 3 views
1

데이터베이스에서 데이터를 읽는 데 필요한 데스크톱 응용 프로그램이 있습니다. 둘 다 클라이언트 컴퓨터에 설치되어 있습니다.데이터베이스 암호화

데이터베이스의 해당 데이터는 클라이언트 액세스를 거부하고 데이터를 보호하기 위해 암호화되어야합니다.

일부 테이블의 데이터 양이 매우 많기 때문에 암호화를 지원할 수있는 데이터베이스의 종류를 알아야합니다. 효율성이 필요합니다.

웹에서이 내용을 읽었으며 아마도 SQL Server Compact Edition이 좋은 선택 일 것입니다.

누군가가이 시점에서 나를 도울 수 있습니까?

감사

답변

1

SQLite는 암호화 된 데이터베이스 파일을 읽고 쓸 수 있도록 응용 프로그램을 허용하는 암호화 확장 (SEE)이 있습니다 http://www.hwaci.com/sw/sqlite/see.html

이 DB는 데스크톱 응용 프로그램에 적합 할 수있다, 그리고 널리 사용된다 . 예를 들어 FireFox가 내부적으로 FireFox를 사용한다고 생각합니다.

+0

이것은 재미있을 것 같습니다. 페이지 수준 암호화/암호 해독을 지원하는지 또는 전체 파일을 한 번에 해독해야한다는 단점이 있습니까? –

2

SQL Server 2008에는 필요한 작업을 수행 할 수있는 투명한 데이터 암호화라는 기능이 있습니다. Compact Edition에이 기능이 포함되어 있는지 여부를 알 수 없습니다. 그 키워드로 조금만 인터넷 검색을 시작해야합니다. 나는 일반적으로 SQL Server를 사용하는 것을 권유하지 않지만,이 경우 나는 다른 DB 벤더와 비슷한 기능을 알지 못합니다 (그러나 반드시 존재해야합니다 ...).

그렇다면 데이터를 암호화하여 얻으려는 것이 무엇입니까? 이것이 전적으로 클라이언트 측 인 경우, 클라이언트는 데이터 암호 해독 키를 갖게됩니다. 기껏해야 사람들이 데이터베이스 내용을 읽는 데 약간의 장애물을 만들고 있습니다. 그것은 의미있는 정의에 의해 안전하지 않을 것입니다.

1

SQL Server CE는 암호화를 지원하지 않습니다. 최상의 호스트 OS 암호화 기능을 사용하여 데이터베이스 파일을 암호화 할 수 있습니다. 파일에서 X 페이지를 읽으려면 모든 페이지 1 ... X-1의 암호를 해독하여 적절한 상태 (올바른 CBC 블록 상태에 도달)에서 암호화 키를 가져와야하기 때문에 파일 수준 암호화가 데이터베이스에서 작동하지 않습니다. 반면에 BitLocker는 파일의 페이지를 개별적으로 해독/암호화 할 수 있으므로 제대로 작동합니다. 그러나 BitLocker는 파일 수준이 아닌 파티션 수준 옵션입니다. 이러한 일반적인 고려 사항은 관련 제품 (SQL CE, SQL Express, MySQL, Access 등)과 관계없이 전체 데이터베이스 파일을 암호화하는 모든 계획에 적용됩니다.

SQL Server에는 데이터베이스 수준 암호화가 있습니다. 가장 쉬운 방법은 TDE, Transparent Data Encryption이지만 Enterprise Edition이 필요합니다. 다른 옵션은 암호화 기능과 manage the encryption yourself을 사용하는 것입니다. 거의 사용하기 쉽지 않지만 무료 Express Edition에서 사용할 수 있습니다.

+1

데이터베이스의 암호화 체계가 다른 사용자의 무단 액세스를 다시 보호합니다. 다른 응용 프로그램의 데이터에 액세스하는 합법적 인 사용자를 보호 할 수 없습니다. 자신의 애플리케이션 외부에서 데이터에 액세스하는 것을 보호하려면 DRM이 필요하며 DRM 인프라를 사용해야합니다. 필자의 지식으로는 DRM에 대한 지원이 데이터베이스에 내장되어 있지 않습니다. –

2

공격자가 해독 키에 액세스하여 데이터베이스에 액세스하는 것을 막을 수 없습니다. 이것은 효과적으로 복사 방지 체계이며, 모두 손상되었습니다.


업데이트 : 질문 상태 ". 데이터베이스에서 데이터를 암호화해야, 는,을 클라이언트 액세스를 거부하고 데이터를 보호하기 위해" 클라이언트가 데이터베이스에 액세스 할 수있는 응용 프로그램에 액세스 할 수 있으면 응용 프로그램에서 사용하는 키에 액세스 할 수 있으며 응용 프로그램을 우회하여 데이터베이스에 직접 액세스 할 수 있습니다.

불가피한 논리에 호소력이없는 경우 음악, 게임 및 기타 디지털 자산을 보호하려고 시도한 실패한 복제 방지 체계에 대한 일화 적 증거를 고려하십시오.

0

SQLCipher을 권장할까요? 투명하고 페이지 수준의 암호화를 지원하는 SQLite의 무료 오픈 소스 구현입니다. 그것은 SEE와 비슷합니다. 현재 개발 중입니다. 구현시 OpenSSL을 사용하기 때문에 여러 가지 암호에 대한 실험적 지원이 있습니다. 전체 공개 : 저는 개발자 중 하나입니다! 어떻게 작동하는지에 대한 기본적인 아이디어를 줄 수있는 a tutorial on using it in iPhone applications을 가지고 있으며 관련 주제를 확장하는 주석 스레드가 있습니다. 분명히 Visual Studio에서 XCode를 사용하는 것은 다소 어려울 것입니다. 그러나 링크를 연결하여 Windows 환경에서 사용할 수 있어야합니다.