KR102510868B1 - 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버 - Google Patents

클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버 Download PDF

Info

Publication number
KR102510868B1
KR102510868B1 KR1020160086125A KR20160086125A KR102510868B1 KR 102510868 B1 KR102510868 B1 KR 102510868B1 KR 1020160086125 A KR1020160086125 A KR 1020160086125A KR 20160086125 A KR20160086125 A KR 20160086125A KR 102510868 B1 KR102510868 B1 KR 102510868B1
Authority
KR
South Korea
Prior art keywords
authentication
client system
key
virtual address
information
Prior art date
Application number
KR1020160086125A
Other languages
English (en)
Other versions
KR20180005887A (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 KR1020160086125A priority Critical patent/KR102510868B1/ko
Priority to US15/643,834 priority patent/US10728232B2/en
Publication of KR20180005887A publication Critical patent/KR20180005887A/ko
Application granted granted Critical
Publication of KR102510868B1 publication Critical patent/KR102510868B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버가 개시된다. 본 발명의 일 실시예에 따른 클라이언트 시스템 인증 방법은, 인증 서버와 협력하여 상기 클라이언트 시스템과 상기 인증 서버 사이에 공유될 공유 키를 획득하는 단계 상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 상기 클라이언트 시스템의 가상 어드레스를 생성하는 단계, 상기 가상 어드레스를 포함하는 등록 요청 정보를 상기 인증 서버로 전송하는 단계 및 상기 인증 서버로부터 상기 클라이언트 시스템에 대한 인증 키를 수신하는 단계를 포함한다.

Description

클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버{METHOD FOR AUTHENTICATING CLIENT SYSTEM, CLIENT DEVICE AND AUTHENTICATION SERVER}
본 발명의 실시예들은 클라이언트 시스템을 인증하기 위한 기술과 관련된다.
기존에는 애플리케이션 서버(application server)를 인증하기 위한 방식으로 하드웨어 장비를 통한 키(key)를 사용하거나, 고정 IP를 사용해 왔다.
공용 클라우드(public cloud) 환경에서는 SDN(Software Defined Network) 방식으로 IP 어드레스와 도메인 네임을 할당하게 되어서, VM 인스턴스(instance)가 구동이 될 때마다 IP 어드레스와 도메인 네임도 변경되므로, IP 어드레스와 도메인 네임을 애플리케이션 서버 인증을 위해 사용하기 어렵다.
한편, SaaS(Software as a Service) 서비스를 위해서도, 동적으로 애플리케이션 서버들을 늘리고 이에 대한 인증을 할 수 있어야 하나, 이때 IP 어드레스로 인증하게 되면, IP 어드레스를 등록할 때까지는 스케일 아웃(Scale-Out)을 동적으로 하지 못하는 상황이 발생할 수 있다.
대한민국 공개특허공보 제10-2014-0090279호(2014. 07. 17. 공개)
본 발명의 실시예들은 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버를 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 클라이언트 시스템 인증 방법은, 인증 서버와 협력하여 상기 클라이언트 시스템과 상기 인증 서버 사이에 공유될 공유 키를 획득하는 단계, 상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 상기 클라이언트 시스템의 가상 어드레스를 생성하는 단계, 상기 가상 어드레스를 포함하는 등록 요청 정보를 상기 인증 서버로 전송하는 단계 및 상기 인증 서버로부터 상기 클라이언트 시스템에 대한 인증 키를 수신하는 단계를 포함한다.
상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함할 수 있다.
상기 인증 키는, 상기 등록 요청 정보를 이용하여 생성될 수 있다.
상기 클라이언트 시스템 인증 방법은, 상기 인증 키를 수신한 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 단계를 더 포함할 수 있다.
상기 클라이언트 시스템 인증 방법은 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 상기 인증 서버로 전송하여 상기 클라이언트 시스템의 인증을 요청하는 단계를 더 포함할 수 있다.
상기 인증을 요청하는 단계는, 상기 인증 키에 대한 전자 서명(electronic signature)를 생성하는 단계 및 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 전자 서명을 상기 인증 서버로 제공하여 상기 클라이언트 시스템의 인증을 요청하는 단계를 포함할 수 있다.
상기 클라이언트 시스템 인증 방법은, 상기 인증 서버로부터 상기 인증 요청에 따른 인증 결과를 수신하는 단계 및 상기 클라이언트 시스템에 대한 인증이 성공된 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 클라이언트 시스템 인증 방법은, 클라이언트 장치와 협력하여, 상기 클라이언트 장치에 설치된 클라이언트 시스템과 인증 서버 사이에 공유될 공유 키를 생성 또는 제공하는 단계, 상기 클라이언트 장치로부터, 상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 생성된 상기 클라이언트 시스템의 가상 어드레스를 포함하는 등록 요청 정보를 수신하는 단계, 상기 등록 요청 정보를 이용하여 상기 클라이언트 시스템에 대한 인증 키를 생성하는 단계, 상기 등록 요청 정보를 상기 클라이언트 시스템에 대한 인증 정보로서 상기 인증 키와 연관하여 저장하는 단계 및 상기 인증 키를 상기 클라이언트 장치로 제공하는 단계를 포함한다.
상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함할 수 있다.
상기 클라이언트 시스템 인증 방법은, 상기 제공하는 단계 이후에, 상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하는 단계, 상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하는 단계 및 상기 수신된 가상 어드레스와 상기 저장된 가상 어드레스가 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공하는 단계를 더 포함할 수 있다.
상기 클라이언트 시스템 인증 방법은, 상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 수신하는 단계, 상기 수신된 인증 요청 정보 및 인증 키를 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행하는 단계, 및 상기 인증 결과를 상기 클라이언트 장치로 제공하는 단계를 더 포함할 수 있다.
상기 클라이언트 시스템 인증 방법은, 상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 인증 키에 대한 전자 서명(electronic signature)를 수신하는 단계, 상기 저장된 인증 정보 및 인증 키를 이용하여 전자 서명을 생성하는 단계, 상기 수신된 전자 서명과 상기 생성된 전자 서명을 비교하여 상기 수신된 전자 서명을 검증하고, 상기 수신된 인증 요청 정보 및 인증 키와 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행하는 단계 및 상기 인증 결과를 상기 클라이언트 장치로 제공하는 단계를 더 포함할 수 있다.
상기 클라이언트 시스템 인증 방법은, 상기 클라이언트 시스템의 인증이 성공한 경우, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하는 단계, 상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하는 단계 및 상기 수신된 가상 어드레스와 상기 저장된 가상 어드레스가 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 클라이언트 장치는, 인증 서버와 협력하여 클라이언트 시스템과 상기 인증 서버 사이에 공유될 공유 키를 획득하는 공유 키 획득부, 상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 상기 클라이언트 시스템의 가상 어드레스를 생성하는 가상 어드레스 생성부, 상기 가상 어드레스를 포함하는 등록 요청 정보를 상기 인증 서버로 전송하여 상기 인증 서버로부터 상기 클라이언트 시스템에 대한 인증 키를 수신하는 인증 요청부 및 상기 가상 어드레스 및 상기 인증 키를 저장하는 저장부를 포함한다.
상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함할 수 있다.
상기 인증 키는, 상기 등록 요청 정보를 이용하여 생성될 수 있다.
상기 인증 요청부는, 상기 인증 키를 수신한 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청할 수 있다.
상기 인증 요청부는, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 상기 인증 서버로 전송하여 상기 클라이언트 시스템의 인증을 요청할 수 있다.
상기 인증 요청부는, 상기 제2 통신 세션에서, 상기 인증 키에 대한 전자 서명(electronic signature)를 생성하고, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 전자 서명을 상기 인증 서버로 제공하여 상기 클라이언트 시스템의 인증을 요청할 수 있다.
상기 인증 요청부는, 상기 인증 서버로부터 상기 인증 요청에 따른 인증 결과를 수신하고, 상기 클라이언트 시스템에 대한 인증이 성공된 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청할 수 있다.
본 발명의 일 실시예에 따른 인증 서버는, 클라이언트 시스템이 설치된 클라이언트 장치와 협력하여, 상기 클라이언트 시스템과 공유할 공유 키를 생성 또는 제공하는 세션 키 생성부, 상기 클라이언트 장치로부터, 상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 생성된 상기 클라이언트 시스템의 가상 어드레스를 포함하는 등록 요청 정보를 수신하고, 상기 등록 요청 정보를 이용하여 상기 클라이언트 시스템에 대한 인증 키를 생성하며, 상기 인증 키를 상기 클라이언트 시스템으로 제공하는 인증 키 생성부 및 상기 등록 요청 정보를 상기 클라이언트 시스템에 대한 인증 정보로서 상기 인증 키와 연관하여 저장하는 저장부를 포함한다.
상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함할 수 있다.
상기 인증 서버는, 상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 수신하고, 상기 수신된 인증 요청 정보 및 인증 키를 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행하는 인증부를 더 포함할 수 있다.
상기 인증부는, 상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 인증 키에 대한 전자 서명(electronic signature)를 수신하고, 상기 저장된 인증 정보 및 인증 키를 이용하여 전자 서명을 생성하고, 상기 수신된 전자 서명과 상기 생성된 전자 서명을 비교하여 상기 수신된 전자 서명을 검증하고, 상기 수신된 인증 요청 정보 및 인증 키와 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행할 수 있다.
상기 인증부는, 상기 인증 키가 제공된 후, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하고, 상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하고, 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공할 수 있다.
상기 인증부는, 상기 인증이 성공된 후, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하고, 상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하고, 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공할 수 있다.
본 발명의 실시예들에 따르면, 클라이언트 시스템에 대한 가상 어드레스를 인증 서버로 제공하여 클라이언트 시스템을 인증 서버에 등록하고 인증 서버로부터 클라이언트 시스템을 인증하기 위한 인증 키를 자동으로 발급받게 함으로써, 클라이언트 시스템을 인증할 때마다 인증 키와 가상 어드레스를 통하여 클라이언트 시스템을 안전하게 인증할 수 있다.
나아가, 본 발명의 실시예들에 따르면, 클라이언트 시스템을 유일하게 식별할 수 있는 가상 어드레스를 생성하여 이를 클라이언트 시스템 등록 및 인증을 위해 이용함으로써, 복수의 클라이언트 시스템 각각이 유일하게 식별할 수 있는 식별 정보를 보유하고 있지 않는 경우라도, 각 클라이언트 시스템을 구분하여 인증할 수 있다.
도 1은 본 발명의 일 실시예에 따른 인증 시스템의 구성도
도 2는 본 발명의 일 실시예에 따른 클라이언트 장치의 구성도
도 3은 가상 어드레스의 예시도
도 4는 본 발명의 일 실시예에 따른 인증 서버의 구성도이다.
도 5는 본 발명의 일 실시예에 따른, 클라이언트 장치에 의해 수행되는 클라이언트 시스템 등록 과정을 나타낸 순서도
도 6은 본 발명의 일 실시예에 따른, 클라이언트 장치에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도
도 7은 본 발명의 추가적인 실시예에 따른, 클라이언트 장치에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도
도 8은 본 발명의 일 실시예에 따른, 클라이언트 장치가 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 과정을 나타낸 순서도
도 9는 본 발명의 일 실시예에 따른, 인증 서버에 의해 수행되는 클라이언트 시스템 등록 과정을 나타낸 순서도
도 10은 본 발명의 일 실시예에 따른, 인증 서버에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도
도 11은 본 발명의 추가적인 실시예에 따른, 인증 서버에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도
도 12는 본 발명의 일 실시예에 따른, 인증 서버가 클라이언트 시스템으로부터 수신된 정보 요청을 처리하는 과정을 나타낸 순서도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 인증 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 인증 시스템(100)은 적어도 하나의 클라이언트 장치(110, 130, 150) 및 인증 서버(170)를 포함할 수 있다.
각 클라이언트 장치(110, 130, 150)에는 하나 이상의 클라이언트 시스템이 설치될 수 있다.
클라이언트 시스템은 인증을 통해 인증 서버(170)에서 제공되는 정보를 이용하여, 클라이언트 장치(170)에 특정 기능 또는 서비스를 제공하거나 클라이언트 장치(170)에 네트워크로 연결된 외부 장치로 특정 기능 또는 서비스를 제공하기 위한 애플리케이션, 애플리케이션 서버(예를 들어, 웹 애플리케이션 서버), 펌웨어(firmware) 등을 의미할 수 있다.
구체적인 예로, 각 클라이언트 시스템은 인증 서버(170)에서 제공되는 API(Application Programming Interface)를 호출하여 특정 기능 또는 서비스를 제공하기 위해 인증 서버(170)에 대한 인증을 수행할 수 있다.
본 발명의 일 실시예에 따르면, 클라이언트 장치(110, 130, 150) 및 인증 서버(170)는 예를 들어, SaaS(Software as a Service)와 같은 클라우드 서비스를 제공하는 클라우드 컴퓨팅 환경 내의 물리적 서버일 수 있다.
이 경우, 클라이언트 시스템은 예를 들어, 각 클라이언트 장치(110, 130, 150)의 가상 머신(virtual machine)에 설치된 애플리케이션 서버(예를 들어, 웹 애플리케이션 서버)일 수 있다. 이때, 각 가상 머신에는 동일 또는 상이한 하나 이상의 클라이언트 시스템이 설치될 수 있으며, 동일한 가상 머신에 설치된 하나 이상의 클라이언트 시스템들은 각각 동일한 IP 어드레스를 가지게 된다.
한편, 동일한 가상 머신에 설치된 상이한 종류의 클라이언트 시스템들의 경우, 외부에서 접속 시 각 클라이언트 시스템의 도메인 네임(Domain name), 프로토콜(protocol) 또는 포트(port) 등을 이용하여 구분할 수 있다.
그러나, 동일한 가상 머신에 설치된 동일한 종류의 클라이언트 시스템들의 경우, 공용 IP 어드레스, 도메인 네임이 동일하게 되며, 외부에서 접속 시 각 클라이언트 시스템에 프로토콜에 따른 포트를 다르게 주어서 접속할 수 있으나, 다른 가상 머신에 설치된 클라이언트 시스템에서 동일한 포트를 이용할 수 있으므로, 클라이언트 시스템을 구분하여 인증할 수 없게 된다.
따라서, 인증 서버(170)에서 동일한 가상 머신에 설치된 동일한 종류의 클라이언트 시스템 각각을 인증하기 위해서는 각 클라이언트 시스템을 식별할 수 있는 정보가 필요하게 된다.
다른 예로, 클라이언트 시스템은 도커(docker or container)를 이용하여 각 클라이언트 장치(110, 130, 150)의 가상 머신에 도커 이미지의 형태로 설치된 애플리케이션 서버일 수 있다.
이 경우, 각 가상 머신에는 도메인 네임이 동일한 하나 이상의 클라이언트 시스템들이 도커 이미지의 형태로 설치될 수 있으며, 각 클라이언트 시스템들은 가변적인 IP 어드레스를 가지게 된다.
따라서, 인증 서버(170)에서 도메인 네임이 동일한 각 클라이언트 시스템을 인증하기 위해서는 각 클라이언트 시스템을 구분하기 위한 식별할 수 있는 정보가 필요하게 된다.
한편, 본 발명의 다른 실시예에 따르면, 클라이언트 장치(110, 130, 150)는 각각 하나 이상의 클라이언트 시스템이 설치된 사물 인터넷(Internet Of Things) 환경 내의 단말(예를 들어, 스마트폰, 랩톱 PC, 데스크톱 PC, 테블릿 PC, 허브, TV, 프린터 등)일 수 있다. 이 경우, 클라이언트 시스템은 예를 들어, 각 클라이언트 장치(110, 130, 150) 내에 설치되어 특정 기능을 수행하는 애플리케이션 내지는 펌웨어(firware) 등일 수 있다.
또한, 인증 서버(170)는 클라이언트 장치(110, 130, 150) 내에 설치된 각 클라이언트 시스템을 인증하고, 해당 클라이언트 시스템이 특정 기능을 수행하기 위해 필요한 정보를 제공하는 서버일 수 있다.
이 경우, 클라이언트 장치(110, 130, 150)에 설치된 하나 이상의 애플리케이션은 동일한 IP 어드레스와 동일한 도메인 네임을 가지므로, 인증 서버(170)에서 동일한 클라이언트 장치(110, 130, 150)에 설치된 각 클라이언트 시스템을 인증하기 위해서는 각 클라이언트 시스템을 구분하기 위한 식별할 수 있는 정보가 필요하게 된다.
한편, 상술한 인증 시스템(100)의 예들은 예시적인 것이므로, 본 발명의 실시예에 따른 인증 시스템(100)이 반드시 상술한 예들로 한정되는 것은 아니며, 특정 장치에 설치된 하나 이상의 클라이언트 시스템이 네트워크로 연결된 외부 장치에서 제공되는 정보를 통해 특정 기능 또는 서비스를 제공하기 위해 해당 외부 장치에 대한 인증을 요구하는 시스템이라면 그 형태 및 명칭에 제한되는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 클라이언트 장치(200)의 구성도이다.
본 발명의 일 실시예에 따른 클라이언트 시스템 인증 장치(200)는 공유 키 획득부(210), 가상 어드레스 생성부(230), 인증 요청부(250) 및 저장부(270)를 포함한다.
한편, 도 2에 도시된 클라이언트 장치(200)는 도 1에 도시된 클라이언트 장치(110, 130, 150)에 대응된다.
공유 키 획득부(210)는 인증 서버와 협력하여 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키를 획득한다.
구체적으로, 본 발명의 일 실시예에 따르면, 공유 키 획득부(210)는 인증 서버(170)로 공유 키를 요청하여, 인증 서버(170)와 시드 값을 교환하고, 교환된 시드 값을 이용하여 인증 서버(170)와 동일한 공유 키를 생성할 수 있다.
이때, 시드 값 교환 및 공유 키 생성을 위해 예를 들어, 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식이 이용될 수 있으나, 이 외에도 시드 값를 주고 받은 후 최종 값을 서로 교환 없이 양쪽에서 만들어 낼 수 있는 방식이라면 어떠한 방식이라도 이용 가능하다.
구체적인 예로, 공유 키 획득부(210)는 클라이언트 시스템과 인증 서버(170) 사이의 각 통신 세션마다 인증 서버(170)와 시드 값 교환을 수행하고, 교환된 시드 값을 이용하여 인증 서버(170)와 동일한 세션 키를 생성할 수 있다. 이 경우, 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키는 클라이언트 시스템과 인증 서버(170) 사이의 최초 통신 세션에서 생성된 세션 키일 수 있다.
이때, 최초 통신 세션은 인증 서버(170)에 대한 클라이언트 시스템의 등록이 수행되는 통신 세션을 의미하며, 이하 최초 통신 세션은 동일한 의미로 해석된다.
본 발명의 다른 실시예에 따르면, 공유 키 획득부(210)는 인증 서버(170)로 공유 키를 요청하여, 인증 서버(170)에 의해 생성된 공유 키를 수신할 수 있다.
예를 들어, 공유 키 획득부(210)는 인증 서버(170)로 인증 서버(170)의 공개 키를 요청하여 수신할 수 있으며, 인증 서버(170)로부터 수신된 공개 키를 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키로 이용할 수 있다.
이때, 공개 키는 예를 들어, RSA(Rivest Shamir Adleman) 암호 알고리즘, ElGarmal 암호 알고리즘, 타원 곡선(Elliptic Curve) 암호 알고리즘 등과 같은 비대칭키 기반의 암호 알고리즘에서 사용되는 공개 키일 수 있다.
한편, 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키는 반드시 상술한 예에 한정되는 것은 아니며, 상술한 예 외에도 클라이언트 시스템과 인증 서버(170) 사이에 공유되는 정보라면 어떠한 정보라도 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키로 이용될 수 있다.가상 어드레스 생성부(230)는 클라이언트 시스템의 식별 정보 및 공유 키 획득부(210)에 의해 획득된 공유 키를 이용하여 클라이언트 시스템의 가상 어드레스를 생성한다.
이때, 클라이언트 시스템의 식별 정보는 예를 들어, 클라이언트 시스템의 코드, 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함할 수 있다.
또한, 클라이언트 시스템의 코드는 예를 들어, 'Service Web Portal', 'API Gateway' 등과 같이 클라이언트 시스템이 제공하는 기능 또는 서비스 등을 나타내는 명칭일 수 있으나, 반드시 이에 한정되는 것은 아니며, 이 외에도 클라이언트 시스템을 식별할 수 있는 다양한 명칭을 포함할 수 있다.
한편, 클라이언트 시스템의 식별 정보는 상술한 예에 한정되는 것은 아니며, 상술한 예외에도, 클라이언트 시스템의 할당된 다양한 식별 정보들을 포함할 수 있다.
한편, 도 3은 가상 어드레스 생성부(230)에 의해 생성되는 가상 어드레스의 예시도이다.
도 3을 참조하면, 가상 어드레스 생성부(230)는 공유 키 획득부(210)에 의해 획득된 공유 키에 해시 알고리즘(SHA-256)을 적용하여 공유 키에 대한 해시 값(350)을 생성할 수 있다.
또한, 가상 어드레스 생성부(230)는 클라이언트 시스템의 코드에 해시 알고리즘(SHA-256)을 적용하여 클라이언트 시스템의 코드에 대한 해시 값(310)을 생성할 수 있다.
이후, 가상 어드레스 생성부(230)는 공유 키에 대한 해시 값(350), 클라이언트 시스템의 코드에 대한 해시 값(310) 및 클라이언트 시스템에 할당된 도메인 네임(또는, IP 어드레스)(330)에 대한 체크섬(check sum) 값(370)을 생성할 수 있다.
이후, 가상 어드레스 생성부(230)는 클라이언트 시스템의 코드에 대한 해시 값(310), 클라이언트 시스템에 할당된 도메인 네임(또는, IP 어드레스)(330), 공유 키에 대한 해시 값(350) 및 체크섬 값에 대한 해시 값(370)을 조합하여 가상 어드레스(300)를 생성할 수 있다.
이때, 실시예에 따라, 생성된 가상 어드레스(300)의 바이너리 값을 텍스트 형태로 변환하는 과정이 추가될 수 있다.
한편, 도 3에 도시된 가상 어드레스(300)는 예시적인 것이므로, 가상 어드레스 생성부(230)에서 생성되는 가상 어드레스(300)가 반드시 도시된 예에 따라 생성되는 것은 아니다.
예를 들어, 도 3에 도시된 예서는 가상 어드레스(300)를 생성을 위해 사용된 클라이언트 시스템의 식별 정보로 클라이언트 시스템의 코드 및 도메인 네임(또는, IP 어드레스)이 이용되었으나, 반드시 이에 한정되는 것은 아니며, 예시된 식별 정보 외에도 클라이언트 시스템에 할당된 다양한 식별 정보들이 이용될 수 있다.
또한, 도 3에 도시된 예에서 이용된 해시 알고리즘(즉, SHA-256) 외에도 공지된 다양한 형태의 해시 알고리즘이 가상 어드레스(300) 생성을 위해 이용될 수 있으며, 해시 알고리즘 외에도 공유 키와 클라이언트 시스템의 식별 정보를 이용하여 클라이언트 시스템을 유일하게 식별할 수 있는 값을 생성할 수 있다면 어떠한 방식의 알고리즘도 이용될 수 있다.
다시, 도 2를 참조하면, 인증 요청부(250)는 인증 서버(170)에 대해 클라이언트 시스템의 등록 및 인증을 수행한다.
본 발명의 일 실시예에 따르면, 인증 요청부(250)는 최초 통신 세션에서, 가상 어드레스 생성부(230)에서 생성된 가상 어드레스를 포함하는 등록 요청 정보를 인증 서버(170)로 전송하여 인증 서버(170)로부터 클라이언트 시스템에 대한 인증 키를 수신한다.
이때, 인증 요청부(250)는 최초 통신 세션에서 생성된 세션 키를 이용하여 등록 요청 정보를 암호화한 후 전송할 수 있다.
또한, 인증 서버(170)로부터 수신되는 인증 키 역시 세션 키를 이용하여 암호화된 상태로 수신될 수 있으며, 이 경우, 인증 요청부(250)는 세션 키를 이용하여 암호화된 인증 키를 복호화할 수 있다.
이때, 실시예에 따라, 세션 키는 공유 키와 동일할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 등록 요청 정보는 가상 어드레스 외에도 클라이언트 시스템의 식별 정보를 더 포함할 수 있다.
한편, 인증 서버(170)로부터 수신되는 인증 키는 인증 서버(170)로 제공된 등록 요청 데이터를 이용하여 인증 서버(170)에 의해 생성될 수 있다. 이에 대한 상세한 설명은 후술하기로 한다.
한편, 인증 요청부(250)는 최초 통신 세션 이후 클라이언트 시스템과 인증 서버(170) 사이의 각 통신 세션마다, 클라이언트 시스템의 가상 어드레스 및 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 인증 서버(170)로부터 수신된 인증 키를 인증 서버(170)로 전송하여 클라이언트 시스템의 인증을 요청한다.
이때, 인증 요청 정보에 포함되는 클라이언트 시스템의 식별 정보는 등록 요청 정보로서 전송된 식별 정보일 수 있다.
예를 들어, 가상 어드레스 및 클라이언트 시스템의 코드를 포함하는 등록 요청 정보를 전송하여 인증 서버(170)로부터 인증 키를 수신한 경우, 인증 요청부(250)는 최초 통신 세션 이후의 각 통신 세션에서 가상 어드레스 및 클라이언트 시스템의 코드 중 적어도 하나를 포함하는 인증 요청 정보를 인증 서버(170)로 전송할 수 있다.
이때, 인증 요청부(250)는 최초 통신 세션 이후의 각 통신 세션에서 생성된 세션 키를 이용하여 인증 요청 정보 및 인증 키를 암호화한 후 인증 서버(170)로 전송할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 인증 요청부(250)는 인증 키에 대한 전자 서명(electronic signature)을 생성하고, 생성된 전자 서명을 인증 요청 정보 및 인증 키와 함께 인증 서버(170)로 전송하여 클라이언트 시스템의 인증을 요청할 수 있다.
이때, 전자 서명은 예를 들어, 인증 키, 가상 어드레스, 현재 통신 세션의 세션 키 및 인증 서버(170)로 제공된 클라이언트 시스템의 식별 정보 중 적어도 하나를 이용하여 생성될 수 있다.
일 예로, 인증 요청부(250)는 아래와 같은 방식으로 인증 키에 대한 전자 서명을 생성할 수 있다.
1) StringtoSign = 인증 키 +'\n'+ 가상 어드레스
2) Signature = Base64(HMAC-SHA256(세션 키, UTF-8-Encoding of(StringtoSign)))
이때, 세션 키는 최초 통신 세션 이후의 각 통신 세션에서 생성된 세션 키를 의미한다.
한편, 인증 요청부(250)에서 생성되는 전자 서명은 반드시 상술한 예에 한정되는 것은 아니므로, 인증 요청부(250)는 상술한 예 외에도 공지된 다양한 방식으로 전자 서명을 생성할 수 있다.
또한, 상술한 예에서는 인증 키, 가상 어드레스 및 세션 키를 이용하여 전자 서명을 생성하고 있으나, 상술한 예 외에도 인증 서버(170)와 공유하고 있는 클라이언트 시스템과 관련된 다양한 정보들이 전자 서명 생성을 위해 이용될 수 있다.
한편, 인증 요청부(250)는 각 통신 세션에서 클라이언트 시스템에 대한 등록 또는 인증이 성공된 경우, 가상 어드레스를 인증 서버(170)로 전송하여, 클라이언트 시스템에서 수행되는 기능 또는 서비스을 위해 요구되는 정보를 요청할 수 있다.
예를 들어, 인증 요청부(250)는 인증 서버(170)에서 제공하는 API를 호출할 때 가상 어드레스를 함께 전송하여 인증 서버(170)로부터 API 응답을 수신할 수 있다.
한편, 저장부(270)는 가상 어드레스 생성부(230)에서 생성된 가상 어드레스 및 인증 서버(170)로부터 수신된 인증 키를 저장한다.
한편, 본 발명의 일 실시예에서, 공유 키 획득부(210), 가상 어드레스 생성부(230), 인증부(250) 및 저장부(270)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 4는 본 발명의 일 실시예에 따른 인증 서버의 구성도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 인증 서버(400)는 공유 키 생성부(410), 인증 키 생성부(430), 저장부(450) 및 인증부(470)를 포함한다.
한편, 도 4에 도시된 인증 서버(400)는 예를 들어, 도 1에 도시된 인증 서버(170)에 대응된다.
공유 키 생성부(410)는 클라이언트 장치(110, 130, 150)와 협력하여 클라이언트 장치(110, 130, 150)에 설치된 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키를 생성 또는 제공한다.
구체적으로, 본 발명의 일 실시예에 따르면, 공유 키 생성부(410)는 클라이언트 장치(110, 130, 150)으로부터 공유 키 요청을 수신하여, 클라이언트 장치(110, 130, 150)와 시드 값을 교환하고, 교환된 시드 값을 이용하여 클라이언트 장치(110, 130, 150)와 동일한 공유 키를 생성할 수 있다.
이때, 시드 값 교환 및 공유 키 생성을 위해 예를 들어, 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식이 이용될 수 있으나, 이 외에도 시드 값를 주고 받은 후 최종 값을 서로 교환 없이 양쪽에서 만들어 낼 수 있는 방식이라면 어떠한 방식이라도 이용 가능하다.
구체적인 예로, 공유 키 생성부(410)는 클라이언트 시스템과의 각 통신 세션마다 클라이언트 장치(110, 130, 150)와 시드 값 교환을 수행하고, 교환된 시드 값을 이용하여 클라이언트 장치(110, 130, 150)와 동일한 세션 키를 생성할 수 있다. 이 경우, 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키는 클라이언트 시스템과 인증 서버(170) 사이의 최초 통신 세션에서 생성된 세션 키일 수 있다.
본 발명의 다른 실시예에 따르면, 세션 키 생성부(410)는 클라이언트 장치(110, 130, 150)으로부터 공유 키 요청을 수신하여 공개 키 및 개인 키를 생성하고, 생성된 공개 키를 공유 키로서 클라이언트 장치(110, 130, 150)로 제공할 수 있다.
이때, 공개 키 및 개인 키는 예를 들어, RSA(Rivest Shamir Adleman) 암호 알고리즘, ElGarmal 암호 알고리즘, 타원 곡선(Elliptic Curve) 암호 알고리즘 등과 같은 비대칭키 기반의 암호 알고리즘에서 사용되는 공개 키 및 개인 키일 수 있다.
한편, 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키는 반드시 상술한 예에 한정되는 것은 아니며, 상술한 예 외에도 클라이언트 시스템과 인증 서버(400) 사이에 공유되는 정보라면 어떠한 정보라도 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키로 이용될 수 있다.
인증 키 생성부(430)는 클라이언트 시스템과의 최초 통신 세션에서 클라이언트 시스템의 가상 어드레스를 포함하는 등록 요청 정보를 수신하고, 수신된 등록 요청 정보를 이용하여 해당 클라이언트 시스템에 대한 인증 키를 생성한다.
이때, 실시예에 따라, 등록 요청 정보는 클라이언트 시스템의 식별 정보를 더 포함할 수 있다.
또한, 등록 요청 정보는 클라이언트 시스템과의 최초 통신 세션에서 생성된 세션 키를 이용하여 암호화된 상태로 수신될 수 있으며, 이 경우, 인증 키 생성부(430)는 세션 키를 이용하여 수신된 등록 요청 정보를 복호화하여 인증 키 생성에 이용할 수 있다.
한편, 일 예로, 인증 키 생성부(430)는 아래와 같은 방식으로 클라이언트 시스템에 대한 인증 키를 생성할 수 있다.
1) enc_key = SHA2(Publish Date + random number)
2) AuthKey = client system Code + enc_key
3) 인증 키 = AES256(AuthKey) using enc_key
한편, 상술한 예에서, "Publish Date"는 인증 키의 생성 날짜를 의미한다.
한편, 인증 키 생성부(430)에서 수행되는 인증 키 생성 방식은 반드시 상술한 예에 한정되는 것은 아니며, 인증 키 생성부(430)는 상술한 예 외에도 다양한 방식으로 인증 키를 생성할 수 있다.
또한, 상술한 예에서는, 등록 요청 정보로서 수신된 클라이언트 시스템의 코드와 인증 키의 생성 날짜를 이용하여 인증 키를 생성하는 것으로 예시하고 있으나, 인증 키를 생성하기 위한 정보는 반드시 상술한 예에 한정되는 것은 아니다. 예를 들어, 인증 키 생성부(430)는 인증 키 생성을 위해 클라이언트 시스템의 코드 대신 클라이언트 시스템의 가상 어드레스를 이용하거나, 클라이언트 시스템 코드 및 클라이언트 시스템의 가상 어드레스를 모두 이용할 수 있다.
저장부(450)는 수신된 등록 요청 정보를 클라이언트 시스템에 대한 인증 정보로서 인증 키와 연관하여 저장할 수 있다.
인증부(470)는 클라이언트 시스템과의 최초 통신 세션 이후의 각 통신 세션마다, 클라이언트 시스템의 가상 어드레스 및 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 인증 키를 수신하고, 수신된 인증 요청 정보 및 인증 키를 저장부(450)에 저장된 클라이언트 시스템의 인증 정보 및 인증키와 비교하여 클라이언트 시스템에 대한 인증을 수행한다.
예를 들어, 수신된 인증 요청 정보에 가상 어드레스가 포함된 경우, 인증부(470)는 수신된 가상 어드레스 및 인증 키와 저장부(450)에 연관되어 저장된 가상 어드레스 및 인증 키가 일치하는지 여부를 확인하여 클라이언트 시스템에 대한 인증을 수행할 수 있다.
다른 예로, 수신된 인증 요청 정보에 클라이언트 시스템의 코드가 포함된 경우, 인증부(470)는 수신된 클라이언트 시스템의 코드 및 인증 키와 저장부(450)에 연관되어 저장된 클라이언트 시스템의 코드 및 인증 키가 일치하는지 여부를 확인하여 클라이언트 시스템에 대한 인증을 수행할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 인증부(470)는 최초 통신 세션 이후의 각 통신 세션마다, 인증 요청 정보, 인증 키 및 인증 키에 대한 전자 서명을 수신할 수 있다.
이 경우, 인증부(470)는 수신된 인증 요청 정보 및 인증 키와 저장부(450)에 연관되어 저장된 클라이언트 시스템의 인증 요청 정보 및 인증 키를 비교하여 중 적어도 하나, 및 인증 키를 비교하여 일치하는지 여부를 판단할 수 있다.
또한, 인증부(470)는 저장부(450)에 저장된 클라이언트 시스템의 인증 정보 및 인증 키를 이용하여 전자 서명을 생성하고, 생성된 전자 서명과 수신된 전자 서명과 비교하여 수신된 전자 서명을 검증할 수 있다.
이때, 인증부(470)에서 생성되는 전자 서명과 수신된 전자 서명은 동일한 정보를 이용하여 동일한 방식으로 생성되며, 전자 서명을 생성하기 위한 정보 및 방식은 클라이언트 시스템과 사전에 공유될 수 있다.
한편, 인증부(470)는 각 통신 세션에서 인증된 클라이언트 시스템으로부터 가상 어드레스와 함께 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신할 수 있다. 이때, 인증부(470)는 수신된 가상 어드레스를 저장부(450)에 저장된 가상 어드레스와 비교하여 일치하는 경우 요청된 정보를 클라이언트 시스템으로 제공할 수 있다.
예를 들어, 인증부(470)는 각 통신 세션에서 인증된 클라이언트 시스템으로부터 가상 어드레스를 포함하는 API 호출을 수신할 수 있으며, 수신된 가상 어드레스와 저장부(450)에 저장된 가상 어드레스를 비교하여, 일치하는 경우, API 호출에 대한 응답을 클라이언트 시스템으로 전송할 수 있다.
한편, 본 발명의 일 실시예에서, 세션 키 생성부(410), 인증 키 생성부(430), 저장부(450) 및 인증부(470)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
도 5는 본 발명의 일 실시예에 따른, 클라이언트 장치에 의해 수행되는 클라이언트 시스템 등록 과정을 나타낸 순서도이다.
도 5에 도시된 각 단계는 예를 들어, 도 2에 도시된 클라이언트 장치(200)에 의해 수행될 수 있으며, 클라이언트 시스템과 인증 서버(170) 사이의 최초 통신 세션에서 수행될 수 있다.
도 5를 참조하면, 우선, 클라이언트 장치(200)는 인증 서버(170)와 협력하여 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키를 획득한다(510).
이때, 본 발명의 일 실시예에 따르면, 클라이언트 장치(200)는 인증 서버(170)와 시드 값을 교환하고, 교환된 시드 값을 이용하여 인증 서버(170)와 동일한 공유 키를 생성할 수 있다. 이 경우, 공유 키는 예를 들어, 인증 서버(170)와 시드 값을 교환을 통해 생성된 세션 키일 수 있다.
본 발명의 다른 실시예에 따르면, 클라이언트 장치(200)는 인증 서버(170)로 공유 키를 요청하여, 인증 서버(170)에 의해 생성된 공유 키를 수신할 수 있다. 이 경우, 공유 키는 예를 들어, 인증 서버(170)의 공개 키일 수 있다.
이후, 클라이언트 장치(200)는 획득한 공유 키를 이용하여 클라이언트 시스템에 대한 가상 어드레스를 생성한다(520).
이후, 클라이언트 장치(200)는 생성된 가상 어드레스를 포함하는 등록 요청정보를 인증 서버(170)로 전송한다(530).
이때, 본 발명의 일 실시예에 따르면, 등록 요청 정보는 가상 어드레스 외에도 클라이언트 시스템의 식별 정보를 더 포함할 수 있다.
이때, 클라이언트 장치(200)는 등록 요청 정보를 세션 키를 이용하여 암호화하여 전송할 수 있으며, 실시예에 따라, 세션 키는 공유 키와 동일할 수 있다.
이후, 클라이언트 장치(200)는 인증 서버(170)로부터 클라이언트 시스템에 대한 인증 키를 수신한다(540).
이후, 클라이언트 장치(200)는 수신된 인증 키를 저장한다(550).
이때, 수신되는 인증 키는 세션 키를 이용하여 암호화되어 수신될 수 있으며, 이 경우, 클라이언트 장치(200)는 수신된 인증 키를 세션 키를 이용하여 복호화한 후 저장할 수 있다.
도 6은 본 발명의 일 실시예에 따른, 클라이언트 장치에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도이다.
도 6에 도시된 각 단계는 예를 들어, 도 2에 도시된 클라이언트 장치(200)에 의해 수행될 수 있으며, 인증 서버(170)와의 최초 통신 세션에서 클라이언트 시스템이 등록된 이후, 클라이언트 시스템과 인증 서버(170) 사이의 각 통신 세션에서 수행될 수 있다.
도 6을 참조하면, 클라이언트 장치(200)는 인증 서버(170)로 세션 키를 요청하여 클라이언트 시스템과 인증 서버(170) 사이의 현재 통신 세션에서 이용할 세션 키를 획득한다(610).
이후, 클라이언트 장치(200)는 클라이언트 시스템의 가상 어드레스 및 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 및 클라이언트 시스템의 인증 키를 인증 서버(170)로 전송하여 클라이언트 시스템의 인증을 요청한다(620).
이때, 클라이언트 장치(200)는 인증 요청 정보 및 인증 키를 세션 키를 이용하여 암호화한 후 전송할 수 있다.
이후, 클라이언트 장치(200)는 인증 서버(170)로부터 클라이언트 시스템에 대한 인증 결과를 수신한다(630).
도 7은 본 발명의 추가적인 실시예에 따른, 클라이언트 장치에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도이다.
도 7에 도시된 각 단계는 예를 들어, 도 2에 도시된 클라이언트 장치(200)에 의해 수행될 수 있으며, 인증 서버(170)와의 최초 통신 세션에서 클라이언트 시스템이 등록된 이후, 클라이언트 시스템과 인증 서버(170) 사이의 각 통신 세션에서 수행될 수 있다.
도 7을 참조하면, 클라이언트 장치(200)는 인증 서버(170)로 세션 키를 요청하여 클라이언트 시스템과 인증 서버(170) 사이의 현재 통신 세션에서 이용할 세션 키를 획득한다(710).
이후, 클라이언트 장치(200)는 클라이언트 시스템의 인증 키에 대한 전자 서명을 생성한다(720).
이때, 전자 서명은 예를 들어, 인증 키, 가상 어드레스, 인증 서버(170)로 제공된 클라이언트 시스템의 식별 정보 및 710 단계에서 획득된 세션 키 중 적어도 하나를 이용하여 생성될 수 있다.
이후, 클라이언트 장치(200)는 클라이언트 시스템의 가상 어드레스 및 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 클라이언트 시스템의 인증 키 및 인증 키에 대한 전자 서명을 인증 서버(170)로 전송하여 클라이언트 시스템의 인증을 요청한다(730).
이때, 클라이언트 장치(200)는 인증 요청 정보 및 인증 키를 710 단계에서 획득된 세션 키를 이용하여 암호화한 후 전송할 수 있다.
이후, 클라이언트 장치(200)는 인증 서버(170)로부터 클라이언트 시스템에 대한 인증 결과를 수신한다(740).
도 8은 본 발명의 일 실시예에 따른, 클라이언트 장치(200)가 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 과정을 나타낸 순서도이다.
도 8에 도시된 각 단계는 예를 들어, 도 2에 도시된 클라이언트 장치(200)에 의해 수행될 수 있으며, 클라이언트 시스템과 인증 서버(170) 사이의 각 통신 세션에서 수행될 수 있다.
도 8을 참조하면, 클라이언트 장치(200)는 인증 서버(170)로 클라이언트 시스템의 등록 또는 인증을 수행한다(810).
예를 들어, 현재 통신 세션이 클라이언트 시스템과 인증 서버(170) 사이의 최초 통신 세션인 경우, 도 5에 도시된 510 단계 내지 550 단계가 수행될 수 있다.
또한, 현재 통신 세션이 클라이언트 시스템과 인증 서버(170) 사이의 최초 통신 세션 이후의 통신 세션인 경우, 도 6에 도시된 610 단계 및 630 단계 또는 도 7에 도시된 710 단계 내지 740 단계가 수행될 수 있다.
이후, 클라이언트 장치(200)는 클라이언트 시스템의 가상 어드레스를 인증 서버(170)로 전송하여, 클라이언트 시스템에 의한 기능 또는 서비스 제공을 위해 요구되는 정보를 요청한다(820).
이후, 클라이언트 장치(200)는 인증 서버(170)로부터 요청한 정보에 대한 응답을 수신한다(830).
예를 들어, 클라이언트 장치(200)는 인증 서버(170)에서 제공하는 API를 호출할 때 가상 어드레스를 함께 전송하여 인증 서버(170)로부터 API 응답을 수신할 수 있다.
이후, 클라이언트 장치(200)는 클라이언트 시스템과 인증 서버(170) 사이의 통신 세션이 종료되었는지 여부를 판단하고(840), 통신 세션이 유지되어 있는 경우, 820 단계 내지 830 단계를 반복 수행할 수 있다.
반면, 통신 세션이 종료된 경우, 클라이언트 장치(200)는 클라이언트 시스템과 인증 서버(170) 사이의 다음 통신 세션에서 810 단계 내지 840 단계를 수행할 수 있다.
도 9는 본 발명의 일 실시예에 따른, 인증 서버에 의해 수행되는 클라이언트 시스템 등록 과정을 나타낸 순서도이다.
도 9에 도시된 각 단계는 예를 들어, 도 4에 도시된 인증 서버(400)에 의해 수행될 수 있으며, 클라이언트 시스템과 최초 통신 세션에서 수행될 수 있다.
도 9를 참조하면, 우선, 인증 서버(400)는 클라이언트 시스템클라이언트 장치(110, 130, 150)와 협력하여 클라이언트 장치(110, 130, 150)에 설치된 클라이언트 시스템의 가상 어드레스 생성을 위한 공유 키를 생성 또는 제공한다(910).
이때, 본 발명의 일 실시예에 따르면, 인증 서버(400)는 클라이언트 장치(110, 130, 150)와 시드 값을 교환하고, 교환된 시드 값을 이용하여 클라이언트 장치(110, 130, 150)와 동일한 공유 키를 생성할 수 있다. 이 경우, 공유 키는 예를 들어, 클라이언트 장치(110, 130, 150)와 시드 값을 교환을 통해 생성된 세션 키일 수 있다.
본 발명의 다른 실시예에 따르면, 인증 서버(170)는 클라이언트 장치(110, 130, 150)의 공유 키 요청에 따라 공유 키를 생성하여 클라이언트 장치(110, 130, 150)로 제공할 수 있다. 예를 들어, 인증 서버(400)는 클라이언트 장치(110, 130, 150)으로부터 공유 키 요청을 수신하여 인증 서버(400)의 공개 키 및 개인 키를 생성하고, 생성된 공개 키를 공유 키로서 클라이언트 장치(110, 130, 150)로 제공할 수 있다.
이후, 인증 서버(400)는 클라이언트 장치(110, 130, 150)로부터 클라이언트 시스템의 가상 어드레스를 포함하는 등록 요청 정보를 수신한다(920).
이때, 가상 어드레스는 세션 키를 이용하여 암호화된 상태로 수신될 수 있으며, 이 경우, 인증 서버(400)는 수신된 가상 어드레스를 세션 키를 이용하여 복호화할 수 있다.
이때, 실시예에 따라, 세션 키는 공유 키와 동일할 수 있다.
또한, 실시예에 따라, 등록 요청 정보는 클라이언트 시스템의 식별 정보를 더 포함할 수 있다.
이후, 인증 서버(400)는 수신된 등록 요청 정보를 이용하여 해당 클라이언트 시스템에 대한 인증 키를 생성한다(930).
이후, 인증 서버(400)는 등록 요청 정보를 클라이언트 시스템에 대한 인증 정보로서 인증 키와 연관하여 저장한다(940).
이후, 인증 서버(400)는 생성된 인증 키를 클라이언트 장치(110, 130, 150)로로 제공한다(950).
이때, 인증 서버(400)는 세션 키를 이용하여 인증 키를 암호화한 후 전송할 수 있다.
도 10은 본 발명의 일 실시예에 따른, 인증 서버에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도이다.
도 10에 도시된 각 단계는 예를 들어, 도 4에 도시된 인증 서버(400)에 의해 수행될 수 있으며, 클라이언트 시스템과의 최초 통신 세션에서 클라이언트 시스템이 등록된 이후, 등록된 클라이언트 시스템과의 각 통신 세션에서 수행될 수 있다.
도 10을 참조하면 인증 서버(400)는 클라이언트 시스템과의 현재 통신 세션에서 이용할 세션 키를 생성한다(1010).
이후, 인증 서버(400)는 클라이언트 장치(110, 130, 150)로부터 클라이언트 시스템의 가상 어드레스 및 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 및 클라이언트 시스템의 인증 키를 수신한다(1020).
이때, 인증 요청 정보 및 인증 키는 세션 키를 이용하여 암호화되어 수신될 수 있으며, 이 경우, 인증 서버(400)는 수신된 인증 요청 정보 및 인증 키를 세션 키를 이용하여 복호화할 수 있다.
이후, 인증 서버(400)는 수신된 인증 요청 정보 및 인증 키를 연관되어 저장된 인증 정보 및 인증 키와 비교하여 클라이언트 시스템에 대한 인증을 수행한다(1030).
이후, 인증 서버(400)는 클라이언트 시스템에 대한 인증 결과를 클라이언트 장치(110, 130, 150)로 전송한다(1040).
도 11은 본 발명의 추가적인 실시예에 따른, 인증 서버에 의해 수행되는 클라이언트 시스템 인증 과정을 나타낸 순서도이다.
도 11에 도시된 각 단계는 예를 들어, 도 4에 도시된 인증 서버(400)에 의해 수행될 수 있으며, 클라이언트 시스템과의 최초 통신 세션에서 클라이언트 시스템이 등록된 이후, 등록된 클라이언트 시스템과의 각 통신 세션에서 수행될 수 있다.
도 11을 참조하면 인증 서버(400)는 클라이언트 시스템과의 현재 통신 세션에서 이용할 세션 키를 생성한다(1110).
이후, 인증 서버(400)는 클라이언트 장치(110, 130, 150)로부터 클라이언트 시스템의 가상 어드레스를 포함하는 인증 요청 정보, 클라이언트 시스템의 인증 키 및 인증 키에 대한 전자 서명을 수신한다(1120).
이때, 인증 요청 정보 및 인증 키는 세션 키를 이용하여 암호화되어 수신될 수 있으며, 이 경우, 인증 서버(400)는 수신된 인증 요청 정보 및 인증 키를 세션 키를 이용하여 복호화할 수 있다.
이후, 인증 서버(400)는 저장된 클라이언트 시스템의 인증 정보 및 인증 키를 이용하여 전자 서명을 생성한다(1130).
이때, 인증 서버(400)에서 생성되는 전자 서명과 수신된 전자 서명은 동일한 정보를 이용하여 동일한 방식으로 생성되며, 전자 서명을 생성하기 위한 정보 및 방식은 클라이언트 시스템과 사전에 공유될 수 있다.
이후, 인증 서버(400)는 수신된 전자 서명과 생성된 전자 서명을 비교하여 수신된 전자 서명을 검증하고, 수신된 인증 요청 정보 및 인증 키와 저장된 인증 정보 및 인증 키를 비교하여 클라이언트 시스템에 대한 인증을 수행한다(1140).
이후, 인증 서버(400)는 클라이언트 시스템에 대한 인증 결과를 클라이언트 장치(110, 130, 150)로 전송한다(1150).
도 12는 본 발명의 일 실시예에 따른, 인증 서버가 클라이언트 시스템으로부터 수신된 정보 요청을 처리하는 과정을 나타낸 순서도이다.
도 12에 도시된 각 단계는 예를 들어, 도 4에 도시된 인증 서버(400)에 의해 수행될 수 있으며, 클라이언트 시스템과의 각 통신 세션에서 수행될 수 있다.
도 12를 참조하면, 인증 서버(400)는 클라이언트 시스템의 등록 또는 인증을 수행한다(1210).
예를 들어, 현재 통신 세션이 클라이언트 시스템과의 최초 통신 세션인 경우, 도 9에 도시된 910 단계 내지 950 단계가 수행될 수 있다.
또한, 현재 통신 세션이 클라이언트 시스템과의 최초 통신 세션 이후의 통신 세션인 경우, 도 10에 도시된 1010 단계 내지 1040 단계 또는 도 11에 도시된 1110 단계 내지 1150 단계가 수행될 수 있다.
이후, 인증 서버(400)는 클라이언트 장치(110, 130, 150)로부터, 클라이언트 시스템의 가상 어드레스, 및 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신한다(1220).
이후, 인증 서버(400)는 수신된 가상 어드레스와 저장된 가상 어드레스를 비교하여 일치하는지 여부를 판단하고(1230), 일치하는 경우, 클라이언트 장치(110, 130, 150)로 요청된 정보를 전송한다(1240).
한편, 도 5 내지 도 12에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 인증 시스템
110, 130, 150, 200: 클라이언트 장치
210: 공유 키 획득부
230: 가상 어드레스 생성부
250: 인증 요청부
270: 저장부
170, 400: 인증 서버
410: 공유 키 생성부
430: 인증 키 생성부
450: 저장부
470: 인증부

