데이터 보호 API데이터 보호 애플리케이션 프로그래밍 인터페이스(Data Protection Application Programming Interface, DPAPI)는 윈도우 2000 및 이후 버전의 마이크로소프트 윈도우 운영체제에 내장된 구성 요소로 제공되는 간단한 암호화 애플리케이션 프로그래밍 인터페이스이다. 이론적으로 데이터 보호 API는 모든 종류의 데이터를 대칭 암호화할 수 있지만, 실제로는 윈도우 운영체제에서 비대칭 개인 키를 대칭 암호화하는 데 주로 사용되며, 이 때 사용자 또는 시스템 비밀이 엔트로피에 크게 기여한다. DPAPI 내부 작동에 대한 자세한 분석은 2011년 버스츠테인 등이 발표했다.[1] 거의 모든 암호체계에서 가장 어려운 과제 중 하나는 "키 관리"이다. 부분적으로는 복호화 키를 안전하게 저장하는 방법이다. 만약 키가 플레인 텍스트로 저장된다면, 키에 접근할 수 있는 모든 사용자가 암호화된 데이터에 접근할 수 있다. 만약 키를 암호화해야 한다면, 또 다른 키가 필요하며 이는 무한히 반복된다. DPAPI는 개발자가 사용자 로그인 비밀에서 파생된 대칭 키를 사용하여 키를 암호화하거나, 시스템 암호화의 경우 시스템의 도메인 인증 비밀을 사용하여 키를 암호화할 수 있도록 한다. 사용자 RSA 키를 암호화하는 데 사용되는 DPAPI 키는 보안 속성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]
각주
외부 링크
|
Portal di Ensiklopedia Dunia