사용 중 암호화
개요
Java 드라이버로 사용 중 암호화 라는 기능 세트를 사용하여 특정 문서 필드를 암호화할 수 있습니다. 사용 중 암호화를 사용하면 애플리케이션에서 데이터를 MongoDB로 보내기 전에 암호화하고 암호화된 필드가 있는 문서를 쿼리할 수 있습니다.
중요
호환되는 암호화 라이브러리 버전
Java 운전자 는 사용 중인 암호화 에 mongodb-crypt 암호화 라이브러리를 사용합니다. 이 운전자 버전은 mongodb-crypt
v 와 호환됩니다. .5 21.
다음 Maven 및 Gradle 탭에서 선택하여 지정된 관리자를 사용하여 프로젝트 에 mongodb-crypt
종속성을 추가하는 방법을 확인합니다.
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-crypt</artifactId> <version>5.2.1</version> </dependency> </dependencies>
dependencies { implementation 'org.mongodb:mongodb-crypt:5.2.1' }
사용 중 암호화는 권한이 없는 사용자가 일반 텍스트 데이터가 MongoDB로 전송되거나 암호화된 데이터베이스에 있는 동안에는 볼 수 없도록 합니다. 애플리케이션에서 사용 중 암호화를 활성화하고 데이터 암호 해독 권한을 부여하려면 애플리케이션만 액세스할 수 있는 암호화 키를 만들어야 합니다. 암호화 키에 액세스할 수 있는 애플리케이션만 해독된 일반 텍스트 데이터에 액세스할 수 있습니다. 공격자가 데이터베이스에 액세스하는 경우 암호화 키에 대한 액세스 권한이 없기 때문에 암호화된 암호 텍스트 데이터만 볼 수 있습니다.
사용 중 암호화를 사용하여 다음과 같은 유형의 민감한 데이터가 포함된 MongoDB 문서의 필드를 암호화할 수 있습니다.
신용 카드 번호
주소
건강 정보
재무 정보
기타 민감한 정보 또는 개인 식별 정보(PII)
MongoDB는 사용 중 암호화를 활성화하기 위해 다음과 같은 기능을 제공합니다.
Queryable Encryption
Queryable Encryption은 차세대 사용 중 암호화 기능으로, MongoDB Server 버전 6.0에서 미리보기 기능으로 처음 도입되었으며, MongoDB 7.0에서는 정식 버전(GA) 기능으로 출시되었습니다. Queryable Encryption은 암호화된 필드에 대한 동일성 검색을 지원하고 각 값을 고유하게 암호화합니다.
중요
MongoDB 7.0과 호환되지 않는 미리보기 기능
MongoDB 6.0의 Queryable Encryption 구현은 MongoDB 7.0에 도입된 GA 버전과 호환되지 않습니다. Queryable Encryption 미리보기 기능은 더 이상 지원되지 않습니다.
Queryable Encryption에 대해 자세히 알아보려면 서버 매뉴얼에서 Queryable Encryption을 참조하세요.
클라이언트 사이드 필드 레벨 암호화
클라이언트 사이드 필드 레벨 암호화(CSFLE)는 MongoDB Server 버전 4.2에 도입되었으며, 암호화된 필드에 대한 동일성 검색을 지원합니다. CSFLE는 필드를 암호화하기 위해 결정론적 또는 무작위 암호화 알고리즘을 선택할 수 있다는 점에서 Queryable Encryption와 다릅니다. CSFLE를 사용하는 경우 결정론적 암호화 알고리즘을 사용하는 암호화된 필드만 쿼리할 수 있습니다. 무작위 암호화 알고리즘을 사용하여 CSFLE의 필드를 암호화하는 경우 해독할 수는 있지만 해당 필드에 대해 동일성 쿼리를 수행할 수는 없습니다. Queryable Encryption을 사용하면 암호화 알고리즘을 지정할 수 없지만 암호화된 모든 필드를 쿼리할 수 있습니다.
값을 결정론적으로 암호화하면 동일한 입력 값이 동일한 출력 값을 생성합니다. 결정론적 암호화를 사용하면 암호화된 필드에 대해 쿼리를 수행할 수 있지만 카디널리티가 낮은 암호화된 데이터는 빈도 분석으로 인한 코드 손상에 취약합니다.
CSFLE에 대해 자세히 알아보려면 서버 매뉴얼에서 CSFLE를 참조하세요.