
SSL/TLS 프로토콜을 구현하는 업계 표준 오픈소스 툴킷으로, 암호화, 복호화, 해싱, 디지털 서명 및 인증서 관리를 위한 포괄적인 암호화 라이브러리를 제공합니다.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson 모든 권리 보유.
OpenSSL 프로젝트는 SSL(Secure Sockets Layer, SSL v2/v3) 및 TLS(Transport Layer Security, TLS 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 자료. 여기에는 다음을 위한 루틴이 포함됩니다:
암호
libdes - 수년간 인터넷에 떠돌던 EAY의 libdes DES 암호화 패키지로,
이후 그에 의해 SSLeay의 일부로 재라이선스되었습니다.
여기에는 cbc 모드의 desx, 빠른 crypt(3), 키보드에서
비밀번호를 읽는 루틴을 포함하여 15가지 DES
'모드/변형'(ecb, cbc, cfb 및 ofb의 1, 2, 3키 버전; pcbc와
보다 일반적인 형태의 cfb 및 ofb)이 포함됩니다.
RC4 암호,
RC2 암호 - ecb, cbc, cfb 및 ofb의 4가지 모드.
Blowfish 암호 - ecb, cbc, cfb 및 ofb의 4가지 모드.
IDEA 암호 - ecb, cbc, cfb 및 ofb의 4가지 모드.
다이제스트
MD5 및 MD2 메시지 다이제스트 알고리즘의 빠른 구현,
SHA(SHA-0) 및 SHA-1 메시지 다이제스트 알고리즘,
MDC2 메시지 다이제스트. 스마트 카드에서 널리 사용되는 DES 기반 해시.
공개 키
RSA 암호화/복호화/생성.
비트 수에 제한이 없습니다.
DSA 암호화/복호화/생성.
비트 수에 제한이 없습니다.
Diffie-Hellman 키 교환/키 생성.
비트 수에 제한이 없습니다.
X.509v3 인증서
바이너리 ASN1로/로부터의 X509 인코딩/디코딩과 개인 키를 사용한
암호화를 지원하는 PEM 기반 ASCII-바이너리 인코딩. RSA 및 DSA
인증서 요청을 생성하고 RSA 및 DSA 인증서를 생성하는 프로그램.
시스템
일반적인 디지털 엔벨로프 루틴 및 base64 인코딩. 이름으로 암호 및
다이제스트에 대한 상위 수준 접근. 런타임에 새 암호를 로드할 수
있습니다. 간단한 비차단 IO 추상화인 BIO 입출력 시스템. 현재
지원되는 방법은 파일 디스크립터, 소켓, 소켓 수락, 소켓 연결,
메모리 버퍼, 버퍼링, SSL 클라이언트/서버, 파일 포인터, 암호화,
다이제스트, 비차단 테스트 및 널입니다.
데이터 구조
동적으로 확장되는 해싱 시스템,
간단한 스택,
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/ 디렉터리의 문서를 읽으십시오. 문서는 다소 거칠지만 함수 목록을 제공합니다. 사용 방법을 파악하려면 코드를 살펴봐야 할 것입니다. 예제 프로그램을 참조하십시오.
일부 플랫폼의 경우 사용자나 애플리케이션 작성자에게 영향을 줄 수 있는 알려진 문제가 있습니다. 우리는 이러한 문제를 향후 OpenSSL에서 해결하는 방법에 대한 현재 의견과 함께 doc/PROBLEMS에 수집하려고 합니다.
상업적 기술 지원을 받는 방법에 대한 자세한 내용은 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 참조). 패치를 제출하려면 제목에 "[PATCH]" 문자열을 포함하여 [email protected]로 보내십시오. 패치가 수행하는 작업에 대한 텍스트 설명을 반드시 포함하십시오.
특정 기능이 일반 OpenSSL 커뮤니티에 유용할지 확신이 서지 않으면 먼저 openssl-dev 메일링 리스트에서 논의하십시오. 누군가 이미 동일한 작업을 진행 중이거나 해당 기능이 구현되지 않은 타당한 이유가 있을 수 있습니다.
패치는 가능한 한 최신 상태여야 하며, 가급적 현재 Git 또는 마지막 스냅샷을 기준으로 해야 합니다. OpenSSL의 코딩 스타일을 따르고 경고 없이 컴파일되어야 합니다. 코어 팀 개발자 타겟 중 일부는 테스트 목적으로 사용할 수 있습니다(debug-steve64, debug-geoff 등). OpenSSL은 다양한 플랫폼에서 컴파일되므로 이식 가능한 기능만 사용하도록 하십시오.
참고: 법적 이유로 미국에서 온 기여는 TSU 알림과 패치 사본이 ENC 암호화 요청 코디네이터에게 참조로 전달된 상태로 [email protected](이전 BXA)에 발송된 경우에만 수락될 수 있습니다. 자세한 내용은 다음을 확인하는 데 시간을 투자하십시오: 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" 출력 형식을 선호합니다. 다음과 같이 생성할 수 있습니다: