'Dev Note/Security'에 해당되는 글 1건

  1. 2009.09.30 전자서명 (공인인증서 활용)
Dev Note/Security2009. 9. 30. 08:33
인터넷에서 이루어지는 모든 행위(거래, 메시지 전달 등)의 특징은 '비대면' 즉, 서로 상대방에 대해 정확하게 알지 못한다는 것이다. 비대면 행위에서의 문제점은 행위 상대방에 대한 신원 확인과 행위의 검증이 문제이다.

예를 들어 인터넷 뱅킹을 이용하려는 경우에 은행에서는 '창구'에서 고격을 확인하듯이 '인터넷' 상에서도 고객을 확인할 수 있어야 한다. 또한 물건 구매계약 등과 같은 일반 거래에서 거래 대면하여 계약서에 당사자가 서명 날인 함으로써 해당 계약이 유효하게 되는데, 인터넷 상에서도 이러한 서명날인의 방법이 있어야 한다.

즉, 상대방에 대한 신원확인과 인감도장 날인의 수단으로 전자서명과 공인인증서가 사용된다. 이것은 우리나라에서는 법적으로 그러한 효력이 보장되고 있는데, 바로 '전자서명법'이 그것이다.

전자서명이란?
전자서명이란 일상 샐활의 종이문서에 사용되는 서명이나 인감과 같이 전자문서에 서명한 사람의 신원을 확인하고, 서명된 전자문서가 위변조 되지 않았는지 여부를 알 수 있도록 전자문서에 부착되는 특수한 디지털 정보를 위미한다.

전자서명의 기능은 크게 두가지의 기능을 갖는다.
  1. 메시지 인증 기능 : 정보가 암호화 되어 있다 하더라도 이 내용이 처음에 만들어진 내용인지 변경되지 않은 것인지 여부를 증명하는 기능
  2. 사용자 인증 기능 : 메시지를 보낸 송신자가 수신자가 기대하는 정확한 수신자인지 여부를 증명하는 기능, 이 기능은 송신자가 이 메시지를 자신이 보낸것이 아니라고 부인하지 못하게 하는 기능까지 포함하게 된다.

현재 우리나라에서의 전자서명은 공인인증서를 활용한 공개키기반구조(PKI) 암호방식을 적용하고 있다.

공인인증서란?

국가에서 공인한 공인인증기관에서 발급한 인증서를 말한다. '인증서'는 가입자(인증서를 발급 받은자)의 신원정보와 전자인감을 증명해준다.

공인인증서의 종류는 세가지가 있다.
은행 개인 공인인증서
    - 인터넷 뱅킹, 온라인 보험거래, 전자민원 서비스에 사용
범용 개인 공인인증서 (4,400원/년)
    - 인증서가 필요한 모든 거래
    - 은행 개인 공인인증서로 할 수 있는 것에 온라인 주식거래, 온라인 신용카드 거래
신용카드용 공인인증서
    - 은행 개인 공인인증서를 발급 받은 후 yessign에서 발급
    - 온라인 신용카드 거래, 전자 민원 서비스 (인터넷 뱅킹 사용 불가)

공인인증서는 개인당 하나만을 발급 받을 수 있다. 은행/범용 공인인증서를 각각 발급 받을 수는 있지만, 하나의 공인인증서에 대해 두개 이상은 발급 받을 수 없다. 따라서, 새로운 공인인증서를 발급 받기 위해서는 기존에 사용하고 있는 공인인증서를 폐기해야 한다.

공인인증기관은 정보통신부에서 지정하며, 현재 6개의 인증기관이 지정되어 있다.
    한국정보인증(주), 코스콤, 금융결제원, 한국전산원, 한국전자인증(주), (주)한국무역정보통신

공인인증서 발급절차

  1. 발급기관에 공인인증서 발급 신청 : 발급을 희망하는 사용자는 인증기관이나 등록대행기관에 공인인증서 발급 신청 (신원확인 필요)
  2. 발급기관에게 참조번호 및 인가코드 부여 받음 : 공인 인증기관은 참조번호와 인가코드가 기재된 확인서를 신청자에게 전달
  3. 발급기관 홈페이지 접속 : 등록 확인서를 가지고 공인인증기관에 접속하여 공인인증서 발급 신청
  4. 공인인증서 발급 : 해당 기관의 홈페이지 메뉴에 따라 공인인증서서 발급. 공인인증서는 사용자의 저장매체(하드디스크, USB메모리 등)에 저장
  5. 공인인증서 사용

PKI (Public Key Infrastructure)?

PKI는 공개키 알고리즘을 통한 암호화 및 전자서명을 제공하기 위한 보안 시스템을 말한다. 즉 공개키와 개인키를 이용하여 송수신 데이터의 위변조 검증과 신원을 확인하는 시스템을 말한다.
공개키 알고리즘은 암호화와 복호화에 사용되는 키가 다른 구조를 가진다.
공개키는 말 그래로 공개적으로 알려지는 키이며, 비밀키는 자기 자신만이 알고 있는 키가 된다.
공개키로 암호화되면 비밀키로 복호화가 되며, 비밀키로 암호화 되면 공개키로 복호화가 가능하다. 여기서 비밀키로 암호화 된 정보는 공개키로 복호화 할 수 있는 부분에서 전저서명의 신원확인 기능을 가능하게 된다. 비밀키는 자신만이 알고 있는 키로 정의되므로, A의 비밀키로 암호화 된 정보를 A의 공개키로 복호화가 되었다는 것은 A의 비밀키를 알고 있는 A 자신에 의해 암호화되었다는 것이 된다. 그러므로 A의 신원을 확인 할 수 있게 된다.

공인인증서를 활용한 전자서명

공인인증서를 활용한 전자서명을 간단한 도식도로 표현하면 다음과 같다.

전자서명 생성
  1. 전자문서의 MD 값을 생성 : Hash 알고리즘은 SHA-1을 사용
  2. 생성 된 MD 값을 Sender의 비밀키를 이용하여 암호화 : 암호화 알고리즘은 RSA를 사용
  3. 생성 된 전자서명을 전자문서와 함께 전송

전자서명 검증

  1. Sender에게서 전자문서와 전자서명을 수신
  2. 수신 한 전자서명을 Sender의 공개키로 MD값을 복호화 : 복호화 알고리즘은 RSA를 사용
  3. 수신 한 전자문서의 MD 값을 생성 : Hash 알고리즘은 SHA-1을 사용
  4. 2번의 MD 값과 3번의 MD 값을 비교하여 검증 : 동일하면 Sender의 신원확인 및 전자문서 위변검증
Posted by as.wind.914