달력

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 서프리
2012.04.18 20:44

VC2005 버전별 재배포 패키지 개발2012.04.18 20:44

VC++ 2005로 개발한 응용프로그램 및 모듈은 컴파일 옵션을 /MD로 주게되면 Side by side로 C Runtime을 물기 때문에 재배포 패키지를 같이 배포해 주어야 한다.

그러나, Side by side 영향 때문에 VC2005 재배포 패키지라고 해도 현재 사용하고 있는 런타임의 재배포 패키지를 설치하지 않으면 실행이 되지 않는다. 때문에 아무리 VC2005 재배포 패키지를 깔아도 여전히 Side by side 때문에 실행이 되지 않고 오류가 발생한다.

개발자는 보통 보안패치를 잘 하는 경우가 대부분이기 때문에, 재배포 패키지를 배포하려면 현재 자신이 배포하는 모듈의 Manifest를 한번 검사하고 최신 재배포 패키지를 배포하는 것이 맞다.

일단 side by side로 만들어진 모듈은 manifest를 확인해보고 배포해야 한다. 특히 정적 라이브러리를 포함한 모듈을 만들경우 항상 한가지 버전의 c runtime dll에 종속성이 생기는 것이 아니다.

VC2005의 경우 재배포 패키지는 버전별로 현재 4개 정도 나와 있는 듯하다.

  • Microsoft Visual C++ 2005 재배포 가능 패키지(2006-04-05):
    (버전: 8.0.50727.163)

Microsoft Visual C++ 2005 재배포 가능 패키지(x86):

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=32BC1BEE-A3F9-4C13-9C99-220B62A191EE

Microsoft Visual C++ 2005 재배포 가능 패키지(x64):

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=90548130-4468-4BBC-9673-D6ACABD5D13B

  • Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(2007-11-15):
    (버전: 8.0.50727.762)

Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(x86)

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=200B2FD9-AE1A-4A14-984D-389C36F85647

Microsoft Visual C++ 2005 SP1 재배포 가능 패키지(x64):

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=EB4EBE2D-33C0-4A47-9DD4-B9A6D7BD44DA

  • Microsoft Visual C++ 2005 서비스 팩 1 재배포 가능 패키지 ATL 보안 업데이트(2010-09-20):
    (버전: 8.0.50727.4053)

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=766A6AF7-EC73-40FF-B072-9112BAB119C2

  • Microsoft Visual C++ 2005 Service Pack 1 재배포 가능 패키지 MFC 보안 업데이트(2011-06-07):
    (버전: 8.0.50727.6195)

http://www.microsoft.com/downloads/ko-kr/details.aspx?FamilyID=ae2e1a40-7b45-4fe9-a20f-2ed2923aca62

    URL은 시간이 지나면 예고도 없이 바뀌기 때문에 링크가 제대로 될지는 알수 없으나 현재까지 URL은 위와 같다.

    MS에서 일괄되게 검색이 되면 얼마나 좋을까? 다운로드 사이트에 가서도 재배포 패키지를 받으려면 이곳 저곳 찾아야 되니 참 귀찮다.

    재배포 패키지 제목 좀 통일했으면. 어쩔 때는 SP1, 서비스 팩 1 또는 Service Pack 1 이것 참 번역 할 때 마다 쓰는 단어가 틀려지는 건지 참..

    ATL보안 업데이트와 MFC보안 업데이트 재배포 패키지는 Windows Update를 통해서도 자동 업데이트가 되긴하나 프로그램 설치하면서 Windows Update 먼저 하십시요라고 할 수는 없지 않은가? ㅠㅠ

    신고
    Posted by 서프리


    티스토리 툴바