
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, 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의
일부로 재라이선스되었습니다. 여기에는 DES의 15가지 '모드/변형'(ecb, cbc, cfb,
ofb의 1, 2, 3키 버전; pcbc 및 더 일반적인 형태의 cfb와 ofb)이 포함되며, cbc
모드의 desx, 빠른 crypt(3), 키보드에서 암호를 읽는 루틴도 포함됩니다.
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 인증서를
생성하는 프로그램.
시스템
일반적인 디지털 봉투(digital envelope) 루틴 및 base64 인코딩. 이름으로 암호와 다이제스트에
대한 상위 수준 접근. 새 암호는 런타임에 로드할 수 있습니다. 단순한 비차단 IO 추상화인 BIO
io 시스템. 현재 지원되는 메서드는 파일 디스크립터, 소켓, 소켓 수락, 소켓 연결, 메모리 버퍼,
버퍼링, SSL 클라이언트/서버, 파일 포인터, 암호화, 다이제스트, 비차단 테스트 및 null입니다.
데이터 구조
동적으로 확장되는 해싱 시스템
간단한 스택.
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 웹사이트 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" 출력입니다. 다음과 같이 생성할 수 있습니다: