An individual may own a number of resources he/she would like to potentially grant other parties access to in a controlled manner. Organizations are continuously looking to prevent access to their internal network resources from untrustworthy endpoints (e.g., unauthenticated devices connected to the networks). There may be a number of situations where an individual and/or organization may wish to dynamically control access to a secure resource, as well as have control over when and/or how the secure resource is being accessed. For example, an individual may allow their children to access their credit card (i.e., a secure resource), but would like to be notified and approve a transaction when a request for a purchase is made with the credit card by the children. In another example, an organization may permit an employee to access certain portions of an internal network, but may deny the same employee access to other portions of the internal network.
According to one aspect, a method may include receiving a request to access a secure resource and a verification telephone number from a first device, establishing a secure session with a second device associated with the verification telephone number, requesting an authentication mechanism from the second device to verify the secure resource request, verifying the received authentication mechanism if the requested authentication mechanism is received from the second device, and determining whether to grant or deny the first device access to the secure resource based on the verification of the received authentication mechanism.
Additionally, the method may include associating the verification telephone number with the authentication mechanism.
Additionally, establishing a secure session may include generating a Short Message Service (SMS) signal that includes an address for establishing the secure session, providing the SMS signal to the second device, and establishing the secure session if the second device accesses the address.
Additionally, verifying the received authentication mechanism may include determining whether the received authentication mechanism matches an authentication mechanism associated with the verification telephone number.
According to another aspect, a method may include receiving a request to use a secure resource, determining a device associated with the secure resource, establishing a secure session with the device associated with the secure resource, requesting approval of the secure resource request from the device, verifying the approval if the approval of the secure resource request is received from the device, and determining whether to grant or deny the first device use of the secure resource based on the verification of the approval.
Additionally, establishing a secure session may include generating a Short Message Service (SMS) signal that includes an address for establishing the secure session, providing the SMS signal to the device, and establishing the secure session if the device accesses the address.
Additionally, requesting approval may include providing a description of the secure resource to the device, and requesting signature of the description by the device with a private key.
Additionally, verifying the approval may include verifying the approval with a public key associated with the device.
According to yet another aspect, a method implemented within a first device may include receiving a Short Message Service (SMS) signal that includes an address for establishing a secure session to authenticate a request to access a secure resource by a second device, establishing the secure session based on the address, receiving a request for an authentication mechanism to authenticate the secure resource request, and providing the requested authentication mechanism if the secure resource request is to be authenticated.
Additionally, the method may include receiving an indication of whether access to the secure resource is granted or denied to the second device.
Additionally, receiving a request for an authentication mechanism may include receiving a description of the secure resource.
According to a further aspect, a method implemented within a first device may include receiving a Short Message Service (SMS) signal that includes an address for establishing a secure session to approve a request to use a secure resource by a second device, establishing the secure session based on the address, receiving a request for approval of the secure resource request, and providing the requested approval if the secure resource request is to be approved.
Additionally, the method may include receiving an indication of whether approval to use the secure resource is granted or denied to the second device.
Additionally, receiving a request for approval may include receiving a description of the secure resource, and receiving a request for signature of the description with a private key.
Additionally, providing the requested approval may include providing the description signed with the private key if the secure resource request is to be approved.
Additionally, receiving a request for approval may include at least one of receiving a description of the secure resource, receiving an identification of a user requesting use of the secure resource, or receiving a random number identifying the secure resource request.
According to another aspect, a method implemented within a first device may include requesting access to or use of a secure resource, providing a verification telephone number identifying a second device, the second device authenticating the first device for access to or use of the secure resource, and receiving access to or use of the secure resource based on the authentication provided by the second device.
According to a further aspect, a system may include means for receiving a request to access a secure resource from a first device, means for establishing a secure session, via a Short Message Service (SMS) signal, with a second, different device to authorize access to the secure resource, means for requesting approval of the secure resource request from the second device, means for verifying the approval if the approval of the secure resource request is received from the second device, and means for determining whether to grant or deny the first device access to the secure resource based on the verification of the approval.
Additionally, the means for requesting approval may include one of means for requesting an authentication mechanism from the second device to verify the secure resource request, or means for requesting signature of a description of the secure resource by the second device with a private key.
Additionally, the means for verifying the approval may include one of means for determining whether an authentication mechanism received from the second device matches an authentication mechanism associated with a verification telephone number of the second device, or means for verifying the approval with a public key associated with the second device.
According to still another aspect, a system may include means for receiving a Short Message Service (SMS) signal that includes an address for establishing a secure session to authenticate a request to access a secure resource by a second device, means for establishing the secure session based on the address, means for receiving a request for approval of the secure resource request, and means for providing the requested approval if the secure resource request is to be approved.
Additionally, the means for receiving a request may include means for receiving a request for an authentication mechanism to authenticate the secure resource request.
Additionally, the means for providing the requested approval may include means for providing the requested authentication mechanism if the secure resource request is to be authenticated.
Additionally, the means for receiving a request for approval may include means for receiving a description of the secure resource and at least one of an identification of a user requesting use of the secure resource or a random number identifying the secure resource request, and means for receiving a request for signature of the description with a private key.
Additionally, the means for providing the requested approval may include means for providing the description signed with the private key if the secure resource request is to be approved.
According to another aspect, a device may include a memory to store a plurality of instructions, and a processor to execute instructions in the memory. The processor may receive a request to access a secure resource from a first device, establish a secure session, via a Short Message Service (SMS) signal, with a second, different device to authorize access to the secure resource, request approval of the secure resource request from the second device, verify the approval if the approval of the secure resource request is received from the second device, and determine whether to grant or deny the first device access to the secure resource based on the verification of the approval.
According to still another aspect, a device may include a memory to store a plurality of instructions, and processing logic to execute instructions in the memory. The processing logic may receive a Short Message Service (SMS) signal that includes an address for establishing a secure session to authenticate a request to access a secure resource by a second device, establish the secure session based on the address, receive a request for approval of the secure resource request, and provide the requested approval if the secure resource request is to be approved.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more implementations described herein and, together with the description, explain these implementations. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.
Implementations described herein may provide access to one or more secure resources based on authentication and/or authorization provided by a secure user device. For example, in one implementation, the user device may correspond to a cellular or mobile telephone capable of supporting a public key infrastructure (PKI). The user device may include two sets of PKI credentials (e.g., a private key and a public key or certificate) that provide authentication and/or authorization for another device (e.g., a client device) attempting to access a secure resource (e.g., a server provided in a secure network). The user of the user device may be the same as or different than the user of the client.
In one implementation (hereinafter referred to as an “authentication example”), a user of a device (e.g., a client) may request access to a secure resource (e.g., an application provided by a server of a secure network). The user, via the client, may provide a verification telephone number to authenticate the user. The secure resource request and the verification telephone number may be received by the server, and the server may generate a Short Message Service (SMS) signal that includes an address for establishing a secure session with the server. The SMS signal may be provided to a user device associated with the verification telephone number and the user, and a secure session may be established with the server. The server may associate the verification telephone number with an authentication mechanism (e.g., a user name, a password, a personal identification number (PIN), etc.), and may request the authentication mechanism from the user device to verify the secure resource request. The user device may provide the authentication mechanism to the server, and the server may verify the authentication mechanism in order to determine whether to grant or deny the client access to the secure resource. For example, if the user device provides the requested authentication mechanism, the user, via the client, may be granted access to the secure resource provided by the server.
In another implementation (hereinafter referred to as a “transaction example”), a person (e.g., an employee), via a device (e.g., a client), may request approval to use a secure resource (e.g., an application of a secure server that may require approval by a manager). The server may associate the secure resource with a telephone number and a public key related to a user device (e.g., to a user device of the manager). The server may send to the user device a SMS signal that includes an address for establishing a secure session with the server. If a secure session is established between the server and the user device, the server may send, to the user device, a description of the secure resource, the employee requesting approval, a request to approve use of the secure resource by the employee, and/or a random number identifying the request. The manager may approve the secure resource request, via the user device, by electronically signing the description of the secure resource with the private key and sending the signed description and the random number to the server. In order to determine whether to grant or deny the user access to the secure resource, the server may verify the signed description of the secure resource with a public key associated with the user device and/or by comparing the received random number with the original random number. For example, if the signed description is verified, the employee, via the client, may receive approval to use the secure resource.
A “secure resource,” as the term is used herein, is to be broadly interpreted to include any network, device, application, property, and/or combinations of networks, devices, applications, and/or properties to which access may be controlled. For example, a secure resource may include a secure or private network, an intranet, a local network, applications and/or devices provided in a secure network, an intranet, or a local network, a credit card, a vehicle (e.g., an automobile, a truck, an aircraft, a boat, etc.), a building, personal web pages, email accounts, any web site requiring a login, password, user name, etc., and/or any other network, device, application, and/or property which may require authorization and/or authentication.
User device 110 may include one or more entities. An entity may be defined as a device, such as a telephone, a cellular phone (e.g., providing Internet-based applications, such as a Wireless Application Protocol (WAP) application), a personal computer, a personal digital assistant (PDA), a laptop, or another type of computation or communication device, a thread or process running on one of these devices, and/or an object executable by one of these devices. In one implementation, user device 110 may provide authorization and/or authentication of one or more secure resources in a manner described herein.
Server 120 may include one or more server entities that gather, process, search, and/or provide information in a manner described herein. For example, in one implementation, server 120 may provide one or more secure resources, and/or authorization/authentication of one or more secure resources in a manner described herein.
Client 130 may include one or more entities, such as a telephone, a cellular phone (e.g., providing Internet-based applications, such as a WAP application), a personal computer, a PDA, a laptop, a card authorization device (e.g., a credit or debit card authorization device, a key fob, etc.), or another type of computation or communication device, a thread or process running on one of these devices, and/or an object executable by one of these devices. In one implementation, client 130 may request access to and/or approval to use a secure resource in a manner described herein. In other implementations, client 130 may correspond to a second user device 110.
Network 140 may include a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN) or a cellular telephone network, an intranet, the Internet, or a combination of networks. User device 110, server 120, and client 130 may connect to network 140 via wired and/or wireless connections.
Although
As further shown in
As further shown in
Display 230 may provide visual information to the user. For example, display 230 may display text input into user device 110, text and/or graphics (e.g., a SMS signal) received from another device, such as server 120, and/or information regarding incoming or outgoing calls or text messages, media, games, phone books, address books, the current time, etc. Control buttons 240 may permit the user to interact with user device 110 to cause user device 110 to perform one or more operations. For example, control buttons 240 may be used to cause user device 110 to transmit information. Keypad 250 may include a standard telephone keypad. Microphone 260 may receive audible information from the user.
Although
User interface 330 may include mechanisms for inputting information to user device 110 and/or for outputting information from user device 110. Examples of input and output mechanisms might include buttons (e.g., control buttons 240, keys of keypad 250, a joystick, etc.) to permit data and control commands to be input into user device 110; a speaker (e.g., speaker 220) to receive electrical signals and output audio signals; a microphone (e.g., microphone 260) to receive audio signals and output electrical signals; a display (e.g., display 230) to output visual information (e.g., text input into user device 110); and/or a vibrator to cause user device 110 to vibrate.
Communication interface 340 may include, for example, a transmitter that may convert baseband signals from processing logic 310 to radio frequency (RF) signals and/or a receiver that may convert RF signals to baseband signals. Alternatively, communication interface 340 may include a transceiver to perform functions of both a transmitter and a receiver. Communication interface 340 may connect to antenna assembly 350 for transmission and/or reception of the RF signals. Antenna assembly 350 may include one or more antennas to transmit and/or receive RF signals over the air. Antenna assembly 350 may, for example, receive RF signals from communication interface 340 and transmit them over the air and receive RF signals over the air and provide them to communication interface 340. In one implementation, for example, communication interface 340 may communicate with a network, such as network 140.
As will be described in detail below, user device 110 may perform certain operations in response to processing logic 310 executing software instructions of an application contained in a computer-readable medium, such as memory 320. A computer-readable medium may be defined as a physical or logical memory device and/or carrier wave. The software instructions may be read into memory 320 from another computer-readable medium or from another device via communication interface 340. The software instructions contained in memory 320 may cause processing logic 310 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Although
Processing unit 420 may include a processor, microprocessor, or other type of processing logic that may interpret and execute instructions. Main memory 430 may include a RAM or another type of dynamic storage device that may store information and instructions for execution by processing unit 420. ROM 440 may include a ROM device or another type of static storage device that may store static information and/or instructions for use by processing unit 420. Storage device 450 may include a magnetic and/or optical recording medium and its corresponding drive.
Input device 460 may include a mechanism that permits an operator to input information to the client/server entity, such as a keyboard, a mouse, a pen, a microphone, voice recognition and/or biometric mechanisms, etc. Output device 470 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface 480 may include any transceiver-like mechanism that enables the client/server entity to communicate with other devices and/or systems. For example, communication interface 480 may include mechanisms for communicating with another device or system via a network, such as network 140.
As will be described in detail below, the client/server entity may perform certain operations in response to processing unit 420 executing software instructions contained in a computer-readable medium, such as main memory 430. The software instructions may be read into main memory 430 from another computer-readable medium, such as storage device 450, or from another device via communication interface 480. The software instructions contained in main memory 430 may cause processing unit 420 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Although
The secure resource request and the verification telephone number input by mechanism 510 may be received by server 120, and server 120 may perform verification functions with user device 110, as described below in connection with
Although not shown in
Although
In the authentication example, the SMS signal may include a description of the requested secure resource and a URL to a downloadable application (e.g., a Java midlet) maintained by server 120. Each downloadable application maintained by server 120 may contain a data segment with a private key field, and the data segment may be encrypted for security purposes (e.g., to prevent hacking). Server 120 may associate a list of verification telephone numbers (e.g., of user devices 110) with corresponding downloadable applications (and their corresponding authentication mechanisms) to create pairs of verification telephone numbers and corresponding authentication mechanisms. If the downloadable application is initiated (e.g., if the user selects address 630), user device 110 may contact server 120 and initiate secure communications with server 120. For example, user device 110 may provide its telephone number to server 120 over a secure socket connection (or other type of secure connection).
If secure communications are established between user device 110 and server 120, server 120 may provide a variety of information to user device 110 to aid in the verification process. For example, as shown to the right in
If the user of user device 110 wishes to provide access to the secure resource, the user may provide an authentication mechanism (e.g., via mechanism 650 or automatically with user device 110) and may select YES mechanism 670. Server 120 may receive the authentication mechanism from user device 110, and may verify the authentication mechanism in order to determine whether to grant or deny access to the secure resource. For example, server 120 may grant the user, via client 130, access to the secure resource provided by server 120. If the user of user device wishes to deny access to the secure resource, the user may omit providing information via mechanism 650 and/or may select NO mechanism 680. Server 120 may deny access to the secure resource based on this information and/or if the authentication mechanism is not verified.
If the user attempts to access the same secure resource a second time (e.g., the user attempts to log into a secure web site a second time), server 120 may check to see if the downloadable application (e.g., the Java midlet) is running on user device 110. If the Java midlet is running on user device 110, the authentication process (e.g., the request for the private key) may begin immediately. If the Java midlet is not running on user device 110, the SMS signal may be sent to user device 110 and the authentication process described above may begin.
Although not shown in
In order to determine whether to grant or deny access to the secure resource, server 120 may verify the signed description of the secure resource with a public key associated with user device 110 and/or by comparing the received random number with the original random number. For example, if the signed description is verified by server 120, the requester (e.g., via client 130) may receive approval to use the secure resource.
Although implementations described herein discuss pairing the verification telephone numbers with corresponding authentication mechanisms for each downloadable application, in other implementations, such a pairing may be omitted and the user requesting access to the secure resource may provide a key code (e.g., numbers, letters, or a combination of numbers or letters), which may be requested from the verifying user device 110.
Furthermore, although implementations described herein discuss providing a SMS signal, in other implementations, a signal other than a SMS signal may be used. For example, an Internet Protocol (IP) Multimedia Subsystem (IMS) signal, a Jabber signal, or another IP-based signal may be used. If an IP-based signal is used, user device 110 may be automatically connected to server 120 and server 120 may contact user device 110 using an appropriate protocol (e.g., Session Initiation Protocol (SIP) in the case of IMS, Extensible Messaging and Presence Protocol (XMPP) in the case of Jabber, etc.). Use of a SMS signal may be advantageous if the IP address of user device 110 is unknown without user device 110 providing its IP address to server 120. The SMS signal may thus initiate communication between an unknown user device 110 and server 120.
Still further, implementations described herein may be used to transfer a chat session from user device 110 (e.g. a mobile telephone) to client 130 (e.g., a web interface provided on client 130). This may be accomplished by incorporating the implementations described herein into a chat application. If a user wants to transfer the chat to client 130, the user may enter the telephone number of user device 110 on the web interface of client 130, which may trigger a dialog on user device 110 asking the user if he/she wants to transfer the chat to the web interface of client 130.
Although
As shown in
A SMS signal may be generated and sent to the verification telephone number to establish a secure session (block 720). For example, in one implementation described above in connection with
As further shown in
The authentication mechanism may be requested to verify the secure resource request (block 740). For example, in one implementation described above in connection with
As further shown in
As shown in
A user device associated with the secure resource may be determined (block 820). For example, in one implementation described above in connection with
As further shown in
A description of the secure resource and a request for signature may be provided (block 840). For example, in one implementation described above in connection with
As further shown in
As shown in
If a secure session is establish based on the received address (block 920), a description of a secure resource to be accessed and/or a request for an authentication mechanism may be received (block 930). For example, in one implementation described above in connection with
As further shown in
As shown in
If a secure session is establish based on the received address (block 1020), a description of a secure resource to be accessed and/or a request for a signature may be received (block 1030). For example, in one implementation described above in connection with
As further shown in
The secure resource description signed with the private key may be provided (block 1050), and an indication of whether to grant or deny access to the secure resource may be received (block 1060). For example, in one implementation described above in connection with
As shown in
A verification telephone number of a user device may be provided (block 1120). For example, in one implementation described above in connection with
As further shown in
Implementations described herein may provide access to one or more secure resources based on authentication and/or authorization provided by a secure user device. For example, in one implementation, the user device may correspond to a cellular or mobile telephone capable of supporting a PKI. The user device may include two sets of PKI credentials that provide authentication and/or authorization for another device attempting to access a secure resource. Implementations described herein may provide simple and secure systems and methods for accessing any secure resource, without the need to remember multiple passwords, user names, etc.
The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.
For example, while a series of acts has been described with regard to
Also, the term “user” has been used herein. The term “user” is intended to be broadly interpreted to include a client and/or a user device or a user of a client and/or user device.
It will be apparent that aspects, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these aspects should not be construed as limiting. Thus, the operation and behavior of the aspects were described without reference to the specific software code--it being understood that software and control hardware could be designed to implement the aspects based on the description herein.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.