The present invention relates to a method and system for authenticating servers of content-providers that provide content-data, such as webpage data, to client computers over a communications network, such as the Internet.
As online banking and other transactions of value have increased in popularity over the Internet, users have been fooled or coerced into revealing bank account details, passwords and other personal details to unauthorized people who may use this information dishonestly. This technique, often now referred to as “phishing” may be initiated from an e-mail supposedly from a bank or other financial or commercial institution, such as an e-trader, sent to an ostensible customer with a link to a website where there is a request to enter personal or bank details, passwords or PIN numbers. This website may be an exact copy of a valid site belonging to the correct financial or commercial institution, or may be an entirely valid site of such institution with a fraudulent pop-up window that requests details or uses other means to deceive the customer concerned.
Other phishing methods include inserting rogue computer code or object into legitimate pages by methods, which include proxy servers, packet manipulation and installation of software or devices on a client computer. It has also been known for fraudsters to adopt similar URL's (uniform resource locators) to a genuine business to fool people into thinking they are on a legitimate site. For example, the URL Onlinebank.com, with an initial “0” (zero) rather than an initial “0” may be used to deceive people into believing they have reached the site of Onlinebank.com.
Still further methods include setting up totally fraudulent web sites pretending to be legitimate or non-existent charities or commercial organizations to fool users into donating monies to or purchasing goods from fraudulent organizations, which have not necessarily been reached via invitation from e-mails.
Numerous prior proposals have been made with a view to improving security on the Internet and avoiding or frustrating phishing, but none have been entirely satisfactory.
For example, WO 2004/055632 describes a system in which a complex algorithm is employed to determine whether a particular URL may be trusted or not. This analysis may take account of content and layout of a web page, age and size of the website and the number of hyperlinks and scores the web page under each of these headings to give a determination as to whether the web page can likely be trusted or likely not be trusted. On the basis of this analysis, the URL of the web page is added to a trusted list or a distrusted list maintained by the client computer. Nevertheless, a fraudulent website will often appear as an exact copy of a legitimate site and therefore be added to the list of trusted sites.
In a first aspect, the present invention provides a method of authenticating a content-provider server comprising: determining a domain name of the content-provider server; obtaining a fragment of a database of IP addresses, the fragment corresponding to the domain name of the content-provider server and storing one or more IP addresses associated with the domain name; comparing the IP address of the content-provider server against the IP addresses of the fragment; and providing an indication that the IP address of the content-provider server is included or excluded from the fragment of IP addresses.
Preferably, the fragment is stored on a remote server and obtaining the fragment comprises requesting from the server a copy of the fragment and receiving from the server a copy of the fragment.
Advantageously, the fragment is stored on the server as a file having a filename that is, unique to the domain name of the content-provider server and requesting a copy of the fragment from the server comprises requesting a file having a filename that is unique to the domain name of the content-provider server.
Conveniently, the filename of the fragment is unique to both the domain name of the content-provider server and a domain name of the server on which the fragment is stored. Preferably, the filename of the fragment is encrypted using encryption keys derived from the domain name of the content-provider server and the domain name of the server on which the fragment is stored.
Advantageously, the fragment stores one or more authenticated IP addresses and one or more non-authenticated IP addresses and the method comprises providing an indication that the IP address of the content-provider server is an Authenticated IP address, a non-authenticated IP address, or neither.
Conveniently, the method comprises: storing a database of authenticated IP addresses and a database of non-authenticated IP addresses; appending the IP addresses of the fragment to at least one of the database of authenticated IP addresses and the database of non-authenticated IP addresses; comparing the IP address of the content-provider server against the database of authenticated IP addresses and the database of non-authenticated IP addresses; and providing an indication that the IP address of the content-provider server is an authenticated IP address, a non-authenticated IP address, or neither.
Preferably, the method comprises: obtaining a list of non-authenticated IP addresses from a remote server; and comparing the IP address of the content-provider server against the IP addresses of the fragment and the list of non-authenticated IP addresses.
Advantageously, the method comprises: storing a database of authenticated IP addresses and a database of non-authenticated IP addresses; appending the IP addresses of the fragment to at least one of the database of authenticated IP addresses and the database of non-authenticated IP addresses; appending the list of non-authenticated IP addresses to the database of non-authenticated IP addresses; comparing the IP address of the content-provider server against the database of authenticated IP addresses and the database of non-authenticated IP addresses; and providing an indication that the IP address of the content provider server is an authenticated IP address, a non-authenticated IP address, or neither.
Conveniently, the content-provider server has a hostname and the method comprises: obtaining first data from the hostname; resolving the IP address of the hostname; obtaining second data from the resolved IP address; comparing the first data and second data; and providing an indication that the first data and second data are identical or non-identical.
Preferably, the fragment includes one or more URLs or portions of URLs associated with each IP address stored by the fragment, and the method comprises: comparing at least a portion of the URL of the content-provider server against the URLs or portions of URLs of the fragment that are associated with the IP address of the content-provider server; and providing an indication that the IP address and the portion of the URL of the content-provider server is included in or excluded from the fragment.
In a second aspect, the present invention provides a client computer connectable to a content-provider server over a communications network, wherein the client computer is operable to: determine a domain name of the content-provider server; obtain a fragment of a database of IP addresses, the fragment corresponding to the domain name of the content provider server and storing one or more IP addresses associated with the domain name; compare the IP address of the content-provider server against the IP addresses of the fragment; and provide an indication that the IP address of the content-provider server is included or excluded from the IP addresses of the fragment.
Preferably, the client computer is operable to request data from the content-provider server and to obtain the fragment in response to the request for data from the content-provider server.
Advantageously, the client computer is operable to: request data from the content-provider server; determine whether data from the content-provider server has previously been requested; and to obtain the fragment if data from the content-provider has not previously been requested.
Conveniently, the client computer is operable to retrieve the fragment from a server over the communications network, and the fragment is stored on the server as a file having a filename that is unique to the domain name of the content-provider server.
Preferably, the fragment is stored on a security server.
More preferably, the client computer is operable to determine whether the fragment of IP addresses stored on the server has changed and to retrieve from the server the fragment if it is determined that the fragment has changed.
Advantageously, the filename of the fragment is unique to both the domain name of the content-provider server and a domain name of the server on which the fragment is stored.
Conveniently, the filename of the fragment is encrypted using encryption keys derived from the domain name of the content-provider server and the domain name of the server on which the fragment is stored.
Preferably, the fragment stores one or more authenticated IP addresses and one or more non-authenticated IP addresses and the client computer is operable to provide an indication that the IP address of the content-provider server is an authenticated IP address, a non-authenticated IP address, or neither.
Advantageously, the client computer stores a database of authenticated IP addresses and a database of non-authenticated IP addresses, and the client computer is operable to: append the IP addresses of the fragment to at least one of the database of authenticated IP addresses and database of non-authenticated IP addresses; compare the IP address of the content-provider server against the database of authenticated IP addresses and the database of non-authenticated IP addresses; and provide an indication that the IP address of the content-provider server is an authenticated IP address, a non-authenticated IP address, or neither.
Conveniently, the client computer is connectable to a security server over the communications network, and the client computer is operable to obtain a list of non-authenticated IP addresses from the security server and to the compare the IP address of the content-provider server against the IP addresses of the fragment and the list of non-authenticated IP addresses.
Preferably, the client computer stores a database of authenticated IP addresses and a database of non-authenticated IP addresses, and the client “computer is operable to: append the IP addresses of the fragment to at least one of the database of authenticated IP addresses and database of non-authenticated IP addresses; append the list of non-authenticated IP addresses to the database of non-authenticated IP addresses; compare the IP address of the content-provider server against the database of authenticated IP addresses and the database of non-authenticated IP addresses; and provide an indication that the IP address of the content-provider server is an authenticated IP address, a non-authenticated IP address, or neither.
Advantageously, the client computer is operable to: obtain data from the content-provider server that includes a link to a further content-provider server; compare the IP address of the further content-provider server against the IP addresses of the fragment, and provide an indication that the IP address of the further content-provider server is included or excluded from the received database of IP addresses.
Conveniently, the content-provider server has a hostname and the client computer is operable to: obtain first data from the hostname; resolve the IP address of the hostname; obtain second data from the resolved IP address; compare the first data and second data; and provide an indication that the first data and second data are identical or non-identical.
Preferably, the fragment includes one or more URLs or portions of URLs associated with each IP address stored by the fragment, and the client computer is further operable to: compare at least a portion of the URL of the content-provider server against the URLs or portions of URLs of the fragment that are associated with the IP address of the content-provider server; and provide an indication that the IP address and the portion of the URL of the content-provider server is included in or excluded from the fragment.
Preferably, the fragment stores IP addresses associated with a URL.
Advantageously, the client computer is operable to provide a visual indication that the content-provider server is a trusted or non-trusted site.
Conveniently, the client computer operates a window-based operating system and the client computer is operable to determine whether an active window of the operating system is executing an application capable of requesting data from the content-provider server, and the client computer is operable to compare the IP address of the content-provider server and to provide an indication that the IP address of the content-provider server is included or excluded from the IP addresses of the fragment if it is determined that an active window is executing an application capable of requesting data from a content-provider server.
In a third aspect, the present invention provides a method of operating a client computer connectable to a content-provider server over a communications network, the method comprising: determining a domain name of the content-provider server; obtaining a fragment of a database of IP addresses, the fragment corresponding to the domain name of the content-provider server and storing one or more IP addresses associated with the domain name; comparing the IP address of the content-provider server against the IP addresses of the fragment; and providing an indication that the IP address of the content-provider server is included or excluded from the IP addresses of the fragment.
In a fourth aspect, the present invention provides a computer program or suite of computer programs, which may be provided on a computer-readable storage medium, executable by a client computer to perform the above method.
In a fifth aspect, the present invention provides a security server connectable to a client computer over a communications network, the security server storing a database of IP addresses as a plurality of fragments, each fragment corresponding to a domain name and storing IP addresses associated with the domain name, and the security server is operable to receive a request from the client computer for a fragment, and to deliver the requested fragment to the client computer.
Preferably, the security server stores each fragment as a file having a filename that is unique to the domain name to which the fragment corresponds, and the security server is operable to receive a request from the client computer for a fragment having a particular filename, and to deliver the fragment having the particular filename to the client computer.
Advantageously, the filename of the fragment is unique to both the domain name to which the fragment corresponds and to a domain name of the security server on which the fragment is stored.
Conveniently, the filename of the fragment is encrypted using encryption keys derived from the domain name to which the fragment corresponds and the domain name of the server on which the fragment is stored.
Preferably, the security server is connectable to a content-provider server over the communications network and the security server is operable to: receive one or more IP addresses from the content-provider server; and store the received IP addresses as a fragment, the fragment corresponding to a domain name of the content-provider server.
Advantageously, the security server stores a database of authenticated IP addresses and a database of non-authenticated IP addresses as a plurality of fragments.
Conveniently, the security server stores a database of authenticated IP address as a plurality of fragments, each fragment corresponding to a domain name and storing authenticated IP addresses associated with the domain name, and a database of non-authenticated IP addresses, and the security server is operable to: receive a request from the client computer for a fragment of the database of authenticated IP addresses; deliver the requested fragment to the client computer; receive a request from the client computer for the database of non-authenticated IP addresses; and deliver the database of non-authenticated IP addresses to the client computer.
Preferably, the security server is operable to receive a request from the client computer that includes information identifying a domain name of a content-provider server, and to deliver to the client computer a fragment corresponding to the identified domain name.
Advantageously, each fragment stores IP addresses associated with a URL.
In a sixth aspect, the present invention provides a method of operating a security server connected to a client computer over a communications network, the method comprising: storing a database of IP addresses as a plurality of fragments, each fragment corresponding to a domain name and storing IP addresses associated with the domain name; receiving a request from the client computer for a fragment; and delivering the requested fragment to the client computer.
In a seventh aspect, the present invention provides a computer program or suite of computer programs, which may be provided on a computer-readable storage medium, executable by a server computer to perform the above method.
In an eighth aspect, the present invention provides a client computer connectable to a content-provider server and to a security server over a communications network, the security server storing a database of IP addresses as a plurality of fragments, each fragment corresponding to a domain name and storing IP addresses associated with the domain name, and the client computer is operable to: determine the domain name of the content-provider server; obtain from the security server a fragment of the database of IP addresses corresponding to the domain name of the content-provider server; compare the IP address of the content-provider server against the received fragment of IP addresses; and provide an indication that the IP address of the content-provider server is included or excluded from the received fragment of IP addresses.
The term ‘window-based operating system’ as used herein is intended to encompass any operating system that makes use of windows in a graphic display, usually only one such window being active at anyone time, and sometimes only one such window being visible on a graphic display at anyone time. Examples of window-based operating systems include Microsoft Windows®, the various Macintosh® operating systems, as well as a variety of other window-based operating systems employed by various hand-held computer devices and third and higher generation mobile phones.
Highly sophisticated fraudsters have been known to engage in what is known as “IP address spoofing”. In this case, even when a webpage is sent to the client computer and the IP address has been checked and may be found to be an authenticated IP address, it may still be possible for a fraudulent site to have produced it. This is because it is possible to configure a web server to send information that appears to emanate from a different IP address to the one it actually comes from. However, this possibility can be readily overcome. If the apparently authenticated IP address is sent in substitution for the hostname or domain-name part of the URL, the apparently validated IP address can be authenticated for certain. If the same or similar content-data (e.g. webpage data) is returned then it follows that the content-data has come from a certainly authenticated IP address. If no reply is received or a totally different reply, then it can readily be surmised that the original content-data did not originate from the apparently authenticated IP address but from an altogether different fraudulent site. In this case, a danger warning should be given to override any other indication that might otherwise seem appropriate.
In order that the present invention may be more readily understood, embodiments thereof will now be described, by way of example, with reference to the accompanying drawings in which:
Each content-provider server 3 has at least one IP address and stores content-data, such as HTML files, Java applets, sound and image files, etc., for downloading by the client computer 1. The present invention is particularly concerned with content-provider servers 3 that require user authorization from the client computer 1. For example, the content-provider server 3 may be an online bank, and content-data relating to a particular account holder, such as a statement of account, is provided only upon receipt from the client computer of a username and password. Alternatively, the content-provider server may be an online shop, whereupon goods may be purchased only upon receipt of the purchaser's credit or debit card details.
The content-data of a content-provider server 3 is generally accessed by way of a uniform resource locator (URL), e.g. www.onlinebank.com/homellogin.shtml. The URL comprises a hostname and a path or filename, which in the present example are www.onlinebank.com. and ‘/homellong.shtml’ respectively. The hostname comprises a domain name, such as a fully qualified domain name or a sub-domain. URLs and IP addresses are related but are not directly equivalent to each other. Thus, when a web browser requests content-data from the URL www.onlinebank.com/homellogin.shtml. a domain name server (ONS) looks up and converts the hostname part of the URL into an IP address, such as 207.46.250.222 or whatever the appropriate IP address may be. Owing to domain-name aliasing, different hostnames may point to the same IP address. For example, www.onlinebank.co.uk or www.onlinebank.net may point to the same IP address as that of www.onlinebank.com. Moreover, stealth redirection means that a user accessing the same URL may be redirected to a different IP address on different occasions, even though the same hostname appears in the URL. Consequently, a user requesting content-data from a content-provider server 3, e.g. by entering a URL into his web browser, is generally unaware of the actual IP address and thus the actual server 3 providing the content-data.
As shown in
The database of non-authenticated IP addresses 6 lists IP addresses that have been identified as fraudulent or potentially insecure, i.e. the database 6 lists IP addresses of content provider servers 3 that are not to be trusted. It is preferred that non-authenticated IP addresses be provided to the security server 4 by an organization of assured status and integrity, such as a police authority or other government authority responsible for monitoring fraud, a banking authority, or other authoritative body outside of the commercial control of the security provider responsible for the security server 4.
In a particular embodiment, a single assured organization is responsible for maintaining the non-authenticated database 6. The assured organization may deliver the entire database 6, or portions of the database 6 that have changed, to the security server 4. Alternatively, the security server 4 may retrieve the entire database 6, or portions of the database 6 that have changed, from the assured organization. Delivery or retrieval may occur periodically or whenever a change occurs to the database 6.
In an alternative embodiment, several assured organizations are responsible for maintaining the non-authenticated database 6. In this instance, each assured organization provides a portion of the non-authenticated database 6 stored on the security server 4. Each portion may be delivered to the security server 4 by the assured organization, or the security server 4 may retrieve the portion from the assured organization at periodic intervals.
The database of authenticated IP addresses 7 lists those IP addresses that have been provided by subscribers to the security server 4. Each subscriber is typically a content-provider that wishes to register its servers on the security server 4. For example, the subscriber may be the company OnlineBank, which provides a list of all its IP addresses. Each subscriber provides a portion of the authenticated database 6, which may be delivered to the security server 4 by the assured organization, or the security server 4 may retrieve the portion from the subscriber at periodic intervals.
In a particular embodiment, the subscriber may also provide a list of IP addresses that it regards as untrustworthy and should therefore be added to the database of non-authenticated IP addresses 6. However, maintenance of the database of non-authenticated IP addresses 6 is preferably carried out by assured organizations only.
The client computer 1, as illustrated in
The client computer 1 preferably includes a web-browser (e.g. as part of the operating system or stored separately in memory 13) for receiving content-data from the content-provider servers 3. However, any application-software suitable for receiving content-data from a content-provider server 3 (e.g. a file-browser or e-mail client operating in http, https, ftp, or similar protocol) may equally be used. Preferably, the web-browser or application-software is suitable for receiving user-authorization data from the user-input device 11 and for transferring the user-authorization data to a content-provider server 3.
The memory 13 stores a server-authentication application 15, which is executable by the processor 10. The server-authentication application 15 includes instructions for receiving (e.g. downloading) from the security server 4 the entire non-authenticated database 6 and preferably the entire authenticated database 7. The server-authentication application preferably provides the user with the opportunity to receive new, updated or refreshed databases 6,7 from the security server 4 automatically, periodically without intervention of the user of the client computer 1, or by connection to the security server 4 at specified intervals or at times entirely at the option of the user. The received databases are then stored in memory 13. For the purposes of clarity, the databases stored on the client computer 1 shall be referred to hereafter as the client-database of non-authenticated IP addresses 16 (or alternatively the non-authenticated client-database) and the client-database of authenticated client database 17 (or alternatively the authenticated client-database).
Referring to
However, if the new active window is, indeed, a web-browser or other application capable of transferring data across the communication network 5, the server-authentication application 15 checks the authentication of the content-provider server 3 from which the web-browser is requesting data. This is achieved by first converting at 23 the hostname portion of the URL of the content-provider server 3 into an IP address. There are a number of ways in which this can be done and persons skilled in this art will be aware of all of these. In the simplest arrangement, the hostname portion of the URL is converted into an IP address using a DNS server.
Once the IP address of the content-provider server 3 has been obtained, the IP address is checked 24 against the client-database of non-authenticated IP addresses 16 and the client-database of authenticated IP addresses 17, if present. If the IP address appears 24a in the client-database of non-authenticated IP addresses 16, a warning is provided 25 on the 30 VDU 12 that the user would be wise to ignore any content-data (e.g. webpage data) downloaded from the relevant content-provider server 3. If the IP address appears 24b in the client-database of authenticated IP addresses 17, an indication is provided 26 that it is fine to proceed. The indication may include a visual logo or other indicia of a content-provider such that the user is able to easily and quickly identify that the content-provider server 3 is authentic. If the IP address does not appear in either of the client-databases 16,17, a cautionary warning is preferably provided 27 to the user. Although here shown as visible indications, any of these warnings/indications may alternatively or additionally be given audibly.
Visible messages may be conveyed in a variety of different ways. Preferably warnings or cautions are given by means of a status window, such as those shown at 25, 26 and 27 in
An example of a more complex on-top status window is illustrated in
In this example, if the user clicked on to the window corresponding to the red “Warning” indication, this would then become the active window, and the system may then run through the steps of the logic flow diagram of
Warning indications may also, or alternatively, be displayed on the task bar or docking bar at the edge (e.g. bottom) of the display screen, as indicated in
By these means the user is at all times informed as to the nature of the active window of his browser and unless he chooses to ignore the warnings given, the server-authentication application 15 will help to prevent fraudulent extraction of personal details, such as bank information that can be used illegally. It will be appreciated that the system also gives assurance to a user, when a particular content-provider server 3 is confirmed as having an IP address on the authenticated client-database 16, the content-data from that server 3 (e.g. webpage data) may be trusted.
The server-authentication application 15 may optionally be configured so that the user can only proceed after a danger warning has been expressly acknowledged by the user, e.g. by means of an optional warning pop-up window which the user has to acknowledge.
Preferably, the server-authentication application 15 determines whether the hostname of the URL of the active window relates to a content-provider server 3 external to a local network, i.e. that the hostname relates to an Internet domain-name and not, for example, to a local hostname. If the application 15 determines that the hostname of the active window relates to a local network, the application 15 preferably provides a ‘Local Network’ indication on the VDU 12. Additionally, if the active window is executing an application that is resident on the client computer or if the application of the active window is accessing content-data resident on the client computer 1, the server-authentication application preferably displays ‘Not Analysed’ on the VDU; an icon or similar graphic, indicating the application that is executing in the active window, may also be displayed. Accordingly, the server-authentication application continually provides a user-indication of the status of the active window.
The content-data stored on a content-provider server 3 may include a link to content-data stored on another content-provider server having a different IP address. For example, webpage data of a first content-provider may include a frame that links to information provided by a second content-provider. A typical example of this is in the use of framed advertisements within a webpage. A fraudster may use the concept of frames to provide a content-provider server that first links to content-data provided by a legitimate site (e.g. a bank) and also to content-data provided by a fraudulent site. The content-data of the fraudulent site may appear as a framed advertisement which surreptitiously monitors all data traffic between the client computer 1 and the legitimate site. Accordingly, a user may be presented with a webpage that is obtained from a legitimate site, and therefore looks and behaves as a legitimate webpage, whilst the fraudulent frame within the webpage monitors any user-authorization data entered by the user. Alternatively, a fraudulent site may include a frame to a legitimate site to show apparent authenticity, or the fraudulent site may include a frame that mimics legitimate content, e.g. the fraudulent site may include a frame that appear as a complete webpage of a legitimate site, although it is in reality a frame.
The server-authentication application 15 therefore preferably resolves and checks the IP addresses of all hostnames of content-provider servers from which content-data is retrieved by the client computer 1. In other words, the server-authentication application 15 does not only resolve and check the IP address of the hostname of the URL that appears in the active window, but also any hostnames that are embedded within the content-data retrieved from the URL. For example, if the webpage www.onlinebank.com/home.html includes a link to www.onlineshop.com/logo.html then the server-authentication application 15 resolves and checks the IP addresses of both www.onlinebank.com and www.onlineshop.com.
It is possible that a subscriber may wish to include within its content-data an advertisement from a content-provider that is not a subscriber to the security server 4. In this instance, the IP address of the subscriber will appear in the authenticated database 7, but the IP address of the advertiser will not. Consequently, when the user visits the legitimate site of the subscriber, a warning is nevertheless provided by the server-authentication application 15. In order to prevent this from occurring, the related information 9 of the database of authenticated IP addresses 7 may include IP addresses of third-party servers that are regarded by the subscriber as legitimate for the purposes of inclusion within its content-data. The server-authentication application 15 then checks the IP address of the main hostname against the list of IP addresses 8 of the authenticated database 17. If the IP address is found within the database 17, then any hostnames that are embedded within the content-data retrieved from the main hostname are then resolved and checked against the third-party IP addresses stored in the related-information 9.
A content-provider server 3 may store both non-fraudulent and fraudulent content-data. In particular, a content-provider server 3 may host different websites. For example, the content-provider server 3, www.freewebsite.com. may host the website of John, www.freewebsite.com/John/home.html. and the website of Peter, www.freewebsite.com/Peter/home.html. Whilst John provides a legitimate website, the website provided by Peter is a spoof website. Since the hostname of both websites is the same, the resolved IP address of each website will also be the same. Consequently, both websites are treated equally by the server-authentication application 15. The legitimate website provided by John may therefore be reported as a fraudulent site or, alternatively, the spoof site provided by Peter may be reported as a legitimate site. In order to prevent this situation from occurring, the database of non-authenticated IP addresses 6 and the database of authenticated IP addresses 7 preferably store not only IP addresses but also the URL or part of the URL associated with the IP address. For example, if the IP address of www.freewebsite.com is 121.202.327.75, the database of non-authenticated IP addresses 6 might store the IP address 121.202.327.75 and the path ‘\Peter’ and/or the filename ‘\Peter\home.html’, whilst the database of authenticated IP addresses 7 might store 121.202.327.75 and ‘\John’ and/or ‘\John\home.html’. The server authentication application 15 is then operable to check both the IP address and also at least part of the URL against the corresponding client-databases 16, 17. Only if both the IP address and at least part of the URL appear in the client-databases 16, 17 is a warning 25 or indication 26 provided.
The database of non-authenticated IP addresses 6, the client-database of non-authenticated IP addresses 16, and any fragment 18 may store only the domain name, URL or part of a URL of a particular content-provider server 3. In this case, the IP address of the domain is stored in the database 6,16 or fragment 18 as a series of asterisks (i.e. ***.***.***.***) or some other artificial IP address (e.g. 999.999.999.999), which the server authentication application 15 uses to identify a server as having no specific or fixed IP address. For example, the website www.falsewebsite.com may change its IP address frequently in order to avoid detection. If the IP address of a content-provider server 3 is not found in the client-S database of non-authenticated IP addresses 16, the domain name, URL or part URL of the content-provider server 3 is then compared against each of the entries in the client-database 16 having an artificial IP address. If the domain name, URL or part URL of the content provider server 3 appears in the client database 16, a suitable warning is provided 25. Alternatively, the comparison of domain names, URL or part URL may be carried out before the comparison of IP addresses. By storing the domain name, URL or part URL of content provider servers 3 that employ frequently-changing IP addresses, the server authentication application 15 is still able to identify fraudulent content providers.
In the most preferred arrangement, the server-authentication application 15 also guards against IP-address spoofing when the IP address, having been checked, may appear on the authenticated client-database 17 or on neither of the authenticated and non-authenticated client-databases 16,17, and yet the content-data (e.g. webpage data) may still emanate from a fraudulent source. A sophisticated fraudster can configure a content-provider server 3 to send content-data that appears to emanate from a different IP address to the one it actually does come from. To overcome this, in the most preferred arrangement, when the check carried out at 24 shows either that the IP address of the active window appears on the client database of authenticated IP addresses 17, or that the IP address of the active window does not appear on either of the client-databases 16, 17, and so could still possibly be a legitimate site, a further short routine is performed, as illustrated in
The apparently authenticated IP address or the IP address that does not appear on either client-database 16 or 17 is substituted at step 40 for the hostname portion of the URL, and a request for the content-data of the URL is sent. Thus, for example, if the web-browser receives content-data (e.g. a webpage data) claiming to be from www.mybank.com/customer/data/home.html and the server-authentication application 15 ascertains at 23 in the flow diagram of
However, if different content-data is provided (Le. if the webpage appears different) as a result of the resending request 40 as indicated at 43, or if no reply is provided 44, then the server-authentication application 15 draws the implication at step 45 that the content-provider server 3 is likely to be illegitimate, notwithstanding that the original apparently derived IP address at step 23 may have indicated an IP address that appeared on the authenticated client-database 17 (or did not appear on either client-database 16, 17 and so could possibly be legitimate). Accordingly, in event 45, rather than displaying either the “OK to proceed” indication 26 or the “Proceed with caution” indication 27, the clear “Warning” indication 25 is displayed.
Additionally, or alternatively, the server-authentication server 15 may alert the user to spoofing by displaying the actual hostname or URL, as well as the IP address, of the content-data or content-provider server 3 such that the user can immediately identify whether the actual hostname or URL corresponds to that which appears in the active window.
In the above-described embodiment, the server-authentication application 15 receives (e.g. downloads) from the security server 4 the entire database of non-authenticated IP addresses 6 and also the entire database of authenticated IP addresses 7. As the number of subscribers to the service provided by the security server 4 increases, the size of the authenticated database 7 will naturally increase. With sufficient numbers of subscribers, the size of the authenticated database 7 may become excessively large such that too much time is spent by the client computer 1 in receiving the database 7. Moreover, it is unlikely that a user will download content-data from each and every one of the subscribers having IP addresses stored in the database 7.
Accordingly, in an alternative embodiment as illustrated in
The database of non-authenticated IP addresses 6, like that of the authenticated database 7, may also comprise a plurality of fragments 18, each fragment 18 corresponding to a particular domain 19 and storing IP address 8. Preferably, each fragment 18 comprises both a list of non-authenticated IP addresses and a list of authenticated IP addresses 8. Consequently, a content-provider is able to provide a fragment 18 that stipulates which sites (i.e. IP addresses) it considers to be genuine and which sites is considers to be fraudulent. When the fragment 18 is received (e.g. downloaded) by the server-authentication application 15, the relevant portions of the fragment (e.g. the lists of non-authenticated and authenticated IP addresses) are extracted and added to the client databases 16, 17.
In this alternative embodiment, the server-authentication application 15 includes instructions to determine the hostname of the URL of the active window. The application 15 then compares the hostname against the client-database of authenticated IP addresses 17. If a fragment corresponding to the hostname is found in the client-database 17, the IP address of the hostname is resolved and compared against the IP addresses listed for that fragment, in the manner described above.
If, however, no fragment 18 corresponding to the hostname can be found in the client-database of authenticated IP addresses 17 (e.g. if no fragments having the same domain as that of the hostname are found), then preferably a similar search is made of the server database of authenticated IP addresses 7. In particular, the server-authentication application 15 establishes a connection with the security server 4 and compares the hostname of the content-provider server 3 against the server-database fragments. If a fragment 18 corresponding to the hostname is found in the server-database of authenticated IP addresses 7, the relevant fragment is delivered to the client computer 1. The IP address of the hostname is then resolved and compared against the IP addresses listed in the fragment, in the manner described above. The received fragment is then added to the existing client-database 17 for future use. If no fragment 18 corresponding to the hostname of the content-provider server 3 can be found in the server-database fragments, the server-authentication application 15 provides as an indication (e.g. the “Proceed with caution”) that the authenticity of the content-provider server 3 could not be verified.
Rather than comparing the hostname of the active window URL against fragments of the client-database 17, the client computer 1 may alternatively store a database of visited servers in memory 13. The database of visited servers stores a list of hostnames of content-provider servers 3 that have previously been accessed by the client computer 1, or alternatively a list of domains of content-provider servers 3 that have been accessed. The hostname of the URL is then compared against the database of visited servers. If a match is found, the IP address of the hostname is resolve and compared against the IP addresses listed in the clientdatabase 17 in the manner described above. If, however, a match is not found, then the hostname is added to the database of visited servers by the server-authentication application 15. The application 15 then establishes a connection with the security server 4 and compares the hostname against the server-database of authenticated IP addresses 7. If a fragment 18 corresponding to the hostname is found in the server-database of authenticated IP addresses 7, the relevant fragment is delivered to the client computer 1 whereupon the received fragment is added to the existing client-database 17. The IP address of the hostname is then resolved and compared against the IP addresses listed in the client-database 17 in the manner described above.
Where the client-database of authenticated IP addresses 17 is stored as fragments 18, it is possible for the authenticated client-database 17 to become outdated. For example, once the fragment for ‘onlinebank.com’ is added to the client-database 17, is it possible for the server-authentication application 15 to re-authenticate the site ‘onlinebank.com’ at a later date without having to rely upon the security server 4. In order to prevent the authenticated client-database 17 from becoming outdated, the server-authentication application 15 may periodically refresh fragments 18 and retrieve once again the fragments 18 from the security server 4. The related-information 9 associated with each fragment may include a creation or expiry date, which is used by the server-authentication application 15 to determine when to refresh the fragment or, alternatively, delete the fragment from the client-database 17. Similarly, where the client computer 1 stores a database of visited servers, each entry in the database may include a creation or expiry date, which is again used by the server-authentication application 15 to determine when to refresh the entry and corresponding fragment or, alternatively, delete the entry from the database.
In a further embodiment, fragments 18 associated with a particular domain may be stored on a content-provider server 3 of a subscriber. For example, the fragment for ‘onlinbank.com’ may be stored on a server provided by OnlineBank in addition to or rather than the security server 4. In this embodiment, the server-authentication application 15 then receives the relevant fragment from the content-provider server 3 rather than the security server 4. Preferably, the relevant fragment is received (e.g. downloaded) from the content-provider server 3 in response to the client computer 1 requesting content-data from the content-provider server 3, e.g. when attempting to view webpage data. Similarly, the database of non-authenticated IP addresses 6 may be additionally or exclusively stored on a server of an assured organization. Indeed, the server-authentication application 15 may present the user with the option of receiving (e.g. downloading) fragments/databases exclusively from the security server 4 or additionally from the server of the relevant content-provider/organization if the fragment/database is unavailable from security server 4.
Although each fragment 18 may comprise a list of non-authenticated IP addresses in addition to a list of authenticated IP addresses 8, the fragment 18 and therefore the list of non-authenticated IP addresses list is obtained only after receiving (e.g. downloading) the fragment from the content-provider server 3. It is therefore possible that the client-database of non-authenticated IP addresses 16 will not include information on known fraudulent sites until such time as the content-provider server 3 has been visited and the fragment 18 obtained. Accordingly, the server-authentication application 15 preferably also receives from the security server 4, or other assured organization, the database of non-authenticated IP addresses 6 at regular intervals in addition to any fragments that may have been received. Rather than receiving the entire database 6, the server-authentication application 15 may check regularly for updates that become available. As already noted, the server-authentication application 15 preferably provides the user with the opportunity to receive a new, updated or refreshed database 6 from the security server 4 at periodic intervals.
The databases 6,7, as well as any fragments 18, are preferably encrypted using a proprietary 256-bit encryption having keys derived from the domain name of the server 3,4 storing the database 6, 7 or fragment 18 and the domain name from which the database 6,7 or fragment 18 is received by the server-authentication application 15. Accordingly, the server authentication application 15, upon decrypting the received databases 16, 17 or fragments 18, is able to determine whether the databases 16, 17 or fragments were received from the correct source and that the data contained therein is self-consistent. Additionally, in the case of fragments 18, the server-authentication application 15 is able to determine that the received fragment contains information corresponding to the correct domain. Even if a fraudster were to download an encrypted database 6, 7 or fragment 18 and, with significant computing power, decrypt the database 6, 7 or fragment 18 with the intention of inserting false IP addresses, the fraudster would not know the relevant key to re-encrypt the database 6, 7, or fragment 18 in order to, for example, place the fake encrypted database 6, 7 or fragment 18 on a spoof server. Encryption therefore prevents a spoof site creating an apparently, valid database 6, 7, or fragment 18.
In addition to encrypting the contents of the fragments 18, the filename of each fragment 18 may also be encrypted. For example, the fragment 18 corresponding to the domain 19 onlinebank.com may be stored on the security server 4 or a specific content-provider server 3 as a file called hqofmnn9hc64pxvk.xml, which has no apparent relation to the actual domain name. The filename of the fragment 18 is preferably encrypted using a first key based upon the domain 19 to which the fragment 18 relates (e.g. onlinebank.com) and a second key based upon the domain of the security server 4 or the specific content-provider server 3. The filename of the fragment 18 will therefore be different when stored on different servers. In order to retrieve a fragment 18, the server-authentication application 15 first resolves the fragment filename using the domain 19 to which the fragment 18 relates and the domain of the server 3, 4 storing the fragment 18. The server-authentication application 15 then retrieves (e.g. downloads) from the server 3, 4 a file having the resolved filename. Since the filename of the fragment depends upon the domain of the server storing the fragment, a fragment copied from a first server to a second server (e.g. from the security server 4 to a fraudulent server) will not be found by the server-authentication application 15.
The server-authentication application 15 may store a history database of recently visited sites, i.e. a list of content-provider servers 3 from which content data has recently been retrieved by the client computer 1. By way of example, the history database may include a list of all content-provider servers 3 that have been visited in the last month. When the server-authentication application 15 is idle, the application 15 may retrieve fragments 18 corresponding to those content-provider servers 3 that are listed in the history database. In this manner, the fragments 18 of content-provider servers 3 that are likely to be revisited are kept up-to-date such that no noticeable delay is observed by the server-authentication application 15 when the content-provider servers 3 are revisited. The history database preferably includes information regarding the date and/or time on which the fragment 18 corresponding to a particular content-provider server 3 was last retrieved or updated. The server-authentication application 15 then retrieves only those fragments 18 where the authenticity of the fragment 18 has timed-expired.
The server-authentication application 15, which is the software necessary to configure a client computer 1 to operate in the manner described above and to provide security against phishing over the communications network 5, may be provided as a single computer program or suite of computer programs, which may be provided on a computer-readable data storage device, such as a floppy disk or a CD/DVD. Alternatively, the computer program or suite of computer programs may be made available for download over the communication network 5 from the security server 4 (see
To prevent fraudsters spoofing the server-authentication software, the user is requested to enter a unique identifier upon installing the software. The unique identifier entered by the user is then encrypted, preferably using a key particular to the user's copy of the server authentication software, and stored (e.g. as a file) in the memory 13 of the client computer 1. The server-authentication application 15, when executed, decrypts and displays the unique identifier on the VDU 12, e.g. on the title bar of the server-authentication application 15. If the server-authentication software were to be replaced (e.g. by a fraudulent copy), the encryption key would be unknown and accordingly an incorrect unique identifier would be displayed by the application 15 on the VDU. Accordingly, the user is provided with an indication if the server-authentication software has been changed.
Banks, financial institutions and other e-commerce or similar content-providers which provide services and/or information over the Internet and which rely upon user-authorization data (e.g. personal details of a user) or wish to assure users of the validity of their webpages and any information thereby conveyed may register their IP addresses with the provider of the security server 4 to be included in the database 7 of authenticated IP addresses.
Provision may also be made for users themselves to enter frequently used websites, by their URLs converted into IP addresses, or by the IP addresses themselves, into the authenticated client-database 17 maintained on the client computer 1 so as to avoid unnecessary “Caution” warnings being displayed simply because the content-provider of an otherwise legitimate website may choose not to subscribe to the service provided by the security server 4.
Although the invention has been described hereinabove in terms of databases being stored on a client computer 1 both for authenticated IP addresses 17 and for non-authenticated IP addresses 16, and these databases being used to determine whether the IP address of a particular website appeared on one of these two databases or on neither, with appropriate messages or other indications being conveyed to the user in each of these three circumstances, this is not always necessary.
For example, only a database of authenticated IP addresses 17 may be stored, and in that case, the server-authentication application 15 is only able to give assurance that a website may be trusted when its IP address is found in that database (and, if the check against address spoofing feature is included, the address is additionally shown not to have been spoofed). Equally well, only a database of non-authenticated IP addresses 16 may be stored, and in that case, the server-authentication application 15 is only able to give a clear danger warning when the IP address of a particular website appears in this database or (if the check against address spoofing feature is also included) if the address is shown to have been spoofed.
It should be appreciated and understood that the above descriptions of authenticating a content-server provider by the client computer can also be performed by the server. According to a further embodiment, content including but not limited to email messages, instant messages, chat messages, documents, webpages, and link data can be filtered at the server before being communicated to the client computer or before being displayed to an end user on the client computer.
For instance, a server or server component can determine a domain name of the content-provider server (e.g., website, email (sender) server). The server or server component can also request data from the content-provider server in order to obtain a fragment of a database of IP addresses. The data can include, but is not limited to, at least one fragment of a database of IP addresses. The fragment corresponds to the domain name of the content-provider server and one or more IP addresses associated with the domain name. Thereafter, the server or server component can compare the IP address of the content-provider server against the IP addresses of the fragment and provide an indication that the IP address of the content-provider server is included or excluded from the IP addresses of the fragment.
The server or server component can also determine whether data from the content-provider server has been previously requested. If it has been received within a pre-determined time indicating validity of the data, the server or server component can access one or more of its databases or memory stores to obtain the information. Otherwise, the fragment can be obtained if the request for such data has not already been submitted to the content-provider server.
According to this embodiment, the client computer is not tasked with determining whether the content is from an authenticated, non-authenticated, or unknown source, nor is the end user exposed to potentially damaging information (e.g., spam, phishing messages, viruses, etc.). Rather, this determination is made at the server level and by the server, thereby affording additional protection to the client computer as well as to the end user, which in some cases may be desired. In addition, the end user is not necessarily tasked with choosing whether to view or download content from a server that is not authenticated or that is unknown (neither authenticated nor non-authenticated), as this decision can be burdensome to some users since making a bad decision may have significant impact to the user's computer as well as to the server and other connected client computers. However, it should be appreciated that the end user can request to be informed when content from a content-provider is blocked.
In practice, for example, suppose that an email message has been “sent” to user Q. Before user Q receives the message in his email client mailbox, the server determines whether the email contains links to a trusted source (e.g., authenticated content-provider server/IP address) or non-trusted source in a manner as described above. This evaluation can be performed in part through the use of server-based databases (e.g., server-authenticated databases), independent of client-maintained databases.
Moreover, server-authenticated and -non-authenticated databases can be maintained, updated, and employed—at or by the server—to determine whether a content-provider server is authenticated, non-authenticated, or neither without requiring a similar authentication performance by the client computer. As a result, a server that receives messages sent to user Q can essentially filter such content on a server side before any messages are delivered to the user Q.
Similarly, suppose user Q enters a request via the client computer to access content such as a website or other content on a network (e.g., content-provider server). The request is communicated to the client's server(s) and from there, the server performs the process in which the content-provider server is determined to be authenticated, non-authenticated, or neither. Upon making this determination, the server may have a protocol in place to decide whether to permit access to the content-provider server. In the alternative or in addition, the server can communicate the result to the client computer and allow the end user to make the decision based on the server's analysis.
Furthermore, such content and source authentication can be done on the client side but before any content from the content-provider server is displayed on the client computer for user viewing—such as on a visual display unit. In some instances, the client computer or the server may be busy processing other items. Therefore, the authentication process of the content-provider server can switch between the server and the client computer depending on the existing processing loads of the server and client. For example, if the client computer cannot perform the authentication process, it can request or automatically inform the server to perform the process. Likewise, if the server cannot perform the authentication process due to a technical problem or otherwise, the server can signal or instruct the client computer to perform it. This switching of content-provider server authentication can be take place seamlessly and automatically and be completely invisible to the end user.
The systems and methods above facilitate protecting users from receiving bad or otherwise harmful data. However, a similar problem that is often ignored or missed is that sensitive or personal user data generated at the client computer is often communicated to the server unbeknownst to the user. This has been termed identity profiling. Identity profiling to produce, amongst other things, targeted advertising is a growing feature of internet usage. Identity profiling is similar to identity theft in the way that it collects personal and possibly confidential information about an individual without their specific consent or permission. It then uses this information to target an individual with relevant e-mails or advertising which supposedly will have a greater influence than general advertising. This can be contrasted with identity theft which uses information about an individual for fraudulent purposes. Identity profiling has moral implications that many are questioning.
There are products now available that internet service providers (ISPs) are starting to implement which monitor browser usage either directly or through search engines and then input targeted advertising according to the usage of the individual. As a simple example, entered into a search engine could be a search for ‘sports car’. The ‘sports car’ search input could produce advertisements for car dealers selling sports cars in the sponsored links section of the page. Privacy concerns are magnified for users when their complete internet usage is being monitored, not just random searches. Extrapolating the principle on a much larger and more realistic scale of monitoring, users have no knowledge of and do not know how the data will be used, moral or otherwise. The search for the ‘sports car’ followed by the ‘coincidental’ cold call or e-mail from a car dealer and then the similar call from an insurance agent suggests a possible manipulation of a user's browsing activity down certain channels without that user necessarily being aware of the manipulation.
Identity profiling on the internet has been likened to an Internet-free world where all your mail is being opened and read by a third party to determine what you are doing, followed by the insertion of additional mail so as to guide you down certain commercial paths. Similarly, imagine individuals being followed around when shopping, with all their purchases being recorded, and then being approached with alternative products. If the above examples were in fact happening in everyday life, civil liberties would be considered violated and very few would find it acceptable, but in an internet world it is not as obvious to see the cause and effect of such intrusive practices.
One solution to this problem is to give the ISPs that are monitoring usage large amounts of additional information such that the ‘real’ profile information of the individual is lost or obscured in the ‘white noise’ which is being generated independently of the individual but by software on the individual's computer. For example, a software system tool can generate browser requests to URLs without intervention of a user so as to mimic or appear to be produced by the user. Put another way, imagine a scenario where a typical user is browsing various web pages, clicking through to interior pages and sitting on some for longer periods of time than others or jumping to sites that are unrelated or at least somewhat related relatively quickly and then sitting on a page for awhile.
Although, there is no correct or incorrect way to browse the Internet, the generated browser requests to URLs can mimic real browsing behavior of a user. This can be accomplished in part by employing a variety of browsing behaviors such as clicking from site to site, staying only on a site briefly and then landing on a site and even clicking through to interior pages and staying on the same site as if the user found something of interest. Instead of communicating the real browser requests to the real URLs that a user visits, the subject system or method can generate “fake” browser requests. The fake or generated browser requests can be made by choosing from various URLs (that do exist) but that when analyzed collectively to determine the user's preferred subjects, topics, favorites, or other real browsing patterns for the user, no such “profile”, browsing pattern, or user preferences can be discerned. Thus, few if any targeted advertisements can be successfully chosen and sent to the user.
The mimicking of real browser behavior is performed by creating a neutral profile without any indication as to what “profile” the user may subscribe. For example, if a college student's browsing habits could identify them as a student, then this data must be lost or hidden within the generated browsing requests so that no identity profile can be accurately established for the user. In particular, the subject system or method can effectively “hide” real user data by masking it with a proportionally greater amount of generated browsing data (browsing requests). For instance, the number of generated browsing requests can be based on a factor (e.g., a factor of 10 or some other integer greater than 1) of a relative amount of real data communicated to the server. By doing so, the real user data is essentially lost amongst the generated user data.
The generated browsing activity can include a multitude of URLs, for instance, that the targeted advertising system cannot understand, or that would essentially make it difficult for the targeted advertising system to determine which targeted advertisements to send to the user. As a result of confusing the targeted advertising system with “white noise” or cluttered URL data, a substantial portion of the user's personal browsing activity is not shared. Even more so, the user is not inundated with either relevant or irrelevant targeted ads.
Several parameters can be considered and programmed so that server software cannot readily detect the use of such a software system tool, which jams any detection of targeted advertising with sufficient generated fake user data such that the real data generated by the user is only a small percentage of the data collected.
For example, though not illustrated in the figures, the browsing system tool can include a plurality of components to facilitate jamming the data collection process performed by targeted advertising systems or methods. The software system tool can form a database of websites or URLs that are non-discriminating, generic, non-descript, and/or non-distinct meaning that these websites are geared toward the masses and that knowing that a user has been to one or more of these website does not provide any interesting or helpful information about the user for targeted advertising purposes. As the user is browsing the internet, the system tool can collect URL data in at least one of two ways.
In the first, a browser request generation component can collect URL data for the user by selecting a URL from the white noise database each time the user goes to a different URL. This means that the time the user spends at each URL is copied or mimicked but the actual URL visited by the user is replaced with another specifically or randomly selected URL (from the database).
In the second, the browser request generation component can select URLs from the database and based on a time scheme that is appropriate for the type of user or user profile type. It should be appreciated that an Internet search engine can scan or monitor the Internet for such websites that are appropriate to produce URL data clutter (white noise) to hinder targeted advertising efforts and then add them to or replace older or out of date URL data in the database. It should be further appreciated that the tool can be turned off or on as desired by the user.
When used in this specification and claims, the terms “comprises” and “comprising” and variations thereof mean that the specified features, steps, or integers are included. The terms are not to be interpreted to exclude the presence of other features, steps, or components.
The features disclosed in the foregoing description, or the following claims, or the accompanying drawings, expressed in their specific forms or in terms of a means for performing the disclosed function, or a method or process for attaining the disclosed result, as appropriate, may, separately, or in any combination of such features, be utilized for realizing the invention in diverse forms thereof.
When used in this specification and claims, the terms “comprises” and “comprising” and variations thereof mean that the specified features, steps or integers are included. The terms are not to be interpreted to exclude the presence of other features, steps, or components.
The features disclosed in the foregoing description, or the following claims, or the accompanying drawings, expressed in their specific forms or in terms of a means for performing the disclosed function, or a method or process for attaining the disclosed result, as appropriate, may, separately, or in any combination of such features, be utilized for realizing the invention in diverse forms thereof.
Number | Date | Country | Kind |
---|---|---|---|
0418613.6 | Aug 2004 | GB | national |
0510803.0 | May 2005 | GB | national |
This application is a continuation-in-part of U.S. application Ser. No. 11/573,980 entitled SERVER AUTHENTICATION, filed on Feb. 20, 2007, which is the U.S. national phase of international patent application no. PCT/GB2005/003237, which was filed on Aug. 19, 2005, and which claims priority to GB0418613.6, filed 20 Aug. 2004, and GB0510803.0, filed 26 May 2005, the entireties of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 11573980 | US | |
Child | 12108694 | US |