암호화

이 문서는 UWP(Universal Windows Platform) 앱에 사용할 수 있는 암호화 기능에 대한 개요를 제공합니다. 특정 작업에 대한 자세한 정보를 보려면, 이 문서의 끝에 있는 테이블을 참조하세요.

용어

다음의 용어는 일반적으로 암호화 및 PKI(공개 키 인프라)에서 사용됩니다.

용어 설명
암호화 암호화 알고리즘 및 키를 사용하여 데이터를 변환하는 프로세스입니다. 변환된 데이터는 동일한 알고리즘과 동일한(대칭) 또는 관련(공개) 키를 사용해야만 복구할 수 있습니다.
암호 해독 암호화된 데이터를 원래 형식으로 반환하는 프로세스입니다.
일반 텍스트 원래 암호화되지 않은 문자 메시지를 참조했습니다. 현재 암호화되지 않은 모든 데이터를 참조합니다.
암호 텍스트 원래 암호화되었으므로 읽을 수 없는 문자 메시지라고 합니다. 현재 암호화된 모든 데이터를 참조합니다.
해시 가변 길이 데이터를 고정 길이(일반적으로 더 작은 값)로 변환하는 프로세스입니다. 해시를 비교하면, 둘 이상의 데이터가 동일하다는 합리적인 보증을 얻을 수 있습니다.
서명 일반적으로 데이터 발신자를 인증하거나 전송 중에 데이터가 변조되지 않았는지 확인하는 데 사용되는 디지털 데이터의 암호화된 해시입니다.
알고리즘 데이터를 암호화하기 위한 단계별 절차입니다.
데이터를 암호화하고 해독하기 위해 암호화 알고리즘에 대한 입력으로 사용되는 임의 또는 의사 난수입니다.
대칭 키 암호화 암호화 및 암호 해독이 동일한 키를 사용하는 암호화입니다. 이를 비밀 키 암호화라고도 합니다.
비대칭 키 암호화 암호화 및 암호 해독이 서로 다르지만 수학적으로 관련된 키를 사용하는 암호화입니다. 이를 공개 키 암호화라고도 합니다.
인코딩 네트워크를 통해 전송하기 위해 인증서를 포함한 디지털 메시지를 인코딩하는 프로세스입니다.
알고리즘 공급자 암호화 알고리즘을 구현하는 DLL입니다.
키 스토리지 공급자 키 자료를 저장하기 위한 컨테이너입니다. 현재, 키를 소프트웨어, 스마트 카드 또는 TPM(신뢰할 수 있는 플랫폼 모듈)에 저장할 수 있습니다.
X.509 인증서 일반적으로 인증 기관에서 발행한 디지털 문서는 다른 이해 관계자에게 개인, 시스템 또는 엔터티의 ID를 확인합니다.

 

네임스페이스

다음의 앱에서 사용할 수 있는 네임스페이스입니다.

Windows.Security.Cryptography

다음을 수행할 수 있는 CryptographicBuffer 클래스 및 정적 메서드를 포함합니다.

  • 문자열로 및 문자열에서 데이터 변환하기
  • 바이트 배열로 및 바이트 배열에서 데이터 변환하기
  • 네트워크 전송을 위해 메시지 인코딩하기
  • 전송 후 메시지 디코딩하기

Windows.Security.Cryptography.Certificates

다음을 수행할 수 있는 클래스, 인터페이스 및 열거형 형식을 포함합니다.

  • 인증서 요청 만들기
  • 인증서 응답 설치하기
  • PFX file에서 인증서 가져오기
  • 인증서 요청 속성 지정 및 검색하기

Windows.Security.Cryptography.Core

다음을 수행할 수 있는 클래스 및 열거형 형식을 포함합니다.

  • 데이터 암호화 및 암호 해독하기
  • 데이터 해시하기
  • 데이터 서명하기 및 서명 확인하기
  • 키 만들고, 가져오고 내보내기
  • 비대칭 키 알고리즘 공급자와 작업하기
  • 대칭 키 알고리즘 공급자와 작업하기
  • 해시 알고리즘 공급자와 작업하기
  • MAC(머신 인증 코드) 알고리즘 공급자와 작업하기
  • 키 파생 알고리즘 공급자와 작업하기

Windows.Security.Cryptography.DataProtection

다음을 수행할 수 있는 클래스를 포함합니다.

  • 정적 데이터를 비동기적으로 암호화하기 및 암호 해독하기
  • 데이터 스트림을 비동기적으로 암호화하기 및 암호 해독하기

암호화 및 PKI 애플리케이션 기능

