데이터 보호 API

데이터 보호 애플리케이션 프로그래밍 인터페이스(Data Protection Application Programming Interface, DPAPI)는 윈도우 2000 및 이후 버전의 마이크로소프트 윈도우 운영체제에 내장된 구성 요소로 제공되는 간단한 암호화 애플리케이션 프로그래밍 인터페이스이다. 이론적으로 데이터 보호 API는 모든 종류의 데이터를 대칭 암호화할 수 있지만, 실제로는 윈도우 운영체제에서 비대칭 개인 키를 대칭 암호화하는 데 주로 사용되며, 이 때 사용자 또는 시스템 비밀이 엔트로피에 크게 기여한다. DPAPI 내부 작동에 대한 자세한 분석은 2011년 버스츠테인 등이 발표했다.[1]

거의 모든 암호체계에서 가장 어려운 과제 중 하나는 "키 관리"이다. 부분적으로는 복호화 키를 안전하게 저장하는 방법이다. 만약 키가 플레인 텍스트로 저장된다면, 키에 접근할 수 있는 모든 사용자가 암호화된 데이터에 접근할 수 있다. 만약 키를 암호화해야 한다면, 또 다른 키가 필요하며 이는 무한히 반복된다. DPAPI는 개발자가 사용자 로그인 비밀에서 파생된 대칭 키를 사용하여 키를 암호화하거나, 시스템 암호화의 경우 시스템의 도메인 인증 비밀을 사용하여 키를 암호화할 수 있도록 한다.

사용자 RSA 키를 암호화하는 데 사용되는 DPAPI 키는 %APPDATA%\Microsoft\Protect\{SID} 디렉터리에 저장되며, 여기서 {SID}는 해당 사용자의 보안 식별자이다. DPAPI 키는 사용자의 개인 키를 보호하는 마스터 키와 동일한 파일에 저장된다. 일반적으로 64바이트의 임의 데이터이다.

보안 속성

DPAPI는 자체적으로 영구적인 데이터를 저장하지 않고, 단순히 평문을 받아서 암호문을 반환(또는 그 반대)한다.

DPAPI 보안은 마스터 키와 RSA 개인 키를 손상으로부터 보호하는 윈도우 운영 체제의 능력에 의존하며, 대부분의 공격 시나리오에서 이는 최종 사용자 자격 증명의 보안에 가장 크게 의존한다. 주요 암호화/복호화 키는 PBKDF2 함수에 의해 사용자 암호에서 파생된다.[2] 특정 데이터 바이너리 라지 오브젝트솔트가 추가되거나 외부 사용자 프롬프트 암호(일명 "강력한 키 보호")가 필요한 방식으로 암호화될 수 있다. 솔트 사용은 구현별 옵션으로 – 즉, 애플리케이션 개발자의 통제하에 있으며 – 최종 사용자나 시스템 관리자는 통제할 수 없다.

COM+ 객체를 사용하여 키에 대한 위임된 접근 권한을 부여할 수 있다. 이를 통해 IIS 웹 서버가 DPAPI를 사용할 수 있다.

액티브 디렉터리 백업 키

컴퓨터가 도메인의 구성원일 때, DPAPI는 사용자의 암호가 손실된 경우 데이터 보호를 허용하는 백업 메커니즘을 가지고 있으며, 이를 "자격 증명 로밍"이라고 한다. 도메인 컨트롤러에 새 도메인을 설치할 때, DPAPI와 관련된 공개 및 개인 키 쌍이 생성된다. 클라이언트 워크스테이션에서 마스터 키가 생성될 때, 클라이언트는 인증된 RPC 호출을 통해 도메인 컨트롤러와 통신하여 도메인의 공개 키 사본을 검색한다. 클라이언트는 마스터 키를 도메인 컨트롤러의 공개 키로 암호화한다. 마지막으로, 이 새로운 백업 마스터 키를 기존 마스터 키 저장 방식과 마찬가지로 AppData 디렉터리에 저장한다.

마이크로소프트 소프트웨어의 DPAPI 사용

모든 마이크로소프트 제품에 보편적으로 구현된 것은 아니지만, 마이크로소프트 제품의 DPAPI 사용은 윈도우의 각 후속 버전과 함께 증가했다. 그러나 마이크로소프트 및 타사 개발사의 많은 애플리케이션은 여전히 자체 보호 방식을 선호하거나 최근에야 DPAPI로 전환했다. 예를 들어, 인터넷 익스플로러 4.0~6.0 버전, 아웃룩 익스프레스 및 MSN 익스플로러는 저장된 암호 등 자격 증명을 저장하기 위해 이전 Protected Storage (PStore) API를 사용했다. 인터넷 익스플로러 7은 이제 저장된 사용자 자격 증명을 DPAPI를 사용하여 보호한다.[3]

각주

  1. Bursztein, Elie; Picod, Jean Michel (2010). 〈Recovering Windows secrets and EFS certificates offline〉. 《WoOT 2010》. Usenix. 
  2. “Windows Password Recovery – DPAPI Master Key analysis”. 《Passcape.com》. 2013년 5월 6일에 확인함. 
  3. Mikhael Felker (2006년 12월 8일). “Password Management Concerns with IE and Firefox, part one”. SecurityFocus.com, Symantec.com. 2010년 3월 28일에 확인함. 
  4. “Encryption Hierarchy”. 《Msdn.microsoft.com》. April 2012. 2017년 10월 14일에 확인함. 
  5. “What's New in Security for Windows XP Professional and Windows XP Home Edition”. 《Technet.microsoft.com》. 2009년 9월 11일. 2017년 10월 14일에 확인함. 
  6. “ProtectedData Class (System.Security.Cryptography)”. 《Msdn2.microsoft.com》. 2017년 10월 14일에 확인함. 
  7. “CookieAuthenticationOptions.TicketDataFormat Property (Microsoft.Owin.Security.Cookies)”. 2015년 1월 15일에 확인함. 
  8. “OAuthAuthorizationServerOptions.AccessTokenFormat Property (Microsoft.Owin.Security.OAuth)”. 2015년 10월 27일. 2018년 11월 26일에 확인함. 

외부 링크

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya