1. 암호학 개요
(1) 목적
1) 암호학
- 주요 목적: 기밀성, 무결성, 인증, 부인방지
2) 암호화
- 주요 목적: 기밀성
- 권한 없는 당사자가 암호화된 데이터를 읽을 수 없도록 하여 기밀성을 제공하는 것
- 승인된 당사자는 키를 사용하여 원래 데이터를 볼 수 있도록 하는 것
3) 해시 함수
- 주요 목적: 무결성
- 입력 데이터에 대해 고유하고 고정된 크기의 해시 값을 생성하여 데이터 무결성을 보장하는 것
특성 | 보호 기술 |
기밀성 | 암호 |
무결성 | 암호, 해시 함수, 메시지 인증 코드(MAC), 전자서명 |
인증 | 암호, 메시지 인증 코드(MAC), 전자서명 |
부인방지 | 전자서명 |
(2) 암호 기법 분류
1) 대칭 키 및 비대칭 키 암호
◆ 대칭 키 암호(비밀 키 암호)
- 암호화 및 복호화에 동일한 키를 사용하는 암호화 방식
- 대칭 키 암호화 알고리즘: 블록 암호, 스트림 암호
- 치환 암호, 전치 암호도 대칭 키 암호에 해당함
- Ex) DES, AES 등
◆ 비대칭 키 암호(공개 키 암호)
- 공개 키와 개인 키로 암호화 및 복호화를 하는 암호화 방식
- 대칭 키 암호에 비해 사전에 키 전달 문제가 없지만 속도는 느리다.
- Ex) RSA, ECC 등
구분 | 장점 | 단점 |
대칭 키 암호 시스템 | - 암복호화 속도 빠름 - 키 길이가 짧음 |
- 키 분배 어려움 - 사용자 증가에 따라 관리해야 할 키의 개수가 상대적으로 많음 - 응용 분야 제한적 |
비대칭 키 암호 시스템 | - 키 분배 용이함 - 사용자 증가에 따라 관리해야 할 키의 개수가 상대적으로 적음 - 여러 분야 응용이 가능함 |
- 암복호화 속도가 느림 - 키 길이 긺 |
2) 치환 암호와 전치 암호
◆ 치환 암호(Substitution Cipher)
- 미리 정의된 규칙 또는 키에 따라 평문 문자를 암호문 문자로 변경하는 것
- 치환 암호의 키는 평문 문자와 암호문 문자 간의 매핑을 결정
- 문자의 순서는 유지됨
- Ex) 카이사르 암호, 알파벳 암호 등
◆ 전치 암호(Transposition Cipher)
- 실제 문자를 변경하지 않고 순서를 재정렬하는 것
- 전치 암호의 키는 재배열 패턴을 결정
- Ex) Rail Fence 등
3) 블록 암호와 스트림 암호
◆ 블록 암호(Block Cipher)
- 고정 크기 블록의 데이터를 암호화 또는 복호화하는 알고리즘
- 특정 키와 암호화 알고리즘을 사용하여 평문 블록을 암호문 블록으로 변환
- Ex) DES, AES 등
◆ 스트림 암호(Stream Cipher)
- 데이터의 개별 비트 또는 바이트에서 작동하여 한번에 하나씩 암호화 또는 복호화
- 블록 암호보다 암호화 시간이 빠름
- 암호화: C=A⊕B. 복호화: A=C⊕B
> 암호화 방식은 평문과 키 스트림이 XOR(배타적 논리합 연산)해서 생성
- Ex) RC4 등
4) 기타 암호 방식
◆ 링크 암호화(Link Encryption)
- 보호범위: 두 엔드포인트 또는 네트워크 노드 간의 통신 링크
- 암호화 및 복호화는 엔드포인트에서 발생
- ISP나 통신업자가 암호화 사용 여부 선택
- Ex) SSL, TLS 등
◆ 종단간 암호화(End-to-End Encryption)
- 보호범위: 발신자 엔트포인트에서 수신자 엔트포인트까지
- 암호화 및 복호화는 엔드포인트에서만 발생
- 데이터는 중간 지점이나 서버를 통과하는 동안에도 암호화된 상태로 유지
- 사용자가 암호화 사용 여부 선택
- Ex) E2EE 제공하는 메시징 앱, E2EE 제공하는 이메일 서비스, 구글 드라이브와 같은 파일 저장 서비스 등
◆ 하드웨어 암호시스템
- 컴퓨터와 통신기기의 내부버스와 외부 인터페이스에 전용 암호처리용 하드웨어를 설치하여 데이터를 암호화
- 컴퓨터 CPU에 부담을 주지 않고 빠른 속도로 암호화 가능
◆ 소프트웨어 암호시스템
- 암호처리용 소프트웨어를 사용한 데이터 암호화, 저렴한 비용으로 실현 가능
(3) 암호문 공격 유형
제3자가 암호문으로부터 평문을 찾으려는 시도를 암호 해독이라고 한다.
※ 해독과 복호화의 차이: 암호 해독은 키를 모르는 제3자가 키를 찾거나 평문을 찾아내는 비정상적인 과정
케르히호프 원리 : 암호해독자는 현재 사용되고 있는 암호방식을 알고 있다는 전제하에 암호해독 시도하는 것으로 간주
1) 암호문 단독 공격(COA, Cipher Only Attack)
- 암호문(C)를 갖고 이로부터 평문(P)이나 키(K)를 해독하는 방법
- 평문(P)의 통계적 성질, 문장의 특성 등을 사용
2) 알려진 평문 공격(KPA, Know Plaintext Attak)
- 암호문(C)과 일부 평문(P)을 갖고 이로부터 평문(P)이나 키(K)를 해독하는 방법
3) 선택 평문 공격(CPA, Chosen Plaintext Attack)
- 선택한 평문(P)과 그에 대한 암호문(C)을 갖고 이로부터 평문(P)이나 키(K)를 해독하는 방법
- Ex) P와 K에 대하여 C = P xor K를 얻는 암호시스템이 주어져 있는 경우
4) 선택 암호문 공격(CCA, Chosen Ciphertext Attack)
- 선택한 암호문(C)과 그에 평문(P)을 갖고 이로부터 키(K)를 해독하는 방법
(4) 암호화 알고리즘 안전성 평가
1) 안전성 개념
- 암호시스템을 공격하기 위해 필요한 계산량이 매우 커 현실적으로 공격할 수 없는 경우, 계산적으로 안전하다.
- 무한한 계산능력이 있어도 공격할 수 없는 경우, 무조건적으로 안전하다.
2) 암호화 기술 평가
- 암호화 알고리즘 평가: 정보보호제품에 탑재된 암호화 알고리즘에 대한 안전성 평가이며 알고리즘 자체의 이론적 안전성만을 평가
- 암호화 모듈 평가: 암호 서비스를 제공하는 암호화 모듈의 안전성에 대한 평가
> CMVP : 미국 NIST와 캐나다 주정부가 공동으로 개발, 암호기술 구현 적합성, 암호키 운용 및 관리, 물리적 보안 평가
- 정보보호제품 평가: 암호화 모듈을 탑재한 정보보호제품에 대한 안전성 평가
> CC(Common Criteria) 인증: ISO/IEC 15408에 등록된 국제 표준 정보보호제품 평가·인증제도
- 응용시스템 평가: 각 제품을 상호 연동하여 구성되는 시스템에 대한 안전성 평가
(5) 지적재산권 보호 방법
1) 스테가노그래피(Steganography)
- 이미지 파일 안에 메시지 숨기는 방법
- 삽입과 변조 두 방법 존재
2) 디지털 워터마킹(Digital Watermarking)
- 원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술
- 목적: 소유권 주장, 저작권 보호, 콘텐츠 인증
- 주로 사람 눈에 잘 보이도록 디자인하여 콘텐츠 내 표시되거나 포함됨
기법 | 설명 |
Fragile Watermarking (연성 워터마킹) |
고의로 내성이 약한 워터마크를 삽입해 잘 소멸되도록 만들어 워터마크가 검출되지 않거나 변조된 부분에 대하여 원본의 훼손 여부를 알아내는 방법 목적: 위변조 검출, 저작물 변경 감지 |
Robust Watermarking (강성 워터마킹) |
이미지나 동영상 등에 워터마크를 삽입 후 해당 파일이 변경되더라도 워터마크가 변형되지 않고 유지되도록 하는 방법 목적: 저작권 보호, 소유권 주장 |
3) 핑거프린팅(Fingerprinting)
- 디지털 콘텐츠를 고유하게 식별하는데 사용하는 기술
- 목적: 콘텐츠 식별 및 추적
4) 디지털 저작권 관리(DRM, Digita Rights Management)
- 디지털 콘텐츠의 접근·사용·배포를 제어하고 관리하는 기술
- 목적: 디지털 콘텐츠의 무단 복사·공유·수정·소비 방지
* 즉, 콘텐츠에 기밀성을 제공한다는 것도 DRM의 주요 기능
구성요소 | 설명 |
메타데이터(Metadata) | 콘텐츠 생명주기 범위 내에서 관리되어야 할 각종 데이터의 구조 및 정보 |
패키저(Packager) | 보호대상인 콘텐츠를 메타데이터와 함께 시큐어 컨테이너 포캣으로 패키징하는 모듈 |
시큐어 컨테이너(Secure Container) | DRM 보호범위 내에서 유통되는 콘텐츠의 배포단위 |
식별자(Idntifier) | 콘텐츠를 식별하기 위한 식별자 |
DRM 제어기(DRM Controller) | 콘텐츠를 이용하는 사용자의 PC 또는 디바이스 플랫폼에서 콘텐츠가 라이센스에 명시된 범위 내에서 지속적으로 보호될 수 있도록 프로세스를 제어 |
콘텐츠(Contents), 사용자(User), 접근권한(Permission), 상태(Condition) | |
콘텐츠 제공자 | 콘텐츠에 대한 디지털 권리를 가지고 권리 보호를 원하는 DRM 사용자 |
콘텐츠 배포자 | 온라인 쇼핑몰과 같은 콘텐츠 유통 채널을 제공하는 DRM 사용자 |
콘텐츠 소비자 |
클리어링하우스를 통해 콘텐츠에 대한 권리를 요청하고 합당한 대금을 지불 |
클리어링하우스 | 디지털 허가를 소비자에게 발급해주고 콘텐츠 제공자에게 로열티 수수료를 지불하며 배포자에게 배급 수수료를 지불하는 재정적거래를 취급(라이센스 발급 및 내역 관리 시스템) 모든 소비자에게 허가된 사용을 기록하는 책임 있음 |
기술 | 설명 |
PKI 기반 불법복제 방지 기술 | 콘텐츠를 소비자의 암호화 키로 패키징함으로써 제3자가 이용할 수 없도록 하는 방식 단점: 소비자에게 종속적인 암호화를 수행함에 따라 콘텐츠 배포 서버의 프로세스 부담이 가중. 디지털 콘텐츠 유통에 부적합 |
DOI 기반 저작권 보호기술 | 저작권 관리정보를 바탕으로 저작권 인증을 부여하는 기술 단점: 불법복제 및 불법사용 방지기능이 제공되지 않아서 적극적인 저작권 보호 불가 |
템퍼방지 기술 | 복제방지 등 위조에 대한 저항성 |
2. 대칭 키 암호(비밀 키 암호)
(1) 대칭 키 암호화 알고리즘
1) 블록 암호
◆ 구성요소
- 현대 블록암호는 확산과 혼돈 성질을 만족시키기 위하여 전치 요소(P박스)와 치환 요소(S박스) 등을 결합하여 설계됨
※ 확산(Diffusion): 암호문과 평문 사이의 관계를 숨기는 것. 평문의 통계적 성질을 암호문 전반에 퍼뜨려 숨긴다.
※ 혼돈(Confusion): 암호문과 키의 관계를 숨기는 것. 키의 단일 비트가 변하면 암호문의 거의 모든 비트가 변한다.
◆ P박스
- 전치 암호를 병렬적으로 수행
구분 | 입력(n), 출력(m) | 역함수 | 사용 |
단순(straight) | n = m | O | |
축소(compression) | n > m | X | 다음 비트 수 줄이고자 사용 |
확장(expansion) | n < m | X | 다음 비트 수 늘리고자 사용 |
◆ S박스
- 치환 암호의 축소 모형으로 생각
- 입력(n)과 출력(m) 개수가 달라도 되며, 역함수 존재할수도 있고 안할수도 있다.
- 단일 치환 암호 해독방법은 빈도 분석법이 있다.
◆ 합성 암호(Product Cipher)
- 라운드(Round) : 반복적으로 사용되는 합성암호
- 합성암호의 두 종류: 페이스텔(Feistal) 구조, SPN 구조
이름 | 설명 |
Feistal 구조 | 입력을 좌우블록으로 분할하여 한 블록을 라운드 함수에 적용시킨 후의 출력값을 다른 블록에 적용하는 과정을 좌우블록에 대해 반복적으로 시행하는 방식 강도를 결정짓는 요소는 평문 블록의 길이, 키의 길이, 라운드의 수 암호화 과정과 복호화 과정은 동일(순서 역순), 3라운드 이상이며, 짝수 라운드로 구성 종류 : DES, SEED, MISTY, RC5, Blowfish |
SPN 구조 | S박스의 출력을 P박스로 전치하는 과정을 반복하는 방식. 병렬성을 제공 종류 : AES, ARIA, Rjindael, CRYPTON, Square, Serpent |
◆ 블록암호에 대한 공격 유형
공격 | 설명 |
차분 분석(Differential Cryptanalysis) | 두 개의 평문 블록들의 비트차이에 대하여 대응하는 암호문 블록들의 비트차이를 이용하여 키 찾기(CPA 해당) |
선형 분석(Linear Cryptanalysis) | 알고리즘 내부 비선형 구조를 적당히 선형화시켜 키 찾기(KPA 해당) ex) P(7,8,15,24,29)xorC(7,8,15,24,29)=K1(22)xorK3(22)를 만족하는 알려진 평문-암호쌍을 이용하여 해독 |
전수 공격법(Exhaustive key search) | 암호화할 때 일어날 수 있는 가능한 모든 경우를 조사하는 방법 |
수학적 분석(Mathematical Analysis) | 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독하는 방법 |
통계적 분석(Statistical Analysis) | 암호문에 대한 평문 각 단어의 빈도에 관한 자료를 포함하는 지금까지 알려진 모든 통계적인 자룔를 이용하여 해독하는 방법 |
2) 스트림 암호
◆ 동기식 스트림 암호
- 암호문을 복호화하여 평문을 찾을때, 키 스트림과 암호문 사이에 동기가 필요한 시스템
- 키는 평문 혹은 암호문과 독립적 -> 전송 도중 변조되어도 후속 암호문에 오류 영향 파급X
- 의도적인 변조가 복호화단계에서 검출되지 않음
- 종류: OTP(One-Time-Pad), FSR(Feedback Shift Register), LFSR(Linear Feedback Shift Register), NLFSR
> OTP 특징: 최소한 평문 메시지 길이와 같은 키 스트림 생성해야 한다. 키 배송이 먼저 이루어져야 한다.
> LFSR 특징: 선형복잡도(최소 길이)를 수학적으로 나타내면 최소다항식의 차수를 의미. 유한상태기계로 달성할 수 있는 최대주기 수열을 얻을 수 있음.
◆ 비동기식 스트림 암호
- 키 스트림이 평문 또는 암호문과 관계를 갖는 자기 동기식 스트림 암호
- 키는 평문 또는 암호문에 종속적 -> 전송 중 암호문의 비트가 손실 또는 변경되더라도 오류 전파가 제한적
- 오류 정정 기능이 있지만 키 스트림과 암호문의 종속성으로 인해 복호화가 쉽다.
- 종류 : CFB 모드
(2) DES(Data Encryption Standard)
1) 개요
- 평문 길이: 64비트(=암호문 길이), 키 길이: 56비트(8비트의 parity), 라운드 횟수: 16회, 라운드 키 길이: 48비트
2) 구조
- 두 개의 P박스와 16개의 Feistel 라운드 함수로 구성(DES 구조는 Feistal 구조의 변형된 형태)
- DES 함수는 확장 P박스, 키 XOR, 8개의 S박스(안전성 담당), 단순 P박스로 구성
3) 다중 DES
◆ 2개의 키를 갖는 3중 DES
- 암호화 과정의 중간 단계에서는 복호화 알고리즘을 사용, 복호화 과정에서는 암호화 알고리즘을 사용
- 키 크기 : 112비트
◆ 3개의 키를 갖는 3중 DES
- 키 크기 : 168비트
(3) AES(Advanced Encryption Standard)
1) 개요
- 평문 길이: 128비트(=암호문 길이), 키 길이: 128/192/256비트, 라운드 횟수: 10/12/14, 라운드 키 길이: 128비트
2) 구조
- SPN 구조를 사용
- 하드웨어나 소프트웨어 구현시 속도나 코드 압축성 면에서 효율적, 스마트카드와 같은 응용에 적합
종류 | 평문/암호문 블록 길이(bits) | 키 길이(bits) | 라운드 수 |
DES | 64 | 56 | 16 |
Triple DES | 64 | 112/168 | 16 |
AES | 128 | 128/192/256 | 10/12/14 |
(4) 기타 대칭 키 암호 알고리즘(블록 알고리즘)
1) 국내 암호 알고리즘
구분 | 특징 | 블록 길이 | 키 길이 | 라운드 수 |
SEED | 한국표준 블록암호 알고리즘 전자상거래, 금융, 무선통신 등 정보보호 |
128 | 128/192/256 | 16 |
ARIA | 학계, 연구소, 정부기관 공동개발 경량 및 하드웨어 효율성 향상 |
128 | 128/192/256 | 12/14/16 |
LEA | 저전력, 경령화, 대용량 처리 | 128 | 128 | 24 |
HIGHT | 저전력, 경량화 | 64 | 128/192/256 | 32 |
2) 국외 암호 알고리즘
구분 | 개발국가(년도) | 특징 | 블록 길이 | 키 길이 | 라운드 수 |
IDEA | 유럽(1990) | PGP 채택 | 64 | 128 | 8 |
RC5 | 미국(1994) | 알고리즘 간단, 속도 빠름 | 32/64/128 | 0-2040 | 1-255 |
SKIPJACK | 미국(1990) | Fotezza카드에 사용 | 64 | 80 | 32 |
FEAL | 일본(1987) | S/W구현에 적합 | 64/128 | 64 | 4/8/32 |
MISTY | 일본(1996) | 차분/선형공격에 안전성증명 | 64 | 128 | 8 |
CRYPTON | 한국(1998) | AES 후보 중 하나 | 128 | 128/192/256 | 12 |
(5) 대칭 키 암호를 이용한 암호화 기법(운영모드)
1) 개요
- 암호 알고리즘의 운영모드는 블록암호의 블록길이보다 긴 길이의 메시지를 암호화하기 위한 방법
- 블록암호모드: ECB, CBC
- 스트림 암호방식의 블록암호모드: CFB, OFB, CTR
2) ECB(Electronic CodeBook) 모드
- 평문은 N개의 n비트 블록으로 분할
- 만약 평문 크기가 블록 크기의 배수가 아니라면 평문 마지막 블록에는 padding이 필요
- 장점: 간단, 고속, 병렬처리 가능
- 단점: 평문 속의 반복이 암호문에 반영, 암호문 블록의 삭제나 교체에 의한 평문 조작 가능, 비트 단위의 에러가 있는 암호문을 복호화하면 대응하는 블록이 에러(다른 블록은 영향 없음), 재전송 공격이 가능
3) CBC(Cipher Block Chaining) 모드
- 각각의 평문 블록은 암호화되기 전에 이전 암호문 블록과 XOR
- 초기 벡터(IV)값을 사용(이전 암호문 블록이 없는 첫번째와 XOR하기 위하여)
- 장점: 평문의 반복은 암호문에 반영X, 병렬처리 가능(복호화만), 임의의 암호문 블록을 복호화 가능
- 단점: 암호화에서 병렬처리 불가능, 전송 도중 암호문 블록의 한 비트 오류 발생하면 평문 해당 블록에 오류 전파됨(해당 블록과 다음 블록까지 영향)
4) CFB(Cipher FeedBack) 모드
- CFB 모드 이용하여 어떤 블록 암호도 스트림 암호로 바꿀 수 있다.
- CBC는 초기벡터와 평문블록을 XOR한 다음 암호화하지만, CFB는 초기벡터를 암호화한 뒤에 평문블록과 XOR한다.
- 장점: 패딩 불필요. 병렬처리 가능(복호화만), 임의의 암호문 블록을 복호화 가능
- 단점: 암호화에서 병렬처리 불가능, 재전송 공격 가능, 전송 도중 암호문 블록의 한 비트 오류 발생하면 평문 해당 블록의 같은 위치에서 한 비트 오류 발생(오류 전파 있음)
5) OFB(Output FeedBack) 모드
- CBC모드와 CFB모드를 개선한 모드
- 초기 벡터를 암호화하고 그 결과를 다시 암호화하기를 반복하며 해당 출력 블록들과 평문블록을 XOR한다.
> CFB와의 차이: CFB는 초기벡터 암호화XOR평문블록하고 그 결과를 다시 암호화하나, OFB는 초기벡터 암호화한 것을 계속 암호화하며 사용
- 잡음이 있는 채널상의 스트림형 전송에 사용(Ex 위성통신)
- 장점: 패딩 불필요. 암복호화 사전준비 가능, 암복호화 같은 구조, 비트 단위의 에러가 있는 암호문을 복호화하면 평문의 대응하는 비트만 에러발생(오류 전파없음)
- 단점: 병렬처리 불가능
6) CTR(CounTeR) 모드
- ATM 네트워크 보안, IPsec 등에 활용
- 장점: 패딩 불필요. 암복호화 사전준비 가능, 암복호화 같은 구조, 비트 단위의 에러가 있는 암호문을 복호화하면 평문의 대응하는 비트만 에러발생, 병렬처리 가능
구분 | 암호화 | 복호화 | 오류 전파 |
ECB | Ci = Ek(Pi) | Pi = Dk(Ci) | 1 블록 |
CBC | C1 = Ek(P1 xor IV) Ci = Ek(Pi xor Ci-1) |
P1 = Dk(C1) xor IV Pi = Dk(Ci) xor Ci-1 |
2 블록 |
CFB | Ci = Ek(Ci-1) xor Pi | Pi = Ek(Ci-1) xor Ci | 2 블록 |
OFB | Ci = Pi xor Oi | Pi = Ci xor Oi | 1 블록 |
CTR | Ci = Pi xor Ek(Ti) | Pi = Ci xor Ek(Ti) | 1 블록 |
3. 비대칭 키 암호(공개 키 암호)
(1) 키 배송 문제 - 대칭 키 암호의 단점
1) 개요
- A가 B에게 메시지를 전달하려고 할 때, 비밀 키 암호방식은 A가 비밀 키를 사용하여 암호화하고, B는 비밀 키를 이용하여 복호화한다. 따라서 A가 B에게 키를 전달해야하는 문제가 있다.
2) 키 사전 공유에 의한 해결(키 사전 분배)
- 키 관리기관(TA)이 사전에 임의의 두 사용자에게 비밀 경로를 통하여 임의의 키 K를 선택하여 전달하는 방법
- 매우 복잡, 과다한 관리비용
3) 키배포 센터에 의한 해결(온라인 키 분배)
- 키배포 센터(KDC)라는 신뢰받는 제3자에 의뢰해서 개인과 키배포 센터 사이에서만 키를 사전에 공유하는 방법
4) Diffie-Hellman 키 교환에 의한 해결
◆ 개념
- 공개키 암호방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 계산하여 공유 가능
- 비밀 세션 키를 사용하지 않고, 세션 키를 암호화한 전달이 필요없음(키 교환 자체가 없음)
- 다만 키 교환 알고리즘이며, 무결성·인증·부인방지와 같은 기능은 제공하지 않음
◆ 절차
- 사용자 A, B가 합의하여 큰 소수 p, 원시원소 g를 선택(공개)
- A와 B는 각각 비밀값 a, b 선택(비공개)
- P1 = g^a mod p, P2 = g^b mod p 계산하고 교환(공개)
- K = P2^a mod p = P1^b mod p = g^ab mod p 계산
- 따라서 공유하는 비밀키는 g^ab mod p
◆ 안전성
- 이산대수 문제의 어려움에 기반
- DoS 공격, 중간자 공격에 취약(인증, 전자서명으로 보완)
5) 공개 키를 이용한 키 교환
- 사용자 A, B가 공개 키 교환
- A는 B의 공개 키를 이용하여 무작위로 생성된 대칭 세션 키를 암호화하여 전달
- B는 자신의 개인 키를 이용하여 세션 키 복호화
※ 공개 키 암호 방식
◆ 개념
- 대칭 키 암호는 평문을 복잡한 형태로 변환하여 기밀성을 유지하고, 공개 키 암호는 수학적으로 해결하기 어려운 문제를 기반으로 기밀성을 유지한다.
◆ 절차
- A가 B에게 메시지를 전달하려고 할 때, A는 B의 공개키를 이용하여 암호화하고, B는 암호문을 자신의 개인키를 이용하여 복호화한다.
◆ 안전성
- 수학적 어려움을 기반
- 중간자 공격에 취약(공개키 인증서 등으로 보완)
◆ 보안기능
- 암호 모드: 수신자의 공개키로 메시지 암호화하고 수신자의 개인키로 복호화하여 기밀성 제공
- 인증 모드: 송신자의 개인키로 암호화하고 송신자의 공개키로 복호화하여 인증과 부인방지 제공
(2) RSA 암호시스템
1) 개요
- 인수분해의 어려움을 기반으로 한 공개 키 암호 알고리즘
- 암호화 뿐만 아니라 전자서명 용도로도 사용됨
2) 키 생성
- 생성 과정
> p, q를 선택, p와 q는 모두 소수(p!=q)
> N = p*q를 계산
> k = (p-1)(q-1)을 계산
> 정수 e를 계산, gcd(k, e) = 1 #k와 e는 서로소, 1<e<k
> d를 계산, de mod k = 1 #de를 k로 나누었을때 나머지가 1 (모듈러는 나머지를 의미)
- 생성 결과
> 공개 키 {e, N}, 개인 키 {d, N}
> 암호화 C = P^e mod N, 복호화 P = C^d mod N
- Ex) 공개 키가 (7,33), 개인 키(3,33)일 경우 공개키로 암호화한 값이 3일때 복호화한 값 찾기
> P=3^3 mod 33 -> P는 27
- 전자서명 방식 : 서명자가 자신의 개인 키 {d, N}으로 서명하고, 검증자가 서명자의 공개 키 {e, N}을 이용하여 검증한다.
3) 권장사항
- N의 비트수는 적어도 1024비트가 되어야 한다. 즉 309자리 이상의 십진수가 되어야 한다.
- p, q는 적어도 512비트가 되어야 한다. p, q가 거의 같은 크기의 소수이어야 한다.
- p-1과 q-1은 커다란 소인수를 각각 가져야 한다. 최대공약수는 작은 수이어야 한다.
- 메시지는 OAEP를 사용하여 패딩되어야 한다.
4) RSA에 대한 공격
- Brute Force: 가능한 모든 개인 키를 시도
- 인수분해 공격: 두 개의 소수 곱을 인수분해하는 시도
> 개인키 d의 비트 수가 크면 클수록 안전
- 타이밍 공격: RSA 암호화 작업 시간, 전력 소비 등을 측정하여 공격에 사용.
> 시간이 드러나지 않도록 일정시간 알고리즘 등으로 보호 가능
- CCA: 선택한 암호문으로 해독 시도
> 최적 비대칭 암호화 패딩(OAEP)를 이용하여 패딩
(3) 기타 암호시스템
◆ Rabin 암호시스템
1) 개요
- 2차 합동을 기반으로 하는 비대칭 키 암호 알고리즘(2차 잉여, quadratic residue)
- 합성수 모듈로 제곱근 추출의 어려움에 의존
- 또한 인수분해 기반이기도 함
2) 키 생성
- 두 개의 큰 소수 p, q 선택
- N=p*q
- 공개 키는 N, 개인 키는 p와 q
3) 특징
- 주어진 암호문에 대하여 가능한 제곱근이 최대 4까지 있을 수 있음
> 추가 정보 또는 제약 조건을 통해 1개의 해가 평문이 되도록 만듬
- Rabin 암호화 및 복호화는 곱셈 연산이 한번만 포함되므로 일반적으로 RSA보다 속도 빠름
- 연산 효율이 높아 저사양 플랫폼에 적합
◆ ElGamal 방식
1) 개요
- 이산대수 문제의 난이도를 기반으로 하는 비대칭 키 암호 알고리즘
2) 키 생성
- 큰 소수 p, 기본 근 g, 모듈로 p를 선택
- 1<a<p-1이 되도록 임의의 비밀번호 a를 선택
- 공개 키는 (p,g,g^a mod p), 개인 키는 a
3) 특징
- 이산대수를 기반으로 한 Diffie-Hellman 알고리즘의 확장 방식
- 상대적으로 속도 느림
- 평문 암호화 시 순서쌍으로 표현되므로 암호문 길이가 평문의 약 2배가 됨
◆ 타원곡선암호(ECC)
1) 개요
- 유한체에 대한 타원곡선의 수학적 속성을 기반으로 하는 비대칭 키 암호 알고리즘
- 타원 곡선 이산 대수 문제(ECDLP)의 어려움에 의존
2) 키 생성
- 임의의 숫자 d 선택, 1<d<n-1(n은 곡선 차수)
- Q=d*G(G는 기준점)
- 공개 키는 G, 개인 키는 d
3) 특징
- 짧은 키 길이로 강력한 보안(160비트 ECC는 1024비트의 RSA키와 동일한 보안수준)
- 키 길이가 짧아 계산 효율성 제공, 전력 소비 줄임
- H/W·S/W 구현이 용이, 스마트카드나 무선통신 단말기 등과 같이 메모리와 처리능력이 제한된 응용분야에 효율적(특히 모바일 환경)
(4) 중간자 공격(MITM, man-in-the-middle)
1) 개요
- 두 당사자 사이에 위치하여 통신을 도청하고, 전송되는 데이터를 조작, 가장하는 공격
2) 방식
- (공개키 버전) 당사자 A, B와 공격자 C가 존재(C는 B의 공개키를 보유) -> A가 B에게 공개키 요청 -> C가 요청을 가로채서 자신의 공개키 전달 -> A는 C의 공개키로 메시지 암호화한 후 전달 -> C가 메시지 가로채서 자신의 개인키로 복호화하여 메시지 획득 및 조작 -> C가 B의 공개키로 메시지 암호화한 후 전달 -> B는 자신의 개인키로 복호화하여 조작된 메시지 획득
- (비밀키 버전) 당사자 A, B와 공격자 C가 존재 -> A가 B에게 비밀키 요청 -> C가 요청을 가로채고 B에게 비밀키 요청 -> B는 C에게 자신의 비밀키 전달 -> C는 A에게 자신의 비밀키 전달 -> A는 C의 비밀키로 메시지 암호화한 후 전달 -> C는 자신의 비밀키로 복호화 후 조작 -> C가 B의 비밀키로 메시지 암호화한 후 전달 -> B는 자신의 비밀키로 복호화하여 조작된 메시지 획득
3) 방어방법
- 전자서명, PKI(공개키 기반 구조) 사용
- 공개키 버전의 경우, 공개키를 확인함으로서 약간의 대응 가능(완전한 해결은 아님)
(5)암호 시스템 비교
항목 | 비밀키 | 공개키 |
안전한 키 길이 | 128비트 이상 | 2048비트 이상 |
키 배분 필요 | 필요 | 불필요 |
키 개수 | n*(n-1)/2 | 2n (개인키 및 공개키 한 쌍) |
암호화 속도 | 고속 | 저속 |
경제성 | 높다 | 낮다 |
제공 서비스 | 기밀성 | 기밀성, 부인방지, 인증 |
전자서명 | 복잡(구현가능하나 100%부인방지불가) | 간단 |
단점 | 키 배분 문제 (Diffie-Hellman, KDC로 해결) |
중간자 공격에 취약 |
※ 하이브리드 암호 시스템
- 대칭 키(세션 키)로 평문 암호화 -> 공개 키로 대칭 키 암호화
- 개인 키로 암호화된 대칭 키 복호화 -> 대칭 키로 암호문 복호화
4. 해시 함수와 MAC
(1) 해시함수
1) 개요
- 임의 길이 메시지로부터 고정 크기 해시값을 생성하는 알고리즘
- 단방향 함수(비가역성)
- 데이터 무결성 검사, 전자서명, MAC 등에서 사용
2) 보안 요구사항
◆ 프리이미지 저항성(역상 저항성)
- 해시값이 주어지면 특정 해시값을 생성하는 입력을 찾는 것은 계산상 불가능
- 약 일방향성
◆ 제2프리이미지 저항성(두번째 역상 저항성, 약한 충돌 내성)
- 입력이 주어지면 동일한 해시값을 생성하는 다른 입력을 찾는 것은 계산상 불가능
- 강 일방향성
◆ 충돌 저항성(강한 충돌 내성, 충돌 회피성)
- 동일한 해시값을 생성하는 두 개의 개별 입력을 찾는 것은 계산상 불가능
- 약한 충돌 내성을 보장
Ex) H(A)=B인 경우
> 약 일방향성: B가 주어질 때 A를 찾는 것 불가
> 약한 충돌 내성: A가 주어질 때 동일한 B를 갖는 A' 찾는 것 불가
> 강한 충돌 내성: 동일한 B를 생성하는 A, A' 찾는 것 불가
3) 해시함수 종류
◆ 반복 해시함수(Merkle-Damgard 구조)
- 많은 암호학적 해시함수 구조의 기본 틀
- 고정 길이 입력함수를 만들고 필요한 만큼 반복해서 사용하는 것
◆ SHA
구분 | SHA-1 | SHA-224 | SHA-256 | SHA-384 | SHA-512 |
해시값(bits) | 160 | 224 | 256 | 384 | 512 |
블록길이(bits) =처리단위 |
512 | 512 | 512 | 1024 | 1024 |
단계 수(라운드 수) | 80 | 64 | 64 | 80 | 80 |
최대 메시지 길이(bits) | 2^64 - 1 | 2^64 - 1 | 2^64 - 1 | 2^128 - 1 | 2^128 - 1 |
※ SHA-2: SHA-224, 256, 384, 512를 통칭
※ SHA-1은 기약 논리함수 4개 사용(MD5와 동일)
◆ 기타 해시함수
구분 | MD5 | RIPEMD-160 | TIGHR | HAVAL | HAS-160 |
해시값(bits) | 128 | 160 | 192 | 128/160/192/224/256 | 160 |
블록길이(bits) =처리단위 |
512 | 512 | 512 | 1024 | 512 |
단계 수 | 64 | 160 | - | - | - |
최대 메시지 길이(bits) | 제한없음 | 2^64 - 1 | 2^64 | 제한없음 | 제한없음 |
※ Tiger: MD5, SHA-1보다 속도 빠르다.
※ HAS-160: 한국형 전자서명 표준인 KCDSA에서 사용할 목적으로 개발
◆ 블록암호 기반 해시함수
- 암호화 해시함수
- CBC, CTR 모드와 같은 특정 모드에서 AES와 같은 블록 암호 알고리즘을 사용하여 해시함수를 구성
◆ 모듈연산 기반 해시함수
- 나머지 해시함수
- 압축함수의 기반을 모듈연산의 반복수행에 두고 있는 해시함수
- 하드웨어나 소프트웨어 자체에 내장된 모듈연산을 사용할 수 있다는 장점이 있고, 속도가 빠르지 않고 안전성 연구가 짧다는 단점이 있다.
4) 해시함수에 대한 공격
◆ 비둘기집 원리
- n개의 컨테이너에 넣을 n+1개의 개체가 있는 경우 적어도 하나의 컨테이너에는 둘 이상의 개체가 포함되어야 한다.
◆ 무차별 공격
- 무작위로 대입하는 공격
- n비트 해시값에 대한 공격 난이도
> 프리이미지 저항성: 2^n
> 제2 프리이미지 저항성: 2^n
> 충돌 저항성: 2^(n/2)
◆ 생일 공격
- 무작위로 해시값 생성 후 테이블에 저장
- 테이블에서 중복 해시값이 있는지 확인
- 중복을 발견하는 것으로 강한 충돌 내성을 깨고자 함
◆ 일차블록 연쇄공격
- 사전에 새로운 메시지 M'을 다양하게 만들어 놓았다가 공격하고자 하는 메시지 M의 해시값 h(M)과 같은 해시값을 갖는 것을 골라 사용하는 공격
◆ 중간자 연쇄공격
- 해시 중간 결과에 대한 충돌쌍을 대상으로 하는 공격
◆ 고정점 연쇄공격
- 메시지 블록과 연쇄변수 쌍을 얻게 되면 연쇄변수가 발생하는 특정 포인트에서 임의의 수의 동등한 블록들을 메시지 중간에 삽입해도 전체 해시값이 변하지 않는다는 것을 이용한 공격
◆ 차분 연쇄공격
- 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 찾아내는 공격
(2) 변경 감지 코드(MDC, Modification Detection Code)
- 데이터의 무결성을 확인하거나 메시지의 변경사항을 감지하는데 사용되는 기술
- 일반적으로 키가 없는 해시함수를 사용하여 구현됨
* HMAC 등은 해시함수와 비밀키를 사용하므로 키가 있는 해시함수에 속함
(3) 메시지 인증 코드(MAC, Message Authentication Code)
1) 개요
- MAC는 무결성을 확인하고, 메시지에 대한 인증을 하는 기술
- 해시함수는 메시지와 비밀 키의 연결을 입력으로 받아 고정 길이 해시값 생성(MAC값)
> 해시함수를 사용하므로 일방향성(MAC값을 비교하여 무결성 체크하는 것이므로 양방향성 아님)
- 비밀 키 암호화 알고리즘 기반이므로 속도 빠름
- 다만, 송수신자 사전에 키 공유할 필요가 있음
- 수신자는 수신된 메시지와 비밀 키로 새 MAC 값 생성하여 비교(무결성·인증)
> 다만 제3자 인증·부인방지 기능은 없음
※ 제3자 인증 기능이 없다는 의미는 MAC값을 비교하여 나온 결과는 무결성과 비밀키를 소유한 누군가가 메시지를 보냈다는 점까지만 알 수 있다는 것
2) 종류
종류 | 설명 |
중첩 MAC(Nested MAC) | 해시함수를 중첩 적용하여 MAC값 생성 |
HMAC | 해시 기반 MAC 해시함수와 비밀 키 사용하여 MAC값 생성 도입 목적 1) 다양한 해시함수를 사용하여 구현 가능(유연성) 2) 사용되는 해시함수 쉽게 구할 수 있음 설계 목표 1) 해시함수 쉽게 교체 가능(유연성) 2) 해시함수의 원래 성능 유 |
CBC-MAC | 블록암호 기반 MAC CBC와 유사한 방식(이전 블록 암호문을 다음 블록 암호화에 사용) 마지막 블록의 암호문을 MAC값으로 사용 |
CMAC | CBC-MAC의 변형 가변 길이 메시지에 대한 보안 강화 |
CCM | CTR 모드로 암호화하고 CBC-MAC으로 인증 기능 제공 |
GCM | CTR 모드로 암호화하고 GMAC이라는 범용 해시함수로 인증 기능 제공 |
3) MAC에 대한 공격
◆ 재전송 공격
- 송수신자 간 교환되는 MAC을 가로채서 나중에 송신
- MAC 단독으로는 무결성을 제공하지 않는다는 점을 악용
4) 재전송 공격에 대한 방어
◆ 순서번호
- 송신메시지에 매회 1회씩 증가하는 번호를 붙이기로 약속하고 MAC값의 계산에서도 순서번호를 메시지에 포함시키기
- 유효하지만 통신상대마다 마지막 순서번호를 기록해두어야 한다는 번거로움 존재
◆ 타임스탬프
- 송신메시지에 현재시각을 넣기로 약속
- 송수신자 사이에 시계를 일치시켜 두는 동기화 필요
◆ 비표
- 메시지를 수신하기에 앞서 수신자는 송신자에게 일회용 랜덤 값(비표)을 준다. 비표를 포함하여 MAC값 계산.
- 유효하지만 통신 데이터 양이 약간 증가
◆ 시도/응답
- 통신 상대방A는 B로부터 정당한 메시지를 기대하고 B에게 우선 난수를 송신한 다음, B로부터 수신되는 메시지가 정확한 난수 값을 포함할 것을 요구한다.
5. 전자 서명(Digital Signature)
(1) 개요
1) 방식
- 대칭 키 암호 알고리즘과 중재자를 사용하는 중재 서명
- 공개 키 암호 알고리즘을 사용하는 직접 서명(*일반적인 방식)
> 서명 형태에 따라 복원형 전자서명과 부가형 전자서명으로 구분 가능
2) 기능(조건)
기능 | 설명 |
위조 불가 | 합법적인 서명자만이 전자서명 생성가능(인증) |
서명자 인증 | 서명자를 누구든지 검증할 수 있어야 한다. |
부인방지 | 서명자는 서명행위 이후 서명사실을 부인할 수 없다. |
변경 불가 | 서명한 문서의 내용은 변경할 수 없다(무결성). |
재사용 불가 | 전자문서의 서명을 다른 전자문서에 사용할 수 없어야 한다. |
3) 알고리즘 종류
- RSA 전자서명, ElGamal 전자서명, ECC·ECDSA 전자서명, DSS(표준전자서명, DSA를 사용), Schnorr 전자서명(ElGamal 전자서명 기반, 서명 크기 줄이는 목적), KCDSA(국내표준전자서명) 등 존재
알고리즘 | 암호/복호 | 디지털 서명 | 키 교환에 사용가부 |
RSA 전자서명 | Yes | Yes | Yes |
DSS 전자서명 | No | Yes | No |
ECC·ECDSA 전자서명 | Yes | Yes | Yes |
ElGamal 전자서명 | No | Yes | Yes |
4) 사용 예
- Code signing(소프트웨어 개발 시 서명), X.509 Certificate(PKI에서 사용되는 표준 인증서), SSL/TLS Protocol 등
5) 응용
◆ 전자투표
- 요구사항
요구사항 | 설명 |
완전성 | 모든 투표가 정확하게 집계되어야 한다. |
익명성 | 투표결과로부터 투표자를 구별할 수 없어야 한다. |
건전성 | 부정한 투표자에 의해 선거가 방해되는 일은 없어야 한다. |
이중투표방지 | 정당한 투표자가 두번이상 투표할 수 없다. |
정당성 | 투표에 영향을 미치는 것이 없어야 한다. |
적임성 | 투표권한을 가진 자만이 투표할 수 있다. |
검증 가능 | 누구라도 투표결과를 확인하여 검증할 수 있다. |
- 방식
구분 | 투표장치 | 선거관리 | 기술적 쟁점 | 내용 |
PSEV 방식 |
전자투표기 | 상 | 하 | Poll Site E-Voting 이미 정해져 있는 기존 투표소에서 투표기를 이용하여 투표 실시 후 전자식 투표기록장치를 개표소로 옮겨 컴퓨터로 집계 |
Kiosk 방식 |
전자투표기 | 중 | 중 | 비지정 임의 투표소에서 전자투표, 투표소와 개표소를 온라인으로 연결하여 투표결과가 자동적으로 개표소로 전송 |
REV 방식 |
모바일, TV, PC | 하 | 상 | Remote Internet E-Voting 인터넷을 통해 투표 |
◆ 전자입찰
- 구성요소: 입찰자, 입찰공고자, 전자입찰시스템
- 발생할 수 있는 문제점: 네트워크상 메시지 유출, 공모 등
- 요구사항
요구사항 | 설명 |
독립성 | 전자입찰 시스템의 각 구성요소들은 독자적인 자율성을 보장 받아야 한다. |
비밀성 | 각 구성요소 간 개별정보는 누구에게도 노출되어서는 안된다. |
무결성 | 입찰 시 입찰자 자신의 정보를 확인 가능하게 함으로써 누락 및 변조 여부를 확인할 수 있어야 한다. |
공평성 | 입찰이 수행될 때 모든 정보는 공개 되어야 한다. |
안정성 | 각 입찰 참여자 간의 공모는 방지되어야 하고 입찰 공고자와 서버의 독단이 발생하면 안된다. |
(2) 중재 서명
- 대칭 키 암호 방식 사용
> 모든 사용자와 비밀 키를 공유하는 중재자(제3자) 존재
> 제3자는 서명자의 서명을 검증자에게 확인시켜주며 부정행위 방지
- 서명할 때마다 제3자 필요
(3) 직접 서명
1) 특징
- 공개 키 암호 방식 사용
①서명자는 메시지를 해시함수에 통과시켜 고정길이 출력값 획득
②서명자는 자신의 개인키를 사용하여 해시값에 대한 서명 생성
③수신자는 서명자의 공개키를 사용하여 서명 복호화
④수신자는 메시지를 해시함수에 통과시켜 얻은 값과 복호화한 값 비교
- 서명된 메시지의 무결성과 부인방지를 제공
- 누구나 공개 키를 가지고 검증 가능
- 서명 생성 및 검증이 간편
2) 복원형 전자서명
- 서명 검증과정에서 원래의 메시지가 복원되는 형태
- 메시지 전체를 일정한 블록으로 나눠 전체 블록을 암호화 해야 하므로 검증 부하가 큼
3) 부가형 전자서명
- 임의 길이 메시지에 서명부분을 부가하는 형태
- 서명 생성 및 검증 과정에서 해시함수 사용
- 상대적으로 부하가 작음
- 공개 키 관리방법에 따라 식별자 이용 전자서명과 인증서 이용 전자서명으로 구분
◆ 식별자 이용 전자서명
- 사용자 이름이나 이메일 등 식별자를 전자서명에 연결
◆ 인증서(확인서) 이용 전자서명
- 인증서를 이용하여 공개 키 위변조 방지
- 디지털 인증서(Digital Certificate) 준비
> 서명자는 CA(인증기관)에 디지털 인증서 요청
> 디지털 인증서에는 서명자의 공개 키 및 기타 정보 포함됨
- 전자서명 생성
> 서명자는 자신의 개인 키를 사용하여 메시지에 대한 전자서명 생성
> 메시지에 전자서명을 첨부하고 수신자에게 전송
- 전자서명 검증
> 수신자는 CA 저장소에서 디지털 인증서 획득
> CA의 전자서명을 확인함으로서 디지털 인증서 검증
> 서명된 파일에서 전자서명 추출
> 디지털 인증서에 포함된 공개 키를 사용하여 전자서명 확인
> 계산된 서명과 추출된 서명 비교하여 검증
4) 특수 전자서명(검증자 제한 목적)
종류 | 설명 |
부인방지 전자서명 |
서명검증할 때 반드시 서명자의 도움이 있어야 검증가능 |
의뢰 부인방지 전자서명 |
특정한 자만이 부인 과정을 수행 Ex) 재판관 |
수신자 지정 서명 |
특정 검증자만이 서명을 확인할 수 있도록 하되, 그 서명이 문제되는 경우 검증자의 비밀서명 생성정보를 노출시키지 않고, 제3자에게 서명 출처를 증명함으로써 분쟁해결기능을 제공 |
은닉 서명 (블라인드 서명) |
서명자가 서명문 내용을 알지 못하는 상태에서 서명하는 방식 |
위임 서명 | 위임 서명자로 하여금 서명자를 대신해서 대리로 서명 |
다중 서명 | 동일한 전자문서에 여러 사람이 서명 |
이중 서명 | 지불정보와 주문정보 각각에 비밀성 보장위해 서명 |
※ 공개키 기반구조(PKI : Public Key Infrastructure)
- 공개 키 암호화의 관리 및 사용을 가능하게 하는 인프라
- 제공 서비스: 기밀성(공개 키), 무결성(해시함수), 인증·부인방지(전자서명)
- 구성요소:
- 인증서: ①서명자(발급자)의 공개 키 및 CA의 공개 키 포함 ②CA의 개인 키로 전자서명 ③X.509 Certificate
> 인증서 정보: 버전, 일련번호, 발행기관, 유효성(시작·만료날짜), 대상, 대상 공개 키 정보(알고리즘·값), 서명 알고리즘, 서명 값, 확장 프로그램(...) - 정책승인기관(PAA): ①PKI 전반에 사용되는 정책과 절차를 생성 ②PKI 구축의 루트 CA 역할
- 정책인증기관(PCA): ①사용자와 CA가 따라야 할 정책 수립 ②CA의 공개키 인증 ③인증서, CRL 관리
- 인증기관(CA): ①인증서 요청자의 신원 확인하고 인증서 발행 ②인증서 해지 및 CRL 게시 ③저장소 관리
- 등록기관(RA): ①인증서 요청자 신원 확인 ②인증서 전달 ③인증 요청서 보관
- 저장소(Repository): 디지털 인증서, CRL 등 정보 저장
- 디렉토리: ①LDAP 사용 ②디지털 인증서 및 관련 정보와 같은 특정 유형의 정보 구성, 조회 및 검색에 중점
- 인증서 폐기 목록(CRL):
> 폐지사유: ①사용자 개인 키 침해 ②CA가 더이상 사용자 인증X ③CA 개인키 침해 ④부정한 방법으로 인증서 발급
> CRL는 인증기관이 전저서명하여 발행. 저장소 또는 디렉터리에 공개됨
> 기본필드: 버전, 서명 알고리즘, 발행기관, CRL 발급일, CRL 다음 발급일, 폐지된 인증서 목록(폐지시각, 폐지된 인증서 일련번호 포함) - 온라인 인증서 상태 검증 프로토콜(OCSP):
> ①실시간으로 인증서 상태 확인할 수 있는 효율적 방법 특정 ②CA와 사용계약 맺어야 사용 가능(사용량에 따라서 추가비용 지불)
> 작업순서: OCSP 응답 서명 인증서의 인증서 템플릿 및 발급 속성을 구성 -> 온라인 응답자를 호스팅할 컴퓨터에 대한 등록권한을 구성 -> Window Server 2003기반 인증기관인 경우에는 발급된 인증서에서 OCSP확장을 사용하도록 설정 -> CA의 기관정보 엑세스 확장에 온라인 응답자 또는 OCSP 응답자 위치를 추가 -> CA에 대한 OCSP 응답 서명 - 사용자(Client)
- 과정:
- 사용자 등록
- 요청자가 RA에 요청하여 요청자정보를 인증서 관리시스템에 등록 - 인증서 요청
- 요청자는 개인키와 공개키를 생성
- 인증서 요청에는 ID, 공개키가 포함됨 - 인증서 발급
- CA, RA는 문서, 전화 등의 방법으로 신원 확인
- 인증 성공하면 CA는 인증서 발급
- 인증서에는 요청자 공개키·CA 공개키가 포함되며, CA의 개인키로 전자서명됨 - 인증서 사용
- 요청자는 발급된 인증서와 개인키로 문자 등에 전자서명 - 인증서 확인
- 검증자는 저장소 등에서 인증서 획득
- 인증서에 포함된 요청자의 공개키를 사용하여 검증
- 형태:
구분 | 계층적 구조(Root CA가 존재) | 네트워크형 구조 |
장점 | 정부와 같은 관료조직에 적합 인증경로 탐색 용이 모든 사용자가 최상위 CA의 공개키를 알고 있으므로 인증서 검증이 용이 |
유연하며 실질적인 업무관계에 적합 CA 상호인증이 직접 이루어지므로 인증경로 단순 CA 비밀키 노출시 국소적 피해 |
단점 | 협동업무 관계에 부적합 최상위 CA에 집중되는 오버헤드 발생가능 최상위 CA의 비밀키 노출시 피해 극심 |
인증경로 탐색이 복잡 인증정책 수립 및 적용이 어려움 |
- 요구사항: 비용 및 성능을 고려한 사용자 편의성 제공 / 전자상거래에 대한 법적 효력유지 / 사용자 보안정책 및 관리체계 반영 / 인증서 생성, 획득, 취소, 검증가능 / PKI 기반 전자상거래 실체 인증 / 메시지 무결성 보장 및 변조 검출 / 메시지 및 전자상거래 관련자 기밀성 보장 / 기타 정보보호 서비스 제공
6. 기타
- 세션 키(임시 키): 특정 세션에 대해 생성되는 암호화 키. 일반적으로 대칭 키 암호화 사용
- 마스터 키: 다른 암호화 키를 보호하는 데 사용되는 암호화 키. 일반적으로 비대칭 키 암호화 사용
- 암호키 저장방법 Ex): 서버 또는 하드웨어 토큰에 저장 가능, 웹서버 또는 DB서버와 물리적으로 분리 사용하는 것 권고
- 하드웨어 토큰: 저장된 정보가 위·변조 또는 외부로 노출되기 어려운 장치(Ex 스마트카드, USB 토큰)
- 난수의 성질: 무작위성, 예측 불가능성, 재현 불가능성
- 솔트(Salt): 의사난수 생성기로 생성되는 랜덤한 수, 비밀번호와 분리하여 서버 또는 하드웨어 토큰에 저장, 사전공격 또는 레인보우 테이블 이용 공격 막기위해 존재
- 의사난수 생성기(PRNG, pseudo random number generator): 수학 공식이나 알고리즘 사용하여 일련의 숫자 생성(소프트웨어만으로 진정한 난수 생성할 수 없음)
- 위조에 대한 개념
> 일반적 위조 불가: 서명의 위조가 불가능한 문서가 존재해야 한다.
> 선택적 위조 불가: 어떤 정해진 문서 이외에서는 서명의 위조가 불가능해야 한다.
> 존재적 위조 불가: 어떠한 문서에 대해서도 서명의 위조가 불가능해야 한다.