KR101978934B1 - 인증 코드들을 생성하기 위한 방법 및 시스템 - Google Patents

인증 코드들을 생성하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101978934B1
KR101978934B1 KR1020167027806A KR20167027806A KR101978934B1 KR 101978934 B1 KR101978934 B1 KR 101978934B1 KR 1020167027806 A KR1020167027806 A KR 1020167027806A KR 20167027806 A KR20167027806 A KR 20167027806A KR 101978934 B1 KR101978934 B1 KR 101978934B1
Authority
KR
South Korea
Prior art keywords
authentication
authentication code
current
generators
code generator
Prior art date
Application number
KR1020167027806A
Other languages
English (en)
Other versions
KR20160135239A (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 KR20160135239A publication Critical patent/KR20160135239A/ko
Application granted granted Critical
Publication of KR101978934B1 publication Critical patent/KR101978934B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • 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/316User authentication by observing the pattern of computer usage, e.g. typical user behaviour
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)
  • Telephonic Communication Services (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

인증 코드들을 생성하는 것은 현재 사용 세트를 구성하도록 복수의 인증 코드 생성기들을 포함하는 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택하고, 대응하는 부분적 인증 코드들을 얻기 위해 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 실행하고, 상기 부분적 인증 코드들로부터 현재 인증 코드를 구성하고, 상기 현재 인증 코드를 사용자에게 출력하고, 상기 현재 인증 코드에 응답하여 만들어진 사용자 응답을 수신하고, 상기 사용자가 인증되는지를 결정하기 위해 상기 현재 인증 코드와 상기 사용자 응답을 비교하는 것을 포함한다.

Description

인증 코드들을 생성하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR GENERATING VERIFICATION CODES}
다른 출원들에 대한 교차 참조
이 출원은, 발명의 명칭이 인증 코드들을 생성하기 위한 방법 및 디바이스(A METHOD AND A DEVICE FOR GENERATING VERIFICATION CODES)이고 2014년 5월 8일 출원되고 모든 목적들을 위해 본원에 참조로서 포함되는 중화 인민 공화국 특허 출원 제201410194197.7호에 대한 우선권을 주장한다.
본 발명의 분야
본 발명은 인증 코드들을 생성하기 위한 방법 및 시스템에 관한 것이다.
인터넷은 사람들에게 편리함을 제공하고 있지만, 인터넷은 또한 다양한 위험요인들을 야기하고 있다. 일부 악의적인 사용자들은 대규모로 인터넷 자원들을 부당하게 사용하기 위해 보트(bot)들을 사용할 수 있다. 예를 들면, 일부 악의적인 사용자들은 웹사이트 계정들을 배치(batch) 레지스터링하도록 자동적인 레지스터링 툴들을 사용하고, 의미 없는 문자들을 주입하고, 서버들에 가비지 데이터(garbage data)를 제공하는 등등을 한다. 일부 악의적인 사용자들은 서버 자원들을 낭비시키며 정당한 사용자들의 정상 사용에 악영향을 미친다. 또한 일부 악의적인 사용자는 정당한 사용자들의 계정 패스워드들을 알아내기 위한 시도로 서버들에 연속적으로 액세스하며, 그에 따라 이들 악의적인 사용자들은 정당한 사용자들의 프라이버시 및 이익을 위협한다. 따라서, 서버들은 통상 정당한 사용자들과 악의적인 사용자들 간을 자동으로 구별할 수 있는 기술을 배치하며, 그에 따라 악의적인 사용의 위험요인을 감소시킨다.
정당한 사용자들과 악의적인 사용자들 간을 구별하기 위하여 인증 코드들(verification codes)이 사용된다. ASCII 문자들, 질의들 및 응답들에 의한 인증과 같이 인증 코드들을 생성하기 위한 다양한 방법들이 존재한다. 인증 코드들은 서버 상에서 이들 유형의 방법들 중 하나를 선택함으로써 생성된다. 하지만, 광학 문자 인식 기술, 자동 응답 기술, 및 음성 인식 기술로, 프로그램들은 점점 더 정확한 인증 코드들을 자동으로 제출할 수 있으며, 악의적인 사용자를 차단하는 것은 점점 더 어려워지고 있다.
본 출원은 상기한 종래 기술의 문제를 해소하고 또한 추가의 효과를 얻기 위한 것이며, 이를 위한 구성으로서 첨부된 청구범위를 개시한다.
본 발명의 다양한 실시예들은 다음의 상세한 기술 및 첨부 도면들에 개시된다.
도 1은 인증 코드들을 생성하기 위한 프로세스의 실시예를 도시하는 흐름도.
도 2는 인증 코드들을 생성하기 위한 프로세스의 다른 실시예를 도시하는 흐름도.
도 3은 혼합 문자 인증 코드 생성기에 의해 생성된 부분 인증 코드의 예를 도시하는 도면.
도 4는 질의-및-응답 인증 코드 생성기에 의해 생성된 부분 인증 코드의 예를 도시하는 도면.
도 5는 그림-기반의 인증 코드 생성기에 의해 생성된 부분 인증 코드의 예를 도시하는 도면.
도 6은 현재 인증 코드의 예를 도시하는 도면.
도 7a는 인증 코드들을 생성하기 위한 디바이스의 실시예의 논리적 구성도.
도 7b는 현재 사용 세트 모듈의 실시예의 논리적 구성도.
도 7c는 인증 코드 생성기 세트의 실시예의 논리적 구성도.
도 8은 인증 코드들을 생성하기 위한 시스템의 실시예를 도시하는 도면.
도 9는 인증 코드들을 생성하기 위한 프로그램된 컴퓨터 시스템의 실시예를 도시하는 기능도.
본 발명은, 프로세스; 장치; 시스템; 조성물(composition of matter); 컴퓨터 판독 가능한 저장 매체 상에서 실행되는 컴퓨터 프로그램 제품; 및/또는 프로세서, 예를 들면 프로세서에 결합된 메모리 상에 저장되고 및/또는 이에 의해 제공되는 명령들을 실행하도록 구성되는 프로세서를 포함하여, 다양한 방식들로 실행될 수 있다. 이 명세서에서, 이들 실행들, 또는 본 발명이 취할 수 있는 임의의 다른 형태는 기술들(techniques)로 칭해질 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범위 내에서 변경될 수 있다. 달리 언급되지 않으면, 작업을 수행하도록 구성되는 것으로 기술된 프로세서 또는 메모리와 같은 구성요소는 주어진 시간에 작업을 수행하도록 일시적으로 구성되는 일반 구성요소 또는 작업을 수행하도록 제작되는 특정 구성요소로서 실행될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 '프로세서(processor)'는 하나 이상의 디바이스들, 회로들 및/또는, 컴퓨터 프로그램 명령들과 같은 데이터를 프로세싱하도록 구성된 프로세싱 코어들을 나타낸다.
본 발명의 하나 이상의 실시예들의 상세한 기술은 본 발명의 원리들을 예시하는 첨부 도면들과 함께 아래에 제공된다. 본 발명은 이러한 실시예들에 관련하여 기술되지만, 본 발명은 어떠한 실시예에도 제한되지 않는다. 본 발명의 범위는 특허 청구 범위들에 의해서만 제한되고 본 발명은 다수의 대안들, 수정들 및 등가물들을 포함한다. 다수의 특정 세부 사항들은 본 발명의 완전한 이해를 제공하기 위해 다음의 설명에서 기재된다. 이러한 세부 사항들은 예시의 목적으로 제공되고 본 발명은 이들 특정 세부 사항들의 일부 또는 전부 없이 특허 청구 범위들에 따라 실시될 수 있다. 명확성을 위하여, 본 발명이 불필요하게 모호하지 않도록 본 발명에 관련된 기술 분야들에 알려진 기술 자료는 상세히 기술되지 않았다.
통상적으로 다양한 종류의 인증 코드 생성기들이 존재한다. 예를 들면, 디지털 인증 코드 생성기, ASCII 문자 인증 코드 생성기, 중국 문자 인증 코드 생성기, 질의-및-응답 인증 코드 생성기, 또는 그림-기반의(picture-based) 인증 코드 생성기는, 그들 각각의 생성 기술에 기초하여, 몇의 번호들, 몇의 ASCII 문자들, 몇의 중국 문자들, 질의, 또는 이미지를 생성한다. 사용자는 인증을 통과하기 위해 인증 코드 체크섬(checksum)으로서, 동일한 번호들, 동일한 ASCII 문자들, 동일한 중국 문자들, 또는 동일한 응답을 입력할 것이다. 다른 예로서, 음성 인증 코드 생성기(speech verification code generator)는 특정 기술에 기초하여 음성의 세그먼트를 생성하고, 사용자에게 상기 음성의 세그먼트를 플레이한다. 사용자는 인증을 통과하기 위해 상기 음성에 기초한 문자들 또는 정확한 응답을 입력할 것이다. 이들 인증 코드들을 파괴(break)하기 위해 다양한 기술들이 대응적으로 활용된다. 예를 들면, 광학 문자 인식 기술은 상기 그림(picture)에서 상기 번호들, 상기 ASCII 문자들, 및 상기 중국 문자들을 인식할 수 있다. 자동 응답 기술은 인식된 텍스트에 기초하여 질의들을 판독할 수 있으며, 응답들을 제공할 수 있다. 음성 인식 기술 또는 음성 인식 기술과 자동 응답 기술의 조합은 음성 인증 코드들을 파괴하는데 사용될 수 있다. 일부 실시예들에서, 각각의 인증 코드 생성기는 인증 코드들과 대응하는 인증 코드 체크섬들의 쌍들을 저장하며, 인증 코드를 제공하라는 요청이 수신될 때 하나의 쌍을 랜덤하게 선택한다. 여기에서 기술된 바와 같이, 인증 코드 생성기 기술은 수행될 코드-파괴 기술(code-breaking technology)의 차이들에 기초하여 상이한 인증 모드들(예를 들면, 디지털 인증 모드, ASCII 문자 인증 모드, 중국 문자 인증 모드, 음성 인증 모드, 질의-및-응답 인증 모드, 또는 그림-기반의 인증 모드 등)로 분할될 수 있다.
모든 인증 코드 생성기들은 코드-파괴의 어려움을 증가시키기 위해 다중 조치들(multiple measures)을 사용하기는 하지만, 상기 코드-파괴 기술의 타깃 최적화 후에는 특정의 인증 코드 생성기에 대한 높은 코드-파괴 성공률이 가능하게 된다. 그러한 코드-파괴 기술은 종종, 두 개의 인증 코드 생성기들이 동일한 인증 모드를 사용할 때조차, 다른 인증 코드 생성기에 대해 효과적이지 못하다. 예를 들면, 코드-파괴 기술(1)은 인증 코드 생성기(1)에 대해 성공률이 0.8이며, 인증 코드 생성기(2)에 대해 성공률이 0.7이다. 상기 인증 코드 생성기(1)와 상기 인증 코드 생성기(2)가 조합하여 사용된다면, 코드-파괴 기술(1)의 성공률은 0.56으로 떨어지게 된다. 상기 인증 코드 생성기(2)에 대해 코드-파괴 기술(2)의 성공률이 0.8이라고 가정하면, 코드-파괴 기술(1)이 코드-파괴 기술(2)과 조합하여 사용되는 경우 최상의 도달가능한 성공률은 0.64로 떨어지게 된다.
도 1은 인증 코드들을 생성하기 위한 프로세스의 실시예의 흐름도를 도시한다. 일부 실시예들에서, 프로세스(100)는 도 8의 서버(810)에 의해 실행되며, 다음을 포함한다:
일부 실시예들에서, 서버 또는 다른 컴퓨팅 장비는 적어도 두 개의 인증 코드 생성기들을 포함하는 인증 코드 생성기 세트를 포함한다. 일부 실시예들에서, 인증 코드 생성기는 실행가능한 프로그램에 포함된다. 일부 실시예들에서, 인증 코드 생성기 세트 내의 대응하는 인증 코드 생성기를 나타내기 위해 코드 또는 식별자가 사용된다. 일부 실시예들에서, 다양한 인증 코드 생성기들이 상기 세트에 포함되며, 이들은 동일한 인증 모드 및 상이한 기술들의 인증 코드 생성기들과, 상이한 인증 모드들을 사용하는 인증 코드 생성기들을 포함한다. 인증 기술이 개발됨에 따라, 새로운 인증 코드 생성기들이 나타나고 새로운 인증 코드 생성기들은 상기 인증 코드 생성기 세트에 포함될 수 있게 된다. 물론, 인증 코드 생성기 세트는 인증 코드 클래스(class) 및 속성(attribute) 요건들에 기초하여 선택된 인증 코드 생성기들을 포함할 수 있다.
일부 실시예들에서, 인증 코드 클래스는, 원하는 인증 코드가 숫자 인증 코드인지, 텍스트 기반의 인증 코드인지, 문자 기반의 인증 코드인지, 또는 일부 다른 유형의 인증 코드인지를 나타낸다. 각각의 인증 코드 클래스가 생성될 때, 상기 인증 코드의 클래스를 형성하기 위한 어떠한 속성 요건들이 지정될 수 있다. 속성 요건들의 예들은: 상기 인증 코드는 4 개의 숫자 번호에 대응한다; 상기 인증 코드는 3과 9 사이의 숫자만을 포함한다; 상기 인증 코드는 랜덤하게 생성된 문자들의 위치가 시프트될 것을 요구한다; 등을 포함한다. 상기 인증 코드 클래스 및 상기 속성 요건들에 기초하여, 특정 인증 코드 클래스에 대한 다양한 표현들과 값들이 예를 들면 3456 3457 5698과 같이 생성될 수 있다.
동작 110에서 서버는 현재 사용 세트를 구성하도록 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택한다.
인증 코드 생성기들이 상기 인증 코드 생성기 세트로부터 선택되는 방법은 제한되지 않는다. 일부 실시예들에서, 스크리닝 기술(screening technique) 또는 스크리닝 기술을 지정하는 방법이 서버 상의 특정 보안 필요성, 사용자 선호도, 또는 다른 그러한 요인들에 기초하여 활용될 수 있다. 예를 들면, 필요한 보안 수준이 낮은 저 위험 설정(low risk setting)에서, 낮은 수(예를 들면, 두 개)의 인증 발생기들이 낮은 보안 스크리닝 기술에 사용된다. 고 위험 설정에서는, 높은 수(예를 들면, 네 개 이상)의 인증 생성기들이 높은 보안 스크리닝 기술에 사용된다. 여기에서 사용되는 바와 같이, 스크리닝 기술은 어느 인증 코드 생성기들이 선택되고 어떤 순서인지를 지정한다. 즉, 스크리닝 기술은 인증 코드 생성기들의 시퀀스를 지정한다.
상기 인증 코드 생성 프로세스는 다양한 인증 코드 생성기들의 조합에 기초한다. 저 위험 설정에서는, 간단한 인증 코드가 생성될 수 있다. 예를 들면, 인증 코드가 생성될 때, 상기 인증 코드는 각각의 숫자가 3과 9 사이의 값을 갖는 4개의 숫자들이 되어, 사용자에게는 예를 들면 3467과 같은 인증 코드가 보이게 된다. 고 위험 설정에서, 상기 사용자가 보트(bot)가 아니라는 것을 증명하기 위해 인증 코드 생성기들의 조합이 사용될 수 있다(예를 들면, 상기 인증 코드는 다중의 부분적 인증 코드들의 조합에 기초하여 생성된다). 다중의 부분적 인증 코드들의 조합을 사용하면, 머신 학습이 상당히 어려워지는데, 이는 단일 인증 코드 클래스가 사용되지 않는 대신에 다양한 인증 코드 클래스들의 조합이 사용되기 때문이다. 예를 들면, 번호들 플러스 중국 문자들과 같은 두 개의 인증 코드 클래스들이 사용될 수 있다. 예를 들면, 사용자에게는 3456中國과 같은 인증 코드가 보여질 것이며, 여기에서 中國은 중국 문자들에서 "중국"에 대응한다.
예를 들면, N개(N은 2 이상의 자연수)의 인증 코드 생성기들을 포함하는 세트로부터 M개(M은 2 이상 N 이하의 자연수)의 인증 코드 생성기들을 랜덤하게 선택할 수 있으며, 상기 인증 코드 생성기들이 상기 세트에서 나타나는 순서에 기초하여 현재 사용 세트의 스크리닝 기술들을 구성할 수 있다. 이러한 방법에서, 상기 현재 사용 세트는 C(N, M) 가능성들을 가질 것이다(N choose M 또는
Figure 112016100918752-pct00001
조합들). M개의 인증 코드 생성기들이 랜덤하게 선택되고 상기 현재 사용 세트의 스크리닝 기술들이 그들의 선택 순서에 기초하여 구성된다면, 상기 현재 사용 시퀀스는 P(N,M) 가능성들(N(N-1)(N-2)...(N-M+1) 순열)을 가질 것이다. 이러한 환경들 하에서, 상기 현재 사용 세트는 실제로 인증 발생기 시리즈를 나타낼 것이다.
다른 예에서, 인증 코드 발생기 세트가 7개의 인증 코드 발생기들을 포함하고, 상기 인증 코드 발생기들 중 세 개는 ASCII 문자 인증 모드를 사용하고, 상기 인증 코드 발생기들 중 두 개는 음성 인증 모드를 사용하고, 인증 코드 발생기들 중 두 개는 질의-및-응답 인증 모드를 사용한다고 가정하자. 임의의 두 개의 인증 모드들이 선택될 수 있다. 각각의 인증 모드로부터, 임의의 인증 코드 생성기가 상기 현재 사용 세트를 구성하도록 선택될 수 있다. 대안적으로, 하나의 인증 코드 생성기가 상기 세 개의 인증 모드들 각각으로부터 선택될 수 있으며, 상기 현재 사용 세트를 구성하도록 랜덤하게 시퀀스될 수 있다.
상기한 두 개의 예들은 고정된 스크리닝 기술들이 활용되는 상황들로서 간주될 수 있다. 일부 실시예들에서, 가변의 스크리닝 기술들이 상기 현재 사용 세트를 생성하기 위해 사용될 수 있다. 예를 들면, 프로세스(100)는 임의의 두 개, 임의의 세 개, 또는 임의의 네 개의 인증 코드 생성기들을 통해 순환한다. 상기 현재 사용 세트는 두 개, 세 개, 또는 네 개의 인증 코드 생성기들을 포함할 것이며, 각각의 시간에 포함되는 인증 코드 생성기들의 수는 이전 시간과는 다르게 된다.
하나의 실행에서, 하나 이상의 스크리닝 기술들이 먼저 사전 확립(pre-established)된다. 인증 코드 생성기들이 상기 현재의 사용 세트에 대해 선택될 때, 하나의 스크리닝 기술이 상기 하나 이상의 사전 확립된 스크리닝 기술들 중에서 지정된다. 적어도 두 개의 인증 코드 생성기들이 지정된 스크리링 기술에 기초하여 상기 인증 코드 생성기 세트로부터 선택된다. 상기 하나의 실행에서, 어떠한 스크리닝 기술도 사전 확립될 수 있다. 상기 현재 사용 세트를 생성하기 위한 상기 스크리닝 기술들 중 하나를 지정하는데 대한 제한은 없다.
예를 들면, 하나의 스크리닝 기술이 상기 하나 이상의 사전 확립된 스크리닝 기술들 중에서 랜덤하게 선택되거나, 또는 상기 사전 확립된 스크리닝 기술들 중 하나보다 많은 사전 확립된 스크리닝 기술들이 순환 방식으로 사용된다. 다른 예에서, 동일한 어드레스에서의 클라이언트에 대해, 이전에 사용된 스크리닝 기술과는 다른 스크리닝 기술이 선택된다.
일부 실시예들에서, 사용되는 상기 스크리닝 기술은 사용자의 행동 기록에 기초하여 선택될 수 있다. 상기 사전 확립된 기술들이 상이한 복잡도 레벨들을 갖는 경우들에서(예를 들면, 일부 스크리닝 기술들은 높은 복잡도로서 마크된다), 어떤 복잡도 레벨의 기술이 사용자의 이력 행동 기록들에 기초하여 선택될 수 있다.
예를 들면, 고정된 시간 세그먼트 내에서 사용자의 로그인 실패의 수가 기록된다. 실패의 수가 고정된 시간 세그먼트 내에서 0인 경우, 두 개의 수치 인증 코드 생성기들을 조합하는 스크리닝 기술이 활용될 수 있다. 실패의 수가 고정된 시간 세그먼트 내에서 1인 경우, 하나의 수치 인증 코드 생성기와 하나의 질의-및-응답 인증 코드 생성기를 조합하는 스크리닝 기술이 사용될 수 있다. 실패의 수가 고정된 시간 세그먼트 내에서 2 이상인 경우, 네 개의 인증 모드들의 인증 코드 생성기들을 조합하는 스크리닝 기술이 사용될 수 있다. 다른 예에서, 사용자가 자동으로 로그인하도록 보트를 사용하는 것으로 의심되는 경우, 가장 높은 복잡도 레벨을 갖는 스크리닝 기술이 그 사용자에 대해 사용될 수 있다.
과도하게 복잡한 인증 코드는 보안을 높일 수 있지만, 또한 사용자에게 일정한 정도의 불편함을 부담지울 수 있다. 사용자의 이력 행동 기록들에 기초하여 사용자의 주관적 의도를 추정하고 인증 코드에 대응하는 수준의 복잡도를 적용함으로써, 보안과 사용자 편의 사이에서 더 나은 균형을 달성할 수 있다.
본 실시예에서, 상기 현재 사용 세트는 현재 사용되는 인증 코드 생성기들의 세트가 될 수 있음을 유의해야 한다. 상기 현재 사용 세트는 또한 현재 사용에 있어서의 인증 코드 생성기들의 시퀀스가 될 수 있다. 즉, 상기 현재 사용 세트는 성분들의 순서에 관련되지 않을 수 있거나, 또는 상기 현재 사용 세트는 성분들의 순서에 관련될 수 있다.
동작 120에서, 서버는 대응하는 부분적 인증 코드를 얻도록 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 구동한다.
상기 현재 사용 세트가 생성된 후, 상기 현재 사용 세트 내의 각각의 인증 코드 생성기는 개별적으로 구동할 수 있다. 각각의 인증 코드 생성기는 상기 생성기 자신의 기술에 대응하는 부분적 인증 코드를 생성한다. 동시에, 각각의 인증 코드 생성기는 또한 대응하는 부분적 인증 코드 체크섬을 생성하며, 그 값은 상기 인증 코드 생성기의 정확한 출력에 대응한다. 예를 들면, 인증 코드로서 ASCII 값을 출력하는 ASCII 인증 코드 생성기에 대해, 상기 부분적 인증 코드 체크섬은 출력이 되는 값이며; 인증 코드로서 질의를 출력하는 질의-및-응답 인증 코드 생성기에 대해, 상기 부분적 인증 코드 체크섬은 상기 질의에 응답하여 예상되는 응답이 되고; 인증 코드로서 이미지를 출력하는 그림-기반의 인증 코드 생성기에 대해, 상기 부분적 인증 코드 체크섬은 출력되는 이미지에서 나타난 값이 된다. 다른 부분적 인증 코드 체크섬이 다양한 유형들의 인증 코드 생성기들에 대해 사용될 수 있다. 상기 체크섬은 대응하는 이미지 인증 코드 또는 다른 유형들의 인증 코드들을 가지며, 사용자가 입력한 것과 비교된다.
동작 130에서, 서버는 상기 부분적 인증 코드들로부터 현재 인증 코드를 구성한다.
일부 실시예들에서, 상기 현재 사용 세트 내의 각각의 인증 코드 생성기에 의해 생성된 부분적 인증 코드들이 조합되며, 상기 부분적 인증 코드들의 조합된 결과는 현재 인증 코드를 형성한다. 일부 실시예들에서, 각각의 인증 코드 생성기에 의해 생성된 부분적 인증 코드 체크섬들이 조합되며, 상기 부분적 인증 코드 체크섬들의 조합된 결과는 현재 인증 코드 체크섬을 형성한다. 상기 인증 코드 및 상기 대응하는 인증 코드 체크섬은 클라이언트가 인증을 통과했는지를 체크하기 위해 상기 체크섬을 정확하게 사용할 수 있도록 동일한 순서로 조합될 수 있다.
일부 실시예들에서, 상기 현재 사용 세트가 상기 성분들의 순서와 연관되는 경우, 상기 현재 사용 세트에서 인증 코드 생성기들의 시퀀스는 대응하는 부분적 인증 코드들을 상기 현재 인증 코드와 조합하기 위한 토대로 작용한다. 유사하게, 상기 대응하는 인증 코드 체크섬들은 그들의 시퀀스에 기초하여 상기 현재 인증 코드 체크섬과 조합된다.
일부 실시에들에서, 적어도 두 유형들의 인증 코드 생성기들이 동시에 적용되고 통상적으로 사용 중인 상기 인증 코드 생성기들이 계속해서 변경된다는 사실은, 악의적인 사용자들이 얼마나 많은 인증 코드 생성기들이 존재하는지를 알아야할 필요가 있을 뿐만 아니라 이들 인증 코드 생성기들의 얼마나 많은 조합들 또는 시퀀스들이 존재하는지를 알아야할 필요가 있다는 것을 의미한다. 악의적인 사용자들이 이들 인증 코드 생성기들을 마스터한다고 하더라도, 악의적인 사용자는 여전히 코드 파괴 기술들의 타깃 최적화를 수행하는 것이 극도로 어렵다는 것을 알게 될 것이다. 악의적인 사용자는 코드 파괴에 아주 오랜 시간을 소비해야만 할 것이며, 이러한 것은 악의적인 사용자들이 코드 파괴에 대해 받아들일 만한 성공률을 달성하는 것을 어렵게 할 것이다.
단일 인증 코드 생성기 코드를 파괴하는데 소비하는 평균 시간이 10 ms(millisecond)이고, 코드 파괴 성공률이 80%라고 가정한다. 하나의 인증 코드 생성기 세트가 열 개의 인증 코드 생성기들을 포함하고 기술 조합들을 이룰 때마다 이들 인증 코드 생성기들 중 고작 네 개가 선택된다고 가정하면, 상기 현재 사용 세트는 10,000의 가능성들이 생기게 할 것이다. 코드 파괴에 소비하는 평균 시간은 (10×4(1 내지 10,000)) = 40 ms 내지 400 s(seconds)가 될 것이다. 코드 파괴 성공률은, 0.8×0.8×0.8×0.8 ≒ 0.4가 될 것이다. 그러한 코드 파괴 속도 및 성공률은 코드 파괴자들에게는 매력적이지 못하며, 코드 파괴자들이 코드 파괴를 시도하는 것을 저지할 수 있다.
도 2는 인증 코드들을 생성하기 위한 프로세스의 다른 실시예의 흐름도를 도시한다. 일부 실시예들에서, 상기 프로세스(200)는 도 8의 서버(810)에 의해 실행되며, 다음을 포함한다:
동작 210에서, 서버는 인증 코드 생성기 세트 및 스크리닝 기술 세트를 생성한다.
예를 들면, 수치 인증 코드 생성기(Num1), 수치 인증 코드 생성기(Num2), 혼합된 ASCII 문자 인증 코드 생성기, 중국어 인증 코드 생성기, 질의-및-응답 인증 코드 생성기, 및 그림-기반의 인증 코드 생성기가 인증 코드 생성기 세트를 형성하도록 결합된다. 번호 1 내지 6이 대응하는 인증 코드 생성기들을 순차적으로 나타내도록 사용된다. 1 내지 4로 번호가 매겨진 인증 코드 생성기들은 ASCII 문자 인증 모드를 사용하고, 5로 번호가 매겨진 인증 코드 생성기는 질의-및-응답 인증 모드를 사용하고, 6으로 번호가 매겨진 인증 코드 생성기는 그림-기반의 인증 모드를 사용한다. 새로운 인증 코드 생성기가 사용될 경우, 상기 새로운 인증 코드 생성기는 상기 인증 코드 생성기 세트에 추가될 수 있으며, 그에 따라 증분적으로 번호가 매겨질 수 있다.
다음의 세 개의 스크리닝 기술들이 스크리닝 기술 세트에 포함될 수 있다:
A. 두 개의 인증 코드 생성기들을 선택.
B. 적어도 두 개의 인증 모드들을 사용하는 세 개의 인증 코드 생성기들을 선택.
C. 수치 인증 코드 생성기(Num1) 및 ASCII 문자 인증 코드 생성기를 선택.
새로운 스크리닝 기술을 채택할 때, 상기 새로운 스크리닝 기술은 상기 세트에 추가될 수 있다.
동작 220에서, 서버는 상기 스크리닝 기술 세트로부터 하나의 스크리닝 기술을 랜덤하게 선택한다. 상기 선택된 스크리닝 기술은 상기 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택하고 상기 적어도 두 개의 선택된 인증 코드 생성기들에 기초하여 현재 사용 세트를 형성하도록 사용된다.
동작 230에서, 상기 서버는 대응하는 부분적 인증 코드 및 부분적 인증 코드 체크섬을 얻기 위해 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 구동한다.
동작 240에서, 상기 서버는 현재 인증 코드를 형성하기 위해 상기 부분적 인증 코드들을 조합한다. 대응하는 방법으로, 상기 서버는 현재 인증 코드 체크섬을 형성하기 위해 상기 부분적 인증 코드 체크섬들을 조합한다.
예를 들면, 동작(220)에서, 상기 선택된 스크리닝 기술이 B인 것을 가정한다. 스크리닝 기술 B에 따라 생성된 현재 사용 세트는 혼합된-문자 ASCII 인증 코드 생성기, 질의-및-응답 인증 코드 생성기, 및 그림-기반의 인증 코드 생성기에 대응한다.
도 3은 혼합된-문자 인증 코드 생성기에 의해 생성된 부분적 인증 코드의 예를 도시한다. 도 2의 동작(230)에서, 상기 혼합된-문자 인증 코드 생성기에 의해 생성된 부분적 인증 코드의 예가 도 3에 도시되며, 대응하는 부분적 인증 코드 체크섬은 "tOOE"가 된다. 도 4는 질의-및-응답 인증 코드 생성기에 의해 생성된 부분적 인증 코드의 예를 도시한다. 출력되는 질의는 "오늘은 무슨 요일이에요?"가 된다. 상기 질의-및-응답 인증 코드 생성기에 의해 생성된 부분적 인증 코드의 예가 도 4에 도시되며, 대응하는 부분적 인증 코드 체크섬은 "목요일"이다. 도 5는 그림-기반의 인증 코드 생성기에 의해 생성된 부분적 인증 코드의 예를 도시한다. 상기 그림-기반의 인증 코드 생성기에 의해 생성된 부분적 인증 코드의 예가 도 5에 도시되며, 대응하는 부분적 인증 코드 체크섬은 "303"이 된다.
도 6은 현재 인증 코드의 예를 도시한다. 그에 따라, 동작(240)에서 생성된 현재 인증 코드가 도 6에 도시되며, 현재 인증 코드 체크섬은 "tOOE 오늘은 무슨 요일이에요? 303"이 된다.
상기 현재 인증 코드가 생성된 후, 상기 서버는 상기 현재 인증 코드를 클라이언트에게 출력한다. 상기 서버는 상기 클라이언트에 의해 보내져 온 사용자 입력을 수신하고, 상기 사용자 입력을 상기 현재 인증 코드 체크섬과 비교한다. 상기 사용자 입력 및 상기 현재 인증 코드 체크섬이 일치한다면, 상기 사용자는 인증을 통과한다.
도 7a는 인증 코드들을 생성하기 위한 디바이스의 실시예의 논리적 구성도를 도시한다. 일부 실시예들에서, 디바이스(700)는 도 1의 프로세스(100)를 실행하거나 또는 도 2의 프로세스(200)를 실행하고, 상기 디바이스는 현재 사용 세트 모듈(710), 생성기 구동 모듈(720), 및 인증 코드 생성 모듈(730)을 포함한다.
일부 실시예들에서, 상기 현재 사용 세트 모듈(710)은 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택하고 현재 사용 세트를 형성하기 위해 상기 적어도 두 개의 인증 코드 생성기들을 조합한다.
일부 실시예들에서, 상기 생성기 구동 모듈(720)은 대응하는 부분적 인증 코드들을 얻기 위해 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 구동한다.
일부 실시예들에서, 상기 인증 코드 생성 모듈(730)는 현재 인증 코드를 형성하기 위해 상기 부분적 인증 코드들을 조합한다.
도 7b는 현재 사용 세트 모듈의 실시예의 논리적 구조도를 도시한다. 일부 실시예들에서, 상기 현재 사용 세트 모듈(7100)은 도 7a의 현재 사용 세트 모듈(710)의 하나의 구현이며, 상기 현재 사용 세트 모듈은 기술 지정 모듈(7110) 및 생성기 선택 모듈(7120)을 포함한다.
일부 실시예들에서, 상기 기술 지정 모듈(7110)은 미리 확립된 스크리닝 기술들로부터 스크리닝 기술을 지정(specify)한다.
일부 실시예들에서, 상기 생성기 선택 모듈(7120)은 상기 지정된 스크리닝 기술에 기초하여 상기 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택한다.
일부 실시예들에서, 상기 미리 확립된 스크리닝 기술들은 상이한 복잡도 레벨들을 갖는다.
일부 실시예들에서, 상기 현재 사용 세트 모듈(7100)은 스크리닝 기술 모듈(7130)을 더 포함한다.
일부 실시예들에서, 상기 스크리닝 기술 모듈(7130)은 사용자의 이력 행동 기록들(user's historical behavior records)에 기초하여 어떤 복잡도 레벨들의 기술들을 선택한다.
일부 실시예들에서, 상기 현재 사용 세트 모듈(7100)은 기술 지정 모듈(7140)을 더 포함한다.
일부 실시예들에서, 상기 기술 지정 모듈(7140)은 상기 미리 확립된 스크리닝 기술들로부터 스크리닝 기술을 랜덤하게 선택한다.
다시 도 7a를 참조하면, 일부 실시예들에서, 상기 인증 코드 생성 모듈(730)은 상기 현재 사용 세트 내의 인증 코드 생성기들의 시퀀스에 대응하는 부분적 인증 코드들로부터 현재 인증 코드를 구성한다.
일부 실시예들에서, 상기 디바이스(700)는 체크섬 생성 모듈(740)을 더 포함한다.
일부 실시예들에서, 상기 체크섬 생성 모듈(740)은 상기 현재 사용 세트 내의 각각의 인증 코드 생성기에 의해 생성된 부분적 인증 코드 체크섬들로부터 현재 인증 코드 체크섬을 구성한다.
도 7c는 인증 코드 생성기 세트의 한 예의 논리적 구성도를 도시한다. 일부 실시예들에서, 상기 인증 코드 생성기 세트는: 수치 인증 코드 생성기, 혼합된 ASCII 문자 인증 코드 생성기, 중국어 인증 코드 생성기, 질의-및-응답 인증 코드 생성기, 및 그림-기반의 인증 코드 생성기를 포함한다.
상기한 설명으로부터, 통상의 단일 인증 코드 생성기는 각각의 사용에 대해 인증 코드를 생성한다. 한편, 본 출원의 실시예들은 인증 코드들을 생성하고 통상 각각의 사용에서 상기 인증 코드 생성기를 변경하도록 두 개 이상의 인증 코드 생성기들을 동시에 사용한다. 그에 따라, 코드 파괴에 요구되는 시간이 높아질 뿐만 아니라, 코드 파괴 성공률이 감소하고 네트워크 보안이 증가된다.
본 출원의 실시예들은 또한 상기 기술한 프로세스 흐름의 실행에 대응하는 인증 코드 생성 디바이스를 제공한다. 이러한 디바이스는 소프트웨어를 통해 실행될 수 있거나, 또는 상기 디바이스는 하드웨어를 통해 또는 소프트웨어와 하드웨어의 조합을 통해 실행될 수 있다.
도 8은 인증 코드들을 생성하기 위한 시스템의 실시예를 도시한다. 일부 실시예들에서, 상기 시스템(800)은 네트워크(830)를 통해 클라이언트(820)에 접속된 서버(810)를 포함한다.
일부 실시예들에서, 상기 서버(810)는 현재 사용 세트를 구성하기 위해 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택하고, 대응하는 부분적 인증 코드들을 얻기 위해 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 동작시키고, 상기 부분적 인증 코드들로부터 현재 인증 코드를 구성한다.
상기 클라이언트(820)는 상기 적어도 두 개의 인증 코드 생성기들에 의해 생성된 인증 코드 체크섬에 대해 유효하게 될 사용자 입력을 제공한다.
도 9는 인증 코드들을 생성하기 위한 프로그램된 컴퓨터 시스템의 실시예를 나타내는 기능도를 도시한다. 명백할 바와 같이, 다른 컴퓨터 시스템 아키텍처들과 구성들도 인증 코드들을 생성하는데 사용될 수 있다. 하기에 기술될 바와 같이 다양한 서브시스템들을 포함하는 컴퓨터 시스템(900)은 적어도 하나의 마이크로프로세서 서브시스템(프로세서 또는 중앙처리장치(CPU)라고도 함)(902)을 포함한다. 예를 들면, 프로세서(902)는 단일-칩 프로세서 또는 다중 프로세서들에 의해 실행될 수 있다. 일부 실시예들에서, 프로세서(902)는 상기 컴퓨터 시스템(900)의 동작을 제어하는 범용 디지털 프로세서다. 메모리(910)로부터 검색되는 명령들을 사용하여, 상기 프로세서(902)는 입력 데이터의 수신 및 조작과, 출력 디바이스들(예를 들면, 디스플레이(918)) 상의 데이터의 출력 및 디스플레이를 제어한다.
프로세서(902)는, 제 1 주 저장장치로서 통상 랜덤 액세스 메모리(RAM), 제 2 주 저장장치 영역으로서 읽기-전용 메모리(ROM)를 포함할 수 있는, 메모리(910)와 양방향으로 결합된다. 당 기술 분야에 알려진 바와 같이, 주 저장장치는 일반적인 저장 영역으로서 그리고 스크래치-패드 메모리로서 사용될 수 있으며, 또한 입력 데이터 및 처리된 데이터를 저장하는데 사용될 수 있다. 주 저장장치는 또한, 프로세서(902)에서 동작하는 프로세스들에 대한 다른 데이터 및 명령들 외에도, 데이터 오브젝트들과 텍스트 오브젝트들의 형태로 프로그래밍 명령들과 데이터를 저장할 수 있다. 당 기술 분야에 알려진 바와 같이, 주 저장장치는 일반적으로 그 기능들(예를 들면, 프로그래밍된 명령들)을 수행하기 위해 상기 프로세서(902)에 의해 사용되는 기본 동작 명령들, 프로그램 코드, 데이터 및 오브젝트들을 포함한다. 예를 들면, 메모리(910)는 예를 들면 데이터 액세스가 양방향이 되는 것이 필요한지 또는 단방향이 되는 것이 필요한지에 따라 하기에 기술될 바와 같이 어떠한 적절한 컴퓨터 판독가능한 저장 매체를 포함할 수 있다. 예를 들면, 프로세서(902)는 또한 요구되는 데이터를 직접적으로 매우 빠르게 검색하고 캐시 메모리(도시되지 않음)에 빈번하게 저장할 수 있다.
분리가능한 대용량 저장 디바이스(912)가 상기 컴퓨터 시스템(900)에 대해 추가의 데이터 저장 용량을 제공하며, 프로세서(902)에 양방향(읽기/쓰기)으로 또는 단방향(읽기 전용)으로 결합된다. 예를 들면, 저장장치(912)는 또한 자기 테이프, 프래시 메모리, PC-CARDS, 휴대용 대용량 저장 디바이스, 홀로그래픽 저장 디바이스, 및 다른 저장 디바이스와 같은 컴퓨터 판독가능한 매체를 포함할 수 있다. 고정된 대용량 저장장치(920)가 또한 예를 들면 추가의 데이터 저장 용량을 제공할 수 있다. 대용량 저장장치(920)의 가장 일반적인 예는 하드 디스크 드라이브가 된다. 대용량 저장장치들(912, 920)은 일반적으로 상기 프로세서(902)에 의해 통상 적극적으로 사용되지 않는 추가의 프로그래밍 명령들, 데이터 등을 저장한다. 대용량 저장장치들(912, 920) 내의 보유된 정보는 필요하다면 가상 메모리로서 메모리(910)(예를 들면, RAM)의 일부로 표준 방식으로 포함될 수 있다는 것을 이해할 것이다.
저장 서브시스템들에 대한 액세스에 프로세서(902)를 제공하는 것 외에도, 다른 서브시스템들 및 디바이스들에 대해 액세스를 제공하는데 버스(914)가 사용될 수 있다. 도시된 바와 같이, 이들은 디스플레이 모니터(918), 네트워크 인터페이스(916), 키보드(904), 및 포인팅 디바이스(906)와, 보조 입력/출력 디바이스 인터페이스, 사운드 카드, 스피커들, 및 필요에 따라 다른 서브시스템들을 포함할 수 있다. 예를 들면, 포인팅 디바이스(906)는 마우스, 스타일러스, 트랙 볼, 또는 태블릿이 될 수 있으며, 그래픽 사용자 인터페이스와 상호작용하는데 유용하다.
네트워크 인터페이스(916)는 프로세서(902)가 도시된 바와 같은 네트워크 접속을 사용하여 다른 컴퓨터, 컴퓨터 네트워크, 또는 원격통신 네트워크에 결합될 수 있게 한다. 예를 들면, 상기 네트워크 인터페이스(916)를 통해, 상기 프로세서(902)는 다른 네트워크로부터 정보(예를 들면, 데이터 오브젝트 또는 프로그램 명령들)를 수신할 수 있으며, 방법/프로세스 단계들을 수행하는 동안 다른 네트워크에 정보를 출력할 수 있다. 프로세서 상에서 실행될 명령들의 시퀀스로서 종종 표현되는 정보는 다른 네트워크로부터 수신될 수 있으며 다른 네트워크로 출력될 수 있다. 인터페이스 카드 또는 유사한 디바이스와 프로세서(902)에 의해 실행되는(예를 들면, 프로세서 상에서 처리/수행되는) 적절한 소프트웨어가 상기 컴퓨터 시스템(900)을 외부 네트워크에 접속하는데 사용될 수 있으며 표준 프로토콜들에 따라 데이터를 전달할 수 있다. 예를 들면, 여기에서 개시되는 다양한 프로세스 실시예들은 프로세서(902) 상에서 실행될 수 있거나, 또는 프로세싱의 일부를 공유하는 원격 프로세서와 함께 인터넷, 인터넷 네트워크들, 또는 로컬 영역 네트워크들과 같은 네트워크 전역에 걸쳐 수행될 수 있다. 추가의 대용량 저장 디바이스들(도시되지 않음)이 또한 네트워크 인터페이스(916)를 통해 프로세서(902)에 접속될 수 있다.
보조 I/O 디바이스 인터페이스(도시되지 않음)가 컴퓨터 시스템(900)과 함께 사용될 수 있다. 보조 I/O 디바이스 인터페이스는 범용 및 맞춤형 인터페이스들을 포함할 수 있으며, 이들은 상기 프로세서(902)로 하여금 데이터를 전송할 수 있게 하고, 더욱 일반적으로는, 마이크로폰, 접촉-감지 디스플레이, 트랜스듀서 카드 판독기, 테이프 판독기, 음성 또는 핸드라이팅 인식기, 바이오메트릭 판독기, 카메라, 휴대용 대용량 저장 디바이스, 및 다른 컴퓨터와 같은 다른 디바이스들로부터 데이터를 수신할 수 있게 한다.
하지만, 도 9에 도시된 컴퓨터 시스템은 여기에서 개시된 다양한 실시예들에 사용하기에 적합한 컴퓨터 시스템의 예일 뿐이다. 그러한 사용에 적합한 다른 컴퓨터 시스템들은 추가적인 서브시스템들 또는 보다 소수의 서브시스템들을 포함할 수 있다. 또한 버스(914)는 상기 서브시스템들을 연결하는 기능을 하는 어떠한 상호접속 방식을 예시한 것이다. 상이한 서브시스템들의 구성들을 갖는 다른 컴퓨터 아키텍처가 또한 활용될 수 있다.
상술된 모듈들은 하나 이상의 범용 프로세서들 상에서 실행하는 소프트웨어 구성요소들로서, 프로그램 가능한 논리 디바이스들과 같은 하드웨어로서, 및/또는 특정 기능들 또는 그들의 조합을 수행하도록 설계된 주문형 집적 회로들로서 실행될 수 있다. 일부 실시예들에서, 모듈들은 컴퓨터 디바이스(개인용 컴퓨터들, 서버들, 네트워크 기기 등과 같은)가 본 발명의 실시예들에 기술된 방법들을 실행하게 하기 위한 다수의 명령들을 포함하여, 비휘발성 저장 매체(광학 디스크, 플래시 저장 디바이스, 휴대용 하드 디스크 등과 같은)에 저장될 수 있는 소프트웨어 제품들의 형태로 실행될 수 있다. 모듈들은 단일 디바이스 상에서 실행될 수 있거나 다수의 디바이스들에 걸쳐 분산될 수 있다. 모듈들의 기능들은 서로 병합될 수 있거나 다중 서브-모듈들로 더 분할될 수 있다.
여기에서 개시된 실시예들의 관점에서 기술된 방법들 또는 알고리즘적 단계들은 하드웨어, 프로세서-실행 소프트웨어 모듈들, 또는 이 둘의 조합을 사용하여 실행될 수 있다. 소프트웨어 모듈들은 랜덤 액세스 메모리(RAM), 메모리, 읽기-전용 메모리(ROM), 전기적으로 프로그램가능한 ROM, 전기적으로 소거가능한 프로그램가능 ROM, 레지스터, 하드 드라이브, 분리가능 디스크, CD-ROM, 또는 기술 분야에서 공지된 어떠한 다른 형태의 저장 디바이스에 설치될 수 있다.
전술한 실시예들은 이해를 명료하게 할 목적으로 일부 세밀하게 기재되었지만, 본 발명의 이러한 제공된 세부사항에 제한되지 않는다. 본 발명을 실행하는 많은 대체의 방법들이 있다. 개시된 실시예들은 예시적인 것이며 제한적인 것이 아니다.
710: 현재 사용 세트 모듈
720: 생성기 구동 모듈
730: 인증 코드 생성 모듈
740: 체크섬 생성 모듈
7110: 기술 지정 모듈
7120: 생성기 선택 모듈
7130: 스크리닝 기술 모듈
7140: 기술 지정 모듈
810: 서버
820: 클라이언트
830: 네트워크
902: 프로세서
904: 키보드
906: 포인팅 디바이스
910: 메모리
912: 분리가능한 대용량 저장 디바이스
916: 네트워크 인터페이스
918: 디스플레이
920: 고정된 대용량 저장장치

Claims (20)

  1. 현재 사용 세트를 구성하도록 복수의 인증 코드 생성기들을 포함하는 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택하는 단계로서, 상기 적어도 두 개의 인증 코드 생성기들은 제 1 인증 코드 생성기 및 제 2 인증 코드 생성기를 포함하고, 상기 제 1 인증 코드 생성기 및 상기 제 2 인증 코드 생성기는 인증 모드들의 상이한 세트들과 연관되고, 상기 제 1 인증 코드 생성기는 디지털 인증 모드, ASCII 문자 인증 모드, 중국 문자 인증 모드, 음성 인증 모드, 그림-기반 인증 모드, 또는 이들의 조합을 포함하고, 상기 제 2 인증 코드 생성기는 디지털 인증 모드, ASCII 문자 인증 모드, 중국 문자 인증 모드, 음성 인증 모드, 그림-기반 인증 모드, 또는 이들의 조합을 포함하는, 상기 선택하는 단계;
    대응하는 부분적 인증 코드들을 얻기 위해 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 실행하는 단계;
    상기 부분적 인증 코드들로부터 현재 인증 코드를 구성하는 단계;
    상기 현재 인증 코드를 사용자에게 출력하는 단계;
    상기 현재 인증 코드에 응답하여 만들어진 사용자 응답을 수신하는 단계; 및
    상기 사용자가 인증되는지를 결정하기 위해 상기 현재 인증 코드와 상기 사용자 응답을 비교하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 인증 코드 생성기 세트로부터 상기 적어도 두 개의 인증 코드 생성기들을 선택하는 상기 단계는:
    보안 레벨에 기초하여 복수의 사전 확립된 스크리닝 기술들(screening techniques)로부터 스크리닝 기술을 지정(specify)하는 단계로서, 상기 복수의 스크리닝 기술들은 인증 코드 생성기들의 각각의 복수의 시퀀스들을 지정하고, 상기 스크리닝 기술은 제 1 보안 레벨 또는 제 2 보안 레벨에 대응하고, 상기 제 1 보안 레벨은 상기 제 2 보안 레벨과 상이하고, 상기 스크리닝 기술은 상기 적어도 두 개의 인증 코드 생성기들의 수에 대응하는, 상기 지정 단계; 및
    상기 지정된 스크리닝 기술에 기초하여 상기 인증 코드 생성기 세트로부터 상기 적어도 두 개의 인증 코드 생성기들을 선택하는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 사전 확립된 스크리닝 기술들은 변화하는 복잡도 레벨들을 가지며,
    상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 지정하는 상기 단계는, 상기 사용자의 이력 행동 기록들에 기초하여 특정의 복잡도 레벨의 스크리닝 기술을 선택하는 단계를 포함하는, 방법.
  4. 제 2 항에 있어서,
    상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 지정하는 상기 단계는, 상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 랜덤하게 선택하는 단계를 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 부분적 인증 코드들로부터 현재 인증 코드를 구성하는 상기 단계는, 상기 현재 사용 세트 내의 상기 적어도 두 개의 인증 코드 생성기들의 시퀀스에 대응하는 부분적 인증 코드들로부터 상기 현재 인증 코드를 구성하는 단계를 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 현재 사용 세트 내의 각각의 인증 코드 생성기에 의해 생성된 부분적 인증 코드 체크섬들(partial verification code checksums)로부터 현재 인증 코드 체크섬을 구성하는 단계를 더 포함하는, 방법.
  7. 삭제
  8. 시스템에 있어서,
    적어도 하나의 프로세서로서:
    현재 사용 세트를 구성하도록 복수의 인증 코드 생성기들을 포함하는 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택하고, 상기 적어도 두 개의 인증 코드 생성기들은 제 1 인증 코드 생성기 및 제 2 인증 코드 생성기를 포함하고, 상기 제 1 인증 코드 생성기 및 상기 제 2 인증 코드 생성기는 인증 모드들의 상이한 세트들과 연관되고, 상기 제 1 인증 코드 생성기는 디지털 인증 모드, ASCII 문자 인증 모드, 중국 문자 인증 모드, 음성 인증 모드, 그림-기반 인증 모드, 또는 이들의 조합을 포함하고, 상기 제 2 인증 코드 생성기는 디지털 인증 모드, ASCII 문자 인증 모드, 중국 문자 인증 모드, 음성 인증 모드, 그림-기반 인증 모드, 또는 이들의 조합을 포함하고;
    대응하는 부분적 인증 코드들을 얻기 위해 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 실행하고;
    상기 부분적 인증 코드들로부터 현재 인증 코드를 구성하고;
    상기 현재 인증 코드를 사용자에게 출력하고;
    상기 현재 인증 코드에 응답하여 만들어진 사용자 응답을 수신하고;
    상기 사용자가 인증되는지를 결정하기 위해 상기 현재 인증 코드와 상기 사용자 응답을 비교하도록 구성된, 상기 적어도 하나의 프로세서, 및
    상기 적어도 하나의 프로세서에 결합되어, 상기 적어도 하나의 프로세서에 명령들을 제공하도록 구성된 메모리를 포함하는, 시스템.
  9. 제 8 항에 있어서,
    상기 인증 코드 생성기 세트로부터 상기 적어도 두 개의 인증 코드 생성기들을 선택하는 것은:
    보안 레벨에 기초하여 복수의 사전 확립된 스크리닝 기술들로부터 스크리닝 기술을 지정하는 것으로서, 상기 복수의 스크리닝 기술들은 인증 코드 생성기들의 각각의 복수의 시퀀스들을 지정하고, 상기 스크리닝 기술은 제 1 보안 레벨 또는 제 2 보안 레벨에 대응하고, 상기 제 1 보안 레벨은 상기 제 2 보안 레벨과 상이하고, 상기 스크리닝 기술은 상기 적어도 두 개의 인증 코드 생성기들의 수에 대응하는, 상기 스크리닝 기술을 지정하는 것과;
    상기 지정된 스크리닝 기술에 기초하여 상기 인증 코드 생성기 세트로부터 상기 적어도 두 개의 인증 코드 생성기들을 선택하는 것을 포함하는, 시스템.
  10. 제 9 항에 있어서,
    상기 사전 확립된 스크리닝 기술들은 변화하는 복잡도 레벨들을 가지며,
    상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 지정하는 것은, 상기 사용자의 이력 행동 기록들에 기초하여 특정의 복잡도 레벨의 스크리닝 기술을 선택하는 것을 포함하는, 시스템.
  11. 제 9 항에 있어서,
    상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 지정하는 것은, 상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 랜덤하게 선택하는 것을 포함하는, 시스템.
  12. 제 8 항에 있어서,
    상기 부분적 인증 코드들로부터 현재 인증 코드를 구성하는 것은, 상기 현재 사용 세트 내의 상기 적어도 두 개의 인증 코드 생성기들의 시퀀스에 대응하는 부분적 인증 코드들로부터 상기 현재 인증 코드를 구성하는 것을 포함하는, 시스템.
  13. 삭제
  14. 컴퓨터 프로그램을 저장한 탠저블(tangible) 비-일시적 컴퓨터 판독 가능한 저장 매체로서, 상기 컴퓨터 프로그램은 컴퓨터 명령들을 포함하고,
    상기 컴퓨터 명령들은:
    현재 사용 세트를 구성하도록 복수의 인증 코드 생성기들을 포함하는 인증 코드 생성기 세트로부터 적어도 두 개의 인증 코드 생성기들을 선택하고, 상기 적어도 두 개의 인증 코드 생성기들은 제 1 인증 코드 생성기 및 제 2 인증 코드 생성기를 포함하고, 상기 제 1 인증 코드 생성기 및 상기 제 2 인증 코드 생성기는 인증 모드들의 상이한 세트들과 연관되고, 상기 제 1 인증 코드 생성기는 디지털 인증 모드, ASCII 문자 인증 모드, 중국 문자 인증 모드, 음성 인증 모드, 그림-기반 인증 모드, 또는 이들의 조합을 포함하고, 상기 제 2 인증 코드 생성기는 디지털 인증 모드, ASCII 문자 인증 모드, 중국 문자 인증 모드, 음성 인증 모드, 그림-기반 인증 모드, 또는 이들의 조합을 포함하고;
    대응하는 부분적 인증 코드들을 얻기 위해 상기 현재 사용 세트 내의 각각의 인증 코드 생성기를 실행하고;
    상기 부분적 인증 코드들로부터 현재 인증 코드를 구성하고;
    상기 현재 인증 코드를 사용자에게 출력하고;
    상기 현재 인증 코드에 응답하여 만들어진 사용자 응답을 수신하고;
    상기 사용자가 인증되는지를 결정하기 위해 상기 현재 인증 코드와 상기 사용자 응답을 비교하기 위한 것인, 저장 매체.
  15. 제 14 항에 있어서,
    상기 인증 코드 생성기 세트로부터 상기 적어도 두 개의 인증 코드 생성기들을 선택하는 것은:
    보안 레벨에 기초하여 복수의 사전 확립된 스크리닝 기술들로부터 스크리닝 기술을 지정하는 것으로서, 상기 복수의 스크리닝 기술들은 인증 코드 생성기들의 각각의 복수의 시퀀스들을 지정하고, 상기 스크리닝 기술은 제 1 보안 레벨 또는 제 2 보안 레벨에 대응하고, 상기 제 1 보안 레벨은 상기 제 2 보안 레벨과 상이하고, 상기 스크리닝 기술은 상기 적어도 두 개의 인증 코드 생성기들의 수에 대응하는, 상기 스크리닝 기술을 지정하는 것과;
    상기 지정된 스크리닝 기술에 기초하여 상기 인증 코드 생성기 세트로부터 상기 적어도 두 개의 인증 코드 생성기들을 선택하는 것을 포함하는, 저장 매체.
  16. 제 15 항에 있어서,
    상기 사전 확립된 스크리닝 기술들은 변화하는 복잡도 레벨들을 가지며,
    상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 지정하는 것은, 상기 사용자의 이력 행동 기록들에 기초하여 특정의 복잡도 레벨의 스크리닝 기술을 선택하는 것을 포함하는, 저장 매체.
  17. 제 15 항에 있어서,
    상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 지정하는 것은, 상기 사전 확립된 스크리닝 기술들로부터 상기 스크리닝 기술을 랜덤하게 선택하는 것을 포함하는, 저장 매체.
  18. 제 14 항에 있어서,
    상기 부분적 인증 코드들로부터 현재 인증 코드를 구성하는 것은, 상기 현재 사용 세트 내의 상기 적어도 두 개의 인증 코드 생성기들의 시퀀스에 대응하는 부분적 인증 코드들로부터 상기 현재 인증 코드를 구성하는 것을 포함하는, 저장 매체.
  19. 제 14 항에 있어서,
    상기 컴퓨터 프로그램은, 상기 현재 사용 세트 내의 각각의 인증 코드 생성기에 의해 생성된 부분적 인증 코드 체크섬들로부터 현재 인증 코드 체크섬을 구성하기 위한 컴퓨터 명령을 더 포함하는, 저장 매체.
  20. 삭제
KR1020167027806A 2014-05-08 2015-05-06 인증 코드들을 생성하기 위한 방법 및 시스템 KR101978934B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201410194197.7 2014-05-08
CN201410194197.7A CN105095726B (zh) 2014-05-08 2014-05-08 生成验证码的方法及装置
US14/704,819 2015-05-05
US14/704,819 US10489576B2 (en) 2014-05-08 2015-05-05 Method and system for generating verification codes
PCT/US2015/029378 WO2015171702A1 (en) 2014-05-08 2015-05-06 Method and system for generating verification codes

Publications (2)

Publication Number Publication Date
KR20160135239A KR20160135239A (ko) 2016-11-25
KR101978934B1 true KR101978934B1 (ko) 2019-05-16

Family

ID=54368079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167027806A KR101978934B1 (ko) 2014-05-08 2015-05-06 인증 코드들을 생성하기 위한 방법 및 시스템

Country Status (7)

Country Link
US (2) US10489576B2 (ko)
EP (1) EP3140978B1 (ko)
JP (1) JP6433508B2 (ko)
KR (1) KR101978934B1 (ko)
CN (1) CN105095726B (ko)
TW (1) TWI649670B (ko)
WO (1) WO2015171702A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250755B (zh) * 2016-07-28 2021-11-19 北京旷视科技有限公司 用于生成验证码的方法及装置
US10497242B2 (en) 2016-12-15 2019-12-03 David H. Williams Systems and methods for monitoring for and preempting pre-identified restriction violation-related behavior(s) of persons under restriction
US10477342B2 (en) 2016-12-15 2019-11-12 David H. Williams Systems and methods of using wireless location, context, and/or one or more communication networks for monitoring for, preempting, and/or mitigating pre-identified behavior
US10853897B2 (en) 2016-12-15 2020-12-01 David H. Williams Systems and methods for developing, monitoring, and enforcing agreements, understandings, and/or contracts
US11412353B2 (en) 2016-12-15 2022-08-09 Conquer Your Addiction Llc Systems and methods for monitoring for and preempting the risk of a future occurrence of a quarantine violation
US11636941B2 (en) 2016-12-15 2023-04-25 Conquer Your Addiction Llc Dynamic and adaptive systems and methods for rewarding and/or disincentivizing behaviors
CN107342995A (zh) * 2017-07-03 2017-11-10 深圳市全民合伙人科技有限公司 一种用户信息处理方法及系统
CN110730152B (zh) * 2018-07-16 2021-11-26 杭州海康威视数字技术股份有限公司 一种登录验证方法、装置及电子设备
CN111382413A (zh) * 2018-12-28 2020-07-07 武汉极意网络科技有限公司 存储器、基于推理的验证码实现方法、装置和设备
CN110427745B (zh) * 2019-07-02 2022-03-08 五八有限公司 验证码获取方法、装置、电子设备和计算机可读介质
CN110995677A (zh) * 2019-11-22 2020-04-10 河北网新科技集团有限公司 一种验证码生成方法、登录验证方法及登录验证系统
CN111177689A (zh) * 2019-12-30 2020-05-19 广东智媒云图科技股份有限公司 验证码的生成方法及装置
WO2022155928A1 (en) * 2021-01-22 2022-07-28 Alibaba Group Holding Limited End to end check code protection in storage engine
KR20230016792A (ko) * 2021-07-27 2023-02-03 주식회사 에스투더블유 웹 사이트 수집 방법 및 장치
US20230236802A1 (en) * 2022-01-27 2023-07-27 Accenture Global Solutions Limited Intelligent industry compliance reviewer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100229223A1 (en) * 2009-03-06 2010-09-09 Facebook, Inc. Using social information for authenticating a user session
US20140059663A1 (en) * 2011-08-05 2014-02-27 EngageClick, Inc. System and method for creating and implementing scalable and effective multi-media objects with human interaction proof (hip) capabilities

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69320321T2 (de) 1993-02-05 1998-12-24 Hewlett-Packard Co., Palo Alto, Calif. Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden
WO2000034867A1 (en) * 1998-12-09 2000-06-15 Network Ice Corporation A method and apparatus for providing network and computer system security
US6915426B1 (en) * 1999-07-23 2005-07-05 Networks Associates Technology, Inc. System and method for enabling authentication at different authentication strength-performance levels
US7069435B2 (en) * 2000-12-19 2006-06-27 Tricipher, Inc. System and method for authentication in a crypto-system utilizing symmetric and asymmetric crypto-keys
JP3659178B2 (ja) * 2001-02-22 2005-06-15 日本電信電話株式会社 分散ディジタル署名作成方法及び装置及び分散ディジタル署名付ディジタル文書作成方法及び装置及び分散ディジタル署名作成プログラム及び分散ディジタル署名作成プログラムを格納した記憶媒体
US20030035646A1 (en) 2001-08-20 2003-02-20 Vat 19, Llc Digital video device having a verification code thereon and method of generating a verification code
US8171298B2 (en) * 2002-10-30 2012-05-01 International Business Machines Corporation Methods and apparatus for dynamic user authentication using customizable context-dependent interaction across multiple verification objects
JP4034743B2 (ja) * 2004-01-23 2008-01-16 株式会社東芝 多重署名方法、装置、プログラム及びシステム
US8601538B2 (en) 2006-08-22 2013-12-03 Fuji Xerox Co., Ltd. Motion and interaction based CAPTCHA
CN101447872B (zh) * 2007-11-27 2011-09-28 阿里巴巴集团控股有限公司 一种用户身份验证方法、系统及验证码生成维护子系统
JP4584300B2 (ja) * 2007-12-19 2010-11-17 富士通株式会社 電子署名プログラム、コンピュータにより読み取り可能な記録媒体、電子署名装置、電子署名方法
CN101197678B (zh) * 2007-12-27 2011-04-06 腾讯科技(深圳)有限公司 图片验证码生成方法和图片验证码生成装置
WO2010055159A2 (en) * 2008-11-14 2010-05-20 Lumex As Completely automatic public turing test to tell computers and humans apart (captcha) based on a multiple of different captcha methods
JP2011048497A (ja) 2009-08-25 2011-03-10 Ricoh Co Ltd アンチロボットテストシステム、アンチロボットテスト方法、アンチロボットテストサーバ
JP5020306B2 (ja) 2009-12-04 2012-09-05 ヤフー株式会社 サーバ装置及びサービス提供方法
TWI448923B (zh) * 2010-03-15 2014-08-11 F2Ware Inc 全自動區分計算機和人類的測試管理方法與系統,及其電腦程式產品
US8640212B2 (en) * 2010-05-27 2014-01-28 Red Hat, Inc. Securing passwords with CAPTCHA based hash when used over the web
US9118666B2 (en) * 2010-06-30 2015-08-25 Google Inc. Computing device integrity verification
TW201228326A (en) * 2010-12-28 2012-07-01 Gamania Digital Entertainment Co Ltd Method for generating dynamic authimage by means of utilizing character arrangement
US20130145441A1 (en) 2011-06-03 2013-06-06 Dhawal Mujumdar Captcha authentication processes and systems using visual object identification
WO2013059464A1 (en) * 2011-10-18 2013-04-25 Google Inc. Context-dependent authentication
WO2013096601A1 (en) * 2011-12-20 2013-06-27 Visa International Service Association Familiar dynamic human challenge response test content
WO2013103019A1 (ja) 2012-01-06 2013-07-11 Capy インク キャプチャ提供方法及びプログラム
CN102594811A (zh) * 2012-01-15 2012-07-18 青岛印象派信息技术有限公司 视频验证码云技术
US8904493B1 (en) * 2012-08-29 2014-12-02 Google Inc. Image-based challenge-response testing
CN103731403B (zh) * 2012-10-12 2017-06-23 阿里巴巴集团控股有限公司 一种验证码生成系统及方法
US9129100B2 (en) 2012-12-13 2015-09-08 Huawei Technologies Co., Ltd. Verification code generation and verification method and apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100229223A1 (en) * 2009-03-06 2010-09-09 Facebook, Inc. Using social information for authenticating a user session
US20140059663A1 (en) * 2011-08-05 2014-02-27 EngageClick, Inc. System and method for creating and implementing scalable and effective multi-media objects with human interaction proof (hip) capabilities

Also Published As

Publication number Publication date
US20200193010A1 (en) 2020-06-18
US11574040B2 (en) 2023-02-07
JP6433508B2 (ja) 2018-12-05
CN105095726A (zh) 2015-11-25
TWI649670B (zh) 2019-02-01
EP3140978B1 (en) 2024-02-21
US10489576B2 (en) 2019-11-26
JP2017520817A (ja) 2017-07-27
TW201543256A (zh) 2015-11-16
EP3140978A1 (en) 2017-03-15
US20150324573A1 (en) 2015-11-12
WO2015171702A1 (en) 2015-11-12
CN105095726B (zh) 2018-05-11
KR20160135239A (ko) 2016-11-25

Similar Documents

Publication Publication Date Title
KR101978934B1 (ko) 인증 코드들을 생성하기 위한 방법 및 시스템
US11500973B2 (en) Electroencephalography (EEG) based authentication
US9571490B2 (en) Method and system for distinguishing humans from machines
US10395065B2 (en) Password protection under close input observation based on dynamic multi-value keyboard mapping
JP6585301B2 (ja) Captchaチャレンジの動的な更新
US7873995B2 (en) Method and apparatus for generating and reinforcing user passwords
US8549314B2 (en) Password generation methods and systems
US20090150983A1 (en) System and method for monitoring human interaction
US11361068B2 (en) Securing passwords by using dummy characters
US9626495B2 (en) Authenticating a device based on availability of other authentication methods
US9547763B1 (en) Authentication using facial recognition
US10333923B2 (en) Authentication based on visual memory
US10146933B1 (en) Access control using passwords derived from phrases provided by users
US8590058B2 (en) Advanced audio CAPTCHA
US11151440B2 (en) Neural response human detector
US20170169102A1 (en) Method and electronic device for controlling data query
US11831688B2 (en) Systems and methods for network security
EP3528152A1 (en) Method and apparatus for user authentication
KR101460916B1 (ko) 일회용 비밀 번호를 이용하는 사용자 인증 방법 및 그 장치
US20210314350A1 (en) Detecting replay attacks using action windows
JP2017527891A (ja) パスワードの照合のための記号入力のタイミングの使用
US9111133B2 (en) Use of unknown user data for identifying known users

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right