정찬주 기반기획팀 연구원

 

 

 

지난 강좌에서는 공개키 기반구조가 사이버 세상에서 신뢰관계를 형성해 주는 역할을 한다는 것을 알아보았다. 공개키 기반구조에서 개인에게 발급되는 사이버 신분증인 공개키 인증서도 신뢰기관이 전자 서명한 데이터이다. 이번 강좌에서는 신뢰 관계를 형성하는데 있어 기반 기술로 활용되고 있는 전자서명 기술의 원리, 전자서명 생성 검증 절차, 그리고 이용 분야에 대하여 알아보자.

 

TV 드라마를 보면 부모와 어린 자식이 헤어지는 경우 거울이나 동전을 2개로 쪼개어 부모와 어린 자식이 하나씩 나눠 가진 , 세월이 흐른 쪼개진 거울이나 동전을 붙여 서로를 확인하는 것을 있다. 여기서 쪼개진 2개의 거울(동전) 상대방의 신원을 확인하기 어려운 사이버 공간에서 서로를 알아볼 있는 쌍의 정보(공개키와 비밀키) 사용하여 신원을 증명하는 전자서명의 원리와 비슷하다. 쪼개진 2개의 거울(동전) 전자서명을 생성하고 검증하는데 사용되는 2개의 정보인 비밀키 (전자서명 생성키) 공개키 (전자서명 검증키) 비유할 있다.

 

[그림 1] 동전을 통한 전자서명 원리를 이해하도록 돕는다. 공개키와 비밀키는 수학적으로 합치하는 하나의 쌍이라는 것을 지난 공개키 암호방식에 대한 설명을 통해 알아봤다.

 

 



 

송신자가 전자문서를 수신자에게 인터넷을 통해 전달하는 과정을 예로 들어 전자서명 생성 검증 절차에 대하여 알아보자. [그림2] 전자문서에 대하여 전자서명을 생성하는 절차를 나타낸 것이다.


 

 

송신자는 자신이 작성한 전자문서에 대한 전자서명을 생성하기 위하여 송신자의 공개키 인증서의 공개키와 수학적으로 일치하는 비밀키를 갖고 있어야 한다. [그림 2]에서 보는 것과 같이 자물쇠를 비밀키라고 한다면, 자물쇠에 맞는 열쇠를 공개키라고 하자. 송신자는 전자문서를 해쉬 함수에 넣어 압축된 유일한 값을 만든다. 해쉬 함수는 임의의 길이의 메시지를 고정된 길이(, 160 비트) 출력하는 함수이다.

해쉬 함수의 특성으로는 일방향성, 충돌회피성 등이 있다. 일방향성은 해쉬 값으로부터 해쉬되기 전의 원본데이터로 복구할 없다는 특성이다. 충돌회피성은 동일한 해쉬 값을 갖는 서로 다른 원본데이터를 찾을 없다는 특성이다. 이러한 특성 때문에 [그림 2]에서 해쉬 함수로부터 압축되어 나온 해쉬 값을 사람마다 다른 유일한 정보인 지문으로 표현하였다. 해쉬 값과 송신자의 비밀키를 전자서명 알고리즘에 입력하여 전자서명 값을 얻는 과정이 전자서명 생성 절차이다. 이렇게 생성된 전자서명 값과, 전자서명 하고자 했던 원본 전자문서, 그리고 전자서명을 생성하는데 사용한 비밀키에 수학적으로 일치하는 공개키 인증서를 수신자에게 인터넷을 통해 전달한다.

 

[그림 3] 전달받은 전자문서의 전자서명을 공개키 인증서를 이용하여 검증하는 절차이다.

 

 

수신자는 전달받은 정보(전자문서, 전자서명 , 송신자의 공개키 인증서) 전자문서를 해쉬 함수에 넣어 수신자가 압축한 해쉬 값을 계산한다. 그리고 전달받은 정보 전자서명 값과 송신자의 공개키 인증서를 전자서명 알고리즘에 입력하여 송신자가 보내온 원본 해쉬 값을 계산한다. 마지막으로 공개키 인증서의 소유자인 송신자가 전자서명을 수행했는지 확인하기 위하여 수신자가 계산한 해쉬 값과 원본 해쉬 값을 비교한다. 개의 값이 동일할 수신자는 공개키 인증서의 소유자가 해당 전자문서에 대한 전자서명을 생성한 것으로 믿는다. 만약 개의 값이 다르다면, 수신자는 위·변조된 전자문서로 인식하여 전자서명을 믿지 않게 된다.

 

지난 강좌에서 공개키 인증서도 신뢰된 인증기관의 비밀키를 사용하여 전자서명 되어 있다고 하였다. 어떤 절차에 따라 공개키 인증서가 전자서명 되는지 알아보자.

 

강좌를 읽고 있는 독자의 컴퓨터 운영체제가 Windows 계열이라면, C:\Program Files\NPKI 라는 폴더를 열어보기 바란다. NPKI 하위 폴더에는 KISA, SignGate, SignKorea, yessign 등의 폴더가 있을 것이다. 만약 이런 폴더가 없다면 전자서명을 이용하는 전자거래 사이트에 접속하지 않은 것이다. KISA라는 폴더는 국내 전자서명인증관리체계 최상위 인증기관인 한국정보보호 진흥원의 공개키 인증서가 들어 있는 폴더이다. SignGate, SignKorea, yessign 등의 폴더는 국내 공인인증기관의 폴더이고, 해당 공인인증기관으로부터 공개키 인증서를 발급받았다면, 하위에 User라는 폴더가 있다. User 폴더를 열어보면 CN=홍길동(Hong Kildong)xxxx, ou=XXX, ou=xxxx, o=yessign, c=kr라는 폴더가 있다. 폴더를 열어보면, 해당 공인인증기관으로부터 발급 받은 독자의 공개키 인증서(signCert.der) 암호화된 비밀키(signPri.key) 파일이 있다. 공개키 인증서를 발급 받지 않은 독자들의 이해를 돕기 위하여 최상위인증기관의 인증서를 가지고 설명하도록 한다. 최상위인증기관의 공개키 인증서는 C:\Program Files\NPKI\KISA\KISA.der 파일형태로 저장되어 있다.



[그림 4] 최상위인증기관 공개키 인증서의

 

[그림 4] 왼쪽은 KISA.der 파일을 더블 클릭하면 나타나고, 오른쪽은 왼쪽 그림의 메뉴 자세히라는 탭을 선택하면 나타나게 된다. 왼쪽의 그림을 보면, 발급 대상이 공개키 인증서의 소유자에 해당하고, 발급자는 공개키 인증서를 발급한 기관을 알려준다. 위의 예와 같이 발급 대상과 발급자가 같은 공개키 인증서를 자체 서명된(Self-Signed) 공개키 인증서라고 한다. 일반적으로 최상위인증기관 인증서는 인증서를 발급해주는 상위 기관이 없어 자체 서명된 공개키 인증서를 사용한다. 유효기간은 공개키 인증서를 사용할 있는 기간을 의미한다. 실제로 공개키 인증서가 어떻게 전자서명 되어 저장되는 지를 알아보자. [그림 4] 오른쪽 그림에서 필드 해당하는 버전, 일련번호, 서명 알고리즘, 발급자, 유효기간, 주체 등에 해당하는 각각의 값들이 해쉬 함수에 입력되고, [그림 2]에서처럼 해쉬된 값과 공개키에 대응하는 비밀키를 전자서명 알고리즘에 입력하여 전자서명 값이 나온다. 전자서명 값을 공개키 인증서의 전자서명 필드에 저장하여 완전한 하나의 공개키 인증서가 나오게 된다.

 

공개키 인증서에 대한 전자서명 검증은 [그림 4] 오른쪽에 있는 모든 필드의 값을 해쉬 함수에 입력하여 얻은 해쉬 값과 공개키 인증서의 전자서명 값과 공개키를 전자서명 알고리즘에 입력하여 계산한 해쉬 값이 동일한지를 비교하여 동일하다면 올바른 공개키 인증서로 받아들이고, 값이 틀리다면 위조 또는 변조된 공개키 인증서로 받아들이게 된다. 이와 같은 전자서명 생성 검증 과정은 사용자가 공개키 인증서를 이용하여 은행, 증권 등의 사이트에 로그인, 이체 주문할 때마다 일어난다.

 

전자서명은 인터넷을 이용한 은행업무, 증권업무, 쇼핑, 민원서비스 일상생활의 대부분의 업무에 이용할 있다. 전자서명을 이용한 은행업무의 경우 은행을 직접 방문하지 않고도 인터넷을 통하여 계좌이체, 송금 대출 등과 같은 은행 업무를 안전하게 처리할 있다. [그림 5] 전자서명을 이용한 은행 업무를 나타낸 것이다.


 

 

 

인터넷을 통해 이용자는 은행 사이트에 접속하게 된다. 접속한 이용자는 로그인 과정을 전자서명 과정을 통하여 수행한다. 일반적인 사이트에서 이용자는 아이디와 패스워드를 이용하여 접속하지만, 공개키 인증서를 이용하여 접속하는 사용자는 은행 사이트로부터 전달받은 난수 (random value) [그림 2]에서와 같은 방식으로 전자서명을 수행하여 전자서명 값을 은행사이트로 전달한다. 은행은 전달받은 전자서명 값과 사용자의 공개키 인증서를 전자서명 알고리즘에 입력하여 얻은 해쉬 값과 은행사이트가 사용자에게 전달한 난수 값을 해쉬 값과 비교하여 동일하다면 정당한 사용자로 받아들여 해당 이용자의 계좌정보를 보여주게 된다. 위와 같은 사용자 확인 과정을 거친 이용자가 계좌이체를 전자서명을 통하여 수행하는 경우에는 원본문서(출금계좌번호, 출금계좌비밀번호, 입금계좌번호, 입금은행명, 이체금액 ) 대하여 전자서명을 [그림 2] 같이 수행하고, 원본문서, 전자서명 값과 공개키 인증서를 은행사이트로 전달한다. 정보를 받은 은행 사이트는 [그림 3]에서와 같이 전자서명 검증을 수행하고, 공개키 인증서에 대한 검증도 수행하여 올바른 값이라면 은행은 입금계좌로 이체금액을 이체 해준다.

증권사 객장을 방문하거나 전화 이용 없이도 투자자의 신원확인과 거래 사실이 증명할 있는 증권업무에도 전자서명이 이용된다. [그림 6] 전자서명을 이용한 증권업무를 나타낸 것이다. 로그인 주문 신청의 상세 과정은 은행업무의 설명과 비슷하다. 또한, 주민등록등본, 호적등본 발급 각종 행정민원서비스를 위해 해당기관(구청, 동사무소 ) 방문하지 않고도 쉽게 처리할 있는 민원업무에도 전자서명이 이용된다. [그림 7] 전자서명을 이용한 민원업무를 나타낸 것이다. 

 


 
 
 

 

이외에도 인터넷 쇼핑, 온라인 게임, 인터넷 보험, 전자계약, 온라인 세무신고 납부 다양한 분야에서 전자서명이 사용되고 있다.

 

전자서명이 앞으로 실생활에서 쓰임새가 더욱 확대될 것이고, 나아가 안전한 인터넷 세상을 만드는데 중요한 역할을 것이다. 지난 번의 강좌가 독자들이 암호, PKI 전자서명에 대한 기본적인 개념을 이해하는 기회가 되었기를 바란다.

 

 

 

 

[출처: 정보보호뉴스 2005 4월호]

+ Recent posts