Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle EBS를 통한 투명한 데이터 암호화

이 블로그에서는 Oracle® E-Business Suite®(EBS) R12 환경에서 TDE(투명한 데이터 암호화) 열 수준 암호화를 설정하는 방법에 대해 설명합니다. 사용자 요구 사항에 따라 단일 열 또는 다중 열 테이블에 열 수준 암호화를 설정할 수 있습니다.

소개

TDE 열 암호화 기능을 사용하여 테이블의 선택된 열을 암호화할 수 있습니다. 암호화가 투명하기 때문에 애플리케이션 코드를 다시 작성할 필요가 없으며 기존 코드를 사용할 수 있습니다. 투명이라는 용어 또한 데이터베이스 세션이 문제 없이 암호화된 데이터를 읽을 수 있음을 의미합니다.

이 블로그의 지침을 따르면 EBS R12 환경에서 TDE 열 수준 암호화를 설정할 수 있습니다.

TDE의 영향

TDE 암호화 구현은 애플리케이션의 다음 측면에 영향을 줄 수 있습니다.

  • 성능:TDE 구현의 특정 제한 사항은 고급 보안 가이드에 설명되어 있습니다. TDE를 구현하기 전에 이것을 검토해야 합니다. 또한 암호화할 열을 선택하면 암호화된 열을 사용하는 DML(데이터 조작 언어) 및 기타 쿼리의 성능에 영향을 미치므로 신중하게 선택해야 합니다.

  • 패치:사용 가능한 EBS 패치, 특히 열에 변경 사항을 적용하고 TDE를 사용하여 암호화되는 패치를 알고 있어야 합니다. 여기에는 암호화된 열에 인덱스 추가와 같은 변경 사항이 포함됩니다.

TDE 제한

TDE 열 암호화는 논리적 대기 모드에서 Streams 또는 DataGuard와 같은 Oracle LogMiner 기반 기술에서 지원되지 않습니다. 이러한 기술을 사용하는 경우 암호화된 열을 복제할 수 없습니다. 그러나 물리적 대기 모드에서 DataGuard를 사용할 때 TDE 암호화가 지원됩니다. 이 경우 다음 이미지와 같이 마스터 키가 포함된 지갑을 기본 서버에서 물리적 대기 서버로 복사해야 합니다.

Oracle EBS를 통한 투명한 데이터 암호화 이미지 출처:https://docs.oracle.com/cd/E11882_01/network.112/e40393/ asotrans.htm#ASOAG9567

TDE 구현 단계

TDE를 구현하려면 다음 단계를 수행하십시오.

  1. 암호화해야 하는 열 및 테이블 목록을 가져옵니다.

  2. 다음 명령을 실행하여 필요한 위치에 지갑 폴더를 만듭니다.

    $ mkdir TDEWallet
    
  3. sqlnet.ora에 필수 항목을 만드십시오. 또는 sqlnet_ifile.ora 다음 줄과 유사:

    [oratactp@odbprod1 tactprd_odbprod1]$ cat sqlnet_ifile.ora
    
  4. Master Key 설정 이전 단계에서 지정한 지갑 위치에 지갑 파일을 생성하는 다음 명령을 사용하여:

    $ Sqlplus  '/as sysdba'
    SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "*****";
    System altered.
    
  5. 패치 7337863 다운로드 및 적용 아직 적용되지 않은 경우

  6. aftdeval.sql 실행 $FND_TOP/sql의 AppsTier에서 다음 예와 같이 암호화해야 하는 테이블 또는 열에 대해:

    SQL> @aftdeval.sql IBY IBY_CREDITCARD CCNUMBER E
    
  7. aftdeval.sql에 의해 생성된 모든 암호화 명령을 실행합니다. .

  8. 다음 명령을 사용하여 암호화된 열을 확인하십시오.

    SQL> SELECT * FROM DBA_ENCRYPTED_COLUMNS;
    
    OWNER      TABLE_NAME                COLUMN_NAME          ENCRYPTION_ALG       SAL INTEGRITY_AL
    ---------- ------------------------- -------------------- -------------------- --- ------------
    IBY        IBY_CREDITCARD            CCNUMBER             AES 192 bits key     NO SHA-1
    
  9. 다음 명령을 사용하여 지갑을 열거나 닫을 수 있습니다.

    SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "****";
    SQL> SELECT * FROM v$encryption_wallet;
    
    SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "****";
    
  10. 자동 로그인을 설정할 수 있습니다. 다음 명령을 사용하여 지갑에 대해:

    $ orapki wallet create -wallet <wallet_location> -auto_login
    

TDE 구현을 위한 제약 조건

다음 제약 조건이 TDE 구현에 적용됩니다.

  • 특정 데이터 유형만 암호화할 수 있습니다.

  • 길이가 3932바이트 미만으로 정의된 열만 암호화할 수 있습니다.

  • 열이 외래 키의 일부이거나 다른 데이터베이스 제약 조건에서 사용되는 경우 암호화할 수 없습니다.

  • 열에 함수 기반 인덱스가 있으면 암호화할 수 없습니다.

  • 열이 인덱싱되고 해당 열에 대해 범위 스캔이 수행되면 열이 암호화된 후 인덱스가 더 이상 사용되지 않습니다. 대신 전체 테이블 스캔이 수행됩니다.

  • 테이블이 분할되고 파티션 또는 하위 파티션이 교환되는 경우 모든 테이블 파티션은 유사하게 암호화되어야 합니다. 다음 표는 현재 이 기준에 맞습니다:

  • EGO_MTL_SY_ITEMS_EXT_B

  • EGO_MTL_SY_ITEMS_EXT_TL

  • WF_LOCAL_ROLES

  • WF_LOCAL_ROLES_STAGE

  • WF_USER_ROLE_ASSIGNMENTS

  • WF_UR_ASSIGNMENTS_STAGE

  • WF_LOCAL_USER_ROLES

  • WF_LOCAL_USER_ROLES_STAGE

  • WF_LOCAL_ROLES_TL

  • WF_LOCAL_ROLES_TL_STAGE

백아웃 계획

열 암호화가 필요하지 않은 경우 백아웃 계획으로 다음 명령을 실행합니다.

SQL> ALTER TABLE IBY.IBY_CREDITCARD modify (CCNUMBER decrypt); << repeat this for all columns/tables which were encrypted.

Comment ENCRYPTION_WALLET_LOCATION from sqlnet_ifile.ora

위의 명령을 실행한 후 환경을 다시 시작하고 완전한 온전성 테스트를 수행하십시오.

결론

열 수준에서 TDE를 구현하면 사용자가 신용 카드 번호나 인사 데이터와 같이 열에 저장된 민감한 데이터를 보지 못하도록 할 수 있습니다. 암호화 후 응용 프로그램 코드를 다시 작성할 필요가 없습니다. 기존 코드를 사용할 수 있으며 데이터베이스 세션에서 문제 없이 암호화된 데이터를 처리할 수 있습니다.

피드백 탭을 사용하여 의견을 남기거나 질문하십시오.

데이터베이스 서비스에 대해 자세히 알아보십시오.