KR102062851B1 - 토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템 - Google Patents

토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템 Download PDF

Info

Publication number
KR102062851B1
KR102062851B1 KR1020180037316A KR20180037316A KR102062851B1 KR 102062851 B1 KR102062851 B1 KR 102062851B1 KR 1020180037316 A KR1020180037316 A KR 1020180037316A KR 20180037316 A KR20180037316 A KR 20180037316A KR 102062851 B1 KR102062851 B1 KR 102062851B1
Authority
KR
South Korea
Prior art keywords
sso
service
uuid
server
terminal
Prior art date
Application number
KR1020180037316A
Other languages
English (en)
Other versions
KR20190114505A (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 KR1020180037316A priority Critical patent/KR102062851B1/ko
Publication of KR20190114505A publication Critical patent/KR20190114505A/ko
Application granted granted Critical
Publication of KR102062851B1 publication Critical patent/KR102062851B1/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 일 측면에 따르면, 사용자 단말에 설치되는 SSO 에이전트 및 SSO 서비스 인증을 수행하는 SSO 서버를 포함하는 SSO(Single Sign On) 서비스 인증 시스템이 제공된다. 본 발명의 실시예에 의하면, 인증토큰값이 탈취되어 악의적 공격자에 의해 재사용된다 하더라도 SSO의 보안성이 취약해지지 않으며, 사용자가 표준 웹브라우져 이외에 다른 윈도우 프로그램에서 다른 서비스에 접속한다 하더라도 해당 서비스에 맞는 별도의 사용자 아이디와 암호 입력 없이 SSO시스템이 운영될 수 있으며, 동일사용자가 여러 서비스별로 다른 ID로 서비스를 사용한다 하더라도 도메인을 호환하여 SSO가 작동되는 CDSSO(Cross Domain SSO)을 구성할 수 있는 효과가 있다.

Description

토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템{SINGLE SIGN ON SERVICE AUTHENTICATION METHOD AND SYSTEM USING TOKEN MANAGEMENT DEMON}
본 발명은 SSO(Single Sign On) 서비스에 관한 것으로서, 보다 구체적으로는 토큰 관리 데몬을 이용한 SSO 서비스 인증 방법 및 시스템에 관한 것이다.
한번 로그인하면 더 이상 사용자가 아이디와 암호를 재차 입력하지 않아도 2차 시스템에 로그인 절차를 자동으로 처리해주는 SSO 기술들이 많이 소개되고 있다.
SSO의 일반적인 작동흐름은 사용자가 온라인 서비스에 접속한 후 사용자 아이디와 암호와 같은 사용자 인증정보를 입력하면 접속한 온라인 서비스에서 사용자 인증정보를 확인한 후 해당 접속 단말기에 토큰을 발행한다. 해당 단말기가 다시 온라인 서비스에 접속하거나 해당 온라인 서비스의 토큰을 받아주기로 약속된 다른 서비스에 접속하게 되면 방문한 사용자 아이디와 암호를 확인하는 대신 발행된 토큰 정보를 확인하여 정당한 토큰인 경우 사용자에게 온라인 서비스를 제공한다. 토큰 기술은 사용자가 시스템에 접속할때마다 사용자 인증정보를 네트워크에 입력할 필요가 없어 사용자의 편의성을 개선하면서도 보안성을 강화시킨 기술이다.
하지만 클라이언트 단말기가 제시하는 토큰으로만 정당한 사용자 단말기임을 믿고 온라인 서비스가 서비스를 제공하게 되면 토큰이 탈취 도용된 경우 해당 사용자를 가장하여 온라인 서비스를 사용할 수 있는 문제점이 있게 된다. 가장 대표적으로는 웹브라우져를 기반으로 한 SSO의 경우 XSS, CSRF 등과 같은 웹 토큰 탈취 공격을 통해 공격자가 토큰을 발행받은 정당한 사용자의 단말기인 것처럼 서버에 접근하여 무단으로 사용자의 데이터를 조회하거나 서비스를 사용할 수 있다.
이에 SSO와 관련된 토큰 관련 선행 연구들은 기발행된 발행된 토큰을 어떻게 안전하게 단말기에서 암호화하여 보관할 것인가에 초점이 맞추어져 있거나 토큰 발행하고 사용하는 쌍방 주체간에 토큰 이외에 별도의 검증값을 사전에 전달하여 토큰 확인시 별도의 검증값으로 토큰을 한번 더 검증하는 방식이었다(한국등록특허 제10-1358704호, 싱글 사인 온을 위한 인증 방법).
전술한 바와 같이, 발행된 토큰을 보호하고자 하는 종래 기술의 한계점은 여전히 단말과 서버 상호간에 검증하는 방식이어서 중간자 공격에 놓이는 경우 보안의 허점이 발생할 수 있는 것과 모든 SSO이 특정 프로그램 내에서만 구동되어 다른 응용프로그램에서 까지 SSO이 작동 할 수 없다는 문제가 있다. 대표적인 예가 특정 웹브라우져 내에서 사용자 로그인 이후 SSO이 지원되지만 새롭게 구동한 다른 종류의 웹브라우져나 다른 윈도우 프로그램에서 SSO이 작동하지 않는 불편함이 있다.
또한 종래의 모든 SSO과 관련된 선행기술은 동일한 사용자 ID로 여러 시스템을 접근한다는 가정하에서 개발된 것으로 사용자의 계정이 여러 시스템에 걸쳐 다르다면 작동하지 못하는 한계가 있었다.
본 발명은 단말기 내의 프로그램 제한적으로 SSO이 작동하는게 아니라 프로그램 독립적으로 SSO이 작동하면서 단말과 서버 사이의 중간자 공격을 방어할 수 있으며 다른 계정으로 운영되는 서비스까지 한번에 인증될 수 있는 SSO 인증 기술을 제공하기 위한 것이다.
본 발명의 일 측면에 따르면, 사용자 단말에 설치되는 SSO 에이전트 및 SSO 서비스 인증을 수행하는 SSO 서버를 포함하는 SSO(Single Sign On) 서비스 인증 시스템이 제공된다.
상기 SSO 에이전트는, 단말 UUID(Universally unique identifier)를 생성하여 상기 SSO 서버로 전달하고, 내부 로컬 호스트 주소를 가지며 통신 프로토콜을 지원하는 인증 토큰 관리 데몬을 통해서 상기 SSO 서버로부터 전달된 인증 토큰을 등록 관리하며, 서비스 사이트로의 접속에 따른 서비스 접속 프로그램으로부터의 인증 토큰 확인 요청이 있는 경우 상기 인증 토큰 관리 데몬을 통해서 인증 토큰의 보유 여부에 관한 확인 결과를 제공할 수 있다.
또한 이때, 상기 SSO 서버는, 상기 서비스 서버로부터 단말 UUID가 수신된 경우 해당 단말 UUID에 연계될 인증 토큰을 생성하고, 상기 서비스 서버로부터 수신된 해당 단말 UUID에 관련된 데이터 및 SSO 서버에서 자체 생성한 해당 단말 UUID와 관련된 데이터를 상기 SSO 에이전트로부터 수신된 단말 UUID를 기준으로 연계하여 맵핑 관리함으로써 상기 인증 토큰에 기반한 SSO 서비스 인증을 수행할 수 있다.
본 발명의 실시예에 의하면, 인증토큰값이 탈취되어 악의적 공격자에 의해 재사용된다 하더라도 SSO의 보안성이 취약해지지 않으며, 사용자가 표준 웹브라우져 이외에 다른 윈도우 프로그램에서 다른 서비스에 접속한다 하더라도 해당 서비스에 맞는 별도의 사용자 아이디와 암호 입력 없이 SSO시스템이 운영될 수 있으며, 동일사용자가 여러 서비스별로 다른 ID로 서비스를 사용한다 하더라도 도메인을 호환하여 SSO가 작동되는 CDSSO(Cross Domain SSO)을 구성할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따라 사용자 단말기에 설치되는 SSO 에이전트에 관한 블록 구성도.
도 2의 (A)는 SSO 서버에 관한 블록 구성도이고 (B)는 서비스 서버에 관한 블록 구성도.
도 3은 본 발명의 실시예에 따른 SSO 서비스 인증 방법으로서 인증 토큰이 발행될 때까지의 순서도.
도 4는 본 발명의 실시예에 따른 SSO 서비스 인증 방법으로서 인증 토큰이 발행된 상태에서의 순서도.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 명세서 전체에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하나 이상의 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있음을 의미한다.
도 1은 본 발명의 실시예에 따라 사용자 단말기에 설치되는 SSO 에이전트에 관한 블록 구성도이고, 도 2의 (A)는 SSO 서버에 관한 블록 구성도이고 (B)는 서비스 서버에 관한 블록 구성도이다.
도 1에 의할 때, 본 발명의 실시예에 따른 SSO 서비스 인증을 위하여, 사용자 단말기(100) 내에는 서비스 접속 프로그램(110)과 SSO 에이전트(120)가 설치되며, SSO 에이전트(120)(즉, SSO 서비스를 위한 대행 프로그램)는 인증 토큰 관리 데몬(122), 단말 UUID 생성부(124), 검증 UUID 관리부(126)를 포함할 수 있다. 아울러 도 2에 의할 때, 본 발명의 실시예에 따른 SSO 서비스 인증을 위하여, SSO 서버(200)는 SSO 토큰 관리부(210) 및 검증 관리부(220)를 포함할 수 있다. 이때, SSO 토큰 관리부(210)는 토큰-아이디 맵 테이블을 생성 및 관리할 수 있고, 검증 관리부(220)는 검증 맵 테이블을 생성 및 관리할 수 있다. 그리고 서비스 서버(300)는 서비스 접속을 시도하는 사용자 단말기 및 SSO 서비스를 제공하는 SSO 서버와의 연동을 위해 LOGIN 및 SSO 연동부(310)가 포함될 수 있다.
또한 도 3은 본 발명의 실시예에 따른 SSO 서비스 인증 방법으로서 인증 토큰이 발행될 때까지의 순서도이고, 도 4는 본 발명의 실시예에 따른 SSO 서비스 인증 방법으로서 인증 토큰이 발행된 상태에서의 순서도이다. 이하, 도 3 및 도 4의 순서도를 중심으로 도 1 및 도 2를 함께 참조하여 본 발명의 실시예를 상세히 설명한다. 다만, 이하의 설명 과정에서 데이터 암호화/복호화 방식들은 일 예시에 불과한 바 다른 암호화/복호화 방식들이 이용될 수 있음은 물론이며, 구현 방식에 따라서는 암호화를 수행하지 않은 본래의 데이터가 직접 전달될 수도 있음을 먼저 명확히 해둔다.
도 3을 참조하여 사용자가 단말 내 프로그램을 이용하여 제1 서비스 서버에 의한 서비스 사이트에 접속할 때, 사용자 단말기에 인증 토큰이 부여되는 흐름을 설명하면 다음과 같다.
사용자 단말기(100)에 SSO 에이전트(120)가 설치되어 있고, 사용자 단말기(100)가 구동되면, SSO 에이전트(120) 내의 단말 UUID 생성부(124)는 단말 UUID(Universally unique identifier)를 생성한다[S101 참조]. 이때, 생성된 단말 UUID는 SSO 서버(200)로 전달된다[S102 참조]. 이에 따라 SSO 서버(200)는 수신한 단말 UUID에 근거하여 사용자 단말기(100)로 SSO 서버의 공개키를 전달한다[S103 참조]. 이에 따라 단말 UUID 생성부(124)는 단말의 비대칭키(즉, 공개키)를 생성하여 수신한 SSO 서버의 공개키로 단말의 공개키를 암호화한 후, 인증 토큰 관리 데몬(122)에게 전달한다.
이후, 사용자가 단말 내의 서비스 접속 프로그램(110)을 구동하여 제1 서비스 서버에 의한 서비스 사이트(이하, 서비스 1로 간략 명명함)에 접속을 시도하면[S104 참조], 서비스 1(보다 정확하게는, 제1 서비스 서버의 LOGIN 및 SSO 연동부(310)임)은 사용자 단말기에 사용자 로그인 페이지를 제공하여 단말 화면 상에 로그인 페이지를 표시하기 전에, 서비스 접속 프로그램(110)에게 SSO 에이전트(120)의 인증 토큰 관리 데몬(122)이 SSO 서비스 인증을 위해 사용될 인증 토큰을 가지고 있는지에 관한 확인을 요청한다[S105 참조]. 이 경우 서비스 접속 프로그램(110)은 SSO 에이전트(120)의 인증 토큰 관리 데몬(122)에게 인증 토큰의 보유 여부에 관한 확인을 요청하고[S106 참조], 이에 따라 인증 토큰 관리 데몬(122)은 인증 토큰의 보유 여부를 확인하여 그 확인 결과를 서비스 접속 프로그램(110)에게 전달한다[S107 참조].
위 확인 결과에 따라, 인증 토큰이 있는 경우에는 향후 설명할 도 4의 S205 이후의 과정이 실행된다. 이와 달리, 인증 토큰이 없는 경우 서비스 접속 프로그램(110)은 제1 서비스 서버에게 사용자 로그인 페이지를 단말로 제공해주도록 요청하고, 이에 따라 사용자 단말기(100)의 화면 상에는 로그인 페이지가 표시된다[S108 참조].
사용자 단말기(100)의 화면 상에 표시된 로그인 페이지에 사용자가 자신의 계정 정보(아이디 및 패스워드)를 입력하면[S109 참조], 서비스 접속 프로그램은 인증 토큰 관리 데몬(122)으로부터 단말 UUID 및 앞서 SSO 서버의 공개키로 암호화시킨 단말의 공개키를 획득하고[S110 참조], 이를 상기 사용자 계정 정보와 함께 제1 서비스 서버로 전달한다[S111 참조].
제1 서비스 서버는 전달된 사용자 계정 정보(아이디 및 패스워드)가 일치하는지를 검증하고[S112 참조], 일치하는 경우 사용자 단말기(100)에서 요청한 서비스를 제공한다[S113 참조]. 또한 제1 서비스 서버는 서비스명, 서비스 ID(즉, 해당 서비스를 이용할 때 사용자 계정 확인에 사용되는 사용자 ID를 의미함), 전달받은 단말 UUID, SSO 서버의 공개키로 암호화된 단말의 공개키를 SSO 서버(200)에 전달한다[S114 참조].
이때, SSO 에이전트(120) 내의 인증 토큰 관리 데몬(122)는 구현 방식에 따라 차이가 있을 수 있으나, 내부 로컬 호스트 주소(127.0.0.1)를 갖고 통신 프로토콜을 지원하는 데몬으로 구성되거나, OS 레벨에서 참조가능한 API를 제공하는 서비스 등으로 구성될 수 있다.
이에 따라 SSO 서버(200)는 해당 서비스 서버(즉, 제1 서비스 서버)가 SSO 서비스를 위해 사전에 등록된 서비스 서버인지를 확인한다. 사전에 등록된 서비스 서버가 맞는 경우, SSO 서버(200)는 SSO 토큰 관리부(210) 내의 토큰-아이디 맵핑 테이블에 S114에 따라 제1 서비스 서버로부터 수신된 데이터(즉, 서비스 ID, 단말 UUID, 암호화된 단말의 공개키 등)를 S102에서 수신했던 단말 UUID를 기준으로 맵핑 등록한다[S115 참조].
또한 이때, SSO 서버와 연계된 여러 서비스들의 사용자는 동일하지만 각 서비스 별로 사용자 ID가 상이할 수도 있는 바, 구현 방식에 따라 토큰-아이디 맵핑 테이블은 이러한 멀티 도메인 간의 SSO를 위해서 유니버셜 ID로 각 서비스 ID(즉, 각 서비스 별로 사용되는 사용자 ID)를 통합 맵핑할 수 있도록 구현될 수도 있다.
상술한 바와 같은 맵핑이 이루어진 이후, SSO 서버(200)는 해당 단말 UUID의 사용자 단말과의 향후 데이터 송수신시에 사용될 암복호화 대칭키(즉, 비밀키)와 인증 토큰을 생성한다[S116 참조]. 이때, 생성된 대칭키는 수신된 단말 공개키로 암호화하고, 생성된 인증 토큰은 상기 대칭키로 암호화하여 그 암호화된 2개의 값을 해당 단말 UUID의 사용자 단말기(100) 내의 SSO 에이전트(120)로 전달한다[S117 참조]. 이때, 생성한 인증 토큰과 대칭키는 토큰-아이디 맵핑 테이블에 해당 단말의 UUID를 기준으로 추가한다.
이에 따라, 사용자 단말기(100)의 SSO 에이전트(120)는, 수신된 암호화된 대칭키를 단말의 비밀키로 복호화하여 추출하고, 추출된 대칭키로 SSO 서버(200)로부터 수신된 암호화된 인증 토큰을 복호화하여 저장한다. 이때, 복호화된 인증 토큰은 보안 특성상 휘발성 메모리에 보관될 수도 있다.
다음으로, 도 4를 참조하여 사용자가 단말 내 프로그램을 이용하여 제2 서비스 서버에 의한 서비스 사이트(앞서 접속한 제1 서비스 서버에 의한 서비스 사이트와는 다른 사이트)에 접속할 때, 검증 UUID로 인증 토큰을 확인하고 SSO가 이루어지는 흐름을 설명하면 다음과 같다. 본 예시에서, 후술할 서비스 2는 전술한 서비스 1과 상이한 서비스를 의미함. 다만, 도 4의 과정은 서비스 1에 로그아웃한 상태에서 다시 서비스 1에 접속하고자 하는 경우에도 동일하게 적용될 수 있음을 먼저 명확히 해둔다. 또한 도 4는 앞선 도 3의 과정에 따라, 사용자 단말기(100) 내의 SSO 에이전트(120)가 SSO 서버(200)로부터 인증 토큰을 부여받은 상태인 경우를 가정하였을 때의 순서도이다.
사용자 단말기(100)의 사용자가 동일한 서비스 접속 프로그램 또는 다른 서비스 접속 프로그램을 구동하여 제2 서비스 서버에 의한 서비스 사이트(이하, 서비스 2로 간략하게 명명함)에 접속을 시도하면[S201 참조], 서비스 2는 사용자 단말기(100)의 화면 상에 사용자 로그인 페이지를 표시하기 전에, 서비스 접속 프로그램에게 인증 토큰 관리 데몬(122)의 인증 토큰 보유 여부에 관한 확인을 요청한다[S202 참조]. 이에 따라 서비스 접속 프로그램은 SSO 에이전트(120)에 인증 토큰의 보유 여부를 확인 요청한다[S203 참조].
인증 토큰을 보유하고 있는 경우, 인증 토큰 관리 데몬(122)은 검증 UUID를 생성하고[S204 참조], 단말 UUID, 인증 토큰, 검증 UUID를 서비스 접속 프로그램으로 전달한다. 이때, 검증 UUID는 기존 단말 UUID에 일련번호, 시간, 임의값 등을 결합 또는 연산하여 생성된 것이 사용되거나 임의의 일련번호 등이 사용될 수 있다. 이와 같이 생성된 검증 UUID는 SSO 에이전트(120) 내의 검증 UUID 관리부(126)에 신규로 등록될 수 있다. 또한, 전술한 인증 토큰 및 검증 UUID는 대칭키(앞서 설명한 도 3 참조)로 암호화하여 서비스 접속 프로그램으로 전달될 수 있다.
이에 따라 서비스 접속 프로그램은 SSO 에이전트(120)로부터 전달받은 단말 UUID와, 암호화된 인증 토큰 및 검증 UUID를 서비스 2에게 전달하고[S206 참조], 이에 따라 서비스 2는 수신된 데이터들(단말 UUID, 암호화된 인증 토큰 및 검증 UUID)과 서비스명을 SSO 서버(200)로 전달함으로써, SSO 서버로부터 서비스의 어떤 아이디로 로그인을 시켜야 하는지 SSO 인증 요청한다[S207 참조].
이에 따라 SSO 서버(200)는 SSO 토큰 관리부(210)의 토큰-아이디 맵핑 테이블에서 해당 단말 UUID에 연결된 대칭키를 확인하고, 확인된 대칭키로 암호화된 인증 토큰 및 검증 UUID를 복호화한 후, 해당 단말 UUID와 복호화된 인증 토큰이 토큰-아이디 맵핑 테이블에 등록된 단말 UUID와 인증 토큰과 일치하는지를 확인한다[S208 참조].
확인 결과, 서로 다르다면 SSO 인증의 실패를 서비스 2에게 통보하고, 일치한다면 SSO 서버(200)는 수신된 검증 UUID의 검증을 위하여 별도의 검증 확인값을 생성하고, 별도의 검증용 비대칭키(즉, 공개키)를 생생한다. 이때, 검증 확인값은 검증 시점마다 새롭게 생성되는 임의의 값이고, 검증용 공개키는 추후 SSO 에이전트(120)가 SSO 서버(200)가 보낸 검증 확인값을 검증용 공개키로 암호화하여 보낼 수 있도록 하기 위하여 미리 보내지는 비대칭키값이다. 이러한 검증 확인값 및 검증용 공개키는 검증 관리부(220) 내의 검증 맵 테이블에 해당 단말의 UUID(또는 수신된 검증 UUID)를 기준으로 별도 등록 보관될 수 있다.
위와 같은 검증 확인값, 검증용 공개키, 검증 UUID는 앞서 설명하였던 대칭키로 암호화하여 SSO 에이전트(120)로 전달될 수 있다[S209 참조]. 이에 따라 SSO 에이전트(120)는 SSO 서버(200)로부터 수신한 암호화된 데이터들(검증 UUID, 검증 확인값, 검증용 공개키)를 상기 대칭키로 복호화하고, 복호화된 검증 UUID가 검증 UUID 관리부(126)에 등록된 검증 UUID와 일치하는지 확인한다. 만일 일치하지 않는 경우, SSO 에이전트(120)는 SSO 서버(200)에게 인증 실패를 통보할 수 있다. 반대로 일치하는 경우, SSO 에이전트(120)는 검증 확인값을 검증용 공개키로 암호화하여 단말 UUID(또는 검증 UUID)와 함께 SSO 서버(200)로 전달한다[S210 참조].
이에 따라, SSO 서버(200)는 수신된 암호화된 검증 확인값을 검증용 맵 테이블에 있는 해당 단말의 UUID(또는 검증 UUID)와 연계된 검증용 비밀키로 복호화한 후, 해당 단말의 UUID(또는 검증 UUID)와 연계된 검증 확인값과 일치하는지를 확인한다[S211 참조]. 이때, 불일치하는 경우 서비스 2에게 인증 실패를 통보하고, 일치하는 경우 토큰-아이디 맵 테이블에 단말 UUID와 연계된 ID로 SSO 인증이 성공적으로 이루어졌음을 서비스 2에게 통보한다[S212 참조]. 이에 따라 제2 서비스 서버는 수신된 ID를 이용하여 해당 서비스를 사용자 단말기(100)에게 제공한다[S213 참조].
이상에서는 도 3 및 도 4를 기준으로 본 발명의 실시예를 설명하였지만, 본 발명은 다음과 같은 구현 방식 상의 설계 변경이 이루어질 수도 있음은 물론이다.
일 예로, 구현 방식에 따라서 SSO 서비스의 인증 보안을 위해, 상술한 바와 같이 SSO 인증 실패로 판별되는 경우, SSO 서버는 해당 단말 UUID와 관련된 맵핑 값들을 삭제 처리하고, 해당 단말 UUID에 해당하는 SSO 에이전트에게 인증 토큰과 단말 UUID를 삭제하도록 명령을 보낼 수 있다.
이와 유사하게, SSO 에이전트 역시 검증 UUID 관리부내의 검증UUID가 SSO 서버로부터 수신한 검증 UUID와 다른 경우 SSO 인증 실패로 간주하고, SSO 에이전트 내 해당 검증 UUID 값과 관련 맵핑값을 삭제하고, SSO 서버로 SSO인증 실패를 전달할 수 있다.
또한 구현 방식에 따라서 SSO 에이전트가 종료될 때 SSO 서버에게 해당 SSO에이전트과 관계된 단말 UUID의 관련값들을 삭제하도록 요청할 수 있음도 자명하다.
또한 구현 방식에 따라서 SSO 인증이 실패했을 때 뿐만 아니라 인증에 성공했을때에도 관련 검증 UUID와 관련된 값들을 삭제할 수도 있음은 물론이다.
또한 구현 방식에 따라서 보안 수준이 낮은 서비스에서 인증 받은 사용자 ID가 보안 수준이 높은 서비스로 SSO되지 못하고, 보안 수준이 높은 서비스에서는 보안 수준이 낮은 서비스로 SSO될 수 있게 하는 연결된 서비스 간 보안 설정이 추가 될 수 있게 SSO 서버 내(즉, SSO 토큰 관리부 내)의 서비스 서버간 보안맵을 추가로 구성할 수도 있다.
또한, 보다 손쉬운 구현 방식으로서, 검증 UUID와 검증 확인값 없이 인증 토큰값만을 갱신하여 SSO를 구현할 수도 있다. 예를 들어, SSO 서버는 서비스 2가 전달한 인증토큰이 SSO 서버내 토큰-아이디 맵 테이블에서 일치하여 사용된 경우, 단말 UUID에 맞는 새로운 인증토큰을 생성하고 상기 대칭키로 암호화하여 단말 UUID에 맞는 SSO 에이전트로 재전송하고, 신규로 생성한 인증 토큰을 토큰-아이디 맵 테이블에 단말 UUID를 기준으로 갱신할 수 있다. 이 경우, 해당 단말 UUID의 사용자 단말기의 SSO에이전트는 SSO 서버로부터 새로 수신된 인증 토큰을 단말 UUID에 일치하는 인증 토큰으로 보관하고 다른 프로그램의 요청시 제공할 수 있다.
또한, 구현 방식에 따라서, 단말 UUID와 인증 토큰값 모두를 갱신하여 SSO를 구현할 수도 있다. 예를 들어, SSO 서버는 서비스 2가 전달한 인증 토큰이 SSO 서버내 토큰-아이디 맵 테이블에서 일치하여 사용된 경우, 단말 UUID에 맞는 새로운 단말 UUID 및 인증 토큰을 생성하고 이를 상기 대칭키로 암호화하여 기존 단말 UUID에 맞는 SSO 에이전트로 재전송하고, 신규로 생성한 인증 토큰을 토큰-아이디 맵 테이블에 단말 UUID와 인증 토큰을 갱신할 수 있다. 이 경우, 해당 단말UUID의 사용자 단말기의 SSO에이전트는 SSO 서버로부터 새로 수신된 새로운 단말 UUID와 인증 토큰을 보관하고, 다른 프로그램의 요청시 제공할 수 있다.
또한 구현 방식에 따라서, 검증 UUID와 검증 확인값이 확인될 때 마다, 인증 토큰값까지 갱신하여 SSO 구현할 수 도 있다.
상술한 본 발명의 실시예에 따른 싱글 사인 온 서비스 인증 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 쉽게 이해할 수 있을 것이다.

Claims (10)

  1. 사용자 단말에 설치되는 SSO 에이전트 및 SSO 서비스 인증을 수행하는 SSO 서버를 포함하는 SSO(Single Sign On) 서비스 인증 시스템으로서,
    상기 SSO 에이전트는, 단말 UUID(Universally unique identifier)를 생성하여 상기 SSO 서버로 전달하고, 내부 로컬 호스트 주소를 가지며 통신 프로토콜을 지원하는 인증 토큰 관리 데몬을 통해서 상기 SSO 서버로부터 전달된 인증 토큰을 등록 관리하며, 서비스 사이트로의 접속에 따른 서비스 접속 프로그램으로부터의 인증 토큰 확인 요청이 있는 경우 상기 인증 토큰 관리 데몬을 통해서 인증 토큰의 보유 여부에 관한 확인 결과를 제공하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  2. 제1항에 있어서,
    상기 SSO 에이전트는, 사용자가 접속하고자 하는 상기 서비스 사이트의 서비스 서버로 상기 단말 UUID를 전달하고,
    상기 SSO 서버는,
    상기 서비스 서버로부터 단말 UUID가 수신된 경우 해당 단말 UUID에 연계될 인증 토큰을 생성하고, 상기 서비스 서버로부터 수신된 해당 단말 UUID에 관련된 데이터 및 SSO 서버에서 자체 생성한 해당 단말 UUID와 관련된 데이터를 상기 SSO 에이전트로부터 수신된 단말 UUID를 기준으로 연계하여 맵핑 관리함으로써 상기 인증 토큰에 기반한 SSO 서비스 인증을 수행하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  3. 제2항에 있어서,
    해당 사용자 단말의 단말 UUID에 관련된 인증 토큰이 상기 SSO 에이전트에 등록 관리된 상태에서, 상기 사용자 단말의 사용자가 SSO 서비스에 가입된 서비스 사이트로 접속하고자 하는 경우,
    상기 SSO 에이전트는,
    사용자가 접속하고자 하는 해당 서비스 사이트의 서비스 서버로부터 인증 토큰 확인 요청이 수신됨에 따라 검증 UUID를 생성하고, 해당 서비스 서버로 상기 단말 UUID, 상기 인증 토큰 및 검증 UUID를 전달하고,
    상기 SSO 서버는,
    해당 서비스 서버로부터 상기 단말 UUID, 상기 인증 토큰 및 검증 UUID가 수신되는 경우, 단말 UUID를 기준으로 맵핑 관리된 인증 토큰과 수신된 인증 토큰의 일치 여부를 확인하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  4. 제3항에 있어서,
    상기 맵핑 관리된 인증 토큰과 수신된 인증 토큰이 일치하는 경우,
    상기 SSO 서버는,
    상기 검증 UUID의 검증을 위한 검증 확인값을 생성하고, 상기 검증 UUID, 상기 검증 확인값을 상기 SSO 에이전트로 전달하며,
    상기 SSO 에이전트는,
    상기 SSO 서버로부터 수신된 검증 UUID와 SSO 에이전트가 기존 생성하였던 검증 UUID가 일치하는 경우, 상기 수신된 검증 확인값을 다시 상기 SSO 서버로 전달하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  5. 제4항에 있어서,
    상기 SSO 서버는, 상기 SSO 에이전트로부터 수신된 검증 확인값과 SSO 서버가 기존 생성하였던 검증 확인값이 일치하는 경우 해당 서비스 서버에 관한 SSO 서비스 인증의 성공을 해당 서비스 서버로 통보하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  6. 제5항에 있어서,
    단말 UUID 간의 불일치, 검증 UUID 간의 불일치, 검증 확인값 간의 불일치 중 어느 하나에 따른 SSO 서비스 인증 실패로 판별되는 경우,
    상기 SSO 서버 또는 상기 SSO 에이전트는, 단말 UUID 또는 검증 UUID와 연계하여 관리되던 맵핑값들을 삭제하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  7. 제5항에 있어서,
    상기 SSO 서버 및 상기 SSO 에이전트는, SSO 서비스 인증이 성공된 경우, 상기 검증 UUID와 연계하여 관리되던 맵핑값들을 삭제하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  8. 제5항에 있어서,
    상기 SSO 서버 및 상기 SSO 에이전트는, 상기 검증 UUID 및 상기 검증 확인값이 확인될 때마다, 상기 인증 토큰 값을 갱신하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  9. 제1항에 있어서,
    해당 사용자 단말의 단말 UUID에 관련된 인증 토큰이 상기 SSO 에이전트에 등록 관리된 상태에서, 상기 사용자 단말의 사용자가 SSO 서비스에 가입된 서비스 사이트로 접속하고자 하는 경우,
    상기 SSO 서버는,
    상기 SSO 에이전트로부터 해당 서비스 서버를 통해 전달된 인증 토큰이 단말 UUID를 기준으로 맵핑 관리된 인증 토큰과 일치하는 경우, 새로운 인증 토큰을 생성하여 SSO 에이전트로 전달하고, 신규 생성된 인증 토큰을 단말 UUID를 기준으로 갱신 관리하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
  10. 제9항에 있어서,
    상기 SSO 서버는,
    상기 SSO 에이전트로부터 해당 서비스 서버를 통해 전달된 인증 토큰이 단말 UUID를 기준으로 맵핑 관리된 인증 토큰과 일치하는 경우, 새로운 단말 UUID를 생성하여 상기 SSO 에이전트로 전달하고, 신규 단말 UUID를 기준으로 상기 신규 생성된 인증 토큰을 갱신 관리하는 것을 특징으로 하는, SSO 서비스 인증 시스템.
KR1020180037316A 2018-03-30 2018-03-30 토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템 KR102062851B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180037316A KR102062851B1 (ko) 2018-03-30 2018-03-30 토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180037316A KR102062851B1 (ko) 2018-03-30 2018-03-30 토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20190114505A KR20190114505A (ko) 2019-10-10
KR102062851B1 true KR102062851B1 (ko) 2020-01-06

Family

ID=68206500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180037316A KR102062851B1 (ko) 2018-03-30 2018-03-30 토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102062851B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113395290A (zh) * 2021-06-30 2021-09-14 成都卫士通信息产业股份有限公司 一种邮箱登录方法、装置、电子设备及可读存储介质
CN116566730A (zh) * 2023-06-15 2023-08-08 中国科学院空天信息创新研究院 跨域用户认证方法、装置、电子设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101746745B1 (ko) 2016-01-05 2017-06-14 (주)유비앤티스랩 사용자 에이전트, 클라이언트 및 단일 로그인을 지원하기 위한 권한 인가 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101746745B1 (ko) 2016-01-05 2017-06-14 (주)유비앤티스랩 사용자 에이전트, 클라이언트 및 단일 로그인을 지원하기 위한 권한 인가 방법

Also Published As

Publication number Publication date
KR20190114505A (ko) 2019-10-10

Similar Documents

Publication Publication Date Title
JP6643373B2 (ja) 情報処理システムと、その制御方法とプログラム
US10567370B2 (en) Certificate authority
US7890767B2 (en) Virtual smart card system and method
CA2578186C (en) System and method for access control
US8438383B2 (en) User authentication system
WO2014048749A1 (en) Inter-domain single sign-on
US11363009B2 (en) System and method for providing secure cloud-based single sign-on connections using a security service provider having zero-knowledge architecture
WO2018021708A1 (ko) 공개키 기반의 서비스 인증 방법 및 시스템
KR101817152B1 (ko) 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법
KR20210095093A (ko) 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버
CN111641615A (zh) 一种基于证书的分布式身份验证方法及系统
KR102062851B1 (ko) 토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템
KR102372503B1 (ko) 탈중앙화 아이디 앱을 이용하여 인증 서비스를 제공하는 방법 및 이를 이용한 탈중앙화 아이디 인증 서버
US20090319778A1 (en) User authentication system and method without password
JP6240102B2 (ja) 認証システム、認証鍵管理装置、認証鍵管理方法および認証鍵管理プログラム
KR101996317B1 (ko) 인증변수를 이용한 블록체인 기반의 사용자 인증 시스템 및 그 방법
KR101619928B1 (ko) 이동단말기의 원격제어시스템
JP6983685B2 (ja) 情報処理システム、クライアント装置、認証認可サーバー、制御方法とそのプログラム
KR100892609B1 (ko) 보안 통신 시스템, 방법, 및 상기 방법을 실행시키기 위한컴퓨터 프로그램을 기록한 매체
KR20200018546A (ko) 공개키 기반의 서비스 인증 방법 및 시스템
JP2020053100A (ja) 情報処理システムと、その制御方法とプログラム
KR102048534B1 (ko) 인증 방법 및 시스템
Corella et al. An example of a derived credentials architecture
KR101101190B1 (ko) 보안 통신 시스템, 방법, 및 상기 방법을 실행시키기 위한 컴퓨터 프로그램을 기록한 매체
Corella et al. Strong and convenient multi-factor authentication on mobile devices

Legal Events

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