Claims (26)

  1. 클라이언트 시스템이 설치된 클라이언트 장치에서 수행되는 클라이언트 시스템 인증 방법에 있어서,
    인증 서버와 협력하여 상기 클라이언트 시스템과 상기 인증 서버 사이에 공유될 공유 키를 획득하는 단계;
    상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 상기 클라이언트 시스템의 가상 어드레스를 생성하는 단계;
    상기 가상 어드레스를 포함하는 등록 요청 정보를 상기 인증 서버로 전송하는 단계; 및
    상기 인증 서버로부터 상기 클라이언트 시스템에 대한 인증 키를 수신하는 단계를 포함하는 클라이언트 시스템 인증 방법.
  2. 청구항 1에 있어서,
    상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함하는 클라이언트 시스템 인증 방법.
  3. 청구항 1에 있어서,
    상기 인증 키는, 상기 등록 요청 정보를 이용하여 생성되는 클라이언트 시스템 인증 방법.
  4. 청구항 1에 있어서,
    상기 인증 키를 수신한 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 단계를 더 포함하는 클라이언트 시스템 인증 방법.
  5. 청구항 1에 있어서,
    상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 상기 인증 서버로 전송하여 상기 클라이언트 시스템의 인증을 요청하는 단계를 더 포함하는 클라이언트 시스템 인증 방법.
  6. 청구항 5에 있어서,
    상기 인증을 요청하는 단계는, 상기 인증 키에 대한 전자 서명(electronic signature)를 생성하는 단계; 및
    상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 전자 서명을 상기 인증 서버로 제공하여 상기 클라이언트 시스템의 인증을 요청하는 단계를 포함하는 클라이언트 시스템 인증 방법.
  7. 청구항 5에 있어서,
    상기 인증 서버로부터 상기 인증 요청에 따른 인증 결과를 수신하는 단계; 및
    상기 클라이언트 시스템에 대한 인증이 성공된 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 단계를 더 포함하는 클라이언트 시스템 인증 방법.
  8. 인증 서버에서 수행되는 클라이언트 시스템 인증 방법에 있어서,
    클라이언트 장치와 협력하여, 상기 클라이언트 장치에 설치된 클라이언트 시스템과 상기 인증 서버 사이에 공유될 공유 키를 생성 또는 제공하는 단계;상기 클라이언트 장치로부터, 상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 생성된 상기 클라이언트 시스템의 가상 어드레스를 포함하는 등록 요청 정보를 수신하는 단계;
    상기 등록 요청 정보를 이용하여 상기 클라이언트 시스템에 대한 인증 키를 생성하는 단계;
    상기 등록 요청 정보를 상기 클라이언트 시스템에 대한 인증 정보로서 상기 인증 키와 연관하여 저장하는 단계; 및
    상기 인증 키를 상기 클라이언트 장치로 제공하는 단계를 포함하는 클라이언트 시스템 인증 방법.
  9. 청구항 8에 있어서,
    상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함하는 클라이언트 시스템 인증 방법.
  10. 청구항 8에 있어서,
    상기 제공하는 단계 이후에, 상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하는 단계;
    상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하는 단계; 및
    상기 수신된 가상 어드레스와 상기 저장된 가상 어드레스가 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공하는 단계를 더 포함하는 클라이언트 시스템 인증 방법.
  11. 청구항 8에 있어서,
    상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 수신하는 단계;
    상기 수신된 인증 요청 정보 및 인증 키를 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행하는 단계; 및
    상기 인증 결과를 상기 클라이언트 장치로 제공하는 단계를 더 포함하는 클라이언트 시스템 인증 방법.
  12. 청구항 8에 있어서,
    상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 인증 키에 대한 전자 서명(electronic signature)를 수신하는 단계;
    상기 저장된 인증 정보 및 인증 키를 이용하여 전자 서명을 생성하는 단계;
    상기 수신된 전자 서명과 상기 생성된 전자 서명을 비교하여 상기 수신된 전자 서명을 검증하고, 상기 수신된 인증 요청 정보 및 인증 키와 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행하는 단계; 및
    상기 인증 결과를 상기 클라이언트 장치로 제공하는 단계를 더 포함하는 클라이언트 시스템 인증 방법.
  13. 청구항 11에 있어서,
    상기 클라이언트 시스템의 인증이 성공한 경우, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하는 단계;
    상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하는 단계; 및
    상기 수신된 가상 어드레스와 상기 저장된 가상 어드레스가 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공하는 단계를 더 포함하는 클라이언트 시스템 인증 방법.
  14. 인증 서버와 협력하여 클라이언트 시스템과 상기 인증 서버 사이에 공유될 공유 키를 획득하는 공유 키 획득부;
    상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 상기 클라이언트 시스템의 가상 어드레스를 생성하는 가상 어드레스 생성부;
    상기 가상 어드레스를 포함하는 등록 요청 정보를 상기 인증 서버로 전송하여 상기 인증 서버로부터 상기 클라이언트 시스템에 대한 인증 키를 수신하는 인증 요청부; 및
    상기 가상 어드레스 및 상기 인증 키를 저장하는 저장부를 포함하는 클라이언트 장치.
  15. 청구항 14에 있어서,
    상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함하는 클라이언트 장치.
  16. 청구항 14에 있어서,
    상기 인증 키는, 상기 등록 요청 정보를 이용하여 생성되는 클라이언트 장치.
  17. 청구항 14에 있어서,
    상기 인증 요청부는, 상기 인증 키를 수신한 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 클라이언트 장치.
  18. 청구항 14에 있어서,
    상기 인증 요청부는, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 상기 인증 서버로 전송하여 상기 클라이언트 시스템의 인증을 요청하는 클라이언트 장치.
  19. 청구항 18에 있어서,
    상기 인증 요청부는, 상기 인증 키에 대한 전자 서명(electronic signature)를 생성하고, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 전자 서명을 상기 인증 서버로 제공하여 상기 클라이언트 시스템의 인증을 요청하는 클라이언트 장치.
  20. 청구항 18에 있어서,
    상기 인증 요청부는, 상기 인증 서버로부터 상기 인증 요청에 따른 인증 결과를 수신하고, 상기 클라이언트 시스템에 대한 인증이 성공된 경우, 상기 인증 서버로 상기 가상 어드레스를 전송하여, 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보를 요청하는 클라이언트 장치.
  21. 클라이언트 시스템이 설치된 클라이언트 장치와 협력하여, 상기 클라이언트 시스템과 공유할 공유 키를 생성 또는 제공하는 세션 키 생성부;
    상기 클라이언트 장치로부터, 상기 클라이언트 시스템의 식별 정보 및 상기 공유 키를 이용하여 생성된 상기 클라이언트 시스템의 가상 어드레스를 포함하는 등록 요청 정보를 수신하고, 상기 등록 요청 정보를 이용하여 상기 클라이언트 시스템에 대한 인증 키를 생성하며, 상기 인증 키를 상기 클라이언트 시스템으로 제공하는 인증 키 생성부; 및
    상기 등록 요청 정보를 상기 클라이언트 시스템에 대한 인증 정보로서 상기 인증 키와 연관하여 저장하는 저장부를 포함하는 인증 서버.
  22. 청구항 21에 있어서,
    상기 식별 정보는, 상기 클라이언트 시스템의 코드, 상기 클라이언트 시스템에 할당된 도메인 네임 및 IP 어드레스 중 적어도 하나를 포함하는 인증 서버.
  23. 청구항 21에 있어서,
    상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보 및 상기 인증 키를 수신하고, 상기 수신된 인증 요청 정보 및 인증 키를 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행하는 인증부를 더 포함하는 인증 서버.
  24. 청구항 23에 있어서,
    상기 인증부는, 상기 클라이언트 장치로부터, 상기 가상 어드레스 및 상기 식별 정보 중 적어도 하나를 포함하는 인증 요청 정보, 상기 인증 키 및 상기 인증 키에 대한 전자 서명(electronic signature)를 수신하고,
    상기 저장된 인증 정보 및 인증 키를 이용하여 전자 서명을 생성하고,
    상기 수신된 전자 서명과 상기 생성된 전자 서명을 비교하여 상기 수신된 전자 서명을 검증하고, 상기 수신된 인증 요청 정보 및 인증 키와 상기 저장된 인증 정보 및 인증 키를 비교하여 상기 클라이언트 시스템에 대한 인증을 수행하는 인증 서버.
  25. 청구항 23에 있어서,
    상기 인증부는, 상기 인증 키가 제공된 후, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하고,
    상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하고, 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공하는 인증 서버.
  26. 청구항 23에 있어서,
    상기 인증부는, 상기 인증이 성공된 후, 상기 가상 어드레스 및 상기 클라이언트 시스템에서 수행되는 서비스 또는 기능을 위해 요구되는 정보에 대한 요청을 수신하고,
    상기 수신된 가상 어드레스를 상기 인증 정보로서 저장된 가상 어드레스와 비교하여 일치하는지 여부를 판단하고, 일치하는 경우, 상기 요청된 정보를 상기 클라이언트 장치로 제공하는 인증 서버.



KR1020160086125A 2016-07-07 2016-07-07 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버 KR102510868B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160086125A KR102510868B1 (ko) 2016-07-07 2016-07-07 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버
US15/643,834 US10728232B2 (en) 2016-07-07 2017-07-07 Method for authenticating client system, client device, and authentication server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160086125A KR102510868B1 (ko) 2016-07-07 2016-07-07 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버

Publications (2)

Publication Number Publication Date
KR20180005887A KR20180005887A (ko) 2018-01-17
KR102510868B1 true KR102510868B1 (ko) 2023-03-16

Family

ID=60911382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160086125A KR102510868B1 (ko) 2016-07-07 2016-07-07 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버

Country Status (2)

Country Link
US (1) US10728232B2 (ko)
KR (1) KR102510868B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10019580B2 (en) * 2015-11-19 2018-07-10 Federal Reserve Bank Of Philadelphia Integrity checking for computing devices
JP6731887B2 (ja) * 2017-06-27 2020-07-29 Kddi株式会社 保守システム及び保守方法
JP6696942B2 (ja) * 2017-08-14 2020-05-20 Kddi株式会社 車両保安システム及び車両保安方法
US11269537B2 (en) * 2018-06-29 2022-03-08 Seagate Technology Llc Software containers with security policy enforcement at a data storage device level
CN114301708A (zh) * 2021-12-30 2022-04-08 金蝶智慧科技(深圳)有限公司 身份认证方法、身份认证服务器及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255037A1 (en) * 2002-11-27 2004-12-16 Corvari Lawrence J. System and method for authentication and security in a communication system
US20060077908A1 (en) * 2004-10-07 2006-04-13 Park So H Method for generating and authenticating address automatically in IPv6-based internet and data structure thereof

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6871278B1 (en) * 2000-07-06 2005-03-22 Lasercard Corporation Secure transactions with passive storage media
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7506368B1 (en) * 2003-02-13 2009-03-17 Cisco Technology, Inc. Methods and apparatus for network communications via a transparent security proxy
US7305705B2 (en) * 2003-06-30 2007-12-04 Microsoft Corporation Reducing network configuration complexity with transparent virtual private networks
CA2552264A1 (en) * 2003-07-02 2005-01-13 Mobipay International, S.A. Digital mobile telephone transaction and payment system
KR100918440B1 (ko) * 2004-11-12 2009-09-24 삼성전자주식회사 가상 사설망에서 게이트웨이의 ip 주소를 이용한 이동 단말의 통신 방법 및 장치
US7870103B1 (en) * 2005-10-13 2011-01-11 Emc Corporation Tolerating and reporting collisions in content-derived identifiers of data segments using secondary identifiers
US7882356B2 (en) * 2006-10-13 2011-02-01 Microsoft Corporation UPnP authentication and authorization
US20090240874A1 (en) * 2008-02-29 2009-09-24 Fong Pong Framework for user-level packet processing
US8966110B2 (en) * 2009-09-14 2015-02-24 International Business Machines Corporation Dynamic bandwidth throttling
US9081989B2 (en) * 2010-03-25 2015-07-14 Virtustream Canada Holdings, Inc. System and method for secure cloud computing
KR101198120B1 (ko) * 2010-05-28 2012-11-12 남궁종 홍채정보를 이용한 양방향 상호 인증 전자금융거래시스템과 이에 따른 운영방법
CN104756127B (zh) * 2012-10-12 2018-03-27 皇家飞利浦有限公司 通过虚拟机进行安全数据处理
US9640001B1 (en) * 2012-11-30 2017-05-02 Microstrategy Incorporated Time-varying representations of user credentials
KR20140090279A (ko) 2012-12-10 2014-07-17 (주) 이노디에스 서비스 보안 인증 방법 및 이를 구현한 웹 애플리케이션 서버
US9184911B2 (en) * 2014-04-08 2015-11-10 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9954681B2 (en) * 2015-06-10 2018-04-24 Nxp Usa, Inc. Systems and methods for data encryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255037A1 (en) * 2002-11-27 2004-12-16 Corvari Lawrence J. System and method for authentication and security in a communication system
US20060077908A1 (en) * 2004-10-07 2006-04-13 Park So H Method for generating and authenticating address automatically in IPv6-based internet and data structure thereof

Also Published As

Publication number Publication date
US20180013738A1 (en) 2018-01-11
US10728232B2 (en) 2020-07-28
KR20180005887A (ko) 2018-01-17

Similar Documents

Publication Publication Date Title
JP7457173B2 (ja) モノのインターネット(iot)デバイスの管理
US10826708B2 (en) Authenticating nonces prior to encrypting and decrypting cryptographic keys
KR102510868B1 (ko) 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버
US11729002B2 (en) Code signing method and system
US20150150109A1 (en) Authenticated access to a protected resource using an encoded and signed token
US9544137B1 (en) Encrypted boot volume access in resource-on-demand environments
US20180020008A1 (en) Secure asynchronous communications
US10862883B1 (en) Custom authorization of network connected devices using signed credentials
US11374975B2 (en) TLS integration of post quantum cryptographic algorithms
US10601590B1 (en) Secure secrets in hardware security module for use by protected function in trusted execution environment
EP3682364B1 (en) Cryptographic services utilizing commodity hardware
US20180167388A1 (en) Distributed storage of authentication data
US10257171B2 (en) Server public key pinning by URL
US10764294B1 (en) Data exfiltration control
US10298388B2 (en) Workload encryption key
JP2018092446A (ja) 認証認可システム及び情報処理装置と認証認可方法とプログラム
WO2023124958A1 (zh) 密钥更新方法、服务器、客户端及存储介质
CN113703911B (zh) 一种虚拟机迁移方法、装置、设备、存储介质
US20220123952A1 (en) Detection and prevention of unauthorized execution of serverless functions
US9509503B1 (en) Encrypted boot volume access in resource-on-demand environments
US9245097B2 (en) Systems and methods for locking an application to device without storing device information on server
JP2017108237A (ja) システム、端末装置、制御方法、およびプログラム
US9071596B2 (en) Securely establishing a communication channel between a switch and a network-based application using a unique identifier for the network-based application
US10491385B2 (en) Information processing system, information processing method, and recording medium for improving security of encrypted communications
WO2022206203A1 (en) Connection resilient multi-factor authentication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant