Patent Description:
To make sure that a user of online service is not a computer program (so-called bot) but a human, a CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) may sometimes be used. The CAPTCHA, which is also called a reverse Turing test or human interaction proofs, is a type of challenge-response test. In the present specification, verifying whether the user of online service is a human is referred to as a verification of existence. The existence means that the user is a living human being, and not an intangible computer program.

In general, to provide safe and highly reliable online services, identity verification (personal authentication) is needed. The identity verification is a process of verifying whether the user accessing the online service is a person who is permitted to use the online service. As one example, in a process of the identity verification, determination is made as to whether a user ID (identification) and a password entered by the user match with those which are registered, and, if they are determined to match, the determination is made that the user is a person who is permitted to use the service. In another example, determination is made as to whether biometric information regarding the user matches with pre-registered biometric information, and, if the pieces of information are determined to match with each other, the determination is made that the user is the person who is permitted to use the service. Either one or both of a facial image and a voice (voice print), for example, may be used as the biometric information.

For example, a method for verifying the identity disclosed in PTL <NUM> includes (a) obtaining voice data and video data recorded when the user uttered the selected phrase, and (b) generating voice features and video features for identification based on the voice data and video data. The method for verifying the identity further includes (c) determining whether the user is a person in question by comparing these voice features and video features with pre-registered feature vectors.

A method for performing identity verification (personal authentication) disclosed in PTL <NUM> includes obtaining time-series facial images taken when a user gives utterance and determining whether the user is a person in question based on the time-series facial images. Specifically, according to PTL <NUM>, a facial image taken immediately before the utterance is defined as a reference frame, and a facial image taken at a central time in a period of time when individual phonemes are uttered is defined as a phoneme frame. An authentication device disclosed in PTL <NUM> obtains feature points in the reference frame and those in the phoneme frame and determines the amount of displacement of feature points (feature point displacement amount) in the phoneme frame relative to feature points in the reference frame. Then, the authentication device generates a single feature vector composed of a plurality of feature point displacements that have been obtained with respect to a plurality of phoneme frames, and compares the feature vector with a pre-registered template vector. Subsequently, the authentication device obtains a similarity between the feature vector and the template vector through the comparison, and determines whether the user is the person in question based on the similarity.

PTL <NUM> discloses a finger vein authentication system of a challenge-response type. In the authentication system according to PTL <NUM>, a finger used for personal authentication is specified at random, and a site (site to be verified) of the finger used for personal authentication is determined at random.

PTL <NUM> discloses verifying the existence of a user in addition to verifying whether the user is a person in question (personal authentication). The authentication system disclosed in PTL <NUM> performs a process of identity verification of a user (personal authentication) by using a password, biometric information, passport, driver's license, integrated circuit (IC) card, or the like. Then, the authentication system obtains information about the user position and time at which the process of identity verification was performed, and stores the obtained information. In addition, the authentication system compares the user position and time at which the identity was verified with the user position and time at which the immediately previous (i.e., the last) identity verification had been performed. The authentication system then determines whether the distance and duration of movement of the user are appropriate, and verifies the existence of the user by using the determination result.

<CIT> Al relates to a method and apparatus for three-factor authentication that uses a short wireless device to authenticate access to a computer or device. The computer or device issues a challenge question to the user, for example, requesting the user to say a phrase or write symbols. The user biometric information is captured and authenticated using the short wireless device.

In general, CAPTCHA-based verification of the existence uses a challenge image. The challenge image is an image of letters with distortion or noise added such that the letters are difficult to recognize for a computer running in accordance with a computer program (decipher program) for deciphering random character string. For example, in a process of verifying the existence, the challenge image is presented to a user, and then determination is made as to whether the user has succeeded in correctly reading the challenge image. If the user has correctly read the image, the existence of the user is verified. However, to cope with advanced decipher program, the challenge images in the CAPTCHA are complicated to the extent even human beings may not easily determine the images any more. Thus, there is a growing need for a technique for verifying the existence of a user based on a new reference different from the existing CAPTCHA.

From a viewpoint of providing safe and highly reliable online service, the CAPTCHA-based verification of the existence is not enough. In addition to the CAPTCHA, either one or both of identity verification and uniqueness verification is/are needed. Uniqueness, as used in the present specification, means that only a single online account is issued to a single person. In other words, the uniqueness means that online accounts are not issued to a single person redundantly.

The present invention has been designed for the purpose of solving the problems described above. That is, a primary object of the present invention is to provide a technique for improving safety and reliability of services provided by a computer.

An authentication device includes:.

A computer recording medium storing a procedure for causing a computer to execute the processes of:.

The above-mentioned primary object of the present invention is also achieved by an authentication method of the present invention according to the authentication device of the present invention. In addition, the above-mentioned primary object of the present invention is also achieved by a computer program and a program storage medium according to the authentication device of the present invention and authentication method of the present invention.

The present invention allows of improving safety and reliability of services provided by a computer.

Example embodiments of the present invention will be described below with reference to the drawings.

<FIG> is a block diagram schematically illustrating a configuration of an authentication device according to a first example embodiment of the present invention. The authentication device <NUM> is coupled to a terminal device <NUM>. The terminal device <NUM> includes an input unit (not illustrated) in which information is input and an output unit (not illustrated) which outputs information. Examples of the input unit may include a keyboard and a touch panel. Examples of the output unit may include a speaker producing a sound and a display showing images.

The authentication device <NUM> includes a transmission unit <NUM> and a determination unit <NUM>. The transmission unit <NUM> and determination unit <NUM> are functional units implemented by, for example, execution of a computer program by a control device <NUM> that includes a processor (not illustrated).

The transmission unit <NUM> has a function to transmit a challenge to the terminal device <NUM>. The challenge means information (e.g., image data or voice data) serving as a basis on which a user <NUM> of being authenticated inputs information used for an authentication process. For example, when the challenge is presented by the output unit in the terminal device <NUM>, the user <NUM> inputs information (response) based on the challenge into the terminal device <NUM> using the input unit in the terminal device <NUM>.

In the first example embodiment, the transmission unit <NUM> transmits a plurality of challenges different from one another toward the user <NUM> of being authenticated. At least of one of the plurality of challenges is information requesting the user <NUM> to give the response that includes biometric information regarding the user <NUM>.

The determination unit <NUM> has a function to determine, upon receipt from the terminal device <NUM> the response inputted by the user <NUM> to the terminal device <NUM>, whether the response to the challenge is correct or wrong, which constitutes the authentication process. By way of example, suppose that the challenge is image data showing a plurality of numeric characters (e.g., distorted numeric characters). Then, the user <NUM> enters numbers read from the image (challenge) into the terminal device <NUM>. The entered numbers, which constitute the response, are transmitted from the terminal device <NUM> to the authentication device <NUM>. The determination unit <NUM> determines whether the numbers entered as responses match with the numeric characters shown in the image data presented as a challenge. If the numbers match with the numeric characters, the determination unit <NUM> determines that the response is correct. In this case, the authentication device <NUM> can verify the existence of the user <NUM> (the response has been inputted by a real human and not by a computer (computer program)).

If, for example, the challenge is the information requesting the user <NUM> to give the response that includes biometric information regarding the user <NUM>, the determination unit <NUM> compares the response, i.e., biometric information received from the terminal device <NUM> with the pre-registered biometric information regarding the user <NUM>. In this case, if the biometric information (response) received matches with the pre-registered biometric information, the determination unit <NUM> determines that the user <NUM> is the pre-registered user (can verify the identity of the user).

In addition, as the authentication process, the determination unit <NUM> has a function to make the determination as to whether time information regarding the challenge transmitted by the transmission unit <NUM> and the response received from the terminal device <NUM> satisfies a condition regarding the response.

The condition is, for example, a condition for the existence to enable supposing that the response is given by a human being. That is, depending on a state of information included in the challenge, the information may be easily interpreted by a human being through the challenge, but may be difficult for a computer to decipher. In such cases, it is expected that a difference is caused in the length of time from presentation of the challenge to input of the response, depending on a case where the user <NUM> is human and a case where the user <NUM> is a computer. The determination unit <NUM> can verify the existence of the user <NUM> by using such temporal difference.

The authentication device <NUM> according to the first example embodiment performs the authentication process on the user <NUM> with a plurality of challenges, thereby enhancing reliability of the authentication. In addition to the function to determine whether the response to the challenge is correct or wrong, the authentication device <NUM> has, for example, the function to verify the existence of the user <NUM> by using time information regarding the challenge and the response. Thus, for example, the authentication device <NUM> can avoid a situation where image data including distortion or noise which may not easily determined by a human has to be employed as the challenge.

In addition, with at least one of the challenges, the authentication device <NUM> requests the user <NUM> to give the response that includes biometric information regarding the user <NUM>. Thus, the authentication device <NUM> can perform verification of the identity by using the biometric information included in the response. In other words, the authentication device <NUM> according to the first example embodiment can perform a so-called challenge-response test to verify not only the existence of the user <NUM> but also the identity of the user <NUM>, thereby improving reliability of authentication. Consequently, when adopted as an authentication device for a service provided by a computer, the authentication device <NUM> according to the first example embodiment can improve safety and reliability of the service.

A second example embodiment of the present invention will be described below.

<FIG> is a block diagram illustrating an example configuration of an online service system, which is a computer system including an authentication device according to the second example embodiment. The online service system of the second example embodiment includes a server <NUM>. The server <NUM>, which can be coupled to a client <NUM>, i.e., a terminal device, via an information communication network <NUM>, has a function to provide an online service to a user that uses the client <NUM>. In addition, the server <NUM> has a function to serve as an authentication device that determines whether the online service can be provided. In other words, the server <NUM> performs, as the authentication process, identity verification to determine whether the user of the client <NUM> is permitted to receive the online service. Additionally, the server <NUM> verifies the existence of the user. Moreover, the server <NUM> manages accounts for the online service. Additionally, the server <NUM> may verify the uniqueness of the user (i.e., verify that a plurality of accounts are not issued to the same user). The server <NUM> may be a single computer device, or may be configured by a plurality of communicatively coupled computer devices.

In the second example embodiment, the server <NUM> includes a control device <NUM>, a storage device <NUM>, and a communication unit <NUM>.

The communication unit <NUM> has a function to enable communications with other communication devices via the information communication network <NUM>. For example, the communication unit <NUM> includes a network interface card (NIC) compliant with the IEEE <NUM> series and has a function to control communications through the card. The communication unit <NUM> may include a communication protocol stack (e.g., Transmission Control Protocol (TCP) / Internet Protocol (IP) and User Datagram Protocol (UDP) / IP protocol stack), and may have a function to control communications based on the stack.

The storage device <NUM> is a device (non-transitory computer readable medium) that can store computer programs and various types of data. For example, the storage device <NUM> is composed of a combination of a volatile memory and a non-volatile memory. Examples of volatile memory may include static random access memory (SRAM) and dynamic RAM (DRAM). Examples of the non-volatile memory may include a mask read only memory (MROM), a programmable ROM (PROM), and a flash memory. The server <NUM> may also include, as the storage device <NUM>, a device having a magnetic recording medium (e.g., a flexible disk, magnetic tape, or hard disk drive) or a magneto-optic recording medium (e.g., a magneto-optical disk). In addition, the storage device <NUM> may be disposed physically apart from the control device <NUM>.

In the second example embodiment, the storage device <NUM> stores a transmission processing program and a determination processing program. The transmission processing program represents a procedure for transmitting the challenge to be used for the challenge-response test. As described in the first example embodiment, the challenge is information (e.g., image data or voice data) serving as the basis on which the user to be authenticated inputs the information used for the authentication process. The determination processing program represents a procedure for performing a authentication process based on the information (response) inputted by the user based on the challenge.

In the second example embodiment, the server <NUM> is coupled to the storage device <NUM>. The storage device <NUM> stores information to be used for the authentication process. For example, the storage device <NUM> stores the biometric information regarding the users who are permitted to use online services that can be provided by the server <NUM>. The biometric information stored in the storage device <NUM> may be defined as appropriate depending on types of authentication processes, and specific examples of the biometric information may include image data or feature point data representing a face, voice print, fingerprint, vein pattern, iris pattern, or the like. The server <NUM> obtains such biometric information through the use of the client <NUM> and the information communication network <NUM> and stores the biometric information to the storage device <NUM>, by the server <NUM> operating in accordance with a procedure for issuing a new online account (procedure for registering a user). The server <NUM> may update the biometric information stored in the storage device <NUM> periodically or non-periodically. In addition, when biometric information has been obtained from a user through the authentication process, the server <NUM> may update the biometric information regarding the user stored in the storage device <NUM> by using the obtained biometric information.

The control device <NUM> is configured with, for example, a processor such as a central processing unit (CPU). The control device <NUM> can have various functions by reading and executing the software (computer programs) stored in the storage device <NUM>. In the second example embodiment, the control device <NUM> has a function to conduct the challenge-response test. That is, the control device <NUM> includes a transmission unit <NUM> and a determination unit <NUM> as functional units.

The transmission unit <NUM> has a function to transmit to the client <NUM> the plurality of challenges to be presented to the user of being authenticated. The challenges are different from one another. At least of one of these challenges is the information requesting the user to give the response that includes the biometric information.

The determination unit <NUM> has a function to determine, upon receipt of the response inputted by the user into the client <NUM> based on the challenge, whether the response is correct or wrong. In addition, the determination unit <NUM> has a function to determine whether a response time needed for the response satisfies a condition for the existence, based on the information regarding the starting time of transmission by the transmission unit <NUM> and on the information regarding the starting time of receiving the response. The starting time of transmission refers to the time when the transmission unit <NUM> transmits the challenge, while the starting time of reception refers to the time when the response to the challenge is received from the client <NUM>.

Specific examples of operation of the transmission unit <NUM> and the determination unit <NUM> are described later.

The following describes the client <NUM>. The client <NUM> is a terminal device operated by the user and communicates with the server <NUM> in a wired or wireless manner via the information communication network (e.g., Internet) <NUM>. The client <NUM> may be, for example, a personal computer, tablet, or smart phone.

The client <NUM> includes a control device <NUM>, a storage unit <NUM>, a communication unit <NUM>, an output device <NUM>, and an input device <NUM>.

The storage unit <NUM> is configured by, for example, a combination of volatile memory and non-volatile memory. The storage unit <NUM> stores the software (computer program) representing an operation procedure to be conducted by the control device <NUM>.

The communication unit <NUM> has a function to enable communications with other communication devices (e.g., server <NUM>) via the information communication network <NUM>. The communication unit <NUM> includes, for example, a network interface card (NIC) compliant with the IEEE <NUM> series. The communication unit <NUM> also includes a communication protocol stack (e.g., Transmission Control Protocol (TCP) / Internet Protocol (IP) and User Datagram Protocol (UDP) / IP protocol stack). Additionally, the communication unit <NUM> may have a function to enable wireless communication. For example, the communication unit <NUM> may enable wireless communications based on a cellular transceiver communication standard such as Wideband Code Division Multiple Access (W-CDMA) / Long-Term Evolution (LTE). The communication unit <NUM> may also enable wireless communication based on a communication standard for a Wi-Fi® transceiver such as IEEE <NUM> a/b/g/n, or for a Bluetooth® transceiver.

The output device <NUM> is a device that sends (outputs) information in the mode where a human being can perceive with the sense of vision, hearing, smelling, skin (sense of touch, pain, or temperature), or a combination thereof. Specific examples of the output device <NUM> include a display device displaying images and a speaker outputting sounds. The client <NUM> includes a plurality of types of output devices <NUM>.

The input device <NUM> is a device that accepts information from the user. Specific examples of the input device <NUM> include an operation button, touch panel, mouse, keyboard, camera, and microphone. The client <NUM> includes a plurality of types of input devices <NUM>.

The control device <NUM> includes a processor such as a CPU, and can include various functions by reading and executing the software (computer program) from the storage unit <NUM>. For example, the control device <NUM> provides an environment (e.g., web browser) that allows use of an online service provided by the server <NUM>.

<FIG> is a flowchart illustrating example operations of the server <NUM>. The example operation described here is for the server <NUM> conducting the challenge-response test as the authentication process. The server <NUM> may conduct the challenge-response test at a time, for example, when the new online account is issued to the user or when the request for issuing the online account is received from the client <NUM>. In addition, the server <NUM> may conduct the challenge-response test at a time, when the registered user starts using the online service or when the request for accessing the online service is received from the client <NUM>. Thus, the server <NUM> can conduct the challenge-response test at any of a plurality of timings and the server <NUM> conducts the challenge-response test at an appropriate timing by taking into consideration the content and other factors of the service to be provided.

For example, the control device <NUM> in the server <NUM> creates challenge data for the user of being authenticated at a time when the challenge-response test is conducted (Step S101). The challenge data includes the plurality of challenges different from one another, and further includes program data for controlling the control device <NUM> in the client <NUM> such that these challenges are continuously outputted in sequence from the output device <NUM> in the client <NUM>.

The control device <NUM> (transmission unit <NUM>) in the server <NUM> transmits the generated challenge data to the client <NUM> through the communication unit <NUM> (Step S102).

Later, upon receipt of data that includes responses to the transmitted challenges (Step S103), the server <NUM> analyzes the received data to extract the information necessary for the authentication process. The operations in Step S102 and Step S103 may be performed in parallel in terms of time. For example, the server <NUM> may receive response data from the client <NUM> while transmitting the challenge data that includes a video stream or an audio stream to be played by streaming on the client <NUM>. Response data may also include the video stream or the audio steam.

Then, based on the extracted information, the control device <NUM> (the determination unit <NUM>) in the server <NUM> determines whether the response made by the user is correct (i.e., whether it is appropriate as the response to the challenge). In addition, the server <NUM> (the determination unit <NUM>) verifies the existence of the user by using time information regarding the challenge and the response. In this step, the response time or input duration, for example, is used as the time information.

The response time may be, for example, a time period from when the output device <NUM> outputs the challenge to when the input device <NUM> inputs the response in the client <NUM>. The response time can be obtained by calculating the difference between the starting time of outputting the challenge in the client <NUM> and the starting time of inputting its correct response in the client <NUM>. Alternatively, as the response time, a time period from transmission of the challenge by the transmission unit <NUM> in the server <NUM> to reception of its response by the server <NUM> may be used, since the time period is approximately proportional to the response time. In other words, the difference between the starting time of transmission of a challenge from the server <NUM> and the starting time of reception of its response by the server <NUM> may be used as the response time.

The input duration for the response refers to a time period when the user is inputting the response to the challenge. In other words, the challenge may be command information instructing the user to perform a specified action (e.g., change face direction, change facial expression, or give an utterance). In such cases, the response is performing the action by the user in accordance with the instruction given by the challenge, and the input duration is the time period (time) when the user is performing the action, i.e., giving the response. In the case where information instructing the user to perform an action is the challenge, a device like a camera or microphone for inputting an action, namely a response to the challenge, is activated in the client <NUM>.

The server <NUM> determines whether the response time or the input duration satisfies the predetermined condition for effectiveness and determines whether the time information is appropriate. The condition for effectiveness is a condition to expect that the response has been given by a human being.

Then, the server <NUM> determines whether the existence of the user can be verified based on the determination results as to whether the response is correct or wrong and whether the time information is appropriate (Step S104). If the received response is correct as the response to the challenge and the time information regarding the challenge and its response is appropriate, the control device <NUM> (the determination unit <NUM>) determines that the existence of the user is verified (Step S105).

On the other hand, if the received response is not correct as the response to the challenge or the time information regarding the response is not appropriate, the control device <NUM> (the determination unit <NUM>) determines that the existence of the user may not be verified (Step S106). In other words, the control device <NUM> (the determination unit <NUM>) determines that the user may not be a human being.

In the second example embodiment, the server <NUM> serving as the authentication device conducts the challenge-response test by asking the user to give the plurality of responses to the plurality of challenges that are continuously presented in sequence. Then, the server <NUM> verifies whether the user is a human being (i.e., existence of user) based on the time information regarding the response time, the input duration or the like for the user to give the responses. In other words, the server <NUM> verifies whether the user is a human being based on whether the response is inputted at the appropriate timing (time period).

The server <NUM> requests the user to give responses for the challenge-response test such that at least one of the plurality of responses includes the biometric information (e.g., a facial image, voice or the like). That is, the server <NUM> verifies the existence of the user based on whether the time information, such as the response time or the input duration, regarding the response that includes the biometric information (e.g., the facial image or voice) from the user, is appropriate. Accordingly, the server <NUM> of the second example embodiment can have an advantage that it is not necessarily need to use a complex challenge image that includes so much distortion or noise that human beings cannot easily recognize the image.

Furthermore, in the second example embodiment, at least one of the plurality of responses includes the biometric information (e.g., the facial image or voice). As the result, the server <NUM> can obtain the effect as described below. In addition to using the biometric information included in the response for verifying the existence of the user, the server <NUM> can also use the biometric information for verifying the identity (personal authentication) and the uniqueness of the user. As described above, in order to provide the safe and highly reliable online services, the CAPTCHA-based verification of the existence is not enough, it is preferable to conduct either one or both of the identity verification and the uniqueness verification in addition to the CAPTCHA. The identity verification (personal authentication) means verifying whether the user accessing the online service is the person who is permitted to use the online service. The uniqueness verification means verifying that the plurality of online accounts are not issued to a single person redundantly. In the second example embodiment, the response used for verifying the existence of the user includes the biometric information regarding the user, and thus the server <NUM> can use the biometric information for verifying the identity and the uniqueness of the user as well. In other words, the server <NUM> can use a single response made by the user for the plurality of authentication processes, and thereby allows for user authentication through a plurality of authentication processes while avoiding an increase in the burden imposed on the user for inputting responses. As a result, the server <NUM> can improve the safety and reliability of online services.

The following describes specific examples of processes related to authentication for the online service system according to the second example embodiment. <FIG> is a sequence diagram illustrating a flow of processes related to the authentication for the online service system. The process flow illustrated in <FIG> is related to the process of issuing the online account. In the middle of the process of issuing the online account, the authentication process according to the second example embodiment is performed.

For example, when the user instructs the client <NUM> to issue the account using the input device <NUM>, the client <NUM> transmits a request for issuing the account (online account) to the server <NUM> (Step S201). The request for issuing the online account is, in other words, an application for user registration needed for using the online service.

Upon receipt of the request for issuance, the server <NUM> performs verification of the existence (the challenge-response test) to verify whether the user operating the client <NUM> is a human being.

That is, the server <NUM> creates the challenge data and transmits the challenge data to the client <NUM> (Step S202). Upon receipt of the challenge data, based on the challenge data, the client <NUM> continuously presents the plurality of challenges in sequence to the user using the output device <NUM> (Step S203). When the user inputs the responses to the challenges into the client <NUM> using the input device <NUM>, the client <NUM> accepts the responses (Step S204). Then, the client <NUM> generates the response data that includes responses to the individual challenges and transmits the response data to the server <NUM> (Step S205).

Upon receipt of the response data, the server <NUM> verifies the existence using the received responses (Step S206). That is, the server <NUM> verifies the existence of the user by using the determination result as to whether the responses to the challenges are correct or wrong and the time information regarding the responses.

In addition, the server <NUM> checks the biometric information included in the response against the biometric information registered in the storage device <NUM>. For example, the server <NUM> calculates a similarity (matching probability) between the biometric information included in the response and the registered biometric information to determine whether the similarity is equal to or greater than a threshold. When the server <NUM> determines that the storage device <NUM> does not register the biometric information which matches with the biometric information included in the response (i.e., biometric information whose similarity is equal to or greater than the threshold), the server <NUM> determines that the user requesting for the account is not registered. The server <NUM> can verify the uniqueness of the user, and thus issues the account to the user.

On the other hand, if the biometric information included in the response matches with the registered biometric information (i.e., if the biometric information whose similarity is equal to or greater than the threshold is registered in the storage device <NUM>), the server <NUM> refuses to issue the account. That is, the server <NUM> determines that it is highly probable that the user requesting for issuing the account is the same person as the registered users, and refuses to issue the account in order to prevent issuing the plurality of accounts to the same user.

Then, the server <NUM> transmits to the client <NUM> the determination result as to whether an account can be issued based on the result of the authentication process (Step S207). Upon receipt of the determination result, the client <NUM> presents the determination result to the user using the output device <NUM> (Step S208).

If the existence of the user is not verified as the result of the authentication process, the server <NUM> does not need to perform the process of verifying the uniqueness of the user. Alternatively, the server <NUM> may perform the process of verifying the existence of the user and the process of verifying the uniqueness of the user in parallel in terms of time.

The following describes another process flow in the online service system. The following description about the process flow in the online service system assumes that the authentication process of the second example embodiment is performed when the user starts using the online service. <FIG> is a sequence diagram illustrating the process flow.

For example, when the user requests the client <NUM> by using the input device <NUM> to access the server <NUM> that provides the online service, the client <NUM> transmits an access request to the server <NUM> (Step S301). In this step, the client <NUM> transmits, as the access request, the user identification (ID) (account ID) assigned to the user.

Upon receipt of the access request, the server <NUM> conducts the challenge-response test, which serves as the process of verifying the identity to determine whether the user operating the client <NUM> is permitted to provide the service.

That is, the server <NUM> creates the challenge data and transmits the challenge data to the client <NUM> (Step S302). Upon receipt of the challenge data, the client <NUM> continuously presents the plurality of challenges in sequence to the user based on the challenge data by using the output device <NUM> (Step S303). When the user inputs responses to the challenges into the client <NUM> using the input device <NUM>, the client <NUM> accepts the responses (Step S304). Then, the client <NUM> generates response data that includes responses to the individual challenges and transmits the response data to the server <NUM> (Step S305).

Upon receipt of the response data, the server <NUM> verifies the existence of the user using the received responses as described above. In addition, the server <NUM> performs verification of the identity of the user (the personal authentication) using the user's biometric information included in a response (Step S306). That is, the server <NUM> reads from the storage device <NUM> the biometric information associated with a user ID identical to the user ID that has been received in the form of the access request. Then, the server <NUM> checks the biometric information included in the response received from the client <NUM> against the biometric information that has been read. Through the checking, the server <NUM> calculates, for example, the similarity (matching probability) between the biometric information included in the response and the registered biometric information.

If the biometric information included in the response matches with the registered biometric information at a high probability (i.e., if the similarity (matching probability) is equal to or greater than the threshold), the server <NUM> determines that it is highly probable that the user sending a request for access is an authorized user. The server <NUM> then permits an access with the client <NUM> operated by the user.

On the other hand, if the biometric information included in the response matches with the registered biometric information at a low probability (i.e., if the similarity (matching probability) is less than the threshold), the server <NUM> determines that the user sending a request for access may not be an authorized user. The server <NUM> then refuses the access with the client <NUM> operated by the user.

Next, the server <NUM> transmits to the client <NUM> the determination result as to whether the access based on the result of verification of the identity is allowable (in other words, provision of service) (Step S307). Upon receipt of the determination result, the client <NUM> presents the determination result to the user using the output device <NUM> (Step S308).

If the existence of the user is not verified, the server <NUM> does not need to perform the process of verifying the identity of the user. Alternatively, the server <NUM> may perform the process of verifying the existence of the user and the process of verifying the identity of the user in parallel in terms of time.

In each process flows for the online system described with reference to <FIG> and <FIG>, the challenge-response test conducted to verify the existence of the user provides biometric information, which is used for verifying not only the existence but also the identity or the uniqueness. This allows the server (authentication device) <NUM> to perform the plurality of processes for authentication while avoiding an increase in the burden imposed on the user, thereby enhancing reliability of authentication.

The above has described processes in a system including the authentication process of the second example embodiment, with the example processes of issuing a new online account and starting to use the online service. However, the authentication process of the second example embodiment may be applied to processes other than the ones described above.

The following describes specific examples of challenges used for the challenge-response test, which constitutes the authentication process performed by the server <NUM> according to the second example embodiment.

For example, the server <NUM> may provide the client <NUM> with the plurality of challenges in the mode of the video stream or the audio stream to be played by streaming on the client <NUM>. The video stream or the audio stream continuously presents the plurality of challenges in sequence. The term "streaming" or "played by streaming" as used herein means the technology for playing back a data file while downloading the data file. That is, the term "streaming" or "played by streaming" as used in the present specification includes not only pure streaming where the video stream or the audio stream is not cached but also progressive download where the streams are cached. Progressive download may also be called progressive streaming or on-demand streaming.

The number of challenges included in a single video stream or a single audio stream and the length of time for playing each challenge are appropriately set by taking into consideration factors such as accuracy of authentication, a standard response time taken by users, and burdens imposed on users. For example, the number of challenges may be about <NUM>, and the length of time for playing the whole video stream or audio stream may be about <NUM> to <NUM> seconds.

The server <NUM> creates the single video stream or the single audio stream by randomly selecting some challenges from the plurality of challenges prepared in advance (e.g., images, voices or the like) and linking the selected challenges.

A computer may not easily interpret each of the plurality of challenges that are continuously provided in sequence in the mode of the video stream or the audio stream. Thus, by using the plurality of challenges in the mode of the video stream or the audio stream, the server <NUM> can improve the accuracy of determination (verification) as to the existence of the user. Specifically, the plurality of challenges are provided in the mode of the video stream or the audio stream, and are played in series immediately after the challenges are received by the client <NUM>. The user is prompted to make instantaneous (real-time) responses to these challenges. On the other hand, a computer has difficulty in instantaneously interpreting the challenges provided in sequence, and thus fails to give (return) correct responses to the server <NUM>. As a result, even when a computer tries to impersonate a human being, the server <NUM> can deny the existence of the user by performing the process of verifying the existence that involves the plurality of challenges in the mode of the video stream or the audio stream.

Optionally, the server <NUM> may create the challenge data which includes data for controlling the output device <NUM> in the client <NUM> so as to present the individual challenges to the user for periods of time (hereinafter also referred to as output durations) different from one another. In addition, the server <NUM> may randomly determine output durations of the individual challenges. For example, the server <NUM> differentiates, for each challenge, periods of time for displaying or periods of time for outputting of each challenges (images or voices) included in the video stream or the audio stream. This makes it difficult for a computer to predict timing when the challenge is switched to another challenge. Thus, interpretation of challenges becomes more difficult. As a result, the server <NUM> can further improve the accuracy of determination (verification) of the existence of the user.

Although presenting the plurality of challenges in the mode of the video stream or the audio stream to the user can improve the accuracy of determination as to the existence of the user, the plurality of challenges do not need to be presented in the mode of the video stream or the audio stream.

For example, the server <NUM> may create individual challenges in the form of independent data files (e.g., still image files or sound files). In this case, the server <NUM> creates the challenge data which includes control data for controlling the output device <NUM> in the client <NUM> such that display or output of still images or sounds representing challenges is updated at a predetermined timing. Additionally, the server <NUM> may adjust the output durations for the individual challenges such that the display or the output of still images or sounds representing the challenges is updated at a non-periodical timing. Furthermore, the server <NUM> may adjust the output durations for the individual challenges such that the output durations of displaying or outputting of still images or sounds representing the challenges are different from one another.

<FIG> illustrate specific examples of challenges. Any challenges illustrated in <FIG> prompts a user to input a response which includes the biometric information regarding the user. For example, the server <NUM> randomly selects from these challenges the plurality of challenges to be presented to the user. The server <NUM> may create the video stream or the audio stream by linking together the plurality of challenges which have been randomly selected.

<FIG> illustrates specific examples of challenges in the case where a direction of face is used for the user authentication. In the examples in <FIG>, four different ways of challenges (image A, image B, image C, and voice) are classified for each type and the same type of challenges are associated with one another. Each of the types is given a "code" serving as an identifier and a "type" serving as a name. For example, among the four challenges of a type in which the code is "FD02" and the type is "Leftward", the image A is an icon image representing a flipped mirror image of the face oriented to the left. The image B is an image showing a character string: "Face to the left". The image C is an arrow icon image instructing the user to face the left. The voice is voice data instructing the user to face the left.

<FIG> illustrates specific examples of challenges in the case where facial expressions are used for the user authentication. As with <FIG>, <FIG> illustrates that four different ways of challenges (image A, image B, image C, and voice) are classified for each type and the same type of challenges are associated. Each of the types is given a "code" serving as an identifier and a "type" serving as a name. For example, among the four challenges of a type in which the code is "FE02" and the type is "Happy", the image A is an icon image representing a happy face. The image B is an image showing a character string: "Give a happy face". The image C is an icon image showing a kanji character representing happiness. The voice is voice data instructing the user to give a happy face.

<FIG> illustrates specific examples of challenges in the case where pronunciation of numbers is used for the user authentication. As with <FIG> and <FIG>, <FIG> illustrates that four different ways of challenges (image A, image B, image C, and image D) are classified for each type and the same type of challenges are associated. Each of the types is given a "code" serving as an identifier and a "type" serving as a name. For example, among the four challenges of a type in which the code is "VN02" and the type is "<NUM> pronunciations", the image A is an image showing an Arabic number "<NUM>" with a character string: "Pronounce this number". The image B is an image showing two dots with a character string: "Pronounce the number of dots". The image C is an image showing two lines with a character string: "Pronounce the number of lines". The image D is an image showing a mathematical expression whose answer is <NUM> with a character string: "Pronounce the answer".

<FIG> illustrates specific examples of challenges in the case where pronunciation of vowels is used for the user authentication. As with <FIG>, <FIG> illustrates that four different ways of challenges (image A, image B, image C, and image D) are classified for each type, and the same type of challenges are associated. Each of the types is given a "code" serving as an identifier and a "type" serving as a name. For example, among the four challenges of a type in which the code is "VV_A" and the type is "Pronunciation of a", the image A is an image showing a lower-case alphabetical character "a" with a character string: "Pronounce". The image B is an image showing an upper-case alphabetic character "A" with a character string: "Pronounce". The image C is an image showing a Katakana character "<IMG>" with a character string: "Pronounce". The image D is an image showing a Hiragana character "<IMG>" with a character string: "Pronounce".

For example, when the challenge related to the direction of face as illustrated in <FIG> is used, the server <NUM> determines whether the direction of face extracted from, for example, an image data that is included in the response to the challenge is in accordance with the instruction given by the challenge. If the challenge additionally includes an instruction about a period of time (input duration) when the user is following the instruction to change the direction of face, the server <NUM> determines whether the input duration detected from the response is consistent with a period of time compliant with the instruction (e.g., instruction about output duration) given by the challenge.

Further, for example, when a sound as illustrated in <FIG> or <FIG> is used for the user authentication, the server <NUM> determines whether the sound detected from the response is in accordance with the instruction given by the challenge. In addition, the server <NUM> determines whether the response time or a sound input duration detected from the response to the challenge is consistent with the period of time in accordance with the instruction (e.g., instruction about output duration) given by the challenge.

<FIG> illustrates a specific example of the plurality of challenges and the plurality of responses according to the challenges. In the specific example, the challenges are in the mode of the video stream played by streaming. The video stream composed of challenges includes a period <NUM> when the facial icon image representing a request for the action of facing upward is displayed on the output device <NUM> (display) in the client <NUM>. Further, the video stream includes a period <NUM> when the image of characters representing a request for pronouncing a number is displayed, and at the same time, a sound of, for example, reading the displayed characters is produced, which is further followed by a period <NUM> when the facial icon image representing a request for the action of facing the left is displayed. That is, the video stream displays three challenges during the periods <NUM>, <NUM>, and <NUM>. Individual lengths of the periods <NUM>, <NUM>, and <NUM> (i.e., output durations (periods when challenges are played)) are different from one another. Specifically, the length of the period <NUM> (output duration) is <NUM> seconds, the length of the period <NUM> (output duration) is <NUM> seconds, and the length of the period <NUM> (output duration) is <NUM> seconds.

The specific example in <FIG> shows that responses to the challenges include the action of facing upward, the action of pronouncing "<NUM>", and the action of facing the left, which are performed by the user. These responses are taken by, for example, a camera serving as the input device <NUM> and transmitted from the client <NUM> to the server <NUM> in the mode of the video stream serving as the response data.

The server <NUM> analyzes the received response data (e.g., the video stream) to identify responses. Then, the server <NUM> performs the authentication process using the responses.

Claim 1:
An authentication device comprising:
transmission means for transmitting a challenge to a terminal device on which the challenge is presented to a user to be authenticated, the challenge being information serving as a basis on which the user inputs information to be used in an authentication process; and
determination means for performing the authentication process to determine whether a response is correct or wrong, the response being information which is inputted by the user to the terminal device based on the challenge,
wherein the transmission means includes a function to transmit, to the terminal device, a plurality of challenges to the user to be authenticated, the challenges being different from one another, and at least one of the challenges is information requesting the user to make the response that includes biometric information on the user; and
wherein the determination means further includes a function to determine whether time information regarding the challenge and the response to the challenge satisfies a condition regarding the response, the determination means performs identity verification using the biometric information on the user included in the response to the challenge, the identity verification is a processing that verifies whether the user to be authenticated is a preregistered user, and the determination means verifies existence of the user based on the determination result whether the response is correct or wrong and whether the time information related to the challenge satisfies the condition regarding the response, and the user is authenticated when the user is a preregistered user and existence of the user is verified,
characterised in that the time information includes an input duration for the response which defines a time period when the user is inputting the response to the challenge.