
SSL/TLS 프로토콜을 구현하고 암호, 다이제스트, 공개 키 알고리즘 및 X.509 인증서 처리를 포함한 범용 암호화 라이브러리를 제공하는 OpenSSL 툴킷.
OpenSSL 1.0.1g 2014년 4월 7일
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved.
OpenSSL 프로젝트는 Secure Sockets Layer (SSL v2/v3) 및 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의 일부로 재라이선스되었습니다. 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 인증서 요청을 생성하고 RSA 및 DSA 인증서를 생성하는 프로그램입니다.
시스템
일반 디지털 봉투 루틴 및 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에서 해결 방법에 대한 현재 생각을 제시하려고 노력하고 있습니다.
상용 기술 지원을 받는 방법에 대한 자세한 내용은 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" 출력입니다. 다음과 같이 생성할 수 있습니다: