열 수준 암호화

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기11분
  • CLE(열 수준 암호화)는 이전에 암호화 지원으로 사용되었으며, 사용자 역할에 따라 암호화된 데이터에 대한 액세스를 허용 및 거부합니다. 열 수준 암호화는 추가 비용 없이 암호화 모듈을 사용하여 기본 키 관리를 포함하도록 향상되었습니다.

    열 수준 암호화 정보

    주:
    이전에 구성된 암호화 컨텍스트는 자동으로 암호화 모듈로 변환됩니다. CLE(Column Level Encryption)는 암호화 지원의 무료 보안 향상입니다. 암호화 옵션에 대한 자세한 내용은 을 참조하십시오 Encryption and Key Management 구독 번들.

    열 수준 암호화의 구현은 Now Platform인스턴스에서 하나 이상의 암호화 모듈을 정의하는 것으로 시작됩니다. 이 프로세스에는 암호화 알고리즘 선택 및 적절한 비밀 키 제공이 포함됩니다. 이 기능을 사용하여 나중에 암호화된 데이터에 대한 접근은 모듈을 역할과 연결하여 역할 기반입니다. 올바른 역할이 없는 사용자는 필드를 전혀 볼 수 없습니다. 그림 1은 역할 기반 암호화의 작동 방식을 보여 줍니다.

    그림 1. 그림 1 - 역할 기반 암호화 예제
    역할 기반 암호화
    그림 1에 나와 있는 관계의 결과는 다음과 같습니다.
    • 사용자 1은 암호화 모듈 1에 대한 액세스를 제공하는 역할 1의 구성원입니다. 사용자 1은 필드 A와 필드 B의 내용을 볼 수 있습니다.
    • 사용자 2와 사용자 3은 그룹 1의 구성원입니다. 그룹 1은 역할 1의 구성원으로, 그룹 1의 모든 사용자가 암호화 모듈 1에 액세스할 수 있도록 하고 사용자 2와 사용자 3이 필드 A와 필드 B의 내용을 볼 수 있도록 합니다.
    • 사용자 4는 그룹 또는 역할의 구성원이 아니며 암호화 모듈 1에 액세스할 수 없습니다. 사용자 4는 필드 A 또는 필드 B에 액세스할 수 없을 뿐만 아니라 사용자 4는 양식에서 이러한 필드를 볼 수도 없습니다. 목록 뷰에서는 값이 비어 있습니다.

    훨씬 더 복잡한 역할 기반 암호화도 구현할 수 있습니다.

    또한 역할을 통해 암호화 모듈이 할당된 사용자가 해당 필드에 액세스할 수 있도록 역할 기반 액세스를 적절하게 구현해야 합니다.

    열 수준 암호화에 사용할 모든 고객 암호화 키는 암호화된 데이터가 저장되는 동일한 고유 인스턴스 데이터베이스에 저장됩니다. 추가 보안 조치로, 해당 인스턴스에 고유한 보조 키를 사용하여 다시 암호화되며, 이를 통해 인스턴스 관리자 또는 ServiceNow.

    열 수준 암호화된 데이터는 필터링할 수 없습니다.

    열 수준 암호화:
    • 암호화된 데이터에 대한 액세스는 사용자 역할에 따라 결정됩니다.
    • 암호화 알고리즘의 강도를 AES-128 또는 AES-256 중에서 선택할 수 있습니다.
    • 문자열 텍스트, 날짜 및 날짜/시간 필드, 첨부 파일 및 URL을 암호화할 수 있습니다.
    • 암호화 모듈은 동일성 유지 암호화를 제공합니다.
    열 수준 암호화 엔터프라이즈 는 다음과 같은 추가 기능을 지원합니다.
    • 고객이 제공한 키입니다.
    • 키 액세스를 사용하면 모듈에 대한 액세스 권한이 있는 사용자 세션을 사용할 수 있으며 키는 다른 백엔드 또는 시스템 사용자 프로세스에 액세스할 수 있습니다.
    • 스크립트, 자원 교환및 앱 접근
    • 고급 첨부 파일 지원.
    • API(Application Programming Interface) 액세스를 사용할 수 있습니다.
    • 순서 유지 암호화 또는 표준 비결정적 암호화는 지원되지 않습니다.

    Standard 및 Enterprise 버전

    Column Level Encryption은 표준 및 엔터프라이즈 버전에서 사용할 수 있습니다. Column Level Encryption Enterprise는 추가 기능과 더 많은 수의 모듈 및 모듈 액세스 정책을 제공하는 유료 플러그인입니다.

    표 1. 버전별 열 수준 암호화 기능
    열 수준 암호화 Column Level Encryption Enterprise
    • 암호화된 데이터에 대한 액세스는 사용자 역할에 따라 결정됩니다.
    • 최대 5개의 모듈 및 모듈 액세스 정책(MAP) 지원
    • AES-128 및 AES-256 암호화 알고리즘
    • 문자열 텍스트, 날짜 및 날짜/시간 필드, 첨부 파일 및 URL에 대한 암호화입니다.
    • 암호화 모듈은 동일성 유지 암호화를 제공합니다.
    • 일반 텍스트 값을 반환하고 암호화된 필드에 암호화된 데이터를 삽입할 수 있는 getDisplayValue()setDisplayValue() API가 업데이트되었습니다.

    왼쪽에 나열된 기능 외에도 Column Level Encryption Enterprise는 다음과 같은 추가 기능을 지원합니다.

    • 5개 이상의 모듈 및 모듈 액세스 정책(MAP) 지원
    • 저널, HTML 및 번역된 필드와 같은 추가 필드 유형에 대한 암호화.
    • 구성 가능한 자동 키 회전.
    • 고객이 제공한 키입니다. 데이터 암호화 키의 전체 키 수명 주기를 관리합니다. 필요에 따라 환경 내에서 생성된 데이터 암호화 키를 안전하게 교환할 수 있습니다.
    • 임시 암호화 키
    • getValue()setValue() API가 업데이트되었습니다.
    이 제품의 엔터프라이즈 버전에 대한 자세한 내용은 다음을 참조하십시오. Column Level Encryption Enterprise

    암호화 방법

    열 수준 암호화를 사용하는 필드에는 다음이 포함될 수 있습니다.

    • 새 또는 기존 암호화된 텍스트 필드.
    • 암호화된 필드 구성 기록에 포함된 문자열, 날짜, 날짜/시간 또는 URL 필드입니다.

    암호화된 필드 구성 테이블 [sys_platform_encryption_configuration]에는 열 수준 암호화로 암호화된 각 필드에 대한 기록이 들어 있습니다. 이 테이블을 사용하면 보안 관리자가 열 수준 암호화를 사용하는 인스턴스의 모든 필드를 모니터링할 수 있습니다.

    주:
    업그레이드 시, 기존의 모든 암호화된 텍스트 필드에 대해 암호화된 필드 구성 기록이 생성됩니다. 새 암호화된 텍스트 필드가 추가되면 기본적으로 암호화된 필드 구성 기록이 생성됩니다.

    암호화된 필드 구성은 다음 방법 중 하나를 사용하여 필드를 암호화할 수 있습니다.

    방법 설명
    단일 암호화 모듈 필드는 암호화 모듈 필드에 정의된 암호화 방법으로 암호화됩니다. 암호화된 모듈 액세스 권한이 없는 사용자는 필드 값을 보거나 업데이트할 수 없습니다.
    다중 암호화 모듈 필드는 해당 필드에 데이터를 입력하는 첫 번째 사용자의 암호화 모듈로 암호화됩니다. 사용자에게 두 개 이상의 암호화 모듈이 있는 경우 암호화 모듈 선택기에 정의된 모듈이 사용됩니다. 암호화 모듈은 기록별로 설정되기 때문에 목록의 필드에는 서로 다른 암호화 모듈이 있을 수 있습니다. 그러나 단일 기록 내에서 필드는 하나의 모듈로만 암호화할 수 있습니다.
    암호화된 텍스트 필드가 생성되면 다중 암호화 모듈 방법으로 암호화된 필드 구성이 생성됩니다. 암호화된 텍스트 필드와 다중 암호화 모듈 방법으로 암호화된 필드는 동일하게 작동합니다.
    주:
    다중 암호화 모듈 방법을 사용하는 경우에는 대량 암호화를 사용할 수 없습니다.

    암호화된 데이터에 대한 액세스

    암호화 모듈은 암호화된 데이터에 대한 액세스를 결정합니다. Security_admin 사용자는 사용자에게 관련 역할을 부여하여 암호화 모듈 액세스 정책을 사용자에게 제공할 수 있습니다.

    역할 할당을 모니터링하기 위해 고객 또는 전문 서비스 부서에서 보안 조치를 설정할 수 있습니다. 예를 들어, 암호화 모듈과 관련된 역할이 사용자에게 부여될 때마다 지정된 암호화 관리자에게 이메일을 보낼 수 있습니다.

    주:
    가장은 사용자가 사용할 수 있는 암호화 모듈을 변경하지 않습니다. 가장하는 동안에도 원래 사용할 수 있는 암호화 모듈만 있습니다. 이 기능은 에서 소개되었습니다 Vancouver.
    접근 수준 단일 암호화 모듈 방법을 사용한 필드로의 데이터 접근 다중 암호화 모듈 방법을 사용한 필드로의 데이터 접근
    암호화 모듈이 없는 사용자 양식이 암호화된 필드를 숨깁니다. 목록 보기에서 필드는 비어 있는 것으로 표시되며 필드의 데이터가 해독되더라도 편집할 수 없습니다. 양식이 암호화된 필드를 숨깁니다. 목록 보기에서 필드는 비어 있는 것으로 표시되며 필드의 데이터가 해독되더라도 편집할 수 없습니다.
    암호화 모듈이 하나인 사용자 이 필드를 사용하려면 사용자가 암호화된 필드 구성에 정의된 암호화 모듈에 액세스할 수 있어야 합니다. 사용자에게 암호화 모듈에 대한 액세스 권한이 없는 경우 양식에서 필드가 숨겨집니다. 목록 뷰에서 필드는 비어 있는 것으로 표시되며 편집할 수 없습니다.
    • 필드에 데이터가 없는 경우:
      • 사용자가 암호화 모듈에 액세스할 수 있는 경우 양식에 필드가 표시됩니다(UI 정책이 이를 금지하지 않는다고 가정).
      • 암호화 모듈에 대한 액세스 권한이 있는 사용자는 빈 필드를 보고 업데이트할 수 있습니다.
      • 필드에 입력된 데이터는 암호화된 필드 구성에 정의된 암호화 모듈로 암호화됩니다.
    • 필드에 데이터가 있는 경우: 사용자가 암호화 모듈에 접근할 수 있는 경우 사용자는 필드에서 데이터를 보고 편집할 수 있습니다.
    사용자는 암호화된 필드와 함께 암호화 모듈을 자동으로 사용합니다.
    • 필드에 데이터가 없는 경우:
      • 양식에 필드가 표시됩니다(UI 정책에 의해 차단되지 않는다고 가정).
      • 암호화 모듈을 가진 사용자는 빈 필드를 보고 업데이트할 수 있습니다.
      • 필드에 데이터를 입력하면 필드가 현재 선택된 암호화 모듈을 사용하여 데이터를 암호화합니다.
    • 필드에 데이터가 있는 경우: 사용자가 필드를 암호화하는 데 사용되는 암호화 모듈에 접근할 수 있는 경우 사용자는 필드를 보고 편집할 수 있습니다.
    두 개 이상의 암호화 모듈을 가진 사용자 필드를 사용하려면 사용자에게 암호화된 필드 구성에 정의된 암호화 모듈에 대한 액세스 권한이 있어야 합니다. 사용자에게 암호화 모듈에 대한 액세스 권한이 없는 경우 양식이 필드를 숨깁니다. 목록 뷰에서 필드는 비어 있는 것으로 표시되며 편집할 수 없습니다.
    • 필드에 데이터가 없는 경우:
      • 사용자가 암호화 모듈에 액세스할 수 있는 경우 양식에 필드가 표시됩니다(UI 정책이 이를 금지하지 않는다고 가정).
      • 암호화 모듈에 대한 액세스 권한이 있는 사용자는 빈 필드를 보고 업데이트할 수 있습니다.
      • 필드에 입력된 데이터는 암호화된 필드 구성에 정의된 암호화 모듈로 암호화됩니다.
    • 필드에 데이터가 있는 경우:
      • 사용자가 암호화 모듈에 액세스할 수 있는 경우 해당 사용자는 필드를 보고 편집할 수 있습니다.
      • 필드는 항상 원래 암호화 모듈을 사용하여 필드의 변경 내용을 암호화합니다. 이 동작을 통해 두 개 이상의 암호화 모듈을 가진 사용자가 필드의 암호화 모듈을 변경하지 못하도록 방지할 수 있습니다.
    사용자는 시작 표시줄의 암호화 모듈 선택기에서 암호화 모듈을 선택할 수 있습니다.
    • 필드에 데이터가 없는 경우:
      • 양식에 필드가 표시됩니다(UI 정책이 이를 금지하지 않는다고 가정). 암호화 모듈을 가진 사용자는 빈 필드를 보고 업데이트할 수 있습니다.
      • 필드에 데이터를 입력하면 필드가 현재 선택된 암호화 모듈을 사용하여 데이터를 암호화합니다.
      • 필드는 항상 원래 암호화 모듈을 사용하여 필드의 변경 내용을 암호화합니다. 이 동작을 통해 두 개 이상의 암호화 모듈을 가진 사용자가 필드의 암호화 모듈을 변경하지 못하도록 방지할 수 있습니다.
    • 필드에 데이터가 있는 경우:
      • 사용자가 필드를 암호화하는 데 사용되는 암호화 모듈에 액세스할 수 있는 경우 사용자는 필드를 보고 편집할 수 있습니다.
      • 필드는 원래 암호화 모듈을 사용하여 필드의 변경 내용을 암호화합니다. 이 동작을 통해 여러 암호화 모듈을 가진 사용자가 필드의 암호화 모듈을 변경하지 못하도록 할 수 있습니다.

    지원되는 구성 정보

    • 암호화할 수 있는 필드 유형은 다음과 같습니다.
      • 첨부 파일
      • 날짜
      • 날짜/시간
      • 문자열 텍스트
      • URL
      주:
      Enterprise에서는 더 많은 필드 유형을 사용할 수 있습니다. 자세한 내용은 Column Level Encryption Enterprise 문서를 참조하십시오.
    • 모듈은 역할에 연결되어 있고 역할은 사용자에게 연결되어 있기 때문에 사용자가 아닌 세션의 키에 액세스할 수 없습니다. 시스템 사용자 또는 사용자 세션이 없는 예약된 작업으로 실행되는 모든 항목은 키에 액세스하여 데이터를 암호화하거나 해독할 수 없습니다.
    • "값" 또는 "표시 값"에 액세스할 수 있습니다.
      • "값"을 선택하면 암호문이 반환됩니다.
      • "표시 값"을 선택하면 올바른 역할이 있는 경우 일반 텍스트가 반환됩니다.

      응용 프로그램 계층의 많은 스크립트는 이러한 구분을 무시하고 값을 사용하는 방식으로 스크립팅됩니다. 표시 값을 사용하도록 스크립트를 변경하지 않으면 데이터가 암호화되거나 암호 해독되지 않습니다.

    첨부 파일 암호화

    기본적으로 첨부 파일 암호화

    Column Level Encryption을 사용하는 고객은 활성 EFC(암호화된 필드 구성) 유형 Attachment이 있는 테이블에서 기본적으로 암호화된 첨부 파일을 가지고 있습니다.

    EFC 구성에 의해 정의된 이 기본 암호화는 관리자가 이러한 테이블의 업로드 시 첨부 파일을 수동으로 암호화해야 한다고 선언할 필요가 없음을 의미합니다.

    기본 암호화 옵트아웃

    EFC 구성에 따라 기본적으로 첨부 파일을 암호화하지 않으려면 지원팀에 문의하여 이 옵션을 옵트아웃할 수 있습니다.

    이 기능을 옵트아웃하려면 지원하는 지원 케이스를 생성하고 케이스 기록에 대한 코멘트에 다음 진술을 포함합니다.

    "본인(고객 이름)은(는) 첨부 파일에 대한 권장 보안 모범 사례를 해제하도록 요청하고 있으며 [고객 회사]가 애플리케이션에서 암호화되지 않은 첨부 파일의 구성 및 사용과 관련된 추가 위험을 부담한다는 것을 이해합니다."

    암호화된 필드 필터링 및 검색

    암호화된 텍스트 필드 또는 암호화된 필드 구성이 적용된 필드를 필터의 왼쪽 피연산자로 선택하면 다음 연산자를 사용할 수 있습니다.
    • is
    • 일치하지 않음
    • 비어 있음
    • 비어 있지 않음

    날짜 필드의 경우 날짜 선택기를 사용하여 날짜를 지정합니다.

    날짜 선택기

    날짜/시간 필드의 경우 날짜 및 시간 선택기를 사용하여 날짜와 시간을 지정합니다.

    날짜/시간 선택기

    암호화 모듈을 사용하는 사용자가 같음 여부를 필터링하거나 목록에서 값을 검색하는 경우:

    • 사용자가 사용할 수 있는 암호화 모듈로 암호화된 값만 반환됩니다.
    • 연산자 가 비어 있고비어 있지 않으면 일치하는 모든 레코드를 반환합니다. 현재 사용자가 사용할 수 없는 암호화 모듈로 암호화된 필드는 비어 있는 것으로 나타납니다.

    사용자에게 암호화 모듈이 없는 경우 기록이 반환되지 않습니다.

    일치 표시필터링 옵션은 목록에서 지원됩니다. 정확히 일치하는 항목만 반환되거나 필터링됩니다.

    주:
    조건 필터에 암호화된 필드를 추가하는 것은 UI 정책 및 비즈니스 규칙과 같은 스크립트에서 지원됩니다.

    암호화된 필드에서 데이터 내보내기

    목록이나 양식의 암호화된 필드를 파일 형식으로 익스포트할 때, 암호화 모듈로 암호화된 필드만 익스포트된 문서에 나타납니다. 사용된 암호화 모듈은 현재 사용자가 사용할 수 있어야 합니다.

    목록 뷰에서 암호화된 데이터 익스포트를 비활성화하려면 시스템 속성을 추가하고 glide.encryption.export_encrypted_data.allowed 값을 false로 설정합니다.

    시스템 테이블의 암호화

    열 수준 암호화는 현재 시스템 테이블( sys_로 시작하는 테이블)의 필드 및 첨부 파일 암호화를 지원하지 않습니다.