이 블로그에서는 고급 보안 옵션을 사용하여 TDE(Transparent DataEncryption)를 사용하여 Oracle® 데이터베이스 내의 민감한 데이터를 보호하는 방법에 대한 필수 사항을 다룹니다. 이 기능을 사용하면 데이터베이스 열을 암호화하고 암호화 키를 관리할 수 있습니다.
소개
TDE를 사용하면 운영 체제 파일에 저장된 민감한 데이터베이스 데이터를 암호화할 수 있습니다. 데이터베이스 외부에 위치한 보안 모듈에서 암호화 키의 안전한 저장 및 관리를 제공합니다.
암호화된 데이터는 데이터에 액세스할 수 있는 데이터베이스 사용자에 대해 투명하게 해독됩니다. TDE는 데이터베이스 외부의 보안 모듈에 암호화 키를 저장합니다.
TDE를 사용하는 이유
도둑이 데이터베이스의 백업 테이프를 훔쳐 자신의 서버에 복원하면 회사의 가장 민감한 데이터에 액세스할 수 있습니다. 이것은 용납할 수 없는 위험입니다. 대부분의 회사 규정 및 지침은 데이터베이스 데이터 보호 준수 요구 사항을 고려합니다. 이 취약점으로부터 어떻게 데이터베이스를 보호할 수 있습니까?
한 가지 솔루션은 데이터베이스의 민감한 데이터를 암호화하고 암호화 키를 별도의 위치에 저장하는 것입니다. 키가 없으면 도난당한 데이터는 가치가 없습니다.
TDE는 어떻게 작동합니까?
TDE는 키 기반 액세스 제어 시스템입니다. 암호화된 데이터를 불러와도 인가된 복호화 없이는 쓸모가 없으며, 이는 테이블 접근 권한이 있는 사용자에게 자동으로 발생한다.
암호화된 열이 포함된 테이블의 경우 암호화 키를 열 암호화 키라고 합니다. 각 테이블의 컬럼 암호화 키는 데이터베이스 서버의 마스터 키로 암호화됩니다. 마스터 암호화 키는 Oracle Wallet의 데이터베이스 외부에 저장됩니다.
암호화된 테이블 키는 데이터 사전에 저장됩니다. 사용자가 암호화된 것으로 정의된 열에 데이터를 입력하면 Oracle은 다음 작업을 수행합니다.
- 지갑에서 마스터 키를 검색합니다.
- 데이터 사전에서 해당 테이블의 암호화 키를 해독합니다.
- 입력 값에 해당 암호화 키를 사용합니다.
- 암호화된 데이터를 데이터베이스에 저장합니다.
이미지 출처 :https://docs.oracle.com/database/121/ASOAG/img/GUID-5FD3A3BB-441C-4C42-A520-1248974627B0-default.png
TDE는 다음 데이터베이스 파일의 데이터를 암호화합니다.
- 데이터 파일
- 리두 로그 및 아카이브 로그 파일
- 기억
- 파일 백업
오라클 지갑 관리
이 섹션에서는 지갑 생성, 열기 및 닫기에 대해 설명합니다.
지갑 생성
TDE를 처음 활성화할 때 마스터 키가 저장되는 지갑을 생성해야 합니다.
기본적으로 지갑은 $ORACLE_BASE/admin/$ORACLE_SID/wallet에 생성됩니다. 하지만 sqlnet.ora에서 지정하여 다른 위치를 설정할 수 있습니다. 다음 줄에서:
ENCRYPTION_WALLET_LOCATION = (SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY =D:\oracle\product\Wallet)))
다음으로 다음 명령을 실행하여 지갑을 생성하십시오.
ALTER SYSTEM SET ENCRYPTION KEY [certificate_ID] IDENTIFIED BY password;
-
지갑 비밀번호 대소문자를 구분합니다. 암호 문자열을 큰따옴표(" ")로 묶습니다.
-
인증서_ID Oracle 지갑에 저장된 인증서의 고유 식별자를 포함하는 선택적 문자열입니다. V$WALLET를 쿼리하여certificate_ID를 검색할 수 있습니다. 지갑이 열렸을 때 고정된 보기
지갑 열기 및 닫기
지갑을 생성하고 비밀번호를 설정한 후 SYS
를 이용하여 명시적으로 지갑을 열어야 합니다. , SYSTEM
또는 SYSDBA
데이터베이스를 시작할 때마다 계정이 생성됩니다.
예를 들어 다음 명령을 실행합니다.
alter system set encryption wallet open identified by "oracle12345";
중요: 데이터베이스에 대한 작업을 수행하려면 지갑을 열어야 합니다.
다음 예는 데이터베이스가 작동하지만 지갑이 닫힌 데이터베이스 작업을 보여줍니다.
alter system set encryption wallet close;
이제 암호화된 열에서 데이터를 검색하려고 하면 지갑이 닫혀 있기 때문에 다음과 같은 오류 메시지가 표시됩니다.
암호화된 열에서 데이터를 검색하려면 다음 명령을 사용하여 지갑을 열어야 합니다.
alter system set encryption wallet open identified by "oracle12345";
이제 지갑이 열려 있기 때문에 암호화된 열에서 데이터를 검색할 수 있습니다.
암호화된 열이 있는 테이블 만들기
다음 명령을 사용하여 암호화된 열이 있는 테이블을 만듭니다.
CREATE TABLE test2 (id number,name varchar2(20),s_s_num number ENCRYPT);
기본이 아닌 알고리즘과 NO SALT 옵션을 사용하여 테이블 만들기
SALT는 데이터가 암호화되기 전에 데이터에 추가되는 임의의 문자열로 훨씬 더 안전하고 해킹하기 어렵게 만듭니다. 기본적으로 TDE는 암호화하기 전에 일반 텍스트에 SALT를 추가합니다.
SALT 옵션으로 암호화된 컬럼은 생성 및 인덱싱할 수 없습니다. 암호화된 컬럼에 인덱스를 추가하려면 다음 예와 같이 NO SALT 옵션을 사용해야 합니다.
CREATE TABLE test3 (id number,name varchar2(20),s_s_num number ENCRYPT NO SALT,Ph_no number ENCRYPT USING '3DES168');
여기 S_S_NUM 열은 NO SALT 옵션과 PH_NO로 암호화됩니다. 컬럼은 기본 SALT 옵션으로 생성됩니다.
다음 예는 PH_NO에서 색인을 생성할 수 없음을 보여줍니다. 기본적으로 SALT 옵션으로 생성했기 때문입니다.
기존 테이블의 열 암호화
다음 명령은 기존 테이블의 열을 암호화합니다.
ALTER TABLE test1 ADD (ssn VARCHAR2(11) ENCRYPT);
열에 대한 암호화 비활성화
다음 명령은 열에 대한 암호화를 비활성화합니다.
ALTER TABLE test1 MODIFY (ssn DECRYPT);
TDE 사용 제한
TDE 사용에 대한 다음 제한 사항을 염두에 두십시오.
- 암호화된 열에는 B-트리 이외의 인덱스를 만들 수 없습니다.
- 외부 대형 개체(BFILE)에서는 암호화가 허용되지 않습니다.
- 지갑이 닫혀 있으면 가져오기 또는 내보내기 작업을 수행할 수 없습니다.
지갑이 닫혀서 오류
지갑이 열려 있어서 성공
결론
무단 또는 백도어 액세스로부터 민감한 데이터를 보호해야 하는 경우 TDE 보안 옵션을 사용하십시오. 이 기능을 사용하면 코딩 및 키 관리 복잡성 없이 데이터 암호화 및 규정 준수를 즉시 제공할 수 있습니다. 따라서 보다 전략적인 노력에 집중할 수 있습니다.
피드백 탭을 사용하여 의견을 남기거나 질문을 하십시오.
전문가 관리, 관리 및 구성으로 환경 최적화
Rackspace의 애플리케이션 서비스(RAS) 전문가는 광범위한 애플리케이션 포트폴리오에서 다음과 같은 전문적이고 관리되는 서비스를 제공합니다.
- 전자상거래 및 디지털 경험 플랫폼
- 전사적 자원 관리(ERP)
- 비즈니스 인텔리전스
- Salesforce CRM(고객 관계 관리)
- 데이터베이스
- 이메일 호스팅 및 생산성
우리는 다음을 제공합니다:
- 편향 없는 전문성 :즉각적인 가치를 제공하는 기능에 중점을 두고 현대화 여정을 간소화하고 안내합니다.
- 광신적인 경험 ™:프로세스를 먼저 결합합니다. 기술 두 번째.®전담 기술 지원을 통해 포괄적인 솔루션을 제공하는 접근 방식.
- 타의 추종을 불허하는 포트폴리오 :광범위한 클라우드 경험을 적용하여 올바른 클라우드에서 올바른 기술을 선택하고 배포할 수 있도록 지원합니다.
- 민첩한 전달 :귀하의 여정에서 귀하를 만나고 귀하의 성공에 맞춰 귀하의 성공을 맞춥니다.
시작하려면 지금 채팅하세요.