시스템(Linux)

OPENSSL 에 대해 알아보도록 하겠습니다.

forward error correction Circle 2024. 2. 7. 08:58
반응형

Ⅰ. OPENSSL 이란 ?

OpenSSL은 암호화와 보안 프로토콜을 구현하는 오픈 소스 라이브러리입니다. 주로 SSL/TLS 프로토콜을 지원하여 안전한 데이터 통신을 제공합니다. 이 라이브러리는 다양한 암호화 기술과 암호 해독, 디지털 서명 등을 지원하여 네트워크 통신 및 보안 응용 프로그램에서 많이 사용됩니다. LINUX 및 UNIX 계열에서는 기본적으로 설치되어 있고, 윈도우 환경에서는 별도의 설치가 필요합니다.

Ⅱ. OPENSSL 주요 기능

기능명 설명
암호화 및 해독
데이터 및 파일을 다양한 암호화 알고리즘을 사용하여 암호화 및 해독할 수 있습니다.
디지털 서명 및 검증
RSA, DSA, ECDSA 등과 같은 알고리즘을 사용하여 디지털 서명 생성 및 검증이 가능합니다.
인증서 및 키페어 생성
SSL/TLS 연결에 사용되는 인증서 및 키페어를 생성할 수 있습니다
해시 함수
MD5, SHA-1, SHA-256, SHA-3 등과 같은 해시 함수를 사용하여 메시지 또는 파일의 해시를 생성할 수 있습니다.
SSL/TLS 프로토콜 지원
안전한 네트워크 통신을 위한 SSL/TLS 프로토콜을 구현합니다.
PKCS#12 파일 생성 및 변환
개인 키와 인증서를 포함하는 PKCS#12 파일을 생성하거나 다른 형식으로 변환할 수 있습니다.
난수 및 난수 생성기
안전한 난수 생성을 지원하며, 이는 암호키 생성 등에 사용됩니다.
클라이언트 및 서버 테스트 도구
SSL/TLS 연결을 테스트하고 디버깅하는 데 사용되는 명령어들이 포함되어 있습니다
다양한 암호화 알고리즘 지원
DES, AES, Blowfish, RC4 등과 같은 다양한 대칭 및 비대칭 암호화 알고리즘을 지원합니다.
안전한 소켓 통신
안전한 소켓 통신을 구현하기 위한 함수와 도구를 제공합니다.

Ⅲ. OPENSSL 사용 방법

1. 키페어 생성

개인 키파일 생성: openssl genpkey -algorithm RSA -out private_key.pem
공개 키파일 생성: openssl rsa -pubout -in private_key.pem -out public_key.pem

2. 자체 서명 인증서 생성

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

3. 암호화 및 해독

파일 암호화: openssl enc -aes-256-cbc -salt -in input.txt -out encrypted.txt
암호 해독: openssl enc -aes-256-cbc -d -in encrypted.txt -out decrypted.txt

4. SSL/TLS 연결 테스트

서버에서 인증서 및 키 사용하여 서버 실행

openssl s_server -key private_key.pem -cert cert.pem -accept 4433

클라이언트에서 연결 테스트

openssl s_client -connect localhost:4433

5. 파일 해시 생성

openssl dgst -sha256 file.txt

6. 개인 키 및 인증서를 PKCS#12 파일로 변환

openssl pkcs12 -export -out certificate.pfx -inkey private_key.pem -in cert.pem
반응형