KR102424055B1 - 두 개의 api 토큰을 이용한 api 인증 장치 및 방법 - Google Patents

두 개의 api 토큰을 이용한 api 인증 장치 및 방법 Download PDF

Info

Publication number
KR102424055B1
KR102424055B1 KR1020150174274A KR20150174274A KR102424055B1 KR 102424055 B1 KR102424055 B1 KR 102424055B1 KR 1020150174274 A KR1020150174274 A KR 1020150174274A KR 20150174274 A KR20150174274 A KR 20150174274A KR 102424055 B1 KR102424055 B1 KR 102424055B1
Authority
KR
South Korea
Prior art keywords
api
token
time
api token
generating
Prior art date
Application number
KR1020150174274A
Other languages
English (en)
Other versions
KR20170067527A (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 KR1020150174274A priority Critical patent/KR102424055B1/ko
Priority to US15/373,376 priority patent/US10387639B2/en
Publication of KR20170067527A publication Critical patent/KR20170067527A/ko
Application granted granted Critical
Publication of KR102424055B1 publication Critical patent/KR102424055B1/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
    • 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/44Program or device authentication
    • 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/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/166Implementing security features at a particular protocol layer at 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-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/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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • 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

Abstract

본 발명은 두 개의 어플리케이션 프로그램 인터페이스(Application Program Interface: API) 토큰을 이용한 API 인증 방법으로, 사용자 장치에 일회용 API 토큰 생성용 정보 및 일반 API 토큰을 제공하는 단계와, 상기 사용자 장치로부터의 API 호출됨에 따라, 상기 일회용 API 토큰 생성용 정보를 이용하여 생성된 일회용 API 토큰 및 상기 일반 API 토큰을 기반으로 인증한 결과에 따라 API 호출을 처리하는 단계를 포함한다.

Description

두 개의 API 토큰을 이용한 API 인증 장치 및 방법{Apparatus and Method for Providing API Authentication using Two API Tokens}
본 발명은 인터넷을 통해 제공되는 공개 API(Application Programing Interface)의 사용자 인증 방법에 관한 것으로, 보다 구체적으로는 기존 API 토큰 방식의 토큰 탈취 문제를 해결하기 위하여 두 개의 토큰을 활용한 API 인증 기술에 해당한다.
정보통신기술(Information and Communications Technologies: ICT) 생태계가 플랫폼의 시대로 재편되면서 플랫폼의 핵심 기능 중 하나인 공개 API(Application Programing Interface)는 ICT 기업에게 가장 중요한 자산이 되고 있다. 또한, 최근에 웹 기반 서비스들이 대중화되면서 웹서비스를 위한 API 설계에서 REST(Representational state transfer) 구조 스타일이 많이 적용되고 있으며 이러한 스타일의 API를 REST API라 부른다.
REST API에서는 특정 사용자와 관련된 리소스를 외부로 드러내는 경우가 많다. 예컨대, 개인 정보가 포함되거나 제한된 사용자만 수행하도록 의도한 처리 방법이 외부로 드러날 수 있다. 따라서, REST API의 민감한 리소스 보호를 위하여 API를 호출하는 사용자 또는 시스템에 대한 인증이 기본적으로 요구된다.
웹 기반 공개 API의 인증 방법으로는, API Key, API 토큰 및 TLS 등의 방법이 있다.
우선, API Key 방식은 가장 기초적인 방식으로 인증 방법이라기보다는 공개 API를 이용하는 프로그램(e.g., 모바일 앱)들을 식별하기 위한 방법이다. 따라서 프로그램 개발자는 API 제공자로부터 UUID나 고유의 문자열로 된 API Key를 발급받고 해당 프로그램이 API를 호출할 때마다 발급받은 API Key를 API 메시지안에 넣어서 호출하도록 한다. 이에 API 제공자는 API를 호출하는 프로그램들을 식별할 수 있고 각 프로그램별로 API 사용 정보를 관리할 수 있다. 하지만, 사용자는 달라도 프로그램이 동일하면 사용자들 간에 동일한 API Key 값을 공유하게 되므로 한번 API Key 값이 노출되면 전체 API가 뚫려 버리는 문제가 발생한다.
다음으로, API 토큰(Token) 방식은 API 제공자가 API 사용자를 user ID와 Password를 통해 인증하고 인증된 API 사용자를 대상으로 유효기간이 있는 토큰을 발급하는 API 인증 방식이다. API 사용자는 발급받은 API 토큰을 API를 호출할 때마다 API 메시지 안에 넣어 호출하게 된다. 이러한 API 토큰 방식은 사용자의 ID와 Password를 노출시키지 않고 일시적인 토큰을 사용하여 사용자 인증을 대행함으로써 사용자 정보를 보호한다는 장점이 있다. 하지만 API 토큰 방식 역시 API 호출 메시지 자체가 암호화되어 있지 않기 때문에 해당 토큰이 악의에 의해 탈취되는 경우에 심각한 문제를 초래할 수 있다.
마지막으로, 이러한 문제를 근본적으로 해결할 수 있는 방법은 API 호출 메시지 자체를 암호화하는 것으로 양방향 TLS 방식을 통해 공인인증서를 기반으로 API 사용자를 인증하고 API 메시지를 모두 암호화하여 전송하는 것이다. 이러한 인증 방식은 가장 높은 수준의 인증을 제공하지만 구현 방법이 복잡하고 시스템의 부하를 증가시키기 때문에 일반적인 서비스에는 사용되지 않는다.
클라우드 컴퓨팅 사업자나 NFV(Network Function Virtualization) 서비스 사업자 입장에서 실제 가상자원들의 할당과 관련된 API들은 민감하게 보호되어야 한다. 이러한 사업자들 입장에서 API 토큰 기반 인증방법에서 토큰 탈취는 바로 경제적 손실로 이어질 수 있다. 그렇다고 모든 사용자를 대상으로 공인인증서 기반의 API 인증 방식을 강요하는 것은 현실적으로 어려운 상황이다.
본 발명은 구현의 복잡도가 낮으면서도 토큰 탈취의 위험을 예방할 수 있는 API 인증 장치 및 방법을 제공한다.
본 발명은 기존 API 토큰과 함께 일회용 API 토큰을 API 메시지에 포함시켜 토큰 유출로 인한 보안 위험을 줄일 수 있는 API 인증 방법을 제공한다.
본 발명은 두 개의 어플리케이션 프로그램 인터페이스(Application Program Interface: API) 토큰을 이용한 API 인증 방법으로, 서비스 제공 장치로부터 일회용 API 토큰 생성용 정보 및 일반 API 토큰을 획득하는 단계와, 상기 일회용 API 토큰 생성용 정보를 기반으로 생성된 일회용 API 토큰과 일반 API 토큰을 이용하여 상기 서비스 제공 장치의 API를 호출하는 단계를 포함한다.
본 발명은 두 개의 어플리케이션 프로그램 인터페이스(Application Program Interface: API) 토큰을 이용한 API 인증 방법으로, 사용자 장치에 일회용 토큰 생성용 정보 및 일반 API 토큰을 제공하는 단계와, 상기 사용자 장치로부터 API가 호출됨에 따라, 상기 일회용 API 토큰 생성용 정보를 기반으로 생성된 일회용 API 토큰 및 일반 API 토큰을 이용하여 인증한 결과에 따라 API 호출을 처리하는 단계를 포함한다.
본 발명은 사용자 장치로, 서비스 제공 장치로부터 일회용 어플리케이션 프로그램 인터페이스(Application Program Interface: API) 토큰 생성용 정보 및 일반 API 토큰을 획득하는 인증 정보 획득부와, 상기 일회용 API 토큰 생성용 정보를 기반으로 생성된 일회용 API 토큰과 일반 API 토큰을 이용하여 상기 서비스 제공 장치의 API를 호출하는 API 호출부를 포함한다.
본 발명은 서비스 제공 장치로, 사용자 장치에 일회용 어플리케이션 프로그램 인터페이스(Application Program Interface: API) 토큰 생성용 정보 및 일반 API 토큰을 제공하는 인증 정보 제공부와, 상기 제공된 일반 API 토큰 및 일회용 API 토큰 생성용 정보를 사용자 장치에 매핑시켜 저장하는 인증 정보 DB와, 상기 사용자 장치로부터의 일반 API 토큰 및 제1 일회용 API 토큰을 포함하는 API 호출 메시지를 수신함에 따라 인증 처리부에 인증을 요청하고, 인증 처리부에 의한 인증 결과에 따라, API 호출을 처리하는 API 호출 처리부와, 상기 API 호출 처리부의 요청에 따라, 일반 API 토큰을 이용하여 사용자 장치를 식별하고, 상기 식별된 사용자 장치에 매핑되는 일회용 API 토큰 생성용 정보를 상기 인증 정보 DB로부터 추출하고, 상기 추출된 일회용 API 토큰 생성용 정보를 이용하여 제2 일회용 API 토큰을 생성하고, 상기 사용자 장치로부터 수신된 제1 일회용 API 토큰과 제2 일회용 API 토큰의 일치 여부에 따른 인증 결과를 API 호출 처리부에 출력하는 상기 인증 처리부를 포함한다.
본 발명은 API 토큰이 제3 자에게 탈취되어도 탈취된 토큰으로 제3 자가 API 인증 요청을 수행할 수 없어 안전한 API 인증 방법 및 시스템을 제공한다. 또한, TLS 기반의 보안 채널을 사전준비 동작에서만 이용하고 API 호출 동작에서는 사용하지 않으므로 TLS 기반의 API 인증 방법에 비해 시스템의 부하를 상대적으로 줄일 수 있다. 또한, TOTP 기반 일회용 API 토큰을 사용하지만 시스템 간에 시간 불일치 문제 및 이로 인한 시간 보정 작업의 부하가 없다.
도 1은 본 발명의 일 실시 예에 따른 API 서비스 시스템을 구성도이다.
도 2는 본 발명의 일 실시 예에 따른 일회용 API 토큰 생성을 설명하기 위한 도면이다.
도 3은 본 발명은 일 실시 예에 따른 두 개의 API 토큰을 이용한 API 인증 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시 예에 따라 단방향 보안 채널에서의 API 호출에 따른 인증을 위한 정보를 사전에 교환하는 과정을 설명하기 위한 신호 흐름도이다.
도 5는 본 발명의 일 실시 예에 따라 양방향 보안 채널에서의 API 호출에 따른 인증을 위한 정보를 사전에 교환하는 과정을 설명하기 위한 신호 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 사용자 장치에서의 API 호출 동작을 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시 예에 따른 서비스 제공 장치에서의 API 호출에 따른 사용자 장치 인증 동작을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 API 서비스 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 API 서비스 시스템은 하나 이상의 사용자 장치(110)가 서비스 제공 장치(120)에 접속하여 API 호출 요청할 수 있는 형태로 구성된다.
본 발명의 일 실시 예에 따라, 사용자 장치(110)는 상세하게는 인증 정보 획득부(111) 및 API 호출부(112)를 포함한다. 인증 정보 획득부(111)는 서비스 제공 장치로부터 일회용 API 토큰 생성용 정보 및 일반 API 토큰을 획득한다. 이때, 인증 정보 획득부(111)는 TLS(Transport Layer Security) 기반의 보안 채널이 단방향 보안 채널로 설정될 경우, 사용자 아이디와 패스워드를 이용하여 상기 서비스 제공 장치에 인증을 요청하고, TLS(Transport Layer Security) 기반의 보안 채널이 양방향 보안 채널로 설정될 경우, 사용자 아이디와 패스워드 없이 일반 API 토큰의 발급 및 일회용 API 토큰을 생성하기 위한 정보를 상기 서비스 제공 장치에 요청한다. 여기서, 일회용 API 토큰 생성용 정보는 비밀키, 암호화 해쉬 함수, 기준시 타임스탬프 및 카운팅 단위를 포함한다.
API 호출부(112)는 일회용 API 토큰 생성용 정보를 기반으로 생성된 일회용 API 토큰과 일반 API 토큰을 이용하여 서비스 제공 장치의 API를 호출한다. API 호출부(112)는 사용자 장치의 현재 타임스탬프, 상기 기준시 타임스탬프 및 상기 카운팅 단위를 이용하여 정수형 타임 카운터를 산출하고, 상기 산출된 정수형 타임 카운터 및 상기 비밀키를 상기 암호화 해쉬 함수에 입력한 해쉬값인 제1 일회용 API 토큰을 계산하고, 상기 일반 API 토큰, 제1 일회용 API 토큰 및 제1 일회용 API 토큰 생성시의 사용자 장치의 현재 타임스탬프를 포함하는 API 호출 메시지를 상기 서비스 제공 장치에 전송한다.
서비스 제공 장치(120)는 인증 정보 제공부(121), 인증 정보 DB(122), 인증 처리부(123) 및 API 호출 처리부(124)를 포함한다.
인증 정보 제공부(121)는 사용자 장치(110)에 일회용 API 토큰 생성용 정보 및 일반 API 토큰을 제공한다. 이때, 인증 정보 제공부(121)는 사용자 장치(110)와 TLS(Transport Layer Security) 기반의 보안 채널을 설정하여, 일반 API 토큰 및 일회용 API 토큰 생성용 정보를 암호화된 상태로 전송한다. 여기서, 일회용 API 토큰 생성용 정보는 비밀키, 암호화 해쉬 함수, 기준시 타임스탬프 및 카운팅 단위를 포함한다.
인증 정보 DB(122)는 발급된 일반 API 토큰 및 제공된 일회용 API 토큰 생성용 정보를 사용자 장치에 매핑시켜 저장하는데, 일 예로 하기의 <표 1>과 같은 테이블 형태로 저장할 수 있다.
사용자 장치 ID 발급된 일반 API 토큰 비밀키 암호화
해쉬 함수
기준시
타임스탬프
카운팅 단위
00 Token_00 Secret_key_00 Hash_00 Timestamp_00 Time_counter_00
01 Token_01 Secret_key_01 Hash_01 Timestamp_01 Time_counter_01
02 Token_02 Secret_key_02 Hash_02 Timestamp_02 Time_counter_02
03 Token_03 Secret_key_03 Hash_03 Timestamp_03 Time_counter_03
인증 처리부(123)는 API 호출 처리부(124)의 요청에 따라, 일반 API 토큰을 이용하여 사용자 장치(110)를 식별하고, 식별된 사용자 장치(110)에 매핑되는 일회용 API 토큰 생성용 정보를 인증 정보 DB(122)로부터 추출하고, 추출된 일회용 API 토큰 생성용 정보를 이용하여 제2 일회용 API 토큰을 생성하고, 사용자 장치(110)로부터 수신된 제1 일회용 API 토큰과 제2 일회용 API 토큰의 일치 여부에 따른 인증 결과를 API 호출 처리부(124)에 출력한다. 이때, 인증 처리부(123)는 API 호출 메시지에서 현재 타임스탬프를 추출하고, 현재 타임스탬프 및 일회용 API 토큰 생성용 정보에 포함되는 기준시 타임스탬프 및 카운팅 단위를 이용하여 정수형 타임 카운터를 산출하고, 산출된 정수형 타임 카운터 및 상기 일회용 API 토큰 생성용 정보에 포함되는 비밀키를 암호화 해쉬 함수에 입력한 해쉬값인 제2 일회용 API 토큰을 계산한다. 이에 대한 상세한 설명은 도 2를 참조하여 후술하기로 한다.
API 호출 처리부(124)는 사용자 장치(110)로부터의 일반 API 토큰 및 제1 일회용 API 토큰을 포함하는 API 호출 메시지를 수신함에 따라 인증 처리부(123)에 해당 API 호출 메시지에 대한 인증을 요청하고, 인증 처리부(123)에 의한 인증 결과에 따라, 사용자 장치(110)가 호출한 API를 처리한다. 일 실시 예에 따라, API 호출 메시지는 제1 일회용 API 토큰을 생성하기 위해 사용한 현재 타임스탬프를 더 포함한다.
도 2는 본 발명의 일 실시 예에 따른 일회용 API 토큰 생성을 설명하기 위한 도면이다.
도 2의 (a) 및 (b)를 참조하면, TOTP (Time-based One-Time Password) 알고리즘을 통해 생성되는 일회용 API 토큰값은 해쉬 메시지 인증 코드(hash-based message authentication code, HMAC)의 하나로 비밀키(secret key)와 정수형 타임카운터(time-counter, TC)를 입력값으로 갖는 암호화 해쉬함수(cryptographic hash function)의 해쉬값이다.
여기서, 정수형 타임카운터(TC) 값은 시스템의 현재 타임스탬프 값을 얻은 후에 기준시와 카운팅 단위를 정의함으로써 하기의 <수학식 1>과 같이 계산된다.
Figure 112015120187234-pat00001
여기서, 현재 타임스탬프(current timestamp, CT)는 통상적으로 TC를 계산할 시점에 해당 시스템의 타임스탬프 값을 의미한다.
일반적으로 TOTP와 같은 시간 동기 방식의 OTP(One Time Password) 시스템의 경우에 사용자 장치(110)와 서비스 제공 장치(120) 간의 시스템 시간의 불일치로 인해서 서비스 제공 장치(120)에서 추가적으로 시간 보정 작업을 수행하게 된다.
본 발명에서는 사용자 장치(110)와 서비스 제공 장치(120) 간에 시간 불일치 문제 및 이로 인한 시간 보정 작업의 부하를 없애기 위하여 사용자 장치(110)가 도 2의 (a)에 도시된 바와 같이 API 메시지에 일회용 API 토큰값을 만들 때 사용한 현재 타임스탬프(current timestamp, CT) 정보를 포함시켜 서비스 제공 장치(120)에게 보낸다.
그러면, 서비스 제공 장치(120)는 도 2의 (b)와 같이 사용자 장치(110)로부터 수신된 현재 타임스탬프(current timestamp, CT) 정보를 이용하여 정수형 타임 카운터(TC)를 산출하게 된다. 서비스 제공 장치(120)는 산출한 정수형 타임 카운터와 사용자 장치(110)에 해당하는 비밀키를 이용하여 제2 일회용 API 토큰을 생성하고 이를 사용자 장치(110)로 수신된 제1 일회용 API 토큰과 비교하여 일치 여부를 판단한다.
도 3은 본 발명의 일 실시 예에 따른 두 개의 API 토큰을 이용한 API 인증 방법을 설명하기 위한 흐름도이다.
도 3을 참고하면, 사용자 장치(110) 및 서비스 제공 장치(120)는 일회용 API 토큰 생성용 정보 및 일반 API 토큰을 송수신한다(S310). 이는 추후에 사용자 장치(110)가 호출하는 API의 인증을 위한 정보를 사전에 교환하는 과정으로, 이에 대한 상세한 설명은 도 4 및 도 5를 참조하여 후술하기로 한다.
S310에서 API 인증을 위한 정보를 사전에 교환한 후, API 호출이 필요한 경우에 사용자 장치(110)는 API 호출 메시지를 생성한다(S320). 이에 대한 상세한 설명은 도 6을 참조하여 후술하기로 한다.
그런 후, 사용자 장치(110)는 생성된 API 호출 메시지를 서비스 제공 장치(120)에 전송한다(S330).
서비스 제공 장치(120)는 API 호출 메시지를 수신함에 따라, 수신한 API 호출 메시지에 포함된 일반 API 토큰 및 제1 일회용 API 토큰을 이용하여 해당 API 호출 메시지를 인증한다(S340). 이에 대한 상세한 설명은 도 7을 참조하여 후술하기로 한다.
그런 후, 서비스 제공 장치(120)는 S340의 인증 결과에 따라, 호출 요청된 API를 응답한다(S350).
전술한 S320, S330, S340, S350은 사용자 장치(110)가 서비스 제공 장치(120)의 API를 호출할 일이 발생될 때마다 반복적으로 수행된다.
그러면, 도 4 및 도 5를 참조하여, API의 인증을 위한 정보를 사전에 교환하는 과정을 살펴보기로 한다. 그런데, 이때 사용자 장치(110)와 서비스 제공 장치(120)는 TLS(Transport Layer Security) 기반의 보안 채널을 설정하여, 일회용 API 토큰 생성용 정보 및 일반 API 토큰을 암호화된 상태로 송수신하는데, 보안 채널은 단방향 보안 채널 또는 양방향 보안 채널일 수 있다.
도 4는 본 발명의 일 실시 예에 따라 단방향 보안 채널에서의 API 호출에 따른 인증을 위한 정보를 사전에 교환하는 과정을 설명하기 위한 신호 흐름도이다.
도 4를 참조하면, 서비스 제공 장치(120)와 사용자 장치(110)는 TLS 기반의 보안 채널을 설정한다(S410). 여기서, TLS(Transport Layer Security) 기반의 보안 채널이 단방향 보안 채널로 설정되는데, 단방향 보안 채널이란 서비스 제공 장치(120) 만이 인증서(Certificate)를 통해 인증된 경우를 말한다. 이러한 TLS 기반의 단방향 보안 채널이 설정된 이후에 사용자 장치(110)와 서비스 제공 장치(120) 간에 모든 송수신 메시지들은 암호화되어 송수신된다.
이후, 사용자 장치(110)는 사용자 아이디(ID)와 패스워드(password)를 이용하여 서비스 제공 장치(120)에 인증을 요청(S420)하고, 서비스 제공 장치(120)는 인증된 사용자 장치(110)에 응답으로 일반 API 토큰을 포함하는 인증 확인 메시지를 전송한다(S425). 이때, 도면에는 도시되어 있지 않지만, 사용자 장치(110)가 인증되지 못한 경우, 사용자 장치(110)는 인증 요청을 재시도하고, 계속적으로 인증이 불가한 경우에는 인증 요청 동작을 종료한다.
인증된 사용자 장치(110)와 서비스 제공 장치(120)는 일회용 API 토큰을 생성하기 위해 필요한 정보를 공유하기 위한 핸드쉐이크(handshake) 절차를 수행한다(S430~S465). 여기서, 일회용 API 토큰 생성용 정보는 기준시 타임스탬프, 카운팅 단위, 비밀키 및 암호화 해쉬함수 정보를 포함한다.
즉, 사용자 장치(110)의 비밀키 요청(S430)에 대한 응답으로 서비스 제공 장치(120)는 고유한 바이트스트링(bytestring)을 생성하여 제공한다(S435). 사용자 장치(110)의 기준시 요청(S440)에 대한 응답으로 서비스 제공 장치(120)는 적절한 타임카운터를 생성하기 위해 기준이 되는 타임스탬프(timestamp) 정보를 결정하여 전달한다(S445).
사용자 장치(110)의 암호화 해쉬 함수 정보 요청(S450)에 대한 응답으로 서비스 제공 장치(120)는 암호화 해쉬 함수 정보를 제공한다(S455). 이때, 사용자 장치(110)가 전송하는 암호화 해쉬함수 정보 요청에는 사용자 장치(110)에서 지원하는 모든 암호화 해쉬함수의 종류에 대한 정보가 포함되고, 서비스 제공 장치(120)는 사용자 장치(110)에서 가용한 암호화 해쉬함수들 중에서 향후 일회용 API 토큰을 생성하기 위해 사용할 암호화 해쉬함수를 선택하여 암호화 해쉬 함수 정보 응답 메시지를 통해 사용자 장치(110)에게 알린다.
그리고, 사용자 장치(110)의 카운팅 단위 요청(S460)에 대한 응답으로 서비스 제공 장치(120)는 카운팅 단위 정보를 결정하여 전달한다(S465).
또한, 도면에는 도시되어 있지 않지만, 서비스 제공 장치(120)는 상기와 같이 사용자 장치(110)와 공유된 일회용 API 토큰 생성용 정보와 사용자 장치(110)에 발급한 API 토큰 정보를 해당하는 사용자 장치에 매핑시켜 데이터베이스(Database, DB)에 저장하여 관리한다.
전술한 바와 같은 일반 API 토큰의 발급과 핸드쉐이크 절차가 종료되면, 사용자 장치(110)와 서비스 제공 장치(120) 간에 TLS 기반의 단방향 보안 채널은 해지된다(S470). 즉, 이후 사용자 장치(110)와 서비스 제공 장치(120) 간에 교환되는 API 메시지는 모두 암호화되지 않은 평문으로 전달된다.
도 5는 본 발명의 일 실시 예에 따라 양방향 보안 채널에서의 API 호출에 따른 인증을 위한 정보를 사전에 교환하는 과정을 설명하기 위한 신호 흐름도이다.
도 5를 참조하면, 서비스 제공 장치(120)와 사용자 장치(110)는 TLS 기반의 보안 채널을 설정한다(S510). 여기서, TLS(Transport Layer Security) 기반의 보안 채널은 양방향 보안 채널로 설정되는데, 양방향 보안 채널이란 서비스 제공 장치(120)와 사용자 장치(110) 둘다 각자의 인증서(Certificate)를 통해 인증된 경우를 말한다. 이러한 TLS 기반의 양방향 보안 채널이 설정된 이후에 사용자 장치(110)와 서비스 제공 장치(120) 간에 모든 송수신 메시지들은 암호화되어 송수신된다.
이후, 사용자 장치(110)는 서비스 제공 장치(120)에게 일반 API 토큰의 발급을 요청(S520)하고, 서비스 제공 장치(120)는 응답으로 일반 API 토큰을 발급한다(S525). 이때, 도면에는 도시되어 있지 않지만, 사용자 장치(110)가 인증되지 못한 경우, 사용자 장치(110)는 인증을 재시도하고, 계속적으로 인증이 불가한 경우에는 인증 요청 동작을 종료한다.
인증된 사용자 장치(110)와 서비스 제공 장치(120)는 일회용 API 토큰을 생성하기 위해 필요한 정보를 공유하기 위한 핸드쉐이크(handshake) 절차를 수행한다(S530~S565). 그런데, S530~S565는 전술한 도 4의 S430~S465와 동일하므로, 여기서는 그 상세한 설명을 생략하기로 한다.
또한, 도면에는 도시되어 있지 않지만, 서비스 제공 장치(120)는 상기와 같이 사용자 장치(110)와 공유된 일회용 API 토큰 생성용 정보와 사용자 장치(110)에 발급한 API 토큰 정보를 해당하는 사용자 장치에 매핑시켜 데이터베이스에 저장하여 관리한다.
일반 API 토큰의 발급과 핸드쉐이크 절차가 종료되면, 사용자 장치(110)와 서비스 제공 장치(120) 간에 TLS 기반의 양방향 보안 채널은 해지된다(S570). 즉, 이후 사용자 장치(110)와 서비스 제공 장치(120) 간에 교환되는 API 메시지는 모두 암호화되지 않은 평문으로 전달된다.
도 6은 본 발명의 일 실시 예에 따른 사용자 장치에서의 API 호출 동작을 설명하기 위한 순서도이다.
도 6을 참조하면, 사용자 장치(110)는 먼저 일반 API 토큰의 유효 기간을 확인한다(S610).
S610의 확인 결과 일반 API 토큰의 유효기간이 만료되지 않아 유효한 경우, 사용자 장치(110)는 일회용 API 토큰 생성용 정보를 이용하여 제1 일회용 토큰을 생성한다(S630). 상세하게는, 사용자 장치(110)는 현재 타임스탬프, 기준시 타임스탬프 및 카운팅 단위를 이용하여 정수형 타임 카운터를 산출하고, 상기 산출된 정수형 타임 카운터와 비밀키를 암호화 해쉬 함수에 입력하여 나온 해쉬값인 제1 일회용 API 토큰을 계산한다.
그런 후, 사용자 장치(110)는 일반 API 토큰 및 제1 일회용 API 토큰을 포함하는 API 호출 메시지를 서비스 제공 장치에 전송한다(S640). 여기서, API 호출 메시지는 제1 일회용 API 토큰 생성시 사용된 현재 타임스탬프를 더 포함한다.
반면, S610의 확인 결과 일반 API 토큰의 유효기간이 만료되어 유효하지 않은 경우, 사용자 장치(110)는 새로운 일반 API 토큰을 발급받고 새로운 일회용 API 토큰 생성용 정보(e.g., 비밀키, 기준시, 카운팅 단위, 암호화 해쉬 함수)를 획득한다(S650). 상기 일반 API 토큰을 새로 발급받고 새로운 일회용 API 토큰 생성용 정보를 획득하기 위한 자세한 절차는 도 4 또는 도 5를 참조한다.
도 7은 본 발명의 일 실시 예에 따른 서비스 제공 장치에서의 API 호출에 따른 사용자 장치의 인증 동작을 설명하기 위한 순서도이다.
도 7을 참조하면, 서비스 제공 장치(120)는 API 호출 메시지를 수신함(S710)에 따라, API 호출 메시지에 포함된 일반 API 토큰을 확인한다(S720).
서비스 제공 장치(120)는 추출된 일반 API 토큰의 유효 기간이 만료되었는지를 확인한다(S730).
S730의 확인 결과 추출된 일반 API 토큰의 유효 기간이 만료되지 않아 유효할 경우, 서비스 제공 장치(120)는 일반 API 토큰을 통해 해당 API 호출 메시지를 송신한 사용자 장치(110)를 식별한다(S740).
서비스 제공 장치(120)는 식별된 사용자 장치(110)에 매핑된 일회용 API 토큰 생성용 정보를 DB에서 추출한다(S750). 여기서 서비스 제공 장치(120)가 DB로부터 추출하는 일회용 API 토큰 생성용 정보는 기준시 타임스탬프, 카운팅 단위, 비밀키 및 암호화 해쉬함수 정보를 포함한다.
서비스 제공 장치(120)는 수신한 API 호출 메시지에 포함된 현재 타임스탬프 정보를 추출(S760)한다.
서비스 제공 장치(120)는 상기 API 호출 메시지로부터 추출한 현재 타임스탬프와 DB로부터 추출한 기준시 타임스탬프 및 카운팅 단위를 이용하여 정수형 타임 카운터를 산출하고, 일회용 API 토큰 생성용 정보로부터 확인된 암호화 해쉬함수에 상기 산출된 정수형 타임 카운터와 상기 DB로부터 추출한 비밀키를 입력하여 나온 출력값인 제2 일회용 API 토큰을 계산한다(S770).
그런 후, 서비스 제공 장치(120)는 수신한 API 호출 메시지에 포함된 제1 일회용 API 토큰과 생성한 제2 일회용 API 토큰의 일치 여부를 확인한다(S780).
S780의 확인 결과 제1 일회용 API 토큰과 제2 일회용 API 토큰이 서로 일치할 경우, 서비스 제공 장치(120)는 수신한 API 호출 메시지를 처리한다(S790). 반면, S780의 확인 결과 제1 일회용 API 토큰과 제2 일회용 API 토큰이 서로 일치하지 않을 경우, 서비스 제공 장치(120)는 API 호출 메시지의 처리를 거부한다(S795).
한편, S730에서 일반 API 토큰이 유효 기간이 만료되었을 경우에도, 서비스 제공 장치(120)는 API 호출 메시지의 처리를 거부한다.

Claims (18)

  1. 사용자 장치가 서비스 제공 장치로부터 일회용 어플리케이션 프로그램 인터페이스(Application Program Interface: API) 토큰 생성용 정보 및 유효기간을 가지고 있는 일반 API 토큰을 획득하는 단계; 및,
    상기 사용자 장치가 일반 API 토큰의 유효 기간을 확인하는 단계를 포함하고,
    상기 일반 API 토큰이 만료된 것으로 확인되면,
    상기 서비스 제공 장치에서 새로운 일반 API 토큰 및 새로운 일회용 API 토큰 생성에 필요한 정보를 획득하고,
    상기 일반 API 토큰이 만료되지 않은 것으로 확인되면,
    상기 서비스 제공 장치에서 일회용 API 토큰 생성용 정보를 이용하여 제1 일회용 API 토큰을 생성하는 단계와,
    일반 API 토큰 및 생성된 제1 일회용 API 토큰을 포함하는 API 호출 메시지를 서비스 제공 장치에 전송하는 단계와,
    상기 서비스 제공 장치에서 상기 사용자 장치로부터 API가 호출됨에 따라, 상기 일회용 API 토큰 생성용 정보를 이용하여 생성된 일회용API 토큰 및 상기 일반 API 토큰을 기반으로 인증한 결과에 따라 API 호출을 처리하는 단계를 더 포함하고,
    상기 호출을 처리하는 단계는
    상기 사용자 장치로부터 제1 일회용 API 토큰 및 일반 API 토큰을 포함하는 API 호출 메시지를 수신하는 단계와,
    상기 일반 API 토큰을 이용하여 상기 사용자 장치를 식별하는 단계와,
    상기 식별된 사용자 장치에 매핑되는 일회용 API 토큰 생성용 정보를 추출하는 단계와,
    상기 추출된 일회용 API 토큰 생성용 정보를 이용하여 제2 일회용 API 토큰을 생성하는 단계와,
    상기 제1 일회용 API 토큰과 제2 일회용 API 토큰의 일치 여부를 확인하는 단계와,
    상기 일치 여부에 따라 API 호출을 처리하는 단계를 포함함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  2. 제1 항에 있어서, 상기 획득하는 단계는
    상기 서비스 제공 장치와 TLS(Transport Layer Security) 기반의 보안 채널을 설정하는 단계를 더 포함하여,
    상기 일회용 API 토큰 생성용 정보 및 일반 API 토큰을 암호화된 상태로 수신함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  3. 삭제
  4. 제1 항에 있어서, 상기 일회용 API 토큰 생성용 정보는
    비밀키, 암호화 해쉬 함수, 기준시 타임스탬프 및 카운팅 단위를 포함함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  5. 제4 항에 있어서, 상기 제1 일회용 API 토큰을 생성하는 단계는
    사용자 장치의 현재 타임스탬프, 상기 기준시 타임스탬프 및 상기 카운팅 단위를 이용하여 정수형 타임 카운터를 산출하는 단계와,
    상기 산출된 정수형 타임 카운터 및 상기 비밀키를 상기 암호화 해쉬 함수에 입력하여 얻은 해쉬 함수 결과값인 제1 일회용 API 토큰을 계산하는 단계를 포함함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  6. 제5 항에 있어서, 상기 API 호출 메시지는
    상기 제1 일회용 API 토큰 생성시 사용된 현재 타임스탬프를 더 포함함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  7. 삭제
  8. 제1 항에 있어서, 상기 획득하는 단계는
    상기 일회용 API 토큰 생성용 정보 및 상기 일반 API 토큰을 상기 사용자 장치에 매핑시켜 저장하는 단계를 더 포함함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제1 항에 있어서, 상기 호출을 처리하는 단계는
    상기 식별하는 단계에서 일반 API 토큰이 유효 기간이 만료되었을 경우, 상기 API 호출을 거부하는 단계를 포함함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  13. 제1 항에 있어서, 상기 API 호출 메시지는
    상기 제1 일회용 API 토큰 생성시 사용한 현재 타임스탬프를 더 포함하고,
    상기 제2 일회용 API 토큰을 생성하는 단계는
    상기 API 호출 메시지에서 현재 타임스탬프를 추출하는 단계와,
    상기 현재 타임스탬프와 상기 일회용 API 토큰 생성용 정보에 포함되는 기준시 타임스탬프 및 카운팅 단위를 이용하여 정수형 타임 카운터를 산출하는 단계와,
    상기 산출된 정수형 타임 카운터 및 상기 일회용 API 토큰 생성용 정보에서 얻은 비밀키를 상기 일회용 API 토큰 생성용 정보를 통해 식별된 암호화 해쉬 함수의 입력값으로 하여 얻은 해쉬 결과값인 제2 일회용 API 토큰을 계산하는 단계를 포함함을 특징으로 하는 두 개의 API 토큰을 이용한 API 인증 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020150174274A 2015-12-08 2015-12-08 두 개의 api 토큰을 이용한 api 인증 장치 및 방법 KR102424055B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150174274A KR102424055B1 (ko) 2015-12-08 2015-12-08 두 개의 api 토큰을 이용한 api 인증 장치 및 방법
US15/373,376 US10387639B2 (en) 2015-12-08 2016-12-08 Apparatus and method for API authentication using two API tokens

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150174274A KR102424055B1 (ko) 2015-12-08 2015-12-08 두 개의 api 토큰을 이용한 api 인증 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170067527A KR20170067527A (ko) 2017-06-16
KR102424055B1 true KR102424055B1 (ko) 2022-07-25

Family

ID=58798440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150174274A KR102424055B1 (ko) 2015-12-08 2015-12-08 두 개의 api 토큰을 이용한 api 인증 장치 및 방법

Country Status (2)

Country Link
US (1) US10387639B2 (ko)
KR (1) KR102424055B1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732004B1 (en) 2004-09-22 2014-05-20 Experian Information Solutions, Inc. Automated analysis of data to generate prospect notifications based on trigger events
US7711636B2 (en) 2006-03-10 2010-05-04 Experian Information Solutions, Inc. Systems and methods for analyzing data
US9690820B1 (en) 2007-09-27 2017-06-27 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US9990674B1 (en) 2007-12-14 2018-06-05 Consumerinfo.Com, Inc. Card registry systems and methods
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US8060424B2 (en) 2008-11-05 2011-11-15 Consumerinfo.Com, Inc. On-line method and system for monitoring and reporting unused available credit
US20100174638A1 (en) 2009-01-06 2010-07-08 ConsumerInfo.com Report existence monitoring
US9558519B1 (en) 2011-04-29 2017-01-31 Consumerinfo.Com, Inc. Exposing reporting cycle information
US9483606B1 (en) 2011-07-08 2016-11-01 Consumerinfo.Com, Inc. Lifescore
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US8738516B1 (en) 2011-10-13 2014-05-27 Consumerinfo.Com, Inc. Debt services candidate locator
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US9654541B1 (en) 2012-11-12 2017-05-16 Consumerinfo.Com, Inc. Aggregating user web browsing data
US9916621B1 (en) 2012-11-30 2018-03-13 Consumerinfo.Com, Inc. Presentation of credit score factors
US10102570B1 (en) 2013-03-14 2018-10-16 Consumerinfo.Com, Inc. Account vulnerability alerts
US9406085B1 (en) 2013-03-14 2016-08-02 Consumerinfo.Com, Inc. System and methods for credit dispute processing, resolution, and reporting
US10685398B1 (en) 2013-04-23 2020-06-16 Consumerinfo.Com, Inc. Presenting credit score information
US9477737B1 (en) 2013-11-20 2016-10-25 Consumerinfo.Com, Inc. Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules
US20170076106A1 (en) * 2015-09-16 2017-03-16 Qualcomm Incorporated Apparatus and method to securely control a remote operation
US11410230B1 (en) 2015-11-17 2022-08-09 Consumerinfo.Com, Inc. Realtime access and control of secure regulated data
US10757154B1 (en) 2015-11-24 2020-08-25 Experian Information Solutions, Inc. Real-time event-based notification system
DE102016213104A1 (de) * 2016-07-18 2018-01-18 bitagentur GmbH & Co. KG Token-basiertes Authentisieren mit signierter Nachricht
US10454945B1 (en) * 2017-04-24 2019-10-22 EMC IP Holding Company LLC Method, apparatus and computer program product for processing an electronic request to access a computerized resource
US11388005B2 (en) 2017-07-31 2022-07-12 Digiparts, Inc. Connected gateway server system for real-time vehicle control service
US10635792B2 (en) * 2017-08-31 2020-04-28 Sybase 365, Inc. Multi-factor authentication with URL validation
US10671749B2 (en) * 2018-09-05 2020-06-02 Consumerinfo.Com, Inc. Authenticated access and aggregation database platform
US11315179B1 (en) 2018-11-16 2022-04-26 Consumerinfo.Com, Inc. Methods and apparatuses for customized card recommendations
JP7245032B2 (ja) * 2018-11-21 2023-03-23 キヤノン株式会社 情報処理装置、システム、時刻修正方法、および、プログラム
US11520337B2 (en) 2018-12-11 2022-12-06 Autonomous Shelf, Inc. Mobile inventory transport unit and autonomous operation of mobile inventory transportation unit networks
US11048486B2 (en) * 2018-12-13 2021-06-29 Slack Technologies, Inc. Developer tools for a communication platform
US10853061B2 (en) 2018-12-13 2020-12-01 Slack Technologies, Inc. Developer tools for a communication platform
US10983766B2 (en) 2018-12-13 2021-04-20 SlackTechnologies, Inc. Developer tools for a communication platform
US10389708B1 (en) * 2019-01-03 2019-08-20 Capital One Services, Llc Secure authentication of a user associated with communication with a service representative
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
US11070371B2 (en) 2019-03-14 2021-07-20 International Business Machines Corporation Detection and protection of data in API calls
WO2020227381A1 (en) 2019-05-07 2020-11-12 Autonomous Shelf, Inc. Systems, methods, computing platforms, and storage media for directing and controlling an autonomous inventory management system
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US11932490B2 (en) 2020-03-09 2024-03-19 Prime Robotics, Inc. Autonomous mobile inventory transport unit
US11954517B2 (en) * 2021-05-04 2024-04-09 Visa International Service Association Computer-implemented method and system for providing dynamic endpoints for performing data transactions
CN113810197A (zh) * 2021-09-17 2021-12-17 上海市信产通信服务有限公司 基于OpenAPI的服务调用方法及其系统
KR102389714B1 (ko) 2021-09-30 2022-04-21 이인섭 인증토큰 에이피아이(api)와 공유 데이터베이스를 이용한 싱글사인온(sso) 인증 및 에이피아이(api) 서비스 시스템 및 방법
US20230308432A1 (en) 2022-03-23 2023-09-28 International Business Machines Corporation Authenticating and authorizing api calls with multiple factors
CN114760133B (zh) * 2022-04-15 2023-10-03 中国电信股份有限公司 RESTful接口认证方法、装置、系统、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281506A1 (en) * 2013-03-15 2014-09-18 Fortinet, Inc. Soft token system
US20150039444A1 (en) * 2013-07-31 2015-02-05 Ryan Hardin Application of dynamic tokens
WO2015023305A1 (en) 2013-08-14 2015-02-19 Facebook, Inc. Methods and systems for facilitating e-commerce payments

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775794B2 (en) * 2010-11-15 2014-07-08 Jpmorgan Chase Bank, N.A. System and method for end to end encryption
US20130268438A1 (en) * 2011-09-29 2013-10-10 Monetaris, Llc Virtual Currency Payment Network
US8800009B1 (en) * 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
DE102012103106A1 (de) * 2012-04-11 2013-10-17 Vodafone Holding Gmbh Verfahren zum Authentifizieren eines Nutzers an einem Dienst auf einem Diensteserver, Applikation und System
US9378356B2 (en) 2012-04-13 2016-06-28 Paypal, Inc. Two factor authentication using a one-time password
JP6006533B2 (ja) * 2012-05-25 2016-10-12 キヤノン株式会社 認可サーバー及びクライアント装置、サーバー連携システム、トークン管理方法
US9178880B1 (en) * 2012-06-30 2015-11-03 Emc Corporation Gateway mediated mobile device authentication
US20140101733A1 (en) * 2012-10-09 2014-04-10 Troy Jason Cain System and method for secure user authentication with a single action
US20140222885A1 (en) * 2013-02-04 2014-08-07 Uni-B Solutions Llc System for real-time data processing
EP2765529B1 (en) * 2013-02-12 2021-11-17 Canon Europa N.V. A method of authenticating a user of a peripheral apparatus, a peripheral apparatus, and a system for authenticating a user of a peripheral apparatus
CN105379177A (zh) * 2013-05-23 2016-03-02 英特托拉斯技术公司 安全授权系统和方法
KR101491018B1 (ko) 2013-07-10 2015-02-06 에스케이플래닛 주식회사 클라우드 오픈 api 기반 토큰을 이용한 클라우드 서비스 점검 시스템, 클라우드 서비스 점검 방법 및 이를 위한 장치
US10348721B2 (en) * 2013-10-30 2019-07-09 Hewlett Packard Enterprise Development Lp User authentication
KR102210748B1 (ko) * 2013-12-20 2021-02-02 삼성전자주식회사 홈 네트워크 시스템에서 홈 디바이스를 서버에 등록하는 장치 및 방법
KR101460916B1 (ko) 2013-12-23 2014-11-12 주식회사 이노스코리아 일회용 비밀 번호를 이용하는 사용자 인증 방법 및 그 장치
US9332008B2 (en) * 2014-03-28 2016-05-03 Netiq Corporation Time-based one time password (TOTP) for network authentication
JP6354407B2 (ja) * 2014-07-11 2018-07-11 株式会社リコー 認証システム、認証方法、プログラム及び通信システム
US9639692B1 (en) * 2014-08-28 2017-05-02 Symantec Corporation Dynamic on-device passcodes to lock lost or stolen devices
US9805182B1 (en) * 2014-09-26 2017-10-31 EMC IP Holding Company LLC Authentication using a client device and a mobile device
US9641503B2 (en) * 2014-10-03 2017-05-02 Amazon Technologies, Inc. Using credentials stored in different directories to access a common endpoint
JP5956623B1 (ja) * 2015-01-30 2016-07-27 株式会社Pfu システム
US9135412B1 (en) 2015-02-24 2015-09-15 Wowza Media Systems, LLC Token-based security for remote resources
US10021089B2 (en) * 2015-04-09 2018-07-10 Salesforce.Com, Inc. Customized user validation
US10484385B2 (en) * 2015-06-04 2019-11-19 Sap Se Accessing an application through application clients and web browsers
US9906558B2 (en) * 2015-06-24 2018-02-27 International Business Machines Corporation User managed access scope specific obligation policy for authorization
US9819665B1 (en) * 2015-06-26 2017-11-14 EMC IP Holding Company LLC Synchronization of access tokens for session continuity across multiple devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281506A1 (en) * 2013-03-15 2014-09-18 Fortinet, Inc. Soft token system
US20150039444A1 (en) * 2013-07-31 2015-02-05 Ryan Hardin Application of dynamic tokens
WO2015023305A1 (en) 2013-08-14 2015-02-19 Facebook, Inc. Methods and systems for facilitating e-commerce payments

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Fritzendugan, Is it worth generating a new token after every request?, stackoverflow.com (2014.05.)*

Also Published As

Publication number Publication date
KR20170067527A (ko) 2017-06-16
US20170161486A1 (en) 2017-06-08
US10387639B2 (en) 2019-08-20

Similar Documents

Publication Publication Date Title
KR102424055B1 (ko) 두 개의 api 토큰을 이용한 api 인증 장치 및 방법
KR102018971B1 (ko) 네트워크 액세스 디바이스가 무선 네트워크 액세스 포인트를 액세스하게 하기 위한 방법, 네트워크 액세스 디바이스, 애플리케이션 서버 및 비휘발성 컴퓨터 판독가능 저장 매체
US9954687B2 (en) Establishing a wireless connection to a wireless access point
US20190173873A1 (en) Identity verification document request handling utilizing a user certificate system and user identity document repository
US8769289B1 (en) Authentication of a user accessing a protected resource using multi-channel protocol
KR100721522B1 (ko) 위치토큰을 이용한 위치기반 서비스 제공 방법
JP2019508763A (ja) ローカルデバイス認証
WO2015101310A1 (zh) 一种业务处理方法、装置及系统
US20180310174A1 (en) Anonymous authentication system
KR101686167B1 (ko) 사물 인터넷 기기의 인증서 배포 장치 및 방법
US20200412554A1 (en) Id as service based on blockchain
CN102970299A (zh) 文件安全保护系统及其方法
TWI632798B (zh) 伺服器、行動終端機、網路實名認證系統及方法
WO2017097101A1 (zh) 用于账号登录的方法和装置
US8397281B2 (en) Service assisted secret provisioning
CN112187466B (zh) 一种身份管理方法、装置、设备及存储介质
CN113674456B (zh) 开锁方法、装置、电子设备和存储介质
JP2017097542A (ja) 認証制御プログラム、認証制御装置、及び認証制御方法
KR101659847B1 (ko) 모바일 단말을 이용한 2채널 사용자 인증 방법
US20220394039A1 (en) Seamlessly securing access to application programming interface gateways
KR101348079B1 (ko) 휴대단말을 이용한 전자서명 시스템
CN112446050B (zh) 应用于区块链系统的业务数据处理方法及装置
KR20130039745A (ko) 인증 연동 시스템 및 방법
KR20090054774A (ko) 분산 네트워크 환경에서의 통합 보안 관리 방법
CN104901967A (zh) 信任设备的注册方法

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