2013-05-02 3 views
0

그물 프레임 워크는 암호화 된 데이터를 저장하고 데이터베이스에 저장합니다. 그러나 나는 암호 해독에서 하나씩 데이터를 제외하고 암호화 된 데이터를 쿼리하려고합니다. 암호화 된 데이터를 쿼리 할 수 ​​있습니까? 감사.암호화 된 데이터를 검색 할 수 있습니까?

P. 암호화를 위해 Framework.Security.TripleDES 클래스를 사용하고 MSSQL 데이터베이스를 사용합니다. 감사.

+1

그게 쉬운 일이라면, 왜 귀찮게 암호화할까요? 만약 내가 당신의 데이터를 원한다면 나는 암호화 쓰레기를 건너 뛰고 DB에서 바로 데이터를 가져올 수 있습니다. 암호화 매개 변수를 모른다면 – cHao

+0

이 아닙니다. 암호화의 전체 점은 ... – naveen

+0

어떻게 암호화 된 데이터를 기본으로 저장합니까? – Tigran

답변

1

정의에 의해 . 암호화 된 데이터를 검색 할 수 있으면 암호화가 끊어집니다. 암호화 된 각 항목마다 다른 무작위 IV를 사용해야하며 검색하는 유일한 방법은 모든 항목을 해독하여 검색된 항목과 비교하는 것입니다. 어느 것이 금지되어 있습니다. 할 수있는 일은 데이터의 해시를 저장하고 해시를 검색하는 것입니다 (Indexing Encrypted Data 참조). 이렇게하면 빨리 검색 할 수 있지만 부분 검색이나 범위 검색은 할 수 없습니다.

+0

부분적인 검색은 할 수 있지만 "4 문자 해시", "6 문자 해시" , "full hash"를 예로들 수 있습니다. 저장해야하는 데이터 양이 늘어나고 잘못 수행되면 보안 문제가 발생할 수 있습니다 (PBKDF2 참조). 컬럼 이름에 대한 코드화 체계를 사용하면 데이터베이스에서이를 사용하는 일반적인 방법을 자동화 할 수 있습니다. –

+0

@MichaelBrown : 해시를 소금 처리하면 검색에 사용할 수 없습니다. 소금을 내지 않으면 '4 문자'의 전체 해시 함수 공간을 쉽게 발견 할 수 있으며 정보가 유출됩니다. –

+0

해쉬를 소금으로 처리하면 행 차원의 소금이 아닌 테이블 전체의 소금을 의미했습니다. 예, 첫 번째 4 자 노출은이 방법으로 데이터가 누출 될 수 있지만 무지개 표 유형 공격을 통해 처음 4 자만 누설됩니다. 이것이 받아 들일 수 있는지 아닌지에 대한 귀하의 데이터에 따라 다르며, 이런 종류의 검색을 가능하게하는 다른 방법은 없습니다. PBKDF2에서 높은 반복을 사용하면 전체 크기 해시를 무차별 적으로 강제 적용 할 수 있습니다. –

0

아니요!

의미있는 데이터를 의미없는 데이터로 만드는 데 사용됩니다 (다른 사람들의 경우). 따라서 어느 누구도 귀하의 개인 정보를 가로 챌 수 없습니다.

암호화 된 데이터는 바이트 배열로 저장됩니다. 모든 바이트는 암호화의 결과이며 그로 인해 꽤 의미가 없습니다 (암호 해독 메커니즘 제외). 데이터가 의미있는 것이라면, 암호 해독은 매우 열악한 것입니다.

물론 특정 바이트에 대해 바이트 배열을 검색 할 수 있습니다. 물론 모든 0을 셀 수 있지만 그 점은 보이지 않습니다.

2

동일한 IV를 사용하여 각 레코드를 암호화하는 경우 검색된 문자열을 암호화하고 저장된 데이터와 비교하여 간단한 검색을 수행 할 수 있습니다. 그러나 더 복잡한 검색이 필요한 경우 응용 프로그램의 아키텍처를 재고하지 않는 한 운이 없게됩니다.

관련 문제