4.7. 속성 암호화 관리


Directory Server는 디렉터리의 중요한 데이터에 대한 액세스를 보호하는 다양한 메커니즘을 제공합니다. 그러나 기본적으로 서버는 데이터베이스에 암호화되지 않은 데이터를 저장합니다. 매우 민감한 정보의 경우 공격자가 데이터베이스에 액세스할 수 있는 잠재적 위험도 상당한 위험이 될 수 있습니다.

관리자는 특성 암호화 기능을 사용하여 데이터베이스에서 암호화된 정부 식별 번호와 같은 중요한 데이터를 사용하여 특정 속성을 저장할 수 있습니다. 접미사에 대해 활성화하면 이러한 속성의 모든 인스턴스인 인덱스 데이터도 데이터베이스의 이 속성에 저장된 모든 항목에 대해 암호화됩니다. 접미사에 대해 속성 암호화를 활성화할 수 있습니다. 전체 서버에 이 기능을 활성화하려면 서버의 각 접미사에 대해 속성 암호화를 활성화해야 합니다. 속성 암호화는 eq사전 인덱싱과 완벽하게 호환됩니다.

중요

입력 고유 이름(DN) 내에서 사용하는 속성은 효율적으로 암호화할 수 없습니다. 예를 들어 uid 특성을 암호화하도록 구성한 경우 값은 항목에서 암호화되지만 DN에는 포함되지 않습니다.

dn: uid=demo_user,ou=People,dc=example,dc=com
...
uid::Sf04P9nJWGU1qiW9JJCGRg==
Copy to Clipboard Toggle word wrap

4.7.1. 키 Directory Server에서 특성 암호화에 사용

속성 암호화를 사용하려면 TLS를 사용하여 암호화된 연결을 구성해야 합니다. Directory Server는 특성 암호화에 서버의 TLS 암호화 키와 동일한 PIN 입력 방법을 사용합니다.

서버는 임의로 생성된 대칭 암호화 키를 사용하여 특성 데이터를 암호화하고 해독합니다. 서버는 서버의 TLS 인증서에서 공개 키를 사용하여 이러한 키를 래핑합니다. 결과적으로 속성 암호화의 효과적인 강도는 서버의 TLS 키의 강도보다 클 수 없습니다.

주의

서버의 개인 키에 액세스하지 않으면 래핑된 사본에서 대칭 키를 복구할 수 없습니다. 따라서 서버의 인증서 데이터베이스를 정기적으로 백업합니다. 키가 손실되면 더 이상 데이터베이스에 저장된 데이터를 암호 해독하고 암호화할 수 없습니다.

4.7.2. 명령줄을 사용하여 속성 암호화 활성화

이 절차에서는 명령줄을 사용하여 userRoot 데이터베이스의 telephoneNumber 특성에 대해 속성 암호화를 활성화하는 방법을 보여줍니다. 절차를 수행한 후 서버는 이 특성의 기존 및 새 값을 AES 암호화합니다.

사전 요구 사항

  • Directory Server에서 TLS 암호화를 활성화했습니다.

프로세스

  1. 사용자Root 데이터베이스를 내보냅니다.

    # dsconf <instance_name> backend export -E userRoot
    Copy to Clipboard Toggle word wrap

    서버는 /var/lib/dirsrv/slapd-instance_name/ldif/ 디렉터리에 있는 LDIF 파일에 내보내기를 저장합니다. E 옵션은 내보내기 중에 이미 암호화된 속성의 암호를 해독합니다.

  2. telephoneNumber 특성에 대해 AES 암호화를 활성화합니다.

    # dsconf <instance_name> backend attr-encrypt --add-attr telephoneNumber dc=example,dc=com
    Copy to Clipboard Toggle word wrap
  3. 인스턴스를 중지합니다.

    # dsctl <instance_name> stop
    Copy to Clipboard Toggle word wrap
  4. LDIF 파일을 가져옵니다.

    # dsctl <instance_name> ldif2db --encrypted userRoot /var/lib/dirsrv/slapd-instance_name/ldif/None-userroot-2022_01_24_10_28_27.ldif
    Copy to Clipboard Toggle word wrap

    --encrypted 매개변수를 사용하면 스크립트가 가져오기 중에 암호화되도록 구성된 속성을 암호화할 수 있습니다.

  5. 인스턴스를 시작합니다.

    # dsctl <instance_name> start
    Copy to Clipboard Toggle word wrap

4.7.3. 웹 콘솔을 사용하여 속성 암호화 활성화

이 절차에서는 웹 콘솔을 사용하여 userRoot 데이터베이스의 telephoneNumber 특성에 대해 속성 암호화를 활성화하는 방법을 보여줍니다. 절차를 수행한 후 서버는 이 특성의 기존 및 새 값을 AES 암호화합니다.

웹 콘솔의 내보내기 및 가져오기 기능은 암호화된 속성을 지원하지 않습니다. 따라서 명령줄에서 다음 단계를 수행해야 합니다.

사전 요구 사항

  • Directory Server에서 TLS 암호화를 활성화했습니다.
  • 웹 콘솔에서 인스턴스에 로그인되어 있습니다.

프로세스

  1. 사용자Root 데이터베이스를 내보냅니다.

    # dsconf <instance_name> backend export -E userRoot
    Copy to Clipboard Toggle word wrap

    서버는 /var/lib/dirsrv/slapd-instance_name/ldif/ 디렉터리에 있는 LDIF 파일에 내보내기를 저장합니다. E 옵션은 내보내기 중에 이미 암호화된 속성의 암호를 해독합니다.

  2. 웹 콘솔에서 Database Suffixes suffix_entry Encrypted Attributes 로 이동합니다.
  3. 암호화할 속성을 입력하고 속성 추가 를 클릭합니다.
  4. 작업 메뉴에서 인스턴스 중지 를 선택합니다.
  5. 명령줄에서 LDIF 파일을 가져옵니다.

    # dsctl <instance_name> ldif2db --encrypted userRoot /var/lib/dirsrv/slapd-instance_name/ldif/None-userroot-2022_01_24_10_28_27.ldif
    Copy to Clipboard Toggle word wrap

    --encrypted 매개변수를 사용하면 스크립트가 가져오기 중에 암호화되도록 구성된 속성을 암호화할 수 있습니다.

  6. 웹 콘솔에서 Actions 메뉴를 열고 Start Instance 를 선택합니다.

4.7.4. 속성 암호화를 활성화한 후 일반 고려 사항

데이터베이스에 이미 있는 데이터에 대한 암호화를 설정한 후 다음 사항을 고려하십시오.

  • 암호화되지 않은 데이터는 서버의 데이터베이스 페이지 풀 백업 파일에 저장할 수 있습니다. 이 데이터를 제거하려면 다음을 수행합니다.

    1. 인스턴스를 중지합니다.

      # dsctl <instance_name> stop
      Copy to Clipboard Toggle word wrap
    2. /var/lib/dirsrv/slapd- <instance_name> /db/guardian 파일을 삭제합니다.

      # rm /var/lib/dirsrv/slapd-<instance_name>/db/guardian
      Copy to Clipboard Toggle word wrap
    3. 인스턴스를 시작합니다.

      # dsctl <instance_name> start
      Copy to Clipboard Toggle word wrap
  • 암호화가 활성화되고 데이터를 성공적으로 가져온 후 암호화되지 않은 데이터로 LDIF 파일을 삭제합니다.
  • Directory Server는 복제 로그 파일을 암호화하지 않습니다. 이 데이터를 보호하려면 암호화된 디스크에 복제 로그를 저장합니다.
  • 서버의 메모리(RAM)의 데이터는 암호화되지 않으며 스왑 파티션에 일시적으로 저장할 수 있습니다. 이 데이터를 보호하려면 암호화된 스왑 공간을 구성합니다.
중요

암호화되지 않은 데이터가 포함된 파일을 삭제하더라도 특정 상황에서 이 데이터를 복원할 수 있습니다.

4.7.5. 속성 암호화에 사용되는 TLS 인증서 업데이트

속성 암호화는 서버의 TLS 인증서를 기반으로 합니다. TLS 인증서를 갱신하거나 교체한 후 속성 암호화가 실패하지 않도록 하려면 다음 절차를 따르십시오.

사전 요구 사항

  • 특성 암호화를 구성했습니다.
  • TLS 인증서는 가까운 시일 내에 만료됩니다.

프로세스

  1. 사용자Root 데이터베이스를 내보냅니다.

    # dsconf <instance_name> backend export -E userRoot
    Copy to Clipboard Toggle word wrap

    서버는 /var/lib/dirsrv/slapd-instance_name/ldif/ 디렉터리에 있는 LDIF 파일에 내보내기를 저장합니다. E 옵션은 내보내기 중에 이미 암호화된 속성의 암호를 해독합니다.

  2. 개인 키 및 CSR(인증서 서명 요청)을 만듭니다. 외부 유틸리티를 사용하여 생성하려면 이 단계를 건너뜁니다.

    • 호스트에 하나의 이름으로만 연결할 수 있는 경우 다음을 입력합니다.

      # dsctl <instance_name> tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization"
      Copy to Clipboard Toggle word wrap
    • 여러 이름으로 호스트에 연결할 수 있는 경우:

      # dsctl <instance_name> tls generate-server-cert-csr -s "CN=server.example.com,O=example_organization" server.example.com server.example.net
      Copy to Clipboard Toggle word wrap

      호스트 이름을 마지막 매개 변수로 지정하면 명령에서 DNS:server.example.com, DNS:server.example.net 항목을 CSR에 사용하여 SAN(Subject Alternative Name) 확장을 추가합니다.

    -s subject 매개변수에 지정된 문자열은 RFC 1485에 따라 유효한 제목 이름이어야 합니다. 제목의 CN 필드가 필요하며 서버의 FQDN(정규화된 도메인 이름) 중 하나로 설정해야 합니다. 명령은 CSR을 /etc/dirsrv/slapd- <instance_name> /Server-Cert.csr 파일에 저장합니다.

  3. 인증서 발급을 받으려면 CSR을 CA(인증 기관)에 제출합니다. 자세한 내용은 CA 설명서를 참조하십시오.
  4. CA에서 발급한 서버 인증서를 NSS 데이터베이스로 가져옵니다.

    • dsctl tls generate-server-cert-csr 명령을 사용하여 개인 키를 생성한 경우 다음을 입력합니다.

      # dsconf <instance_name> security certificate add --file /root/instance_name.crt --name "server-cert" --primary-cert
      Copy to Clipboard Toggle word wrap

      --name _certificate_nickname매개변수에 설정한 인증서의 이름을 기억합니다. 이는 이후 단계에서 필요합니다.

    • 외부 유틸리티를 사용하여 개인 키를 생성한 경우 서버 인증서와 개인 키를 가져옵니다.

      # dsctl <instance_name> tls import-server-key-cert /root/server.crt /root/server.key
      Copy to Clipboard Toggle word wrap

      이 명령을 사용하려면 먼저 서버 인증서의 경로를 지정한 다음 개인 키의 경로를 지정해야 합니다. 이 방법은 항상 인증서의 닉네임을 Server-Cert 로 설정합니다.

  5. CA 인증서를 NSS 데이터베이스로 가져옵니다.

    # dsconf <instance_name> security ca-certificate add --file /root/ca.crt --name "Example CA"
    Copy to Clipboard Toggle word wrap
  6. CA 인증서의 신뢰 플래그를 설정합니다.

    # dsconf <instance_name> security ca-certificate set-trust-flags "Example CA" --flags "CT,,"
    Copy to Clipboard Toggle word wrap

    이렇게 하면 TLS 암호화 및 인증서 기반 인증을 위한 CA를 신뢰하도록 Directory Server가 구성됩니다.

  7. 인스턴스를 중지합니다.

    # dsctl <instance_name> stop
    Copy to Clipboard Toggle word wrap
  8. /etc/dirsrv/slapd- <instance_name> /dse.ldif 파일을 편집하고 해당 속성을 포함하여 다음 항목을 제거합니다.

    • CN=AES,cn=encrypted 특성 키,cn=database_name,cn=ldbm 데이터베이스,cn=plugins,cn=config
    • CN=3DES,cn=encrypted 특성 키,cn=database_name,cn=ldbm 데이터베이스,cn=plugins,cn=config
    중요

    모든 데이터베이스의 항목을 제거합니다. nsSymmetricKey 속성이 포함된 항목이 '/etc/dirsrv/slapd- <instance_name> /dse.ldif 파일에 남아 있으면 Directory Server가 시작되지 않습니다.

  9. LDIF 파일을 가져옵니다.

    # dsctl <instance_name> ldif2db --encrypted userRoot /var/lib/dirsrv/slapd-instance_name/ldif/None-userroot-2022_01_24_10_28_27.ldif
    Copy to Clipboard Toggle word wrap

    --encrypted 매개변수를 사용하면 스크립트가 가져오기 중에 암호화되도록 구성된 속성을 암호화할 수 있습니다.

  10. 인스턴스를 시작합니다.

    # dsctl <instance_name> start
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat