KR102555369B1 - 자동 링크 기반 메시지 검증 - Google Patents

자동 링크 기반 메시지 검증 Download PDF

Info

Publication number
KR102555369B1
KR102555369B1 KR1020217009480A KR20217009480A KR102555369B1 KR 102555369 B1 KR102555369 B1 KR 102555369B1 KR 1020217009480 A KR1020217009480 A KR 1020217009480A KR 20217009480 A KR20217009480 A KR 20217009480A KR 102555369 B1 KR102555369 B1 KR 102555369B1
Authority
KR
South Korea
Prior art keywords
user device
application
unregistered user
message
verification code
Prior art date
Application number
KR1020217009480A
Other languages
English (en)
Other versions
KR20210048546A (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 구글 엘엘씨
Publication of KR20210048546A publication Critical patent/KR20210048546A/ko
Application granted granted Critical
Publication of KR102555369B1 publication Critical patent/KR102555369B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • 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/42User authentication using separate channels for security data
    • 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/42User authentication using separate channels for security data
    • G06F21/43User authentication using separate channels for security data wireless channels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/3215Cryptographic 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 plurality of channels
    • 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/3271Cryptographic 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 challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)

Abstract

방법(600)은 사용자 디바이스(110) 상의 애플리케이션(512)을 시작시키라는 요청(220)을 수신하는 단계를 포함한다. 요청은 사용자 디바이스와 연관되고 사용자 디바이스를 애플리케이션에 등록하기 위해 요구되는 고유 피처(222)를 포함한다. 방법은 또한 사용자 디바이스 상의 애플리케이션을 시작시키기 위한 선택가능-링크(231)를 생성하는 단계; 및 고유 피처를 사용하여 선택가능-링크를 포함하는 제1 메시지(230)를 사용자 디바이스에 송신하는 단계를 포함한다. 방법은 또한 사용자 디바이스로부터 검증 코드(236)를 수신하는 것에 대한 응답으로 사용자 디바이스를 애플리케이션에 등록하는 단계를 포함한다.

Description

자동 링크 기반 메시지 검증
[0001] 본 개시내용은 자동 링크 기반 메시지 검증에 관한 것이다.
[0002] 전화 기반 통신 애플리케이션들(앱들)은 흔히 한 사용자가 다른 사용자를 초대하여 애플리케이션을 사용할 수 있게 하지만, 참여할 사용자에 의한 수동적 등록을 요구한다. 통상적으로, 사용자(초대자)는 잠재 사용자의 알려진 신원(예컨대, 이메일 주소)에 기초하여 또는 잠재 사용자의 사용자 디바이스와 연관된 알려진 피처(feature)(예컨대, 모바일 전화번호)에 기초하여 잠재 사용자에게 초대를 전송한다. 잠재 사용자는 이메일 또는 텍스트 메시지와 같은 일반적 통신 방법을 통해 초대를 수신할 수 있다. 초대에 응답하기 위해, 잠재 사용자는 먼저 통신 앱을 다운로드, 설치 및 초기화할 필요가 있을 수 있다. 초대는 또한 검증 코드를 포함할 수 있다. 통신 앱을 초기화한 이후, 잠재 사용자는 예컨대, 텍스트 메시지로부터 검증 코드를 복사하고, 그것을 초기화된 통신 앱에 의해 제공된 입력 필드로 붙여넣기함으로써 또는 검증 코드를 통신 앱에 수동으로 전사함으로써 초대를 수락하기 위해 검증 코드를 통신 앱으로 전송하도록 요구될 수 있다. 잠재 사용자가 초대를 성공적으로 수락한 이후, 초대자 및 잠재 사용자는 통신 앱을 통해 통신할 수 있다.
[0003] 본 개시내용의 일 양상은 사용자 디바이스의 피처의 자동 검증을 가능하게 하는 메시지를 생성하기 위한 방법을 제공한다. 방법은 데이터 프로세싱 하드웨어에서, 사용자 디바이스 상의 애플리케이션을 시작시키라는 요청을 수신하는 단계를 포함한다. 요청은 사용자 디바이스와 연관되는 고유 피처를 포함하고, 고유 피처는 사용자 디바이스를 애플리케이션에 등록하기 위해 요구된다. 방법은 또한 데이터 프로세싱 하드웨어가 사용자 디바이스 상의 애플리케이션을 시작시키기 위한 선택가능-링크를 생성하는 단계를 포함한다. 선택가능-링크는 애플리케이션을 식별하는 애플리케이션 식별자 및 고유 피처가 사용자 디바이스와 연관됨을 검증하는 데 사용되는 검증 코드를 포함한다. 방법은 데이터 프로세싱 하드웨어에서, 고유 피처를 사용하여 선택가능-링크를 포함하는 제1 메시지를 사용자 디바이스에 송신하는 단계를 더 포함한다. 제1 메시지는, 사용자 디바이스에 의해 수신될 때, 사용자 디바이스로 하여금, 사용자 디바이스 상에서 실행되는 그래픽 사용자 인터페이스 상에 선택가능-링크를 디스플레이하게 하도록 구성된다. 제1 메시지는 또한 그래픽 사용자 인터페이스 상에 디스플레이된 선택가능-링크의 선택을 표시하는 선택 표시를 수신한 이후 애플리케이션 식별자를 사용하여 애플리케이션을 시작시키고, 그리고 검증 코드를 송신하도록 구성된다. 검증 코드는 사용자 디바이스가 사용자 디바이스를 애플리케이션에 등록하기 위한 확인(confirmation)을 수신하는 것에 대한 응답으로 데이터 프로세싱 하드웨어에 송신된다. 방법은 또한 데이터 프로세싱 하드웨어가, 사용자 디바이스로부터 검증 코드를 수신하는 것에 대한 응답으로 사용자 디바이스를 애플리케이션에 등록하는 단계를 포함한다.
[0004] 본 개시내용의 구현들은 다음의 선택적 피처들 중 하나 이상의 피처들을 포함할 수 있다. 일부 구현들에서, 제1 메시지는, 사용자 디바이스에 의해 수신될 때, 사용자 디바이스로 하여금, 애플리케이션을 시작시킨 이후 그래픽 사용자 인터페이스에 확인 버튼을 디스플레이하게 하도록 추가로 구성된다. 확인 버튼은, 사용자 디바이스의 사용자에 의해 선택될 때, 사용자가 사용자 디바이스를 애플리케이션에 등록하기 위한 확인을 표시하고, 사용자 디바이스로 하여금 검증 코드의 사용자 입력을 요구하지 않고 검증 코드를 데이터 프로세싱 하드웨어에 송신하게 한다. 일부 예들에서, 검증 코드가 사용자 디바이스로부터 수신될 때 사용자 디바이스를 애플리케이션에 등록하는 단계는, 제1 메시지가 사용자 디바이스에 송신될 때부터 검증 코드가 사용자 디바이스로부터 수신될 때까지의 시간 기간이 유효 기간 임계치를 만족시키는지 여부를 결정하는 단계를 포함한다. 시간 기간이 유효 기간 임계치를 만족시킬 때, 방법은 사용자 디바이스를 애플리케이션에 등록하는 단계를 포함한다. 대안적으로, 시간 기간이 유효 기간 임계치를 만족시키지 않을 때, 방법은 사용자 디바이스를 애플리케이션에 등록하는 것을 방지하는 단계를 포함한다.
[0005] 방법은 또한 시간 기간이 유효 기간 임계치를 만족시키지 않을 때, 고유 피처를 사용하여 제2 메시지를 사용자 디바이스에 송신하는 단계를 포함할 수 있다. 제2 메시지는 고유 피처가 사용자 디바이스와 연관됨을 검증하는 데 사용되는 새로운 검증 코드를 포함한다. 선택적으로, 선택가능-링크는, 선택될 때 사용자 디바이스가, 애플리케이션이 사용자 디바이스 상에 아직 설치되지 않은 경우 애플리케이션을 설치하도록 그리고/또는 애플리케이션이 사용자 디바이스 상에 이미 설치된 경우 애플리케이션을 열도록 프롬프트(prompt)하는 딥 링크(deep link)를 포함한다. 일부 실시예들에서, 제1 메시지는, 사용자 디바이스에 의해 수신될 때, 애플리케이션을 시작시킨 이후, 애플리케이션을 사용자 디바이스와 연관된 고유 피처로 파퓰레이트(populate)하도록 추가로 구성된다. 고유 피처는 전화번호를 포함할 수 있다. 일부 예들에서, 방법은 사용자 디바이스를 애플리케이션에 등록한 이후, 제2 메시지를 사용자 디바이스에 송신하는 단계를 더 포함한다. 제2 메시지는, 사용자 디바이스에 의해 수신될 때, 사용자 디바이스로 하여금, 사용자 디바이스가 애플리케이션에 성공적으로 등록됨을 사용자 디바이스의 사용자에게 통지하게 하도록 구성된다.
[0006] 본 개시내용의 다른 양상은, 사용자 디바이스의 데이터 프로세싱 하드웨어에서, 사용자 디바이스와 연관된 전화번호를 검증하기 위한 선택가능-링크를 포함하는 제1 메시지를 수신하는 단계를 포함하는 방법을 제공한다. 선택가능-링크는 전화번호에 대응하는 메타데이터 및 전화번호가 사용자 디바이스와 연관됨을 검증하는 데 사용되는 검증 코드를 포함한다. 방법은 또한, 데이터 프로세싱 하드웨어가, 사용자 디바이스 상에서 실행되는 그래픽 사용자 인터페이스에서 선택가능-링크를 디스플레이하는 단계, 및 데이터 프로세싱 하드웨어에서, 그래픽 사용자 인터페이스 상에 디스플레이된 선택가능-링크의 선택을 표시하는 선택 표시를 수신하는 단계를 포함한다. 선택 표시를 수신한 이후, 방법은 데이터 프로세싱 하드웨어가, 네트워크를 통해 검증 코드를 데이터 프로세싱 하드웨어와 통신하는 서비스에 송신하는 단계를 포함한다. 검증 코드는 서비스가 검증 코드를 수신하는 것에 대한 응답으로, 서비스로 하여금, 전화번호가 사용자 디바이스와 연관됨을 검증하게 하도록 구성된다.
[0007] 본 개시내용의 구현들은 다음의 선택적 피처들 중 하나 이상의 피처들을 포함할 수 있다. 일부 구현들에서, 선택가능-링크는 사용자 디바이스를 애플리케이션에 등록하기 위해 사용자 디바이스와 연관된 전화번호를 요구하는 애플리케이션을 식별하는 애플리케이션 식별자를 더 포함한다. 그런 다음, 방법은 선택 표시를 수신하는 것에 대한 응답으로, 데이터 프로세싱 하드웨어가, 애플리케이션 식별자를 사용하여 사용자 디바이스 상의 애플리케이션을 시작시키는 단계, 및 데이터 프로세싱 하드웨어가, 사용자 디바이스와 연관된 전화번호로 애플리케이션을 파퓰레이트하는 단계를 더 포함한다. 선택가능-링크의 선택을 표시하는 선택 표시를 수신한 이후, 방법은, 데이터 프로세싱 하드웨어가 그래픽 사용자 인터페이스 상에 확인 버튼을 디스플레이하는 단계, 및 데이터 프로세싱 하드웨어에서, 전화번호가 사용자 디바이스와 연관됨을 검증하기 위해 확인 버튼의 선택을 표시하는 제2 선택 표시를 수신하는 단계를 포함할 수 있다. 그런 다음, 제2 선택 표시를 수신하는 것에 대한 응답으로, 방법은 데이터 프로세싱 하드웨어가, 검증 코드의 사용자 입력을 요구하지 않고 검증 코드를 서비스에 자동으로 송신하는 단계를 포함한다.
[0008] 일부 예들에서, 방법은 제1 메시지를 수신하기 이전, 데이터 프로세싱 하드웨어가, 사용자 디바이스 상의 애플리케이션을 시작시키고 그리고/또는 자원에 액세스하라고 요청하는 요청을 서비스에 송신하는 단계를 포함한다. 요청은 사용자 디바이스와 연관된 전화번호를 포함하고, 서비스는 요청에 의해 수신된 전화번호를 사용하여 제1 메시지를 사용자 디바이스에 송신한다.
[0009] 본 개시내용의 또 다른 양상은, 데이터 프로세싱 하드웨어 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하는 시스템을 제공한다. 메모리 하드웨어는, 데이터 프로세싱 하드웨어 상에서 실행될 때, 데이터 프로세싱 하드웨어로 하여금, 동작들을 수행하게 하는 명령을 저장한다. 동작들은 사용자 디바이스 상의 애플리케이션을 시작시키라는 요청을 수신하는 것을 포함한다. 요청은 사용자 디바이스와 연관되는 고유 피처를 포함하고, 고유 피처는 사용자 디바이스를 애플리케이션에 등록하기 위해 요구된다. 동작들은 또한 사용자 디바이스 상의 애플리케이션을 시작시키기 위한 선택가능-링크를 생성하는 것을 포함한다. 선택가능-링크는 애플리케이션을 식별하는 애플리케이션 식별자 및 고유 피처가 사용자 디바이스와 연관됨을 검증하는 데 사용되는 검증 코드를 포함한다. 동작들은 고유 피처를 사용하여 선택가능-링크를 포함하는 제1 메시지를 사용자 디바이스에 송신하는 것을 더 포함한다. 제1 메시지는, 사용자 디바이스에 의해 수신될 때, 사용자 디바이스로 하여금, 사용자 디바이스 상에서 실행되는 그래픽 사용자 인터페이스 상에 선택가능-링크를 디스플레이하게 하도록 구성된다. 제1 메시지는 또한 그래픽 사용자 인터페이스 상에 디스플레이된 선택가능-링크의 선택을 표시하는 선택 표시를 수신한 이후 애플리케이션 식별자를 사용하여 애플리케이션을 시작시키고, 그리고 검증 코드를 송신하도록 구성된다. 검증 코드는 검증 코드와 연관되고, 사용자 디바이스가 사용자 디바이스를 애플리케이션에 등록하기 위한 확인을 수신하는 것에 대한 응답으로 데이터 프로세싱 하드웨어에 송신된다. 동작들은 또한 사용자 디바이스로부터 검증 코드를 수신하는 것에 대한 응답으로 사용자 디바이스를 애플리케이션에 등록하는 것을 포함한다.
[0010] 본 개시내용의 구현들은 다음의 선택적 피처들 중 하나 이상의 피처들을 포함할 수 있다. 일부 구현들에서, 제1 메시지는, 사용자 디바이스에 의해 수신될 때, 사용자 디바이스로 하여금, 애플리케이션을 시작시킨 이후 그래픽 사용자 인터페이스에 확인 버튼을 디스플레이하게 하도록 추가로 구성된다. 확인 버튼은, 사용자 디바이스의 사용자에 의해 선택될 때, 사용자가 사용자 디바이스를 애플리케이션에 등록하기 위한 확인을 표시하고, 사용자 디바이스로 하여금 검증 코드의 사용자 입력을 요구하지 않고 검증 코드를 데이터 프로세싱 하드웨어에 송신하게 한다. 일부 예들에서, 검증 코드가 사용자 디바이스로부터 수신될 때 사용자 디바이스를 애플리케이션에 등록하는 것은, 제1 메시지가 사용자 디바이스에 송신될 때부터 검증 코드가 사용자 디바이스로부터 수신될 때까지의 시간 기간이 유효 기간 임계치를 만족시키는지 여부를 결정하는 것을 포함한다. 시간 기간이 유효 기간 임계치를 만족시킬 때, 동작들은 사용자 디바이스를 애플리케이션에 등록하는 것을 포함한다. 대안적으로, 시간 기간이 유효 기간 임계치를 만족시키지 않을 때, 동작들은 사용자 디바이스를 애플리케이션에 등록하는 것을 방지하는 것을 포함한다.
[0011] 동작들은 또한 시간 기간이 유효 기간 임계치를 만족시키지 않을 때, 고유 피처를 사용하여 제2 메시지를 사용자 디바이스에 송신하는 것을 포함할 수 있다. 제2 메시지는 고유 피처가 사용자 디바이스와 연관됨을 검증하는 데 사용되는 새로운 검증 코드를 포함한다. 선택적으로, 선택가능-링크는, 선택될 때 사용자 디바이스가, 애플리케이션이 사용자 디바이스 상에 아직 설치되지 않은 경우 애플리케이션을 설치하도록 그리고/또는 애플리케이션이 사용자 디바이스 상에 이미 설치된 경우 애플리케이션을 열도록 프롬프트하는 딥 링크를 포함한다. 일부 실시예들에서, 제1 메시지는, 사용자 디바이스에 의해 수신될 때, 애플리케이션을 시작시킨 이후, 애플리케이션을 사용자 디바이스와 연관된 고유 피처로 파퓰레이트하도록 추가로 구성된다. 고유 피처는 전화번호를 포함할 수 있다. 일부 예들에서, 동작들은 사용자 디바이스를 애플리케이션에 등록한 이후, 제2 메시지를 사용자 디바이스에 송신하는 것을 더 포함한다. 제2 메시지는, 사용자 디바이스에 의해 수신될 때, 사용자 디바이스로 하여금, 사용자 디바이스가 애플리케이션에 성공적으로 등록됨을 사용자 디바이스의 사용자에게 통지하게 하도록 구성된다.
[0012] 본 개시내용의 또 다른 양상은, 사용자 디바이스의 데이터 프로세싱 하드웨어 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함하는 시스템을 제공한다. 메모리 하드웨어는, 데이터 프로세싱 하드웨어 상에서 실행될 때, 데이터 프로세싱 하드웨어로 하여금, 동작들을 수행하게 하는 명령을 저장한다. 동작들은 사용자 디바이스와 연관된 전화번호를 검증하기 위한 선택가능-링크를 포함하는 제1 메시지를 수신하는 것을 포함한다. 선택가능-링크는 전화번호에 대응하는 메타데이터 및 전화번호가 사용자 디바이스와 연관됨을 검증하는 데 사용되는 검증 코드를 포함한다. 동작들은 또한 사용자 디바이스 상에서 실행되는 그래픽 사용자 인터페이스에서 선택가능-링크를 디스플레이하는 것 및 그래픽 사용자 인터페이스 상에 디스플레이된 선택가능-링크의 선택을 표시하는 선택 표시를 수신하는 것을 포함한다. 선택 표시를 수신한 이후, 동작들은 네트워크를 통해 검증 코드를 데이터 프로세싱 하드웨어와 통신하는 서비스에 송신하는 것을 포함한다. 검증 코드는 서비스가 검증 코드를 수신하는 것에 대한 응답으로, 서비스로 하여금, 전화번호가 사용자 디바이스와 연관됨을 검증하게 하도록 구성된다.
[0013] 본 개시내용의 구현들은 다음의 선택적 피처들 중 하나 이상의 피처들을 포함할 수 있다. 일부 구현들에서, 선택가능-링크는 사용자 디바이스를 애플리케이션에 등록하기 위해 사용자 디바이스와 연관된 전화번호를 요구하는 애플리케이션을 식별하는 애플리케이션 식별자를 더 포함한다. 그런 다음, 동작들은 선택 표시를 수신하는 것에 대한 응답으로, 애플리케이션 식별자를 사용하여 사용자 디바이스 상의 애플리케이션을 시작시키는 것, 및 사용자 디바이스와 연관된 전화번호로 애플리케이션을 파퓰레이트하는 것을 더 포함한다. 선택가능-링크의 선택을 표시하는 선택 표시를 수신한 이후, 동작들은 그래픽 사용자 인터페이스 상에 확인 버튼을 디스플레이하는 것, 및 전화번호가 사용자 디바이스와 연관됨을 검증하기 위해 확인 버튼의 선택을 표시하는 제2 선택 표시를 수신하는 것을 포함할 수 있다. 그런 다음, 제2 선택 표시를 수신하는 것에 대한 응답으로, 동작들은 검증 코드의 사용자 입력을 요구하지 않고 검증 코드를 서비스에 자동으로 송신하는 것을 포함한다.
[0014] 일부 예들에서, 동작들은 제1 메시지를 수신하기 이전, 사용자 디바이스 상의 애플리케이션을 시작시키고 그리고/또는 자원에 액세스하라고 요청하는 요청을 서비스에 송신하는 것을 포함한다. 요청은 사용자 디바이스와 연관된 전화번호를 포함하고, 서비스는 요청에 의해 수신된 전화번호를 사용하여 제1 메시지를 사용자 디바이스에 송신한다.
[0015] 본 개시내용의 하나 이상의 구현들의 세부사항들은 아래의 설명 및 첨부한 도면들에서 기술된다. 다른 양상들, 피처들, 및 이점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백할 것이다.
[0016] 도 1은 링크-기반 피처 검증을 위한 예시적 시스템의 개략도이다.
[0017] 도 2는 도 1의 시스템의 메시지 생성기의 예시적 컴포넌트들의 개략도이다.
[0018] 도 3은 링크-기반 피처 검증 시스템들과 연관된 예시적 메시지의 개략도이다.
[0019] 도 4는 도 1의 시스템의 메시지 유효성 검증기(message validator)의 예시적 컴포넌트들의 개략도이다.
[0020] 도 5는 링크-기반 피처 검증을 위한 도 1의 시스템의 피처 검증기와 사용자 디바이스 사이의 상호 작용의 개략도이다.
[0021] 도 6은 자동 링크-기반 피처 검증을 위한 예시적 방법의 흐름도이다.
[0022] 도 7은 자동 링크-기반 메시지 검증을 위한 다른 예시적 방법의 흐름도이다.
[0023] 도 8은 본원에서 설명된 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적 컴퓨팅 디바이스의 개략도이다.
[0024] 도 9는 본원에서 설명된 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적 사용자 디바이스의 개략도이다.
[0025] 다양한 도면들에서의 유사한 참조 심볼들은 유사한 엘리먼트(element)들을 표시한다.
[0026] 전화-기반 통신 애플리케이션들(앱들)은 일반적으로 현재 사용자가 참여할 잠재 사용자를 초대하도록 요구한다. 통상적으로, 초대자(예컨대, 애플리케이션의 현재 사용자)는 잠재 사용자의 알려진 신원에 기초하여 또는 잠재 사용자와 연관된 알려진 피처(예컨대, 모바일 전화번호, 이메일 주소, 사용자 이름 등)에 기초하여 잠재 사용자에게 초대를 전송한다. 잠재 사용자가 사용자 디바이스 상에서 초대를 수신하고 초대를 수락한 이후, 애플리케이션은 사용자 디바이스의 피처(예컨대, 사용자 디바이스의 전화번호)의 소유권 또는 제어를 검증한다. 일반적으로, 애플리케이션(또는 애플리케이션과 연관된 서비스)은 예컨대, SMS(Short Message Service)를 통해 검증 코드를 포함하는 메시지를 사용자 디바이스에 전송할 것이다. 알려진 신원 또는 알려진 피처를 검증하기 위해, 잠재 사용자는 메시지 열기, 검증 코드 획득, 애플리케이션 설치(이전에 설치되지 않은 경우) 및 실행, 및 (예컨대, 수동 입력 또는 복사 및 붙여넣기를 통한) 검증 코드 제공의 비효율적 프로세스를 수행해야 한다. 본 개시내용의 구현들은 사용자 장치가 전술된 단계들 중 몇몇을 자동화할 수 있게 하도록 충분한 정보를 갖는 메시지를 생성함으로써 이러한 기술적 비효율성들을 해결한다.
[0027] 본원에서의 구현들은 사용자 디바이스의 피처(예컨대, 전화번호)의 자동 검증을 가능하게 하는 메시지를 생성하도록 구성된 피처 검증기에 관련된다. 도 1을 참조하면, 일부 구현들에서, 예시적 시스템(100)은 초대자(9) 및 사용자(10)와 연관되고 네트워크(122)를 통해 원격 시스템(120)과 통신하는 하나 이상의 사용자 디바이스들(109, 110)을 포함한다. 사용자 디바이스들(109, 110)은 스마트폰들, 태블릿들, 스마트 워치들과 같은 모바일 디바이스들을 포함한다. 원격 시스템(120)은 단일 컴퓨터, 다수의 컴퓨터들, 또는 스케일러블(scalable)/탄력적 컴퓨팅 자원들(124)(예컨대, 데이터 프로세싱 하드웨어) 및/또는 저장 자원들(126)(예컨대, 메모리 하드웨어)을 갖는 분산 시스템(예컨대, 클라우드 환경)일 수 있다. 네트워크(122)는 인터넷과 같은 글로벌 통신 네트워크일 수 있다. 도 1은 동일한 네트워크(122)를 통해 통신하는 사용자 디바이스들(109, 110)을 예시하지만, 사용자 디바이스들(109, 110)은 상이한 네트워크들을 통해 원격 시스템(120)과 통신할 수 있다. 일부 예들에서, 네트워크는 SMS, MMS(Multimedia Messaging Service), RCS(Rich Communication Services)(RCS 또는 '채팅')을 위한 범용 프로파일 또는 임의의 다른 적합한 통신 프로토콜을 지원하는 전화 네트워크이다. 일부 예들에서, 초대자(9)는 전화-기반 통신 애플리케이션(앱)을 통해 사용자(10)와 통신하기를 원한다. 통신 앱은 음성, 텍스트, 사진 파일 공유 또는 다른 형태들의 통신에 의해 통신하는 데 사용될 수 있다. 도시된 예에서, 초대자(9)는 사용자 디바이스(110) 상에서 실행되는 모바일 애플리케이션(512)을 사용하여 통신할 사용자(10)를 초대한다. 예컨대, 초대자(9)의 사용자 디바이스(109)는, 초대자(9)와의 통신들을 가능하게 하기 위해 사용자(10)와 연관된 사용자 디바이스(110) 상의 모바일 애플리케이션(512)을 등록하는 것 또는 시작시키는 것 중 적어도 하나를 위해 사용자(10)를 초대하는 등록 요청(220)을 원격 시스템(120)에 전송함으로써 모바일 애플리케이션(512)을 사용하여 통신할 사용자(10)를 초대할 수 있다. 일부 예들에서, 애플리케이션(512)과 연관된 서비스(125)는 초대자(9)와 연관된 사용자 디바이스(109)로부터 등록 요청(220)을 수신하고, 등록 요청(220)을 원격 시스템(120) 상에서 실행되는 피처 검증기(130)에 전송한다. 일부 예들에서, 애플리케이션(512)과 연관된 서비스(125)는 원격 시스템 (120) 상에서 실행되고, 피처 검증기(130)를 구현한다.
[0028] 도시된 예에서, 원격 시스템(120)은 초대자(9)로부터 등록 요청(220)을 수신하는 피처 검증기(130)를 실행한다. 피처 검증기(130)는 메시지 생성기(210) 및 유효성 검증기(410)를 구현할 수 있다. 메시지 생성기(210)는 사용자 디바이스(109) 또는 초대자(9)와 연관된 다른 디바이스, 이를테면, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 또는 다른 컴퓨팅 디바이스로부터 수신된 등록 요청(220)을 프로세싱하도록 구성된다.
[0029] 아래에서 더 상세하게 설명되는 바와 같이, 메시지 생성기(210)는 등록 요청(220)에 기초하여 검증 메시지(230)를 생성한다. 원격 시스템(120)은 검증 메시지(230)를 사용자(10)의 사용자 디바이스(110)에 전송한다. 검증 메시지(230)는 선택가능-링크(231)를 포함한다. 도시된 예에서, 사용자 디바이스(110)는 검증 메시지(230)를 수신하는 것에 대한 응답으로 사용자 디바이스(110)의 스크린(113) 상에 선택가능-링크(231)를 디스플레이하는 그래픽 사용자 인터페이스(111)를 실행한다. 사용자 디바이스(110)는 (예컨대, 아래에서 더 상세하게 설명되는 바와 같이) 애플리케이션(512)을 설치하고, 시작시키고 그리고/또는 등록하기 위해 (예컨대, 사용자(10)에 의한 입력을 통해) 선택가능-링크(231)의 선택을 표시하는 선택 표시를 수신할 수 있다. 일부 예들에서, 피처 검증기(130)는 사용자 디바이스(110)가 검증 메시지(230)를 수신한 이후 사용자 디바이스(110)로부터 확인 메시지(420)를 수신한다. 여기서, 피처 검증기(130)의 유효성 검증기(410)는 확인 메시지(420)를 프로세싱하고, 확인 메시지(420)에 기초하여 등록 통지(430)를 생성하도록 구성된다. 일부 예들에서, 유효성 검증기(410)는 사용자(10)를 모바일 애플리케이션(512)과 연관된 온라인 서비스(125)에 등록한다. 그런 다음, 원격 시스템(120)은 검증 통지(430)를 사용자(10)의 사용자 디바이스(110)에 전송하여 사용자 디바이스(110) 및/또는 연관된 고유 피처(222)(도 2)가 모바일 애플리케이션(512) 및/또는 연관된 서비스(125)에 성공적으로 등록되었음을 사용자(10)에게 통지한다. 예컨대, 서비스(125)는, 모바일 애플리케이션(512)이 대응하는 사용자 디바이스들(109, 110) 상에 설치되고 이들에 등록될 때 둘 이상의 사용자 디바이스들(109, 110)이 모바일 애플리케이션(512)을 사용하여 텔레포니(telephony) 또는 메시징(예컨대, 음성 또는 텍스트)을 통해 서로 통신할 수 있게 하는 통신 서비스일 수 있다. 원격 시스템(120)은 또한 성공적 등록을 초대자(9)(또는 임의의 다른 사용자들)에게 통지할 수 있다.
[0030] 등록 요청(220)은 또한 예컨대, 2-팩터 인증(two-factor authentication)을 위해 사용자(10)를 포함한 다른 사용자들로부터 올 수 있다. 예컨대, 사용자(10)는 예컨대, 사용자 이름 및 패스워드와 더불어 검증으로 사용자 디바이스(110)의 사용자(10)의 소유에 대한 검증을 요구하는 사용자 디바이스(110) 상의 자원 또는 애플리케이션(512)(예컨대, 뱅킹 애플리케이션)에 대한 액세스를 요청할 수 있다. 이 예에서, 사용자(10)는 자원 또는 애플리케이션(512)에 대한 액세스를 요청할 수 있고, 차례로 원격 시스템(120)은 사용자 디바이스(110) 또는 제휴 서비스(125)로부터 요청(이 경우 인증을 위한 요청)을 수신할 수 있다. 그런 다음, 원격 시스템(120)은 선택가능-링크(231)를 포함하는 사용자 디바이스(110)에 전송할 검증 메시지(230)를 생성할 수 있다. 그런 다음, 사용자(10)는 사용자 디바이스(110)의 소유를 검증하기 위해 선택가능-링크(231)의 선택을 표시할 수 있다. 메시지(230)는 사용자(10)가 정보를 입력하도록 요구하지 않고 다른 잠재 관련 정보(예컨대, 사용자 이름)와 함께 요청 애플리케이션(512)(즉, 뱅킹 애플리케이션)에 검증 코드(236)(도 2)를 제공하도록 구성될 수 있다.
[0031] 도 2는 메시지 생성기(210)의 개략도(200)를 도시한다. 메시지 생성기(210)는 예컨대, 사용자 디바이스(109) 상에서 실행되는 애플리케이션(512)을 통해 초대자(9)의 사용자 디바이스(109)로부터 등록 요청(220)을 수신한다. 등록 요청(220)은 사용자(10)의 사용자 디바이스(110)와 연관된 고유 피처(222)를 포함한다. 고유 피처(222)는 사용자 디바이스(110)를 애플리케이션(512)에 등록하고 그리고/또는 애플리케이션(512)을 사용하기 위해 요구된다(예컨대, 고유 피처(222)는 사용자 디바이스(110)의 소유권 또는 제어를 검증할 수 있음). 일부 예들에서, 고유 피처(222)는 사용자 디바이스(110)와 연관된 전화번호(342)(도 3)이다. 대안적으로, 고유 피처(222)는 이메일 주소, 사용자 이름, MAC(media access control) 주소, 또는 사용자 디바이스(110)와 연관된 일부 다른 피처/식별자이다. 등록 요청(220)을 수신하는 것에 대한 응답으로, 메시지 생성기(210)는 검증 메시지(230)를 생성한다. 검증 메시지(230)는 사용자 디바이스(110)에 등록을 요청하는 모바일 애플리케이션(512)을 식별하는 애플리케이션 ID(identification)(232)를 포함한다. 일부 예들에서, 애플리케이션 ID(232)는 앱(512)과 연관된 고유 이름 또는 번호이고, 온라인 애플리케이션 리포지토리(540)(도 5)를 통해 메시지 생성기(210)에 의해 획득된다. 그러나, 다른 형태들의 애플리케이션 ID(232)가 가능하다. 검증 메시지(230)는 또한 사용자 디바이스(110)의 고유 피처(222)와 연관된 메타데이터(234) 및 검증 코드(236)를 포함한다. 피처(222)와 연관된 메타데이터(234)는 예컨대, 사용자 디바이스(110) 상에서 실행하기 위해 애플리케이션(512)을 시작시키거나 그리고/또는 초기화하는 데 사용될 수 있다. 아래에서 더 상세하게 설명되는 바와 같이, 검증 코드(236)는 검증 메시지(230)와 고유하게 연관된 문자들, 심볼들 및/또는 숫자들의 조합일 수 있다. 선택적으로, 검증 메시지(230)는 검증 코드(236)가 유효 기간(238)의 만료 시에 무효가 되도록 메시지(230)의 만료를 설정하는 데 사용되는 유효 기간(238)을 더 포함할 수 있다. 일부 예들에서, 검증 메시지(230)는 검증 코드(236)의 유효 기간(238)을 표시하는 토큰을 포함한다.
[0032] 일부 구현들에서, 메시지 생성기(210)는, 사용자 디바이스(110)로 하여금, 스크린(113)(도 1) 상에 디스플레이하기 위해 사용자 디바이스(110) 상에서 실행되는 GUI(graphical user interface)(111)(도 1) 상에 선택가능-링크(231)(도 1 및 도 5)로서 검증 메시지(230)를 디스플레이하게 하도록 검증 메시지(230)를 구성시킨다. GUI(111)가 GUI(111) 상에 디스플레이된 선택가능-링크(231)의 선택을 표시하는 선택 표시를 수신하면, 검증 메시지(230)는 애플리케이션 ID(232)를 사용하여 사용자 디바이스(110) 상에 애플리케이션(512)을 설치(사용자 디바이스(110) 상에 이전에 설치되지 않은 경우)하여 시작시키도록 구성된다. 일단 애플리케이션(512)이 사용자 디바이스(110)에 의해 시작되면, 사용자 디바이스(110) 상에서 실행되는 GUI(111)는 사용자 디바이스(110)를 애플리케이션(512)에 등록하는 것에 동의하도록 사용자(10)에게 요청/프롬프트하는 확인 통지(514)를 디스플레이할 수 있다. 예컨대, GUI(111)는 버튼을 선택하거나, 음성 입력을 제공하거나, 또는 사용자(10)가 사용자 디바이스(110) 및/또는 연관된 고유 피처(222)를 애플리케이션(512)에 등록하는 것에 동의함을 표시하는 일부 다른 사용자 입력을 제공하도록 사용자(10)에게 프롬프트할 수 있다. 그 이후, 사용자 디바이스(110)는 사용자(10)가 사용자 디바이스(110) 및/또는 연관된 고유 피처(222)를 애플리케이션(512)에 등록하는 것에 동의함을 표시하는 확인 메시지(420)(도 1 및 도 4)를 피처 검증기(130)에 송신할 수 있다. 일부 실시예들에서, 등록은 선택가능-링크(231)의 선택을 표시하는 것 이상의 사용자 동의를 요구하지 않고 발생할 수 있다(즉, GUI(111)는 추가 확인을 제공하도록 사용자(10)에게 프롬프트하지 않음).
[0033] 도 3을 참조하면, 일부 구현들에서, 개략도(300)는 사용자 디바이스(110)가 애플리케이션(512)을 자동으로 설치 및/또는 시작시킬 수 있게 하고 그리고 고유 피처(222) 및/또는 연관된 사용자 디바이스(110)를 애플리케이션(512)에 등록하기 위해 필요한 등록 정보를 파퓰레이트할 수 있게 하기에 충분한 정보(예컨대, 앱 ID(232), 메타데이터(234) 및 검증 코드(236))를 제공하는 딥 링크(예컨대, Firebase 동적 링크)를 포함하는 검증 메시지(230)를 도시한다. 예컨대, 메타데이터(234)는 사용자 디바이스(110)와 연관된 국가 코드(340) 및 전화번호(342)를 포함할 수 있다.
[0034] 도 4는, 사용자 디바이스(110)로부터 확인 메시지(420)를 수신하고, 수신된 확인 메시지(420)에 기초하여 고유 피처(222) 및/또는 사용자 디바이스(110)를 애플리케이션(512)에 등록하는지 아닌지를 결정하는 피처 검증기(130)의 유효성 검증기(410)의 개략도(400)를 도시한다. 확인 메시지(420)는, 사용자 디바이스(110)의 사용자(10)가 고유 피처(222) 및/또는 사용자 디바이스(110)를 애플리케이션(512)에 등록하는 것에 동의한 이후, 사용자 디바이스(110)에 의해 생성되고, 사용자 디바이스(110)로부터 전송될 수 있다. 확인 메시지(420)는, 사용자 디바이스(110)와 연관된 피처(222)가 검증되고 사용자(10)가 고유 피처(222)를 애플리케이션(512)에 등록하는 것에 동의한다는 사용자(10) 및/또는 애플리케이션(512)에 의한 수락을 확인한다. 예컨대, 확인 메시지(420)는 메시지 생성기(210)에 의해 생성되고 사용자 디바이스(110)에 이전에 전송된 검증 메시지(230)에 포함된 검증 코드(236)(또는 검증 코드(236)와 연관된 코드)를 포함한다. 따라서, 확인 메시지(420)를 수신하는 것에 대한 응답으로, 유효성 검증기(410)는 고유 피처(222)를 검증하기 위해 검증 코드(236)가 유효한지(예컨대, 검증 메시지(230)에 제공된 검증 코드(236)와 매칭하는지)를 먼저 결정하도록 구성된다. 검증 코드(236)의 유효성은 검증 코드(236)가 이전에 사용된 것으로 확인되지 않았음을 추가로 요구할 수 있는데, 즉, 동일한 검증 코드(236)의 재사용을 방지하는 것을 추가로 요구할 수 있다. 선택적으로, 유효성 검증기(410)는 검증 코드(236)와 연관된 유효 기간(238)이 만족되는지(예컨대, 만료되지 않았는지) 여부를 결정할 수 있다. 예컨대, 유효성 검증기(410)는 메시지(230)가 사용자 디바이스(110)에 송신될 때부터 확인 메시지(420)가 사용자 디바이스(110)로부터 수신될 때까지의 시간 기간이 유효 기간(238)을 만족시키는지 여부를 결정할 수 있다. 예컨대, 유효 기간(238)은 시간 기간이 유효 기간(238)보다 작을 때 만족될 수 있다. 시간 기간은 단순히 검증 코드(236)가 만료되었다고 결정하기 이전에 검증 코드(236)가 유효성 검증기(410)에 의해 수신되어야 하는 지정된 시간을 포함할 수 있다. 확인 메시지(420)는 검증 코드(236) 및 검증 코드(236)와 연관된 유효 기간(238)을 표시하는 단일 토큰을 포함할 수 있다. 일부 예들에서, 유효 기간(238)은 확인 메시지(420)에 포함되지 않고, 유효성 검증기(410)는 검증 코드들(236)(또는 메시지(230)의 다른 고유 식별 피처들)을 연관된 유효 기간들(238)에 맵핑하는 로그에 액세스함으로써 유효 기간(238)을 획득한다. 확인 메시지(420)에서 수신된 검증 코드(236)가 유효하고, 검증 코드(236)와 연관된 유효 기간(238)(적용가능한 경우)이 만족된다고 결정할 시, 유효성 검증기(410)는 고유 피처(222) 및/또는 사용자 디바이스(110)를 애플리케이션(512) 및/또는 애플리케이션(512)과 연관된 온라인 서비스(125)에 등록(또는 다른 서비스가 피처(222) 및/또는 사용자 디바이스(110)를 등록하는 데 필요한 정보를 제공)할 수 있다. 도시된 예들에서, 피처 검증기(130)의 유효성 검증기(410)는 고유 피처(222) 및/또는 사용자 디바이스(110)가 애플리케이션(512)에 성공적으로 등록되었음을 사용자(10)에게 알리기 위해 등록 통지(430)를 생성하여 사용자 디바이스(110)에 전송한다. 다른 한편으로, 유효성 검증기(410)가 검증 코드(236)에 대한 유효 기간(238)이 만료되었거나(예컨대, 불만족되었거나) 또는 검증 코드(236)가 이전에 사용되었다고 결정할 때, 유효성 검증기(410)는 애플리케이션(512)에의 사용자 디바이스(110)에 의한 등록을 방지한다. 일부 예들에서, 메시지(230)가 송신될 때부터의 시간 기간이 유효 기간(238)을 만족시키지 않을 때, 고유 피처(222)를 사용하여 제2 메시지가 사용자 디바이스(110)에 송신된다. 제2 메시지는 고유 피처(222)가 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 새로운 검증 코드(236)를 포함한다. 유효 기간(238)은 또한 유효 기간 임계치(238)로 지칭될 수 있다. 하나 이상의 등록 실패들 이후(예컨대, 유효 기간(238)이 만족되지 않음), 사용자(10)는 제2(또는 후속) 메시지로부터 새로운 검증 코드(236)를 수동으로 입력하도록 요구될 수 있다.
[0035] 도 5의 개략도(500)를 참조하면, 일부 구현들에서, 시스템(100)은 피처 검증기(130) 및 애플리케이션 리포지토리(540)와 통신하는 사용자 디바이스(110)를 포함한다. 피처 검증기(130)는 원격 시스템(120) 상에서 실행되고, 네트워크(122)를 통해 사용자 디바이스(110)와 통신할 수 있다. 도시된 예에서, 사용자 디바이스(110)는 도 1의 사용자(10)와 연관된 사용자 디바이스(110)를 포함할 수 있다. 이 예는 사용자 디바이스(110)가 사용자 디바이스(110)와 연관된 고유 피처(222)를 애플리케이션(512)에 등록하기 위해 검증을 요청하는 피처 검증기(130)로부터 검증 메시지(230)를 수신하는 것을 도시한다. 피처 검증기(130)는 사용자 디바이스(110)와 연관된 고유 피처(222)(예컨대, 전화번호)를 사용하여 (예컨대, 전화번호(222)에 전송된 텍스트 메시지를 통해) 검증 메시지(230)를 사용자 디바이스(110)에 송신한다.
[0036] 검증 메시지(230)를 수신하는 것에 대한 응답으로, 사용자 디바이스(110)는 선택가능-링크(231)로서 GUI(111) 상에 검증 메시지(230)를 디스플레이하며, 검증 메시지(230)는 사용자(10)에 의해 선택될 때, 사용자 디바이스(110)로 하여금 검증 메시지(230)에 포함된 애플리케이션 식별자(232)에 의해 식별된 애플리케이션(512)을 시작시키게 한다. 일부 예들에서, 사용자 디바이스(110)는 사용자(10)가 검증 메시지(230)에 대응하는 선택가능-링크(231)를 선택하도록 요구하지 않고 검증 메시지(230)를 수신하는 것에 대한 응답으로 애플리케이션(512)을 단순히 시작시킨다. 사용자 디바이스(110)는 수신 시 검증 메시지(230)를 프로세싱하기 위한 메시지 핸들러(520)를 실행할 수 있다. 애플리케이션(512)이 사용자 디바이스(110)에 아직 설치되지 않은 시나리오들에서, 메시지 핸들러(520)는 (자동으로 또는 사용자 프롬프트를 통해) 사용자 디바이스(110) 상에 설치하기 위한 애플리케이션(512)을 예컨대, 애플리케이션 리포지토리(540)로부터 (예컨대, 다운로드를 통해) 획득할 수 있다. 애플리케이션(512)이 시작된 이후, 즉, 사용자 디바이스(110) 상에서 실행이 개시된 이후, 애플리케이션(512)은 고유 피처(222)(예컨대, 국가 코드(340) 및 전화번호(342)) 및/또는 사용자 디바이스(110)를 애플리케이션(512)에 등록하기 위한 등록 정보를 검증 메시지(230)로부터 획득한다. 일부 구현들에서, 사용자 디바이스(110)가 애플리케이션(512)을 시작시킬 때, 애플리케이션(512)은 사용자 디바이스(110)의 스크린(113) 상에 디스플레이된 GUI(111) 상에 확인 통지(514)를 디스플레이하여 사용자(10)가 고유 피처(222) 및/또는 사용자 디바이스(110)를 애플리케이션(512)에 등록하는 것을 확인할 수 있게 한다. 확인 통지(514)는 사용자(10)가 등록을 확인하기 위해 선택할 수 있는 그래픽 엘리먼트(예컨대, 버튼)를 포함할 수 있다. 추가적으로 또는 대안적으로, 확인 통지(514)는 수동 입력을 제공함(예컨대, GUI(111) 상의 그래픽 엘리먼트를 탭핑하는 것, 사용자 디바이스(110) 상의 물리적 버튼을 누르는 것, GUI(111) 상에서 또는 사용자 디바이스(110)에 근접하여 제스처를 수행하는 것, 음성 입력을 제공하는 것, 규정된 방식으로 사용자 디바이스(110)를 이동시키는 것 등)으로써, 등록을 확인하도록 사용자(10)에게 프롬프트하는 프롬프트(시각적 및/또는 오디오)를 포함할 수 있다. 메시지 핸들러(520)는 사용자 디바이스(110)가 사용자 디바이스(110) 및/또는 연관된 고유 피처(222)를 애플리케이션(512)에 등록하기 위해 사용자(10)에 의해 확인을 표시하는 선택 표시를 수신하는 것에 대한 응답으로 확인 메시지(420)를 생성하여 원격 시스템(120)에 송신하도록 구성된 확인 생성기(522)를 구현할 수 있다. 본원에서 사용되는 바와 같이, 사용자 디바이스(110)에 의해 수신된 선택 표시는, 사용자 디바이스(110)로 하여금, 고유 피처(222)를 검증하여 애플리케이션(512)에 등록하는 데 사용하기 위한 검증 코드(236)를 포함하는 확인 메시지(420)를 생성하여 유효성 검증기(410)(도 4)에 전송하게 한다.
[0037] 도 6은 사용자 디바이스(110)의 피처(222)의 자동 검증을 가능하게 하는 메시지(230)를 생성하기 위한 예시적 방법(600)의 흐름도이다. 흐름도는 데이터 프로세싱 하드웨어(810)(도 9)에서, 사용자 디바이스(110) 상의 애플리케이션(512)을 시작하라는 요청(220)을 수신함으로써 동작(602)에서 시작된다. 요청(220)은 사용자 디바이스(110)와 연관된 고유 피처(222)를 포함하고, 고유 피처(222)는 사용자 디바이스(110) 상의 애플리케이션(512)의 사용을 위해 애플리케이션(512)에 등록하기 위해 요구된다. 고유 피처(222)는 전화번호(342) 및 연관된 국가 코드(340)를 포함할 수 있다. 고유 피처(222)는 선택적으로 사용자 이름, 이메일 주소, MAC 주소, 또는 사용자 디바이스(110)를 고유하게 식별하는 일부 다른 피처를 포함할 수 있다. 방법(600)은 또한 동작(604)에서, 데이터 프로세싱 하드웨어(810)가, 사용자 디바이스(110) 상의 애플리케이션(512)을 시작시키도록 구성된 선택가능-링크(231)를 생성하는 단계를 포함한다. 선택가능-링크(231)는 애플리케이션(512)을 식별하는 애플리케이션 식별자(232)를 포함한다. 선택가능-링크(231)는 또한 고유 피처(222)가 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 검증 코드(236)를 포함한다. 선택가능-링크(231)는, 선택될 때 사용자 디바이스(110)로 하여금, 애플리케이션(512)이 사용자 디바이스(110) 상에 아직 설치되지 않은 경우 애플리케이션(512)을 설치하게 하고 그리고/또는 애플리케이션(512)이 사용자 디바이스(110) 상에 이미 설치된 경우 애플리케이션(512)을 열게 하는 딥 링크를 포함할 수 있다. 검증 메시지(230)는 선택가능-링크(231)를 포함할 수 있다.
[0038] 동작(606)에서, 방법(600)은 고유 피처(222)를 사용하여 선택가능-링크(231)를 포함하는 제1 메시지(예컨대, 검증 메시지)(230)를 사용자 디바이스(110)에 송신하는 단계를 포함한다. 예컨대, 고유 피처(222)는 데이터 프로세싱 하드웨어(810)가 제1 메시지(230)를 전송하는 데 사용하는 사용자 디바이스(110)와 연관된 전화번호(342)일 수 있다. 제1 메시지는, 사용자 디바이스(110)로 하여금, 사용자 디바이스(110)의 스크린(113) 상에 디스플레이된 GUI(111) 상에 선택가능-링크(231)를 디스플레이하게 하고, 그리고 GUI(111) 상에 디스플레이된 선택가능-링크(231)의 선택을 표시하는 선택 표시를 수신한 이후 애플리케이션 식별자(232)를 사용하여 애플리케이션(512)을 시작시키게 하도록 구성된다. 일부 예들에서, 제1 메시지(230)는, 사용자 디바이스(110)에 의해 수신될 때, 애플리케이션(512)을 시작시킨 이후, 애플리케이션(512)을 사용자 디바이스(110)와 연관된 고유 피처(222)로 파퓰레이트하도록 추가로 구성된다. 검증 코드(236)는 사용자 디바이스(110)가 사용자 디바이스(110)를 애플리케이션(512)에 등록하기 위한 확인을 수신하는 것에 대한 응답으로 데이터 프로세싱 하드웨어(810)에 송신된다. 일부 구현들에서, 제1 메시지(230)는 사용자 디바이스(110)에 의해 수신될 때, 사용자 디바이스(110)로 하여금, 일단 애플리케이션(512)이 시작되면 GUI(111)에 확인 통지(514)를 디스플레이하게 하도록 추가로 구성된다. 확인 통지(514)는, 사용자 디바이스(110)의 사용자(10)에 의해 선택될 때, 사용자(10)가 사용자 디바이스(110)를 애플리케이션(512)에 등록하기 위한 확인을 표시하고, 사용자 디바이스(110)로 하여금 검증 코드(236)의 사용자 입력을 요구하지 않고 검증 코드(236)를 데이터 프로세싱 하드웨어(810)에 송신하게 하는 버튼을 포함할 수 있다.
[0039] 방법(600)은 동작(608)에서, 데이터 프로세싱 하드웨어(810)가, 사용자 디바이스(110)로부터 검증 코드(236)를 수신하는 것에 대한 응답으로 사용자 디바이스(110)를 애플리케이션(512)에 등록하는 단계를 포함한다. 일부 예들에서, 검증 코드(236)가 사용자 디바이스(110)로부터 수신될 때 사용자 디바이스(110)를 애플리케이션(512)에 등록하는 단계는, 제1 메시지(230)가 사용자 디바이스(110)에 송신될 때부터 검증 코드(236)가 사용자 디바이스(110)로부터 수신될 때까지의 시간 기간이 검증 코드(236)와 연관된 유효 기간 임계치(238)를 만족시키는지 여부를 결정하는 단계를 포함한다. 시간 기간이 유효 기간 임계치(238)를 만족시킬 때, 사용자 디바이스(110)는 애플리케이션(512)에 등록된다. 대안적으로, 시간 기간이 유효 기간 임계치(238)를 만족시키지 않을 때, 데이터 프로세싱 하드웨어(810)는 사용자 디바이스(110)를 애플리케이션(512)에 등록하는 것을 방지한다. 시간 기간이 유효 기간 임계치를 만족시키지 않을 때, 방법(600)은 고유 피처(222)를 사용하여 제2 메시지를 사용자 디바이스(110)에 송신하는 단계를 포함할 수 있다. 제2 메시지는 고유 피처(222)가 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 새로운 검증 코드(236)를 포함할 수 있다.
[0040] 일부 구현들에서, 방법(600)은 사용자 디바이스(110)를 애플리케이션(512)에 등록한 이후, 제2 메시지(430)를 사용자 디바이스(110)에 송신하는 단계를 포함한다. 제2 메시지(430)는, 사용자 디바이스(110)에 의해 수신될 때, 사용자 디바이스(110)로 하여금, 사용자 디바이스(110)가 애플리케이션(512)에 성공적으로 등록됨을 사용자 디바이스(110)의 사용자(10)에게 통지하게 하도록 구성된다.
[0041] 도 7은 사용자 디바이스(110)의 피처(222)를 검증하기 위한 예시적 방법(700)의 흐름도이다. 흐름도는 동작(702)에서, 사용자 디바이스(110)의 데이터 프로세싱 하드웨어(910)에서, 사용자 디바이스(110)와 연관된 전화번호(342)를 검증하기 위한 선택가능-링크(231)를 포함하는 제1 메시지(230)를 수신함으로써 시작된다. 선택가능-링크(231)는 전화번호(342), 국가 코드(340)에 대응하는 메타데이터(234), 및 국가 코드(340) 및 전화번호(342) 각각이 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 검증 코드(236)를 포함한다. 일부 예들에서, 선택가능-링크(231)는 사용자 디바이스(110)를 애플리케이션(512)에 등록하기 위해 사용자 디바이스(110)와 연관된 국가 코드 및 전화번호(340, 342)를 요구하는 애플리케이션(512)을 식별하는 애플리케이션 식별자(232)를 더 포함한다. 이 경우, 방법(700)은 또한, 선택 표시를 수신하는 것에 대한 응답으로, 데이터 프로세싱 하드웨어(910)가, 애플리케이션 식별자(232)를 사용하여 사용자 디바이스(110) 상의 애플리케이션(512)을 시작시키는 단계, 및 데이터 프로세싱 하드웨어(910)가, 사용자 디바이스(110)와 연관된 국가 코드 및 전화번호(340, 342)로 애플리케이션(512)을 파퓰레이트하는 단계를 포함한다.
[0042] 방법(700)은 동작(704)에서, 데이터 프로세싱 하드웨어(910)가, 사용자 디바이스(110) 상에서 실행되는 그래픽 사용자 인터페이스에서 선택가능-링크(231)를 디스플레이하는 단계를 포함한다. 동작(706)에서, 방법(700)은 데이터 프로세싱 하드웨어(910)에서, 그래픽 사용자 인터페이스 상에 디스플레이된 선택가능-링크(231)의 선택을 표시하는 선택 표시를 수신하는 단계를 포함한다. 선택 표시를 수신한 이후, 방법(700)은 동작(708)에서, 데이터 프로세싱 하드웨어(910)가, 네트워크(122)를 통해 검증 코드(236)를 데이터 프로세싱 하드웨어(910)와 통신하는 서비스(125)에 송신하는 단계를 포함한다. 검증 코드(236)는 서비스(125)가 검증 코드(236)를 수신하는 것에 대한 응답으로, 서비스(125)로 하여금, 전화번호(342)가 사용자 디바이스(110)와 연관됨을 검증하게 하도록 구성된다.
[0043] 일부 구현들에서, 선택가능-링크(231)의 선택을 표시하는 선택 표시를 수신한 이후, 방법(700)은, 데이터 프로세싱 하드웨어(910)가 그래픽 사용자 인터페이스 상에 확인 통지(예컨대, 버튼)(514)를 디스플레이하는 단계, 및 데이터 프로세싱 하드웨어(910)에서, 전화번호(342)가 사용자 디바이스(110)와 연관됨을 검증하기 위해 확인 버튼(514)의 선택을 표시하는 제2 선택 표시를 수신하는 단계를 포함한다. 방법(700)은 또한, 제2 선택 표시를 수신하는 것에 대한 응답으로, 데이터 프로세싱 하드웨어(910)가, 검증 코드(236)의 사용자 입력을 요구하지 않고 검증 코드(236)를 서비스(125)에 자동으로 송신하는 단계를 포함한다.
[0044] 선택적으로, 방법(700)은 제1 메시지(230)를 수신하기 이전, 데이터 프로세싱 하드웨어(910)가, 사용자 디바이스(110) 상의 애플리케이션(512)을 시작시키거나 또는 자원에 액세스하라고 요청하는 요청을 서비스(125)에 송신하는 단계를 포함한다. 요청은 사용자 디바이스(110)와 연관된 전화번호(342)를 포함하고, 서비스(125)는 요청에 의해 수신된 전화번호(342)를 사용하여 제1 메시지(230)를 사용자 디바이스(110)에 송신한다.
[0045] 소프트웨어 애플리케이션(즉, 소프트웨어 자원)은 컴퓨팅 디바이스로 하여금 작업을 수행하게 하는 컴퓨터 소프트웨어를 지칭할 수 있다. 일부 예들에서, 소프트웨어 애플리케이션은 "애플리케이션", "앱" 또는 "프로그램"으로 지칭될 수 있다. 예시적 애플리케이션들은 시스템 진단 애플리케이션들, 시스템 관리 애플리케이션들, 시스템 유지 관리 애플리케이션들, 단어 프로세싱 애플리케이션들, 스프레드시트 애플리케이션들, 메시징 애플리케이션들, 미디어 스트리밍 애플리케이션들, 소셜 네트워킹 애플리케이션들 및 게이밍 애플리케이션들을 포함하지만, 이들에 제한되지 않는다.
[0046] 비-일시적 메모리는 컴퓨팅 디바이스에 의해 사용하기 위해 일시적 또는 영구적으로 프로그램들(예컨대, 명령들의 시퀀스들) 또는 데이터(예컨대, 프로그램 상태 정보)를 저장하기 위해 사용되는 물리적 디바이스들일 수 있다. 비-일시적 메모리는 휘발성 및/또는 비-휘발성 어드레싱가능한 반도체 메모리일 수 있다. 비-휘발성 메모리의 예들은, 플래시 메모리 및 ROM(read-only memory)/PROM(programmable read-only memory)/EPROM(erasable programmable read-only memory)/EEPROM(electronically erasable programmable read-only memory)(예컨대, 부트 프로그램들과 같은 펌웨어에 통상적으로 사용됨)을 포함하지만, 이들에 제한되는 것은 아니다. 휘발성 메모리의 예들은, RAM(random access memory), DRAM(dynamic random access memory), SRAM(static random access memory), PCM(phase change memory)뿐만 아니라 디스크들 또는 테이프들을 포함하지만, 이들에 제한되는 것은 아니다.
[0047] 도 8은 본 문서에서 설명된 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적 컴퓨팅 디바이스(800)의 개략도이다. 컴퓨팅 디바이스(800)는 다양한 형태들의 디지털 컴퓨터들, 이를테면, 랩탑들, 데스크탑들, 워크스테이션들, 개인용 디지털 보조기들, 서버들, 블레이드 서버들, 메인 프레임들 및 다른 적절한 컴퓨터들을 표현하도록 의도된다. 여기서 도시된 컴포넌트들, 이들의 연결들 및 관계들, 및 이들의 기능들은 단지 예시적인 것을 의미하며, 본 문서에 설명 및/또는 청구된 발명들의 구현들을 제한하는 것으로 의미되지 않는다.
[0048] 컴퓨팅 디바이스(800)는, 프로세서(810), 메모리(820), 저장 디바이스(830), 메모리(820) 및 고속 확장 포트들(850)에 연결되는 고속 인터페이스/제어기(840), 및 저속 버스(870) 및 저장 디바이스(830)에 연결되는 저속 인터페이스/제어기(860)를 포함한다. 컴포넌트들(810, 820, 830, 840, 850, 및 860) 각각은 다양한 버스들을 사용하여 상호 연결되며, 공통 마더보드 상에 또는 적절하게 다른 방식들로 장착될 수 있다. 프로세서(810)는, 고속 인터페이스(840)에 커플링된 디스플레이(880)와 같은 외부 입력/출력 디바이스 상의 GUI(graphical user interface)에 대한 그래픽 정보를 디스플레이하기 위해, 메모리(820)에 또는 저장 디바이스(830) 상에 저장된 명령들을 포함하는, 컴퓨팅 디바이스(800) 내의 실행을 위한 명령들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들은, 다수의 메모리들 및 메모리 타입들과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(800)이 연결될 수 있으며, 각각의 디바이스는 (예컨대, 서버 뱅크, 블레이드 서버들의 그룹 또는 멀티-프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
[0049] 메모리(820)는 컴퓨팅 디바이스(800) 내에 정보를 비-일시적으로 저장한다. 메모리(820)는 컴퓨터 판독가능한 매체, 휘발성 메모리 유닛(들) 또는 비-휘발성 메모리 유닛(들)일 수 있다. 비-일시적 메모리(820)는 컴퓨팅 디바이스(800)에 의해 사용하기 위해 일시적 또는 영구적으로 프로그램들(예컨대, 명령들의 시퀀스들) 또는 데이터(예컨대, 프로그램 상태 정보)를 저장하기 위해 사용되는 물리적 디바이스들일 수 있다. 비-휘발성 메모리의 예들은, 플래시 메모리 및 ROM(read-only memory)/PROM(programmable read-only memory)/EPROM(erasable programmable read-only memory)/EEPROM(electronically erasable programmable read-only memory)(예컨대, 부트 프로그램들과 같은 펌웨어에 통상적으로 사용됨)을 포함하지만, 이들에 제한되는 것은 아니다. 휘발성 메모리의 예들은, RAM(random access memory), DRAM(dynamic random access memory), SRAM(static random access memory), PCM(phase change memory)뿐만 아니라 디스크들 또는 테이프들을 포함하지만, 이들에 제한되는 것은 아니다.
[0050] 저장 디바이스(830)는 컴퓨팅 디바이스(800)에 대한 대용량 저장을 제공할 수 있다. 일부 구현들에서, 저장 디바이스(830)는 컴퓨터 판독가능한 매체이다. 다양한 상이한 구현들에서, 저장 디바이스(830)는, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들에서의 디바이스들을 포함하는 디바이스들의 어레이일 수 있다. 부가적 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로 구현된다. 컴퓨터 프로그램 제품은, 실행될 때 위에서 설명된 것들과 같은 하나 이상의 방법들을 수행하는 명령들을 포함한다. 정보 캐리어는, 메모리(820), 저장 디바이스(830) 또는 프로세서(810) 상의 메모리와 같은 컴퓨터 또는 기계 판독가능한 매체이다.
[0051] 고속 제어기(840)는 컴퓨팅 디바이스(800)에 대한 대역폭-집약적 동작들을 관리하지만, 저속 제어기(860)는 더 낮은 대역폭-집약적 동작들을 관리한다. 그러한 직무 배정은 단지 예시적인 것일 뿐이다. 일부 구현들에서, 고속 제어기(840)는 메모리(820)에, 디스플레이(880)에 (예컨대, 그래픽 프로세서 또는 가속기를 통해), 그리고 고속 확장 포트들(850)에 커플링되고, 이들은 다양한 확장 카드들(도시되지 않음)을 수용할 수 있다. 일부 구현들에서, 저속 제어기(860)는 저장 디바이스(830) 및 저속 확장 포트(890)에 커플링된다. 다양한 통신 포트들(예컨대, USB, Bluetooth, Ethernet, 무선 Ethernet)을 포함할 수 있는 저속 확장 포트(890)는, 하나 이상의 입력/출력 디바이스들, 이를테면, 키보드, 포인팅 디바이스, 스캐너, 또는 네트워킹 디바이스, 이를테면, 스위치 또는 라우터에, 예컨대, 네트워크 어댑터를 통해, 커플링될 수 있다.
[0052] 컴퓨팅 디바이스(800)는, 도면에 도시된 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예컨대, 그것은 표준 서버(800a)로서 구현되거나, 또는 랩탑 컴퓨터(800b)로서 그러한 서버들(800a)의 그룹에서 다수 회 구현되거나, 또는 랙 서버 시스템(800c)의 일부로서 구현될 수 있다.
[0053] 본원에서 설명된 시스템들 및 기법들의 다양한 구현들이 디지털 전자 및/또는 광학 회로망, 집적 회로망, 특수하게 설계된 ASIC(application specific integrated circuit)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현들은, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 데이터 및 명령들을 이들에 송신하도록 커플링될 수 있는 특수 목적 또는 범용인 적어도 하나의 프로그래밍가능한 프로세서를 포함하는 프로그래밍가능한 시스템 상에서 실행가능한 그리고/또는 인터프리팅가능한 하나 이상의 컴퓨터 프로그램들로의 구현을 포함할 수 있다.
[0054] 이러한 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로서 또한 알려져 있음)은 프로그래밍가능한 프로세서에 대한 기계 명령들을 포함하며, 고-레벨 프로시저 및/또는 객체-지향 프로그래밍 언어로 구현될 수 있고 그리고/또는 어셈블리어/기계어로 구현될 수 있다. 본원에서 사용되는 바와 같이, "기계 판독가능한 매체" 및 "컴퓨터 판독가능한 매체"라는 용어들은, 기계 판독가능한 신호로서 기계 명령들을 수신하는 기계 판독가능한 매체를 포함하는 프로그래밍가능한 프로세서에 기계 명령들 및/또는 데이터를 제공하기 위해 사용되는 임의의 컴퓨터 프로그램 제품, 비-일시적 컴퓨터 판독가능한 매체, 장치 및/또는 디바이스(예컨대, 자기 디스크들, 광학 디스크들, 메모리, PLD(Programmable Logic Device)들)를 지칭한다. "기계 판독가능한 신호"라는 용어는 기계 명령들 및/또는 데이터를 프로그래밍가능한 프로세서에 제공하기 위해 사용되는 임의의 신호를 지칭한다.
[0055] 본 명세서에서 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하여 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로망, 예컨대, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 그리고 특수 목적 마이크로프로세서들 둘 다 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령들을 수행하기 위한 프로세서, 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대, 자기적, 마그네토 광 디스크들 또는 광 디스크들을 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 또는 이들에 데이터를 전달하거나 또는 둘 다를 수행하도록 동작적으로 커플링될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능한 매체들은 예로서 반도체 메모리 디바이스들, 예컨대, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대, 내부 하드 디스크들 또는 탈착식(removable) 디스크들; 마그네토-광 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비-휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로망에 의해 보충되거나 또는 이에 포함될 수 있다.
[0056] 사용자와의 상호 작용을 제공하기 위해, 본 개시내용의 하나 이상의 양상들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예컨대, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터 또는 터치스크린, 및 선택적으로, 사용자가 입력을 컴퓨터에 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예컨대, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호 작용을 제공하기 위해 또한 사용될 수 있고; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대, 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 어쿠스틱(acoustic), 음성 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 문서들을 사용자에 의해 사용되는 디바이스에 전송하고 사용자에 의해 사용되는 디바이스로부터 문서들을 수신함으로써, 예컨대, 웹 브라우저로부터 수신된 요청들에 대한 응답으로 웹 페이지들을 사용자의 클라이언트 디바이스 상의 웹 브라우저에 전송함으로써, 사용자와 상호 작용할 수 있다.
[0057] 도 9는 본 문서에서 설명된 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적 사용자 디바이스(900)(이를테면, 도 1의 사용자 디바이스(110))의 데이터 프로세싱 하드웨어의 개략도이다. 예시된 예에서, 사용자 디바이스(900)는 프로세싱 디바이스(910), 스토리지 디바이스(920), 네트워크 인터페이스(930) 및 사용자 인터페이스(940)를 포함한다.
[0058] 프로세싱 디바이스(910)(예컨대, 데이터 프로세싱 하드웨어)는 컴퓨터 판독가능한 명령들을 저장하는 메모리(예컨대, RAM 및/또는 ROM) 및 컴퓨터 판독가능한 명령들을 실행하는 하나 이상의 프로세서들을 포함한다. 프로세싱 디바이스(910)가 2개 이상의 프로세서들을 포함하는 구현들에서, 프로세서들은 분산 또는 개별 방식으로 실행할 수 있다. 프로세싱 디바이스(910)는 서치 애플리케이션(912), 웹 브라우저(918), 운영 시스템(916) 및 하나 이상의 네이티브 애플리케이션들(914)을 실행할 수 있으며, 이들 모두는 컴퓨터 판독가능한 명령들로 구현될 수 있다. 저장 디바이스(920)는 하나 이상의 컴퓨터 판독가능한 매체들(예컨대, 하드 디스크 드라이브 및/또는 플래시 메모리)을 포함한다. 저장 디바이스(920)는 서치 애플리케이션(912), 웹 브라우저(918), 운영 시스템(916) 및 하나 이상의 네이티브 애플리케이션들(914)을 구성하는 컴퓨터 판독가능한 명령들을 저장할 수 있다. 네트워크 인터페이스(930)는 네트워크와 통신하도록 구성된 하나 이상의 디바이스들을 포함한다. 네트워크 인터페이스(930)는 유선 또는 무선 통신을 수행하기 위한 하나 이상의 트랜시버들을 포함할 수 있다. 네트워크 인터페이스(930)의 예들은 IEEE 802.11 무선 표준을 사용하여 통신들을 수행하도록 구성된 트랜시버, 이더넷 포트, 무선 송신기 및 USB(universal serial bus) 포트를 포함할 수 있지만, 이에 제한되지 않는다. 사용자 인터페이스(940)는 사용자로부터 입력을 수신하고 그리고/또는 사용자에게 출력을 제공하는 하나 이상의 디바이스들을 포함한다. 사용자 인터페이스(940)는 터치스크린, 디스플레이, QWERTY 키보드, 숫자 키패드, 터치패드, 마이크 및/또는 스피커들을 포함할 수 있지만, 이에 제한되지 않는다.
[0059] 다수의 구현들이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범위로부터 벗어나지 않으면서 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 따라서, 다른 구현들은 다음의 청구항들의 범위 내에 있다.

