일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Trino
- kubeadm
- kubernetes
- AWS
- aws s3
- Kafka
- zookeeper
- OS
- tcp
- CVAT
- java
- Python
- airflow
- helm
- EC2
- Spring
- Operating System
- jvm
- MAC address
- Vision
- CSV
- JavaScript
- Network
- ip
- Packet
- docker
- PostgreSQL
- log
- kubectl
- grafana
Archives
- Today
- Total
JUST WRITE
SSL 본문
SSL
Secure Socket Layer
- CA(Certificate Authority) 서드 파티로부터 Server와 Client 인증하는 데 사용
- TLS(Transport Layer Security)가 표준화되면서 SSL로 바뀜
- TCP/IP 사용하는 통신에 적용, 전송계층(Transport Layer)에서 보안, 데이터 무결성 확보
- Netscape사에서 발명 => IETF의 관리로 TLS로 명명(TLS 1.0은 SSL 3.0 계승)
SSL 암호화
대칭키 Symmetric-key Cryptography
- 동일한 키로 암호화와 복호화를 같이 하는 방식
- DES
- Data Encryption Standard
- 56bit의 key를 이용하여 64bit 암호화
- Feistel Cipher 방식 이용
- 현재는 취약한 방식으로 사용 X
공개키 Public-key Cryptography
- 한쌍의 키를 통해 암호화, 복호화를 하는 방식
- RSA
- Ron Rivest, Adi Shamir, Leonard Adleman의 이름에서 차용
- 공개키(Public key), 개인키(Private key)를 이용
- 공개키로 암호화하면 개인키로 복호화 -> 특정받는 사람이 있는 경우(암호화)
- 개인키로 암호화하면 공개키로 암호화 -> 보낸 사람을 확실하게 알아야 할 경우(전자서명)
SSL 인증서
- Client와 Server 간 통신을 제3자가 보증해주는 전자화된 문서
- 서비스 정보(CA, 서비스 도메인, 유효기간 등), 공개키 정보(공개키 내용과 암호화 방식) 포함
- 동작 방식
- Client가 Server 접속, Server가 Client에게 인증서 정보 전달
- Client(Web Browser)는 인증서 발급한 CA가 자신이 가지고 있는 CA 리스트에 있는지 확인
- 해당 CA의 공개키로 인증서를 복호화
- 복호화가 가능하다면 인증서는 공인된 CA에서 제공한 것으로 판단, 검증 완료
CA
- Certificate Authority
- 인증서를 보장하는 공인된 민간기업
- Root Certufucate라고도 하며 신뢰성이 엄격하게 공인된 기업만 가능
- CA는 서비스가 제출한 인증서를 자신의 비공개키로 암호화
- Browser는 내부적으로 CA 리스트와 각 CA 공개키를 소유
- 점유율
- Symantec(VeriSign, Thawte, Geotrust) -> 42.9%
- Comodo -> 26%
- GoDaddy -> 14%
- GlobalSign -> 7.7%
SSL 동작 방식
- 대칭키와 공개키를 혼합해서 사용
- 실제 데이터는 대칭키로 암호화
- 대칭키는 공개키로 암호화
- 순서 : HandShake -> Transfer -> Session Close
- Client Hello
- Client -> Server 데이터 전송
- Client에서 생성한 랜덤 데이터, Client에서 지원하는 암호화 방식, Session ID(이전에 HandShake 있었던 경우)
- Server Hello
- Server -> Client에 데이터 전송
- Server에서 생성한 랜덤 데이터, Client에서 지원하는 암호화 방식 중 Server가 선택한 방식, 인증서
- Server Certificate - Server Hello Done
- Client 인증서 확인을 위해 Browser에서 CA 리스트 체크
- 없으면 경고, 있을 경우 해당 CA의 공개키로 인증서 복호화 -> 복호화 정상적으로 되면 인증 확인
- Exchange Pre-master Secret
- Client에서 생성한 랜덤 데이터와 Server에서 생성한 랜덤 데이터 조합 -> Pre-master Secret 대칭키 생성
- Pre-master Secret 키를 인증서 복호화한 공개키로 암호화
- 암호화한 Pre-master Secret 키를 Server에 전송
- Master Secret - Session Key
- Server에서 개인키로 Pre-master Secret 키 복호화
- Server, Client 모두 일련의 과정을 토해 Master-Secret 이란 값 생성
- Master-Secret은 Session Key값 생성, Session Key는 데이터 송수신 시에 대칭키로 사용
- 해당 Session 만료되면 폐기
- Client Hello
[참고사이트]
더보기
DES 암호 알고리즘
1. DES ( Data Encryption Standard ) 암호 알고리즘이란? DES 알고리즘은 암호문을 작성할 때 사용하는 암호키와 암호문을 해독할 때 사용하는 해독키가 같다. 따라서 이 키는 절대로 외부에 유출되지 않
www.crocus.co.kr
RSA 암호 - 위키백과, 우리 모두의 백과사전
RSA 암호는 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한
ko.wikipedia.org
154. [Security] SSL과 인증서 구조 이해하기 : CA (Certificate Authority) 를 중심으로
이번 포스트에서는 인증서의 구조와 동작 원리에 대해 알아보고, 이것이 실제 SSL 기반의 보안 연결에서...
blog.naver.com
728x90
반응형
'Network' 카테고리의 다른 글
Synchronous vs Asynchronous (0) | 2021.11.12 |
---|---|
GET vs POST (0) | 2021.09.22 |
HTTP vs HTTPS (0) | 2021.09.17 |
Session Clustering (0) | 2021.09.02 |
Load Balancing (0) | 2021.08.31 |
Comments