KR20230138502A - 코드 기반 2팩터 인증 - Google Patents

코드 기반 2팩터 인증 Download PDF

Info

Publication number
KR20230138502A
KR20230138502A KR1020237029304A KR20237029304A KR20230138502A KR 20230138502 A KR20230138502 A KR 20230138502A KR 1020237029304 A KR1020237029304 A KR 1020237029304A KR 20237029304 A KR20237029304 A KR 20237029304A KR 20230138502 A KR20230138502 A KR 20230138502A
Authority
KR
South Korea
Prior art keywords
remote service
code
credentials
token
phone token
Prior art date
Application number
KR1020237029304A
Other languages
English (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 소니그룹주식회사
Publication of KR20230138502A publication Critical patent/KR20230138502A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • 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/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • G06F21/35User authentication involving the use of external additional devices, e.g. dongles or smart cards communicating wirelessly
    • 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/36User authentication by graphic or iconic representation
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/77Graphical identity
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)

Abstract

사용자 디바이스로부터 원격 서비스에 액세스하기 위해 사용자 계정을 인증하는 것은: 모바일 디바이스를 사용하여 사용자 디바이스 상에 디스플레이된 머신 판독가능 이미지 코드를 캡처하는 것 - 여기서 이미지 코드는 원격 서비스에 의해 제공됨 -; 이미지 코드에 임베딩된 대응하는 세션 코드를 추출 및 호출하는 것; 전화 토큰이 스토리지에 있는지 여부를 결정하는 것; (a) 전화 토큰이 스토리지에 있는 경우, 전화 토큰을 원격 서비스에 전송하는 것; 또는 (b) 전화 토큰이 스토리지에 없는 경우, 사용자명 및 패스워드를 포함하는 크리덴셜들을 입력하도록 사용자에게 프롬프트하고 입력된 크리덴셜들을 원격 서비스에 전송하는 것 중 하나; 및 세션 코드가 유효하고 크리덴셜들이 유효하거나 또는 전화 토큰이 확인될 때, 사용자 디바이스에 대한 원격 서비스에의 액세스를 수신하는 것을 포함한다.

Description

코드 기반 2팩터 인증
본 개시내용은 2팩터 인증(two-factor authentication)에 관한 것으로, 더 구체적으로는, 사용자 디바이스에서 원격 서비스에 액세스하기 위해 사용자 계정을 인증하는 것에 관한 것이다.
스마트 TV들, 셋톱 박스들, 또는 애플 TV™와 같은 전용 디바이스들 상에서 실행되는 많은 스트리밍 서비스들이 사용자 인증을 요구한다. 이 인증은, 특히 각각의 새로운 액세스를 위해 인증이 필수인 경우, 종종 사용자 친화적이지 않다. 예를 들어, 복잡한 패스워드를 입력하는 것은, 단지 리모트 컨트롤(remote control)만을 사용할 때 금방 지루한 태스크가 될 수 있다.
대부분의 종래의 솔루션들은 전통적인 사용자명-패스워드 조합(username-password combination)을 사용한다. 그러나, 이 조합은 사용자 친화적이지 않으며 심지어 안전하지 않을 수도 있다. 일부 솔루션들은 등록된 전화로 전통적인 2팩터 인증(Two-Factor Authentication)(2FA)을 사용한다. 이 서비스는 SMS를 통해 사용자의 등록된 모바일 디바이스에 코드를 전송한다. 이 솔루션은 여전히 사용자들에게 리모트 컨트롤을 통해 이들의 크리덴셜(credential)들을 입력하도록 요구한다. 다른 솔루션들은 이미 등록된 디바이스에 코드를 전송함으로써 사용자에 대한 디바이스를 등록한다. 다시, 사용자는 리모트 컨트롤을 사용하여 크리덴셜들을 입력해야 한다.
본 개시내용은 원격 서비스에 액세스하기 위해 사용자 계정을 인증하는 것을 제공한다.
하나의 구현에서, 사용자 디바이스로부터 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 방법이 개시된다. 이 방법은, 모바일 디바이스를 사용하여 사용자 디바이스 상에 디스플레이된 머신 판독가능 이미지 코드를 캡처하는 단계를 포함하고, 여기서 이미지 코드는 원격 서비스에 의해 제공된다. 이 방법은, 이미지 코드에 임베딩된 대응하는 세션 코드를 추출 및 호출하는 단계를 또한 포함한다. 이 방법은, 전화 토큰이 스토리지(storage)에 있는지 여부를 결정하는 단계; (a) 전화 토큰이 스토리지에 있는 경우, 전화 토큰을 원격 서비스에 전송하는 단계; 또는 (b) 전화 토큰이 스토리지에 없는 경우, 사용자명 및 패스워드를 포함하는 크리덴셜들을 입력하도록 사용자에게 프롬프트하고 입력된 크리덴셜들을 원격 서비스에 전송하는 단계 중 하나를 또한 포함한다. 이 방법은, 세션 코드가 유효하고 크리덴셜들이 유효하거나 또는 전화 토큰이 확인될 때, 사용자 디바이스에 대한 원격 서비스에의 액세스를 수신하는 단계를 더 포함한다.
다른 구현에서, 사용자 디바이스에서 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 원격 서비스 방법이 개시된다. 이 방법은, 모바일 디바이스로부터 세션 코드를 수신하는 단계, 세션 코드가 세트 구조(set structure)에서 계류 중인 세션 코드들 중 하나와 매칭하는지 여부를 결정하는 단계; 및 세트 구조로부터 매칭된 세션 코드를 삭제하는 단계를 포함한다. 이 방법은, 사용자 계정의 크리덴셜들 또는 전화 토큰을 수신하는 단계; 및 (a) 크리덴셜들이 수신되는 경우, 크리덴셜들의 유효성을 결정하는 단계; 또는 (b) 크리덴셜들이 수신되지 않은 경우, 전화 토큰이 원격 서비스의 크리덴셜 데이터베이스에 존재하는지 여부를 결정하는 단계 중 하나를 또한 포함한다. 이 방법은, 크리덴셜들이 유효한 것으로 결정될 때, 전화 토큰을 생성하고 이를 사용자 디바이스에 전송하는 단계; 및 크리덴셜들을 사용하여 원격 서비스를 위해 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에의 액세스를 승인하는 단계를 더 포함한다.
또 다른 구현에서, 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 시스템은 사용자 디바이스, 모바일 디바이스, 및 원격 서비스를 포함한다. 사용자 디바이스는, 원격 서비스에 의해 제공되는 머신 판독가능 이미지 코드를 디스플레이하기 위한 원격 서비스 애플리케이션을 포함한다. 모바일 디바이스는 원격 서비스에 액세스하기 위해 머신 판독가능 이미지 코드를 캡처하고, 머신 판독가능 이미지 코드에 임베딩된 대응하는 세션 코드를 추출 및 호출한다. 모바일 디바이스는 또한, 추출된 세션 코드, 그리고 (a) 모바일 디바이스의 스토리지에서의 전화 토큰, 또는 (b) 사용자로부터 획득된 크리덴셜들 중 하나를, 크리덴셜들이 유효하거나 또는 전화 토큰이 확인될 때, 원격 서비스에 전송하여 사용자 디바이스에 대한 원격 서비스에의 액세스를 수신한다.
다른 피처(feature)들 및 이점들은, 본 개시내용의 양태들을 예로서 예시하는 본 설명으로부터 명백해질 것이다.
구조체와 동작 양측 모두에 관한 본 개시내용의 세부사항들은 첨부된 도면들의 연구에 의해 부분적으로 수집될 수도 있고, 여기서 동일한 참조 번호들은 동일한 부분들을 지칭하고, 여기서:
도 1은 본 개시내용의 하나의 구현에 따른, 사용자 디바이스에서 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 프로세스의 흐름도이다.
도 2는 본 개시내용의 하나의 구현에 따른, 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 원격 서비스 프로세스의 흐름도이다.
도 3은 본 개시내용의 하나의 구현에 따른, 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 시스템의 블록도이다.
도 4a는 본 개시내용의 일 구현에 따른 컴퓨터 시스템 및 사용자의 표현이다.
도 4b는 본 개시내용의 일 구현에 따른, 인증 애플리케이션을 호스팅하는 컴퓨터 시스템을 예시하는 기능 블록도이다.
상술된 바와 같이, 많은 스트리밍 서비스들에 대한 사용자 인증은 종종 사용자 친화적이지 않으며, 단지 리모트 컨트롤만을 사용할 때 금방 지루한 태스크가 될 수 있다. 따라서, 사용자 계정을 인증하기 위한 단순한 기법에 대한 필요성이 존재한다.
본 개시내용의 특정 구현들은 사용자 계정을 인증하기 위한 방법들 및 시스템들을 제공한다. 하나의 구현에서, 서버 시스템은, 세션 코드를 포함하는 머신 판독가능 코드(예를 들어, 신속 응답(quick response)(QR) 코드)를 사용자 디바이스에 제공한다. 사용자는 모바일 디바이스를 사용하여 사용자 디바이스로부터 QR 코드의 이미지를 캡처하고 QR 코드로부터 세션 코드를 추출한다. 모바일 디바이스는 세션 코드를 서버 시스템에 반환한다. 그 후에, 서버 시스템은 수신된 정보를 인증하여, 서버 시스템에 의해 제공된 서비스에 대해 사용자 디바이스(디스플레이를 포함함)에의 액세스를 승인한다. 하나의 예시적인 구현에서, 서버 시스템은 콘텐츠 스트리밍 서비스를 제공한다. 다른 예시적인 구현에서, 디스플레이 디바이스는, 인터넷을 통해 원격 서비스 시스템에 연결된 텔레비전이다.
구현들에서 제공되는 피처들은 다음의 아이템들 중 하나 이상을 포함할 수 있지만 이에 제한되지 않는다:
(a) 세션 코드를 생성하고, 세션 코드를 포함하는 이미지 코드(예컨대, QR 코드)를 생성하는 것;
(b) 이미지 코드의 캡처된 이미지로부터 세션 코드를 추출하는 것;
(c) 향후 트랜잭션들을 위해 모바일 디바이스를 식별하기 위해 모바일 디바이스에 대한 토큰을 생성하는 것; 및
(d) 세션 코드 및 사용자 크리덴셜들을 사용하거나 또는 세션 코드 및 토큰을 사용하여 사용자 디바이스를 인증하는 것.
아래의 설명들을 판독한 후에, 다양한 구현들 및 애플리케이션들에서 본 개시내용을 구현하는 방법이 명백해질 것이다. 본 개시내용의 다양한 구현들이 본 명세서에서 설명될 것이지만, 이들 구현들은 제한이 아니라 단지 예로서 제시된다는 것이 이해된다. 이와 같이, 다양한 구현들의 상세한 설명은 본 개시내용의 범위 또는 폭을 제한하는 것으로 해석되어서는 안 된다.
하나의 구현에서, 콘텐츠 서비스는 인터넷을 통해 서버 시스템(예를 들어, 원격 서비스)으로부터 텔레비전들, 컴퓨터들, 또는 게임 콘솔들과 같은 사용자 디바이스들에게 비디오 데이터를 전송함으로써 스트리밍 비디오를 제공한다. 하나의 구현에서, 사용자 디바이스는, 원격/스트리밍 서비스와 연결되는 애플리케이션을 포함한다. 사용자는 애플리케이션을 론칭하여 원격/스트리밍 서비스에 액세스한다.
예를 들어, 텔레비전을 통해 스트리밍 서비스에 액세스하기 위해, 사용자는 모바일 디바이스를 사용하여 서버 시스템으로 텔레비전을 인증한다. 사용자는 텔레비전(인터넷에 연결됨)을 통해 서비스에의 액세스를 요청한다. 서버 시스템은 세션 코드를 생성하고, 세션 코드를 표시하는 QR 코드를 생성한다. 서버 시스템은 인터넷을 통해 QR 코드를 텔레비전에 전송한다. 텔레비전은 수신된 QR 코드를 디스플레이한다. 사용자는 모바일 디바이스의 카메라를 사용하여 QR 코드의 이미지를 캡처한다. 모바일 디바이스는 QR 코드 이미지로부터 세션 코드를 추출 또는 도출한다.
하나의 구현에서, 모바일 디바이스는, 서버 시스템으로부터 수신된 세션 코드 및 토큰을 사용한다. 모바일 디바이스가 토큰을 갖고 있지 않은 경우, 모바일 디바이스는 토큰 없이 세션 코드를 서버 시스템에 전송한다. 서버 시스템은 세션 코드를 검증하고 모바일 디바이스로부터 사용자 크리덴셜들(예를 들어, 사용자명 및 패스워드)을 요청한다. 모바일 디바이스는 (이미 저장되지 않은 경우) 사용자로부터 사용자 크리덴셜들을 요청 및 수신한 후에 크리덴셜들을 서버 시스템에 전송한다. 서버 시스템은 크리덴셜들을 검증한다. 검증 후에, 서버 시스템은 텔레비전에 대해 스트리밍 서비스에의 액세스를 승인한다. 인증된 텔레비전은 서버 시스템으로부터 비디오 데이터를 요청, 수신, 및 디스플레이할 수 있다. 서버는 또한, 사용자와 연관된 토큰(예를 들어, 사용자명)을 생성 및 저장하고, 토큰을 모바일 디바이스에 전송한다. 모바일 디바이스는 향후 요청들을 위해 토큰을 저장한다.
모바일 디바이스가 이전에 서버 시스템으로부터 토큰을 수신한 경우, 모바일 디바이스는 세션 코드 및 토큰을 서버 시스템에 전송한다. 서버 시스템은 세션 코드 및 토큰을 검증한다. 검증 후에, 서버 시스템은 스트리밍 서비스에 대해 텔레비전에의 액세스를 승인한다. 인증된 텔레비전은 서버 시스템으로부터 비디오 데이터를 요청, 수신, 및 디스플레이할 수 있다.
도 1은 본 개시내용의 하나의 구현에 따른, 사용자 디바이스에서 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 프로세스(100)의 흐름도이다. 하나의 구현에서, 사용자 디바이스를 사용하여 원격 서비스에 액세스하기 위해, 사용자는, 블록 110에서, 모바일 디바이스를 사용하여 사용자 디바이스 상에 디스플레이된 이미지 코드(예를 들어, QR 코드)를 캡처한다. 이미지 코드는, 다른 코드들 또는 태그들 예컨대 바코드들, 근접장 통신(near-field communication)(NFC) 태그들, SnapTag들, 및 이미지 인식 및 블루투스 비콘들을 포함하는 다른 유사한 아이템들을 포함할 수도 있다. 하나의 구현에서, 사용자 디바이스는 텔레비전, 컴퓨터, 또는 게임 콘솔 중 하나이다. 하나의 구현에서, QR 코드는, 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에 의해 디스플레이된다.
블록 110에서, 일단 QR 코드가 캡처되었다면, 모바일 디바이스는, 블록 112에서, QR 코드에 임베딩된 대응하는 위치 코드(예를 들어, URL(uniform resource locator))를 추출 및 호출한다. 이것은, 모바일 디바이스들의 현대 오퍼레이팅 시스템들에 종종 존재하는 피처이다. 일부 구현들에서, 모바일 디바이스는 또한 대응하는 세션 코드를 추출하고 이를 원격 서비스에 전송할 수도 있다. 모바일 디바이스는, 블록 120에서, 그것이 전화 토큰을 그의 스토리지에 갖고 있는지 여부를 결정하도록 체크한다. 모바일 디바이스가 그것이 이미 전화 토큰을 갖고 있다고 결정하는 경우, 그것은, 블록 130에서, 전화 토큰을 원격 서비스에 전송하고, 블록 132에서, 확인을 기다린다.
그렇지 않으면, 모바일 디바이스가 그것이 전화 토큰을 갖고 있지 않다고 결정하는 경우, 모바일 디바이스는, 블록 122에서, 사용자명 및 패스워드를 포함하는 크리덴셜들을 입력하도록 사용자에게 프롬프트한다. 그 후에, 모바일 디바이스는, 블록 140에서, 수신된 크리덴셜들을 원격 서비스에 전송한다. 그 후에, 모바일 디바이스는, 블록 150에서, 전화 토큰을 보유하는 토큰 답변을 기다린다. 블록 160에서, 일단 모바일 디바이스가 확인을 (모바일 디바이스가 이미 저장된 것을 갖고 있지 않은 경우에는 전화 토큰과 함께) 수신하면, 그것은, 블록 170에서, 전화 토큰을 그의 보안 스토리지에 저장한다. 추가로, 일단 모바일 디바이스가 확인을 수신하면, 서버 시스템은 사용자 디바이스에 대해 스트리밍 서비스에의 액세스를 승인한다. 따라서, 인증된 사용자 디바이스는 원격 서비스로부터 비디오 데이터를 요청, 수신, 및 디스플레이할 수 있다.
특정 구현에서, 사용자 디바이스로부터 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 방법이 개시된다. 이 방법은: 모바일 디바이스를 사용하여 사용자 디바이스 상에 디스플레이된 머신 판독가능 이미지 코드를 캡처하는 단계 - 여기서 이미지 코드는 원격 서비스에 의해 제공됨 -; 이미지 코드에 임베딩된 대응하는 세션 코드를 추출 및 호출하는 단계; 전화 토큰이 스토리지에 있는지 여부를 결정하는 단계; (a) 전화 토큰이 스토리지에 있는 경우, 전화 토큰을 원격 서비스에 전송하는 단계; 또는 (b) 전화 토큰이 스토리지에 없는 경우, 사용자명 및 패스워드를 포함하는 크리덴셜들을 입력하도록 사용자에게 프롬프트하고 입력된 크리덴셜들을 원격 서비스에 전송하는 단계 중 하나; 및 세션 코드가 유효하고 크리덴셜들이 유효하거나 또는 전화 토큰이 확인될 때, 사용자 디바이스에 대한 원격 서비스에의 액세스를 수신하는 단계를 포함한다.
하나의 구현에서, 머신 판독가능 이미지 코드는 신속 응답(QR) 코드를 포함한다. 하나의 구현에서, 사용자 디바이스는 텔레비전, 컴퓨터, 또는 게임 콘솔 중 하나이다. 하나의 구현에서, 이 방법은, 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에 의해 머신 판독가능 이미지 코드를 디스플레이하는 단계를 더 포함한다. 하나의 구현에서, 이 방법은, 전화 토큰이 원격 디바이스로부터 수신될 때, 모바일 디바이스의 스토리지에 전화 토큰을 저장하는 단계를 더 포함한다.
도 2는 본 개시내용의 하나의 구현에 따른, 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 원격 서비스 프로세스(200)의 흐름도이다. 초기에는, 사용자 계정을 인증하기 위해, 원격 서비스는 다음의 단계들을 수행한다: (a) 세션 코드(예를 들어, 256비트 논스 세션 코드(256-bit nonce session code))를 생성하고 코드를 세트 구조에 저장하고; (b) 저장된 세션 코드(예를 들어, URLlbase64에 의해 정의됨, 여기서 base64는 이진수를 RFC2045 표준을 따르는 스트링으로 인코딩한다)로 QR 코드를 생성하며; (c) 상기에 언급된 바와 같이, 생성된 QR 코드를, 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에 전송한다.
도 2의 예시된 구현에서, 원격 서비스는, 블록 210에서, 모바일 디바이스에 의해 전송된 QR 코드를 수신하고 (예를 들어, base64 인코딩된 코드를 디코딩함으로써) 세션 코드를 추출한다. 원격 서비스는, 블록 220에서, 추출된 코드가 계류 중인 세션 코드들 중 하나인지 여부를 결정한다. 원격 서비스가, 블록 220에서, 검색된 코드가 계류 중인 세션 코드들 중 하나라고 결정하는 경우, 그것은 세트 구조로부터 대응하는 세션 코드를 삭제한다. 그 후에, 원격 서비스는, 블록 222에서, 사용자의 크리덴셜들(예를 들어, 사용자명 및 패스워드)을 제공하도록 답변 요청 메시지를 모바일 디바이스에 전송한다.
원격 서비스가, 블록 230에서, 모바일 디바이스가 크리덴셜들로 답변하였다고 결정하는 경우, 원격 서비스는 그 후에, 블록 234에서, 크리덴셜들의 유효성을 체크한다. 하나의 구현에서, 원격 서비스는 saltedPassword를 계산하고 쌍 {username, saltedPassword}가 원격 서비스의 크리덴셜 데이터베이스에 있는지 여부를 체크함으로써 크리덴셜들을 유효성 검사한다. 하나의 구현에서, saltedPassword = SHA512(password | salt)이고, 여기서 salt는 512비트 난수이다. 블록 234에서, 원격 서비스가 크리덴셜들이 유효하다고 결정하는 경우, 그것은, 블록 240에서, 전화 토큰을 생성하고, 생성된 전화 토큰을 사용자 디바이스에 전송한다. 하나의 구현에서, 전화 토큰은, 사용자명을 포함하는 자바 웹 토큰(Java Web Token)(예를 들어, 256비트 논스)이다. 하나의 구현에서, 원격 서비스는 전화 토큰을 크리덴셜 데이터베이스에, 예를 들어, 솔팅된 해시(salted hash)로서 또한 저장한다. 원격 서비스의 후속 사용 시에, 모바일 디바이스는 신속한 액세스를 위해 캡처된 코드와 저장된 전화 토큰 양측 모두를 전송한다.
그렇지 않으면, 원격 서비스가, 블록 230에서, 모바일 디바이스가 크리덴셜들로 답변하지 않았다고 결정하는 경우, 원격 서비스는, 블록 232에서, 모바일 디바이스가 전화 토큰으로 답변하였는지 여부와 전화 토큰이 원격 서비스의 크리덴셜 데이터베이스에 존재하는지 여부를 결정하도록 체크한다. 블록 232에서, 모바일 디바이스가 전화 토큰으로 답변하였고 전화 토큰이 원격 서비스의 크리덴셜 데이터베이스에 존재한다고 결정되는 경우, 원격 서비스는, (전화 토큰과 관련된) 사용자명을 포함하는 자바 웹 토큰을 생성하고 그것을 사용자 디바이스에 전송할 수도 있다. 자바 웹 토큰은, 전화 토큰이 아니라 사용자명만을 단지 반송한다는 것에 주목해야 한다. 블록 232 및 블록 234에서의 테스트들(즉, 알려진 토큰 및 크리덴셜 유효성 테스트들)이 통과한 경우, 원격 서비스는, 블록 250에서, 사용자의 사용자명에 대해 애플리케이션에의 액세스를 승인한다. 원격 서비스는 또한, 모바일 폰이 그것이 전화 토큰을 갖고 있지 않았기 때문에 크리덴셜들로 답변한 경우, 전화 토큰을 모바일 디바이스의 스토리지에 안전하게 저장하기 위해 전화 토큰을 모바일 디바이스에 다시 전송한다.
하나의 구현에서, 원격 서비스는 보안 향상을 제공하기 위해 세션 코드에 만료 시간을 부가한다. 따라서, 모바일 디바이스가 만료 시간 이후에 답변하는 경우, 인증이 실패할 수도 있다. 다른 구현에서, 전화 토큰은 또한 만료 시간을 갖는다. 따라서, 만료된 전화 토큰의 제시는, 유효한 사용자명 및 패스워드를 제시하도록 모바일 디바이스에게 명령할 수도 있다. 또 다른 구현에서, 원격 서비스는 전화 토큰의 값 또는 신선도에 관계없이 크리덴셜들의 제시를 랜덤하게 요구한다. 추가의 실시예에서, 원격 서비스는, 사용자명과 연관된 전화 토큰들의 수를 제한한다.
하나의 구현에서, 사용자 디바이스로부터 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 원격 서비스 방법이 개시된다. 이 방법은: 모바일 디바이스로부터 세션 코드를 수신하는 단계; 세션 코드가 세트 구조에서 계류 중인 세션 코드들 중 하나와 매칭하는지 여부를 결정하는 단계; 세트 구조로부터 매칭된 세션 코드를 삭제하는 단계; 사용자 계정의 크리덴셜들 또는 전화 토큰을 수신하는 단계; (a) 크리덴셜들이 수신되는 경우, 크리덴셜들의 유효성을 결정하는 단계; 또는 (b) 크리덴셜들이 수신되지 않은 경우, 전화 토큰이 원격 서비스의 크리덴셜 데이터베이스에 존재하는지 여부를 결정하는 단계 중 하나; 크리덴셜들이 유효한 것으로 결정될 때, 전화 토큰을 생성하고 이를 사용자 디바이스에 전송하는 단계; 및 크리덴셜들을 사용하여 원격 서비스를 위해 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에의 액세스를 승인하는 단계를 포함한다.
하나의 구현에서, 이 방법은: 세션 코드를 생성하고 이를 세트 구조에 저장하는 단계; 저장된 세션 코드를 사용하여 머신 판독가능 이미지 코드를 생성하는 단계; 및 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에 생성된 머신 판독가능 이미지 코드를 전송하는 단계를 더 포함한다. 하나의 구현에서, 크리덴셜들은 사용자명 및 패스워드를 포함하고, 크리덴셜들의 유효성을 결정하는 단계는: saltedpassword를 생성하기 위해 패스워드를 솔팅하는 단계; 및 크리덴셜 데이터베이스에 쌍 {username, saltedPassword}가 있는지 여부를 체크하는 단계를 포함하고, 여기서 saltedPassword는, 조합된 패스워드와 솔트(salt)에 해싱 함수를 적용한 결과이고, 여기서 솔트는 난수이다. 하나의 구현에서, 전화 토큰은, 사용자명을 포함하는 자바 웹 토큰이다. 하나의 구현에서, 이 방법은, 전화 토큰을 크리덴셜 데이터베이스에 솔팅된 해시로서 저장하는 단계를 더 포함한다. 하나의 구현에서, 이 방법은, 전화 토큰을 모바일 디바이스의 스토리지에 저장하기 위해 전화 토큰을 모바일 디바이스에 전송하는 단계를 더 포함한다. 하나의 구현에서, 세션 코드는, 세션 코드의 사용을 제한하기 위한 만료 시간을 포함한다. 하나의 구현에서, 전화 토큰은, 전화 토큰의 사용을 제한하기 위한 만료 시간을 포함한다.
도 3은 본 개시내용의 하나의 구현에 따른, 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 시스템(300)의 블록도이다. 도 3의 예시된 구현에서, 시스템(300)은 사용자 디바이스(310), 모바일 디바이스(320), 및 원격 서비스(330)를 포함한다. 하나의 구현에서, 시스템(300)의 블록들 320, 330, 340은, 하나 이상의 디지털 신호 프로세서(digital signal processor)(DSP), 범용 마이크로프로세서, 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그래밍가능 로직 어레이(field programmable logic array)(FPGA), 또는 다른 등가의 집적 또는 이산 로직 회로부를 포함하는 하드웨어로 완전히 구성된다.
도 3의 예시된 구현에서, 모바일 디바이스(320)는 원격 서비스(330)에 액세스하기 위해 사용자 디바이스(310) 상에 디스플레이된 QR 코드를 캡처하는 데 사용된다. 하나의 구현에서, 사용자 디바이스(310)는 텔레비전, 컴퓨터, 또는 게임 콘솔 중 하나이다. 하나의 구현에서, QR 코드는, 사용자 디바이스(310) 상에 설치된 원격 서비스 애플리케이션(312)에 의해 디스플레이된다. 모바일 디바이스(320)는 일단 QR 코드가 캡처되었다면 QR 코드에 임베딩된 대응하는 URL을 추출 및 호출한다. 모바일 디바이스(320)는 그것이 전화 토큰을 그의 스토리지에 갖고 있는지 여부를 체크한다. 모바일 디바이스(320)가 이미 전화 토큰을 갖고 있는 경우, 그것은 전화 토큰을 원격 서비스(330)에 전송하고 확인을 기다린다.
그렇지 않으면, 모바일 디바이스(320)가 전화 토큰을 갖고 있지 않은 경우, 모바일 디바이스(320)는, 사용자명 및 패스워드를 포함하는 크리덴셜들을 입력하도록 사용자에게 프롬프트한다. 그 후에, 모바일 디바이스(320)는 수신된 크리덴셜들을 원격 서비스(330)에 전송한다. 그 후에, 모바일 디바이스(320)는, 전화 토큰을 보유하는 토큰 답변을 기다린다. 일단 모바일 디바이스(320)가 확인을 (모바일 디바이스가 이미 저장된 것을 갖고 있지 않은 경우에는 전화 토큰과 함께) 수신하면, 그것(320)은 전화 토큰을 그의 스토리지에 저장한다. 추가로, 일단 모바일 디바이스(320)가 확인을 수신하면, 원격 서비스(330)는 사용자 디바이스(310)에 대해 스트리밍 서비스에의 액세스를 승인한다. 따라서, 인증된 사용자 디바이스는 원격 서비스로부터 비디오 데이터를 요청, 수신, 및 디스플레이할 수 있다.
도 3의 예시된 구현에서, 원격 서비스(330)는, 모바일 디바이스(320)에 의해 전송된 QR 코드를 수신하고 (예를 들어, base64 인코딩된 코드를 디코딩함으로써) 세션 코드를 추출한다. 원격 서비스(330)는 추출된 코드가 계류 중인 세션 코드들 중 하나인지 여부를 체크한다. 원격 서비스(330)는, 추출된 코드가 계류 중인 세션 코드들 중 하나인(그리고 토큰 없이 전송된) 경우, 세트 구조로부터 대응하는 세션 코드를 삭제하고, 사용자의 크리덴셜들(예를 들어, 사용자명 및 패스워드)을 제공하도록 답변 요청 메시지를 모바일 디바이스(320)에 전송한다. 원격 서비스(330)는, 모바일 디바이스(320)가 크리덴셜들로 답변하는 경우, 크리덴셜들의 유효성을 체크한다. 크리덴셜들이 유효한 경우, 원격 서비스(330)는 전화 토큰을 생성하고 생성된 전화 토큰을 사용자 디바이스(310)에 전송한다. 모바일 디바이스(320)는 신속한 액세스를 위해 원격 서비스(330)의 후속 사용 시에 캡처된 코드와 저장된 전화 토큰 양측 모두를 전송한다.
그렇지 않으면, 원격 서비스(330)는, 모바일 디바이스(320)가 크리덴셜들로 답변하지 않았지만 전화 토큰으로 답변한 경우, 원격 서비스(320)의 크리덴셜 데이터베이스에 전화 토큰이 존재하는지 여부를 체크한다. 원격 서비스(330)는, 전화 토큰이 원격 서비스(330)의 크리덴셜 데이터베이스에 존재하는 경우, 전화 토큰과 연관된 사용자명을 포함하는 자바 웹 토큰을 생성하고 그것을 사용자 디바이스(310)에 전송한다. 원격 서비스(330)는, 토큰 테스트 또는 크리덴셜 유효성 테스트가 통과한 경우, 사용자의 사용자명에 대해 애플리케이션에의 액세스를 승인한다. 원격 서비스(330)는 또한, 전화 토큰을 모바일 디바이스(320)의 스토리지에 안전하게 저장하기 위해 전화 토큰을 모바일 디바이스(320)에 다시 전송한다.
특정 구현에서, 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 시스템이 개시된다. 이 시스템은: 원격 서비스에 의해 제공되는 머신 판독가능 이미지 코드를 디스플레이하기 위한 원격 서비스 애플리케이션을 포함하는 사용자 디바이스; 및 원격 서비스에 액세스하기 위해 머신 판독가능 이미지 코드를 캡처하기 위한 모바일 디바이스를 포함하고, 모바일 디바이스는, 머신 판독가능 이미지 코드에 임베딩된 대응하는 세션 코드를 추출 및 호출하기 위한 것이고, 모바일 디바이스는, 추출된 세션 코드, 그리고 (a) 모바일 디바이스의 스토리지에서의 전화 토큰, 또는 (b) 사용자로부터 획득된 크리덴셜들 중 하나를, 크리덴셜들이 유효하거나 또는 전화 토큰이 확인될 때, 원격 서비스에 전송하여 사용자 디바이스에 대한 원격 서비스에의 액세스를 수신하기 위한 것이다.
하나의 구현에서, 머신 판독가능 이미지 코드는 신속 응답(QR) 코드를 포함한다. 하나의 구현에서, 사용자 디바이스는 텔레비전, 컴퓨터, 또는 게임 콘솔 중 하나이다. 하나의 구현에서, 이 시스템은, 모바일 디바이스로부터 위치 코드를 수신하고 세션 코드를 추출하기 위한 원격 서비스를 더 포함하고, 원격 서비스는 추출된 세션 코드가 세트 구조에서 계류 중인 세션 코드들 중 하나와 매칭하는지 여부를 결정하기 위한 것이고, 여기서 원격 서비스는 사용자 계정의 크리덴셜들 또는 전화 토큰을 수신하고, (a) 크리덴셜들의 유효성을 결정하거나, 또는 (b) 원격 서비스의 크리덴셜 데이터베이스에서의 전화 토큰의 존재를 결정하고, 여기서 (a) 크리덴셜들이 유효하거나, 또는 (b) 전화 토큰이 원격 서비스의 크리덴셜 데이터베이스에 있을 때, 원격 서비스는, 원격 서비스를 위해 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에의 액세스를 승인한다. 하나의 구현에서, 세션 코드는, 세션 코드의 사용을 제한하기 위한 만료 시간을 포함한다. 하나의 구현에서, 전화 토큰은, 사용자명을 포함하는 자바 웹 토큰이다. 하나의 구현에서, 전화 토큰은, 전화 토큰의 사용을 제한하기 위한 만료 시간을 포함한다.
도 4a는 본 개시내용의 일 구현에 따른 컴퓨터 시스템(400) 및 사용자(402)의 표현이다. 사용자(402)는 컴퓨터 시스템(400)을 사용하여 도 1 및 도 2의 프로세스들(100, 200), 및 도 3의 시스템(300)과 관련하여 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 인증 애플리케이션(490)을 구현한다.
컴퓨터 시스템(400)은 도 4b의 인증 애플리케이션(490)을 저장하고 실행한다. 부가적으로, 컴퓨터 시스템(400)은 소프트웨어 프로그램(404)과 통신할 수도 있다. 소프트웨어 프로그램(404)은 인증 애플리케이션(490)을 위한 소프트웨어 코드를 포함할 수도 있다. 소프트웨어 프로그램(404)은, 아래에 추가로 설명되는 바와 같이, CD, DVD, 또는 스토리지 드라이브와 같은 외부 매체 상에 로딩될 수도 있다.
게다가, 컴퓨터 시스템(400)은 네트워크(480)에 연결될 수도 있다. 네트워크(480)는 다양한 상이한 아키텍처들, 예를 들어, 클라이언트-서버 아키텍처, 피어-투-피어 네트워크 아키텍처(Peer-to-Peer network architecture), 또는 다른 타입의 아키텍처들로 연결될 수 있다. 예를 들어, 네트워크(480)는, 렌즈 파라미터 시프팅 애플리케이션(490) 내에서 사용되는 엔진들 및 데이터를 조정하는 서버(485)와 통신할 수 있다. 또한, 네트워크는 상이한 타입들의 네트워크들일 수 있다. 예를 들어, 네트워크(480)는 인터넷, 로컬 영역 네트워크 또는 로컬 영역 네트워크의 임의의 변형들, 광역 네트워크, 도시 영역 네트워크, 인트라넷 또는 엑스트라넷, 또는 무선 네트워크일 수 있다.
도 4b는 본 개시내용의 일 구현에 따른, 인증 애플리케이션(490)을 호스팅하는 컴퓨터 시스템(400)을 예시하는 기능 블록도이다. 제어기(410)는 프로그래밍가능 프로세서이고 컴퓨터 시스템(400) 및 그의 컴포넌트들의 동작을 제어한다. 제어기(410)는 메모리(420) 또는 임베디드 제어기 메모리(도시되지 않음)로부터 (예를 들어, 컴퓨터 프로그램의 형태의) 명령어들을 로딩하고 이들 명령어들을 실행하여 시스템을 제어한다, 예컨대 데이터 프로세싱을 제공한다. 그의 실행에서, 제어기(410)는 인증 애플리케이션(490)에 소프트웨어 시스템을 제공한다. 대안적으로, 이 서비스는 컴퓨터 시스템(400) 또는 제어기(410)에서의 별개의 하드웨어 컴포넌트들로서 구현될 수 있다.
메모리(420)는 컴퓨터 시스템(400)의 다른 컴포넌트들에 의한 사용을 위해 일시적으로 데이터를 저장한다. 하나의 구현에서, 메모리(420)는 RAM으로서 구현된다. 하나의 구현에서, 메모리(420)는 플래시 메모리 및/또는 ROM과 같은 장기 또는 영구 메모리를 또한 포함한다.
스토리지(430)는 컴퓨터 시스템(400)의 다른 컴포넌트들에 의한 사용을 위해 일시적으로 또는 장기간들의 시간 동안 데이터를 저장한다. 예를 들어, 스토리지(430)는, 인증 애플리케이션(490)에 의해 사용되는 데이터를 저장한다. 하나의 구현에서, 스토리지(430)는 하드 디스크 드라이브이다.
매체 디바이스(440)는 착탈식 매체를 수용하고 데이터를 판독하거나 그리고/또는 데이터를 삽입된 매체에 기입한다. 하나의 구현에서, 예를 들어, 매체 디바이스(440)는 광학 디스크 드라이브이다.
사용자 인터페이스(450)는, 컴퓨터 시스템(400)의 사용자로부터의 사용자 입력을 수락하고 사용자(402)에게 정보를 제시하기 위한 컴포넌트들을 포함한다. 하나의 구현에서, 사용자 인터페이스(450)는 키보드, 마우스, 오디오 스피커들, 및 디스플레이를 포함한다. 다른 구현에서, 사용자 인터페이스(450)는, 사용자에 의해 착용되고 사용자 입력들로서 안구 움직임들을 수집하는 데 사용되는 헤드셋을 또한 포함한다. 제어기(410)는 컴퓨터 시스템(400)의 동작을 조정하기 위해 사용자(402)로부터의 입력을 사용한다.
I/O 인터페이스(460)는, 외부 스토리지 또는 보충 디바이스들(예를 들어, 프린터 또는 PDA)과 같은 대응하는 I/O 디바이스들에 연결하기 위한 하나 이상의 I/O 포트를 포함한다. 하나의 구현에서, I/O 인터페이스(460)의 포트들은 포트들 예컨대: USB 포트들, PCMCIA 포트들, 직렬 포트들, 및/또는 병렬 포트들을 포함한다. 다른 구현에서, I/O 인터페이스(460)는, 외부 디바이스들과 무선으로 통신하기 위한 무선 인터페이스를 포함한다.
네트워크 인터페이스(470)는, 이더넷 커넥션을 지원하는 RJ-45 또는 "Wi-Fi" 인터페이스(802.11을 포함하지만, 이에 제한되지 않음)와 같은 유선 및/또는 무선 네트워크 커넥션을 포함한다.
컴퓨터 시스템(400)은, 컴퓨터 시스템들(예를 들어, 전력, 냉각, 오퍼레이팅 시스템)의 전형적인 부가적인 하드웨어 및 소프트웨어를 포함하지만, 이들 컴포넌트들은 단순함을 위해 도 4b에 구체적으로 도시되어 있지 않다. 다른 구현들에서, 컴퓨터 시스템의 상이한 구성들이 사용될 수 있다(예를 들어, 상이한 버스 또는 스토리지 구성들 또는 멀티-프로세서 구성).
개시된 구현들의 본 명세서의 설명은 본 기술분야의 임의의 통상의 기술자가 본 개시내용을 제조하거나 또는 사용하는 것을 가능하게 하도록 제공된다. 이들 구현들에 대한 수많은 수정들이 본 기술분야의 통상의 기술자들에게 쉽게 명백할 것이며, 본 명세서에서 정의된 원리들은 본 개시내용의 사상 또는 범위로부터 벗어남이 없이 다른 구현들에 적용될 수 있다. 예를 들어, 원격 서비스는 비디오 데이터, 음악 데이터, 이미지 데이터, 교육 데이터, 또는 의료 데이터와 같은 다양한 종류들의 정보 및 데이터를 제공할 수 있다. 다른 구현들에서, 생체 정보, 보안 질문들, 또는 암호화된 패스워드들과 같은 코드들 대신에 또는 이들에 부가적으로, 대안적인 형태들의 인증이 사용될 수 있다. 따라서, 본 개시내용은 본 명세서에서 보여진 구현들로 제한되도록 의도된 것이 아니라, 본 명세서에 개시된 주요하고 신규한 피처들에 부합하는 가장 넓은 범위를 부여받게 하려는 것이다. 이에 따라, 부가적인 변형들 및 구현들이 또한 가능하다.
상기에 논의된 예들 각각의 모든 피처들은 본 개시내용의 특정 구현에서 반드시 요구되는 것은 아니다. 추가로, 본 명세서에서 제시되는 설명 및 도면들은 본 개시내용에 의해 광범위하게 고려되는 청구 대상을 대표한다는 것이 이해되어야 한다. 본 개시내용의 범위는 본 기술분야의 통상의 기술자들에게 명백해질 수도 있는 다른 구현들을 완전히 포괄하고, 이에 따라 본 개시내용의 범위는 단지 첨부된 청구범위에 의해서만 제한된다는 것이 추가로 이해된다.

Claims (20)

  1. 사용자 디바이스로부터 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 방법으로서,
    모바일 디바이스를 사용하여 상기 사용자 디바이스 상에 디스플레이된 머신 판독가능 이미지 코드를 캡처하는 단계 - 상기 이미지 코드는 상기 원격 서비스에 의해 제공됨 -;
    상기 이미지 코드에 임베딩된 대응하는 세션 코드를 추출 및 호출하는 단계;
    전화 토큰이 스토리지(storage)에 있는지 여부를 결정하는 단계;
    (a) 상기 전화 토큰이 스토리지에 있는 경우, 상기 전화 토큰을 상기 원격 서비스에 전송하는 단계; 또는 (b) 상기 전화 토큰이 상기 스토리지에 없는 경우, 사용자명(username) 및 패스워드를 포함하는 크리덴셜(credential)들을 입력하도록 사용자에게 프롬프트하고 상기 입력된 크리덴셜들을 상기 원격 서비스에 전송하는 단계 중 하나; 및
    상기 세션 코드가 유효하고 상기 크리덴셜들이 유효하거나 또는 상기 전화 토큰이 확인될 때, 상기 사용자 디바이스에 대한 원격 서비스에의 액세스를 수신하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 머신 판독가능 이미지 코드는 신속 응답(quick response)(QR) 코드를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 사용자 디바이스는 텔레비전, 컴퓨터, 또는 게임 콘솔 중 하나인, 방법.
  4. 제1항에 있어서,
    상기 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에 의해 상기 머신 판독가능 이미지 코드를 디스플레이하는 단계
    를 더 포함하는, 방법.
  5. 제1항에 있어서,
    상기 전화 토큰이 상기 원격 디바이스로부터 수신될 때, 상기 모바일 디바이스의 스토리지에 상기 전화 토큰을 저장하는 단계
    를 더 포함하는, 방법.
  6. 사용자 디바이스로부터 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 원격 서비스 방법으로서,
    모바일 디바이스로부터 세션 코드를 수신하는 단계;
    상기 세션 코드가 세트 구조(set structure)에서 계류 중인 세션 코드들 중 하나와 매칭하는지 여부를 결정하는 단계;
    상기 세트 구조로부터 상기 매칭된 세션 코드를 삭제하는 단계;
    상기 사용자 계정의 크리덴셜들 또는 전화 토큰을 수신하는 단계;
    (a) 상기 크리덴셜들이 수신되는 경우, 상기 크리덴셜들의 유효성을 결정하는 단계; 또는 (b) 상기 크리덴셜들이 수신되지 않은 경우, 상기 전화 토큰이 상기 원격 서비스의 크리덴셜 데이터베이스에 존재하는지 여부를 결정하는 단계 중 하나;
    상기 크리덴셜들이 유효한 것으로 결정될 때, 상기 전화 토큰을 생성하고 이를 상기 사용자 디바이스에 전송하는 단계; 및
    상기 크리덴셜들을 사용하여 상기 원격 서비스를 위해 상기 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에의 액세스를 승인하는 단계
    를 포함하는, 원격 서비스 방법.
  7. 제6항에 있어서,
    상기 세션 코드를 생성하고 이를 상기 세트 구조에 저장하는 단계;
    상기 저장된 세션 코드를 사용하여 머신 판독가능 이미지 코드를 생성하는 단계; 및
    상기 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에 상기 생성된 머신 판독가능 이미지 코드를 전송하는 단계
    를 더 포함하는, 원격 서비스 방법.
  8. 제6항에 있어서,
    상기 크리덴셜들은 사용자명 및 패스워드를 포함하고, 상기 크리덴셜들의 유효성을 결정하는 단계는:
    saltedpassword를 생성하기 위해 상기 패스워드를 솔팅(salting)하는 단계; 및
    상기 크리덴셜 데이터베이스에 쌍 {username, saltedPassword}가 있는지 여부를 체크하는 단계
    를 포함하고,
    상기 saltedPassword는, 조합된 패스워드와 솔트(salt)에 해싱 함수를 적용한 결과이고,
    상기 솔트는 난수인, 원격 서비스 방법.
  9. 제6항에 있어서,
    상기 전화 토큰은, 사용자명을 포함하는 자바 웹 토큰(Java Web Token)인, 원격 서비스 방법.
  10. 제6항에 있어서,
    상기 전화 토큰을 상기 크리덴셜 데이터베이스에 솔팅된 해시로서 저장하는 단계
    를 더 포함하는, 원격 서비스 방법.
  11. 제6항에 있어서,
    상기 전화 토큰을 상기 모바일 디바이스의 스토리지에 저장하기 위해 상기 전화 토큰을 상기 모바일 디바이스에 전송하는 단계
    를 더 포함하는, 원격 서비스 방법.
  12. 제6항에 있어서,
    상기 세션 코드는, 상기 세션 코드의 사용을 제한하기 위한 만료 시간을 포함하는, 원격 서비스 방법.
  13. 제6항에 있어서,
    상기 전화 토큰은, 상기 전화 토큰의 사용을 제한하기 위한 만료 시간을 포함하는, 원격 서비스 방법.
  14. 원격 서비스에 액세스하기 위해 사용자 계정을 인증하기 위한 시스템으로서,
    상기 시스템은:
    상기 원격 서비스에 의해 제공되는 머신 판독가능 이미지 코드를 디스플레이하기 위한 원격 서비스 애플리케이션을 포함하는 사용자 디바이스; 및
    상기 원격 서비스에 액세스하기 위해 상기 머신 판독가능 이미지 코드를 캡처하기 위한 모바일 디바이스
    를 포함하고,
    상기 모바일 디바이스는, 상기 머신 판독가능 이미지 코드에 임베딩된 대응하는 세션 코드를 추출 및 호출하기 위한 것이고, 상기 모바일 디바이스는, 상기 추출된 세션 코드, 그리고 (a) 상기 모바일 디바이스의 스토리지에서의 전화 토큰, 또는 (b) 사용자로부터 획득된 크리덴셜들 중 하나를, 상기 크리덴셜들이 유효하거나 또는 상기 전화 토큰이 확인될 때, 상기 원격 서비스에 전송하여 상기 사용자 디바이스에 대한 상기 원격 서비스에의 액세스를 수신하기 위한 것인, 시스템.
  15. 제14항에 있어서,
    상기 머신 판독가능 이미지 코드는 신속 응답(QR) 코드를 포함하는, 시스템.
  16. 제14항에 있어서,
    상기 사용자 디바이스는 텔레비전, 컴퓨터, 또는 게임 콘솔 중 하나인, 시스템.
  17. 제14항에 있어서,
    상기 모바일 디바이스로부터 상기 세션 코드를 수신하고, 상기 세션 코드가 세트 구조에서 계류 중인 세션 코드들 중 하나와 매칭하는지 여부를 결정하기 위한 원격 서비스
    를 더 포함하고,
    상기 원격 서비스는 상기 세트 구조로부터 상기 매칭된 세션 코드를 삭제하기 위한 것이고,
    상기 원격 서비스는 상기 사용자 계정의 크리덴셜들 또는 전화 토큰을 수신하고, (a) 상기 크리덴셜들의 유효성을 결정하거나, 또는 (b) 상기 원격 서비스의 크리덴셜 데이터베이스에서의 상기 전화 토큰의 존재를 결정하고,
    상기 세션 코드가 상기 세트 구조에서 계류 중인 세션 코드들 중 하나와 매칭하고, (a) 상기 크리덴셜들이 유효하거나, 또는 (b) 상기 전화 토큰이 상기 원격 서비스의 크리덴셜 데이터베이스에 있을 때, 상기 원격 서비스는, 상기 원격 서비스를 위해 상기 사용자 디바이스 상에 설치된 원격 서비스 애플리케이션에의 액세스를 승인하는, 시스템.
  18. 제17항에 있어서,
    상기 세션 코드는, 상기 세션 코드의 사용을 제한하기 위한 만료 시간을 포함하는, 시스템.
  19. 제14항에 있어서,
    상기 전화 토큰은, 사용자명을 포함하는 자바 웹 토큰인, 시스템.
  20. 제14항에 있어서,
    상기 전화 토큰은, 상기 전화 토큰의 사용을 제한하기 위한 만료 시간을 포함하는, 시스템.
KR1020237029304A 2021-06-30 2022-06-28 코드 기반 2팩터 인증 KR20230138502A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163217029P 2021-06-30 2021-06-30
US63/217,029 2021-06-30
US17/850,684 2022-06-27
US17/850,684 US20230006996A1 (en) 2021-06-30 2022-06-27 Code-based Two Factor Authentication
PCT/US2022/035293 WO2023278426A1 (en) 2021-06-30 2022-06-28 Code-based two factor authentication

Publications (1)

Publication Number Publication Date
KR20230138502A true KR20230138502A (ko) 2023-10-05

Family

ID=82742787

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237029304A KR20230138502A (ko) 2021-06-30 2022-06-28 코드 기반 2팩터 인증

Country Status (5)

Country Link
US (1) US20230006996A1 (ko)
EP (1) EP4341832A1 (ko)
KR (1) KR20230138502A (ko)
CN (1) CN116391347A (ko)
WO (1) WO2023278426A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220174068A1 (en) * 2020-12-01 2022-06-02 Initial State Technologies, Inc. System and method for securely connecting a test and measurement instrument to a web service

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE13771854T1 (de) * 2012-04-01 2015-12-03 Authentify, Inc. Sichere Authentifizierung in einem Mehrparteiensystem
US8990914B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Device, method, and system for augmented reality security
US11032275B2 (en) * 2018-10-05 2021-06-08 Mimecast Services Ltd. System for improved identification and authentication

Also Published As

Publication number Publication date
EP4341832A1 (en) 2024-03-27
WO2023278426A1 (en) 2023-01-05
CN116391347A (zh) 2023-07-04
US20230006996A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
US10798081B2 (en) Method, apparatus, and system for providing a security check
US10762181B2 (en) System and method for user confirmation of online transactions
US20170353442A1 (en) Proximity-based authentication
US8914866B2 (en) System and method for user authentication by means of web-enabled personal trusted device
US10299118B1 (en) Authenticating a person for a third party without requiring input of a password by the person
TWI635409B (zh) 判定認證能力之查詢系統、方法及非暫態機器可讀媒體
WO2016197934A1 (zh) 一种二维码安全认证方法
US20130254858A1 (en) Encoding an Authentication Session in a QR Code
CN103685311A (zh) 一种登录验证方法及设备
US20150381614A1 (en) Method and apparatus for utilizing biometrics for content sharing
CN105656850B (zh) 一种数据处理方法、相关装置及系统
JP2009032070A (ja) 認証システム及び認証方法
US10284565B2 (en) Security verification method, apparatus, server and terminal device
JP5940671B2 (ja) Vpn接続認証システム、ユーザ端末、認証サーバ、生体認証結果証拠情報検証サーバ、vpn接続サーバ、およびプログラム
KR102308859B1 (ko) 생체 정보 기반 대리 인증 서비스 시스템 및 방법
US11171958B1 (en) Secure session sharing between computing devices
WO2015179640A1 (en) Method, apparatus, and system for providing a security check
KR20230138502A (ko) 코드 기반 2팩터 인증
KR102016976B1 (ko) 싱글 사인 온 서비스 기반의 상호 인증 방법 및 시스템
JP2023538860A (ja) 短距離トランシーバを介した検証済みメッセージングのためのシステムおよび方法
JP2015176167A (ja) ユーザ識別情報を安全に検証するためのネットワーク認証方法
US20220417020A1 (en) Information processing device, information processing method, and non-transitory computer readable storage medium