DPAPI 문제 해결 방법

기술 자료 번역 기술 자료 번역
기술 자료: 309408 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

DPAPI(데이터 보호 API)는 Windows 2000 이상의 운영 체제에서 데이터를 보호해 줍니다. DPAPI는 개인 키, 저장된 자격 증명(Windows XP 이상) 및 운영 체제나 프로그램에서 기밀로 유지하려는 기타 기밀 정보를 보호하는 데 사용됩니다.

DPAPI는 보호하는 기밀 정보를 저장하지는 않습니다. DPAPI는 Windows 2000 및 Windows XP 이상에서 Windows 자격 증명 관리자, 개인 키 저장 메커니즘, 또는 CryptProtectData() 함수와 CryptUnprotectData() 함수를 호출하는 타사 프로그램 같이 DPAPI를 호출하는 프로그램의 데이터를 암호화하고 해독하는 역할만 합니다.

참고 이 기능은 Windows NT 4.0의 Windows 독립 저장소(P-store)에서 제공하는 기능과는 다릅니다. P-store는 기밀 정보를 보호하고 저장하지만 DPAPI에는 저장 기능이 없습니다.
이 문서에서는 DPAPI가 데이터를 보호하는 방법을 기본적인 수준에서 설명합니다. 또한 이 문서에는 여러 가지 경우에 DPAPI 보호 데이터에 대한 액세스 권한을 잃게 되는 것과 관련된 문제 해결 정보도 포함되어 있습니다.

DPAPI 작동 방식에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/windataprotection-dpapi.asp
이 문서에서는 다음 주제를 다룹니다.

추가 정보

중요 DPAPI 데이터 손실 문제를 해결하려면 다음 정보가 필요합니다.
  • 로컬 워크스테이션 버전을 비롯한 특정 보안 환경에서의 DPAPI 작동 방식
  • 워크스테이션이 도메인에 가입되어 있는지 여부
  • 사용자가 도메인의 구성원인지 여부
  • 도메인을 호스팅하는 운영 체제의 버전
DPAPI와 관련된 대부분의 문제는 DPAPI가 Windows NT 4.0 도메인에서 사용될 때 발생합니다. 자세한 내용은 이 문서의 "알려진 문제" 절을 참조하십시오.

DPAPI는 운영 체제의 보안 기능에서 사용자 데이터를 자동으로 보호하는 데 주로 사용됩니다. 타사 프로그램에서도 DPAPI를 사용하여 사용자 데이터를 안전하게 보호할 수 있습니다.

DPAPI에서 보호할 수 있는 항목

DPAPI는 다음 항목을 보호합니다.
  • 웹 페이지 자격 증명(예: 암호)
  • 파일 공유 자격 증명
  • EFS(파일 시스템 암호화), S/MIME 및 기타 인증서와 연결된 개인 키
  • CryptProtectData() 함수를 사용하여 보호되는 프로그램 데이터

예: 인증서 및 개인 키

이 절에서는 DPAPI가 보호하는 기밀 정보와 개인 데이터의 차이점을 설명합니다. 다음 목록에서는 인증서 가져오기 작업 중의 데이터 배치를 설명하고 사용자 개인 저장소의 인증서와 연결된 개인 키를 설명합니다.
  • 인증서는 BLOB로 인코딩되고 다음 파일 위치에 이진 값으로 저장됩니다.
    %Userprofile%\Application Data\Microsoft\SystemCertificates\My\Certificates
  • 레지스트리 키는 로컬 사용자 프로필에 배치됩니다. 이렇게 하면 일반적인 경우 로그온한 사용자만 사용자 인증서에 액세스할 수 있게 됩니다.
  • 기본 Windows 메커니즘에서 인증서는 DPAPI를 통해 보호되지 않습니다. ACL(액세스 제어 목록)은 사용자의 하이브를 로드할 수 있는 사용자와 하이브에 저장된 인증서를 읽을 수 있는 사용자를 정의하는 데 사용됩니다.
  • 인증서와 연결된 개인 키는 DPAPI를 통해 암호화되고 암호화된 형식의 개인 키는 키 컨테이너에 포함되어 사용자 프로필의 다음 폴더에 개별 파일로 저장됩니다.
    • RSA 키의 경우
      %Userprofile%\Application Data\Microsoft\Crypto\RSA\User SID
    • DSA 키의 경우
      %Userprofile%\Application Data\Microsoft\Crypto\DSA\User SID

DPAPI 작동 방식

참고 이 절에서는 이 문서 내용의 명확성을 위해 단순화된 용어 및 개념을 설명합니다. 일부 세부 수준은 설명하지 않습니다. 예를 들어, 이 문서에서는 사용자의 암호에서 파생된 값을 설명하지만 해당 값을 파생시키는 데 사용되는 알고리즘에 대해서는 자세히 설명하지 않습니다. DPAPI 작동 방식에 대한 자세한 내용은 Windows 데이터 보호(영문) 백서를 참조하십시오. 이 백서를 보려면 아래의 Microsoft 웹 사이트를 방문하십시오.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/windataprotection-dpapi.asp
DPAPI는 프로그램 및 다양한 운영 체제 구성 요소에서 사용자의 데이터를 보호하는 데 사용되는 기능입니다. DPAPI 작업은 사용자에게 표시되지 않습니다. DPAPI는 프로그램을 실행하는 사용자의 보안 컨텍스트에서 데이터를 보호합니다.

DPAPI는 마스터 키라는 512비트 의사 난수(pseudo-random number)에서 파생된 값 데이터를 사용하여 기밀 정보를 보호합니다. Windows Server 2003 도메인 컨트롤러에서는 2048비트 RSA 키를 사용합니다. 단, 해당 도메인이 도메인 기능 수준 2 또는 Windows Server 2003 모드에서 실행되는 경우에만 해당됩니다. 각 사용자 계정에는 임의로 생성된 마스터 키가 하나 이상 있습니다. 마스터 키의 개수는 사용자 프로필의 사용 기간에 따라 달라집니다. 마스터 키는 정기적으로 갱신됩니다. 기본적으로 이 값은 90일마다 갱신됩니다.

마스터 키에는 사용자의 모든 기밀 정보를 해독하는 데 필요한 데이터가 들어 있으므로 마스터 키를 보호해야 합니다. 마스터 키는 사용자의 암호에서 파생된 값을 사용하여 보호됩니다. 암호는 사용자만 알고 있는 고유 값입니다. 마스터 키는 실제로 사용자의 암호에서 파생된 값을 사용하여 암호화되므로 이 값과 이 문서에서 설명한 사용자 암호를 서로 바꿔 사용할 수 있습니다.

DPAPI 환경 고려 사항

이 절에서는 DPAPI 보호 동작에 영향을 주는 환경 구성을 설명합니다.

DPAPI 및 필수 프로필

필수 프로필은 읽기 전용 프로필입니다. 따라서 필수 프로필의 로컬 복사본을 업데이트한 내용은 저장되지 않습니다. 예를 들어, 필수 프로필에서는 키 생성이 차단됩니다. DPAPI는 마스터 키를 프로필의 로컬 복사본에 저장하며 정기적으로 새 마스터 키를 만들고 새 마스터 키로 보호되는 기밀 정보에 대한 암호화를 업데이트합니다.

이러한 두 조건이 호환되지 않으므로 필수 프로필을 사용할 경우에는 DPAPI를 통해 기밀 정보를 보호하는 프로그램이 제대로 작동하지 않습니다. DPAPI를 통해 기밀 정보를 보호하며 필수 프로필을 사용할 경우 제대로 작동하지 않는 프로그램에는 EFS(개인 키), 개인 키가 있는 인증서(개인 키) 및 Windows XP 이상의 저장된 자격 증명(자격 증명)이 포함됩니다. 이러한 데이터 형식이나 프로그램을 사용하는 구성은 지원되지 않습니다.

DPAPI 및 로밍 프로필

Active Directory 디렉터리 서비스 도메인에 가입된 사용자 및 컴퓨터의 로밍 프로필에서는 DPAPI가 제대로 작동합니다. 프로필에 저장된 DPAPI 데이터는 로밍 프로필에 저장된 다른 설정이나 파일과 동일하게 작동합니다. DPAPI를 통해 보호되는 기밀 정보는 로그오프 프로세스 동안 중앙 프로필 위치에 업로드되고 사용자가 로그온하면 중앙 프로필 위치에서 다운로드됩니다.

로밍 프로필을 사용할 때 DPAPI가 제대로 작동하기 위해서는 도메인 사용자가 도메인의 한 컴퓨터에만 로그온해야 합니다. 도메인에 있는 다른 컴퓨터에 로그온하려면 먼저 첫 번째 컴퓨터에서 로그오프한 후 두 번째 컴퓨터에 로그온해야 합니다. 사용자가 동시에 여러 컴퓨터에 로그온되어 있으면 DPAPI에서 기존의 암호화된 데이터를 올바르게 해독하지 못하게 될 수 있습니다.

한 컴퓨터의 DPAPI에서 다른 컴퓨터의 마스터 키 및 데이터를 해독할 수 있습니다. 이 기능은 도메인 컨트롤러에서 저장하고 확인하는 사용자 암호가 일치할 때 사용할 수 있습니다. 일반적인 프로세스가 예기치 않게 중단되는 경우 DPAPI에서는 이 문서의 "암호 재설정" 절에 설명된 프로세스를 사용할 수 있습니다.

현재 Windows XP 또는 Windows Server 2003 기반 컴퓨터와 Windows 2000 기반 컴퓨터 사이에서 로밍 프로필을 사용하는 데는 제한이 있습니다. Windows XP 또는 Windows Server 2003 기반 컴퓨터에서 키를 생성하거나 가져온 다음 로밍 프로필에 저장할 경우 Windows 2000 기반 컴퓨터에서 사용자가 로밍 사용자 프로필을 사용하여 로그온하면 DPAPI에서는 이러한 키를 해독할 수 없습니다. 그러나 Windows XP 또는 Windows Server 2003 기반 컴퓨터에서는 Windows 2000 기반 컴퓨터에서 생성된 키를 해독할 수 있습니다.

DPAPI 및 암호 변경

강화된 보안 환경의 사용자는 암호를 정기적으로 변경해야 합니다. 따라서 암호가 변경된 후에 DPAPI에서 사용자의 보호되는 데이터에 대한 액세스 수준을 동일하게 유지할 수 있어야 합니다. Windows 환경에서는 다음 방법을 사용하여 사용자 암호를 변경합니다.
암호 변경
이 방법을 사용하면 암호를 변경하는 동안 사용자의 마스터 키에 대한 액세스 권한이 유지됩니다. 다음과 같이 Active Directory 도메인에서 암호 변경 작업 중에 Winlogon 구성 요소에 의해 DPAPI가 호출되어 다음 작업이 수행됩니다.
  • 암호 변경 작업 중에 DPAPI가 Winlogon으로부터 알림을 받습니다.
  • DPAPI가 사용자의 이전 암호로 암호화된 마스터 키를 모두 해독합니다.
  • DPAPI가 모든 마스터 키를 사용자의 새 암호로 다시 암호화합니다.
암호 재설정(설정)
이 방법은 관리자가 사용자 암호를 강제로 재설정하는 방법입니다. 암호를 재설정하는 작업은 암호를 변경하는 작업보다 복잡합니다. 관리자는 사용자로 로그온되어 있지 않고 사용자의 이전 암호에 대한 액세스 권한이 없으므로 이전 마스터 키를 해독한 후 새 암호로 다시 암호화하는 데 이전 암호를 사용할 수 없습니다.

암호를 재설정하는 경우 사용자의 암호를 재설정되기 전의 마지막 암호로 다시 변경하면 항상 마스터 키에 대한 액세스 권한이 복원되므로 DPAPI에서 보호하는 모든 기밀 정보에 대한 액세스 권한도 복원됩니다. 이는 마스터 키를 해독할 수 없는 경우라도 마스터 키를 삭제할 수는 없기 때문입니다. 그러나 사용자가 이전 암호를 기억하지 못하는 경우도 있을 수 있으므로 이 방법은 안정적인 방법이 아닙니다. 예를 들어, 사용자가 이전 암호를 잊어버려서 사용자 암호를 재설정한 경우도 있을 수 있습니다.

DPAPI에서 암호 재설정 문제를 해결하는 방법은 사용자가 인증된 보안 환경에 따라 다릅니다.

암호 재설정: Windows 2000 이상 도메인의 도메인 사용자

Active Directory 도메인 환경에서 DPAPI가 사용되는 경우, 두 개의 마스터 키 복사본이 만들어져 마스터 키에 대한 작업이 수행될 때마다 업데이트됩니다. 첫 번째 복사본은 이 문서의 앞부분에서 설명한대로 사용자 암호로 보호됩니다. 두 번째 복사본은 도메인의 도메인 컨트롤러와 연결된 공개 키로 암호화됩니다. 이 공개 키와 연결된 개인 키는 Windows 2000 이상의 모든 도메인 컨트롤러에서 알 수 있습니다. Windows 2000 도메인 컨트롤러에서는 대칭 키를 사용하여 마스터 키의 두 번째 복사본을 암호화하고 해독합니다.

사용자 암호가 재설정되고 원본 마스터 키가 사용자가 액세스할 수 없게 렌더링되는 경우 마스터 키에 대한 사용자의 액세스 권한은 다음 과정에 따라 백업 마스터 키를 사용하여 자동으로 복원됩니다.
  • 워크스테이션에서 보호되는 RPC를 통해 암호화된 백업 마스터 키를 Windows 2000 이상의 도메인 컨트롤러에 보냅니다.
  • 도메인 컨트롤러에서 개인 키를 사용하여 사용자의 마스터 키를 해독합니다.
  • 도메인 컨트롤러에서 암호화되지 않은 마스터 키를 워크스테이션에 반환합니다.
  • 워크스테이션에서 사용자의 새 암호를 사용하여 마스터 키를 다시 암호화합니다.
암호 재설정: Windows NT 4.0 도메인

Windows NT 4.0 도메인 사용자의 경우 EFS 또는 개인 키 저장소 같이 DPAPI를 사용할 수 있는 기능을 사용하지 않는 것이 좋습니다. 자세한 내용은 이 문서의 "알려진 문제" 절을 참조하십시오.

암호가 재설정된 후 Windows 2000 기반 클라이언트 컴퓨터에서는 해당 사용자가 작업 그룹에 있을 때와 동일한 방법으로 백업 마스터 키를 사용하여 DPAPI에서 보호하는 기밀 정보에 대한 사용자의 액세스 권한을 자동으로 복원합니다. 이 절차 및 보안 위험에 대한 자세한 내용은 이 문서의 "암호 재설정: 작업 그룹의 Windows 2000 워크스테이션" 절을 참조하십시오.

Windows NT 4.0 도메인의 Windows XP에서는 마스터 키의 백업 복사본을 보관하지 않습니다. 자세한 내용은 이 문서의 "알려진 문제" 절을 참조하십시오.

암호 재설정: 작업 그룹의 Windows 2000 워크스테이션

독립 실행형 컴퓨터에서 DPAPI를 사용하는 경우, 두 개의 마스터 키 복사본이 만들어져 마스터 키에 대한 작업이 수행될 때마다 업데이트됩니다. 첫 번째 복사본은 이 문서의 앞부분에서 설명한대로 사용자 암호로 보호됩니다. 두 번째 복사본은 로컬 컴퓨터 계정만 알 수 있는 기밀 값으로 암호화됩니다.

사용자의 암호가 강제로 재설정된 후 사용자가 새 암호로 로그온하면 Windows 2000에서는 자동으로 컴퓨터에서 암호화한 마스터 키 복사본을 해독하고 새 사용자 암호에서 파생된 값으로 다시 암호화합니다. 사용자 입장에서는 DPAPI로 보호되는 기밀 정보에 대한 사용자의 액세스 권한이 전혀 중단되지 않습니다.

중요 이 동작은 보안에 영향을 줄 수 있습니다. 이와 같은 기본 구성에서는 DPAPI를 사용하지 않는 것이 좋습니다. 실제로 손상될 수 있는 중요한 데이터가 들어 있는 Windows 2000 독립 실행형 컴퓨터의 경우 다음 방법 중 하나를 사용하는 것이 좋습니다.
  • Windows XP로 업그레이드
  • Windows 2000 기반 랩톱에서 SYSKEY 모드 2 또는 3 사용

  • SYSKEY에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    143475 Windows NT 시스템 키가 SAM의 강력한 암호화를 허용한다
암호 재설정: 작업 그룹의 Windows XP 워크스테이션

기본적으로 Window XP에서는 마스터 키의 백업 복사본을 만들지 않습니다. 이는 마스터 키 캐시의 오프라인 공격을 방지하기 위해서입니다. Windows XP에서는 암호 재설정 디스크를 만들 수 있으므로 사용자가 잊어버린 암호를 복구할 수 있습니다. Windows XP 서비스 팩 1(SP1) 이상을 사용하는 경우 Windows에서 마스터 키의 백업 복사본을 보관하도록 레지스트리를 구성할 수 있습니다.
암호 강제 변경의 효과와 가능한 복구에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
290260 암호를 다시 설정한 후에 EFS, 자격 증명 및 인증서의 개인 키를 사용할 수 없다
암호 재설정 디스크

암호 재설정 디스크는 작업 그룹에 가입되어 있고 Windows XP 이상을 기반으로 하는 컴퓨터에서만 사용할 수 있습니다. 암호 복구 디스크를 사용하면 사용자가 해당 사용자 계정과 프로필에서 DPAPI로 보호되는 기밀 정보에 대한 액세스 권한을 다시 얻을 수 있습니다.

암호 재설정 디스크에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
321305 암호를 잊었거나 암호가 만료된 경우에 Windows XP에 로그온하는 방법

알려진 문제

Windows NT 4.0 도메인에서 DPAPI 기밀 정보에 액세스할 수 없다

중요 Windows NT 4.0 도메인 환경에서는 DPAPI를 사용하지 않는 것이 좋습니다.

Windows NT 4.0 도메인의 Windows XP에서는 사용자 마스터 키의 백업 복사본을 만들지 않습니다. 이것이 기본 동작입니다. 사용자가 암호를 변경하거나 재설정하면 해당 사용자 프로필에 포함된 기밀 정보에 대한 액세스가 거부될 수 있습니다. 사용자가 암호를 올바른 이전 암호로 다시 변경해야만 액세스 권한이 복원됩니다.

Windows NT 4.0 도메인에서 DPAPI를 사용할 경우 이 문제는 주로 암호 재설정 또는 로밍 프로필 때문에 발생합니다. 사용자가 최근에 암호를 변경한 경우에는 로밍 프로필 문제가 발생합니다. 다양한 요인으로 인해 일반적인 로밍 사용자 프로필 작업이 중단되고 이에 따라 사용자가 로그온한 프로필이 새 암호로 업데이트(마스터 키 암호화)되지 않을 수 있습니다.

이 문제를 해결하려면 사용자 도메인에 Windows 2000 또는 Windows Server 2003 도메인 컨트롤러를 설치합니다. DPAPI에서는 자동으로 이 도메인 컨트롤러를 찾고 해당 도메인 컨트롤의 DPAPI 공용/개인 키 쌍을 사용하여 백업 및 복원 작업을 수행합니다.

Windows SP1 이상을 사용하는 경우에는 Windows NT4 도메인에 가입되어 있더라도 DPAPI에서 마스터 키의 로컬 백업을 만들도록 지정할 수 있습니다. 그러나 이렇게 하면 변경 사항이 적용되는 컴퓨터의 보안에 영향을 줄 수 있으므로 이 방법은 사용하지 않는 것이 좋습니다.

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
331333 암호 변경 이후나 로밍 프로필을 사용할 때 인증서 기능에 액세스할 수 없다

독립 실행형 컴퓨터에 Windows를 다시 설치한 후 DPAPI 기밀 정보에 액세스할 수 없다

기본적으로 독립 실행형 컴퓨터에 Windows를 설치한 후에는 DPAPI 기밀 정보에 액세스할 수 없습니다. 운영 체제를 업그레이드하지 않고 다시 설치하면 원래 Windows에 있던 사용자 인스턴스가 삭제됩니다. 동일한 이름으로 새 사용자를 만들어도 이 사용자는 다른 보안 데이터베이스의 다른 보안 사용자입니다. 새 사용자에게는 원래 사용자의 DPAPI 기밀 정보를 해독할 수 있는 액세스 권한이 없습니다. 즉, 사용자가 사용자 마스터 키를 사용하여 해당 사용자의 기밀 정보에 액세스할 수 없습니다.

원래 Windows에서는 해당 Windows에서만 알 수 있는 기밀 데이터로 마스터 키의 복사본을 보호합니다. 운영 체제를 바꾸면 이 기밀 데이터에 액세스할 수 없습니다. 즉, 사용자가 백업 마스터 키를 사용하여 해당 사용자의 기밀 정보에 액세스할 수 없습니다.

필수 프로필을 사용하여 DPAPI 기밀 정보를 추가하거나 액세스할 수 없다

기본적으로 Windows 2000 및 Windows XP에서는 초기 세션 후에 데이터가 저장되므로 필수 프로필의 로컬 복사본에 쓰기가 허용되지 않습니다. 따라서 DPAPI에서는 새 마스터 키를 저장하거나, 암호 변경 시 마스터 키를 업데이트하거나, 필수 프로필에 보호되는 데이터를 추가할 수 없습니다.

도메인에 가입 또는 가입 해제한 후 DPAPI 기밀 정보에 액세스할 수 없다

도메인에 가입된 독립 실행형 컴퓨터가 있고 DPAPI 데이터에 대한 액세스 권한을 잃은 경우 로컬 사용자로 로그온하여 액세스 권한을 복원할 수 있습니다. 도메인에 가입된 컴퓨터에 로컬 사용자로 로그온하려면 로그온 대화 상자의 드롭다운 상자에서 로컬 컴퓨터의 이름을 누른 다음 로컬 사용자 이름과 암호를 입력합니다.

도메인에서 컴퓨터의 가입을 해제한 경우에는 도메인에 다시 가입한 다음 동일한 도메인 사용자로 로그온하여 사용자 파일에 대한 액세스 권한을 다시 얻어야 합니다.

지침 및 최상의 방법

  • 강력한 암호를 사용하는 것이 좋습니다. 기억하기 쉬우면서 최대한 어렵고 복잡한 암호를 사용합니다. 암호에 대한 지침은 다음 Microsoft 웹 사이트를 참조하십시오.
    http://www.microsoft.com/ntserver/techresources/security/password.asp
    참고 암호 필터는 현재 DPAPI에서 지원되지 않습니다.
  • 중요한 인증서 및 개인 키를 안전한 위치로 내보내 백업합니다.




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 309408 - 마지막 검토: 2007년 12월 3일 월요일 - 수정: 4.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT 4.0
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
키워드:?
kbinfo KB309408

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com