데이터 보호 API
Data Protection APIDPAPI(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]사용하여 저장된 사용자 자격 증명을 보호합니다.
- Windows 8에서의 이미지 패스워드, PIN 및 지문
- Windows 2000 이후의 파일 시스템 암호화
- SQL Server TDE(Transparent Data Encryption) 서비스 마스터 키 암호화[4]
- Internet Explorer 7(Windows XP에서 사용할 수 있는 스탠드아론 버전 및 Windows Vista 및 Windows Server 2008에서 사용할 수 있는 통합 버전 모두)
- 마이크로소프트 엣지
- Windows 메일 및 Windows Live 메일
- S/MIME 아웃룩
- SSL/TLS용 인터넷 정보 서비스
- 윈도우즈 권한 관리 서비스 클라이언트 v1.1 이상
- EAP/TLS(VPN 인증) 및 802.1x(WiFi 인증)용 Windows 2000 이후
- 저장된 사용자 이름 및[5] 비밀번호용 Windows XP 이후(크레덴셜 매니저라고도 함)
- .NET Framework 2.0 이후(시스템용).보안.암호학.데이터[6] 보호
- 마이크로소프트(MS.자체 호스팅 시 기본적으로 Owin(Katana) 인증(cookie 인증 및 OAuth [7][8]토큰 포함)
레퍼런스
- ^ Bursztein, Elie; Picod, Jean Michel (2010). "Recovering Windows secrets and EFS certificates offline". WoOT 2010. Usenix.
- ^ "Windows Password Recovery - DPAPI Master Key analysis". Passcape.com. Retrieved 2013-05-06.
- ^ Mikhael Felker (December 8, 2006). "Password Management Concerns with IE and Firefox, part one". SecurityFocus.com, Symantec.com. Retrieved 2010-03-28.
- ^ "Encryption Hierarchy". Msdn.microsoft.com. Retrieved 14 October 2017.
- ^ "What's New in Security for Windows XP Professional and Windows XP Home Edition". Technet.microsoft.com. Retrieved 14 October 2017.
- ^ "ProtectedData Class (System.Security.Cryptography)". Msdn2.microsoft.com. Retrieved 14 October 2017.
- ^ "CookieAuthenticationOptions.TicketDataFormat Property (Microsoft.Owin.Security.Cookies)". Retrieved 2015-01-15.
- ^ "OAuthAuthorizationServerOptions.AccessTokenFormat Property (Microsoft.Owin.Security.OAuth)". Retrieved 2018-11-26.