검색

7.6. 암호 정책 설계

download PDF

암호 정책은 지정된 시스템에서 암호를 사용하는 방법을 관리하는 규칙 집합입니다. Directory Server 암호 정책은 암호가 기간, 길이 및 사용자가 암호를 재사용할 수 있는지 여부와 같이 유효한 것으로 간주해야 하는 기준을 지정합니다.

7.6.1. 암호 정책이 작동하는 방식

Directory Server는 세분화된 암호 정책을 지원합니다. 즉 디렉터리 서버는 디렉터리 트리의 모든 지점에서 암호 정책을 정의합니다. Directory Server는 다음 수준에서 암호 정책을 정의합니다.

전체 디렉터리

이러한 정책을 글로벌 암호 정책이라고 합니다. 이 정책을 구성하고 활성화하면 Directory Manager 항목 및 로컬 암호 정책이 활성화된 해당 사용자 항목을 제외하고 디렉터리 내의 모든 사용자에게 이를 적용합니다.

이 정책 유형은 모든 디렉터리 사용자에 대해 공통 단일 암호 정책을 정의할 수 있습니다.

디렉터리의 특정 하위 트리

이러한 정책을 하위 트리 수준 또는 로컬 암호 정책이라고 합니다. 이 정책을 구성하고 활성화하면 Directory Server는 지정된 하위 트리 아래에 있는 모든 사용자에게 적용합니다.

이 정책 유형은 모든 호스팅 회사에 대해 단일 정책을 적용하지 않고 호스팅되는 각 회사에 대해 서로 다른 암호 정책을 지원하는 호스팅 환경에서 유용합니다.

디렉터리의 특정 사용자

이러한 정책을 사용자 수준 또는 로컬 암호 정책이라고 합니다. 이 정책을 구성하고 활성화하면 Directory Server는 지정된 사용자에게만 적용됩니다.

이 정책 유형은 다른 디렉터리 사용자에 대해 다른 암호 정책을 정의할 수 있습니다. 예를 들어 일부 사용자가 암호를 매일 변경하고 일부 사용자는 월간 변경하며 다른 모든 사용자는 6개월마다 암호를 변경하도록 지정합니다.

기본적으로 Directory Server에는 글로벌 암호 정책과 관련된 항목 및 속성이 포함되어 있습니다. 즉, 모든 사용자에게 동일한 정책이 적용됩니다. 하위 트리 또는 사용자에 대한 암호 정책을 설정하려면 하위 트리 또는 사용자 수준에서 추가 항목을 추가하고 cn=config 항목의 nsslapd-pwpolicy-local 속성을 활성화합니다. 이 속성은 스위치 역할을 하며, / off의 암호 정책을 세밀하게 설정합니다.

명령줄 또는 웹 콘솔을 사용하여 암호 정책을 변경할 수 있습니다. 명령줄에서 dsconf pwpolicy 명령은 글로벌 정책을 변경하고 dsconf localpwp 명령은 로컬 정책을 변경합니다. 암호 정책 구성 섹션에서 암호 정책을 설정하는 절차를 확인할 수 있습니다.

암호 정책 확인 프로세스

디렉터리에 추가하는 암호 정책 항목은 Directory Server에서 적용해야 하는 암호 정책의 유형(글로벌 또는 로컬)을 결정합니다.

사용자가 디렉터리에 바인딩하려고 하면 Directory Server에서 사용자 항목에 대해 로컬 정책이 정의되고 활성화되어 있는지 여부를 결정합니다. Directory Server는 다음 순서로 정책 설정을 확인합니다.

  1. Directory Server는 세분화된 암호 정책이 활성화되어 있는지 여부를 결정합니다. 서버는 cn=config 항목에서 nsslapd-pwpolicy-local 속성의 값( 또는 )을 확인합니다. 값이 off 로 설정된 경우 서버는 하위 트리 및 사용자 수준에 정의된 정책을 무시하고 글로벌 암호 정책을 적용합니다.
  2. Directory Server는 하위 트리 또는 사용자에 대해 로컬 정책이 정의되었는지 여부를 결정합니다. 서버는 해당 사용자 항목에서 pwdPolicysubentry 속성을 확인합니다.

    1. 속성이 있는 경우 서버는 사용자에 대해 구성된 로컬 암호 정책을 적용합니다. 항목에 특성이 있지만 값이 비어 있거나 유효하지 않은 경우(예: 존재하지 않는 항목을 가리킵니다) 서버에서 오류 메시지를 기록합니다.
    2. 사용자 항목에 pwdPolicysubentry 속성이 없는 경우 서버는 상단에 도달할 때까지 상위 항목, grandparent 항목 및 기타 상위 수준 항목을 확인합니다.
    3. 상위 수준 항목에서 pwdPolicysubentry 속성을 찾을 수 없는 경우 서버는 글로벌 정책을 적용합니다.
  3. 서버는 사용자 제공 암호를 사용자 디렉터리 항목에 지정된 값과 비교하여 일치하는지 확인합니다. 또한 서버는 암호 정책에서 정의하는 규칙을 사용하여 사용자가 디렉터리에 바인딩하기 전에 암호가 유효한지 확인합니다.

