MongoDB 클라이언트 필드 수준 암호화에서 일관된 암호화 키를 유지하는 방법은 무엇입니까?

王林
풀어 주다: 2024-02-06 09:00:13
앞으로
491명이 탐색했습니다.

MongoDB 클라이언트 필드 수준 암호화에서 일관된 암호화 키를 유지하는 방법은 무엇입니까?

질문 내용

MongoDB 클라이언트 측 필드 수준 암호화를 사용하여 데이터를 암호화하고 해독하고 있습니다. 그런데 프로그램을 실행할 때마다 원래 바이너리 키가 변경되는 것을 발견했습니다. 이로 인해 이전에 암호화된 데이터를 새 키로 해독할 수 없기 때문에 검색하기가 어렵습니다.

MongoDB에서 클라이언트 측 필드 수준 암호화를 위해 일관된 암호화 키를 유지하는 방법이 있나요? 그렇다면 어떻게 할 수 있습니까?

https://www.mongodb.com/docs/manual/core/csfle/fundamentals/manual-encryption/#std-label-csfle-fundamentals-manual-encryption

https://go.dev/play/p/6W8e0OiPV2L

MongoDB 커뮤니티 프로젝트에서 문서의 특정 필드가 데이터베이스에 저장되기 전에 암호화된 다음 데이터베이스에서 검색할 때 해독되도록 클라이언트 측 필드 수준 암호화를 구현하려고 합니다.

MongoDB 문서를 따라해 왔으며 프로그램을 처음 실행했을 때 데이터를 성공적으로 암호화하고 복호화할 수 있었습니다. 그런데 프로그램을 다시 실행할 때마다 키가 변경되는 것을 발견하고 키를 동일하게 유지하고 싶습니다.


정답


다음 줄은 삭제되어야 합니다:

으아악

다음 줄은 키가 아직 존재하지 않는 경우에만 필요합니다.

으아악

먼저 clientenc.getkeybyaltname에 전화하여 키가 있는지 확인하세요.

"원래 바이너리 키가 변경된다"는 말은 데이터 암호화 키(dek)가 변경된다는 의미인 것 같습니다. 이는 dek가 저장된 컬렉션이 삭제되기 때문에 발생합니다.

키 및 Key Vault 보기:

고객 마스터 키(cmk)는 데이터 암호화 키(dek)를 암호화하는 데 사용하는 키입니다....

데이터 암호화 키(dek)는 mongodb 문서의 필드를 암호화하는 데 사용되는 키입니다. cmk를 사용하여 암호화된 Key Vault 컬렉션에 데이터 암호화 키를 저장합니다...

데이터 암호화 키(dek)를 삭제하면 해당 dek으로 암호화된 모든 필드를 영구적으로 읽을 수 없게 됩니다.

cmk를 제거하면 해당 cmk를 사용하여 암호화된 dek로 암호화된 모든 필드를 영구적으로 읽을 수 없게 됩니다.

위 내용은 MongoDB 클라이언트 필드 수준 암호화에서 일관된 암호화 키를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!