앱에 사용할 수 있는 간소화된 애플리케이션 프로그래밍 인터페이스를 사용하면, 다음과 같은 PKI(암호화 및 공개 키 인프라) 기능을 사용할 수 있습니다.

암호화 지원

다음의 암호화 작업을 수행할 수 있습니다. 자세한 정보를 보려면, Windows.Security.Cryptography.Core 네임스페이스를 참조하세요.

  • 대칭 키 만들기
  • 대칭 암호화 수행하기
  • 비대칭 키 만들기
  • 비대칭 암호화 수행하기
  • 암호 기반 키 파생하기
  • MAC(메시지 인증 코드) 만들기
  • 콘텐츠 해시하기
  • 콘텐츠 디지털 서명하기

또한 SDK는 암호 기반 데이터 보호를 위해 간소화된 인터페이스를 제공합니다. 이를 사용하여 다음의 작업을 수행할 수 있습니다. 자세한 정보를 보려면, Windows.Security.Cryptography.DataProtection 네임스페이스를 참조하세요.

  • 정적 데이터의 비동기 보호
  • 데이터 스트림의 비동기 보호

인코딩 지원

앱은 네트워크를 통해 전송하기 위해 암호화 데이터를 인코딩하고 네트워크 원본에서 받은 데이터를 디코딩할 수 있습니다. 자세한 정보를 보려면, Windows.Security.Cryptography 네임스페이스에서 사용할 수 있는 정적 메서드를 참조하세요.

PKI 지원

앱은 다음의 PKI 작업을 수행할 수 있습니다. 자세한 정보를 보려면, Windows.Security.Cryptography.Certificates 네임스페이스를 참조하세요.

  • 인증서 만들기
  • 자체 서명된 인증서 만들기
  • 인증서 응답 설치하기
  • PFX 형식으로 인증서 가져오기
  • 스마트 카드 인증서 및 키 사용하기(sharedUserCertificates 기능 집합)
  • 사용자의 내 저장소의 인증서 사용하기(sharedUserCertificates 기능 집합)

또한 매니페스트를 사용하여 다음의 작업을 수행할 수 있습니다.

  • 애플리케이션별 신뢰할 수 있는 루트 인증서 지정하기
  • 애플리케이션 피어 신뢰할 수 있는 인증서당 지정하기
  • 시스템 신뢰에서 상속을 명시적으로 사용하지 않도록 설정하기
  • 인증서 선택 조건 지정하기
    • 하드웨어 인증서만
    • 지정된 발급자 집합을 통해 연결된 인증서
    • 애플리케이션 저장소에서 인증서 자동 선택하기

자세한 문서

다음의 문서는 보안 시나리오에 대한 자세한 정보를 제공합니다.

토픽 설명
인증서 이 문서는 UWP 앱에서 인증서를 사용하는 방법에 대해 설명합니다. 디지털 인증서는 공개 키를 사람, 컴퓨터 또는 조직에 바인딩하기 위해 공개 키 암호화에 사용됩니다. 바인딩된 ID는 한 엔터티를 다른 엔터티에 인증하는 데 가장 자주 사용됩니다. 예를 들어, 인증서는 웹 서버를 사용자에게 인증하고 사용자를 웹 서버에 인증하는 데 자주 사용됩니다. 인증서 요청을 만들고, 발급된 인증서를 설치하거나 가져올 수 있습니다. 인증서를 인증서 계층 구조에 등록할 수도 있습니다.
암호화 키 이 문서는 표준 키 파생 함수를 사용하여 키를 파생하는 방법과 대칭 및 비대칭 키를 사용하여 콘텐츠를 암호화하는 방법을 보여 줍니다.
데이터 보호 이 문서에서는 Windows.Security.Cryptography.DataProtection 네임스페이스의 DataProtectionProvider 클래스를 사용하여 UWP 앱에서 디지털 데이터를 암호화 및 해독하는 방법을 설명합니다.
MAC, 해시, 서명 이 문서는 UWP 앱에서 MAC(메시지 인증 코드), 해시 및 서명을 사용하여 메시지 변조를 감지하는 방법을 설명합니다.
암호화에 대한 내보내기 제한 이 정보를 사용하여 앱이 Microsoft Store에 나열될 수 없는 방식으로 암호화를 사용하는지 확인할 수 있습니다.
일반적인 암호화 작업 이러한 문서는 난수 만들기, 버퍼 비교, 문자열과 이진 데이터 간 변환, 바이트 배열 간 복사, 데이터 인코딩 및 디코딩과 같은 일반적인 UWP 암호화 작업에 대한 예시 코드를 제공합니다.