The present invention relates to security in general, and, more particularly, to peer authentication.
Peer authentication is a method by which a first user is authenticated by a second user. (Note that, as in the term peer-to-peer communication, the word “peer” is used generically and has no connotation regarding the professional or social standing of the users.) An example of peer authentication is illustrated by the following familiar scenario: an employee in the lobby of a corporate building realizes that she accidentally left her corporate badge at home, and that therefore she will not be allowed to enter the building proper without some other means of authentication. She therefore approaches the guard in the lobby and tells the guard that she is an employee, but that she doesn't have her badge.
The guard then:
The officemate arrives at the lobby, and then either:
In a variation of the above scenario, the guard, rather than asking the officemate to come to the lobby, might ask the officemate to talk to the alleged employee over the phone. The officemate talks to the alleged employee over the phone, and determines whether the alleged employee is in fact who she claims to be, based on the telephone conversation (e.g., based on her voice, based on her answers to one or more questions, etc.). The officemate then informs the guard whether the alleged employee should be allowed to advance past the lobby.
The present invention enables peer authentication to be conducted in an automated fashion, without the assistance of a human “guard” to perform the following tasks:
Furthermore, in accordance with the illustrative embodiments of the present invention, a data-processing system (e.g., a server, a desktop computer, etc.) selects a peer dynamically at authentication time, rather than in an a priori fashion, as in the prior art. In particular, a peer is selected from a non-empty set of candidates based on one or more of the following dynamic properties:
For example, the data-processing system might be programmed to select the candidate that is physically closest to user U, or to select the physically-closest candidate who is not currently at a meeting (as indicated by the current day/time and the candidates' schedules). As another example, the data-processing system might be programmed to consult one or more directories and select someone who is in the same department as user U (e.g., the department chairman, a direct report to user U, a department member having the same professional rank as user U, etc.). As yet another example, the data-processing system might infer which candidate knows user U best based on one or more call logs (e.g., based on the number of calls between each candidate and user U, the durations of these calls, etc.), and select that candidate as the peer (the theory being that the candidate who knows user U best would be the best peer to authenticate user U.)
In the first illustrative embodiment of the present invention, an input device (e.g., a numeric keypad, a magnetic card reader, etc.) controls access to an electronically-locked door, and an individual who wishes to enter through the door supplies a user identifier U (e.g., an employee number, an office telephone number, etc.) to the device accordingly (e.g., by keying in identifier U, by swiping a magnetic card on which identifier U is stored, etc.). The input device then transmits identifier U to a data-processing system, and in response the data-processing system selects a peer based on one or more properties of one or more entities, as described above. The data-processing system subsequently transmits a message (e.g., a telephone call, an instant message [IM], etc.) to the selected peer that indicates that an individual claiming to be user U is at the electronically-locked door, waiting to be allowed entry. The peer then authenticates the individual and, if appropriate, allows the individual to enter through the door. In some embodiments, the peer might perform the authentication in person and allow the individual to enter by physically unlocking the door, while in some other embodiments, the peer might perform the authentication remotely via an intercom and video camera and allow the individual to enter by “buzzing him or her in.” In the case that the selected peer does not respond to the transmitted message within a chosen timeout period (e.g., 30 seconds, etc.), then the data-processing system selects another peer to perform the authentication.
In accordance with the second illustrative embodiment of the present invention, when a wireless terminal user attempts to perform some function that requires authentication, the terminal transmits a message to a data-processing system that indicates that the terminal's current user needs to be peer-authenticated. In response, the data-processing system selects a peer based on one or more properties of one or more entities, as described above, and transmits a message to the selected peer that indicates that the peer should verify whether the terminal's current user is in fact who it should be (i.e., the user to which the terminal is registered). The peer then authenticates the current user of the terminal (e.g., in person via visual inspection, in person via a conversation, remotely by visual inspection, remotely via a conversation, etc.) and transmits the result to the data-processing system. The data-processing system forwards the result to the terminal, and the terminal either grants or denies access to its current user accordingly. As in the first illustrative embodiment, if the selected peer does not respond to the transmitted message within a timeout period, then the data-processing system selects another peer to perform the authentication.
The illustrative embodiments comprise: a receiver for receiving a signal that indicates that a user is to be authenticated; and a processor for selecting a peer to authenticate the user; wherein the selection of the peer is based one or more properties of one or more entities; and wherein at least one of the properties is expected to change during any time interval of N minutes; and wherein N is a positive number.
For the purposes of this specification, the term “calendrical time” is defined as the time as denominated in one or more measures (e.g., seconds, minutes, hours, time of day, day, day of week, month, month of year, year, etc.).
For the purposes of this specification, the term “peer” is defined as a user, and
Input device 101 (e.g., a numeric keypad, a magnetic card reader, etc.) is capable of receiving input from a user and of transmitting and receiving signals to and from network 105, in well-known fashion. In accordance with the first illustrative embodiment, input device 101 controls access to an electronically-locked door, not shown in
Network 105 is capable of transporting signals to and from data-processing systems, input devices, output devices, etc. in well-known fashion. In accordance with the first illustrative embodiment network 105 is a local-area network (LAN); however, as will be appreciated by those skilled in the art, in some other embodiments of the present invention network 105 might be some other type of network, such as a metropolitan area network (MAN), a wide-area network (WAN), etc.
Data-processing system 120 is capable of receiving signals from network 105, of transmitting signals to network 105, of storing data and programs, and of executing programs, in well-known fashion. Data-processing system 120 is described in more detail below and with respect to
Terminal/user mapping store 130 is a memory (e.g., disk drive, random access memory, flash memory, etc.) that associates each of a plurality of wireless telecommunications terminals with a user to whom the terminal is registered (i.e., the owner of the terminal).
Terminal geo-location store 140 is a memory that stores the current geo-locations of one or more wireless terminals belonging to members of the enterprise (e.g., employees, contractors, members of the Board of Directors, etc.), in well-known fashion. As will be appreciated by those skilled in the art, in some embodiments of the present invention, terminal geo-location store 140 might store current geo-locations for only a subset of enterprise members (e.g., only those members who are in the same building as input device 101, etc.), while in some other embodiments, terminal geo-location store 140 might store the current geo-locations for every member of the enterprise.
Directories store 150 is a memory that stores the contents of one or more directories (e.g., a staff telephone directory, a hierarchical organizational chart/directory, etc.). In accordance with the illustrative embodiments, directories store 150 contains employee information including office telephone number, cell phone number, building and office number, department, email address, instant messaging (IM) chat name, and so forth, as well as employee relationships (e.g., boss/subordinate, etc.) and organizational information (e.g., department hierarchies, department supervisors, etc.)
Call log store 160 is a memory that stores one or more call logs for telephone calls to and from members of the enterprise. In accordance with the illustrative embodiments, call log store 160 records information including the starting time and duration of a telephone call, the parties involved in a call, an indication of whether a call was answered, an indication of whether a voice mail message was left, and so forth, as is typical in the art.
As in terminal geo-location store 140, in some embodiments of the present invention call log store 160 might record call information for only a subset of enterprise members, while in some other embodiments call log store 160 might store this information for every member of the enterprise. Furthermore, in some embodiments of the present invention, call log store 160 might also record information for other kinds of communication, such as emails, instant messages (IM), etc.
User schedule store 170 is a memory that stores schedule information (e.g., meetings, vacations, etc.) for members of the enterprise.
Receiver 201 is capable of receiving signals from network 105, and of forwarding information encoded in these signals to processor 202, in well-known fashion. It will be clear to those skilled in the art, after reading this disclosure, how to make and use receiver 201.
Processor 202 is a general-purpose processor that is capable of reading data from and writing data into memory 203, and of executing the tasks described below and with respect to
Memory 203 is capable of storing data and executable instructions, as is well-known in the art, and might be any combination of random-access memory (RAM), flash memory, disk drive, etc. It will be clear to those skilled in the art, after reading this disclosure, how to make and use memory 203.
Transmitter 204 is capable of receiving information from processor 202 and transmitting signals that encode this information to network 105, in well-known fashion. It will be clear to those skilled in the art, after reading this disclosure, how to make and use transmitter 204.
Clock 205 transmits the current time, date, and day of the week to processor 202, in well-known fashion.
At task 310, input device 101 receives an input comprising a user identifier U (e.g., an employee number, etc.), in well-known fashion (e.g., via keypad input, via the swiping of a magnetic card, etc.).
At task 320, input device 101 transmits to data-processing system 120, via network 105:
At task 330, data-processing system 120 receives the peer authentication request and user identifier U via network 105, in well-known fashion.
At task 340, data-processing system 120 selects an authentication peer for “purported” user U based on:
As will be appreciated by those skilled in the art, the exact criteria and methods by which data-processing system 120 selects an authentication peer can vary from implementation to implementation, based on the desires of the enterprise's security department, its management, and so forth. A number of possible strategies that were disclosed above include: selecting the peer that is closest to input device 101; selecting the peer who knows user U the best, as inferred from call log store 160; selecting the closest peer to input device 101 who is not currently in a meeting, as indicated by user schedule store 170. It will be clear to those skilled in the art, after reading this disclosure, how to make and use embodiments of the present invention that implement these strategies, as well as embodiments that implement alternative strategies based on the criteria above.
At task 350, data-processing system 120 transmits a message to the selected peer, requesting that the peer: (i) authenticate the purported user, and (ii) allow the purported user to enter through the electronically-locked door only when the purported user is in fact user U. As described above, in some embodiments the peer might perform the authentication in person and allow the user to enter by physically unlocking the door, while in some other embodiments, the peer might perform the authentication remotely (e.g., via an intercom, a video camera, etc.) and allow the user to enter by transmitting a signal that causes the electronic lock to be momentarily disabled. Moreover, in some embodiments of the present invention the transmitted message might provide one or more suggestions or guidance to the peer for authenticating the purported user (e.g., “talk about the last time you shared a meal together”, etc.).
At task 360, data-processing system 120 checks whether the selected peer has responded with an acknowledgement that he or she will fulfill the request. If no such response has been received within a particular timeout period (e.g., 30 seconds, etc.), execution continues back at task 340 for selection of another peer. (Presumably, the selected peer was not available, or had his or her terminal powered down, etc.) Similarly, if a response is received indicating that the peer is unable to fulfill the request or has refused the request, execution continues back at task 340 for selection of another peer. Otherwise, if a response is received indicating that the selected peer has agreed to fulfill the request, the method of
Network 405 is capable of receiving signals from and transmitting signals to one or more telecommunications terminals (e.g., wireless telecommunications terminal 401, etc.) in accordance with a wireless communication protocol (e.g., an Institute of Electrical and Electronics Engineers [IEEE] 802.11 protocol, etc.), and of receiving signals from and transmitting signals to data-processing system 420, terminal/user mapping store 130, terminal geo-location store 140, directories store 150, call log store 160, and user schedule store 170, in either wired or wireless fashion.
Wireless telecommunications terminal 401 is capable of transmitting and receiving signals wirelessly via network 405 (and perhaps via another wireless network, such as a CDMA network), and is registered to a user identified by a symbolic string U (e.g., a social security number, an employee number, an office telephone number, etc.). Wireless telecommunications terminal 401 is also capable of denying access to at least some of the terminal's functionality (e.g., making a phone call, reading an incoming email message, running a particular Web-based application, etc.) unless a signal has been received indicating that the terminal's current user has been authenticated as the registered user.
Data-processing system 420 is similar to data-processing system 120, with the exception that it has been programmed to execute the pertinent tasks of the method of
Terminal/user mapping store 130, terminal geo-location store 140, directories store 150, call log store 160, and user schedule store 170 are the same as in the first illustrative embodiment.
At task 510, wireless telecommunications terminal 401 transmits to data-processing system 120, via network 405:
At task 520, data-processing system 420 receives the peer authentication request and user identifier U via network 405, in well-known fashion.
At task 530, data-processing system 420 selects an authentication peer for “purported” user U based on:
As will be appreciated by those skilled in the art, the exact criteria and methods by which data-processing system 420 selects an authentication peer can vary from implementation to implementation, based on the desires of the enterprise's security department, its management, and so forth. As previously described, a number of possible strategies include: selecting the peer that is physically closest to wireless telecommunications terminal 401; selecting the peer who knows user U the best, as inferred from call log store 160; selecting the physically-closest peer to terminal 401 who is not currently in a meeting, as indicated by user schedule store 170; and selecting user U's boss as the authentication peer. It will be clear to those skilled in the art, after reading this disclosure, how to make and use embodiments of the present invention that implement these strategies, as well as embodiments that implement alternative strategies based on the above criteria.
At task 540, data-processing system 420 transmits a message to the selected peer, requesting that the peer: (i) authenticate the current user of terminal 401 (i.e., determine whether the current user is user U), and (ii) return the result of the authentication (i.e., transmit the result back to data-processing system 420). As described above, in some embodiments of the present invention, the peer might perform the authentication in person, while in some other embodiments, the peer might perform the authentication remotely (e.g., calling terminal 401 and speaking to its current user, etc.).
Furthermore, in some embodiments of the present invention, the peer might return a result that indicates whether or not the peer has authenticated the current user as user U, while in some other embodiments, the peer might return a result that simply characterizes the current user's responses to a series of questions (e.g., what percentage of questions the current user answered correctly, etc.)—thereby leaving data-processing system 420 with the task of determining whether to authenticate the current user as user U (e.g., applying a threshold of, say, 75% correct answers; etc.).
Still further, in some embodiments of the present invention, the result might be a single Boolean value indicating the peer's authentication decision, or a plurality of Boolean values indicating correct/incorrect for each of a series of questions, while in some other embodiments, the result might be a value that indicates the peer's degree of confidence in whether the current user is in fact user U, such as a real number in interval [0,1], or a value corresponding to one of: {absolutely yes [4], very sure [3], pretty sure [2], maybe so [1], don't know [0], maybe not [−1], pretty sure not [−2], very sure not [−3], absolutely no [−4]}. In still other embodiments, the result might be a plurality of values that indicate a “degree of correctness” for each of a series of questions.
As described above, in embodiments where the peer simply reports the results of the current user's responses to a series of questions, it is data-processing system 420 that makes the authentication decision in accordance with some decision logic with which it has been programmed. For example, a peer might return a result comprising degrees of confidence for a series of questions, and data-processing system 420 might apply a threshold to the average of the degrees of confidence (e.g., a threshold of 0.8 when the degrees of confidence are in interval [0,1], etc.)
As will be appreciated by those skilled in the art, some embodiments of the present invention might employ some combination of the alternatives disclosed above, or might employ some other variations (e.g., using an enumerated data type instead of a real number to specify degrees of confidence or correctness, etc.), and it will be clear to those skilled in the art, after reading this disclosure, how to make and use such embodiments.
At task 550, a branch is executed based on whether or not data-processing system 420 receives a response from the selected peer before a timeout period expires. If not, execution continues back at task 530, otherwise execution proceeds to task 560.
At task 560, a branch is executed based on whether or not the selected peer has returned a result in the response. If not (e.g., the response is a refusal to fulfill the request, etc.), execution continues back at task 530, otherwise execution proceeds to task 570.
At task 570, a branch is executed based on whether or not the returned result is a single Boolean value. If not (e.g., the result is a plurality of Boolean values, the result is a real number, the result is a plurality of real numbers, etc.), execution proceeds to task 570, otherwise execution continues at task 580.
At task 580, data-processing system 420 applies its decision logic to the returned result and generates a single Boolean value.
At task 590, data-processing system 420 transmits the single Boolean value to terminal 401, thereby indicating to terminal 401 whether the current user should be allowed to perform any functions that require authentication. After task 590, the method of
It is to be understood that the disclosure teaches just one example of the illustrative embodiment and that many variations of the invention can easily be devised by those skilled in the art after reading this disclosure and that the scope of the present invention is to be determined by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
5303285 | Kerihuel et al. | Apr 1994 | A |
5848156 | Murakami | Dec 1998 | A |
6014085 | Patel | Jan 2000 | A |
6253202 | Gilmour | Jun 2001 | B1 |
6282183 | Harris et al. | Aug 2001 | B1 |
6298072 | Koliczew | Oct 2001 | B1 |
6349206 | Reichelt et al. | Feb 2002 | B1 |
6484033 | Murray | Nov 2002 | B2 |
6788772 | Barak et al. | Sep 2004 | B2 |
6859651 | Gabor | Feb 2005 | B2 |
6983278 | Yu et al. | Jan 2006 | B1 |
7092508 | Brown et al. | Aug 2006 | B2 |
7139390 | Brown et al. | Nov 2006 | B2 |
7162256 | Seligmann et al. | Jan 2007 | B2 |
7181620 | Hur | Feb 2007 | B1 |
7221949 | Clough | May 2007 | B2 |
7233997 | Leveridge et al. | Jun 2007 | B1 |
7237024 | Toomey | Jun 2007 | B2 |
7246236 | Stirbu | Jul 2007 | B2 |
7263179 | Sammon et al. | Aug 2007 | B2 |
7293284 | Bartram et al. | Nov 2007 | B1 |
7320143 | Le Pennec et al. | Jan 2008 | B2 |
7334013 | Calinov et al. | Feb 2008 | B1 |
7392048 | Seligmann et al. | Jun 2008 | B2 |
7392375 | Bartram et al. | Jun 2008 | B2 |
7418252 | Erskine et al. | Aug 2008 | B2 |
7421072 | Brotman et al. | Sep 2008 | B2 |
7545942 | Cohen et al. | Jun 2009 | B2 |
7627529 | Bauer et al. | Dec 2009 | B1 |
7688344 | Kimber et al. | Mar 2010 | B2 |
7707293 | Zhang | Apr 2010 | B2 |
7720208 | Kia et al. | May 2010 | B1 |
7721093 | Sundararajan | May 2010 | B2 |
7734912 | Ganesan et al. | Jun 2010 | B2 |
7808906 | Rao et al. | Oct 2010 | B2 |
20010016038 | Sammon et al. | Aug 2001 | A1 |
20020133716 | Harif | Sep 2002 | A1 |
20020147019 | Uhlik et al. | Oct 2002 | A1 |
20030108186 | Brown et al. | Jun 2003 | A1 |
20030118167 | Sammon et al. | Jun 2003 | A1 |
20030119506 | Singhai et al. | Jun 2003 | A1 |
20030156707 | Brown et al. | Aug 2003 | A1 |
20040035644 | Ford et al. | Feb 2004 | A1 |
20040054885 | Bartram et al. | Mar 2004 | A1 |
20040098588 | Ohba et al. | May 2004 | A1 |
20040122958 | Wardrop | Jun 2004 | A1 |
20040153518 | Seligmann et al. | Aug 2004 | A1 |
20040179660 | Sammon et al. | Sep 2004 | A1 |
20040189441 | Stergiou | Sep 2004 | A1 |
20040202306 | Brotman et al. | Oct 2004 | A1 |
20040214558 | Chang et al. | Oct 2004 | A1 |
20040216039 | Lane et al. | Oct 2004 | A1 |
20040218744 | Nguyen et al. | Nov 2004 | A1 |
20040236771 | Colver et al. | Nov 2004 | A1 |
20050070312 | Seligmann et al. | Mar 2005 | A1 |
20050091172 | King et al. | Apr 2005 | A1 |
20050135305 | Wentink | Jun 2005 | A1 |
20050250482 | Seligmann et al. | Nov 2005 | A1 |
20060004921 | Suess et al. | Jan 2006 | A1 |
20060014532 | Seligmann et al. | Jan 2006 | A1 |
20060030263 | Seligmann et al. | Feb 2006 | A1 |
20060095771 | Appenzeller et al. | May 2006 | A1 |
20060178567 | Goh et al. | Aug 2006 | A1 |
20060224477 | Garcia et al. | Oct 2006 | A1 |
20060256008 | Rosenberg | Nov 2006 | A1 |
20070033397 | Phillips, II et al. | Feb 2007 | A1 |
20070061881 | Eyre | Mar 2007 | A1 |
20070071180 | Kanada | Mar 2007 | A1 |
20070094497 | O'Gorman et al. | Apr 2007 | A1 |
20070112964 | Guedalia et al. | May 2007 | A1 |
20070118735 | Cherrington et al. | May 2007 | A1 |
20070162554 | Branda et al. | Jul 2007 | A1 |
20070171910 | Kumar | Jul 2007 | A1 |
20070214259 | Ahmed et al. | Sep 2007 | A1 |
20070230683 | Brown et al. | Oct 2007 | A1 |
20070265956 | Epstein et al. | Nov 2007 | A1 |
20070283027 | Hoffmann | Dec 2007 | A1 |
20080005095 | Horvitz et al. | Jan 2008 | A1 |
20080010200 | Smith et al. | Jan 2008 | A1 |
20080071761 | Singh et al. | Mar 2008 | A1 |
20080077976 | Schulz | Mar 2008 | A1 |
20080102766 | Schultz | May 2008 | A1 |
20080102790 | Schultz | May 2008 | A1 |
20080120718 | Bentley et al. | May 2008 | A1 |
20080126541 | Rosenberg et al. | May 2008 | A1 |
20080141034 | Bartram et al. | Jun 2008 | A1 |
20080146193 | Bentley et al. | Jun 2008 | A1 |
20080152113 | Chang et al. | Jun 2008 | A1 |
20080195861 | Salomone | Aug 2008 | A1 |
20080235043 | Goulandris et al. | Sep 2008 | A1 |
20080294655 | Picault et al. | Nov 2008 | A1 |
20090037985 | Bentley et al. | Feb 2009 | A1 |
20090125435 | Cohen et al. | May 2009 | A1 |
20090125721 | Numaoka | May 2009 | A1 |
20090131015 | Bentley et al. | May 2009 | A1 |
20090133106 | Bentley et al. | May 2009 | A1 |
20090133117 | Bentley et al. | May 2009 | A1 |
20090193514 | Adams et al. | Jul 2009 | A1 |
Number | Date | Country |
---|---|---|
2006092530 | Apr 2004 | JP |
WO 02085019 | Oct 2002 | WO |
WO 2007012831 | Feb 2007 | WO |
Entry |
---|
Maurice, Russell, “GB Application No. GB081291.1 Search Report”, Jan. 27, 2009, Published in: IPO. |
J. Brainard, A. Juels, R. Rivest, M. Szydlo, and M. Yung. Fourth Factor Authentication: Somebody You Know. Association of Computing Machinery Conference on Computer and Communications Security, Oct. 30-Nov. 3, 2006, pp. 168-178, Alexandria, VA, USA. |
Avaya Inc., JP Patent Application No. 2008-194375, Office Action dated Sep. 28, 2012, 2 pages. |
Number | Date | Country | |
---|---|---|---|
20090037985 A1 | Feb 2009 | US |