
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 관련 기능. 다음을 위한 루틴이 포함됩니다:
암호(Ciphers)
libdes - 수년간 네트워크에 유포되었던 EAY의 libdes DES 암호화 패키지로, 이후 SSLeay의
일부로 재라이선스되었습니다. ecb, cbc, cfb 및 ofb의 1, 2, 3키 버전(desx의
cbc 모드 포함), pcbc 및 더 일반적인 형태의 cfb와 ofb를 포함한 15가지 DES
'모드/변형', 빠른 crypt(3), 키보드에서 비밀번호를 읽는 루틴이 포함되어 있습니다.
RC4 암호화,
RC2 암호화 - ecb, cbc, cfb 및 ofb의 4가지 모드.
Blowfish 암호화 - ecb, cbc, cfb 및 ofb의 4가지 모드.
IDEA 암호화 - ecb, cbc, cfb 및 ofb의 4가지 모드.
다이제스트(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)
일반적인 디지털 봉투(digital envelope) 루틴과 base64 인코딩. 이름으로 암호 및 다이제스트에
접근하는 상위 수준 기능. 런타임에 새 암호를 로드할 수 있습니다. 단순한 비차단 IO 추상화인
BIO 입출력 시스템. 현재 지원되는 메서드는 파일 디스크립터, 소켓, 소켓 수락, 소켓 연결,
메모리 버퍼, 버퍼링, 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와 미쓰비시는 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 프로젝트에 버그를 보고하십시오:
요청 추적기는 일반적인 지원이나 문의 용도로 사용하면 안 됩니다. 무언가가 예상대로 작동하지 않는다고 해서 반드시 OpenSSL의 버그인 것은 아닙니다.
[email protected]로 보낸 메일은 공개적으로 읽을 수 있는 요청 추적기 데이터베이스에 기록되며 공개 메일링 리스트로 전달됩니다. 기밀 메일은 [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 섹션 740.13(e)) "암호화 소스 코드가 이메일 첨부 파일로 보내기에는 너무 큰 경우"에는 팩스로도 기꺼이 받아준다고 합니다. 저렴한 장거리 요금제가 있기를 바랍니다.
변경 사항에 대한 선호 형식은 "diff -u" 출력입니다. 다음과 같이 생성할 수 있습니다: