
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 프로젝트는 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 관련 기능. 여기에는 다음 루틴이 포함됩니다:
암호
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.
다이제스트
MD5 및 MD2 메시지 다이제스트 알고리즘, 빠른 구현,
SHA (SHA-0) 및 SHA-1 메시지 다이제스트 알고리즘,
MDC2 메시지 다이제스트. 스마트 카드에서 널리 사용되는 DES 기반 해시.
공개 키
RSA 암호화/복호화/생성.
비트 수에 제한이 없습니다.
DSA 암호화/복호화/생성.
비트 수에 제한이 없습니다.
Diffie-Hellman 키 교환/키 생성.
비트 수에 제한이 없습니다.
X.509v3 인증서
이진 ASN1과 비밀 키로 암호화를 지원하는 PEM 기반 ASCII-이진 인코딩 간의 X509 인코딩/디코딩. 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' 출력
운영 체제 이름, 버전, 하드웨어 플랫폼
컴파일러 세부 정보 (이름, 버전)
- 애플리케이션 세부 정보 (이름, 버전)
- 문제 설명 (문제를 재현하는 단계, 알고 있는 경우)
- 스택 추적 (애플리케이션이 코어 덤프하는 경우)
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 통지와 패치 사본이 [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" 출력입니다. 다음과 같이 생성할 수 있습니다: