The invention relates to the area of computing networks, and more particularly to the area of network authentication.
Information is shared online with increasing frequency. For instance, so-called “social networks” have exploded in popularity over recent years. Social networks allow users to create their own personalized site or “space” online for others to see. On these personalized sites, the users publish personal information and frequently include pictures of themselves or their loved ones. Social networks are a great way for people to keep in touch with family, friends, or colleagues, and to meet new people.
However, for all their benefits, social networks are not without their drawbacks. Many people are concerned about their privacy and resist the urge to share their personal information online. While many people do share information about themselves online, very many more are reluctant to do so because of the risk that their information would fall into the wrong hands or be used in some unintended and nefarious way. For instance, the pictures that users upload to their personalized sites may be copied by others and used in unauthorized and even offensive ways. People fear that malevolent stalkers could use the publicized information to find them and perhaps do them harm.
Mechanisms exist that seek to reduce or even eliminate the risks associated with publishing personal information online. The most common, and perhaps most effective method is to disallow the general public from viewing one's social network site unless personally invited. With this system, the site owner authorizes someone else to visit the owner's site, generally by invitation. However, these invitations require the invitee to create their own account with the social network and then log in with the service in order to view the owner's site. While it may seem a small task, the need to create a new account and remember new login credentials is enough of a burden to put many people off.
Another mechanism to protect personal content is to keep the location of the personal content secret, and only share a link to that content with authorized individuals. However, this mechanism suffers from the shortcoming that there is nothing to prevent those authorized individuals from sharing the private link with other, unauthorized individuals.
Although described here in the context of social networking, many other online services also suffer from the same drawbacks as just described. For example, services exist that allow online access to documents or electronic messages, rather than personal information, to be granted by site owners. The hurdle created by requiring login credentials for visitors is a pervasive problem that afflicts many different online services.
An adequate solution to these difficult problems has proven elusive to those skilled in the art, until now.
The invention is generally directed at a system and method for authorization of a visitor to a web site. In one implementation, the system provides visitors to a web site with semi-automatic authorization, in which the user need not take any explicit steps to confirm the authorization. The system uses a specially formed URL that provides visitors access to secure content without requiring a sign-in and/or sign-up step, yet, if the URL is forwarded to others the content is not accessible. The URL can be delivered in an electronic message.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The preferred embodiments of the present invention will now be described more fully with reference to the accompanying drawings. The invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are intended to convey the scope of the invention to those skilled in the art. Furthermore, all “examples” given herein are intended to be non-limiting.
Briefly stated, the following embodiments illustrate one preferred system that uses a specially formed URL to provide visitors access to secure content without requiring a sign-in and/or sign-up step, yet, if the URL is forwarded to others the content is not accessible. In one specific embodiment, the URL is delivered in an electronic message.
As shown in
The Web content 116 being served may include both public content 117 and secure content 118. As suggested by their names, the public content 117 is accessible without regard to secure credentials, and the secure content 118 is only accessible to those visitors who are authorized. The public content 117 may include any information that the operator of the server deems appropriate for public access, such as general information pages, login or startup pages, access to public documents, and the like.
The secure content 118 includes information that the operator of the server deems inappropriate for public access, such as individual user pages, private documents, personal images, and the like. The secure content 118 is only accessible to certain users, such as the operator of the server 110, the owner of the secure pages 118, and those expressly authorized by the owner of the secure content 118, to name a few. There may be multiple divisions within the secure content, in which different subsets of the content are available to differently authorized users.
User data 120 includes information that identifies accounts and information about the account holders for users who make use of the services provided by the server 110. For example, if the server 110 were affiliated with a social networking online service, the user data 120 could include identifying information about the owners of the several personal sites served by the social network. The user data 120 would also identify any other users that the owner authorized to view the owner's site, which likely includes some secure content 118. The user data 120 may also include much additional information, such as billing information for the individual users and perhaps usage information collected about the users' browsing habits.
An authorization engine 112 is specially configured to evaluate requests for the secure content 118 to determine if a requesting visitor is authorized to view the requested secure page. The authorization engine 112, among other things, makes use of stored user data 120 and an authorization table 114 (described below) to determine whether to allow access to a requested secure page 118. It should be apparent that access to public content 117 generally does not require special authorization. Although introduced here, one illustrative process that may be implemented by the authorization engine 112 is described in detail below in conjunction with
In one embodiment, the authorization engine 112 is further configured to construct an electronic message (e-mail message) in response to an invitation to view secure content 118. In addition, the authorization engine 112 includes logic to formulate a special code (an “authorization code”) that may be included in an e-mail message to authorize the recipient, and only the recipient, of the message to view secure content 118. In one specific implementation, the special code takes the form of a Uniform Resource Locator (URL) or may be embedded within a URL. One specific implementation of such a special URL is illustrated in
The client computer 150 may be a general purpose computing device operative to connect to other computing devices, such as the server 110, over the network 105. In this implementation, the client computer 150 includes an e-mail client 152 and a browser 170. The e-mail client 152 is a software program used to communicate using electronic messages. The e-mail client 152 may be configured to communicate with other servers (not shown) using messaging protocols, such as POP3, IMAP, and SMTP, to exchange electronic messages with other users. In this particular implementation, the e-mail client 152 has received an e-mail message 153 from the server 110. The e-mail message 153 includes a link 155 and an image 157. The link 155 includes a special code that identifies the location of secure content 118 for which the recipient of the e-mail message 153 has been authorized. One particular implementation (among many) of the link 155 is illustrated in
Turning briefly to
The protocol 201 identifies the particular communication protocol to use to retrieve the identified resource. Examples of acceptable protocols include http, https, ftp, gopher, telnet, mailto, news, wais, and file. The server ID 203 identifies the domain at which the identified resource resides. The path 205 indicates the location of the identified resource within a folder structure at the identified domain. The resource ID 211 particularly identifies the resource, such as by name.
In this implementation, the trigger code 207 is a special code indicating that the link 155 includes an authorization code 209. The trigger code 207 is optional. The authorization code 209 may include a Message-Id 230 that uniquely identifies each message sent, a User-Id 231 if the message was sent to a registered user and an Item-Count 232 that is a counter of the number of messages sent, so even messages sent to the same email-id and user-id can be uniquely identified. Optionally, the entire authorization code 209 may be encrypted or signed to prevent malicious interference.
Returning to
The client 150 also includes browser software 170, which is a software program for retrieving and rendering network accessible resources. The browser 170 includes a rendering engine (not shown) operative to interpret markup language documents and display the interpreted content. The browser 170 is also configured to store and transmit persistent data, such as so-called “cookies” 171, which are small text files that include information that is transmitted to a domain in conjunction with a request (e.g., an HTTP GET request) for a resource resident at that domain. Cookies are well known in the art.
The e-mail client 152 is illustrated as a separate component from the browser 170 in this implementation, although it should be appreciated that in other implementations the e-mail client 152 and the browser 170 could be the same component. For instance, the browser 170 could be used to access an e-mail account over the network 105 and view messages stored on a remote server (commonly referred to as “webmail”).
The operation of the system 100 illustrated in
Turning first to
The authorization engine 112 also creates an e-mail message addresses to the visitor's e-mail address (step 405). The special URL is included as a link 155 in the e-mail message, and the message 153 is transmitted to the visitor (step 407) via the client computing device 150.
Turning now to
At the server, the web server program 111 passes the request off to the authorization engine 112, which performs a set of tests and checks to authenticate and authorize the visitor making the request. First, the authentication engine 112 determines if the request is already authorized by determining if the request included an authorization cookie (step 505). If not, then the request is not authorized. If the request includes an authorization cookie, then the request is authorized without further input from the visitor and without
However, if the request did not include the authorization cookie, the authorization engine 112 detects the authorization code 209, decrypts it (if necessary), decodes it, verifies its integrity, and checks if the authorization code 209 has been accessed (step 507). The authorization engine 112 determines if this is the “first click”, meaning that at no time prior has a request been received from a browser using that exact URL 155, by referencing the authorization table 114.
Turning briefly to
Accordingly, the authorization engine 112 locates the record having the appropriate message ID 230 in the message ID field 303, and the appropriate count 232 in the counter field 307. Then, if the clicked field 309 for the identified record is still zero, this indicates that the link 155 has never been clicked, thus this is the “first click”.
Returning to
However, if the clicked field 309 is non-zero, indicating that the link 155 has already been clicked, the authorization engine 112 detects that the authorization code 209 was already accessed from a different computer. For example, if the original recipient forwarded the email message 153 to a second visitor, and the second visitor tried to click the link 155, there would not be an authorization cookie 171 with the request and the clicked field 309 would be non-zero. In this case, the authorization engine 112 may challenge the access by prompting the new visitor for an authorized email address (step 517). If the e-mail address provided by the new visitor matches (step 519) the original e-mail address of the recipient of the message 153, a new message with a new authorization code 209 is sent (step 521). In this case, the counter is incremented in both the authorization code (count 232) and the counter field 307. If the e-mail address provided by the new visitor does not match the original e-mail address, the new visitor's access is rejected, and the new visitor is prompted to request authorization from the site owner (step 523).
Addressing now the issue of images, it will be appreciated that conventional e-mail clients are not capable of delivering a cookie with a request for a resource pointed to by a URL. Thus, if the e-mail message 153 includes an image 157 pointed to with a link of the type described above, the authorization engine 112 will be unable to store an authorization cookie on the client computer 150 that can be used by the e-mail client 152. Thus, to address this case, if a request for the image 157 is received by the authorization engine 112, it sets the open field 311 in the associated record for that link to indicate that the image has been retrieved from the server 110. In addition, the authorization engine 112 will store some form of identifying information (the requesting IP address in this implementation) in authorization table 114. If the IP address is used (IP address field 313), subsequent requests for the image originating either from the same IP address or from an IP address sufficiently similar to the same IP address will be authorized.
The system 100 may also provide a multiple configuration mechanism so site owners can balance security versus convenience for their users. The mechanism can be configured for less security, such as authorizing everybody (regardless of whether invited), but log their access (step 505). Alternatively, the mechanism can be configured for greater security, where new visitors are required to confirm their email address each time they click on a link on in email message (step 530).
The system 100 may also implement audit information for each message sent and for each request associated with a clicked link. This way it is possible to know if an e-mail message was accessed from a single computer and if it was forwarded to others. Moreover, the system 100 may be configured to transmit an authorization code to authorized users in conjunction with any communication with the users, not only in conjunction with invitations to authorize other users.
Process and function descriptions and blocks in flow charts can be understood as representing, in some embodiments, modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the preferred embodiment of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention. In addition, such functional elements can be implemented as logic embodied in hardware, software, firmware, or a combination thereof, among others. In some embodiments involving software implementations, such software comprises an ordered listing of executable instructions for implementing logical functions and can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a computer-readable medium can be any means that can contain, store, communicate, propagate, or transport the software for use by or in connection with the instruction execution system, apparatus, or device.
The preceding description has been presented for purposes of illustration only, and is not intended to be exhaustive or to limit the claims to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiments were chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to develop various embodiments with various modifications as are suited to the particular use contemplated.
This application claims priority to co-pending U.S. Provisional Patent Application Nos. 60/961,062 entitled System and Method to Authenticate, Authorize and Serve Images On Private Email Messages and 60/961,061 entitled System and Method to Authenticate and Authorize Private Links Through Email Messages, both filed Jul. 19, 2007 and both of which are hereby incorporated by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
60961062 | Jul 2007 | US | |
60961061 | Jul 2007 | US |