
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 - 수년간 인터넷에 유통되다가 나중에 SSLeay의 일부로 재라이선스된 EAY의 libdes DES 암호화 패키지. 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 인증서
이진 ASN1 및 비공개 키로 암호화를 지원하는 PEM 기반 ASCII-이진 인코딩으로의 X509 인코딩/디코딩.
RSA 및 DSA 인증서 요청을 생성하고 RSA 및 DSA 인증서를 생성하는 프로그램.
시스템(Systems)
일반 디지털 엔벨로프 루틴 및 base64 인코딩. 이름으로 암호 및 다이제스트에 대한 상위 수준 접근. 런타임에 새 암호 로드 가능. 간단한 비차단 IO 추상화인 BIO IO 시스템. 현재 지원되는 방법: 파일 디스크립터, 소켓, 소켓 수락, 소켓 연결, 메모리 버퍼, 버퍼링, SSL 클라이언트/서버, 파일 포인터, 암호화, 다이제스트, 비차단 테스트 및 널.
데이터 구조(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이 오스트리아, 프랑스, 독일, 이탈리아, 일본, 네덜란드, 스페인, 스웨덴, 스위스, 영국 및 미국에서 특허를 보유하고 있습니다. 해당 알고리즘을 사용하려면 연락해야 합니다. 웹 페이지는 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 프로젝트에 버그를 다음 메일로 보고하십시오:
[email protected]
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 통지와 패치 사본이 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" 출력입니다. 다음과 같이 생성할 수 있습니다: