KR102305368B1 - OAuth-based Secure Access Control System and Method for IoT Environment - Google Patents

OAuth-based Secure Access Control System and Method for IoT Environment Download PDF

Info

Publication number
KR102305368B1
KR102305368B1 KR1020190173811A KR20190173811A KR102305368B1 KR 102305368 B1 KR102305368 B1 KR 102305368B1 KR 1020190173811 A KR1020190173811 A KR 1020190173811A KR 20190173811 A KR20190173811 A KR 20190173811A KR 102305368 B1 KR102305368 B1 KR 102305368B1
Authority
KR
South Korea
Prior art keywords
client
certificate
user terminal
user
authorization server
Prior art date
Application number
KR1020190173811A
Other languages
Korean (ko)
Other versions
KR20210081643A (en
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 KR1020190173811A priority Critical patent/KR102305368B1/en
Publication of KR20210081643A publication Critical patent/KR20210081643A/en
Application granted granted Critical
Publication of KR102305368B1 publication Critical patent/KR102305368B1/en

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/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/2814
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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/0825Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템 및 방법을 개시한다. 본 발명의 일 측면에 따른 IoT 서비스를 제공하는 클라이언트; 상기 클라이언트에 접근하여 IoT 서비스를 제공받으려는 사용자 단말; 상기 사용자 단말의 정보가 저장된 리소스 서버; 및 상기 클라이언트를 등록하고, 토큰을 발급하는 인가 서버;를 포함하는 IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템에서의 접근제어 방법은, 상기 사용자 단말이, 클라이언트로부터 IoT 서비스를 제공받기 위해 클라이언트를 통해 인가 서버에 리다이렉트하여 클라이언트를 인증하는 클라이언트 인증 단계; 및 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계; 및 인가 서버가, 클라이언트에게 액세스 토큰을 발급하는 토큰 발급 단계;를 포함한다. The present invention discloses an OAuth-based secure access control system and method for an IoT environment. A client providing an IoT service according to an aspect of the present invention; a user terminal accessing the client to receive an IoT service; a resource server in which information of the user terminal is stored; and an authorization server that registers the client and issues a token; an access control method in an OAuth-based secure access control system for an IoT environment, including: a client authentication step of redirecting to an authorization server through the authentication server to authenticate the client; and a user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication; and a token issuing step in which the authorization server issues an access token to the client.

Description

IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템 및 방법{OAuth-based Secure Access Control System and Method for IoT Environment}OAuth-based Secure Access Control System and Method for IoT Environment

본 발명은 IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템 및 방법에 관한 것으로, 더욱 상세하게는 안전한 IoT(Internet Of Things) 환경을 위해 재전송 공격과 CSRF(Cross Site Request Forgery) 공격에 대해 안전한 OAuth(Open Authorization) 기반의 접근제어 시스템 및 방법에 관한 것이다. The present invention relates to an OAuth-based secure access control system and method for an IoT environment, and more particularly, to a secure Internet of Things (IoT) environment, secure OAuth ( Open Authorization)-based access control system and method.

최근 IoT 환경은 4차 산업혁명의 중심이 되면서 지속적으로 발전하고 있다. 이로 인해 다양한 IoT 서비스들이 출시되어 우리의 생활을 더욱 편하게 만들어주고 있다. IoT와 더불어 4차 산업혁명의 핵심이 되는 기술들로 Cloud, Big Data, Mobile 기술들이 관심을 받고 연구되고 있으며, 각 기술들을 융합한 스마트홈, 헬스케어, 스마트 팩토리나 스마트시티 서비스가 결과물로 주목받고 있다. 이 서비스들은 다양한 센서 디바이스들이 인터넷에 연결되며 센서 디바이스와 통신 기술, 인터페이스 등이 유기적으로 연결되어 동작한다. 각국의 주요 제조업체들은 여러 종류의 IoT 디바이스를 출시하고 있으며, 이런 다양한 IoT 디바이스가 원활하게 통신할 수 있도록 oneM2M, IETF 등에서 IoT 통신 기술에 대한 표준화 작업을 진행하고 있다. Recently, the IoT environment continues to develop as it becomes the center of the 4th industrial revolution. As a result, various IoT services have been released, making our lives easier. As the core technologies of the 4th industrial revolution along with IoT, cloud, big data, and mobile technologies are receiving attention and being studied, and smart home, healthcare, smart factory, and smart city services that converge each technology are paying attention as results. are receiving For these services, various sensor devices are connected to the Internet, and the sensor device, communication technology, and interface are organically connected to operate. Major manufacturers in each country are releasing various types of IoT devices, and oneM2M and IETF are working on standardization of IoT communication technology so that these various IoT devices can communicate smoothly.

한편, IoT 환경에서는 다양한 디바이스가 여러 통신 기술로 통신하는 만큼 보안에 대해 고려되어야 한다. 이기종의 다양한 디바이스가 통신을 할 때 각 디바이스들의 보안 취약점들이 모여서 새로운 보안 취약점이 발생할 수 있으며, 센서 디바이스가 수집한 데이터가 처리되는 과정에서 프라이버시 관련 문제 또한 발생할 수 있다. 특히, 프라이버시 관련 문제는 IoT에서 매우 중요하다. 스마트홈 서비스를 예로 들면 가정에서 발생하는 스마트홈 서비스 데이터는 스마트홈 사용자의 일상생활과 가장 밀접하게 관련 있는 민감한 데이터이다. 전력 사용량 및 주기와 가스밸브 잠금상태, 헬스케어 기기나 가정 내에 사용자가 있는지에 대한 여부도 확인할 수 있기 때문에 이 데이터들이 노출된다면 사용자는 금전적인 피해를 입을 수 있으며, 가택 침입에 의해 상해까지 발생할 가능성이 존재할 수 있다. 이처럼, 최근 많은 IoT 서비스들이 등장함에 따라, 사용자들의 인증과 프라이버시에 대한 보호는 필수적이며, 이에 대한 구체적인 연구가 필요한 실정이다. On the other hand, in the IoT environment, security should be considered as various devices communicate with various communication technologies. When a variety of heterogeneous devices communicate, the security vulnerabilities of each device may gather to create new security vulnerabilities, and privacy-related issues may also occur in the process of processing the data collected by the sensor device. In particular, privacy-related issues are very important in IoT. Taking smart home service as an example, smart home service data generated at home is sensitive data most closely related to the daily life of smart home users. Because it is also possible to check the power consumption and cycle, the gas valve lock status, and whether there is a user in the health care device or at home, if this data is exposed, the user can suffer financial damage, and there is a possibility of injury by breaking into the house. can exist. As such, as many IoT services have recently appeared, authentication of users and protection of privacy are essential, and a detailed study on this is required.

한국공개특허 제10-2017-0096815호(2017.08.25 공개)Korean Patent Publication No. 10-2017-0096815 (published on Aug. 25, 2017)

본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로서, IoT 서비스를 제공하는 클라이언트가 사용자의 인증을 위해 사용자의 정보가 등록된 다른 서비스의 리소스 서버와 인가 서버에 접근하여 외부의 사용자 인증 정보 리소스를 통해 접근권한을 획득하는 IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템 및 방법을 제공하는데 그 목적이 있다. The present invention has been proposed to solve the above problems, in which a client providing an IoT service accesses a resource server and an authorization server of another service in which the user's information is registered for user authentication, thereby accessing an external user authentication information resource. The purpose is to provide an OAuth-based secure access control system and method for the IoT environment that acquires access rights through

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 일 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention may be understood by the following description, and will be more clearly understood by an embodiment of the present invention. Further, it will be readily apparent that the objects and advantages of the present invention can be realized by the means and combinations thereof indicated in the claims.

상기와 같은 목적을 달성하기 위한 본 발명의 일 측면에 따른 IoT 서비스를 제공하는 클라이언트; 상기 클라이언트에 접근하여 IoT 서비스를 제공받으려는 사용자 단말; 상기 사용자 단말의 정보가 저장된 리소스 서버; 및 상기 클라이언트를 등록하고, 토큰을 발급하는 인가 서버;를 포함하는 IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템에서의 접근제어 방법은, 상기 사용자 단말이, 클라이언트로부터 IoT 서비스를 제공받기 위해 클라이언트를 통해 인가 서버에 리다이렉트하여 클라이언트를 인증하는 클라이언트 인증 단계; 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계; 및 인가 서버가, 클라이언트에게 액세스 토큰을 발급하는 토큰 발급 단계;를 포함한다. A client that provides an IoT service according to an aspect of the present invention for achieving the above object; a user terminal accessing the client to receive an IoT service; a resource server in which information of the user terminal is stored; and an authorization server that registers the client and issues a token; an access control method in an OAuth-based secure access control system for an IoT environment, including: a client authentication step of redirecting to an authorization server through the authentication server to authenticate the client; a user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication; and a token issuing step in which the authorization server issues an access token to the client.

상기 클라이언트 인증 단계는, 사용자 단말이, 클라이언트에게 서비스 요청 메시지를 전송하는 단계; 클라이언트가, 사용자 단말의 공개키를 이용해 암호화한 후 정보를 전송하는 단계; 사용자 단말이, 리다이렉트 URI를 통해 인가 서버에 접근하는 단계; 인가 서버가, 사용자 단말이 액세스하려는 클라이언트를 확인하여 사용자 인증을 수행하는 단계; 및 인가 서버가 인증 코드와 클라이언트의 리다이렉트 URI를 사용자 단말로 전송하는 단계;를 포함하는 것을 특징으로 한다. The client authentication step may include, by the user terminal, transmitting a service request message to the client; transmitting, by the client, information after encryption using the public key of the user terminal; accessing, by the user terminal, an authorization server through a redirect URI; performing, by the authorization server, user authentication by identifying a client to be accessed by the user terminal; and transmitting, by the authorization server, the authentication code and the redirect URI of the client to the user terminal.

상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는, ECQV 묵시적 인증서를 통해 검증하여 사용자 인증을 수행하는 것을 특징으로 한다. The user authentication step in which the user terminal receives a certificate from the client and performs user authentication by verifying the certificate through an authorization server is characterized in that the user authentication is performed by verifying through an ECQV implicit certificate.

상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는, 사용자 단말이 임의의 정수를 선택하고, 타원곡선에서 사용자 단말이 생성한 ECQV 묵시적 인증서를 위한 임의의 값을 계산하고, 사용자 단말이 클라이언트의 리다이렉트 URI를 통해 클라이언트에 접근하고, 사용자 단말이 생성한 ECQV 묵시적 인증서를 위한 임의의 값을 전송하여 ECQV 묵시적 인증서 발급을 요청하는 단계를 포함하는 것을 특징으로 한다. In the user authentication step, in which the user terminal receives a certificate from the client and performs user authentication by verifying the certificate through an authorization server, the user terminal selects an arbitrary integer and ECQV generated by the user terminal from the elliptic curve is implicit Calculating a random value for the certificate, the user terminal accesses the client through the redirect URI of the client, and sending a random value for the ECQV implicit certificate generated by the user terminal to request the issuance of the ECQV implicit certificate characterized in that

상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는, 클라이언트가 임의의 정수를 선택하고, 사용자 단말이 생성한 ECQV 묵시적 인증서를 위한 임의의 값과 클라이언트의 개인키와 클라이언트 인증 단계에서 생성된 임의의 수를 이용하여 ECQV 묵시적 인증서 정보 및 ECQV 묵시적 서명 정보를 생성하는 것을 특징으로 한다. In the user authentication step, in which the user terminal is issued a certificate to the client, and performs user authentication by verifying the certificate through an authorization server, the client selects an arbitrary integer, It is characterized in that ECQV implicit certificate information and ECQV implicit signature information are generated using the value of , the private key of the client, and a random number generated in the client authentication step.

상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는, 사용자 단말이, 수신된 ECQV 묵시적 인증서와 서명을 이용해 현재 세션에 대한 개인키와 공개키를 생성하고, 묵시적 인증서를 인증 서버로 전송하는 것을 특징으로 한다. In the user authentication step, in which the user terminal is issued a certificate to the client, and performs user authentication by verifying the certificate through an authorization server, the user terminal uses the received ECQV implicit certificate and signature to obtain a private key for the current session and It is characterized by generating a public key and transmitting an implicit certificate to the authentication server.

상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는, 인가 서버가, ECQV 묵시적 서명 및 현재 세션에 대한 공개키에 대한 사용자 값과 식별자 정보를 기반으로 사용자의 공개키를 계산하는 것을 특징으로 한다. In the user authentication step, in which the user terminal is issued a certificate to the client, and performs user authentication by verifying the certificate through the authorization server, the authorization server performs the ECQV implicit signature and the user value and identifier for the public key for the current session It is characterized in that the public key of the user is calculated based on the information.

상기와 같은 목적을 달성하기 위한 본 발명의 다른 측면에 따른 IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템은, IoT 서비스를 제공하는 클라이언트; 상기 클라이언트에 접근하여 IoT 서비스를 제공받으려는 사용자 단말; 상기 사용자 단말의 정보가 저장된 리소스 서버; 및 상기 클라이언트를 등록하고, 토큰을 발급하는 인가 서버;를 포함하고, 상기 사용자 단말은, 클라이언트로부터 IoT 서비스를 제공받기 위해 클라이언트를 통해 인가 서버에 리다이렉트하여 클라이언트를 인증하는 것을 특징으로 한다. An OAuth-based secure access control system for an IoT environment according to another aspect of the present invention for achieving the above object includes: a client providing an IoT service; a user terminal accessing the client to receive an IoT service; a resource server in which information of the user terminal is stored; and an authorization server that registers the client and issues a token, wherein the user terminal redirects the client to the authorization server through the client to authenticate the client in order to receive the IoT service from the client.

상기 사용자 단말은, 클라이언트에게 ECQV 인증서를 발급받고, 상기 인증서를 인가 서버에 전송하여 사용자 인증을 요청하는 것을 특징으로 한다. The user terminal is characterized in that it receives an ECQV certificate from the client, and transmits the certificate to an authorization server to request user authentication.

상기 인가 서버는, 상기 ECQV 인증서를 검증하고, 사용자 단말의 리소스에 접근할 수 있도록 클라이언트에게 액세스 토큰을 발급하는 것을 특징으로 한다. The authorization server verifies the ECQV certificate, and issues an access token to the client to access the resource of the user terminal.

본 발명의 일 측면에 따르면, 사용자의 정보를 IoT 서비스를 제공하는 클라이언트에 남기지 않고 인증을 수행할 수 있기 때문에, IoT 환경에서 사용자에 대한 프라이버시를 보호할 수 있는 효과가 있다.According to one aspect of the present invention, since authentication can be performed without leaving user information in a client providing an IoT service, there is an effect of protecting privacy for a user in an IoT environment.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. .

본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용들과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 OAuth 시나리오에서 발생할 수 있는 재전송 공격에 대한 일 예,
도 2는 OAuth 시나리오에서 발생할 수 있는 CSRF 공격에 대한 일 예,
도 3은 본 발명의 일 실시예에 따른 OAuth 기반의 안전한 접근제어 시스템에서의 클라이언트 인증 단계 시나리오에 대한 일 예,
도 4는 본 발명의 일 실시예에 따른 OAuth 기반의 안전한 접근제어 시스템에서의 사용자 인증 및 토큰 발생 단계 시나리오에 대한 일 예이다.
The following drawings attached to this specification illustrate preferred embodiments of the present invention, and serve to further understand the technical spirit of the present invention together with specific contents for carrying out the invention, so the present invention is in such drawings It should not be construed as being limited only to the stated matters.
1 is an example of a retransmission attack that may occur in an OAuth scenario;
2 is an example of a CSRF attack that may occur in an OAuth scenario;
3 is an example of a client authentication step scenario in an OAuth-based secure access control system according to an embodiment of the present invention;
4 is an example of a scenario of user authentication and token generation in the OAuth-based secure access control system according to an embodiment of the present invention.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above-described objects, features and advantages will become more apparent through the following detailed description in relation to the accompanying drawings, and accordingly, those of ordinary skill in the art to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in the description of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 “…부” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Throughout the specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, the “… The term “unit” means a unit that processes at least one function or operation, which may be implemented as hardware or software or a combination of hardware and software.

OAuth(Open Authorization)는 인터넷에 연결된 IoT 서비스를 제공하는 클라이언트에게 사용자의 정보를 공유하지 않고 외부의 리소스 서버에 저장된 사용자의 자원에 접근할 수 있도록 권한을 인가할 수 있는 내용이 정의된 표준이다. OAuth를 활용하면 클라이언트는 서비스를 제공하기 위해 외부의 인가 서버를 통해 사용자를 인증한 후, 클라이언트에게 리소스 서버로 접근 가능한 권한을 부여해준다. 이를 통해, 클라이언트는 별도의 인증 과정이 필요없게 되어 다양한 서비스를 통합하여 사용할 수 있게 된다. OAuth는 2010년에 IETF OAuth 워킹그룹에 의해 OAuth 1.0 프로토콜 표준안 RFC5849로 처음 발표되었다. 최근에는 OAuth 2.0 프레임워크에 대한 표준안 RFC6749가 발표되었으며, 각 통신 객체 간의 통신 방법에 따른 표준화 작업이 계속 진행중에 있다. OAuth (Open Authorization) is a standard that defines the content that can authorize the Internet-connected IoT service client to access the user's resources stored in an external resource server without sharing the user's information. When OAuth is used, the client authenticates the user through an external authorization server to provide the service, and then grants the client the right to access the resource server. Through this, the client does not need a separate authentication process, so that various services can be integrated and used. OAuth was first published in 2010 by the IETF OAuth Working Group as the OAuth 1.0 protocol standard RFC5849. Recently, RFC6749, a standard for the OAuth 2.0 framework, has been published, and standardization work according to the communication method between each communication object is in progress.

OAuth는 4개의 개체들 사이에서 동작이 이루어진다. OAuth 개체에는 사용자(User, Resource owner), 리소스 서버(Resource server, Service provider), 클라이언트(Client, Consumer), 인가 서버(Authorization server)가 있다. 사용자는 리소스 서버에 계정을 가지고 있는 서비스의 사용자로, 본 실시예를 설명함에 있어서 사용자라 함은 정보의 송수신이 가능한 사용자가 소지한 휴대용 단말일 수 있다. 즉, 본 실시예를 설명함에 있어서, 사용자는 IoT 서비스를 제공하는 클라이언트에 네트워크를 통해 접속하여 서비스를 제공받을 수 있는 사용자가 소지한 휴대폰 등과 같은 휴대용 단말일 수 있다. 예를 들면, 구글이나 페이스복, 네이버 등과 같이 OAuth를 제공하는 서비스에 가입되어 있는 사용자를 의미할 수 있다. 리소스 서버는 위의 예시에서 구글, 페이스북 등의 사용자 리소스를 관리하는 서버일 수 있다. 클라이언트는 OAuth를 사용하여 사용자 대신 리소스 서버에 접근하려 하는 클라이언트 서비스나 어플리케이션일 수 있으며, 인가 서버는 사용자에 대해 인증하고 클라이언트에게 액세스 토큰을 발급하는 서버일 수 있다. OAuth operates between four entities. The OAuth object includes a user (User, Resource owner), a resource server (Resource server, Service provider), a client (Client, Consumer), and an authorization server (Authorization server). A user is a user of a service having an account in the resource server. In the description of the present embodiment, the user may be a portable terminal possessed by a user capable of transmitting and receiving information. That is, in the description of the present embodiment, the user may be a portable terminal such as a mobile phone possessed by the user that can receive the service by connecting to the client providing the IoT service through a network. For example, it may mean a user who is subscribed to a service that provides OAuth, such as Google, Facebok, Naver, and the like. The resource server may be a server that manages user resources such as Google and Facebook in the above example. A client can be a client service or application that uses OAuth to access a resource server on behalf of a user, and an authorization server can be a server that authenticates the user and issues an access token to the client.

한편, 사용자 인증을 수행하기 위한 방법으로 Elliptic Curve Qu-Vanstone(ECQV) 묵시적 인증서(Implicit certificate)가 있을 수 있다. 일반적인 인증서에는 식별 정보가 포함되며 특정 엔티티의 ID를 공개키에 바인딩하여 생성된다. 인증서는 신원 요소, 공개키 및 데이터를 기반으로 생성된 서명으로 구성된 인증 기관(Certificate Authority : 이하 CA)에서 생성한다. 이후 CA의 공개키를 사용하여 서명을 확인함으로써 인증서의 유효성을 검사할 수 있다. 이러한 유형의 인증서는 명시적으로 인증서의 서명을 확인하기 때문에 명시적 인증서라 한다. 반면, 묵시적 인증서는 CA의 공개키를 기반으로 명시적으로 유효성이 검사되지 않은 공개키 인증서의 변형이다. CA의 공개 키는 묵시적 인증서에서 엔티티의 공개키를 재구성하는 데 사용된다. 묵시적 인증서로 인코딩 된 엔티티의 공개키가 CA의 공개키에서 재구성될 수 있으면 인증서는 묵시적 인증서라 한다. ECQV는 타원 곡선을 사용하고 공개키 인증서보다 키의 크기가 작고 검증 속도가 빠른 묵시적 인증서이다. 따라서, IoT 환경과 같은 리소스가 제한된 환경에 적합할 수 있다. Meanwhile, as a method for performing user authentication, there may be an Elliptic Curve Qu-Vanstone (ECQV) implicit certificate. A general certificate contains identification information and is created by binding the ID of a specific entity to a public key. A certificate is generated by a Certificate Authority (CA) consisting of a signature generated based on an identity element, a public key, and data. After that, the validity of the certificate can be verified by verifying the signature using the public key of the CA. This type of certificate is called an explicit certificate because it explicitly verifies the signature of the certificate. On the other hand, an implicit certificate is a variant of a public key certificate that is not explicitly validated based on the CA's public key. The CA's public key is used to reconstruct the entity's public key from the implicit certificate. A certificate is said to be an implicit certificate if the entity's public key encoded with the implicit certificate can be reconstructed from the CA's public key. ECQV is an implicit certificate that uses an elliptic curve and has a smaller key size and faster verification speed than public key certificates. Therefore, it may be suitable for resource-limited environments such as IoT environments.

최근 많은 IoT 서비스들이 등장하고 있지만, 사용자들의 인증과 프라이버시에 대한 보호는 필수적이다. IoT-OAS 구조는 IoT 환경에서 OAuth를 적용하여 인가 서버에서 공급한 토큰을 기반으로 사용자 및 서비스에 따라 여러 접근제어 정책들을 제공한다. 하지만, OAuth 자체에 대한 보안 취약점이 존재한다. OAuth 서비스 상에서 보안을 취약하게 하는 공격 방법에는 재전송 공격 및 CSRF(Cross Site Request Forgery) 공격이 있을 수 있다. Although many IoT services are emerging recently, user authentication and protection of privacy are essential. The IoT-OAS structure provides various access control policies according to users and services based on the token supplied by the authorization server by applying OAuth in the IoT environment. However, there is a security vulnerability in OAuth itself. Attack methods that weaken security on the OAuth service may include a retransmission attack and a Cross Site Request Forgery (CSRF) attack.

도 1은 OAuth 시나리오에서 발생할 수 있는 재전송 공격에 대한 일 예, 도 2는 OAuth 시나리오에서 발생할 수 있는 CSRF 공격에 대한 일 예이다.FIG. 1 is an example of a retransmission attack that may occur in an OAuth scenario, and FIG. 2 is an example of a CSRF attack that may occur in an OAuth scenario.

도 1을 도시된 바와 같이, 재전송 공격은 외부의 공격자가 사용자와 클라이언트에 대한 서비스 요청 메시지와 인증 코드를 전송하는 단계에서 탈취한 요청 메시지와 인증 코드를 통해 인가 서버에게 재전송하여 접근제어 토큰을 발급받을 수 있는 공격이다. 이를 방지하기 위해, 사용자와 인가 서버가 인증을 수행할 때 발급한 인증 코드에 대한 유효성을 HMAC(Hash-based Message Authentication) 등의 메시지 검증 기법을 이용해 확인해야 한다.1, in the retransmission attack, an access control token is issued by retransmitting the request message and authentication code to the authorization server through the request message and authentication code stolen by an external attacker in the step of transmitting the service request message and authentication code to the user and client. This is an attack you can take. To prevent this, the validity of the authentication code issued when the user and the authorization server perform authentication must be checked using a message verification technique such as HMAC (Hash-based Message Authentication).

도 2에 도시된 바와 같이, CSRF 공격은 외부의 공격자가 이미 로그인된 사용자가 서비스를 이용하는 도중에 공격자의 위조된 Request를 실행시키도록 유도하는 공격이다. 공격자는 특정 클라이언트의 Request 메시지를 위조하여, 피싱 등을 이용해 하이퍼링크를 전송하여 사용자가 실행하도록 한다. 이를 클릭한 사용자는 클라이언트에게 위조된 Request 메시지를 보내게 되고, 이를 실행하여 공격자에게 로그인된 사용자의 리소스를 제공하게 된다.As shown in Fig. 2, the CSRF attack is an attack that induces an external attacker to execute an attacker's forged request while a user who is already logged in uses a service. The attacker forges the request message of a specific client and sends a hyperlink using phishing, etc., so that the user executes it. The user who clicks on it sends a forged request message to the client, and by executing it, it provides the resource of the logged-in user to the attacker.

이처럼, OAuth 서비스 상에서 보안을 취약하게 하는 문제점을 개선하고자 본원발명에 따른 OAuth 기반의 안전한 접근제어 시스템 및 방법을 도 3 내지 도 4를 통해 설명하기로 한다. As such, in order to improve the problem of weakening security on the OAuth service, an OAuth-based secure access control system and method according to the present invention will be described with reference to FIGS. 3 to 4 .

도 3은 본 발명의 일 실시예에 따른 OAuth 기반의 안전한 접근제어 시스템에서의 클라이언트 인증 단계 시나리오에 대한 일 예, 도 4는 본 발명의 일 실시예에 따른 OAuth 기반의 안전한 접근제어 시스템에서의 사용자 인증 및 토큰 발생 단계 시나리오에 대한 일 예이다. 3 is an example of a client authentication step scenario in an OAuth-based secure access control system according to an embodiment of the present invention, and FIG. 4 is a user in an OAuth-based secure access control system according to an embodiment of the present invention. This is an example of an authentication and token generation phase scenario.

먼저, 본 발명의 개념에 대해 간략하게 설명한다.First, the concept of the present invention will be briefly described.

본 발명은 IoT 환경에서 재전송 공격과 CSRF 공격에 대해 안전하도록 설계된 OAuth 기반의 접근제어 시스템에 관한 것으로서, 클라이언트 인증 단계, 사용자 인증 및 토큰 발급 단계로 나뉠 수 있다. 본 발명의 실시 예에 대한 설명에 앞서, 이하 내용에서 사용되는 기호들에 대하여 아래와 같이 정의하기로 한다. The present invention relates to an OAuth-based access control system designed to be secure against retransmission attacks and CSRF attacks in an IoT environment, and can be divided into a client authentication stage, user authentication and token issuance stages. Prior to a description of an embodiment of the present invention, symbols used in the following description will be defined as follows.

* ; 참여 엔티티(U: 사용자, C: 클라이언트, AS: 인가 서버, RS: 리소스 서버)* ; Participating entities (U: User, C: Client, AS: Authorization Server, RS: Resource Server)

*ID ; 참여 엔티티의 식별자* ID ; Identifier of the participating entity

h(ㆍ) ; 일방향 해쉬 함수h(·) ; one-way hash function

rC ; 클라이언트가 생성한 현재 세션을 위한 임의의 값r C ; Random value for the current session created by the client

rU ; 사용자가 생성한 ECQV 묵시적 인증서를 위한 임의의 값r U ; Arbitrary value for user generated ECQV implicit certificate

uU ; 사용자의 ECQV 묵시적 인증서u U ; User's ECQV Implicit Certificate

PR*, PU* ; 엔티티의 개인키와 공개키 쌍PR * , PU * ; An entity's private and public key pair

G ; 위수가 q인 타원곡선 상의 생성 점G ; Creation point on an elliptic curve of order q

SessionID ; 인가 서버로부터 생성된 현재 세션의 식별자Session ID ; Identifier of the current session generated by the authorization server

TS ; 타임스탬프TS; timestamp

LT ; 리소스 서버가 토큰을 통해 제공될 수 있는 LifeTimeLT; LifeTime that the resource server can provide through tokens

도 3 내지 도 4를 참조하면, 본 실시예에 따른 OAuth 기반의 안전한 접근제어 시스템은, IoT 서비스를 제공하는 클라이언트(100), 클라이언트(100)에 접근하여 IoT 서비스를 제공받으려는 사용자 단말(200), 사용자 단말(200)의 정보가 저장된 리소스 서버(300); 및 클라이언트(100)를 등록하고, 토큰을 발급하는 인가 서버(400);를 포함한다. 이때, 사용자 단말(200)은 클라이언트(100)로부터 IoT 서비스를 제공받기 위해 클라이언트(100)를 통해 인가 서버(400)에 리다이렉트(Redirect)하여 클라이언트(100)를 인증할 수 있다. 한편, 사용자 단말(200)은, 클라이언트(100)에게 ECQV 인증서를 발급받고, 인증서를 인가 서버(400)에 전송하여 사용자 인증을 요청할 수 있다. 또한, 인가 서버(400)는 ECQV 인증서를 검증하고, 사용자 단말(200)의 리소스에 접근할 수 있도록 클라이언트(100)에게 액세스 토큰을 발급할 수 있다. 3 to 4 , the OAuth-based secure access control system according to the present embodiment includes a client 100 that provides an IoT service, and a user terminal 200 that accesses the client 100 to receive the IoT service. , a resource server 300 in which information of the user terminal 200 is stored; and an authorization server 400 that registers the client 100 and issues a token. In this case, the user terminal 200 may authenticate the client 100 by redirecting to the authorization server 400 through the client 100 in order to receive the IoT service from the client 100 . Meanwhile, the user terminal 200 may receive an ECQV certificate from the client 100 and transmit the certificate to the authorization server 400 to request user authentication. Also, the authorization server 400 may verify the ECQV certificate and issue an access token to the client 100 to access the resource of the user terminal 200 .

도 3에 도시된 바와 같이, 클라이언트(100) 인증 단계에서는, 클라이언트(100)가 사용자를 통해 인가 서버(400)에 리다이렉트하여 클라이언트(100)를 인증한다. 클라이언트(100) 인증과 관련한 보다 상세한 과정은 아래와 같다.As shown in FIG. 3 , in the client 100 authentication step, the client 100 redirects to the authorization server 400 through the user to authenticate the client 100 . A more detailed process related to client 100 authentication is as follows.

Step 1. 사용자가 클라이언트(100)에게 다음과 같이 Hello 메시지를 전송하면 해당 서비스에 대한 요청이 전송된다. 이 경우, 사용자의 요청은 사용자의 모바일 장치 또는 PC와 같은 장치를 통해 실행될 수 있다.Step 1. When the user sends a Hello message to the client 100 as follows, a request for the corresponding service is transmitted. In this case, the user's request may be executed through the user's mobile device or a device such as a PC.

Hello: Request(nonce)Hello: Request(nonce)

Step 2. 클라이언트(100)가 사용자의 공개키를 통해 암호화한 다음의 정보를 전송한다. 다음의 정보는 자신의 식별자 CID와 인가 서버(400)의 리다이렉트 URI, 그리고 클라이언트(100)가 생성한 임의의 값

Figure 112019133432460-pat00001
이다.Step 2. The client 100 transmits the following information encrypted through the user's public key. The following information includes its identifier C ID , the redirect URI of the authorization server 400, and an arbitrary value generated by the client 100
Figure 112019133432460-pat00001
am.

Response:

Figure 112019133432460-pat00002
Response:
Figure 112019133432460-pat00002

Step 3. 사용자는 리다이렉트 URI를 통해 인가 서버(400)에 접근하고, CID와 rU를 보낸다.Step 3. The user accesses the authorization server 400 through the redirect URI, and sends C ID and r U.

Step 4. 인가 서버(400)는 사용자가 액세스하려는 클라이언트(100)를 확인하여 1차 사용자 인증 과정을 수행한다. 이후, 최종적인 사용자 인증은 ECQV 묵시적 인증서를 통해 검증된다.Step 4. The authorization server 400 checks the client 100 to which the user wants to access and performs the first user authentication process. Then, the final user authentication is verified through the ECQV implicit certificate.

Step 5. 인가 서버(400)는 인증 코드와 클라이언트(100)의 리다이렉트 URI인 URIC를 사용자에게 전송한다. Step 5. The authorization server 400 transmits the authentication code and URI C , which is the redirect URI of the client 100, to the user.

도 4에 도시된 바와 같이, 사용자 인증 및 토큰 발급 단계에서는, 사용자가 클라이언트(100)에게 ECQV 인증서를 발급받고, 인가 서버(400)를 통해 ECQV 인증서를 검증하여 최종 사용자 인증을 수행 후, 인가 서버(400)가 클라이언트(100)에게 액세스 토큰을 발급하는 단계이다. As shown in FIG. 4 , in the user authentication and token issuance step, the user receives an ECQV certificate from the client 100 , verifies the ECQV certificate through the authorization server 400 , performs end user authentication, and then the authorization server (400) is a step for issuing an access token to the client (100).

Step 1. 사용자는 임의의 정수 rU를 선택하고, 타원곡선에서

Figure 112019133432460-pat00003
를 계산한다. 이후 사용자는 URIC를 통해 클라이언트(100)에 접근하고, RU를 전송하여 ECQV 묵시적 인증서 발급을 요청한다.Step 1. The user selects a random integer r U and selects an elliptic curve
Figure 112019133432460-pat00003
to calculate Since the user can access the client 100 via the URI C, and transmits the R U requests the ECQV implicit certificate issuance.

Step 2. 클라이언트(100)는 임의의 정수 k를 선택하고, RU와 클라이언트(100)의 개인키 PRC와 클라이언트(100) 인증 단계에서 생성된 임의의 수 r를 이용해 아래의 수학식 1의 정보를 생성한다. PU는 ECQV 묵시적 인증서이며, yU는 ECQV 묵시적 서명이다.Step 2. The client 100 selects an arbitrary integer k, and uses R U , the private key PR C of the client 100, and a random number r generated in the client 100 authentication step of Equation 1 below. create information P U is the ECQV implicit certificate, and y U is the ECQV implicit signature.

[수학식 1][Equation 1]

Figure 112019133432460-pat00004
Figure 112019133432460-pat00004

Step 3. 사용자는 수신된 ECQV 묵시적 인증서와 서명을 이용해 아래의 수학식 2와 같이 현재 세션에 대한 개인키 qU와 공개키 QU를 생성한다. 이후 묵시적 인증서 yU, QU를 인증 서버로 전송한다. Step 3. The user generates a private key q U and a public key Q U for the current session as shown in Equation 2 below using the received ECQV implicit certificate and signature. Thereafter, implicit certificates y U and Q U are transmitted to the authentication server.

[수학식 2][Equation 2]

Figure 112019133432460-pat00005
Figure 112019133432460-pat00005

Step 4. 인가 서버(400)는 아래의 수학식 3과 같이 yU 및 QU에 대한 사용자 값과 식별자 UID를 기반으로 사용자의 공개키 PUU를 계산한다. PUU가 정상적으로 생성되면 사용자와 현재 세션에 대한 임의의 수 r이 묵시적으로 인증되어 최종적으로 사용자 인증이 완료된다.Step 4. The authorization server 400 calculates the public key PU U of the user based on the user values for y U and Q U and the identifier U ID as shown in Equation 3 below. When PU U is normally created, an arbitrary number r for the user and the current session is implicitly authenticated, and user authentication is finally completed.

[수학식 3][Equation 3]

Figure 112019133432460-pat00006
Figure 112019133432460-pat00006

Step 5. 인가 서버(400)는 사용자가 인증된 이후 클라이언트(100)에게 액세스 토큰을 발행한다. 클라이언트(100)는 발행된 토큰을 이용해 리소스 서버(300)에 접근하여 사용자의 리소스를 획득하고, 사용자에게 IoT 서비스를 제공한다.Step 5. The authorization server 400 issues an access token to the client 100 after the user is authenticated. The client 100 accesses the resource server 300 using the issued token to obtain a user's resource, and provides an IoT service to the user.

본 발명의 실시예에 따른 방법들은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는, 본 발명을 위한 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Methods according to an embodiment of the present invention may be implemented as an application or implemented in the form of program instructions that may be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable recording medium are specially designed and configured for the present invention, and may be known and used by those skilled in the art of computer software. Examples of the computer-readable recording medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as a CD-ROM, a DVD, and a magneto-optical medium such as a floppy disk. media) and hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 아니 된다. 또한, 본 명세서의 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서의 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification contains many features, such features should not be construed as limiting the scope of the invention or the claims. Also, features described in individual embodiments herein may be implemented in combination in a single embodiment. Conversely, various features described in a single embodiment herein may be implemented in various embodiments individually, or may be implemented in appropriate combination.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 앱 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although operations have been described in a particular order in the drawings, it should not be understood that such operations are performed in the specific order as illustrated, or that all described operations are performed in a continuous sequence, or to obtain a desired result. Multitasking and parallel processing can be advantageous in certain circumstances. In addition, it should be understood that the division of various system components in the above-described embodiments does not require such division in all embodiments. The app components and systems described above may generally be implemented as a package in a single software product or multiple software products.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니다.The present invention described above, for those of ordinary skill in the art to which the present invention pertains, various substitutions, modifications and changes are possible without departing from the technical spirit of the present invention. It is not limited by the drawings.

100 : 클라이언트
200 : 사용자 단말
300 : 리소스 서버
400 : 인가 서버
100 : client
200: user terminal
300 : resource server
400: Authorization server

Claims (10)

삭제delete 삭제delete 삭제delete 삭제delete IoT 서비스를 제공하는 클라이언트; 상기 클라이언트에 접근하여 IoT 서비스를 제공받으려는 사용자 단말; 상기 사용자 단말의 정보가 저장된 리소스 서버; 및 상기 클라이언트를 등록하고, 토큰을 발급하는 인가 서버;를 포함하는 IoT 환경을 위한 OAuth 기반의 안전한 접근제어 시스템에서의 접근제어 방법에 있어서,
상기 사용자 단말이, 클라이언트로부터 IoT 서비스를 제공받기 위해 클라이언트를 통해 인가 서버에 리다이렉트하여 클라이언트를 인증하는 클라이언트 인증 단계;
사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계; 및
인가 서버가, 클라이언트에게 액세스 토큰을 발급하는 토큰 발급 단계;를 포함하고,
상기 클라이언트 인증 단계는,
사용자 단말이, 클라이언트에게 서비스 요청 메시지를 전송하는 단계;
클라이언트가, 사용자 단말의 공개키를 이용해 암호화한 후 정보를 전송하는 단계;
사용자 단말이, 리다이렉트 URI를 통해 인가 서버에 접근하는 단계;
인가 서버가, 사용자 단말이 액세스하려는 클라이언트를 확인하여 사용자 인증을 수행하는 단계; 및
인가 서버가 인증 코드와 클라이언트의 리다이렉트 URI를 사용자 단말로 전송하는 단계;를 포함하고,
상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는,
ECQV 묵시적 인증서를 통해 검증하여 사용자 인증을 수행하는 것을 특징으로 하고,
상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는,
사용자 단말이 임의의 정수를 선택하고, 타원곡선에서 사용자 단말이 생성한 ECQV 묵시적 인증서를 위한 임의의 값을 계산하고,
사용자 단말이 클라이언트의 리다이렉트 URI를 통해 클라이언트에 접근하고, 사용자 단말이 생성한 ECQV 묵시적 인증서를 위한 임의의 값을 전송하여 ECQV 묵시적 인증서 발급을 요청하는 단계를 포함하며,
상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는,
클라이언트가 임의의 정수를 선택하고, 사용자 단말이 생성한 ECQV 묵시적 인증서를 위한 임의의 값과 클라이언트의 개인키와 클라이언트 인증 단계에서 생성된 임의의 수를 이용하여 ECQV 묵시적 인증서 정보 및 ECQV 묵시적 서명 정보를 생성하는 것을 특징으로 하는 접근제어 방법.
clients providing IoT services; a user terminal accessing the client to receive an IoT service; a resource server in which information of the user terminal is stored; and an authorization server that registers the client and issues a token; an access control method in an OAuth-based secure access control system for an IoT environment comprising:
a client authentication step of redirecting, by the user terminal, to an authorization server through the client to authenticate the client in order to receive the IoT service from the client;
a user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication; and
Including, by the authorization server, a token issuing step of issuing an access token to the client;
The client authentication step is
transmitting, by the user terminal, a service request message to the client;
transmitting, by the client, information after encryption using the public key of the user terminal;
accessing, by the user terminal, an authorization server through a redirect URI;
performing, by the authorization server, user authentication by identifying a client to which the user terminal intends to access; and
Including, by the authorization server, the authentication code and the redirect URI of the client to the user terminal;
A user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication,
Characterized in performing user authentication by verifying through ECQV implicit certificate,
A user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication,
The user terminal selects a random integer, and calculates a random value for the ECQV implicit certificate generated by the user terminal on the elliptic curve,
The user terminal accesses the client through the redirect URI of the client, and sends an arbitrary value for the ECQV implicit certificate generated by the user terminal to request the issuance of the ECQV implicit certificate,
A user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication,
The client selects a random integer, and the ECQV implicit certificate information and ECQV implicit signature information are generated using the random value for the ECQV implicit certificate generated by the user terminal, the client's private key, and a random number generated in the client authentication step. Access control method, characterized in that the creation.
제 5 항에 있어서,
상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는,
사용자 단말이, 수신된 ECQV 묵시적 인증서와 서명을 이용해 현재 세션에 대한 개인키와 공개키를 생성하고, 묵시적 인증서를 인증 서버로 전송하는 것을 특징으로 하는 접근제어 방법.
6. The method of claim 5,
The user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication,
An access control method, characterized in that the user terminal generates a private key and a public key for the current session using the received ECQV implicit certificate and signature, and transmits the implicit certificate to the authentication server.
제 6 항에 있어서,
상기 사용자 단말이, 클라이언트에게 인증서를 발급받고, 인가 서버를 통해 인증서를 검증하여 사용자 인증을 수행하는 사용자 인증 단계는,
인가 서버가, ECQV 묵시적 서명 및 현재 세션에 대한 공개키에 대한 사용자 값과 식별자 정보를 기반으로 사용자의 공개키를 계산하는 것을 특징으로 하는 접근제어 방법.
7. The method of claim 6,
The user authentication step in which the user terminal receives a certificate from the client, verifies the certificate through an authorization server, and performs user authentication,
An access control method, characterized in that the authorization server calculates the user's public key based on the user value and identifier information for the ECQV implicit signature and the public key for the current session.
삭제delete 삭제delete 삭제delete
KR1020190173811A 2019-12-24 2019-12-24 OAuth-based Secure Access Control System and Method for IoT Environment KR102305368B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190173811A KR102305368B1 (en) 2019-12-24 2019-12-24 OAuth-based Secure Access Control System and Method for IoT Environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190173811A KR102305368B1 (en) 2019-12-24 2019-12-24 OAuth-based Secure Access Control System and Method for IoT Environment

Publications (2)

Publication Number Publication Date
KR20210081643A KR20210081643A (en) 2021-07-02
KR102305368B1 true KR102305368B1 (en) 2021-09-27

Family

ID=76896994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190173811A KR102305368B1 (en) 2019-12-24 2019-12-24 OAuth-based Secure Access Control System and Method for IoT Environment

Country Status (1)

Country Link
KR (1) KR102305368B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170096815A (en) 2016-02-17 2017-08-25 한국전자통신연구원 METHOD FOR CONTROLLING ACCESS OF DATA FOR ENHANCING STABILITY OF IoT SERVICE AND APPARATUS USING THE SAME
KR102032032B1 (en) * 2017-12-22 2019-11-08 단국대학교 산학협력단 Dtls based end-to-end security method for internet of things device

Also Published As

Publication number Publication date
KR20210081643A (en) 2021-07-02

Similar Documents

Publication Publication Date Title
Niruntasukrat et al. Authorization mechanism for MQTT-based Internet of Things
CN105850073B (en) Information system access authentication method and device
JP6170158B2 (en) Mobile multi single sign-on authentication
US8245030B2 (en) Method for authenticating online transactions using a browser
JP4861417B2 (en) Extended one-time password method and apparatus
WO2017028804A1 (en) Web real-time communication platform authentication and access method and device
CN114679293A (en) Access control method, device and storage medium based on zero trust security
US10225260B2 (en) Enhanced authentication security
Matetic et al. {DelegaTEE}: Brokered delegation using trusted execution environments
CN109672675B (en) OAuth 2.0-based WEB authentication method of password service middleware
JP2015535984A5 (en)
CN105430014B (en) A kind of single-point logging method and its system
TW200810488A (en) Policy driven, credential delegation for single sign on and secure access to network resources
US20140020077A1 (en) Unsecured asset detection via correlated authentication anomalies
JP2004185623A (en) Method and system for authenticating user associated with sub-location in network location
CN114008968A (en) System, method and storage medium for license authorization in a computing environment
Hu et al. Security analysis of an attractive online authentication standard: FIDO UAF protocol
Huang et al. A token-based user authentication mechanism for data exchange in RESTful API
CN108667761B (en) Method for protecting single sign-on by using session of secure socket layer
KR102305368B1 (en) OAuth-based Secure Access Control System and Method for IoT Environment
JPWO2020166066A1 (en) Token protection methods, authorization systems, devices, and program recording media
Göçer et al. An authorization framework with oauth for fintech servers
EP3036674B1 (en) Proof of possession for web browser cookie based security tokens
Deeptha et al. Extending OpenID connect towards mission critical applications
Axeland et al. Security analysis of attack surfaces on the grant negotiation and authorization protocol

Legal Events

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