중국시가넷 - 개인 서명 - Openssl 사용 방법

Openssl 사용 방법

암호화 기반 보안 개발 패키지인 OpenSSL 은 주요 암호 알고리즘, 공통 키 및 인증서 패키징 관리 기능, SSL 프로토콜 등 매우 강력하고 포괄적인 기능을 제공합니다. 테스트나 기타 용도로 다양한 애플리케이션을 제공합니다.

1. 대칭 암호화 알고리즘

OpenSSL 1 * * * 은 8 가지 대칭 암호화 알고리즘을 제공합니다. 그 중 7 가지는 패킷 암호화 알고리즘이고, 유일한 스트림 암호화 알고리즘은 RC4 입니다. AES, DES, Blowfish, CAST, IDEA, RC2, RC5 등 7 가지 그룹 암호화 알고리즘은 모두 전자 암호본 모드 (ECB), 암호화 그룹 링크 모드 (CBC), 암호화 피드백 모드 (CFB) 를 지원합니다 여기서 AES 는 암호화된 피드백 모드 (CFB) 및 출력 피드백 모드 (OFB) 그룹 길이를 128 비트로 사용하고 다른 알고리즘은 64 비트를 사용합니다. 실제로 DES 알고리즘에는 일반적으로 사용되는 DES 알고리즘뿐만 아니라 3 개의 키와 2 개의 키 3DES 알고리즘도 지원됩니다.

2. 비대칭 암호화 알고리즘

OpenSSL 1 * * * 은 DH, RSA, DSA 및 EC (타원 곡선) 를 포함한 4 가지 비대칭 암호화 알고리즘을 구현합니다. DH 알고리즘 일반 사용자 키 교환. RSA 알고리즘은 키 교환과 디지털 서명에 모두 사용할 수 있습니다. 물론 느린 속도를 견딜 수 있다면 데이터 암호화에도 사용할 수 있습니다. DSA 알고리즘은 일반적으로 디지털 서명에만 사용됩니다.

3. 정보 다이제스트 알고리즘

OpenSSL 은 MD2, MD5, MDC2, SHA(SHA1), RIPEMD 등 5 가지 정보 다이제스트 알고리즘을 구현합니다. SHA 알고리즘에는 실제로 SHA 와 SHA1 의 두 가지 정보 요약 알고리즘이 포함되어 있으며, OpenSSL 은 DSS 표준에 명시된 두 가지 정보 요약 알고리즘인 DSS 와 DSS1 을 구현합니다.

4. 키 및 인증서 관리

키 및 인증서 관리는 PKI 의 중요한 부분이며 OpenSSL 은 다양한 표준을 지원하는 다양한 기능을 제공합니다. < P > 먼저 OpenSSL 은 ASN.1 의 인증서 및 키 관련 표준을 구현하여 인증서, 공개 키, 개인 키, 인증서 요청 및 CRL 과 같은 데이터 객체에 대한 DER, PEM 및 BASE64 인코딩 및 디코딩 기능을 제공합니다. OpenSSL 은 다양한 공개 키 쌍과 대칭 키를 생성하는 방법, 함수 및 응용 프로그램을 제공하며 공개 키와 개인 키에 대한 DER 인코딩 및 디코딩 기능을 제공합니다. 개인 키의 PKCS#12 와 PKCS#8 의 코덱 기능을 구현했습니다. OpenSSL 은 키를 안전하게 저장하고 배포할 수 있도록 표준에 개인 키의 암호화 보호 기능을 제공합니다. < P > 이를 바탕으로 OpenSSL 은 인증서의 X.59 표준 코덱, PKCS#12 형식의 코덱 및 PKCS#7 의 코덱 기능을 구현합니다. 또한 인증서 키 생성, 요청 생성, 인증서 발행, 해지 및 확인 등의 인증서 관리 기능을 지원하는 텍스트 데이터베이스를 제공합니다. < P > 실제로 OpenSSL 에서 제공하는 CA 애플리케이션은 인증서 발급의 전체 프로세스와 인증서 관리의 대부분의 메커니즘을 구현하는 작은 인증서 관리 센터 (CA) 입니다.

5.SSL 및 TLS 프로토콜

OpenSSL 은 대부분의 알고리즘 프로토콜을 지원하는 SSL 프로토콜의 SSLv2 및 SSLv3 을 구현합니다. OpenSSL 도 TLSv1. 을 구현했습니다. TLS 는 SSLv3 의 표준화된 버전입니다. 차이는 크지 않지만 많은 세부 사항이 다릅니다. < P > OpenSSL 기능을 구현하는 소프트웨어가 많이 있지만 OpenSSL 에서 구현된 SSL 프로토콜은 SSL 프로토콜에 대한 명확한 이해를 제공합니다. OpenSSL 구현의 SSL 프로토콜이 오픈 소스이기 때문에 SSL 프로토콜 구현의 모든 세부 사항을 조사할 수 있습니다. 둘째, OpenSSL 이 구현하는 SSL 프로토콜은 순수한 SSL 프로토콜로, HTTP 와 같은 다른 프로토콜과 결합되지 않아 SSL 프로토콜의 본색을 분명히 했다.

6. 어플리케이션

OpenSSL 의 어플리케이션은 이미 OpenSSL 의 중요한 부분이 되었으며, 그 중요성은 OpenSSL 개발자가 예상하지 못했던 것 같습니다. 현재 OpenSSL 응용 프로그램 중 상당수는 OpenCA 와 같은 API 가 아닌 OpenSSL 기반 응용 프로그램으로 OpenSSL 을 완전히 사용하는 응용 프로그램으로 구현됩니다. OpenSSL 의 응용 프로그램은 OpenSSL 의 암호 알고리즘 라이브러리와 SSL 프로토콜 라이브러리를 기반으로 작성되었기 때문에 OpenSSL 의 API 사용 사례도 매우 좋습니다. 이러한 모든 예제를 읽으면 OpenSSL 의 API 사용에 대해 더 잘 알 수 있습니다. 물론, 이것은 당신의 의지력을 단련하는 작업이기도 합니다.

OpenSSL 의 어플리케이션은 비교적 포괄적인 기능을 제공하며, 상당수의 사람들이 보기에 OpenSSL 은 이미 자신을 위해 모든 것을 다 해놓았고, 더 이상 개발 작업을 할 필요가 없기 때문에, 이들 어플리케이션도 OpenSL 의 지시로 삼았다. OpenSSL 응용 프로그램에는 주로 키 생성, 인증서 관리, 형식 변환, 데이터 암호화 및 서명, SSL 테스트 및 기타 보조 구성 기능이 포함됩니다.

7.Engine 메커니즘 Engine 메커니즘의 출현은 OpenSSL 버전 .9.6 에서 Engine 을 지원하는 버전과 일반 버전을 분리하여 OpenSSL 버전 .9.7 에 Engine 메커니즘을 OpenSSL 에 통합했습니다 Engine 메커니즘은 OpenSSL 이 제 3 자가 제공하는 소프트웨어 암호화 라이브러리 또는 하드웨어 암호화 장치를 투명하게 사용하여 암호화할 수 있도록 하기 위한 것입니다. OpenSSL 의 Engine 메커니즘은 이 목적을 성공적으로 달성했으며, 이를 통해 OpenSSL 은 하나의 암호화 라이브러리가 아니라 대부분의 암호화 라이브러리 또는 암호화 장치와 함께 작동할 수 있는 범용 암호화 인터페이스를 제공합니다. 물론, 특정 암호화 라이브러리 또는 암호화 장치를 OpenSSL 조율하려면 소량의 인터페이스 코드를 써야 하지만, 이러한 작업량은 그리 크지 않습니다. 비록 약간의 암호학에 대한 지식이 필요하긴 하지만, 여전히 약간의 암호학이 필요하긴 합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 암호화명언 Engine 메커니즘은 Windows 에서 제공하는 CSP 기능 목표와 거의 동일한 기능을 합니다. 현재 OpenSSL 버전 .9.7 에서 지원하는 내장형 타사 암호화 장치는 CryptoSwift, nCipher, Atalla, Nuron, UBSEC, Aep, SureWare, iip 등 8 가지가 있습니다 PKCS#11 인터페이스를 지원하는 Engine 인터페이스도 등장했고, Microsoft CryptoAPI 를 지원하는 인터페이스도 개발되었다. 물론 위의 모든 Engine 인터페이스 지원이 반드시 포괄적이지는 않습니다. 예를 들어 하나 또는 두 개의 공개 키 알고리즘을 지원할 수 있습니다.

8. 액세스 가능성

BIO 메커니즘은 메모리 액세스, 파일 액세스 및 소켓과 같은 거의 모든 유형의 IO 인터페이스를 캡슐화하는 OpenSSL 에서 제공하는 상위 수준의 IO 인터페이스입니다. 이로 인해 코드의 재사용성이 크게 향상되었으며 OpenSSL 에서 API 를 제공하는 복잡성도 크게 줄었습니다.

OpenSSL 은 난수 생성 및 관리를 위한 포괄적인 솔루션 및 지원 API 함수도 제공합니다. 난수의 좋고 나쁨은 키의 안전 여부를 결정하는 중요한 전제 조건이다.

OpenSSL 은 비밀번호에서 키를 생성하는 API, 인증서 발급 및 관리의 프로필 메커니즘 등과 같은 기타 보조 기능도 제공합니다. 충분한 인내심이 있다면 OpenSSL 을 심도 있게 사용하는 과정에서 이런 작은 기능을 천천히 많이 발견하게 될 것이며, 당신은 끊임없이 새로운 놀라움을 갖게 될 것이다. (윌리엄 셰익스피어, 햄릿, 인내명언)