1. Field
The disclosure relates generally to user authentication and more specifically to authenticating a user of a client device to access a secure resource using video authentication data corresponding to the user that is viewed by a set of one or more designated users, which already have been authenticated to access the secure resource.
2. Description of the Related Art
User authentication is a critical component in the security of any data processing system. Authenticating a user's identity is a first step in providing access control to secure resources associated with a data processing system. Typically, authentication processes rely on username and password combinations to authenticate a user. While this username/password authentication technology is not foolproof, it has been serviceable as an authentication method for decades.
According to one illustrative embodiment, a computer system for user authentication is provided. A social network associated with a user of a client device is monitored to determine whether a set of designated users are currently logged in and authenticated to access a secure resource. A video connection is established between the user of the client device and the set of designated users that are currently logged in and authenticated to access the secure resource. In addition, an authentication request screen is sent showing captured video authentication data corresponding to the user of the client device to the set of designated users that are currently logged in and authenticated to access the secure resource. According to another illustrative embodiment, a computer program product for user authentication is provided.
As will be appreciated by one skilled in the art, aspects of the illustrative embodiments may be embodied as a computer system or computer program product. Accordingly, aspects of the illustrative embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Furthermore, aspects of the illustrative embodiments may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the illustrative embodiments may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the illustrative embodiments are described below with reference to flowchart illustrations and/or block diagrams of computer systems and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
With reference now to the figures, and in particular, with reference to
In the depicted example, server 104 and server 106 connect to network 102, along with storage unit 108. Server 104 and server 106 may be, for example, server computers with high speed connections to network 102. In addition, server 104 and/or server 106 may provide services for authenticating users of client devices connected to network 102 by showing video authentication data of unauthenticated users to designated users, which already have been authenticated to access secure resources, prior to the unauthenticated users accessing the secure resources in network data processing system 100. A secure resource may be, for example, a network, a document, a software application, a video conferencing system, or a hardware component in network data processing system 100 that has restricted access by only authenticated users.
Clients 110, 112, 114, and 116 also connect to network 102. Clients 110, 112, 114, and 116 are clients to server 104 and/or server 106. In the depicted example, server 104 and/or server 106 may provide information, such as boot files, operating system images, and applications to clients 110, 112, 114, and 116.
Clients 110 and 112 may be, for example, client computers, such as personal computers, network computers, or portable computers, such as laptop computers, with wire communication links to network 102. Clients 114 and 116 may be, for example, mobile data processing systems, such as cellular telephones, smart phones, personal digital assistants, gaming devices, or handheld computers, with wireless communication links to network 102. However, it should be noted that clients 110, 112, 114, and 116 may represent any combination of computers and mobile data processing systems connected to network 102.
Storage unit 108 is a network storage device capable of storing data in a structured or unstructured format. Storage unit 108 may provide, for example, storage of: names and identification numbers of a plurality of users; user profiles corresponding to the plurality of users that may include contact information for the plurality of users, such as telephone numbers, internet protocol addresses, media access control addresses, and the like; user history data for each of the users in the plurality of users that may include listings of previously accessed secure resources and recordings of video authentication data corresponding to each of the users when the users previously accessed the secure resources; lists of designated users for each user in the plurality of users that are designated to authenticate the users to access secure resources; and network addresses, such as uniform resource locators (URLs), of social media web sites and business networks associated with each user in the plurality of users. The contacts within the social media web sites and business networks associated with each user may comprise at least a portion of a user's social network. Furthermore, storage unit 108 may store other data, such as authentication data that may include user names, passwords, and/or biometric data associated with the plurality of users of the social authentication service.
Moreover, it should be noted that network data processing system 100 may include any number of additional server devices, client devices, and other devices not shown. Program code located in network data processing system 100 may be stored on a computer recordable storage medium and downloaded to a computer or other device for use. For example, program code may be stored on a computer recordable storage medium on server 106 and downloaded to client 114 over network 102 for use on client 114.
In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, governmental, educational, and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
With reference now to
Processor unit 204 serves to execute instructions for software applications or programs that may be loaded into memory 206. Processor unit 204 may be a set of one or more processors or may be a multi-processor core, depending on the particular implementation. Further, processor unit 204 may be implemented using one or more heterogeneous processor systems, in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit 204 may be a symmetric multi-processor system containing multiple processors of the same type.
Memory 206 and persistent storage 208 are examples of storage devices 216. A computer readable storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, data, computer readable program code in functional form, and/or other suitable information either on a transient basis and/or a persistent basis. Further, a computer readable storage device does not include a non-statutory propagation medium. Memory 206, in these examples, may be, for example, a random access memory, or any other suitable volatile or non-volatile storage device. Persistent storage 208 may take various forms, depending on the particular implementation. For example, persistent storage 208 may contain one or more devices. For example, persistent storage 208 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage 208 may be removable. For example, a removable hard drive may be used for persistent storage 208.
Communications unit 210, in this example, provides for communication with other data processing systems or devices. Communications unit 210 may provide communications through the use of either or both physical and wireless communications links. The physical communications link may utilize, for example, a wire, cable, universal serial bus, or any other physical technology to establish a physical communications link for data processing system 200. The wireless communications link may utilize, for example, shortwave, high frequency, ultra high frequency, microwave, wireless fidelity (Wi-Fi), bluetooth technology, global system for mobile communications (GSM), code division multiple access (CDMA), second-generation (2G), third-generation (3G), fourth-generation (4G), or any other wireless communication technology or standard to establish a wireless communications link for data processing system 200. In addition, communications unit 210 is capable of establishing and maintaining video conferencing connections with other data processing systems or devices.
Input/output unit 212 allows for the input and output of data with other devices that may be connected to data processing system 200. For example, input/output unit 212 may provide a connection for user input through a keypad, a keyboard, a mouse, and/or some other suitable input device. Display 214 provides a mechanism to display information to a user. In addition, display 214 may provide touch screen capabilities.
Camera 216 is an example of an imaging device that is capable of taking still photographs and/or video clips. The video clips may include image data and audio data. The audio data may be obtained by a microphone of data processing system 200, which may be a part of input/output unit 212. Data processing system 200 may utilize camera 216 to capture video authentication data of a user of data processing system 200 when establishing and maintaining video conferencing connections with the other data processing systems. Users of the other data processing systems may use the captured video authentication data of the user of data processing system 200 to verify and authenticate that the user of data processing system 200 actually is the person they know the user of data processing system 200 to be.
Instructions for the operating system, applications, and/or programs may be located in storage devices 216, which are in communication with processor unit 204 through communications fabric 202. In this illustrative example, the instructions are in a functional form on persistent storage 208. These instructions may be loaded into memory 206 for running by processor unit 204. The processes of the different embodiments may be performed by processor unit 204 using computer implemented instructions, which may be located in a memory, such as memory 206. These instructions are referred to as program code, computer usable program code, or computer readable program code that may be read and run by a processor in processor unit 204. The program code, in the different embodiments, may be embodied on different physical computer readable storage devices, such as memory 206 or persistent storage 208.
Program code 220 is located in a functional form on computer readable media 222 that is selectively removable and may be loaded onto or transferred to data processing system 200 for running by processor unit 204. Program code 220 and computer readable media 222 form computer program product 224. In one example, computer readable media 222 may be computer readable storage media 226 or computer readable signal media 228. Computer readable storage media 226 may include, for example, an optical or magnetic disc that is inserted or placed into a drive or other device that is part of persistent storage 208 for transfer onto a storage device, such as a hard drive, that is part of persistent storage 208. Computer readable storage media 226 also may take the form of a persistent storage, such as a hard drive, a thumb drive, or a flash memory that is connected to data processing system 200. In some instances, computer readable storage media 226 may not be removable from data processing system 200.
Alternatively, program code 220 may be transferred to data processing system 200 using computer readable signal media 228. Computer readable signal media 228 may be, for example, a propagated data signal containing program code 220. For example, computer readable signal media 228 may be an electro-magnetic signal, an optical signal, and/or any other suitable type of signal. These signals may be transmitted over communication links, such as wireless communication links, an optical fiber cable, a coaxial cable, a wire, and/or any other suitable type of communications link. In other words, the communications link and/or the connection may be physical or wireless in the illustrative examples. The computer readable media also may take the form of non-tangible media, such as communication links or wireless transmissions containing the program code.
In some illustrative embodiments, program code 220 may be downloaded over a network to persistent storage 208 from another device or data processing system through computer readable signal media 228 for use within data processing system 200. For instance, program code stored in a computer readable storage media in a server data processing system may be downloaded over a network from the server to data processing system 200. The data processing system providing program code 220 may be a server computer, a client computer, or some other device capable of storing and transmitting program code 220.
The different components illustrated for data processing system 200 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to, or in place of, those illustrated for data processing system 200. Other components shown in
As another example, a computer readable storage device in data processing system 200 is any hardware apparatus that may store data. Memory 206, persistent storage 208, and computer readable storage media 226 are examples of physical storage devices in a tangible form.
In another example, a bus system may be used to implement communications fabric 202 and may be comprised of one or more buses, such as a system bus or an input/output bus. Of course, the bus system may be implemented using any suitable type of architecture that provides for a transfer of data between different components or devices attached to the bus system. Additionally, a communications unit may include one or more devices used to transmit and receive data, such as a modem or a network adapter. Further, a memory may be, for example, memory 206 or a cache such as found in an interface and memory controller hub that may be present in communications fabric 202.
In the course of developing illustrative embodiments, it was discovered that authentication is a weak spot in the usability of data processing systems and is viewed as a burden by many users. Problems in authentication tend to translate into security problems according to research literature, and especially password authentication has been shown to be a source of many security vulnerabilities. Despite the evidence showing the shortcomings of password authentication, data processing system users are still forced to enter text passwords into their data processing systems to unlock secure resources.
Authentication in real life usually is accomplished through human interaction. This real life authentication may include social gestures, such as a greeting, a handshake, or a nod, and involves facial recognition and/or voice recognition. Illustrative embodiments perform social authentication of a user, not only by using social network information associated with the user, but also by using a social human-to-human interaction. Illustrative embodiments allow users to authenticate other users through video conferencing connections or telephone connections, when it is less convenient to authenticate by other authentication means or when resource access control policies require authentication to be provided by other users. In addition, illustrative embodiments also support continuous authentication of a user by keeping the video conferencing connection open until the user locks the accessed resource or logs out.
Illustrative embodiments may store a list or graph of mutual acquaintance pairs associated with the users. For example, if a mutual acquaintance table entry (x,y) exists for users x and y, then illustrative embodiments are able to determine that users x and y know each other and that users x and y are able to verify and authenticate the identity of each other. Given a network of data processing systems with an authentication mechanism and a set of users, then at any given time a subset of the set of users may be currently authenticated to access and use a set of one or more secure resources.
As an example, user X may request access to a secure resource. As a result, illustrative embodiments determine a set of one or more mutual acquaintances of user X using a mutual acquaintance table or graph. Subsequent to determining the set of mutual acquaintances of user X, illustrative embodiments may request that the set of mutual acquaintances of user X authenticate the identity of user X. User Y, for example, of the set of mutual acquaintances of user X may respond to the request for authentication. Illustrative embodiments may then establish a video conference connection between user X and user Y. After illustrative embodiments establish the video conference connection between user X and user Y, user Y after seeing and communicating with user X may provide, for example, an input to illustrative embodiments indicating that user X actually is user X. Consequently, illustrative embodiments will grant user X, now socially authenticated by user Y, access to the requested secure resource. If, however, user Y indicates that user X is not the person user Y knows user X to be, illustrative embodiments will deny user X access to the requested secure resource.
Furthermore, after user Y socially authenticates user X, illustrative embodiments may broadcast a continuous video authentication data feed to all acquaintances in the set of mutual acquaintances of user X. In addition, illustrative embodiments may provide all the acquaintances with an interface to view continuous video authentication data feeds of other acquaintances. Thus, each user may monitor continuous video authentication data feeds of other users.
If, for example, user X is not visible in user X's continuous video authentication data feed after initial authentication by user Y, then an observant acquaintance may indicate to illustrative embodiments that user X is not present in the feed. Consequently, illustrative embodiments may temporarily lock the secure resource until user X reappears in the continuous video authentication data feed. Alternatively, illustrative embodiments may utilize facial recognition technology to determine whether user X's face is detected in user X's continuous video authentication data feed. After determining that user X's face is not detected in user X's continuous video authentication data feed, illustrative embodiments may send a verification request to the set of acquaintances of user X requesting verification of user X's presence in the continuous authentication data feed.
If, for example, someone other than user X is present in user X's continuous video authentication data feed, then an observant acquaintance may indicate to illustrative embodiments that user X is not present in the feed. As a result, illustrative embodiments may close access to the secure resource and log off user X's account in order to protect illustrative embodiments from a possible security breach. Illustrative embodiments do not simply allow for the replacement of password authentication, but also allow for the ad-hoc creation of group-accessed resources for which a subset of all the users are allowed to perform certain actions, such as read or write.
Further, illustrative embodiments may determine an acquaintance or social network of user X by searching, for example, a set of one or more social media web sites and/or a set of one or more business networks associated with user X. The social media web sites may contain, for example, lists of friends and family of user X. The business networks may contain, for example, organizational charts or directories listing co-workers of user X and the relationship of those co-workers to user X. Then, illustrative embodiments may generate a graph of the social network of user X such that each person is a node in the graph and a link exists between two nodes if the two people associated with those nodes know each other personally.
If, for example, no people in user X's social network are currently authenticated to access the secure resource that user X is requesting access to, then illustrative embodiments may prompt user X to input authentication data, such as, for example, a username/pas sword combination and/or biometric data, associated with user X. However, if one or more people in user X's social network are currently authenticated to access the secure resource that user X is requesting access to, then illustrative embodiments may provide user X with an option to be authenticated by one or more of the people in user X's social network that are currently authenticated to access the secure resource via a video connection.
Furthermore, illustrative embodiments may take into account the role of each person included in user X's social network graph in the authentication process. For example, illustrative embodiments may utilize defined policies that only permit certain people to authenticate user X to access the secure resource. Also, the policies may define a set of one or more actions that user X may take while accessing the secure resource based on the role of the person that authenticated user X. Moreover, illustrative embodiments may record the video authentication process for security auditing purposes.
Thus, illustrative embodiments provide a computer system and computer program product for user authentication. The computer system monitors a social network associated with a user of a client device to determine whether a set of designated users are currently logged in and authenticated to access a secure resource. The computer system establishes a video connection between the user of the client device and the set of designated users that are currently logged in and authenticated to access the secure resource. In addition, the computer system sends an authentication request screen showing captured video authentication data corresponding to the user of the client device to the set of designated users that are currently logged in and authenticated to access the secure resource.
With reference now to
Social authentication system 300 includes social authentication system server 302, client device 304, client device 306, and secure resource 308. However, it should be noted that social authentication system 300 is intended as an example and not intended as a limitation on illustrative embodiments. In other words, social authentication system 300 may include any number of servers, clients, and secure resources.
Social authentication system server 302 may be, for example, server 104 in
In this example, unauthorized user 318 of client device 304 requests access to secure resource 308. As a result, social authentication system server 302 determines a set of users in unauthenticated user 318's social network that are currently authenticated to access secure resource 308. Also in this example, social authentication system server 302 determines that already authenticated user 320 of client device 306 is in unauthenticated user 318's social network and is currently authenticated to access secure resource 308. Consequently, social authentication system server 302 establishes video connection 322 between client device 304 and client device 306. Already authenticated user 320 may have been previously authenticated to access secure resource 308 by submitting a valid username/password combination to social authentication system server 302. Alternatively, already authenticated user 320 may have been previously authenticated to access secure resource 308 socially by another already authenticated user.
Video connection 322 includes video feed 324 and audio feed 326. Video feed 324 includes images of unauthenticated user 318 of client device 304. Audio feed 326 includes the voice of unauthenticated user 318. Thus, already authenticated user 320, by viewing images of unauthenticated user 318 in video feed 324 and listening to the voice of unauthenticated user 318 in audio feed 326, now has the ability to socially authenticate unauthenticated user 318.
Already authenticated user 320 may socially authenticate unauthenticated user 318 by sending an indication to social authentication system server 302 that unauthenticated user 318 is who unauthenticated user 318 claims to be. After receiving authentication of unauthenticated user 318 by already authenticated user 320, social authentication system server 302 grants the requested access to secure resource 308. If, however, already authenticated user 320 sends an indication to social authentication system server 302 that unauthenticated user 318 is not who unauthenticated user 318 claims to be, then social authentication system server 302 denies the requested access to secure resource 308.
With reference now to
Initial phase 402 is an authentication phase that occurs initially when no other users of the social authentication system are currently authenticated to access a secure resource, such as secure resource 412. Secure resource 412 may be, for example, secure resource 308 in
Steady state phase 404 is an authentication phase that occurs when one or more users of the social authentication system are currently authenticated to access secure resource 412, such as authenticated users 422. Authenticated users 422 may be, for example, already authenticated user 320 in
In this example, user 424 in unauthenticated users 414 requests access to secure resource 412. Consequently, the social authentication system establishes video connection 426, such as video connection 322 in
With reference now to
A social authentication system, such as social authentication system 300 in
In this example, user X 506 and user Y 508 of authenticated users 502 are mutual acquaintances of and personally know user Z 510 of unauthenticated users 504. Using social authentication graph 500, the social authentication system is able to determine that user X 506 and user Y 508 personally know user Z 510 and, therefore, user X 506 and user Y 508 would be able to socially authenticate user Z510 via a video connection. As a result, when user Z 510 requests to access a secure resource, such as secure resource 412 in
With reference now to
In this example, social authentication screen 600 includes six different video authentication data feeds 602-612. However, it should be noted that illustrative embodiments may include more or fewer video authentication data feeds in social authentication screen 600. Also in this example, video authentication data feeds 602, 610, and 612 show video authentication data corresponding to three different users of a social authentication system, such as social authentication system 300 in
Video authentication data 604 shows an empty chair with an encircled exclamation mark. Video authentication data 604 represents a user that has moved away from an image capturing area associated with a camera of a data processing system, such as camera 316 of client device 306 in
Video authentication data 606 shows a side view of a user with an encircled exclamation mark. Because a facial image is not present within video authentication data 606, the social authentication system alerts the other users to verify the identity of the user corresponding to video authentication data 606. Video authentication data 608 shows a facial image of a user with an encircled question mark. Even though a facial image is present within video authentication data 608, the social authentication system is requesting that the other users verify the identity of the user corresponding to video authentication data 608. For example, the social authentication system using facial recognition technology may have determined that the facial image now appearing within video authentication data 608 is not the same facial image that was present upon initial authentication of the user (i.e., a different person is now appearing within video authentication data 608). Consequently, the social authentication system prompts the other users to verify the identity of the user corresponding to video authentication data 608 by displaying the encircled question mark.
With reference now to
In this example, display 702 displays application 706, which is a calendar application. However, it should be noted that application 706 may be any application that a user of mobile client device 700 is currently using. When a user of a social authentication system, such as social authentication system 300 in
Initial authentication request screen 708 asks the user of mobile client device 700 “Is this Adam?”, for example. Video authentication data 710 corresponds to a facial image of the user requesting access to the secure resource. After viewing video authentication data 710, the user of mobile client device 700 may either enter input 712 “No, not Adam” or input 714 “Yes, Adam”. Based on which input the user of mobile client device enters, the social authentication system will either grant or deny access to the requested secure resource.
With reference now to
In this example, display 802 displays web site 804, which is an online user's workspace. However, it should be noted that web site 804 may represent any web site or application that a user of client device 800 is currently working in. Also in this example, display 802 includes continuous video authentication data feeds 806. Continuous video authentication data feeds 806 may include a plurality of video authentication data feeds, such as, for example, video authentication data feeds 602-612 in
In this example, the social authentication system does not detect a facial image of a user within continuous video authentication data feed 808. As a result, the social authentication system prompts the user of client device 800 to verify whether the user corresponding to continuous video authentication data feed 808 is present using verification request popup 810. In verification request popup 810, the user of client device 800 may either select “Not Paul”, “Still Paul”, or “Paul Stepped Out”. In this example, the user of client device 800 selects “Paul Stepped Out”. Consequently, the social authentication system may temporarily lock the secure resource that the user “Paul” was accessing.
With reference now to
The user of mobile phone 900 selects authentication via social authentication process 904. Social authentication process 904 may be implemented in a social authentication system, such as social authentication system 300 in
With reference now to
The process begins when the server device receives a request from a user of a client device to access a secure resource (step 1002). The user of the client device may be, for example, unauthenticated user 318 of client device 304 in
After receiving the request to access the secure resource from the user of the client device in step 1002, the server device retrieves a list of designated users that are designated to authenticate the user of the client device to access the secure resource (step 1004). In addition, the server device monitors a social network associated with the user of the client device to determine whether any of the designated users in the list of designated users are currently logged in (step 1006). Further, the server device makes a determination as to whether any of the designated users in the list of designated users are currently logged in (step 1008).
If the server device determines that one or more of the designated users in the list of designated users are currently logged in, yes output of step 1008, then the server device makes a determination as to whether any of the currently logged in designated users have been authenticated to access the secure resource (step 1010). If the server device determines that none of the currently logged in designated users have been authenticated to access the secure resource, no output of step 1010, then the process proceeds to step 1042. If the server device determines that one or more of the currently logged in designated users have been authenticated to access the secure resource, yes output of step 1010, then the server device determines a status of each of the currently logged in designated users that have been authenticated to access the secure resource (step 1012).
Subsequently, the server device makes a determination as to whether a set of the currently logged in designated users that have been authenticated to access the secure resource is available to authenticate the user of the client device based on their status (step 1014). If the server device determines that a set of the currently logged in designated users that have been authenticated to access the secure resource is not available to authenticate the user of the client device based on their status, no output of step 1014, then the process proceeds to step 1042. If the server device determines that a set of the currently logged in designated users that have been authenticated to access the secure resource is available to authenticate the user of the client device based on their status, yes output of step 1014, then the server device establishes a video connection between the user of the client device and the set of currently logged in designated users that have been authenticated to access the secure resource (step 1016). The video connection may be, for example, video connection 322 in
In addition, the server device sends an authentication request screen showing captured video authentication data corresponding to the user of the client device to the set of currently logged in designated users that have been authenticated to access the secure resource (step 1018). The authentication request screen may be, for example, initial authentication request screen 708 in
Further, the server device sends a continuous video authentication data feed showing currently captured video authentication data corresponding to the user of the client device to each designated user in the set of currently logged in designated users that have been authenticated to access the secure resource (step 1024). The continuous video authentication data feed may be, for example, continuous video authentication feed 808 in
If the server device determines that the server device is still receiving the currently captured video authentication data corresponding to the user of the client device, yes output of step 1028, then the process returns to step 1026 where the server device determines whether the user is still accessing the secure resource. If the server device determines that the server device is not receiving the currently captured video authentication data corresponding to the user of the client device, no output of step 1028, then the server device prompts each designated user in the set of currently logged in designated users that have been authenticated to access the secure resource to verify a presence of the user of the client device in the continuous video authentication data feed (step 1030). The prompt may be, for example, verification request popup 810 in
Subsequently, the server device makes a determination as to whether the server device received an input verifying the presence of the user of the client device in the continuous video authentication data feed from at least one designated user in the set of currently logged in designated users that have been authenticated to access the secure resource (step 1032). If the server device determines that the server device did receive an input verifying the presence of the user of the client device in the continuous video authentication data feed from at least one designated user in the set of currently logged in designated users that have been authenticated to access the secure resource, yes output of step 1032, then the process returns to step 1026 where the server device determines whether the user is still accessing the secure resource. If the server device determines that the server device did not receive an input verifying the presence of the user of the client device in the continuous video authentication data feed from at least one designated user in the set of currently logged in designated users that have been authenticated to access the secure resource, no output of step 1032, then the server device locks access to the secure resource (step 1034).
Further, the server device makes a determination as to whether the server device received newly captured video authentication data corresponding to the user of the client device within a predetermined threshold period of time (step 1036). The predetermined threshold period of time may be, for example, three minutes. However, it should be noted that the predetermined threshold period of time may be any increment to time.
If the server device determines that the server device did not receive newly captured video authentication data corresponding to the user of the client device within a predetermined threshold period of time, no output of step 1036, then the server device closes access to the secure resource (step 1038) and the process terminates thereafter. If the server device determines that the server device did receive newly captured video authentication data corresponding to the user of the client device within a predetermined threshold period of time, yes output of step 1036, then the server device unlocks access to the secure resource (step 1040). Thereafter, the process returns to step 1026 where the server device determines whether the user is still accessing the secure resource.
Returning again to step 1008, if the server device determines that one or more of the designated users in the list of designated users are not currently logged in, no output of step 1008, then the server device prompts the user of the client device to enter authentication data (step 1042). The authentication data may be, for example, a username/password combination and/or biometric data, associated with the user of the client device. Then, the server device makes a determination as to whether the authentication data entered by the user of the client device matches stored authentication data associated with the user (step 1044).
If the server device determines that the authentication data entered by the user of the client device does match the stored authentication data associated with the user, yes output of step 1044, then the server device authenticates the user of the client device based on the authentication data entered by the user matching the stored authentication data associated with the user (step 1046). Thereafter, the process returns to step 1022 where the server device grants access to the secure resource. If the server device determines that the authentication data entered by the user of the client device does not match the stored authentication data associated with the user, no output of step 1044, then the server device denies access to the secure resource (step 1048). In addition, the server device sends a message to the client device denying access to the secure resource (step 1050) and the process terminates thereafter.
With reference now to
The process begins when the client device sends a request to access a secure resource by a user of the client device to a server device, such as server 302 in
After sending the request to access a secure resource to a server device, the client device makes a determination as to whether the client device received a video connection between the user of the client device and a set of currently logged in designated users that have been authenticated to access the secure resource (step 1104). The video connection may be, for example, video connection 322 in
If the client device determines that the client device did receive a video connection between the user of the client device and the set of currently logged in designated users that have been authenticated to access the secure resource, yes output of step 1104, then the client device captures video authentication data corresponding to the user of the client device (step 1106). The video authentication data may be, for example, video authentication data 710 in
Then, the client device makes a determination as to whether the client device received access to the secure resource (step 1110). If the client device determines that the client device did not receive access to the secure resource, no output of step 1110, then the process proceeds to step 1114. If the client device determines that the client device did receive access to the secure resource, yes output of step 1110, then the client device accesses the secure resource (step 1112) and the process terminates thereafter.
Returning again to step 1104, if the client device determines that the client device did not receive a video connection between the user of the client device and the set of currently logged in designated users that have been authenticated to access the secure resource, no output of step 1104, then the client device makes a determination as to whether the client device received a prompt for the user of the client device to enter authentication data (step 1114). If the client device determines that the client device did not receive a prompt for the user of the client device to enter authentication data, no output of step 1114, then the process returns to step 1102 where the client device sends a request to access the secure resource. If the client device determines that the client device did receive a prompt for the user of the client device to enter authentication data, yes output of step 1114, then the client device sends the authentication data entered by the user of the client device to the server device (step 1116). Thereafter, the process returns to step 1110 where the client device determines whether access to the secure resource was received.
Thus, illustrative embodiments provide a computer system and computer program product for authenticating a user of a client device to access a secure resource using video authentication data corresponding to the user that is viewed by a set of one or more designated users, which already have been authenticated to access the secure resource. The descriptions of the various illustrative embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiment. The terminology used herein was chosen to best explain the principles of the embodiment, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed here.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of computer systems and computer program products according to various illustrative embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
This application is a continuation of and claims the benefit of priority to U.S. patent application Ser. No. 13/688,599, filed on Nov. 29, 2012, status pending, entitled “SOCIAL AUTHENTICATION OF USERS”. The contents of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
7305562 | Bianco et al. | Dec 2007 | B1 |
8185646 | Headley | May 2012 | B2 |
8707394 | Tam et al. | Apr 2014 | B2 |
20060271959 | Jacoby et al. | Nov 2006 | A1 |
20080109874 | Kulkarni et al. | May 2008 | A1 |
20080115192 | Kulkarni et al. | May 2008 | A1 |
20080209516 | Nassiri | Aug 2008 | A1 |
20080215450 | Gates et al. | Sep 2008 | A1 |
20090049298 | Hatter et al. | Feb 2009 | A1 |
20090100469 | Conradt et al. | Apr 2009 | A1 |
20100115114 | Headley | May 2010 | A1 |
20100274859 | Bucuk | Oct 2010 | A1 |
20110096174 | King et al. | Apr 2011 | A1 |
20120324543 | Tam et al. | Dec 2012 | A1 |
20130036459 | Liberman et al. | Feb 2013 | A1 |
20140150071 | Castro et al. | May 2014 | A1 |
Entry |
---|
Castro et al., “Social Authentication of Users”, U.S. Appl. No. 13/688,599, filed Nov. 29, 2012, 47 pages. |
Notice of allowance dated Jul. 18, 2014, regarding U.S. Appl. No. 13/688,599, 11 pages. |
Number | Date | Country | |
---|---|---|---|
20140150072 A1 | May 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13688599 | Nov 2012 | US |
Child | 13734509 | US |