나는 해싱 (sha1), 암호화, C++에서 win32 용 디지털 서명과 같은 작업을 수행하는 암호화 프로그램을 작성하고 있습니다. 은 cryptoapi에 내장되어 있거나, Crypto ++와 같은 다른 라이브러리를 사용해야합니다. 최대 보안 및 작동이 필요합니다. 모든 시스템 XP 및 Vista (및 선택적으로 2000),하지만 동시에 EXE 크기를 최소화해야하므로 uneeded 외부 libs 싶지 않아은 좋은 cryptoap입니까?
답변
"보안"을 정의하십시오. Windows crypto API에 내장 된 기능을 통해 광고하고 수정하지 않는 결함이 없으며 적어도 그 중 일부는 알고 있습니다. "Crypto Next Generation"API는 한 번 볼 가치가 있습니다.
일반적으로 보안 된 프로그램에서 문제는 사람들이 API를 사용하여 수행하는 것입니다. 키 길이가 충분하지 않고 일반 텍스트 등으로 키를 남겨두면 공급 업체 소프트웨어가 아니라 문제가 발생합니다.
"최대"보안이 필요한 경우 전문가를 고용해야 도움이됩니다. Charlie Martin이 지적한 것처럼 암호화 API의 오용을 통해서만이 아니라 잘못된 유형의 암호화를 올바르게 사용하거나 올바르게 사용 된 API의 결과를 잘못 사용하거나 다른 부분에서 안전하지 않은 디자인을 사용하여 안전하지 않은 프로그램을 만들 수 있습니다. 귀하의 프로그램의.
이것은 소프트웨어 산업에서 매우 인 매우 자주 발생하는 문제입니다. 입니다.
"최대 보안"은 사용자가 선택한 암호화 API를 사용하는 방법에 따라 정의됩니다. 이 아닌은 API 자체로 정의됩니다.
API가 다양한 암호화 알고리즘을 올바르게 구현하는 한 다른 모든 암호화 API와 마찬가지로 훌륭합니다.
"보안은 제품이 아니라 프로세스입니다."
- 어떻게 당신이 당신의 키를 저장하는 : - 해시, 암호화, 서명 등의 Schneier
암호화 알고리즘은 프로세스의 단지 부분? 실수로 페이지 파일을 통해 디스크로 유출 될 수 있습니까?
- 어떻게 난수를 생성합니까? 나쁜 난수는 모든 것을 정말로 약화시킬 수 있습니다. 공포 이야기에 대해서는 Debian 또는 Netscape으로 문의하십시오.
- IT 관리자가 그룹 정책을 사용하여 어떤 알고리즘을 허용 할 수 있습니까?
- 솔루션이 외부 경화 장치를 지원합니까?
- 커널 모드로 암호화 할 수 있습니까?
- 공격 또는 약점의 경우 어떻게 업데이트가 배포됩니까?
CAPI 및 특히 CNG on Vista은 이러한 문제를 통해 생각해 왔으며 일반적으로 괜찮습니다. CAPI 팀의 두 사람이 this video을보고 싶어 할 수도 있습니다.
여러분이 컴퓨터에 물리적으로 액세스하여 키 로거를 넣을 수 있다면이 모든 것이 문제가됩니다.
아아, 그것은
CryptoAPI를 올바르게 사용하는 경우는,수록 고체입니다 ... 과정입니다.
Windows 용 암호화 외부 라이브러리에는 멀티 플랫폼 개발을 지원하기 때문에 모든 것을 다시 구현하는 라이브러리와 특정 용도로 CryptoAPI 위에 단순화 된 계층으로 작동하는 라이브러리가 있습니다. . 이전 군중에있는 경우에는 평판 좋은 플랫폼 중립 라이브러리를 사용하십시오. 원시 CryptoAPI에서 생산성을 발휘할 수 없다는 것을 알게되면 적은 단계로 정확히 수행 할 수있는 평판 좋은 라이브러리를 찾으십시오. 그러나 어떻게 든 "더 좋기"때문에 다른 라이브러리가 보안 위험을 치료할 것이라고 가정하지 마십시오. 당신이 사용하는 것이 평판이 좋은지 확인하십시오.
다른 많은 사람들이 지적한 것처럼, "최대 보안"("최대"보안 수준이 무엇이든간에) "최대 보안"이 정말로 필요하면 전문가를 고용하는 것이 좋습니다. 또한 전체적인 관점에서 보안을 관찰해야합니다. 데이터 암호화는 하나의 측면에 불과합니다.
마지막으로, 심지어는 꿈 자신의 암호화 라이브러리를 작성하는 것조차하지 말아야합니다. 기존 알고리즘을 구현하는 것조차도 아닙니다. 비참하게 실패 할 것입니다.
보안을 위해 140-2 인증을 획득 한 라이브러리를 선택하십시오. 그 후에는 안전하게 사용하는 것이 전부입니다.
Crypto API는 더 이상 사용되지 않지만 Vista에서는 여전히 작동하지만 CNG (Crypto APi Next Generation)와 함께 사용해야합니다. Crypto API를 Windows 7에서 계속 사용할 수 있는지 확실하지 않습니다.
cryptoAPI는 Windows 7 및 2008 서버에서 사용할 수 있습니다. – Raj
현재 Windows 10에서 작동 중입니다. –