요청을 바인딩하는 것 외에도 userPassword 속성이 요청에 있는 경우 추가 및 수정 작업 중에 암호 정책 확인이 수행됩니다.

userPassword 값을 수정하면 다음 두 가지 암호 정책 설정이 있는지 확인합니다.

  • 암호 최소 사용 기간 정책이 활성화됩니다. 최소 사용 기간 요구 사항이 충족되지 않으면 서버에서 constraintViolation 오류를 반환합니다. 암호 업데이트 작업이 실패합니다.
  • 암호 기록 정책이 활성화됩니다. userPassword 속성의 새 값이 암호 기록에 있거나 현재 암호와 동일한 경우 서버에서 제약 조건Violation 오류를 반환합니다. 암호 업데이트 작업이 실패합니다.

userPassword 값을 추가하고 수정하면 모두 암호 구문에 대해 설정된 암호 정책을 확인합니다.

  • 암호 최소 길이 정책이 활성화됩니다. userPassword 속성의 새 값이 필요한 최소 길이보다 작으면 서버는 constraintViolation 오류를 반환합니다. 암호 업데이트 작업이 실패합니다.
  • 암호 구문 검사 정책이 활성화됩니다. userPassword 의 새 값이 항목의 다른 속성과 동일한 경우 서버는 제약 조건Violation 오류를 반환합니다. 암호 업데이트 작업이 실패합니다.

7.6.2. 암호 정책 속성

서버의 암호 정책을 생성하는 데 사용할 수 있는 특성에 대해 알아봅니다. Directory Server는 cn=config 항목에 암호 정책 속성을 저장하고 dsconf 유틸리티를 사용하여 이러한 설정을 변경할 수 있습니다.

최대 실패 수

이 설정은 암호 정책에서 암호 기반 계정 잠금을 활성화합니다. 사용자가 특정 횟수에 로그인하여 실패하는 경우 관리자가 잠금을 해제할 때까지 Directory Server는 해당 계정을 잠급니다. passwordMaxFailure 구성 매개변수를 사용하여 최대 실패 수를 설정합니다.

Directory Server에는 로그인 시도를 계산하고 로그인 시도가 제한에 도달할 때 계정을 잠그는 두 가지 방법이 있습니다.

  • 번호가 적을 때 Directory Server가 계정을 잠급니다 (n)
  • Directory Server는 개수가 초과된 경우에만 계정을 잠급니다(n+1).

예를 들어 실패 제한이 세 번 시도한 경우 세 번째 실패 시도 (n ) 또는 네 번째 실패 시도 (n+1)에서 계정을 잠글 수 있습니다. n+1 동작은 LDAP 서버의 이전 동작이므로 기존 동작으로 간주됩니다. 최신 LDAP 클라이언트는 더 엄격한 하드 제한을 기대합니다. 기본적으로 Directory Server는 strict 제한(n)을 사용하지만 passwordLegacyPolicy 구성 매개변수에서 레거시 동작을 변경할 수 있습니다.

재설정 후 암호 변경

Directory Server 암호 정책은 사용자가 처음 로그인 후 또는 관리자가 암호를 재설정한 후 암호를 변경해야 하는지 여부를 지정할 수 있습니다. 관리자가 설정한 기본 암호는 일반적으로 사용자 initials, 사용자 ID 또는 회사 이름과 같은 회사 규칙을 따릅니다. 이 규칙이 발견되면 일반적으로 악의적인 행위자가 시스템에 침입하려는 시도에서 사용하는 첫 번째 값입니다. 따라서 관리자가 암호를 재설정한 후 사용자가 암호를 변경해야 합니다.

