제 생각에는 최소한 다음 4가지 요건이 충족되어야 한다고 생각합니다.
1. 데이터베이스 시스템의 전반적인 성능이 크게 저하되지 않는지 확인
우리 모두 알고 있듯이 데이터베이스 시스템의 데이터 처리 성능은 전체 성능에 결정적인 역할을 합니다. 경우에 따라 데이터베이스는 비즈니스 요구 사항을 충족하기 위해 처리 능력이 특정 높은 수준으로 유지되도록 해야 합니다. 반면, 데이터베이스 암호화 시스템은 데이터베이스 내의 데이터를 암호화하여 보호하는 응용 시스템으로, 업무 시스템에서 데이터베이스로 데이터를 저장할 때 일반 텍스트 데이터를 암호화해야 한다. 데이터베이스에서 데이터를 읽어 비즈니스 시스템으로 전달할 때 해당 데이터를 복호화해야 하며, 이 과정에서 암호문을 일반 텍스트로 복호화해야 합니다. 암호화 및 암호 해독은 특정 알고리즘 논리를 기반으로 하는 순환 작업 프로세스입니다. 이 프로세스는 일정량의 CPU를 소비하고 데이터베이스 성능에 영향을 미칩니다.
데이터베이스 암호화 시스템은 다양한 기술 경로를 통해 구현될 수 있으며, 업계에서 검증되고 사용되는 기술 경로에는 응용 프로그램 시스템 암호화, 프런트엔드 에이전트 암호화, 백엔드 에이전트 암호화, 테이블 공간 투명한 데이터 암호화, 파일 시스템 암호화 및 디스크 암호화. 그중 애플리케이션 시스템 암호화 및 프런트 엔드 프록시 암호화 기술은 데이터베이스 성능에 큰 영향을 미치며 소량의 데이터 암호화 시나리오에만 적합합니다. 사후 프록시 암호화 기술도 일부 시나리오에서는 데이터베이스 성능에 큰 영향을 미칩니다. 명백한 한계가 있기 때문에 가능한 한 후자의 세 가지 기술 경로를 사용하여 좋은 데이터베이스 암호화 시스템을 구현해야 합니다.
2. 데이터 보안 보장
데이터베이스에 저장된 데이터는 사용자의 자산입니다. 따라서 모든 데이터베이스 암호화 시스템은 키를 통해 데이터를 암호화할 수 있는지 확인해야 합니다. 자신의 암호화된 데이터를 무손실로 해독합니다. 따라서 좋은 데이터베이스 암호화 시스템은 암호화 시스템이 실패하여 사용할 수 없게 되는 경우 새로운 암호화 시스템 환경을 신속하게 구축할 수 있도록 주요 백업 및 복구 기능을 갖추고 있어야 합니다. 또한 데이터베이스 암호화 시스템이 암호화를 구현하기 위한 독립적인 도구나 인터페이스를 제공하는 경우에도 마찬가지입니다. 기계가 실패할 때 사용자 데이터를 해독하는 것이 더 나은 선택입니다.
3. 애플리케이션은 완전히 투명합니다.
데이터베이스 시스템은 비즈니스 시스템에 데이터 서비스를 제공합니다. 이 투명성은 애플리케이션 시스템에 완전히 투명해야 합니다. (1) 데이터베이스 암호화 시스템을 배포할 때 응용 프로그램 시스템은 수정이 필요하지 않으며 연결 문자열도 수정할 필요가 없습니다. (2) 데이터베이스 암호화 시스템이 배포된 후 저장 프로시저 및 데이터베이스 내부 사용자 사용자 정의 함수, 트리거, SQL 코드 세그먼트 및 기타 실행 가능 개체는 물론 기본 및 외래 키 관계, 다양한 인덱스, 기본값, 검사 제약 조건 등을 정상적으로 사용할 수 있으며 변경할 필요가 없습니다. 3) 데이터베이스 자체의 주변기기 관리 도구, 타사 데이터베이스 도구 등은 데이터베이스 암호화 시스템 배포 후에도 정상적으로 사용할 수 있습니다.
4. 고가용성
데이터베이스 암호화 시스템 자체는 고가용성 기능을 갖추고 있어야 하며 암호화 중 하나인 경우 마스터-대기 방식으로 데이터베이스 암호화 서비스를 제공할 수 있습니다. 장애 발생 시 다른 암호화 시스템이 신속하게 암호화 서비스를 인계받아 데이터베이스 시스템과 사용자 비즈니스 시스템의 가용성을 보장할 수 있어야 합니다.