데이터 보호 API

Data Protection API

DPAPI(Data Protection Application Programming Interface)Windows 2000 이후 버전Microsoft Windows 운영 체제에서 기본 제공 구성 요소로 사용할 수 있는 단순한 암호화 애플리케이션 프로그래밍 인터페이스입니다.이론적으로 Data Protection API는 모든 종류의 데이터를 대칭적으로 암호화할 수 있습니다.실제로 Windows 운영체제에서는 비대칭 개인키를 대칭적으로 암호화하여 사용자 또는 시스템 비밀을 엔트로피의 중요한 요인으로 사용합니다.DPAPI 내부 구조에 대한 자세한 분석은 Bursztein [1]등에 의해 2011년에 발표되었다.

거의 모든 암호 시스템에서 가장 어려운 과제 중 하나는 암호 해독 키를 안전하게 저장하는 방법인 "키 관리"입니다.키가 일반 텍스트로 저장된 경우 키에 액세스할 수 있는 모든 사용자가 암호화된 데이터에 액세스할 수 있습니다.키를 암호화하려면 다른 키가 필요합니다.DPAPI를 사용하면 개발자는 사용자의 로그온 비밀에서 파생된 대칭 키를 사용하여 키를 암호화할 수 있습니다.또한 시스템 암호화의 경우 시스템의 도메인 인증 비밀을 사용하여 키를 암호화할 수 있습니다.

사용자의 RSA 키를 암호화하는 데 사용되는 DPAPI 키는 다음 위치에 저장됩니다.%APPDATA%\Microsoft\Protect\{SID}디렉토리. 여기서 {SID}는 해당 사용자의 보안 식별자입니다.DPAPI 키는 사용자의 개인 키를 보호하는 마스터 키와 동일한 파일에 저장됩니다.보통 64바이트의 랜덤 데이터입니다.

보안 속성

DPAPI는 영속적인 데이터를 저장하지 않습니다.대신 평문을 수신하여 암호문을 반환할 입니다(또는 그 반대).

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

COM+ 개체를 사용하여 키에 위임된 액세스 권한을 부여할 수 있습니다.이것에 의해, IIS Web 서버가 DPAPI 를 사용할 수 있게 됩니다.

Microsoft 소프트웨어에 의한 DPAPI 사용

모든 Microsoft 제품에서 보편적으로 구현되는 것은 아니지만, Windows 버전이 연속될 때마다 Microsoft 제품의 DPAPI 사용이 증가하고 있습니다.그러나 마이크로소프트 및 타사 개발자의 많은 애플리케이션은 여전히 자체 보호 방식을 사용하거나 최근에야 DPAPI를 사용하도록 전환했습니다.예를 들어 Internet Explorer 버전 4.0-6.0, Outlook Express 및 MSN Explorer에서는 오래된 PSTORE(Protected Storage) API를 사용하여 암호 등의 저장된 자격 증명을 저장합니다.이제 Internet Explorer 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. Retrieved 2013-05-06.
  3. ^ Mikhael Felker (December 8, 2006). "Password Management Concerns with IE and Firefox, part one". SecurityFocus.com, Symantec.com. Retrieved 2010-03-28.
  4. ^ "Encryption Hierarchy". Msdn.microsoft.com. Retrieved 14 October 2017.
  5. ^ "What's New in Security for Windows XP Professional and Windows XP Home Edition". Technet.microsoft.com. Retrieved 14 October 2017.
  6. ^ "ProtectedData Class (System.Security.Cryptography)". Msdn2.microsoft.com. Retrieved 14 October 2017.
  7. ^ "CookieAuthenticationOptions.TicketDataFormat Property (Microsoft.Owin.Security.Cookies)". Retrieved 2015-01-15.
  8. ^ "OAuthAuthorizationServerOptions.AccessTokenFormat Property (Microsoft.Owin.Security.OAuth)". Retrieved 2018-11-26.

외부 링크