반응형
암호화와 복호화
- 암호화 (Encryption)
- 원본 데이터를 알아볼 수 없는 형태로 변환하는 과정입니다.
- 데이터의 기밀성을 유지하여 비인가자가 내용을 이해하지 못하도록 보호합니다.
- 복호화 (Decryption)
- 암호화된 데이터를 원본 데이터로 되돌리는 과정입니다.
- 올바른 키를 사용해야만 원본 데이터를 정확하게 복원할 수 있습니다.
암호와 인증서
대칭키 암호화 (Symmetric Key Encryption)
- 특징:
- 암호화와 복호화에 동일한 키를 사용합니다.
- 키의 전송이 어려운 단점이 있지만, 연산 부하는 적고 암호화/복호화 속도가 빠릅니다.
- 장점:
- 효율성이 높아 대량의 데이터를 빠르게 처리할 수 있습니다.
- 단점:
- 키 관리가 복잡하며, 안전한 키 분배가 어려울 수 있습니다.
공개 키 암호화 (Asymmetric Key Encryption)
- 특징:
- 암호화를 위한 공개 키와 복호화를 위한 개인 키, 두 개의 키를 사용합니다.
- 키의 크기가 크고 연산 부하가 상대적으로 많지만, 키를 안전하게 공유할 수 있습니다.
- 장점:
- 키 분배 문제가 해결되며, 보안성이 높습니다.
- 단점:
- 대칭키 암호화에 비해 속도가 느립니다.
세션 키 (Session Key)
- 개념:
- 일시적으로 사용되는 대칭 키로, 통신 세션 동안만 유효합니다.
- 전달 방법:
- 공개 키 암호화를 사용하여 대칭 키를 암호화한 후 전송하고, 수신자는 자신의 개인 키로 이를 복호화하여 대칭 키를 획득합니다.
- 장점:
- 대칭키 암호화의 효율성과 공개 키 암호화의 안전한 키 교환 방식을 동시에 활용할 수 있습니다.
인증 기관 (Certificate Authority, CA)
- 역할:
- 공개 키 인증서를 발급하고 관리하며, 인증서의 신뢰성을 보장합니다.
- 유형:
- 루트 CA, 중간 CA 등 다양한 계층 구조를 가질 수 있습니다.
- 신뢰 체계:
- 클라이언트는 신뢰할 수 있는 CA 목록을 가지고 있으며, 인증서가 신뢰할 수 있는 CA에 의해 발급되었는지 확인합니다.
공개 키 인프라 (Public Key Infrastructure, PKI)
- 정의:
- 공개 키 암호화의 효율적이고 안전한 사용을 지원하기 위한 시스템과 절차의 집합입니다.
- 구성 요소:
- 인증 기관 (CA)
- 등록 기관 (Registration Authority, RA)
- 인증서 저장소
- 프로토콜 (예: OCSP, CRL)
암호화 방식의 선택 기준
- 보안 요구사항: 데이터의 기밀성, 무결성, 인증 수준에 따라 적절한 암호화 방식을 선택합니다.
- 성능: 시스템의 처리 능력과 실시간 요구사항에 따라 대칭키 또는 비대칭키 암호화를 적절히 조합합니다.
- 키 관리: 키의 생성, 저장, 교환, 폐기에 대한 정책을 수립하여 안전하게 관리합니다.
반응형
인증서와 디지털 서명
인증서 (Certificate)
- 정의:
- 일반적으로 공개 키 인증서를 의미하며, 공개 키의 소유자와 공개 키의 유효성을 증명하는 전자 문서입니다.
- 구성 요소:
- 소유자 정보 (예: 이름, 조직)
- 공개 키
- 발급 기관 (CA)의 정보
- 유효 기간
- 서명 값 (디지털 서명)
공개 키 인증서 (Public Key Certificate)
- 역할:
- 공개 키가 특정 개인이나 조직에 속함을 증명하며, 키의 신뢰성을 보장합니다.
- 발급:
- 인증 기관 (Certificate Authority, CA)을 통해 발급받습니다.
- 내용:
- 인증서 소유자의 정보
- 공개 키
- 인증서의 유효 기간
- CA의 디지털 서명
서명 값 (Signature Value)
- 생성 방법:
- 인증서 내용에 대한 해시 값을 CA의 개인 키로 암호화하여 생성됩니다.
- 목적:
- 인증서의 무결성과 진위 여부를 검증하기 위해 사용됩니다.
디지털 서명 (Digital Signature)
- 절차:
- 인증서 내용의 해시 값을 직접 계산합니다.
- CA의 공개 키로 서명 값을 복호화하여 원래의 해시 값을 얻습니다.
- 두 해시 값을 비교하여 인증서가 위변조되지 않았는지 확인합니다.
- 특징:
- 데이터의 무결성, 인증, 부인 방지를 제공합니다.
HTTPS: SSL과 TLS
HTTPS (HyperText Transfer Protocol Secure)
- 정의:
- HTTP 메시지의 안전한 송수신을 위해 설계된 프로토콜로, 데이터 전송 시 암호화를 적용하여 보안을 강화합니다.
- 동작 과정:
- TCP 3-way Handshake: 신뢰할 수 있는 연결을 설정하기 위해 TCP의 3-way 핸드셰이크 과정을 거칩니다.
- TLS Handshake: 암호화 통신을 위한 키 교환 및 인증서를 기반으로 한 보안 설정을 수행합니다.
- 암호화된 메시지 송수신: 설정된 보안 채널을 통해 암호화된 데이터를 주고받습니다.
TLS 핸드셰이크 (TLS Handshake)
- 목적:
- 암호화 통신을 위한 세션 키를 교환하고, 서버와 클라이언트의 신원을 인증합니다.
- 과정:
- 클라이언트 헬로우 (Client Hello): 지원하는 암호 스위트, TLS 버전 등을 서버에 전달합니다.
- 서버 헬로우 (Server Hello): 선택된 암호 스위트와 서버의 인증서를 클라이언트에 전달합니다.
- 키 교환: 세션 키를 안전하게 교환하기 위해 공개 키 암호화를 사용합니다.
- 인증 및 핸드셰이크 완료: 양측이 세션 키를 사용해 암호화된 통신을 시작합니다.
암호 스위트 (Cipher Suite)
- 정의:
- 사용 가능한 암호화 알고리즘, 해시 함수, 키 교환 방식 등을 조합한 집합입니다.
- 구성 요소:
- 키 교환 알고리즘 (예: RSA, Diffie-Hellman)
- 인증 알고리즘 (예: RSA, ECDSA)
- 대칭 암호화 알고리즘 (예: AES, ChaCha20)
- 해시 알고리즘 (예: SHA-256, SHA-3)
SSL과 TLS
- SSL (Secure Sockets Layer):
- HTTPS 보안을 위해 처음 개발된 프로토콜로, 현재는 보안 취약점 때문에 사용이 권장되지 않습니다.
- TLS (Transport Layer Security):
- SSL의 후속 프로토콜로, 보안성을 강화하고 다양한 기능을 추가하여 현재 HTTPS의 표준 보안 프로토콜로 사용됩니다.
- 차이점:
- TLS는 SSL보다 보안이 강화되었으며, 프로토콜의 구조도 개선되었습니다. 현재 대부분의 보안 통신은 TLS를 기반으로 합니다.
반응형
'개발자 일상 > 혼자 공부하는 네트워크' 카테고리의 다른 글
혼자 공부하는 네트워크 7-3 무선 네트워크 공부 기록 (1) | 2024.10.13 |
---|---|
혼자 공부하는 네트워크 7-1 안전성을 위한 기술 공부 기록 (3) | 2024.10.13 |
혼자 공부하는 네트워크 5-3 HTTP 헤더와 HTTP 기반 기술 공부 기록 (0) | 2024.10.07 |
혼자 공부하는 네트워크 5-2 HTTP (1) | 2024.10.06 |
혼자 공부하는 네트워크 5-1 DNS와 자원 공부기록 (1) | 2024.10.01 |
댓글