2009-08-04 4 views
9

데이터베이스에 들어가기 전에 암호화하고 싶은 메모와 중요한 정보를 저장하는 필드가 있습니다.암호화 된 필드 및 전체 텍스트 검색, 최선의 접근?

지금은 SQL 전체 텍스트 검색을 사용하여이 필드를 검색했습니다. 분명히이 데이터를 암호화하면 내 검색 결과를 포기할 것입니다.

이 필드를 암호화하는 가장 좋은 방법은 무엇입니까?하지만 여전히 검색이 가능합니까?

답변

3

암호화 된 색인을 지원하는 데이터베이스가 없으므로이를 달성하기 위해 보안을 희생해야합니다.

부분 데이터를 명확하게 색인화하고 응용 프로그램에서 실제 데이터를 찾을 수 있습니다. 예를 들어, 신용 카드 번호를 저장하려는 경우. 마지막 4 자리 숫자의 색인을 가질 수 있습니다. 마지막 4 자리 숫자를 공유하는 카드의 수는 제한되어 있으므로 각각을 해독하고 정수를 확인할 여유가 있습니다.

9

쉽지 않을 것입니다. 현장에서 이론적 인 결과가 있지만 설명하는 내용은 상용 데이터베이스에서는 거의 구현되지 않습니다. google scholar에 가서 주제에 관한 논문을 찾기 시작하는 것이 좋습니다.

+0

는 또한이 프레젠테이션에서 살펴 : 암호화 된 데이터를 검색하는 방법 - EU-진 총리 에 http : // 암호화 .stanford.edu/~ eujin/papers/secureindex/2003nov-encsearch.pdf –

2

또 다른 옵션은 암호화 된 데이터의 soundex를 저장하는 것입니다. 그런 다음 soundex 값을 검색하고 데이터 암호를 해독하지 않고 닫을 수 있습니다.

1

오라클의 10g 릴리스 2 (또는 이상)가이 기능을 지원할 수 있습니다. 여기에 자신의 웹 사이트에서 :

http://www.oracle.com/technology/oramag/oracle/05-sep/o55security.html

"데이터베이스 10g 릴리즈 2는 할 수 있습니다 오라클의 새로운 기능을 사용하면 그냥 작업을 수행합니다. 당신은 열을 선언 할 수 있습니다 단 한 줄의 코드를 작성하지 않고 암호화로 사용자는 데이터를 삽입 할 때 , 데이터베이스는이를 투명하게 암호화하여 열에 저장합니다. 마찬가지로 사용자가 열을 선택하면 데이터베이스에서 자동으로 암호를 해독합니다.이 모든 것이 응용 프로그램 코드를 변경하지 않고 투명하게 수행되기 때문에이 기능에는 적절한 이름이 있습니다. 즉, Transparent Data 암호화 (TDE). "

아이디어는 아무도 데이터베이스의 일반 텍스트를 볼 수 없지만 select 문은 정상적으로 작동한다는 아이디어입니다. 오라클이 옵션 일 경우 검색을하면 도움이 될 것입니다.

업데이트 : 여기에 또 다른 옵션이있다 : MySQL 데이터베이스에 대한

http://www.critotech.com/index.htm

, 그러나 그것은 아주 비싼 보인다.