Post

DPAPI(Data Protection API)

DPAPI(Data Protection API)

참고 사이트

1절. DPAPI

DPAPI(데이터 보호 API)

  • Windows 애플리케이션에서 널리 사용되는 기능
  • 관점 별 차이
관점설명
앱개발자가 암호화 알고리즘을 구현하지 않고 민감 데이터 암호화
내부알고리즘은 OS(운영체제)가 담당(Vista 이후 AES-256 + SHA-512)

DPAPI 암호화 : CryptProtectData

UseDPAPI

주요 매개변수설명
*pDataIn암호화할 평문 데이터에 대한 포인터
pOptionalEntropy선택적 2차 비밀값
dwFlags- 암호화 작업 관련 플래그
- 암호화 범위(사용자 or 로컬)에 대한 세부정보 저장
- 사용자 마스터 키 or 로컬 마스터 키 사용 여부 결정
- 로컬 암호화 시 다른 기기에서 복호화 불가
- CRYPTPROTECT_LOCAL_MACHINE(0x4)
=> PC의 모든 사용자, 서비스가 복호화 가능
*pDataOut암호화된 결과에 대한 포인터

DPAPI 복호화 : CryptUnprotectData

UseUDPAPI

주요 매개변수설명
*pDataIn복호화할 암호화된 데이터에 대한 포인터
pOptionalEntropy암호화 시 사용한 경우 복호화 때 필요한 2차 비밀값
dwFlags복호화 시 일반적으로 0 설정
*pDataOut복호화된 평문 데이터에 대한 포인터

DPAPI 중요한 값

BlobDPAPI

값설명
guidMasterKey암호화할 때 사용된 마스터키의 GUID
pbSalt암호화 작업 시 생성된 솔트값
*pbData실제 암호화된 데이터
This post is licensed under CC BY 4.0 by the author.