
범용 암호화 라이브러리 및 SSL/TLS 도구 키트로, 암호, 다이제스트, 공개 키 알고리즘, X.509 인증서를 구현하며, 암호화, 복호화 및 인증서 관리를 위한 명령줄 도구를 포함합니다.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved.
OpenSSL 프로젝트는 SSL(Secure Sockets Layer, v2/v3) 및 TLS(Transport Layer Security, v1) 프로토콜을 구현하고 강력한 범용 암호화 라이브러리를 제공하는 견고하고 상업적인 수준의 완전한 기능을 갖춘 오픈 소스 툴킷을 개발하기 위한 공동 노력입니다. 이 프로젝트는 인터넷을 통해 의사소통하고 계획하며 OpenSSL 툴킷 및 관련 문서를 개발하는 전 세계 자원봉사자 커뮤니티에 의해 관리됩니다.
OpenSSL은 Eric A. Young과 Tim J. Hudson이 개발한 훌륭한 SSLeay 라이브러리를 기반으로 합니다. OpenSSL 툴킷은 이중 라이선스(OpenSSL 라이선스 및 SSLeay 라이선스) 하에 제공되며, 기본적으로 두 라이선스의 조건을 충족하는 한 상업적 및 비상업적 목적으로 자유롭게 획득 및 사용할 수 있습니다.
OpenSSL 툴킷에는 다음이 포함됩니다:
libssl.a: SSLv2, SSLv3, TLSv1의 구현 및 하나의 서버와 클라이언트에서 SSLv2, SSLv3, TLSv1을 모두 지원하는 데 필요한 코드.
libcrypto.a: SSL/TLS에 필요하지만 논리적으로는 그 일부가 아닌 일반 암호화 및 X.509 v1/v3 관련 기능. 다음 루틴을 포함합니다:
암호(Ciphers)
libdes - EAY의 libdes DES 암호화 패키지로, 수년간 네트워크에 유포되다가
SSLeay의 일부로 재라이선스되었습니다. DES의 15가지 '모드/변형'
(ecb, cbc, cfb, ofb의 1, 2, 3키 버전; pcbc 및 cfb, ofb의 일반화된 형태)를 포함하며,
cbc 모드의 desx, 고속 crypt(3), 키보드 암호 읽기 루틴이 포함됩니다.
RC4 암호화,
RC2 암호화 - 4가지 모드: ecb, cbc, cfb, ofb.
Blowfish 암호화 - 4가지 모드: ecb, cbc, cfb, ofb.
IDEA 암호화 - 4가지 모드: ecb, cbc, cfb, ofb.
다이제스트(Digests)
MD5 및 MD2 메시지 다이제스트 알고리즘(고속 구현),
SHA(SHA-0) 및 SHA-1 메시지 다이제스트 알고리즘,
MDC2 메시지 다이제스트. 스마트 카드에서 널리 사용되는 DES 기반 해시.
공개키(Public Key)
RSA 암호화/복호화/생성.
비트 수 제한 없음.
DSA 암호화/복호화/생성.
비트 수 제한 없음.
Diffie-Hellman 키 교환/생성.
비트 수 제한 없음.
X.509v3 인증서
X509 인코딩/디코딩(바이너리 ASN1 및 PEM 기반 ASCII-바이너리 인코딩,
개인 키로 암호화 지원). RSA 및 DSA 인증서 요청 및
인증서 생성을 위한 프로그램.
시스템(Systems)
일반 디지털 엔벨로프 루틴 및 base64 인코딩. 이름으로 암호 및 다이제스트에 대한
상위 수준 접근. 런타임에 새 암호 로드 가능. 단순한 비블로킹 IO 추상화인
BIO IO 시스템. 현재 지원되는 방식: 파일 디스크립터,
소켓, 소켓 accept, 소켓 connect, 메모리 버퍼, 버퍼링, SSL
클라이언트/서버, 파일 포인터, 암호화, 다이제스트, 비블로킹 테스트
및 null.
데이터 구조(Data structures)
동적으로 성장하는 해싱 시스템
단순 스택.
MS .ini 파일과 유사한 형식을 사용하는 구성 로더.
openssl: 다음에 사용할 수 있는 커맨드 라인 도구: RSA, DH 및 DSA 키 매개변수 생성 X.509 인증서, CSR 및 CRL 생성 메시지 다이제스트 계산 암호를 사용한 암호화 및 복호화 SSL/TLS 클라이언트 및 서버 테스트 S/MIME 서명 또는 암호화된 메일 처리
다양한 회사들이 세계 여러 지역에서 다양한 알고리즘에 대한 다양한 특허를 보유하고 있습니다. _여러분_은 사용하는 알고리즘의 사용이 합법적인지 확인하기 위해 해당 국가의 특허를 확인할 책임이 있습니다. 이 파일에는 우리가 알고 있거나 존재하는 것으로 알려진 일부 특허가 포함되어 있습니다. 이는 완전한 목록이 아닙니다.
RSA Security는 RC5 알고리즘에 대한 소프트웨어 특허를 보유하고 있습니다. 이 암호를 사용하려면 RSA Security에 라이선스 조건을 문의해야 합니다. 웹 페이지는 http://www.rsasecurity.com/입니다.
RC4는 RSA Security의 상표이므로, 이 레이블은 RSA Security의 허가 하에만 사용해야 합니다.
IDEA 알고리즘은 오스트리아, 프랑스, 독일, 이탈리아, 일본, 네덜란드, 스페인, 스웨덴, 스위스, 영국 및 미국에서 Ascom에 의해 특허 등록되어 있습니다. 해당 알고리즘을 사용하려면 Ascom에 연락해야 합니다. 웹 페이지는 http://www.ascom.ch/입니다.
NTT와 Mitsubishi는 Camellia 알고리즘에 대한 특허 및 출원 중인 특허를 보유하고 있지만, 명시적 라이선스 계약 없이 무료로 사용할 수 있습니다: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Unix 계열에서 이 패키지를 설치하려면 INSTALL 파일을 읽으십시오. Win32 플랫폼의 경우 INSTALL.W32 파일을 읽으십시오. OpenVMS 시스템의 경우 INSTALL.VMS를 읽으십시오.
doc/ 디렉토리의 문서를 읽으십시오. 내용이 다소 거칠지만 함수 목록을 제공합니다. 사용 방법을 알아내려면 코드와 예제 프로그램을 살펴봐야 할 것입니다.
일부 플랫폼에서는 사용자나 애플리케이션 작성자에게 영향을 줄 수 있는 알려진 문제가 있습니다. 이러한 문제는 doc/PROBLEMS에 수집하고 있으며, OpenSSL의 향후 버전에서 해결 방법을 고려하고 있습니다.
상업적 기술 지원을 받는 방법에 대한 자세한 내용은 OpenSSL 웹사이트 www.openssl.org를 참조하십시오.
OpenSSL에 문제가 있는 경우 먼저 다음 단계를 수행하십시오:
- 현재 스냅샷을 ftp://ftp.openssl.org/snapshot/에서 다운로드하여
문제가 이미 해결되었는지 확인
- 라이브러리의 ASM 버전 제거
- 컴파일러 최적화 플래그 제거
버그를 보고하려면 다음 정보를 포함해 주십시오:
- Unix 시스템:
'make report'로 생성된 자체 테스트 보고서
- 기타 시스템:
OpenSSL 버전: 'openssl version -a' 출력
OS 이름, 버전, 하드웨어 플랫폼
컴파일러 정보(이름, 버전)
- 애플리케이션 정보(이름, 버전)
- 문제 설명(문제 재현 단계, 알려진 경우)
- 스택 역추적(애플리케이션 코어 덤프가 발생한 경우)
Request Tracker(http://www.openssl.org/support/rt.html)를 통해 OpenSSL 프로젝트에 버그를 보고하거나 다음 메일 주소로 보내주십시오:
Request Tracker는 일반 지원이나 질의에 사용해서는 안 됩니다. 예상한 대로 작동하지 않는다고 해서 반드시 OpenSSL의 버그인 것은 아닙니다.
[email protected]로 보내는 메일은 공개적으로 읽을 수 있는 Request Tracker 데이터베이스에 기록되며 공개 메일링 리스트로 전달됩니다. 기밀 메일은 [email protected]로 보낼 수 있습니다. (PGP 키는 키 서버에서 사용 가능)
개발은 openssl-dev 메일링 리스트에서 조정됩니다 (구독 정보는 http://www.openssl.org 참조). 패치를 제출하려면 [email protected]로 제목에 "[PATCH]"를 포함하여 보내주십시오. 패치가 하는 일에 대한 텍스트 설명을 반드시 포함하십시오.
특정 기능이 일반 OpenSSL 커뮤니티에 유용할지 확신이 서지 않으면 먼저 openssl-dev 메일링 리스트에서 논의하십시오. 누군가 이미 동일한 작업을 하고 있거나 해당 기능이 구현되지 않은 타당한 이유가 있을 수 있습니다.
패치는 가능한 최신 상태여야 하며, 가급적 현재 Git 또는 마지막 스냅샷 기준이어야 합니다. OpenSSL의 코딩 스타일을 따르고 경고 없이 컴파일되어야 합니다. 일부 핵심 팀 개발자 타겟(debug-steve64, debug-geoff 등)을 테스트 목적으로 사용할 수 있습니다. OpenSSL은 다양한 플랫폼에서 컴파일되므로 휴대용 기능만 사용하도록 주의하십시오.
참고: 법적 이유로 미국에서의 기여는 TSU 통지와 패치 사본을 [email protected](이전 BXA)로 보내고 ENC 암호화 요청 코디네이터에게 사본을 보내는 경우에만 수락될 수 있습니다. 자세한 내용은 http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] 및 http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)) 를 참조하시기 바랍니다. "암호 소스 코드가 이메일 첨부 파일로 보내기에는 너무 큰 경우" 팩스로 받아들여진다고 합니다. 저렴한 장거리 요금제가 있기를 바랍니다.
변경 사항에 대해 선호하는 형식은 "diff -u" 출력입니다. 다음과 같이 생성할 수 있습니다: