사용 중 암호화
개요
PyMongo를 사용하면 사용 중 암호화 라는 기능을 통해 특정 문서 필드를 암호화할 수 있습니다. 사용 중 암호화를 사용하면 애플리케이션에서 데이터를 MongoDB로 보내기 전에 암호화하고 암호화된 필드가 있는 문서를 쿼리할 수 있습니다.
사용 중 암호화는 권한이 없는 사용자가 일반 텍스트 데이터가 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을 참조하세요.
Client-side Field Level Encryption
클라이언트측 필드 수준 암호화(CSFLE)는 MongoDB Server 버전 4.2에 도입되었으며, 암호화된 필드에 대한 동일성 검색을 지원합니다. CSFLE는 필드를 암호화하기 위해 결정론적 또는 무작위 암호화 알고리즘을 선택할 수 있다는 점에서 Queryable Encryption와 다릅니다. CSFLE를 사용하는 경우 결정론적 암호화 알고리즘을 사용하는 암호화된 필드만 쿼리할 수 있습니다. 무작위 암호화 알고리즘을 사용하여 CSFLE의 필드를 암호화하는 경우 해독할 수는 있지만 해당 필드에 대해 동일성 쿼리를 수행할 수는 없습니다. Queryable Encryption을 사용하면 암호화 알고리즘을 지정할 수 없지만 암호화된 모든 필드를 쿼리할 수 있습니다.
값을 결정론적으로 암호화하면 동일한 입력 값이 동일한 출력 값을 생성합니다. 결정론적 암호화를 사용하면 암호화된 필드에 대해 쿼리를 수행할 수 있지만 카디널리티가 낮은 암호화된 데이터는 빈도 분석으로 인한 코드 손상에 취약합니다.
CSFLE에 대해 자세히 알아보려면 서버 매뉴얼에서 CSFLE를 참조하세요.