대칭키 인터넷 환경 문제
Key → '정보'
PC ↔ Server (비밀 통신)
1. PC : 문서 → Symmetric Key로 암호화하여 Sever에 전달
2. Server : 암호화된 문서 → 복호화 필요
이 정보는 어떻게 안전하게 보낼 것인가? 방법이 없음
비대칭키로 해결
PC ↔ Server (비밀 통신)
PC → Server
1. PC, Server : Key 쌍으로 생성 (Public + Private) → 시간이 오래 걸림
2. Internet : key를 변경함 (Pc Public → Server로, Server Public → PC로)
3. PC : 평문을 Server Public Key로 암호문을 만들고 Tunnel을 통해 Server로 전송
4. Server : 자신이 가지고 있는 Server Private Key로 암호문을 복호화
Server → PC
1. Server : PC에서 보내준 Public Key로 암호화
2. PC : PC Private(자신의 Private) Key로 복호화
Tunnel : TCP/IP 연결한 후 Key 교환 후 비밀통신을 하고, 그 TCP/IP 통신 세션을 Tunnel이라 함(secured session)
모든 암호에는 유통기한이 있다.
혼합 사용으로 효율 극대화
PC ↔ Server (비밀 통신)
1. Server : 비대칭키 쌍 생성 (Server Public + Server Private)
2. PC : 대칭키 생성 (PC Symmetric Key)
3. Server Public Key(보안성 부여, 암호화) → PC로 전달
4. Server Public Key로 PC Symmetric Key를 암호문을 만들고 Tunnel을 통해 Server로 전송
5. Server Private Key로 PC Symmetric Key를 복호화
PC에서 평문을 대칭키로 암호화 → Server에서는 가지고 있는 PC가 만든 대칭키가 있음 (복호화 가능)
PC가 만든 대칭키 = PC Symmetric Key = Session Key
Server에 연결된 PC가 여러대 : 각자 개인의 키를 따로 씀(통신 주체마다 Key가 달라짐 → 보안성이 뛰어남) → Session Key 여러개 존재
문제점
PC가 수신한 Publick Key는 서버가 보낸 것이라 확신(신뢰)할 수 있는가?
중간자 공격(MITM: Man In The Middle)은 공격자가 사용자의 인터넷 서버와 해당 인터넷 트래픽의 목적지 사이에 끼어들어 데이터 전송을 가로채는 공격 → 수신한 Key를 신뢰할 수 없음
PC에서는 검증 절차를 진행해야 함
대책
Public + Server : Key쌍 → 만들 때 비용이 많이 든다. 매번 생성할 것인가?
매번생성X → 1회 생성 / 6개월
1. Web Server (USER) : 인증서 발급 요청하는 사용자
2. RA (Registration Authority : 등록 권한) : 인증서를 신청하는 사용자의 신원을 확인하고 사용자 정보를 CA로 전송, CA발급한 인증서를 사용자에게 발행
3. CA (Certificate Authority : 인증권한) : 인증서를 발급하는 솔루션 또는 기관, 인증서를 이용한 전자서명을 통해 데이터 무결성, 기밀성등 제공
SSL 인증서 (유효기간 보통 1년) - Server Public Key가 Public Key를 포함한 X.509형식의 인증서로 바뀜
HTTPS 통신 : 인증서가 전달이 됨
기관 인증서 : CA의 Public Key
PKI 인증체계
- PAA(Policy Approval Authorities, 과학기술정보통신부) : 공인 인증서에 대한 정책을 결정하고 하위 기관의 정책을 승인하는 기 관이다. 우리나라는 미래창조과학부가 담당한다.
- PCA(Policy Certification Authorities, 정책인증기관) : RootCA를 발급하고 기본 정책을 수립하는 기관으로, 우리나라의 KISA(Korea Information Security Agency, 한국정보보호진흥 원)가 여기에 해당한다. RootCA는 모든 인증서의 기초가 되는 인 증서를 보유하고 있으며, 인증서에 포함된 공개키에 대응되는 개 인키로 생성한 자체 서명 인증서를 사용한다.
- CA(Certification Authority, 인증기관) : PCA의 하위 기관으로 인증서 발급과 취소 등의 실질적인 업무 를 하는 기관이다. yessign(금융결제원), NCA(한국 전산원) 등이 이에 속하며, 상호 간 신뢰한다. → 민간에서도 사용 가능하도록 법이 바뀜(은행들 인증서, 네이버, 카카오 인증서 등장)
- RA(Registration Authority, 등록기관) : 사용자의 신분을 확인하고 CA 간 인터페이스를 제공하는 기관 이다.
CA의 Private key로 Hash결과가 암호화 되어 있으며 검증 과정에서는 PC에 사전 배포된 CA Public key(기관 인증서 에 포함)로 암호를 풀어 검증할 수 있다.
SSL 인증서
SSL 인증서를 검증하는 방법은 인증서를 발급한 CA의 인증 서에 포함된 Public key를 이용해 SSL 인증서 Hash 결과를 복호화 하면 된다.
X.509 형식을 가지고 있음
X.509 공인 인증서 구조
certmgr.msc (window에서 명령어)
CA의 Private key로 Hash결과가 암호화 되어 있으며 검증 과정에서는 PC에 사전 배포된 CA Public key(기관 인증서 에 포함)로 암호를 풀어 (SSL 인증서를) 검증할 수 있다.
* 참고
'CE > SSL & PKI' 카테고리의 다른 글
[CS] 암호기술 - 대칭키 (Symmetric key) / 비대칭키 (Asymmetric key) (0) | 2023.09.27 |
---|---|
[CS] Checksum, Hash (0) | 2023.09.26 |
댓글