목차
1.MITM(Man-in-the-Middle, 중간자) 공격?
MITM(Man-in-the-Middle, 중간자) 공격: 공격자가 두 당사자 간의 통신을 가로채거나 조작하는 사이버 공격 방식
정보를 암호화하여 전송하는데, 이 해킹 기법으로 뚫릴 위험이 있다.
이때 이 공격이 먹히는 이유는 서로의 공개키를 모르고, 이를 신뢰하기 때문이다.
공개키는 매번 1회용으로 나오기 때문에(한번 쓰고 버림) 방법이 없음.
해커가 중간에서 클라이언트에게는 자신이 서버인 척을 하고 서버에는 자신이 클라이언트인 척하며 정보를 탈취한다.
이러한 문제로 나온 것이 인증서이다.
인증서는 100% 완벽한 해결방법은 아니지만 현대에 가장 널리 쓰이고 있는 방식이다.
2. 인증서란?
인증서는 공개키 동기화 과정에서 발생할 수 있는 MITM(Man In The Middle) 공격 취약점을 해결하기 위해 도입.
인증서는 제3자인 인증기관(CA, Certificate Authority)의 서명으로, 공개키의 신뢰성을 확인하는 증명서다.
3. 인증서의 주요 기능
- 기밀성: 허가되지 않은 대상에게 정보가 노출되지 않도록 막는다.
- 인증: 정보의 소유자를 확인한다.
- 무결성: 정보의 변경 여부를 보장한다.
- 부인방지: 정보를 송/수신받았음을 보장한다.
4. X.509 인증서
X.509는 인증서의 형식과 규칙을 정의한 표준으로, 인증서의 다양한 필드와 정보를 포함한다. 각 인증서 버전에는 버전 정보, 서명 알고리즘, 발급자 정보, 유효기간, 공개키 정보 등이 포함된다. 다른 버전도 있지만 버전1만 알아도 상관없음.
X.509 인증서 필드 설명
Version | 인증서의 버전 (v1, v2, v3). 최신 버전은 v3으로, 다양한 확장 필드를 지원. |
Serial Number | 인증서의 고유 번호. CA가 발행한 인증서를 구별하기 위해 사용. |
Signature Algorithm ID | 서명에 사용된 알고리즘을 식별하는 ID. 예: SHA256, RSA 등이 포함될 수 있음. |
Issuer Name | 인증서를 발급한 인증기관(CA)의 이름. |
Validity Period | 인증서의 유효기간. validity from (시작 시간)과 validity to (만료 시간)로 구분. |
Subject Name | 인증서의 주체, 즉 공개키의 소유자. 일반적으로 DN(Distinguished Name) 형식으로 나타냄. |
Subject Public Key | 인증서가 포함하는 공개키 정보. |
Algorithm ID | 공개키 알고리즘의 ID (RSA, DSA 등). |
Public Key Value | 공개키 값. 인증서 내에 포함된 실제 공개키. |
Issuer Unique ID | 인증기관의 고유 식별자 (주로 v2 이상에서 사용). |
Subject Unique ID | 인증서 소유자의 고유 식별자 (주로 v2 이상에서 사용). |
Extensions | 인증서에 포함된 추가 정보. 예를 들어, CRL, 서브젝트 대체 이름, 키 사용 목적 등을 포함할 수 있음. 주로 v3에서 사용. |
CA로 부터 인증서를 발급-> 클라이언트와 서버가 서로 신뢰성을 확인하는 방법
- X.509방식으로 만들어진다.
5. 전자서명 생성 과정
- 메시지 해시화:
- 먼저, 서버의 공개키를 지정된 해시 알고리즘으로 해시(Hashing)하여 메시지 다이제스트(Message Digest)를 생성한다.
- 이 과정은 메시지의 무결성을 검증할 수 있도록 해시된 고정 크기의 값으로 변환된다.
- 메시지 다이제스트 암호화:
- 생성된 메시지 다이제스트를 인증기관(CA)의 개인키로 암호화한다.
- 이 암호화된 메시지 다이제스트가 바로 전자서명이 된다.
- 전자서명은 CA의 개인키로 서명된 메시지 다이제스트를 포함하고 있어, 인증서의 무결성을 보장한다.
전자서명 확인 과정
- 메시지 해시화:
- 수신자는 메시지(공개키)를 동일한 해시 알고리즘으로 해시하여 새로운 메시지 다이제스트(Message Digest)를 생성한다.
- 전자서명 복호화:
- 수신자는 CA의 공개키로 전자서명을 복호화한다.
- 복호화된 전자서명에서 원본 메시지 다이제스트를 추출한다.
- 메시지 다이제스트 비교:
- 수신자가 생성한 메시지 다이제스트와 전자서명에서 추출한 메시지 다이제스트를 비교한다.
- 두 다이제스트가 동일하면 메시지가 변경되지 않았음을 확인할 수 있으며, 공개키에 의해 메시지가 신뢰될 수 있다.
정리
- 전자서명 생성은 메시지 다이제스트를 CA의 개인키로 암호화하여 전자서명을 만든다.
- 전자서명 확인은 CA의 공개키로 전자서명을 복호화하고, 메시지 다이제스트를 비교하여 메시지의 무결성과 신뢰성을 검증한다.
위에서 PKI 구조가 현재 인증서를 통한 암호화 정보통신의 방법이라고 했다.
이는 보통 삼격형의 신뢰구조를 갖는다.
6. PKI 구조
여기서 의문점.
한국의 가장 높은 인증서 발급 기관은 KISA(더 높은 기관은 미래창조과학부가 있음)인데, 이는 클라이언트가 국가기관을 신뢰한다는 전제하에 이루어진다.
하지만 해외 사이트에 접속할 때는 어떠한 기준으로 신뢰를 증명하는걸까?
7. 혼합구조
이는 혼합구조로 CA끼리 서로 신뢰하고 있는 상황에서 인증을 받는 것이기 때문.
계층구조와 네트워크 구조의 복합형
-각 국가에서 하나 또는두개의 계층구조를 구성하고 계층구조 간에서 는네트워크 구조로 신뢰관계를 구성함
*중요한 점은 CA의 사설키가 어디에도 공개된 적이 없어야 된다는 점이다. CA의 보안이 취약하다면 이 방식이 무의미해질 수 있다.
'Cryptology' 카테고리의 다른 글
리눅스 방화벽 및 서버 구축 실습 (vm 4개로 서로 통신, log기록설정 등 해보기) (0) | 2025.05.27 |
---|---|
SSL - HTTPS, VSFTPS 구성해보기, 인증서 만들기 (0) | 2025.04.30 |
암호화 - 단방향 암호(hash, MAC), 양방향 암호(대칭, 비대칭) (0) | 2025.04.23 |
SSH, SCP, firewalld, iptables 작동방식, 사용법 (0) | 2025.04.23 |
암호학(Cryptology)이란? 요소, 과정, 종류 (0) | 2025.04.22 |