암호 정책에 대해 이 설정을 구성하는 경우 사용자 정의 암호가 비활성화된 경우에도 암호를 변경해야 합니다. 암호 정책에 필요하지 않거나 사용자가 암호 변경을 허용하지 않는 경우 관리자가 할당한 암호는 명확한 규칙을 따르지 않아야 하며 검색하기 어려울 수 있습니다.

기본 설정에서는 사용자가 암호를 재설정한 후 변경할 필요가 없습니다.

사용자 정의 암호

사용자가 자신의 암호를 변경할 수 있도록 허용하거나 허용하지 않도록 암호 정책을 설정할 수 있습니다. 좋은 암호는 강력한 암호 정책의 키입니다. 좋은 암호는 사전 단어, 가사나 자식의 이름, 달란, 사용자 ID 또는 쉽게 찾을 수 있는 사용자에 대한 기타 정보와 같은 간단한 단어를 사용해서는 안 됩니다(또는 디렉토리 자체에 저장). 좋은 암호에는 문자, 숫자 및 특수 문자의 조합이 포함되어야 합니다. 그러나 편의를 위해 사용자가 쉽게 기억할 수 있는 암호를 사용하는 경우가 많습니다. 결과적으로 일부 기업은 강력한 암호 기준을 충족하고 사용자가 암호를 변경할 수 없는 사용자의 암호를 설정하도록 선택합니다.

사용자에 대한 관리자의 암호 설정에는 다음과 같은 단점이 있습니다.

  • 관리자 시간이 많이 필요합니다.
  • 관리자 지정 암호는 일반적으로 변경하기가 더 어렵기 때문에 사용자가 암호를 아래로 작성할 가능성이 더 많아 검색 위험이 증가합니다.

기본적으로 사용자 정의 암호는 허용됩니다.

암호 만료

암호 정책을 사용하면 사용자가 동일한 암호를 무기한 사용하거나 지정된 시간 후에 암호가 만료되도록 지정할 수 있습니다. 일반적으로 암호가 더 오래 사용할수록 검색될 가능성이 높아집니다. 그러나 암호가 너무 자주 만료되는 경우 사용자가 암호를 기억하는 데 어려움이 있을 수 있으며 암호를 적어 둘 수 있습니다. 일반적인 정책은 30일에서 90일마다 암호가 만료되는 것입니다. 암호 만료가 비활성화된 경우에도 서버는 암호 만료 사양을 기억합니다. 암호 만료가 다시 활성화된 경우 암호가 마지막으로 비활성화되기 전에 설정된 기간 동안만 유효합니다. 예를 들어 90일마다 만료되도록 암호를 구성한 다음 암호 만료를 비활성화하고 다시 활성화하면 기본 암호 만료 기간은 90일로 유지됩니다.

기본적으로 사용자 암호는 만료되지 않습니다.

만료 경고

암호 만료 기간을 설정하는 경우 암호가 만료되기 전에 사용자에게 경고를 보내는 것이 좋습니다.

사용자가 서버에 바인딩되면 Directory Server가 경고를 표시합니다. 암호 만료가 활성화된 경우 기본적으로 디렉터리 서버는 사용자 암호가 만료되기 직전에 LDAP 메시지를 사용하여 사용자에게 경고를 보냅니다. 사용자 클라이언트 애플리케이션에서 이 기능을 지원해야 합니다.

암호 만료 경고에 대한 유효한 범위는 1일에서 2455일 사이입니다.

참고

암호는 Directory Server가 만료 경고를 보낼 때까지 만료되지 않습니다.

유예 로그인 제한

만료된 암호의 유예 기간은 사용자가 암호가 만료된 경우에도 계속 시스템에 로그인할 수 있음을 의미합니다. 일부 사용자가 만료된 암호를 사용하여 로그인할 수 있도록 하려면 암호가 만료된 후 사용자에게 허용되는 유예 로그인 시도 횟수를 지정합니다.

기본적으로 Directory Server는 유예 로그인을 허용하지 않습니다.

암호 구문 확인

암호 구문 검사에서는 암호를 사용하여 특정 기준을 충족하거나 초과하도록 암호 문자열 규칙을 적용합니다. 모든 암호 구문 검사는 하위 트리 또는 사용자별로 전역적으로 적용할 수 있습니다. passwordCheckSyntax 속성은 암호 구문 검사를 관리합니다.

기본 암호 구문에는 최소 8자의 암호 길이가 필요하며 암호에는 간단한 단어가 사용되지 않습니다. 간단한 단어는 사용자 항목의 uid,cn,sn,givenName,ou 또는 mailattributes 에 저장된 모든 값입니다.

또한 다른 암호 구문 적용 양식을 사용하여 암호 구문에 대한 다양한 선택적 카테고리를 제공할 수 있습니다.

  • 암호에 필요한 최소 문자 수(passwordMinLength).
  • 최소 숫자 문자 수(0에서 9 사이의 숫자)입니다(암호MinDigits).
  • 대문자 및 소문자(passwordMinAlphas) 최소 ASCII 알파벳 문자 수입니다.
  • 최소 대문자 ASCII 알파벳 문자 수(passwordMinUppers).
  • 최소 소문자 ASCII 알파벳 문자 수(passwordMinLowers).
  • !@#$ (암호MinSpecials)와 같은 최소 특수 ASCII 문자 수입니다.
  • 최소 8비트 문자 수(passwordMin8bit).
  • aaabbb (passwordMaxRepeats)와 같이 동일한 문자를 즉시 반복할 수 있는 최대 횟수입니다.
  • 암호가 요구하는 최소 문자 수입니다. 범주는 대문자 또는 소문자, 특수 문자, 숫자 또는 8비트 문자(passwordMinCategories)일 수 있습니다.
  • Directory Server는 CrackLib 사전(passwordDictCheck)에 대해 암호를 확인합니다.
  • Directory Server는 암호에 palindrome (passwordPalindrome)이 포함되어 있는지 확인합니다.
  • Directory Server에서는 동일한 카테고리(passwordMaxClassChars)에서 더 연속 문자가 있는 암호를 설정하지 않습니다.
  • Directory Server에서는 특정 문자열(암호BadWords )이 포함된 암호를설정하지 않습니다.
  • Directory Server는 관리자 정의 속성(passwordUserAttributes)에 설정된 문자열이 포함된 암호를 설정하지 않습니다.

구문 카테고리가 많을수록 암호가 강화됩니다.

기본적으로 암호 구문 검사는 비활성화되어 있습니다.

암호 길이

암호 정책에는 사용자 암호에 대한 최소 길이가 필요할 수 있습니다. 일반적으로 더 짧은 암호는 해독하기가 더 쉽습니다. 권장되는 최소 암호 길이는 8자입니다. 크래킹하기가 어려울 만큼 길지만 사용자가 암호를 적어 두지 않고도 암호를 기억할 수 있을 만큼 짧습니다. 이 속성에 유효한 값 범위는 2에서 512자 사이입니다.

기본적으로 서버에는 최소 암호 길이가 없습니다.

암호 최소 기간

암호 정책을 사용하면 사용자가 지정된 시간 동안 암호를 변경하지 못하도록 할 수 있습니다. passwordHistory 속성과 함께 passwordMinAge 속성을 설정하면 사용자가 이전 암호를 재사용할 수 없습니다. 예를 들어 암호 최소 사용 기간(passwordMinAge) 속성이 2일이면 사용자는 단일 세션 중에 암호를 반복적으로 변경할 수 없습니다. 이렇게 하면 이전 암호를 재사용할 수 있도록 암호 기록을 순환하지 못합니다.

passwordMinAge 속성에 유효한 값 범위는 0에서 24855일 사이입니다. 값0(0)은 사용자가 암호를 즉시 변경할 수 있음을 나타냅니다.

암호 내역

Directory Server는 암호 기록에 2~24개의 암호를 저장할 수 있습니다. 암호가 기록에 있는 경우 사용자는 이전 암호로 암호를 재설정할 수 없습니다. 이렇게 하면 사용자가 쉽게 기억할 수 있는 몇 개의 암호를 재사용할 수 없습니다. 또는 암호 기록을 비활성화하여 사용자가 암호를 재사용할 수 있습니다.

암호 기록이 꺼져 있어도 암호는 기록에 남아 있습니다. 암호 기록이 다시 켜지면 암호 기록을 비활성화하기 전에 사용자가 기록에 있는 암호를 재사용할 수 없습니다.

