공개키 기반 구조의 개념
공개키 기반 구조
- 인터넷에서 신분증을 검증해주는 관청
- 내 신분을 증명해주는 곳입니다.
동사무소 -> 구청 -> 시청... 같이 구조화됐습니다.
CA(Certificate authority) -> 내 신분을 인증해 주는 곳, 공인인증서입니다.
구조를 가지고 있습니다.
RA에 나를 등록합니다.
CA는 인증해 주는 기관입니다.
PCA 인증을 어떻게 할 것인가를 고민하는 곳입니다.
PAA 정책을 최종 통과시켜주는 곳입니다.
RA라는 인터페이스를 통해 CA에서 인증서를 받을 수 있습니다.
인증서를 발급받고 나면 어느 인증기관에서 받은 건지 확인할 수 있습니다.
대부분은 yessign, NCA에서 받습니다.
정책 인증기관(PCA)에서는 인증서의 인증서를 만듭니다.
기초가 되는, 만능키 같은 인증서를 가지고 있습니다.
여기서 공개키를 사용합니다. 공개키 안에 인증서가 포함되어 있습니다.
정책 승인기관(PAA)은 최상위 기관입니다.
공인인증서에 대한 이해
공개키는 누구나 사용할 수 있습니다.
그때 공개 키라는 것도 누구의 공개키인지 확인해야 합니다.
해커의 공개 키면 위험하겠지요?
A라는 사람의 공개키가 맞다는 것을 확인한 것을 써야 합니다.
그 A라는 사람의 공개키가 맞아, 소유자의 정보를 같이 가지고 만들어 놓은 것이 "공인인증서"입니다.
공인인증 서안에는 공개키와 그것의 소유자의 정보가 같이 들어가 있습니다.
인증기관(CA)이 서명을 해서 넣어줍니다.
NPKI파일에서 여러 곳에서 받은 인증서를 볼 수 있습니다.
인증서의 기본영역
기본적으로 해시 암호화 알고리즘으로 암호화합니다.
CA의 정보를 구조화해서 보여줍니다.
인증서는 유효기간이 있습니다.
제일 중요한 게 인증서 소유자 정보입니다.
공개키도 중요합니다.
인증서에는 인증기관에서 받은 서명이 있습니다.
서명은 인증기관의 개인키로 서명을 합니다.
그 개인키에 해당되는 공개키, 식별자를 넣어줘서 나중에 확인할 수 있습니다.
인증서가 패기 되었는지 확인해야 합니다.
CRL 배포 지점으로 확인합니다.
공개키와 사설 키는 쌍으로 존재하고 공개키는 누구나 얻을 수 있습니다.
사설 키만 풀 수 있습니다.
신규 발급, 사용기간이 만료되면 인증서를패기 해야 합니다.
그래서 인증기관들은 폐기된 인증서의 목록을 주기적으로 발급합니다.
이 목록이 인증서 폐기 목록(CRL)입니다.
CRL도 합법적인 인증기관에서 만들어진 거다~ 하고 전자서명을 붙입니다.
CRL 안에 내용에 따라서
- 좋은 목록 - 폐기되지 않은 인증서도 가지고 있습니다.
- 나쁜 목록 - 순수 폐기된 인증서만 가지고 있습니다.
전자서명
인증서에 증거를 남겨야 합니다.
내가 주민등록증과 함께 "내가 이문서를 확인하게 맞다"라는 확인을 도장으로 합니다.
도장은 -> A라는 사람의 도장이야 라는 것도 등록하게 되어있습니다.
즉, 도장도 등록하고 도장을 쓰는 것도 등록합니다.
온라인에서도 비슷합니다.
전자서명이라는 것이 인감도장으로 직인을 찍는 것 같습니다.
전자계약서를 각자 보관합니다.
어떤 절차로 전자서명이 이뤄지는가?
철수가
- 문서를 해시에 통과시켜서 해시값을 받습니다.
- 해시값으로 원문서를 복원할 수 없습니다.
철수(서명자)
- 해쉬값을 철수의 개인키로 암호화했습니다.
- 철수만이 할 수 있는 행위입니다.
- 제삼자들은 철수가 암호화했는지 안 했는지 알 수 있습니다.
- 즉, 해시한 값만 암호화합니다.
- 원문 + 암호화된 해시값이 함께 있는 것입니다.
영희(받는 사람)
영희는 전자서명이 맞는지 확인할 수 있습니다.
- 영희가 문서를 동일한 해시함수를 돌려서 해시값을 만듭니다.
- 철수의 공개키(공인인증서)를 얻어서 전자서명을 해시값으로 해독합니다.
- 해독된 해시값과 영희가 만든 해시값을 비교합니다.
- 같다면 철수가 서명한 것이 맞겠지요
전자서명이 제공하는 기능 5가지
- 위조 불가 Unforgeable ): 서명자만이 서명문을 생성할 수 있음 - 서명자의 사설키로 만듭니다.
- 인증 (Authentication): 서명 문의 서명자를 확인할 수 있음 - 철수만 암호화할 수 있어!
- 재사용 불가 (Not Reusable): 서명 문의 해시값을 전자서명에 이용하므로 한 번 생성된 서명을 다른 문서의 서명으로 사용할 수 없음 - A문서에 있는 서명을 B로 옮길라고 하는데 ->원문을 해시화 해서 보내기 때문에 해시값이 달라집니다.
- 변경 불가 (Unalterable): 서명된 문서는 내용을 변경할 수 없기 때문에 데이터가 변조되지 않았음을 보장하는 무결성을 만족함
- 부인방지 (Non Repudiation): 서명자가 나중에 서명한 사실을 부인할 수 없음 - 철수만 암호화할 수 있어!
전자서명을 사용하는 알고리즘입니다.
전자 봉투
기본적으로 원본 문서가 암호화되지 않고 평문으로 전달됩니다.
원문이 검증을 위해 그대로 전달됩니다.
그래서 기밀성이 약합니다.
전자 봉투는 전달하고자 하는 메시지 자체를 암호화하여 보내고, 암호화 키는 다른 사람에게 가져가게 하는 것을 암호학적으로 구현한 것
본무도 암호화
암호화 키는 별도로 안전하게 전송
- 철수는 전자 봉투를 사용하기 위해 우선 전자서명을 생성하고 전자서명과 원문 , 그리고 자신의 공개키가 들어있는 인증서를 비밀키(DES 알고리즘 등에 사용되는 대칭키)를 사용하여 암호화.
- 전자서명 세트와 인증서를 암호화한 비밀키를 영희(수신자)의 공개키로 암호화하는데(=수신자의 비밀키로 풀 수 있다) , 이것이 전자 봉투가 됨.
- 철수는 최종적으로 비밀키로 암화 화한 결과와 비밀키가 암호화된 전자 봉투를 영희에게 보냄
그림으로 설명합니다.
원본이 그대로 노출하는 걸 방지하기 위해
(원본 + 전자서명 + 철수의 인증서)
합쳐서 비밀키로 암호화합니다.
이 비밀키를 영희(수신자)만 풀 수 있게 암호화를 해야 합니다.
비밀키를 영희의 공개키로 암호화합니다.
이것이 전자 봉투가 됩니다.
전자 봉투의 복호화
- 영희는 전자 봉투를 영희의 사설키로 풀 수 있습니다.
- 비밀키를 획득하고 암호문(원본 + 전자서명 + 철수의 인증서)을 풀 수 있습니다.
- 암호문을 풀어서 (원본 + 전자서명 + 철수의 인증서)를 얻습니다.
- 여기서 철수의 인증서로 전자서명을 복호화합니다.
- 원문 해시함수 돌린 값 == 전자서명의 해시값이 같다면
- "아! 철수가 쓴 게 맞는구나" 합니다.
SET(전자상거래 신용카드에서 사용하는 프로토콜)
신용카드 결제를 위한 프로토콜입니다.
- 루트 CA가
- 신용카드 회사와 은행의 CA를 인증해 줍니다.
- 신용카드, 은행의 인증서는 모두 루트 CA에서 만들어집니다.
신용카드 사용자가 한단에 한 번씩 대금을 지불합니다.
- 상점은 SET을 이용해 판매합니다.
- 상점에게는 카드의 정보를 전달하지 않습니다.
- 신용카드 회사도 어떤 물품을 구매했는지 모릅니다.
- 그냥 은행에 돈만 줍니다.
계층별 주요 암호화 프로토콜
2 계층 암호화 프로토콜
홉 바이 홉 프로토콜입니다.
vpn을 사용해서 가상망을 사용해서 안전하게 통신합니다.
공통점 - 상위계층 여러 프로토콜 지원, 데이터 암호화/압축, 사용자 인증
차이점
pptp
- 하나의 터널만 지원합니다.
L2TP
- 헤더 압축, 터널 인증 기능이 없습니다.
3 계층 암호화 플로토콜입니다.
- 인증 기능(AH)
데이터 무결성 체크해줍니다.
재생 공격(다시 보내는 것) 막을 수 있습니다.
- 데이터 부분을 암호화하는 기능(ESP)
데이터를 암호화해줍니다.
- 비밀키 교환 기능(IKE)
키 교환을 해주는 파트입니다.
8시간 동안 보안 유지합니다.
4 계층 암호화 프로토콜
4 계층을 안전하게 만들어 줍니다.
국내에서는 40비트를 암호화를 씁니다.
4,5 계층까지 커버가 가능합니다.
암호화뿐만 아니라
서버인증 - 우리가 서버를 인증하는 거(정확한 서버인지)
클라이언트 - 서버가 우리를 인증하는 것
암호화 세션 - 세션을 암호화해줍니다.
'Computer Science > 정보보호' 카테고리의 다른 글
방화벽, IDS(침입 탐지 시스템) , IPS(침입 차단 시스템), 허니팟 (0) | 2021.12.02 |
---|---|
악성 코드 (0) | 2021.12.02 |
암호화2 (0) | 2021.11.25 |
암호화 1 - 대칭 암호화 방식 (0) | 2021.11.18 |
Dos와 DDos 공격 (0) | 2021.11.18 |