Claims (26)

  1. 방법(600)으로서,
    데이터 프로세싱 하드웨어(810)에서, 애플리케이션에 등록된 제1 사용자 디바이스로부터 등록되지 않은 사용자 디바이스를 초대하는 애플리케이션 등록 요청(220)을 수신하는 단계 ― 상기 등록되지 않은 사용자 디바이스는 상기 등록되지 않은 사용자 디바이스를 상기 애플리케이션에 등록하기 위하여 상기 애플리케이션을 실행하도록 구성되고, 상기 애플리케이션 등록 요청(220)은 상기 등록되지 않은 사용자 디바이스(110)와 통신하고 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하기 위해 요구되는 고유 등록 피처(feature)(222)를 포함함 ― ;
    상기 애플리케이션 등록 요청을 수신하는 것에 응답하여, 상기 데이터 프로세싱 하드웨어(810)가 상기 등록되지 않은 사용자 디바이스(110) 상에 상기 애플리케이션(512)을 등록하기 위한 선택가능-링크(231)를 생성하는 단계 ― 상기 선택가능-링크(231)는:
    상기 애플리케이션(512)을 식별하는 애플리케이션 식별자(232); 및
    상기 고유 등록 피처(222)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 검증 코드(236)를 포함함 ―;
    데이터 프로세싱 하드웨어(810)가, 상기 고유 등록 피처(222)를 사용하여 상기 선택가능-링크(231)를 포함하는 제1 메시지(230)를 상기 등록되지 않은 사용자 디바이스(110)에 송신하는 단계; 및
    상기 데이터 프로세싱 하드웨어(810)가, 상기 등록되지 않은 사용자 디바이스(110)로부터 검증 코드(verification code)(236)를 수신하는 것에 대한 응답으로 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 단계를 포함하고,
    상기 제1 메시지(230)는, 상기 등록되지 않은 사용자 디바이스(110)에 의해 수신될 때, 상기 등록되지 않은 사용자 디바이스(110)로 하여금:
    상기 등록되지 않은 사용자 디바이스(110) 상에서 실행되는 그래픽 사용자 인터페이스(111) 상에 상기 선택가능-링크(231)를 디스플레이하게 하고;
    상기 그래픽 사용자 인터페이스(111)상에 디스플레이된 상기 선택가능-링크(231)의 선택을 나타내고 상기 애플리케이션에 상기 등록되지 않은 사용자 디바이스를 등록하기 위한 확인을 나타내는 선택 표시를 수신하는 것에 응답하여, 자동적으로:
    상기 애플리케이션 식별자(232)를 사용하여 상기 애플리케이션(512)을 시작시키게 하고;
    상기 고유 등록 피처를 상기 애플리케이션에 입력하고; 그리고
    상기 검증 코드(236)를 상기 데이터 프로세싱 하드웨어(810)에 송신하게 하도록 구성되는, 방법(600).
  2. 제1항에 있어서,
    상기 제1 메시지(230)는, 상기 등록되지 않은 사용자 디바이스(110)에 의해 수신될 때, 상기 등록되지 않은 사용자 디바이스(110)로 하여금, 상기 애플리케이션(512)을 시작시킨 이후 상기 그래픽 사용자 인터페이스(111)에 확인 버튼(514)을 디스플레이하게 하도록 추가로 구성되고,
    상기 확인 버튼(514)은, 상기 등록되지 않은 사용자 디바이스(110)의 사용자에 의해 선택될 때, 상기 사용자가 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하기 위한 확인을 표시하고, 상기 등록되지 않은 사용자 디바이스(110)로 하여금 상기 검증 코드(236)의 사용자 입력을 요구하지 않고 상기 검증 코드(236)를 상기 데이터 프로세싱 하드웨어(810)에 송신하게 하는, 방법(600).
  3. 제1항 또는 제2항에 있어서,
    상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 단계는:
    상기 제1 메시지(230)가 상기 등록되지 않은 사용자 디바이스(110)에 송신될 때부터 상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때까지의 시간 기간이 유효 기간 임계치(238)를 만족시키는지 여부를 결정하는 단계; 및
    상기 시간 기간이 상기 유효 기간 임계치(238)를 만족시킬 때, 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 단계를 포함하는, 방법(600).
  4. 제1항 또는 제2항에 있어서,
    상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 단계는:
    상기 제1 메시지(230)가 상기 등록되지 않은 사용자 디바이스(110)에 송신될 때부터 상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때까지의 시간 기간이 유효 기간 임계치(238)를 만족시키는지 여부를 결정하는 단계; 및
    상기 시간 기간이 상기 유효 기간 임계치(238)를 만족시키지 않을 때, 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 것을 방지하는 단계를 포함하는, 방법(600).
  5. 제4항에 있어서,
    상기 시간 기간이 상기 유효 기간 임계치(238)를 만족시키지 않을 때, 상기 등록되지 않은 사용자 디바이스의 제어를 검증하는 상기 고유 등록 피처(222)에 의해 식별된 통신 주소를 사용하여 제2 메시지(430)를 상기 등록되지 않은 사용자 디바이스(110)에 송신하는 단계를 더 포함하고,
    상기 제2 메시지(430)는 상기 고유 등록 피처(222)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 새로운 검증 코드(236)를 포함하는, 방법(600).
  6. 제1항 또는 제2항에 있어서,
    상기 선택가능-링크(231)는, 선택될 때 상기 등록되지 않은 사용자 디바이스(110)로 하여금, 상기 애플리케이션(512)이 상기 등록되지 않은 사용자 디바이스(110) 상에 아직 설치되지 않은 경우 상기 애플리케이션(512)을 설치하게 하거나 또는 상기 애플리케이션(512)이 상기 등록되지 않은 사용자 디바이스(110) 상에 이미 설치된 경우 상기 애플리케이션(512)을 열게 하도록 구성되는 딥 링크(deep link)를 포함하는, 방법(600).
  7. 제1항 또는 제2항에 있어서,
    상기 제1 메시지(230)는, 상기 등록되지 않은 사용자 디바이스(110)에 의해 수신될 때, 상기 애플리케이션(512)을 시작시킨 이후, 상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 고유 등록 피처(222)를 상기 애플리케이션(512)에 입력하도록 추가로 구성되는, 방법(600).
  8. 제1항 또는 제2항에 있어서,
    상기 고유 등록 피처(222)는 상기 등록되지 않은 사용자 디바이스에 대한 통신 주소를 식별하고,
    상기 통신 주소는 상기 등록되지 않은 사용자 디바이스의 제어를 검증하도록 구성되는, 방법(600).
  9. 제1항 또는 제2항에 있어서,
    상기 등록되지 않은 사용자 디바이스를 상기 애플리케이션(512)에 등록한 이후, 제2 메시지(430)를 이전에 등록되지 않은 사용자 디바이스에 송신하는 단계를 더 포함하고,
    상기 제2 메시지(430)는, 상기 이전에 등록되지 않은 사용자 디바이스에 의해 수신될 때, 상기 이전에 등록되지 않은 사용자 디바이스로 하여금, 상기 이전에 등록되지 않은 사용자 디바이스가 상기 애플리케이션(512)에 성공적으로 등록됨을 상기 이전에 등록되지 않은 사용자 디바이스의 사용자에게 통지하게 하도록 구성되는, 방법(600).
  10. 방법(700)으로서,
    원격 시스템이 애플리케이션에 등록된 다른 사용자 디바이스로부터 등록 초대를 수신하는 것에 대한 응답으로, 상기 애플리케이션에 등록되지 않은 사용자 디바이스(110)의 데이터 프로세싱 하드웨어(910)에서, 상기 원격 시스템으로부터 상기 등록되지 않은 사용자 디바이스의 전화 번호(342)로 전송된 제1 메시지(230)를 수신하는 단계 ― 상기 등록된 다른 사용자 디바이스는 상기 애플리케이션에 등록하도록 상기 등록되지 않은 사용자 디바이스를 초대하고, 상기 제1 메시지는 상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 전화 번호(342)를 등록하기 위한 선택가능-링크(231)를 포함하고, 상기 선택가능-링크(231)는:
    상기 전화번호(342)에 대응하는 메타데이터(234); 및
    상기 등록되지 않은 사용자 디바이스와 통신하는 검증 서비스에 의해 생성되고, 상기 전화 번호(342)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하기 위해 상기 검증 서비스에 의해 사용되는 임시 검증 코드(236)
    를 포함함 ―;
    상기 데이터 프로세싱 하드웨어(910)가, 상기 등록되지 않은 사용자 디바이스(110) 상에서 실행되는 그래픽 사용자 인터페이스(111)에서 상기 선택가능-링크(231)를 디스플레이하는 단계;
    상기 데이터 프로세싱 하드웨어(910)에서, 상기 그래픽 사용자 인터페이스(111) 상에 디스플레이되는 상기 선택가능-링크(231)의 선택을 표시하는 선택 표시를 수신하는 단계; 및
    상기 선택가능-링크(231)의 상기 선택 표시를 수신하는 것에 응답하여, 상기 데이터 프로세싱 하드웨어(910)가, 네트워크를 통해 상기 임시 검증 코드(236)를 상기 검증 서비스에 자동적으로 송신하는 단계를 포함하고,
    상기 임시 검증 코드(236)는 상기 검증 서비스(125)가 상기 임시 검증 코드(236)를 수신하는 것에 대한 응답으로, 상기 검증 서비스(125)로 하여금, 상기 전화번호(342)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하게 하도록 구성되는, 방법(700).
  11. 제10항에 있어서,
    상기 선택가능-링크(231)는 상기 등록되지 않은 사용자 디바이스(110)를 애플리케이션(512)에 등록하기 위해 상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 전화번호(342)를 요구하는 상기 애플리케이션(512)을 식별하는 애플리케이션 식별자(232)를 더 포함하고,
    상기 방법은, 상기 선택 표시를 수신하는 것에 대한 응답으로:
    상기 데이터 프로세싱 하드웨어(910)가, 상기 애플리케이션 식별자(232)를 사용하여 상기 등록되지 않은 사용자 디바이스(110) 상의 상기 애플리케이션(512)을 시작시키는 단계; 및
    상기 데이터 프로세싱 하드웨어(910)가, 상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 전화번호(342)를 상기 애플리케이션(512)에 자동적으로 입력하는 단계를 더 포함하는, 방법(700).
  12. 제10항 또는 제11항에 있어서,
    상기 선택가능-링크(231)의 선택을 표시하는 상기 선택 표시를 수신한 이후:
    상기 데이터 프로세싱 하드웨어(910)가 상기 그래픽 사용자 인터페이스(111) 상에 확인 버튼(514)을 디스플레이하는 단계;
    상기 데이터 프로세싱 하드웨어(910)에서, 상기 전화번호(342)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하기 위해 상기 확인 버튼(514)의 선택을 표시하는 제2 선택 표시를 수신하는 단계; 및
    상기 제2 선택 표시를 수신하는 것에 대한 응답으로, 상기 데이터 프로세싱 하드웨어(910)가, 상기 임시 검증 코드(236)의 사용자 입력을 요구하지 않고 상기 임시 검증 코드(236)를 상기 서비스(125)에 자동으로 송신하는 단계를 더 포함하는, 방법(700).
  13. 삭제
  14. 시스템(100)으로서,
    데이터 프로세싱 하드웨어(810); 및
    상기 데이터 프로세싱 하드웨어(810)와 통신하는 메모리 하드웨어(820)를 포함하고,
    상기 메모리 하드웨어(820)는 명령들을 저장하고,
    상기 명령들은, 상기 데이터 프로세싱 하드웨어(810) 상에서 실행될 때 상기 데이터 프로세싱 하드웨어(810)로 하여금:
    애플리케이션에 등록된 제1 사용자 디바이스로부터 등록되지 않은 사용자 디바이스를 초대하는 애플리케이션 등록 요청(220)을 수신하는 것 ― 상기 등록되지 않은 사용자 디바이스는 상기 등록되지 않은 사용자 디바이스를 상기 애플리케이션에 등록하기 위하여 상기 애플리케이션을 실행하도록 구성되고, 상기 애플리케이션 등록 요청(220)은 상기 등록되지 않은 사용자 디바이스(110)와 통신하고 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하기 위해 요구되는 고유 등록 피처(222)를 포함함 ― ;
    상기 애플리케이션 등록 요청을 수신하는 것에 응답하여, 상기 등록되지 않은 사용자 디바이스(110) 상에 상기 애플리케이션(512)을 등록하기 위한 선택가능-링크(231)를 생성하는 것 ― 상기 선택가능-링크(231)는:
    상기 애플리케이션(512)을 식별하는 애플리케이션 식별자(232); 및
    상기 고유 등록 피처(222)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 검증 코드(236)
    를 포함함 ―;
    상기 고유 등록 피처(222)를 사용하여 상기 선택가능-링크(231)를 포함하는 제1 메시지(230)를 상기 등록되지 않은 사용자 디바이스(110)에 송신하는 것; 및
    상기 등록되지 않은 사용자 디바이스(110)로부터 검증 코드(236)를 수신하는 것에 대한 응답으로 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 것
    을 포함하는 동작들을 수행하게 하고,
    상기 제1 메시지(230)는, 상기 등록되지 않은 사용자 디바이스(110)에 의해 수신될 때, 상기 등록되지 않은 사용자 디바이스(110)로 하여금:
    상기 등록되지 않은 사용자 디바이스(110) 상에서 실행되는 그래픽 사용자 인터페이스(111) 상에 상기 선택가능-링크(231)를 디스플레이하게 하고; 그리고,
    상기 그래픽 사용자 인터페이스(111)상에 디스플레이된 상기 선택가능-링크(231)의 선택을 나타내고 상기 애플리케이션에 상기 등록되지 않은 사용자 디바이스를 등록하기 위한 확인을 나타내는 선택 표시를 수신하는 것에 응답하여, 자동적으로:
    상기 애플리케이션 식별자(232)를 사용하여 상기 애플리케이션(512)을 시작시키게 하고;
    상기 애플리케이션에 상기 고유 등록 피처를 입력하게 하고; 그리고
    상기 검증 코드(236)를 상기 데이터 프로세싱 하드웨어(810)에 송신하게 하도록
    구성되는, 시스템(100).
  15. 제14항에 있어서,
    상기 제1 메시지(230)는, 상기 등록되지 않은 사용자 디바이스(110)에 의해 수신될 때, 상기 등록되지 않은 사용자 디바이스(110)로 하여금, 상기 애플리케이션(512)을 시작시킨 이후 상기 그래픽 사용자 인터페이스(111)에 확인 버튼(514)을 디스플레이하게 하도록 추가로 구성되고,
    상기 확인 버튼(514)은, 상기 등록되지 않은 사용자 디바이스(110)의 사용자에 의해 선택될 때, 상기 사용자가 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하기 위한 확인을 표시하고, 상기 등록되지 않은 사용자 디바이스(110)로 하여금 상기 검증 코드(236)의 사용자 입력을 요구하지 않고 상기 검증 코드(236)를 상기 데이터 프로세싱 하드웨어(810)에 송신하게 하는, 시스템(100).
  16. 제14 항 또는 제15 항에 있어서,
    상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 것은:
    상기 제1 메시지(230)가 상기 등록되지 않은 사용자 디바이스(110)에 송신될 때부터 상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때까지의 시간 기간이 유효 기간 임계치(238)를 만족시키는지 여부를 결정하는 것; 및
    상기 시간 기간이 상기 유효 기간 임계치(238)를 만족시킬 때, 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 것을 포함하는, 시스템(100).
  17. 제14 항 또는 제15 항에 있어서,
    상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 것은:
    상기 제1 메시지(230)가 상기 등록되지 않은 사용자 디바이스(110)에 송신될 때부터 상기 검증 코드(236)가 상기 등록되지 않은 사용자 디바이스(110)로부터 수신될 때까지의 시간 기간이 유효 기간 임계치(238)를 만족시키는지 여부를 결정하는 것; 및
    상기 시간 기간이 상기 유효 기간 임계치(238)를 만족시키지 않을 때, 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록하는 것을 방지하는 것을 포함하는, 시스템(100).
  18. 제17 항에 있어서,
    상기 동작들은, 상기 시간 기간이 상기 유효 기간 임계치(238)를 만족시키지 않을 때, 상기 등록되지 않은 사용자 디바이스의 제어를 검증하는 상기 고유 등록 피처(222)에 의해 식별되는 통신 주소를 사용하여 제2 메시지(430)를 상기 등록되지 않은 사용자 디바이스(110)에 송신하는 것을 더 포함하고,
    상기 제2 메시지(430)는 상기 고유 등록 피처(222)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하는 데 사용되는 새로운 검증 코드(236)를 포함하는, 시스템(100).
  19. 제14 항 또는 제15 항에 있어서,
    상기 선택가능-링크(231)는, 선택될 때 상기 등록되지 않은 사용자 디바이스(110)로 하여금, 상기 애플리케이션(512)이 상기 등록되지 않은 사용자 디바이스(110) 상에 아직 설치되지 않은 경우 상기 애플리케이션(512)을 설치하게 하거나 또는 상기 애플리케이션(512)이 상기 등록되지 않은 사용자 디바이스(110) 상에 이미 설치된 경우 상기 애플리케이션(512)을 열게 하는 딥 링크를 포함하는, 시스템(100).
  20. 제14 항 또는 제15 항에 있어서,
    상기 제1 메시지(230)는, 상기 등록되지 않은 사용자 디바이스(110)에 의해 수신될 때, 상기 애플리케이션(512)을 시작시킨 이후, 상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 고유 등록 피처(222)를 상기 애플리케이션(512)에 입력하도록 추가로 구성되는, 시스템(100).
  21. 제14 항 또는 제15 항에 있어서,
    상기 고유 등록 피처(222)는 상기 등록되지 않은 사용자 디바이스에 대한 통신 주소를 식별하고,
    상기 통신 주소는 상기 등록되지 않은 사용자 디바이스의 제어를 검증하도록 구성되는, 시스템(100).
  22. 제14 항 또는 제15 항에 있어서,
    상기 동작들은, 상기 등록되지 않은 사용자 디바이스(110)를 상기 애플리케이션(512)에 등록한 이후, 제2 메시지(430)를 이전에 등록되지 않은 사용자 디바이스에 송신하는 것을 더 포함하고,
    상기 제2 메시지(430)는, 상기 이전에 등록되지 않은 사용자 디바이스에 의해 수신될 때, 상기 이전에 등록되지 않은 사용자 디바이스로 하여금, 상기 이전에 등록되지 않은 사용자 디바이스가 상기 애플리케이션(512)에 성공적으로 등록됨을 상기 이전에 등록되지 않은 사용자 디바이스의 사용자에게 통지하게 하도록 구성되는, 시스템(100).
  23. 시스템(100)으로서,
    애플리케이션에 등록되지 않은 사용자 디바이스(110)의 데이터 프로세싱 하드웨어(910); 및
    상기 데이터 프로세싱 하드웨어(910)와 통신하는 메모리 하드웨어(920)를 포함하고,
    상기 메모리 하드웨어(920)는 명령을 저장하고,
    상기 명령은, 상기 데이터 프로세싱 하드웨어(910) 상에서 실행될 때 상기 데이터 프로세싱 하드웨어(910)로 하여금:
    원격 시스템이 상기 애플리케이션에 등록된 다른 사용자 디바이스로부터 등록 초대를 수신하는 것에 응답하여, 상기 원격 시스템으로부터 상기 등록되지 않은 사용자 디바이스(110)의 전화 번호로 전송된 제1 메시지(230)를 수신하는 것 ― 상기 등록된 다른 사용자 디바이스는 상기 애플리케이션에 등록하도록 상기 등록되지 않은 사용자 디바이스를 초대하고, 상기 제1 메시지는 상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 전화번호(342)를 등록하기 위한 선택가능-링크를 포함 포함하고, 상기 선택가능-링크(231)는: ;
    상기 전화번호(342)에 대응하는 메타데이터(234); 및
    상기 등록되지 않은 사용자 디바이스와 통신하는 검증 서비스에 의해 생성되고, 상기 전화 번호(342)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하기 위해 상기 검증 서비스에 의해 사용되는 임시 검증 코드(236)
    를 포함함 ―;
    상기 등록되지 않은 사용자 디바이스(110) 상에서 실행되는 그래픽 사용자 인터페이스(111)에 상기 선택가능-링크(231)를 디스플레이하는 것;
    상기 그래픽 사용자 인터페이스(111) 상에 디스플레이되는 상기 선택가능-링크(231)의 선택을 표시하는 선택 표시를 수신하는 것; 및
    상기 선택가능-링크의 선택 표시를 수신하는 것에 응답하여, 네트워크를 통해 상기 임시 검증 코드(236)를 상기 검증 서비스(125)에 자동적으로 송신하는 것
    을 포함하는 동작들을 수행하게 하고,
    상기 임시 검증 코드(236)는 상기 검증 서비스(125)가 상기 임시 검증 코드(236)를 수신하는 것에 대한 응답으로, 상기 검증 서비스(125)로 하여금, 상기 전화번호(342)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하게 하도록 구성되는, 시스템(100).
  24. 제23 항에 있어서,
    상기 선택가능-링크(231)는 상기 등록되지 않은 사용자 디바이스(110)를 애플리케이션(512)에 등록하기 위해 상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 전화번호(342)를 요구하는 상기 애플리케이션(512)을 식별하는 애플리케이션 식별자(232)를 더 포함하고,
    상기 동작들은, 상기 선택 표시를 수신하는 것에 대한 응답으로:
    상기 애플리케이션 식별자(232)를 사용하여 상기 등록되지 않은 사용자 디바이스(110) 상의 상기 애플리케이션(512)을 시작시키는 것; 및
    상기 등록되지 않은 사용자 디바이스(110)와 연관된 상기 전화번호(342)를 상기 애플리케이션(512)에 자동적으로 입력하는 것을 더 포함하는, 시스템(100).
  25. 제23 항 또는 제24 항에 있어서,
    상기 동작들은, 상기 선택가능-링크(231)의 선택을 표시하는 상기 선택 표시를 수신한 이후:
    상기 그래픽 사용자 인터페이스(111) 상에 확인 버튼(514)을 디스플레이하는 것;
    상기 전화번호(342)가 상기 등록되지 않은 사용자 디바이스(110)와 연관됨을 검증하기 위해 상기 확인 버튼(514)의 선택을 표시하는 제2 선택 표시를 수신하는 것; 및
    상기 제2 선택 표시를 수신하는 것에 대한 응답으로, 상기 임시 검증 코드(236)의 사용자 입력을 요구하지 않고 상기 임시 검증 코드(236)를 상기 검증 서비스(125)에 자동으로 송신하는 것을 더 포함하는, 시스템(100).
  26. 삭제
KR1020217009480A 2018-10-01 2019-09-23 자동 링크 기반 메시지 검증 KR102555369B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/148,132 US11243822B2 (en) 2018-10-01 2018-10-01 Automatic link based message verification
US16/148,132 2018-10-01
PCT/US2019/052514 WO2020072227A1 (en) 2018-10-01 2019-09-23 Automatic link based message verification

Publications (2)

Publication Number Publication Date
KR20210048546A KR20210048546A (ko) 2021-05-03
KR102555369B1 true KR102555369B1 (ko) 2023-07-13

Family

ID=68240804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009480A KR102555369B1 (ko) 2018-10-01 2019-09-23 자동 링크 기반 메시지 검증

Country Status (6)

Country Link
US (1) US11243822B2 (ko)
EP (1) EP3861474A1 (ko)
JP (1) JP7111907B2 (ko)
KR (1) KR102555369B1 (ko)
CN (1) CN112789612A (ko)
WO (1) WO2020072227A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170380B1 (en) * 2017-05-26 2021-11-09 Attentive Mobile Inc. Methods and apparatus for mobile device messaging-based communications using custom-generated deeplinks and based on the hyper text transfer protocol (HTTP)
GB2584527B (en) * 2019-05-10 2021-12-08 Advanced Risc Mach Ltd Machine to machine communications
CN113038399A (zh) * 2021-04-14 2021-06-25 广州讯鸿网络技术有限公司 通过5g消息快速验证用户身份的方法、电子设备、存储介质
CN113423107A (zh) * 2021-05-26 2021-09-21 动信(上海)互联网络有限公司 一种基于5g消息进行手机号身份认证的系统及方法
CN115706670A (zh) * 2021-08-10 2023-02-17 中国联合网络通信集团有限公司 身份验证方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150061832A1 (en) * 2013-09-05 2015-03-05 University Of Utah Research Foundation Directly observed thearpy using mobile technology
US20160117388A1 (en) * 2014-10-23 2016-04-28 Quixey, Inc. Searching and Accessing Application Functionality

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222247A (en) * 1990-10-01 1993-06-22 Motorola, Inc. Method for maximizing channel selection in a communication system
JP2005063356A (ja) * 2003-08-20 2005-03-10 Matsushita Electric Ind Co Ltd 情報処理装置
JP2006171814A (ja) * 2004-12-10 2006-06-29 Kddi Corp ランチャメニュー管理システム、方法および同システムにおける課金方法
US7308261B2 (en) * 2005-04-25 2007-12-11 Yahoo! Inc. Method for quick registration from a mobile device
US8023927B1 (en) 2006-06-29 2011-09-20 Google Inc. Abuse-resistant method of registering user accounts with an online service
US9955332B2 (en) * 2009-01-28 2018-04-24 Headwater Research Llc Method for child wireless device activation to subscriber account of a master wireless device
US8452959B2 (en) * 2009-02-24 2013-05-28 Research In Motion Limited Method and system for registering a presence user with a presence service
CN104767754B (zh) * 2010-04-07 2019-09-10 苹果公司 为在线通信会话注册客户计算设备
US8583149B2 (en) * 2010-04-07 2013-11-12 Apple Inc. Registering email addresses for online communication sessions
US20120331518A1 (en) * 2011-06-23 2012-12-27 Salesforce.Com, Inc. Flexible security token framework
US9645966B2 (en) * 2012-06-08 2017-05-09 Apple Inc. Synchronizing handles for user accounts across multiple electronic devices
US9197646B2 (en) * 2012-06-12 2015-11-24 Verizon Patent And Licensing Inc. Verifying source of email
KR101923113B1 (ko) 2012-07-12 2018-11-28 캠프모바일 주식회사 이동통신 단말기의 메시징 서비스를 이용한 초대정보 처리방법, 이를 수행하는 서비스 서버, 이동통신 단말기 및 컴퓨터로 판독 가능한 기록매체
US9924102B2 (en) * 2013-03-14 2018-03-20 Qualcomm Incorporated Image-based application launcher
US9369449B2 (en) * 2013-03-29 2016-06-14 Citrix Systems, Inc. Providing an enterprise application store
KR102133755B1 (ko) * 2014-02-19 2020-07-15 삼성전자주식회사 스마트 홈 서비스에서 기기 등록을 위한 접속 정보 관리 방법 및 장치
US9374664B2 (en) * 2014-08-28 2016-06-21 Google Inc. Venue-specific wi-fi connectivity notifications
MX367662B (es) 2014-12-02 2019-08-30 Inventio Ag Control de acceso mejorado que utiliza dispositivos electrónicos portátiles.
GB201510042D0 (en) * 2015-06-09 2015-07-22 Jean Jerry Remote confirmation and/or authentication service used for confirmation of access identity, device ownership, and meetings using mobile devices for a system
US10467194B2 (en) * 2015-09-23 2019-11-05 Smugmug, Inc. Multi-device upload integration application
WO2017117455A1 (en) * 2015-12-29 2017-07-06 Quixey, Inc. Message based application state and card sharing methods for user devices
US20170192982A1 (en) * 2015-12-30 2017-07-06 Quixey, Inc. Searching Based On Geographical Density Of Entities
CN113852594B (zh) 2015-12-31 2022-07-29 华为技术有限公司 一种验证码获取方法和终端
US10461939B2 (en) * 2017-02-08 2019-10-29 Ca, Inc. Secure device registration for multi-factor authentication
CN107733891B (zh) * 2017-10-17 2021-03-02 深圳市金立通信设备有限公司 一种用户注册方法、服务器及计算机可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150061832A1 (en) * 2013-09-05 2015-03-05 University Of Utah Research Foundation Directly observed thearpy using mobile technology
US20160117388A1 (en) * 2014-10-23 2016-04-28 Quixey, Inc. Searching and Accessing Application Functionality

Also Published As

Publication number Publication date
JP7111907B2 (ja) 2022-08-02
WO2020072227A1 (en) 2020-04-09
EP3861474A1 (en) 2021-08-11
JP2022501757A (ja) 2022-01-06
CN112789612A (zh) 2021-05-11
KR20210048546A (ko) 2021-05-03
US11243822B2 (en) 2022-02-08
US20200104192A1 (en) 2020-04-02

Similar Documents

Publication Publication Date Title
KR102555369B1 (ko) 자동 링크 기반 메시지 검증
US9059958B2 (en) User registration method, interaction method and related devices
TWI484367B (zh) 同步多個電子裝置中之使用者帳戶之控制代碼
US9818161B2 (en) Creating a social network message from an interface of a mobile device operating system
US20190052619A1 (en) Systems, apparatuses, methods, and non-transitory computer readable media for authenticating user using history of user
WO2018068631A1 (zh) 账户登录方法、设备和服务器
US20130290449A1 (en) Privacy-based social content broadcast systems and methods
US11122034B2 (en) Method and apparatus for an identity assurance score with ties to an ID-less and password-less authentication system
US20160105431A1 (en) Method of providing sns-group inviting service and sns server therefor
EP4152188A1 (en) Methods, systems, and apparatuses for improved multi-factor authentication in a multi-app communication system
KR102245250B1 (ko) 메시징 서버의 동작 방법 및 장치
JP2020173797A (ja) 1つのチャットルームで多数のグループ通話を提供する方法、システム、および非一時的なコンピュータ読み取り可能な記憶媒体
CN112311750B (zh) 交互方法、装置和电子设备
US11030298B2 (en) Candidate user profiles for fast, isolated operating system use
US9742776B2 (en) Contact identification validation via social invitation
US20220094747A1 (en) Connection Management Service
CN113489695B (zh) 私有云组网方法、装置、系统、计算机设备及存储介质
US9055414B2 (en) Text messaging pipeline configuration
KR20200039881A (ko) 일정 관리 방법 및 시스템
JP2019068445A (ja) 端末、端末の表示方法およびプログラム
TW201533595A (zh) 用戶帳戶管理方法及系統,及其電腦程式產品

Legal Events

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