서버는 기본적으로 암호 기록을 유지하지 않습니다.

암호 스토리지 체계

암호 스토리지 스키마는 디렉터리 내에서 Directory Server 암호를 저장하는 데 사용되는 암호화 유형을 지정합니다. Directory Server는 다양한 암호 스토리지 체계를 지원합니다.

암호 기반 키 비활성화 기능 2 (PBKDF2_SHA256, PBKDF2-SHA1, PBKDF2-SHA256, PBKDF2-SHA512)
이는 가장 안전한 암호 스토리지 체계입니다. 기본 스토리지 스키마는 PBKDF2-SHA512입니다.
SSHA, SSHA-256, SSHA-384 및 SSHA-512)
권장 SSHA 스키마는 SSHA-256 또는 그 이상입니다.
CLEAR
즉, 암호화가 없으며 SASL Digest-MD5와 함께 사용할 수 있는 유일한 옵션이므로 SASL을 사용하려면 CLEAR 암호 저장 스키마가 필요합니다. 암호는ACI(액세스 제어 정보) 지침을 사용하여 디렉터리 저장소를 보호할 수 있지만 일반 텍스트 암호를 디렉터리에 저장하는 것은 여전히 좋지 않습니다.
보안 해시 알고리즘(SHA, SHA-256, SHA-384 및 SHA-512)
SSHA보다 안전하지 않습니다.
UNIX CRYPT
이 알고리즘은 UNIX 암호와의 호환성을 제공합니다.
MD5
이 스토리지 스키마는 SSHA보다 덜 안전하지만 MD5가 필요한 레거시 애플리케이션에는 포함되어 있습니다.
Salted MD5
이 스토리지 스키마는 일반 MD5 해시보다 안전하지만 SSHA보다 안전하지는 않습니다. 이 스토리지 스키마는 새 암호와 함께 사용하기 위해 포함되지 않지만 Salted MD5를 지원하는 디렉터리에서 사용자 계정을 마이그레이션하는 데 도움이 됩니다.

암호 마지막 변경 시간

passwordTrackUpdateTime 구성 속성은 Directory Server가 항목에 대한 암호를 마지막으로 업데이트할 때 서버에 타임스탬프를 기록하도록 지시합니다. Directory Server는 암호 변경 시간을 사용자 항목에 pwdUpdateTime 으로 저장합니다. 이는 modifyTimestamp 또는 last Cryostat 운영 속성과 다릅니다.

기본적으로 서버는 암호를 마지막으로 변경한 시간을 저장하지 않습니다.

7.6.3. 복제된 환경에서 암호 정책 설계

Directory Server는 다음과 같이 복제된 환경에서 암호 및 계정 잠금 정책을 적용합니다.

  • 암호 정책은 데이터 공급자에 적용됩니다.
  • 계정 잠금은 복제 설정의 모든 서버에 적용됩니다.

Directory Server는 암호 사용, 계정 잠금 카운터 및 만료 경고 카운터와 같은 디렉터리에 암호 정책 정보를 복제합니다. 그러나 Directory Server는 암호 구문 및 암호 변경 기록과 같은 구성 정보를 복제하지 않습니다. Directory Server는 이 정보를 로컬에 저장합니다.

복제된 환경에서 암호 정책을 구성할 때 다음 사항을 고려하십시오.

  • 모든 복제본은 무제한 암호 만료에 대한 경고를 발행합니다. Directory Server는 각 서버에서 이 정보를 로컬로 유지하므로 사용자가 여러 복제본에 바인딩하면 사용자가 동일한 경고를 여러 번 수신합니다. 또한 사용자가 암호를 변경하는 경우 복제본이 이 정보를 수신하는 데 시간이 걸릴 수 있습니다. 사용자가 암호를 변경한 후 즉시 다시 바인딩하면 복제본이 변경 사항을 등록할 때까지 바인딩이 실패할 수 있습니다.
  • 공급자 및 복제본을 포함한 모든 서버에서 동일한 바인딩 동작이 발생해야 합니다. 각 서버에서 항상 동일한 암호 정책 구성 정보를 생성합니다.
  • 다중 제공 환경에서 계정 잠금 카운터가 예상대로 작동하지 않을 수 있습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.