전자서명의 형식은 공개키 암호방식을 이용한 공개키 서명방식과 대칭키 암호방식을 이용한 중재서명방식으로 나눌 수 있다.
공개키 암호방식은 서명자의 검증정보를 공개하여 누구나 검증할 수 있는 서명방식으로 서명 생성 및 검증이 간편한 방식이고, 중재서명방식은 대칭키 암호방식의 성질상 서명 생성과 검증을 제3자가 중재하는 방식으로 서명할 때마다 제 3자의 참여가 있어야 한다.
전자서명 과정
송신자는 서명 알고리즘을 이용해 메시지에 서명을 한다. 메시지와 서명은 수신자에게 전송된다. 수신자는 메시지와 서명을 받고 검증 알고리즘을 적용한다.
결과가 참이면 메시지가 올바른 것으로 받아들여지지만 그렇지 않으면 그 문서는 거절된다.
전자서명에서 서명자는 자신의 개인키를 이용하여 문서에 서명을 하게 되는데 이때 서명 알고리즘을 사용한다. 검증하는 사람은 서명자의 공개키를 이용해 문서를 검증한다.
전자서명 서비스
- 메시지 인증
전자서명은 메시지 인증(데이터 근원 인증)을 보장한다.
- 메시지 무결성
전체 메시지에 서명을 한다면 무결성도 보장할 수 있다. 메시지가 변경되면 서명이 달라지기 때문이다.
현재 전자서명시스템은 해시함수를 사용해 서명과 검증 알고리즘을 만든다.
- 부인방지
나중에 수신자가 메시지를 보낸 사실을 부인한다면 센터는 저장하고 있는 메시지를 제시할 수 있다. 만약 송신자의 메시지가 센터가 보관하고 있는 메시지의 복사본과 같다면 수신자는 부인을 할 수 없게 된다.
- 기밀성
전자서명을 한다고 해서 기밀성이 보장되는 통신을 할 수는 없다. 기밀성이 필요하면 메시지와 서명에 비밀키나 공개키로 암호화를 해야만 한다.
전자서명의 주요 기능
1. 위조 불가(Unforgeable) : 합법적인 서명자만이 전자서명을 생성할 수 있어야 한다.
2. 서명자 인증(User authentication) : 전자서명의 서명자를 누구든지 검증할 수 있어야 한다.
3. 부인방지(Non-repudation) : 서명자는 서명행위 이후의 서명한 사실을 부인할 수 없어야 한다.
4. 변경 불가(Unalterable) : 서명한 문서의 내용을 변경할 수 없어야 한다.
5. 재사용 불가(Not reusable) : 전자문서의 서명을 다른 전자문서의 서명으로 사용할 수 없어야 한다.
전자서명 구조
- RSA 전자서명 구조
RSA를 이용하여 메시지에 서명을 하고 검증을 하는 전자서명이다.
전자서명 구조는 암호화할 때처럼 키를 사용하지 않는다. 암호화할 때는 송신자의 공개키로 암호화를 한 후 송신자의 개인키로 복호화를 하는 반면, 전자서명을 할 때는 수신자의 비밀키로 서명을 하고 수신자의 공개키로 검증을 한다.
- ElGamal 전자서명 구조
ElGamal 암호시스템과 동일한 키를 사용하지만 알고리즘이 다르다.
실제로는 거의 사용되지 않는 방식이다.
- Schnorr 전자서명 구조
ElGamal에 기반을 두지만 서명의 크기가 작은 구조이다.
- 전자서명 표준(DSS, Digital Signature Standard)
전자서명 표준(DSS)은 미국의 전자서명 표준으로 ElGamal 전자서명을 개량한 방식이다. ElGamal 방식과 유사하지만 서명과 검증에 소요되는 계산량을 획기적으로 줄인 방식이다.
오직 전자서명 기능만을 제공하도록 설계된 알고리즘이다.
- 타원곡선 전자서명 구조
타원곡선 전자서명 구조는 타원곡선에 기반을 둔 DSA다. ECDSA(elliptic curve DSA)라고 불림
ECC는 보다 짧은 비트 길이로 인해 짧은 처리 시간에 짧은 서명이 가능하다.
전자서명 방식
- 메시지 복원형 전자서명
서명자가 자신의 개인키를 이용해 메시지를 암호화하여 전송하면 검증자가 서명자의 공개키를 이용하여 서명된 암호문으로 복호화한다. 기존의 공개키 암호방식을 이용하므로 별도의 전자서명 프로토콜이 필요하지 않다는 장점이 있으나 메시지를 일정한 크기의 블록으로 나누어 그 각각의 블록에 서명을 해야하므로 많은 시간이 소요되어 실제로는 사용되지 않는다.
- 부가형 전자서명
임의의 길이로 주어진 메시지를 해시 알고리즘을 이용해 일정한 길이로 압축하고, 해시한 결과에 서명자의 개인키를 이용하여 전자서명한 후 메시지에 덧붙여 전송한다. 메시지 이외에 전자서명을 따로 전송해야 하므로 전송량이 약간 늘어나지만 메시지가 아무리 길어도 한 번의 서명생성 과정만이 필요하므로 효율적이어서 실제로 많이 사용되는 방법이다.
특수 전자서명
공개키 방식을 이용한 전자서명은 검증키를 공개하고 있어서 누구나 서명의 진위를 검증할 수 있으나 전자 서명을 제한적으로 사용하려고 하는 경우 제한하기가 곤란하다. 이는 개인의 이익 침해나 사생활 노출로 이어질 수 있다.
- 부인방지 전자서명
부인 방지 서명은 자체 인증 방식을 배제시켜 서명을 검증할 때 반드시 서명자의 도움이 있어야 검증이 가능한 전자 서명 방식이다.
- 은닉 서명(Blind Digital Signature)
서명자가 메시지의 내용을 알지 못하는 상태에서 서명을 하여 익명성을 제공하는 방식이다. 제공자의 신원과 서명문을 연결시킬 수 없는 익명성을 유지할 수 있다.
전자서명의 응용
-전자투표
전자 투표 시스템은 선거인 명부를 DB로 구축한 중앙 시스템과 직접 연결한 단말에 자신이 정상한 투표자임을 증명하면 단말이 있는 전국 어디서나 쉽게 컴퓨터망을 통해 무기명 투표를 할 수 있는 방식이다.
투표율 향상과 투표 결과를 신속히 알 수 있는 등의 장점이 있지만 유권자 개인의 인증과 투표 내용의 기밀성 유지 등의 문제점이 있어서 현실적으로 실현하기엔 어려움이 많다.
전자투표 시스템 구현을 위한 요구사항
1. 완전성 : 모든 투표가 정확하게 집계되어야 함
2. 익명성 : 투표결과로부터 투표자를 구별할 수 없어야 함
3. 건정성 : 부정한 투표자에 의해 선거가 방해되는 일이 없어야 함
4. 이중투표방지 : 정당한 투표자가 두 번 이상 투표할 수 없어야 함
5. 정당성 : 투표에 영향을 미치는 것이 없어야 함
6. 적임성 : 투표권한을 가진 자만이 투표할 수 있음
7. 검증 가능 : 선거 결과를 변경할 수 없도록 누구라도 투표 결과를 확인하여 검증해 볼 수 있어야 함
전자투표 방식 -> PSEV, Kiosk, REV
- 전자입찰 시스템
입찰 공고에서 다수의 공급자가 응찰하여 이 중에서 가장 싼 가격을 제시한 응찰자와 계약을 맺는 입찰방식을 인터넷을 통해 구현한 것이다.
전자입찰 시스템의 요구사항
1. 독립성 : 전자입찰 시스템의 각 구성요소들은 자신들의 독자적인 자율성을 보장받아야 한다.
2. 비밀성 : 네트워크상에서 개별 정보는 각 구성요소 간에 누구에게도 노출되어서는 안 된다.
3. 무결성 : 입찰 시 입찰자 자신의 정보를 확인 가능하게 함으로써 누락 및 변조 여부를 확인할 수 있어야 한다.
4. 공평성 : 입찰이 수행될 때 모든 정보는 공개되어야 한다.
5. 안전성 : 각 입찰 참여자 간의 공모는 방지되어야 하고 입찰 공고자와 서버의 독단이 발생해서는 안 된다.
전자서명으로 해결할 수 없는 문제
전자서명이 바르게 사용되기 위해서는 큰 전제조건이 있는데 그것은 서명 검증을 할 때 이용하는 공개키가 진짜 송신자의 공개키일 것이어야 한다는 점이다. 바른 공개키를 입수하기 위해 고안된 것이 인증서이다. 인증서는 공개키를 메시지로 간주하고 신뢰 가능한 다른 사람에게 전자서명을 해서 받은 공개키이다.
'정보보안기사' 카테고리의 다른 글
키, 난수 (0) | 2023.03.15 |
---|---|
PKI (공개키 기반 구조) (0) | 2023.03.14 |
해시함수 (0) | 2023.03.12 |
비대칭키 암호(공개키 암호) (0) | 2023.03.11 |
블록 암호 사용 방식 (0) | 2023.03.09 |