[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100750214B1 - 공인 인증서를 이용한 로그인 방법 - Google Patents

공인 인증서를 이용한 로그인 방법 Download PDF

Info

Publication number
KR100750214B1
KR100750214B1 KR1020050012489A KR20050012489A KR100750214B1 KR 100750214 B1 KR100750214 B1 KR 100750214B1 KR 1020050012489 A KR1020050012489 A KR 1020050012489A KR 20050012489 A KR20050012489 A KR 20050012489A KR 100750214 B1 KR100750214 B1 KR 100750214B1
Authority
KR
South Korea
Prior art keywords
authentication
public certificate
client
service provider
server
Prior art date
Application number
KR1020050012489A
Other languages
English (en)
Other versions
KR20060091548A (ko
Inventor
권도균
이창희
정주원
Original Assignee
권도균
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 권도균 filed Critical 권도균
Priority to KR1020050012489A priority Critical patent/KR100750214B1/ko
Publication of KR20060091548A publication Critical patent/KR20060091548A/ko
Application granted granted Critical
Publication of KR100750214B1 publication Critical patent/KR100750214B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 공인 인증서를 이용한 로그인 방법에 관한 것으로서, 특히 통신 네트워크상에서 소정의 서비스를 제공하는 서비스 서버측에 사용자가 로그인을 할 때에 아이디와 패스워드 입력 방식이 아니라 공인 인증서를 이용하는 인증 서비스를 대행하는 방법에 관한 것이다.
본 발명에 의한 공인 인증서를 이용한 로그인 방법은, 클라이언트와, 서비스 제공자 서버와, 인증 서버와, 상기 클라이언트와 서비스 제공자 서버 및 인증 서버를 데이터 통신이 가능하도록 연결하는 통신 네트워크를 포함하는 환경에서 인증 서버에 의해 수행된다. 이 로그인 방법은, 상기 클라이언트의 상기 서비스 제공자 서버로의 로그인 적격을 상기 인증 서버가 인증하는 방법에 관한 것으로서,
(1) 공인 인증서 정보 및 공인 인증서 식별자 중 적어도 어느 하나와 전자서명 값을 전송받는 인증 요청 단계와, (2) 상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와, (3) 상기 전자서명 값을 디코딩하여 검증하는 단계와, (4) 상기 고유 식별 코드와 인증 일시 데이터를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 인증 확인서 정보를 상기 서비스 제공자 서버측으로 전송할 수 있도록 하는 인증 확인 단계를 포함한다.
그리고 상기 인증 요청 단계와 인증 확인 단계는 보안 접속 프로토콜에 의하여 수행된다.
공인 인증서, 로그인, 개인 정보, 암호화

Description

공인 인증서를 이용한 로그인 방법{Log-in Method Using Certificate}
도 1은 본 발명에 의한 로그인 인증 방법이 수행되기 위한 환경의 개략도.
도 2는 기존에 회원으로 가입해 있는 서비스 제공자 서버에 대해서 본 발명에 의한 로그인 인증 방법 이용의 등록 과정의 흐름도.
도 3은 서비스 제공자 서버에 회원으로 가입할 때에 본 발명에 의한 로그인 인증 방법을 선택하는 과정의 흐름도.
도 4는 본 발명에 의한 로그인 과정의 흐름도.
도 5는 본 발명에 의한 로그인 과정 중 비상키를 이용한 로그인 과정의 흐름도.
도 6은 도 2에 도시된 과정에서의 데이터 흐름도.
도 7은 도 3에 도시된 과정에서의 데이터 흐름도.
도 8은 공인인증서를 이용한 로그인 과정에서의 데이터 흐름도.
도 9는 본 발명에 의한 공인 인증서 로그인 화면.
도 10은 본 발명에 의한 공인 인증서 로그인 중 비상키를 이용한 로그인 화면.
본 발명은 공인 인증서를 이용한 로그인 방법에 관한 것으로서, 특히 통신 네트워크상에서 소정의 서비스를 제공하는 서비스 서버측에 사용자가 로그인을 할 때에 아이디와 패스워드 입력 방식이 아니라 공인 인증서를 이용하는 인증 서비스를 대행하는 방법에 관한 것이다.
인터넷이 널리 보급되면서 다양한 콘텐츠를 제공하는 서비스 제공 사업이 널리 수행되고 있다. 이와 같은 서비스를 인터넷을 통해 제공받기 위해 통상 서비스 제공자 측은 사용자가 개인 정보를 입력하여 자사의 회원으로 가입할 것을 요구하고 있다. 소위 포털 사이트(portal site)뿐만 아니라 각 기업의 웹사이트도 고급 정보를 제공하거나 서비스를 제공받기 위해서는 회원 가입을 필수 요건으로 하고 있는 실정이다.
사용자는 서비스를 제공받기 위해 각각의 웹사이트마다 회원 가입을 수행하여야 하며, 그러한 회원 가입시 동일한 개인 정보를 매번 입력하여야 한다. 또한, 자신이 사용하기를 원하는 아이디가 이미 다른 사용자에 의하여 선점되어 있는 경우에는 다른 아이디를 사용하여야 하고, 회원으로 가입하는 사이트가 늘어나면 늘어날수록 기억해야 하는 아이디와 패스워드의 수가 증가하여 원활하게 웹사이트에 로그인할 수 없게 되는 문제가 발생할 수 있다.
한편, 서비스 제공자 측에서도 회원의 수가 증가하면 증가할수록 그 개인 정보를 관리하는 것이 용이하지 않게 되고, 더욱이 이처럼 저장되어 있는 개인 정보들이 부정한 방법으로 유출되는 문제점이 있었다.
본 발명은 이러한 종래 기술의 문제점을 해결하여 현재 널리 보급되어 있는 공인 인증서를 이용하여 서비스 제공자 서버측에 로그인할 수 있는 방법을 제공하는 것을 목적으로 한다.
본 발명에 의한 공인 인증서를 이용한 로그인 방법은, 클라이언트와, 서비스 제공자 서버와, 인증 서버와, 상기 클라이언트와 서비스 제공자 서버 및 인증 서버를 데이터 통신이 가능하도록 연결하는 통신 네트워크를 포함하는 환경에서 인증 서버에 의해 수행된다. 이 로그인 방법은, 상기 클라이언트의 상기 서비스 제공자 서버로의 로그인 적격을 상기 인증 서버가 인증하는 방법에 관한 것으로서,
(1) 공인 인증서 정보 및 공인 인증서 식별자 중 적어도 어느 하나와 전자서명 값을 전송받는 인증 요청 단계와, (2) 상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와, (3) 상기 전자서명 값을 디코딩하여 검증하는 단계와, (4) 상기 고유 식별 코드와 인증 일시 데이터를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 인증 확인서 정보를 상기 서비스 제공자 서버측으로 전송할 수 있도록 하는 인증 확인 단계를 포함한다.
그리고 상기 인증 요청 단계와 인증 확인 단계는 보안 접속 프로토콜에 의하여 수행된다.
공인 인증서의 사전적 의미는 "온라인 금융거래시 거래자의 신원 확인·증명 을 위해 사용되는 일종의 전자서명으로 공인인증기관(Certification Authority)이 발행한 인증서"를 의미하고 더욱더 상세하게 설명하면 전자서명법 제4조의 규정에 의하여 지정된 공인인증기관이 동법 제15조의 규정에 따라 발급하는 인증서를 의미하지만, 본 명세서 및 특허청구범위에 기재된 "공인 인증서"는 이러한 인증서에 제한되지 아니하며, 사설 인증서라 할지라도 소정의 신뢰성을 담보하는 사설 인증서라면 포함한다.
상기 구성에 의하면, 사용자가 클라이언트를 이용하여 자신의 공인 인증서를 이용하여 인증 서버로 인증 요청을 하고, 이를 전송받은 인증 서버가 소정의 검증 절차를 거쳐서 인증 확인서 정보를 클라이언트측으로 전송하고, 클라이언트는 이를 서비스 제공자 서버로 재전송하여 검증받기 때문에, 사용자가 서비스 제공자 서버로 로그인하기 위한 아이디나 패스워드를 입력할 필요가 없고 공인 인증서만 있으면 서비스 제공자 서버측으로의 로그인이 가능하다. 한편, 공인 인증서 정보를 전송하는 것과 병행하거나 대신하여 사용자의 공인 인증서 정보를 알 수 있는 유알엘(URL) 주소 등을 가리키는 식별자를 전송하는 것이 가능하다.
이러한 공인 인증서 로그인할 수 있기 위해서는 사전에 공인 인증서를 이용하는 로그인 서비스를 이용할 것을 서비스 제공자 서버와 인증 서버에 등록해 놓는 것이 바람직하다.
본 발명의 양호한 실시예에 의하면 상기 서비스 제공자를 특정할 수 있는 서비스 제공자 특정 코드를 인증 요청 단계에서 더 전송받으며, 상기 인증 방법이 (1) 상기 서비스 제공자 특정 코드와 상기 고유 식별 코드를 참조하여 상기 공인 인증서를 발급받은 자가 상기 서비스 제공자 서버로의 공인 인증서 로그인 이용 선택을 한 자인지를 판별하는 단계와, (2) 상기 서비스 제공자 서버로의 로그인 아이디를 추출하는 단계를 더 수행한다. 그리고 상기 인증 확인 단계에서 상기 로그인 아이디를 더 전송한다.
상기 전자서명 값은 상기 서비스 제공자 특정 코드를 해쉬 알고리즘으로 해쉬하여 상기 클라이언트측의 개인키로 인코딩한 값을 데이터 인코딩 스킴(data encoding scheme)으로 인코딩한 값이며, 상기 데이터 인코딩 스킴은 이진 데이터를 인쇄가능한 문자열 코드로 변환시키는 데이터 인코딩 스킴인 것이 바람직하다.
상기 데이터 인코딩 스킴은 예를 들어 베이스64(base64)일 수 있으며, 인코딩되어 나온 바이너리(binary) 값을 아스키 코드로 변경시킨다.
상기 보안 접속 프로토콜은 시큐어 소켓 레이어(Secure Socket Layer; SSL) 또는 트랜스포트 레이어 시큐리티(Transport Layer Security; TLS)인 것이 바람직하다.
본 발명의 다른 실시예에 의하면, 로그인 시도자의 실명 확인 단계를 더 수행한다.
이러한 실명 확인 단계의 구체적인 예로서, (1) 상기 공인 인증서 정보가 소정의 랜덤 값과 공인 인증서 소유자의 고유 식별 코드를 더하여 해쉬한 값을 포함하며, (2) 상기 인증 요청 단계에서 상기 랜덤 값을 더 전송받으며, (3) 상기 랜덤 값과 상기 인증서를 참조하여 추출한 로그인 시도자 고유 식별 코드에 상기 랜덤 값을 더하여 해쉬한 값과 상기 인증 요청 단계에서 전송받은 해쉬한 값을 비교하여 실명확인을 수행하는 방법이 있다.
이는 실명 확인 단계를 더 수행함으로써 인증 요청 도중에 악의의 제3자가 공인 인증서 정보를 변경시켰는지 여부를 판별할 수 있게 되기 때문에 보안성을 제고할 수 있게 한다.
한편, 본 발명의 다른 실시예에 의하면 공인 인증서 로그인 방법과 병행하여 공인 인증서가 없거나 공인 인증서 식별자를 지정할 수 없는 상황에서 비상키를 이용하여 로그인할 수 있는 방법도 제공한다.
이 실시예에서는 인증 요청 단계에서 인증 방법을 특정하는 인증 방법 특정 코드를 더 전송받는데, 상기 인증 방법 특정 코드가 공인 인증서 로그인을 가리키는 코드이면, 상기 인증 요청 단계와 인증 확인 단계를 수행한다. 다만, 상기 인증 확인 단계에서 상기 공인 인증서 로그인임을 가리키는 소정의 코드를 더 전송하게 된다.
만약 상기 인증 방법 특정 코드가 비상키 인증을 가리키는 것으로 판별되면, 상기 인증 요청 단계에서 상기 서비스 제공자 서버를 특정할 수 있는 서비스 제공자 특정 코드와, 상기 비상키 정보와, 로그인 시도자의 고유 식별 코드를 전송받는다. 그리고 인증 확인 단계에서는 로그인 시도자의 고유 식별 코드와, 비상키를 이용한 인증임을 가리키는 소정의 코드와, 인증 일시 데이터를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 서비스 제공자 서버측으로 전송할 수 있도록 한다.
이 실시예에서도 인증 요청 단계들과 인증 확인 단계들은 모두 보안 접속 프 로토콜에 의해서 수행된다.
이 구성에 의하면, 사용자가 공인 인증서가 탑재되어 있지 않은 클라이언트측에서 서비스 제공자 서버로 로그인을 수행할 때에 미리 등록해 놓은 비상키를 사용하여 로그인을 수행할 수 있게 한다. 즉 인증 요청 단계에서 공인 인증서를 이용한 로그인인지 아니면 비상키를 이용한 로그인인지를 가리키는 코드를 함께 전송받아 이 코드에 따라서 로그인 수행 과정을 달리하는 것이 가능하다.
본 발명의 바람직한 실시예에 의하면, 상기 인증 서버는 상기 클라이언트로부터 개인 정보 저장 요청 메시지를 전송받고, 이 메시지에 포함되어 있는 개인 정보를 인증 서버측에 저장한 후, 그 처리 결과를 클라이언트로 전송하는 단계를 더 포함한다.
이러한 방법에 의하면, 클라이언트에 저장되어 있는 개인 정보를 인증 서버측에 백업해 놓아 데이터 분실의 염려를 제거할 수 있다.
이렇게 저장되어 있는 개인 정보에 대해, 클라이언트는 통신 네트워크를 통한 다운 로드 요청을 할 수 있으며, 이러한 요청을 받은 인증 서버는 저장되어 있는 개인 정보를 암호화하여 통신 네트워크를 통해 전송한다.
좀 더 나아가 살펴보면, 클라이언트는 이와 같이 개인 정보를 암호화하여 저장함으로써, 서비스 제공자 서버에 회원 가입할 때에 개인 정보 입력을 요구하는 폼을 자동으로 완성하는 것이 가능해 진다.
본 발명의 또 다른 형태에 의한 공인 인증서를 이용한 로그인 방법은, (1) 공인 인증서 정보 및 공인 인증서 식별자 중 적어도 어느 하나와, 전자서명한 값을 전송받는 인증 요청 단계와, (2) 상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와, (3) 상기 전자서명 값을 디코딩하여 검증하는 단계와, (4) 상기 인증 서버의 인증서 정보 및 인증 서버의 인증서 식별자 중 적어도 어느 하나와, 상기 고유 식별 코드와 인증 일시를 암호화한 제1 암호화 값과, 상기 제1 암호화 값을 전자서명한 값을 포함하는 인증 확인서(assertion) 정보를 상기 클라이언트측으로 전송하여 상기 클라이언트가 전송받은 인증 확인서 정보를 상기 서비스 제공자 서버측으로 재전송 가능하도록 하는 인증 확인 단계를 포함한다.
이러한 구성에 의하면 별도의 보안 접속 프로토콜에 의하지 않고 암호화 과정을 포함하여 인증 요청 단계와 인증 확인 단계가 수행되는 점에서 전술한 실시예와 상이하지만 그 효과는 대동소이하다.
한편, 본 발명의 바람직한 실시예에 의하면 상기 인증 요청 단계에서, 상기 서비스 제공자 서버 인증서 정보 및 서비스 제공자 서버 인증서의 식별자 중 적어도 어느 하나와, 상기 클라이언트가 상기 서비스 제공자 서버로부터 전달받은 제1 랜덤 값과 상기 인증 서버로부터 전달받은 제2 랜덤 값을 암호화한 제2 암호화 값과, 상기 제2 암호화 값을 전자서명한 전자서명 값을 더 전송받는다. 그리고 상기 제1 암호화 값은 상기 제1 랜덤 값과 상기 고유 식별 코드와 인증 일시를 암호화한 값이다.
상기 제1 랜덤 값과 제2 랜덤 값을 더하여 암호화하고 이를 인증 서버가 디코딩하여 검증함으로써 악의의 제3자가 암호화 값을 도중에 가로채서 인증 서버나 서비스 제공자 서버측으로 여러 번에 걸쳐 전송하는 재전송 공격(replay attack)으로 인한 피해를 방지할 수 있다.
상기 제2 암호화 값은 상기 제1 랜덤 값과 상기 인증 서버로부터 전달받은 제2 랜덤 값과 상기 서비스 제공자 아이디를 암호화한 값일 수 있다.
본 발명의 양호한 실시예에 의하면, (1) 상기 제1 암호화 값의 생성은 상기 서비스 제공자 서버의 공개키로 수행되며, (2) 상기 제2 암호화 값의 생성은 세션키(session key)에 의해 수행되며, (3) 상기 인증 요청 단계에서 상기 세션키를 상기 인증 서버의 공개키로 암호화한 제3 암호화 값을 더 전송받는다.
이와 같이 세션키를 사용함으로써 보안성을 고양할 수 있다. 세션키는 인증 서버의 공개키로 암호화하여 인증 서버로 전송하고 이를 전송받은 인증 서버가 자신의 비밀키로 디코딩하여 세션키를 확인한 후 이 세션키로 제2 암호화 값을 디코딩하여 암호화된 데이터를 확인할 수 있다.
상기 제2 암호화 값은 상기 세션키로 암호화한 값을 소정의 데이터 인코딩 스킴(data encoding scheme)에 의해 변환하고 변환된 값을 유알엘 인코딩(URL Encoding)한 값이며, 상기 소정의 데이터 인코딩 스킴은 이진 데이터를 인쇄가능한 문자열 코드로 변환시키는 데이터 인코딩 스킴인 것이 바람직하다.
전술한 바와 같이 이러한 데이터 인코딩 스킴은 예를 들어 베이스64(base 64)이어서, 암호화된 바이너리 값을 아스키 코드로 변경시킨다.
그리고 제2 암호화 값을 전자서명한 값은, 소스 문자열을 해쉬 함수에 의해 해쉬하고, 해쉬되어 추출된 다이제스트(digest)를 상기 클라이언트의 개인키로 암 호화한 값인 것이 바람직하다.
본 발명에 의한 공인 인증서를 이용한 로그인 방법은 (1) 상기 클라이언트로부터 공인 인증서 정보 및 공인 인증서 식별자 중 적어도 하나를 포함하는 인증 요청 데이터를 전송받는 인증 요청 단계와, (2) 상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와, (3) 상기 전자서명 값을 디코딩하여 검증하는 단계와, (4) 상기 고유 식별 코드와 인증 일시 데이터를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 인증 확인서 정보를 상기 서비스 제공자 서버측으로 전송할 수 있도록 하는 인증 확인 단계를 포함한다.
그리고 상기 인증 요청 단계와 인증 확인 단계는 보안 접속 프로토콜에 의하여 수행된다.
이하에서는 첨부 도면을 참조하여 본 발명의 양호한 실시예에 대해 상세히 설명하기로 한다.
도 1에는 본 발명에 의한 공인 인증서를 이용한 로그인이 수행되는 환경의 개략도가 도시되어 있다.
도 1에 도시되어 있는 바와 같이, 이 환경은 클라이언트(10)와, 서비스 제공자 서버(20)와, 인증 서버(30)와, 통신 네트워크(40)를 포함한다. 통신 네트워크는 인터넷을 포함하여 데이터 통신이 가능하도록 상기 클라이언트(10)와, 서비스 제공자 서버(20)와, 인증 서버(30)를 연결하는 네트워크라면 어느 것이라도 모두 포함하는 개념으로 이해되어야 한다. 본 명세서에서는 통신 네트워크와 인터넷을 혼용해서 사용하지만, 편의상 인터넷이라고 표현하더라도 전술한 바와 같은 광의의 통신 네트워크를 포함하는 개념을 가리키는 것으로 이해하여야 한다.
클라이언트(10)는 사용자가 로그인을 시도하는 개인용 컴퓨터 등을 의미하는데, 이 클라이언트(10)에는 공인 인증서(15)가 탑재되어 있는 것이 바람직하다. 공인 인증서(15)가 탑재되어 있지 아니한 경우에는 공인 인증서 식별자 예를 들어 사용자의 공인 인증서 정보를 확인할 수 있는 URL 주소 등을 특정할 수 있는 정보가 저장되어 있어야 한다. 한편, 후술하는 바와 같은 비상키를 이용하여 로그인을 수행할 때의 클라이언트는 공인 인증서(15) 내지 공인 인증서 식별자를 탑재하지 않을 수도 있다. 전술한 바와 같이 공인 인증서는 사전적 의미로서 "온라인 금융거래시 거래자의 신원 확인·증명을 위해 사용되는 일종의 전자서명으로 공인인증기관(Certification Authority)이 발행한 인증서"를 의미하지만, 본 명세서 및 특허청구범위에 기재되어 있는 "공인 인증서"는 이러한 인증서에 제한되지 아니하며, 사설 인증서도 포함한다.
서비스 제공자 서버(20)는 인터넷상에서 소정의 정보를 제공하거나 서비스를 제공하는 서버를 의미하는데, 회원 가입을 필요로 하는 사이트의 서버가 그 일례가 될 수 있다.
도 1에 도시되어 있는 환경하에서 클라이언트(10)와 서비스 제공자 서버(20)는 단수로 도시되어 있지만 실제 환경하에서는 복수 개가 제공될 수 있다.
인증 서버(30)는 서비스 제공자 서버(20)와는 별도로 제공되는 것으로서 본 발명에 의한 공인 인증서를 이용한 로그인과 비상키를 이용한 로그인을 수행하는 주체이다. 서비스 제공자 서버(20)를 운영하는 기업들이 인증 서버(30)를 운영하는 주체와 소정의 계약을 통해 자신의 서버 로그인을 인증 서버(30)가 본 발명에 의한 공인 인증서를 이용한 로그인 또는 비상키를 이용한 로그인으로 가능하도록 하는 방식이다.
도 2에는 사용자가 기존에 회원으로 가입해 놓은 서비스 제공자 서버(20)에 공인 인증서를 이용한 로그인을 이용할 것으로 등록하는 과정의 흐름도가 도시되어 있다. 도 6에는 그러한 과정이 수행되는 데이터 통신 흐름도가 도시되어 있다. 도 2와 도 6을 참조하여 설명하기로 한다.
사용자가 기존에 회원으로 가입해 놓은 경우에는 통상 서비스 제공자 서버(20)에 등록해 놓은 사용자 아이디와 패스워드를 입력하는 종래의 방식이다. 그리고 사용자의 개인 정보는 회원 가입 당시 입력되어 서비스 제공자 서버(20)에 저장되어 있다.
사용자가 서비스 제공자 서버(20)에 통신 네트워크(40)를 통하여 접속한 후에 웹 브라우저에서 아이디/패스워드를 입력한다.(S200) 다음으로 브라우저는 공인인증서 로그인 오브젝트(object)를 호출한다(S210) 오브젝트는 액티브 엑스(Active X)의 형태로 제공되는 것이 바람직하다.
이어서 서비스 제공자 서버(20)와 오브젝트간의 통신에 의해 공인 인증서를 사용한 로그인 서비스를 안내하고 약관에 동의할지 여부를 질의하는 화면을 클라이언트(10)에 표시한다.(S215) 사용자가 약관에 동의한 것으로 단계(S220)에서 판단 되면 단계(S225)로 이행하고, 동의하지 않은 것으로 판단되면 단계(S275)로 이행하여 통상의 아이디/패스워드 로그인 과정을 수행한다. 즉 본 발명에 의한 공인 인증서 로그인 서비스를 이용하지 않을 것으로 사용자가 선택하면 오브젝트가 사용자가 단계(S200)에서 입력한 아이디와 패스워드를 단계(S275)에서 서비스 제공자 서버(20)측으로 전송한다. 서비스 제공자 서버(20)는 전송받은 아이디와 패스워드를 검증하고, 단계(S285)에서 정당한 회원인 것으로 검증되면 사용자에게 통신 네트워크(40)를 통하여 서비스를 제공한다.(S265)
단계(S225)에서는 서비스 제공자 서버(20)측에 사용자의 개인 정보를 전송해 줄 것을 요청한다. 또한, 이때 사용자가 단계(S200)에서 입력한 아이디와 패스워드를 서비스 제공자 서버(20)로 전송한다. 상기 개인 정보는 사용자가 서비스 제공자 서버(20)에 회원으로 가입할 때에 입력하여 서비스 제공자측이 보유하고 있는 정보이다. 아이디와 패스워드를 전송하는 것은 사용자가 서비스 제공자 서버(20)에 종래에 회원으로 가입해 있는지를 확인하기 위함이다.
서비스 제공자 서버(20)에서는 오브젝트로부터 전송받은 아이디와 패스워드를 검증하며(S230), 정당한 회원인지를 판별한다(S235). 아이디와 패스워드 검증 결과 정당한 회원이 아닌 것으로 판별되면 오류 메시지를 클라이언트(10)측에 전송한다.
정당한 회원인 것으로 판별되면 서비스 제공자 서버(20)에 저장되어 있는 개인 정보를 오브젝트로 전송한다.(S240) 개인 정보를 전송받은 클라이언트(10)는 이를 암호화하여 저장한다.(S245) 개인 정보는 암호화되어 클라이언트(10)에 저장 되기 때문에 제3자에게 누출될 가능성은 극히 낮다. 그리고 후술하는 바와 같이 추후에 다른 서비스 제공자 서버에 회원으로 가입할 때에 다시 개인 정보를 입력할 필요가 없이 암호화되어 있는 개인 정보를 디코딩하여 사용할 수 있기 때문에 편리하다.
위와 같은 과정을 거친 다음에는 본 발명에 의한 공인 인증서를 이용한 로그인 서비스 가입 요청을 인증 서버(30)에 한다.(S250)
클라이언트(10)와 인증 서버(30) 사이의 메시지 구조는 BNF(Backus Normal Form)으로 표시하면 아래와 같이 구성된다.
message :: = msg_type["&"sign_data]["&"signature]["&"add_data]
여기에서 msg_type은 메시지의 종류를 특정하는 코드이다. 예를 들어, 아래와 같이 구성할 수 있다.
sign_data는 전자서명할 데이터를 의미하며, signature는 sign_data를 전자서명한 값이다. 그리고 add_data는 부가적인 데이터로서 메시지에 포함될 수도 있고 포함되지 않을 수도 있으며 전자서명하지 않는다.
단계(S250)에서 가입 요청을 인증 서버로 전송할 때에는 sign_data는 서비스 제공자 서버 특정 코드(mpid)와, 사용자의 이름과, 사용자를 식별할 수 있는 고유 식별 코드와, 이메일 주소와, 사용자가 상기 서비스 제공자 서버(20)에 회원 가입시 등록해 놓은 아이디(mpuserid)와, 비상키를 포함한다. 사용자를 식별할 수 있는 고유 식별 코드는 예를 들어 주민등록번호가 될 수 있다. 그리고 공인 인증서가 법인에게 발급된 것이라면, 고유 식별 코드는 예를 들어 법인등록번호가 될 수 도 있다. 그러나 이러한 것에 한정되는 것은 아니며, 예를 들어 운전면허 번호와 여권 번호 등과 같이 개인마다 고유하게 부여되는 코드라면 어느 것이든 사용 가능하다. 비상키라 함은 공인 인증서 로그인 서비스를 이용하는 자가 공인 인증서가 탑재되어 있지 않은 클라이언트(10)를 통하여 서비스 제공 서버(20)에 로그인할 수 있도록 하기 위한 일종의 패스워드이다.
전자서명 값 signature은 역시 BNF 형식으로 표시하면 아래와 같은 형식을 가진다.
signature ::= "sg" "="<sign_data를 전자서명하여 베이스64 인코딩한 문자열>["&""cc" "=" <전자서명에 사용된 인증서>]["&" "alg" "="<전자서명에 사용된 알고리즘]
베이스64(base64)는 바이너리(binary) 코드를 인쇄 가능한 문자열로 변환시키는 데이터 인코딩 스킴(data encoding scheme)의 일종으로서 이러한 기능을 수행하는 다른 스킴을 사용해도 무방하다. 전자서명에 사용된 인증서 대신에 전자서명에 사용된 인증서 식별자 정보를 포함시켜도 무방하며, 양자를 모두 포함해도 무방하다.
전자서명 값의 생성과 관련하여 더욱더 구체적으로 설명하면 다음과 같다. 먼저 sign_data를 해쉬 알고리즘 예를 들어 SHA-1로 해쉬한 다음 RSA 개인키로 전자서명을 한다. 그 전자서명한 바이너리(binary) 값을 베이스64 인코딩한 후에 "sg="에 연접한다. 그리고 RSA 개인키에 대응하는 인증서를 PEM 형식으로 "cc="와 연접한다. 마지막으로 위 결과에 "alg=SHA-1withRSAEncryption"을 연접하여 전자 서명 값을 완성한다.
공인 인증서를 이용한 회원 가입을 요청할 때에 메시지의 마지막에 포함되는 add_data는 소정의 랜덤 값 er이다.
공인 인증서에는 실명확인을 위하여 피발급자의 고유 식별 코드 예를 들어 주민등록번호 또는 법인등록번호와 소정의 랜덤 값을 해쉬한 값이 포함되어 있는데, 이 랜덤 값 er을 공인 인증서와 함께 전송받은 인증 서버(30)는 공인 인증서로부터 추출한 고유 식별 코드와 이 랜덤 값을 더하여 해쉬한 다음 이 해쉬 값과, 공인 인증서 정보에 포함되어 있는 해쉬값이 일치하는지 여부를 체크한다.
한편, 인증 서버(30)는 공인 인증서를 이용한 로그인 서비스 가입 요청을 받을 때 전송받은 고유 식별 코드와 공인 인증서에 포함되어 있는 DN을 대응시켜 놓고 추후 공인 인증서를 이용한 로그인 수행시 사용하게 된다.
이렇게 작성된 공인 인증서 로그인 가입 요청 메시지를 인증 서버(30)측으로 전송하고, 가입 절차를 거쳐 가입 결과를 클라이언트(10)로 전송한다.(S255)
회원 가입 요청에 대해서 인증 서버(30)가 응답할 때에 전송되는 메시지에는 서비스 제공자 식별 코드(mpid)와, 주민등록번호 앞자리(sn1)와 뒷자리(sn2)와, 사용자 성명(UB_name)과, 사용자 이메일(UB_email)을 sign_data로 포함시켜 전자서명을 하여 전송한다. 이 메시지의 msg_type에는 회원 가입 요청에 대한 응답임을 표시하는 플래그가 포함되며, add_data는 포함되지 않는다. 이와 같이 응답 메시지에 개인 정보를 포함하는 이유는 사용자가 개인 정보를 클라이언트(10)에 암호화하여 저장할 수 있도록 하기 위함이다.
즉 전술한 msg_type과, sign_data와, signature와, add_data를 모두 연접하여 전체 메시지를 구성한다.
이와 같이 공인인증서를 이용한 회원 가입이 완료되면 공인인증서로 로그인(S260)하여 서비스 제공자 서버(20)로부터 서비스를 제공받는다(S265). 공인 인증서를 이용한 로그인 과정에 대해서는 도 4 및 도 8을 참조하여 더욱 상세히 후술하기로 한다.
인증 서버(30)는 서비스 제공자 서버(20)와는 전혀 별개의 객체로서 인증 과정이나 회원 가입 등의 절차를 수행할 때에 서비스 제공자와 서로 데이터 통신을 직접 수행하지는 않는 것이 바람직하다.
본 발명에 의한 메시지 전송 과정들은 기본적으로 HTTP 프로토콜에 의해서 수행되는데 특히 보안이 필요한 경우 예를 들어, 오브젝트가 개인 정보를 요청하는 메시지를 전송하는 단계와 서비스 제공자 서버(20)가 개인 정보를 전송하는 단계, 그리고 인증 서버(30)로의 가입 요청 메시지와 가입 결과 메시지 전송 단계 등은 보안 접속 프로토콜에 의해 수행되는 것이 바람직하다. 그러나 보안 접속 프로토콜에 의해 메시지 전송을 수행하는 것은 이러한 단계에 국한되지 않고 필요에 따라서 얼마든지 유연하게 적용할 수 있다. 보안 접속 프로토콜은 예를 들어, 시큐어 소켓 레이어(Secure Socket Layer; SSL) 또는 트랜스포트 레이어 시큐리티(Transport Layer Security; TLS)이다. 이와 같은 메시지 전송 프로토콜은 본 명세서에서 설명하는 모든 과정에서 마찬가지로 적용될 수 있다.
도 3에는 서비스 제공자 서버에 본 발명에 의한 공인 인증서 로그인 서비스 를 이용하여 로그인을 하도록 등록해 놓은 사용자가 다른 서비스 제공자 서버에 최초로 회원 가입할 때에 그러한 공인 인증서 로그인을 사용하도록 등록하는 과정의 흐름도가 도시되어 있다. 도 7에는 이러한 과정의 데이터 흐름도가 도시되어 있다.
먼저, 사용자는 브라우저상에 표시되어 있는 서비스 제공자 서버로의 회원 가입 버튼을 클릭한다.(S300) 이어서 공인인증서 로그인 오브젝트를 호출하고(S310), 공인인증서 로그인 서비스 안내 및 약관 동의 화면을 표시한다.(S315) 이는 서비스 제공자 서버(20)에 회원 가입을 할 때에 가능하면 공인 인증서 로그인을 이용하도록 유도하기 위한 것이며, 이와 같이 회원 가입 선택시 자동으로 오브젝트를 호출하지 않고 별도의 공인인증서 로그인 선택 버튼을 두어 이것을 클릭하였을 때에 오브젝트를 호출하도록 구성하는 것도 가능하다.
사용자가 약관에 동의하여 공인 인증서 로그인 이용을 선택하면 단계(S325)로 이행하여 공인 인증서 검증을 수행한다. 단계(S330)에서 공인인증서 검증이 성공하면 단계(S340)로 이행하여 클라이언트(10)에 저장되어 있는 개인 정보를 복호화한다. 개인 정보는 다른 사이트에서 공인인증서 로그인 가입시에 클라이언트(10)에 저장되어 있는 정보이다.
단계(S345)에서는 서비스 제공자 서버(20)로부터 회원가입 폼을 획득하고 복호화된 개인 정보를 이용하여 회원가입 폼을 완성한다.(S350) 이어서 회원 가입 요청 메시지를 서비스 제공자 서버(20)측에 전송하고, 이를 검증한 서비스 제공자 서버(20)는 클라이언트(10)의 브라우저를 통하여 서비스를 제공하게 된다.
어떠한 이유로 서비스 제공자 서버로의 회원 가입이 성공하지 못하면 단계(S370)로 이행하여 오류 메시지를 전송한다.
위 과정 중에서 회원가입 폼을 획득하고 회원가입 요청 메시지를 전송하는 과정은 전술한 바와 같은 SSL이나 TLS과 같은 보안 접속 프로토콜에 의해 이루어지는 것이 바람직하다.
도 4에는 본 발명에 의한 공인 인증서 로그인을 수행하는 과정의 흐름도가 도시되어 있으며, 도 8에는 이러한 공인 인증서 로그인 과정에서의 데이터 흐름도가 도시되어 있다. 이하에서는 도 4와 도 8을 참조하여 본 발명에 의한 공인 인증서 로그인 과정에 대해서 설명하기로 한다.
사용자가 서비스 제공자 서버(20)에 접속하여 브라우저의 공인인증서 로그인 버튼을 클릭한다(S400). 그러면 먼저 단계(S405)에서 클라이언트(10)에 공인 인증서가 탑재되어 있는지 또는 공인 인증서를 특정할 수 있는 식별자가 저장되어 있는지 여부를 판단한다. 공인 인증서가 클라이언트(10)에 탑재되어 있지도 않고 공인 인증서 식별자가 저장되어 있지도 않다면 단계(S410)로 이행하여 비상키 로그인 절차를 수행한다. 비상키 로그인 절차에 대해서는 도 5를 참조하여 상세히 후술하기로 한다.
그러나 공인 인증서가 탑재되어 있거나 공인 인증서 식별자가 저장되어 있다고 판별되는 경우에 공인 인증서 로그인과 비상키 로그인을 선택하도록 할 수도 있지만, 비상키를 이용하는 로그인은 예외적인 경우로 두어 공인 인증서가 탑재되지 도 공인 인증서 식별자가 저장되어 있지도 않은 경우에만 사용하도록 하는 것이 가 능하다.
공인 인증서가 클라이언트(10)의 하드 디스크에 저장되어 있거나 이동식 저장 매체 예를 들어, 클라이언트(10)에 데이터 판독 가능하도록 접속되어 있는 플로피 디스크나 USB 메모리 등에 저장되어 있어서 탑재된 것으로 판단되거나 공인 인증서 식별자가 저장되어 있는 것으로 판단되면 단계(S415)로 이행하여 오브젝트를 호출함으로써 공인 인증서 로그인을 요청한다.
다음으로, 클라이언트(10)에는 도 9에 도시된 바와 같이 공인 인증서 로그인 화면이 표시되는데(S420), 사용자는 공인 인증서가 단수이면 패스워드를 입력하고, 클라이언트(10)에 탑재되어 있는 공인 인증서가 복수 개인 경우에는 그 중에서 공인 인증서 로그인에 사용할 공인 인증서를 선택하고 패스워드를 입력한다.(S425)
입력한 패스워드가 유효한 것으로 판단되면 이어서 공인 인증서 로그인 요청 메시지를 작성하는데 이 요청 메시지의 msg_type은 공인인증서를 통한 인증 요청을 가리키는 코드가 된다.
그리고 sign_data는 서비스 제공자 식별 코드(mpid)이며, 부가적 데이터인 add_data는 공인 인증서의 실명 확인을 위한 랜덤 값(er)이다.
상기 서비스 제공자 식별 코드(mpid)를 SHA-1 알고리즘과 같은 해쉬 알고리즘으로 해쉬한 다음, RSA 개인키로 인코딩한다. 이 인코딩 결과는 바이너리 값인데 이 바이너리 값을 베이스64 인코딩한 값을 전자서명 값으로 메시지에 포함한다. 베이스64 인코딩을 하는 이유는 바이너리 즉 이진 데이터를 인쇄 가능한 문자열 코드로 변환시키기 위함이다. 따라서, base64 이외에도 이러한 변환이 가능하다면 어느 것도 사용할 수 있다. 그리고 이러한 전자서명에 사용한 공인 인증서 정보와 전자서명에 사용된 해쉬 알고리즘에 대한 내용을 메시지에 포함한다.
또한, 전술한 랜덤 값(er)도 메시지에 포함시켜서 인증 서버(30)가 실명 확인을 수행할 수 있도록 하는 것이 바람직하다.
이와 같은 과정을 거쳐서 공인 인증서 로그인 요청 메시지가 작성되면 이를 인증 서버(30)로 전송한다. 이러한 공인 인증서 로그인 요청 메시지 전송은 전술한 보안 접속 프로토콜에 의해 수행되는 것이 바람직하다.
공인 인증서 로그인 요청 메시지를 전송받은 인증 서버(30)는 전송받은 공인 인증서 정보를 기초로 하여 공인 인증서 피발급자의 고유 식별 코드 예를 들어 주민등록번호를 추출한다. 전술한 바와 같이 가입 단계에서 공인 인증서의 DN과 주민등록번호를 가입 단계에서 대응시켜 놓고 있기 때문에 인증 서버(30)는 전송받은 공인 인증서의 DN으로부터 사용자의 고유 식별 코드를 추출하는 것이 가능하다.
인증 서버(30)는 서비스 제공자 식별 코드와 이 식별 코드로부터 공인 인증서 로그인 서비스 이용 등록자인지를 판별한다.(S445) 고유 식별 코드를 사용하지 않고 DN으로 판별해도 무방하다.
판단 결과(S450), 유효한 등록자이면 단계(S455)로 이행하여 로그인 요청 메시지의 전자서명 값을 검증한다. 유효한 등록자가 아닌 것으로 판단되면 오류 메시지를 전송한다(S465). 전자서명 값의 검증은 공인인증서 로그인 등록자인지 여부를 판별하기 전에 수행해도 무방하며 그 순서가 본 발명의 권리범위에 영향을 미치는 것은 아니다.
단계(S460)에서 전자서명 값의 검증이 성공한 것으로 판단되면 단계(S470)로 이행하여 인증 확인서(assertion)를 발급한다. 전자서명 값의 검증이 실패하면 단계(S465)로 이행하여 오류 메시지를 전송하고 로그인 과정을 종료한다.
인증 확인서에 포함되는 sign_data는 사용자 고유 식별 코드 예를 들어 주민등록번호와, 상기 서비스 제공자 서버(20)로의 사용자 로그인 아이디와, 인증 방법 특정 코드와, 인증 일시에 대한 데이터가 포함된다. 이러한 sign_data를 전술한 바와 같은 프로세스로 전자서명하여 인증 확인서 메시지를 작성하고 클라이언트(10)로 인증 확인서를 전송하면 클라이언트는 인증 확인서를 단계(S475)에서 수신한다. 여기에서 전자서명은 인증 서버(30)의 개인키로 하는 것이 바람직하다. 클라이언트(10)는 이렇게 수신한 인증 확인서를 다시 서비스 제공자 서버(20)측으로 재전송한다. 서비스 제공자 서버(20)는 이렇게 전송받은 인증 확인서를 검증한다.(S485) 검증에 성공하면 통신 네트워크(40)를 통하여 클라이언트(10)에 서비스를 제공한다.
상기 인증 확인서를 클라이언트(10)로 전송하는 단계와 클라이언트가 인증 확인서를 서비스 제공자 서버(20)로 전송하는 단계는 SSL 또는 TLS과 같은 보안 접속 프로토콜에 의해 수행되는 것이 바람직하다.
공인 인증서가 클라이언트(10)에 탑재되지 않거나 공인 인증서 식별자가 없어서 비상키를 이용하여 로그인하는 과정에 대해서 도 5를 참조하여 설명하기로 한다.
사용자는 도 10에 도시되어 있는 바와 같은 비상키 로그인 화면에서 공인 인 증서 로그인 이용 등록시 등록해 놓은 비상키와 고유 식별 코드 예를 들어 주민등록번호를 입력한다.(S500) 오브젝트는 비상키 로그인 요청 메시지를 작성하는데(S505), 이 메시지에서 sign_data는 서비스 제공자 서버 특정 코드(mpid)와, 비상키와, 상기 고유 식별 코드이다. 공인 인증서 정보가 전송되지 않기 때문에 실명 확인을 위한 랜덤 값(er)은 add_data로 전송되지 않는다.
비상키 로그인 요청 메시지를 전송받으면(S510), 비상키와 고유 식별 코드를 참조하여 이를 검증하고(S515), 검증에 성공하면 단계(S520)로 이행하고, 검증에 실패하면 단계(S535)로 이행하여 오류 메시지를 전송하고 과정을 종료한다.
단계(S520)에서는 비상키 로그인 요청 메시지에 포함되어 있는 전자서명 값을 검증한다. 검증에 성공하면 단계(S530)로 이행하여 인증 확인서(assertion)를 발급하고 클라이언트(10)로 전송하고, 이를 수신한(S540) 클라이언트(10)는 이를 다시 서비스 제공자 서버(20)로 전송한다.(S545) 인증 확인서에는 사용자의 고유 식별 코드(주민등록번호)와, 서비스 제공자 서버로의 로그인 아이디(mpuserid)와, 인증 방법 특정 코드와, 인증 일시 정보가 sign_data로 포함된다. 서비스 제공자 서버는 클라이언트(10)로부터 전송받은 인증 확인서를 검증하고(S550), 통신 네트워크(40)를 통하여 서비스를 제공한다.
전자서명 값 검증에 실패하면 단계(S535)로 이행하여 오류 메시지를 전송한다.
한편, 클라이언트(10)는 인증 서버(30)측에 개인 정보의 저장 즉 백업 요청을 할 수 있다. 이 백업 요청 메시지의 sign_data는 서비스 제공자 서버 특정 코 드(mpid)와 백업할 개인 정보이며, 실명 확인을 위하여 add_data로 전술한 랜덤 값(er)을 포함한다.
이와 같이 백업한 개인 정보는 클라이언트(10)가 인증 서버(30)측에 다운로드할 수 있으며 개인 정보 다운로드 요청 메시지에는 sign_data는 포함되지 않으며, add_data로서 공인 인증서 정보와 랜덤 값(er)이 포함된다. 인증 서버는 공인 인증서 정보에 포함되어 있는 클라이언트의 공개키로 암호화하여 클라이언트(10)로 전송한다. 클라이언트(10)는 전송받은 암호화 값을 RSA 개인키로 디코딩하여 저장한다.
이하에서는 본 발명의 다른 실시예에 의한 공인 인증서 로그인 방법에 대해서 설명하기로 한다.
이 실시예와 앞서 설명한 실시예의 가장 큰 차이는 별도의 보안 접속 프로토콜에 의하지 않고 클라이언트와 인증 서버 간에 전송되는 데이터가 직접 암호화되는 점이다.
도 4를 기초로 이 실시예에 대해서 상세히 설명하면 다음과 같다.
단계(S470)에서 발급되는 인증 확인서에는 인증 서버의 인증서 정보와 인증 서버의 인증서 식별자 중 적어도 어느 하나와, 단계(S440)에서 추출된 사용자의 고유 식별 코드 예를 들어 주민등록번호와 인증 일시를 암호화한 제1 암호화 값과, 이 제1 암호화 값을 전자서명한 값이 포함된다. 인증 요청 단계에서는 서비스 제공자 서버(20)의 인증서 정보 및 이 인증서 식별자 중 적어도 어느 하나를 포함하는 것이 바람직하며, 상기 인증 확인서에 포함되는 제1 암호화 값의 생성은 상기 서비스 제공자 서버의 공개키로 수행하고 전자서명 값의 생성은 인증 서버의 개인키로 수행하는 것이 바람직하다.
한편, 해커의 재전송 공격(replay attack)을 방지하기 위해서 상기 클라이언트가 서비스 제공자 서버(20)와 인증 서버(30)측으로부터 각각 제1 랜덤 값과 제2 랜덤 값을 전송받고, 상기 인증 요청시에 이 제1 랜덤 값과 제2 랜덤 값을 암호화한 제2 암호화 값과, 이 제2 암호화 값을 전자서명한 전자서명 값을 전송받는 것이 바람직하다. 여기에서 제2 암호화 값의 생성은 인증 서버의 공개키로 수행하고, 전자서명은 클라이언트의 개인키로 수행하는 것이 바람직하다.
이때, 상기 제1 암호화 값은 상기 제1 랜덤 값과 고유 식별 코드와 인증 일시를 암호화한 값이 된다. 그리고 제2 암호화 값도 서비스 제공자 서버 식별 코드를 포함하여 암호화를 수행하는 것이 바람직하다.
상기 제2 암호화 값의 생성은 세션키(session key)에 의해서 수행되는 것이 바람직한데, 이 세션키를 인증 서버의 공개키로 암호화한 제3 암호화 값이 인증 요청 메시지에 포함된다. 좀 더 구체적으로 설명하면, 소스 문자열을 세션키로 암호화한 후에 베이스64와 같은 인코딩 스킴으로 변환하고, 이 변환된 값을 유알엘 인코딩한 값이 제2 암호화 값이다. 그리고 제2 암호화 값을 전자서명한 값은 소스 문자열을 해쉬 함수에 의해 해쉬하고, 이러한 해쉬를 통해 추출된 다이제스트를 클라이언트의 개인키로 암호화한 값이다.
이상 첨부 도면을 참조하여 본 발명의 양호한 실시예에 대해 설명하였지만, 본 발명의 권리범위는 후술하는 특허청구범위에 의하여 결정되며 그러한 실시예 및 /또는 도면에 한정되는 것은 아니라는 점이 명확하게 이해되어야 한다. 또한, 특허청구범위에 기재되어 있는 발명의 당업자에게 자명한 개량, 변경 내지 수정도 본 발명의 권리범위에 포함된다.
본 발명에 의하면, 공인 인증서를 이용하여 각 사이트에 로그인을 할 수 있기 때문에 서비스 제공자 서버가 제공하는 서비스를 이용하기 위하여 로그인을 할 때에 아이디와 패스워드를 외울 필요가 없으므로, 사이트마다 상이한 아이디와 패스워드를 등록해 놓은 경우에도 혼란이 생기지 않는다. 그리고 공인 인증서를 이용하여 로그인을 수행하므로, 실명인증이나 성인 인증 등의 과정이 매우 손쉽게 가능하다.
서비스 제공자 서버측에서도 개인 정보를 입력받아 회원 가입을 하고 이를 저장해야 하는 것이 아니기 때문에 편리하다.
그리고 사용자는 신뢰성이 높은 기업이 운영하는 공인 인증서 로그인 인증 서버를 통해서 로그인할 수 있기 때문에 그러한 공인 인증서 로그인할 수 있는 사이트라면 신뢰할 수 있어, 사기성 서비스를 제공하는 각종 사이트에 회원 가입을 함으로써 개인 정보가 누출되거나 하는 등의 문제를 방지할 수 있는 장점도 있다.

Claims (16)

  1. 클라이언트와, 서비스 제공자 서버와, 인증 서버와, 상기 클라이언트와 서비스 제공자 서버 및 인증 서버를 데이터 통신이 가능하도록 연결하는 통신 네트워크를 포함하는 환경에서, 상기 클라이언트의 상기 서비스 제공자 서버로의 로그인 적격을 상기 인증 서버가 인증하는 방법에 있어서,
    공인 인증서 정보 및 공인 인증서 식별자 중 적어도 어느 하나와 전자서명 값을 전송받는 인증 요청 단계와,
    상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와,
    상기 전자서명 값을 디코딩하여 검증하는 단계와,
    상기 고유 식별 코드와 인증 일시 데이터를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 인증 확인서 정보를 상기 서비스 제공자 서버측으로 전송할 수 있도록 하는 인증 확인 단계를 포함하고,
    상기 인증서버가 상기 클라이언트로부터 개인 정보 저장 요청 메시지를 전송받는 단계와,
    상기 인증서버가 상기 개인 정보 저장 요청 메시지에 포함되어 있는 개인 정보를 저장하는 단계와,
    상기 인증서버가 상기 개인 정보 저장 처리 결과를 전송하는 단계를 더 포함하며,
    상기 인증 요청 단계와 인증 확인 단계는 보안 접속 프로토콜에 의하여 수행되는, 공인 인증서를 이용한 로그인 적격 인증 방법.
  2. 청구항 1에 있어서,
    상기 서비스 제공자를 특정할 수 있는 서비스 제공자 특정 코드를 인증 요청 단계에서 더 전송받으며,
    상기 서비스 제공자 특정 코드와 상기 고유 식별 코드를 참조하여 상기 공인 인증서를 발급받은 자가 상기 서비스 제공자 서버로의 공인 인증서 로그인 이용 선택을 한 자인지를 판별하는 단계와,
    상기 서비스 제공자 서버로의 로그인 아이디를 추출하는 단계를 더 수행하며,
    상기 인증 확인 단계에서 상기 로그인 아이디를 더 전송하는,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  3. 청구항 2에 있어서,
    상기 전자서명 값은 상기 서비스 제공자 특정 코드를 해쉬 알고리즘으로 해쉬하여 상기 클라이언트측의 개인키로 인코딩한 값을 데이터 인코딩 스킴(data encoding scheme)으로 인코딩한 값이며,
    상기 데이터 인코딩 스킴은 이진 데이터를 인쇄가능한 문자열 코드로 변환시키는 데이터 인코딩 스킴인, 공인 인증서를 이용한 로그인 적격 인증 방법.
  4. 청구항 1 또는 청구항 2에 있어서,
    상기 보안 접속 프로토콜은 시큐어 소켓 레이어(Secure Socket Layer) 또는 트랜스포트 레이어 시큐리티(Transport Layer Security)인, 공인 인증서를 이용한 로그인 적격 인증 방법.
  5. 청구항 1 또는 청구항 2에 있어서,
    상기 공인 인증서 정보는 소정의 랜덤 값과 공인 인증서 소유자의 고유 식별 코드를 더하여 해쉬한 값을 포함하며,
    상기 인증 요청 단계에서 상기 랜덤 값을 더 전송받으며,
    상기 랜덤 값과 상기 인증서를 참조하여 추출한 로그인 시도자 고유 식별 코드에 상기 랜덤 값을 더하여 해쉬한 값과 상기 인증 요청 단계에서 전송받은 해쉬한 값을 비교하여 실명확인을 수행하는 실명 확인 단계를 더 포함하는,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  6. 삭제
  7. 클라이언트와, 서비스 제공자 서버와, 인증 서버와, 상기 클라이언트와 서비스 제공자 서버 및 인증 서버를 데이터 통신이 가능하도록 연결하는 통신 네트워크를 포함하는 환경에서, 상기 클라이언트의 상기 서비스 제공자 서버로의 로그인 적격을 상기 인증 서버가 인증하는 방법에 있어서,
    공인 인증서 정보 및 공인 인증서 식별자 중 적어도 어느 하나와, 전자서명 값과, 공인 인증서 인증 요청임을 가리키는 공인 인증서 인증 특정 코드를 포함하 는 공인 인증서 인증 요청 데이터 또는
    비상키 정보와, 로그인 시도자의 고유 식별 코드와, 비상키 인증 요청임을 가리키는 비상키 인증 특정 코드를 포함하는 비상키 인증 요청 데이터를 전송받는 인증 요청 단계와,
    상기 공인 인증서 인증 요청 데이터를 전송받은 경우에는,
    상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와,
    상기 전자서명 값을 디코딩하여 검증하는 단계와,
    상기 고유 식별 코드와 인증 일시 데이터와 공인 인증서 인증임을 가리키는 소정의 코드를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 인증 확인서 정보를 상기 서비스 제공자 서버측으로 전송할 수 있도록 하는 인증 확인 단계를 포함하며,
    상기 비상키 인증 요청 데이터를 전송받은 경우에는,
    상기 전송받은 비상키와 고유 식별 코드를 참조하여 검증하는 단계와,
    상기 고유 식별 코드와, 상기 인증 방법 정보와, 비상이 인증임을 가리키는 소정의 코드와, 인증 일시 데이터를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 서비스 제공자 서버측으로 전송할 수 있도록 하는 인증 확인 단계를 포함하며,
    상기 인증 요청 단계들과 인증 확인 단계들은 보안 접속 프로토콜에 의하여 수행되는,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  8. 청구항 7에 있어서,
    상기 인증서버가 상기 클라이언트로부터 개인 정보 저장 요청 메시지를 전송받는 단계와,
    상기 인증서버가 상기 개인 정보 저장 요청 메시지에 포함되어 있는 개인 정보를 저장하는 단계와,
    상기 인증서버가 상기 개인 정보 저장 처리 결과를 전송하는 단계를 더 포함하는,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  9. 청구항 1과 청구항 2 및 청구항 8 중 어느 하나의 청구항에 있어서,
    상기 개인 정보 저장 요청에 의해 저장되어 있는 개인 정보의 다운 로드 요청 메시지를 상기 인증서버가 상기 클라이언트로부터 전송받는 단계와,
    상기 인증서버가 저장되어 있는 개인 정보를 암호화하여 상기 통신 네트워크를 통해 전송하는 단계를 더 포함하는,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  10. 클라이언트와, 서비스 제공자 서버와, 인증 서버와, 상기 클라이언트와 서비스 제공자 서버 및 인증 서버를 데이터 통신이 가능하도록 연결하는 통신 네트워크를 포함하는 환경에서, 상기 인증 서버가 상기 클라이언트의 상기 서비스 제공자 서버로의 로그인 적격을 인증하는 방법에 있어서,
    공인 인증서 정보 및 공인 인증서 식별자 중 적어도 어느 하나와, 전자서명한 값을 전송받는 인증 요청 단계와,
    상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와,
    상기 전자서명 값을 디코딩하여 검증하는 단계와,
    상기 인증 서버의 인증서 정보 및 인증 서버의 인증서 식별자 중 적어도 어느 하나와, 상기 고유 식별 코드와 인증 일시를 암호화한 제1 암호화 값과, 상기 제1 암호화 값을 전자서명한 값을 포함하는 인증 확인서(assertion) 정보를 상기 클라이언트측으로 전송하여 상기 클라이언트가 전송받은 인증 확인서 정보를 상기 서비스 제공자 서버측으로 재전송 가능하도록 하는 인증 확인 단계를 포함하고,
    상기 인증서버가 상기 클라이언트로부터 개인 정보 저장 요청 메시지를 전송받는 단계와,
    상기 인증서버가 상기 개인 정보 저장 요청 메시지에 포함되어 있는 개인 정보를 저장하는 단계와,
    상기 인증서버가 상기 개인 정보 저장 처리 결과를 전송하는 단계를 더 포함하는,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  11. 청구항 10에 있어서,
    인증 요청 단계에서, 상기 서비스 제공자 서버 인증서 정보 및 서비스 제공자 서버 인증서의 식별자 중 적어도 어느 하나와, 상기 클라이언트가 상기 서비스 제공자 서버로부터 전달받은 제1 랜덤 값과 상기 인증 서버로부터 전달받은 제2 랜덤 값을 암호화한 제2 암호화 값과, 상기 제2 암호화 값을 전자서명한 전자서명 값을 더 전송받으며,
    상기 제1 암호화 값은 상기 제1 랜덤 값과 상기 고유 식별 코드와 인증 일시를 암호화한 값인,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  12. 청구항 11에 있어서,
    상기 제2 암호화 값은 상기 제1 랜덤 값과 제2 랜덤 값 및 상기 서비스 제공자 서버 식별 코드를 암호화한 값인,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  13. 청구항 11 또는 청구항 12에 있어서,
    상기 제1 암호화 값의 생성은 상기 서비스 제공자 서버의 공개키로 수행되며,
    상기 제2 암호화 값의 생성은 세션키(session key)에 의해 수행되며,
    상기 인증 요청 단계에서 상기 세션키를 상기 인증 서버의 공개키로 암호화한 제3 암호화 값을 더 전송받는,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  14. 청구항 13에 있어서,
    상기 제2 암호화 값은 상기 세션키로 암호화한 값을 소정의 데이터 인코딩 스킴(data encoding scheme)에 의해 변환하고 변환된 값을 유알엘 인코딩(URL Encoding)한 값이며,
    상기 소정의 데이터 인코딩 스킴은 이진 데이터를 인쇄가능한 문자열 코드로 변환시키는 데이터 인코딩 스킴인,
    공인 인증서를 이용한 로그인 적격 인증 방법.
  15. 청구항 11 또는 청구항 12에 있어서,
    제2 암호화 값을 전자서명한 값은, 소스 문자열을 해쉬 함수에 의해 해쉬하고, 해쉬되어 추출된 다이제스트(digest)를 상기 클라이언트의 개인키로 암호화한 값인, 공인 인증서를 이용한 로그인 적격 인증 방법.
  16. 클라이언트와, 서비스 제공자 서버와, 인증 서버와, 상기 클라이언트와 서비스 제공자 서버 및 인증 서버를 데이터 통신이 가능하도록 연결하는 통신 네트워크를 포함하는 환경에서, 상기 클라이언트의 상기 서비스 제공자 서버로의 로그인 적격을 상기 인증 서버가 인증하는 방법에 있어서,
    상기 클라이언트로부터 공인 인증서 정보 및 공인 인증서 식별자 중 적어도 하나를 포함하는 인증 요청 데이터를 전송받는 인증 요청 단계와,
    상기 전송받은 공인 인증서 정보 또는 공인 인증서 식별자에 기초하여 상기 공인 인증서를 발급받은 자의 고유 식별 코드를 추출하는 단계와,
    상기 전자서명 값을 디코딩하여 검증하는 단계와,
    상기 고유 식별 코드와 인증 일시 데이터를 포함하는 인증 확인서 정보(assertion)를 상기 클라이언트로 전송하여 상기 클라이언트가 상기 인증 확인서 정보를 상기 서비스 제공자 서버측으로 전송할 수 있도록 하는 인증 확인 단계를 포함하고,
    상기 인증서버가 상기 클라이언트로부터 개인 정보 저장 요청 메시지를 전송받는 단계와,
    상기 인증서버가 상기 개인 정보 저장 요청 메시지에 포함되어 있는 개인 정보를 저장하는 단계와,
    상기 인증서버가 상기 개인 정보 저장 처리 결과를 전송하는 단계를 더 포함하는,
    상기 인증 요청 단계와 인증 확인 단계는 보안 접속 프로토콜에 의하여 수행되는, 공인 인증서를 이용한 로그인 적격 인증 방법.
KR1020050012489A 2005-02-15 2005-02-15 공인 인증서를 이용한 로그인 방법 KR100750214B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050012489A KR100750214B1 (ko) 2005-02-15 2005-02-15 공인 인증서를 이용한 로그인 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050012489A KR100750214B1 (ko) 2005-02-15 2005-02-15 공인 인증서를 이용한 로그인 방법

Publications (2)

Publication Number Publication Date
KR20060091548A KR20060091548A (ko) 2006-08-21
KR100750214B1 true KR100750214B1 (ko) 2007-08-17

Family

ID=37593280

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050012489A KR100750214B1 (ko) 2005-02-15 2005-02-15 공인 인증서를 이용한 로그인 방법

Country Status (1)

Country Link
KR (1) KR100750214B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101811158B1 (ko) * 2013-11-18 2017-12-20 미쓰비시덴키 가부시키가이샤 통신 시스템 및 마스터 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100921171B1 (ko) * 2008-12-26 2009-10-13 (주)이바이언 개인식별코드를 이용한 비가입 고객에 대한 온라인 서비스 제공 방법, 그 시스템 및 그 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
KR101962349B1 (ko) * 2017-02-28 2019-03-27 고려대학교 산학협력단 인증서 기반 통합 인증 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001186122A (ja) 1999-12-22 2001-07-06 Fuji Electric Co Ltd 認証システム及び認証方法
KR20030035025A (ko) * 2001-10-29 2003-05-09 쓰리알소프트(주) 공개키 기반구조의 공인 인증서를 이용한 신원확인 서비스제공 시스템 및 그 방법
JP2003256280A (ja) 2002-03-01 2003-09-10 Fuji Xerox Co Ltd 情報提供方法、装置およびプログラム
KR20040053761A (ko) * 2003-10-01 2004-06-24 주식회사베스트디씨 로그인 포탈 시스템과 이를 이용한 원클릭 로그인 방법
KR20050001272A (ko) * 2003-06-27 2005-01-06 최석천 휴대폰을 이용한 온라인 자동 로그인 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001186122A (ja) 1999-12-22 2001-07-06 Fuji Electric Co Ltd 認証システム及び認証方法
KR20030035025A (ko) * 2001-10-29 2003-05-09 쓰리알소프트(주) 공개키 기반구조의 공인 인증서를 이용한 신원확인 서비스제공 시스템 및 그 방법
JP2003256280A (ja) 2002-03-01 2003-09-10 Fuji Xerox Co Ltd 情報提供方法、装置およびプログラム
KR20050001272A (ko) * 2003-06-27 2005-01-06 최석천 휴대폰을 이용한 온라인 자동 로그인 장치 및 방법
KR20040053761A (ko) * 2003-10-01 2004-06-24 주식회사베스트디씨 로그인 포탈 시스템과 이를 이용한 원클릭 로그인 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101811158B1 (ko) * 2013-11-18 2017-12-20 미쓰비시덴키 가부시키가이샤 통신 시스템 및 마스터 장치

Also Published As

Publication number Publication date
KR20060091548A (ko) 2006-08-21

Similar Documents

Publication Publication Date Title
US11223614B2 (en) Single sign on with multiple authentication factors
US9900163B2 (en) Facilitating secure online transactions
EP1625690B1 (en) Method and apparatus for authentication of users and web sites
US7603700B2 (en) Authenticating a client using linked authentication credentials
US20070067620A1 (en) Systems and methods for third-party authentication
US20090240936A1 (en) System and method for storing client-side certificate credentials
US20090187980A1 (en) Method of authenticating, authorizing, encrypting and decrypting via mobile service
US20170118029A1 (en) Method and a system for verifying the authenticity of a certificate in a web browser using the ssl/tls protocol in an encrypted internet connection to an https website
CN108684041A (zh) 登录认证的系统和方法
JP2002024177A (ja) 電子公証システムおよび電子公証方法
WO2010082253A1 (ja) サーバ認証方法及びクライアント端末
JP2003521154A (ja) 電子識別情報を発行する方法
JP6627043B2 (ja) Ssl通信システム、クライアント、サーバ、ssl通信方法、コンピュータプログラム
JP2001186122A (ja) 認証システム及び認証方法
CN114531277A (zh) 一种基于区块链技术的用户身份认证方法
JP5186648B2 (ja) 安全なオンライン取引を容易にするシステム及び方法
US20090319778A1 (en) User authentication system and method without password
KR100750214B1 (ko) 공인 인증서를 이용한 로그인 방법
WO2007030517A2 (en) Systems and methods for third-party authentication
KR100993333B1 (ko) 인터넷 접속 도구를 고려한 사용자 인증 방법 및 시스템
KR20110019684A (ko) 클라이언트 맥 어드레스 인증방식에 의한 일회용 비밀번호 생성 방법 및 장치
TWI670990B (zh) 自動連線安全無線網路的方法與系統
JP2006189945A (ja) ネットワークファイルシステム及び認証方法
WO2005060206A1 (en) Public key infrastructure credential registration
KR20050097160A (ko) 공인 인증서를 이용한 인터넷 서비스 제공 시스템 및 그방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20120807

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130812

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140807

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150810

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160811

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170807

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190812

Year of fee payment: 13