달력

08

« 2017/08 »

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
2012.12.20 18:17

Cryptography API: Next Generation CNG2012.12.20 18:17

한동안 Windows API에서 암호와 관련된 부분을 보지 않았는데 앞으로 천천히 보면서 정리해볼 생각입니다.

우선, 많이 늦었으나 Windows Vista 부터 새롭게 추가된 보안 API인 CNG에 대해서 살펴 보기로 하겠습니다.

CNG(Cryptography API: Next Generation)의 전체 이름은 상당히 거창하게 되어 있다. 번역 해보면 차세대 암호 API 정도 되겠다. 기존에 있던 CryptoAPI의 단점을 보안하여 Vista에서 부터 새롭게 추가된 API 집합인 듯 합니다.

이전에 포스트한 링크에 보면 개략적인 내용이 친절하게도 한글로 잘 번역되어 테크넷과 MSDN매거진에 나와있고 물론 이해하기 쉽게 되어 있습니다.

CNG는 기존에 Windows 운영체제에서 제공하던 CryptoAPI를 장기적으로 대체하기 위해 탄생되었다. CNG는 여러 수준에서 확장성 있고 암호화 동작을 알 수 없도록 설계되었습니다.

암호화 동작을 알 수 없도록 설계되었다는 말은 참 아리송한 말이지만, 암호화에서 중요한 키를 중심으로 생각하면 이해될 것 같습니다. 암호에서 키는 매우 중요한 역할을 합니다. 암호 알고리즘 역시 중요하지만 기본적으론 키를 가장 중요하게 생각합니다. 키가 있어야만 암호문을 풀 수 있으며, 암호 알고리즘의 설계 역시 신뢰의 기본은 키로 생각하고 있습니다. 키가 중요하기 때문에 키가 어디에 위치하게 되어 있는지 또는 역분석이나 메모리 분석을 통해서 키를 알아내는 행위에 대해 암호 API는 방어를 해야하는데 이러한 부분에 대해서 설계가 되어 있다는 이야기 인것 같습니다. 영어로는 cryptography agnostic이라고 간단하게 써놓았네요.

CNG는 인터넷과 같이 보안 되지 않은 매체를 통해 문서 및 다른 데이터들을 생성하고 교환할 때 응용 프로그램 개발자가 안전한 환경에서 사용할 수 있도록 만들어 졌습니다. CNG를 사용하려는 개발자는 C와 C++ 프로그래밍 언어와 Windows 기반 프로그래밍 환경을 잘 알고 있어야 하지만, 암호화와 보안과 관련된 지식은 도움은 되지만 꼭 필요하진 않습니다.

CNG 암호 알고리즘 제공자(Cryptographic algorithm provider) 또는 키 저장소 제공자(Key storage provider)를 개발하려면 Microsoft connect에서 CPDK(Cryptographic Provider Development Kit)를 다운받아야 합니다. Microsoft connect는 Live ID로 로그인 해야 하며, 다운로드에서 Cryptographic Provider Development Kit 다운로드를 선택해야 합니다.

런타임 요구사항은 Windows Vista와 Windows Server 2008 운영체제부터 지원되네요. 이하 운영체제는 여전히 CryptoAPI를 사용해야 합니다.

이전 CryptoAPI에서 암호 알고리즘을 추가하려면 CSP(Cryptographic Service Provider)를 모두 구현해야 했는데 CNG부터는 알고리즘만 따로 추가할 수 있도록 변경된 모양입니다. CSP에서는 키 저장소 및 알고리즘을 모두 구현해야 했습니다. 좀 더 유연한 구조로 변경된 것 같군요.

다음에는 실제로 어떻게 쓰는지를 확인해 봐야겠습니다. 이전 CryptoAPI를 위한 CSP를 구현할때는 개발툴이 Windows 2000에서만 구현하고 테스트 할 수 있었는데, CNG는 한번 해봐야겠군요.

신고

'CNG' 카테고리의 다른 글

Cryptography API: Next Generation  (0) 2012.12.20
Windows CNG(Cryptography Next Generation) 관련 링크  (0) 2012.12.20
Posted by 서프리

Windows CNG(Cryptography Next Generation) 관련 링크

신고

'CNG' 카테고리의 다른 글

Cryptography API: Next Generation  (0) 2012.12.20
Windows CNG(Cryptography Next Generation) 관련 링크  (0) 2012.12.20
Posted by 서프리


티스토리 툴바