-
2015-12-22
10/668,109
2003-09-22
US 9,219,708 B2
2015-12-22
-
-
Monjour Rahim
Roach Brown McCarthy & Gruber, P.C. | Kevin D. McCarthy
2027-02-19
A method of authenticating, using an authentication server, the use of an authentication device over a communication network via an intermediate communication device, comprising:
Get notified when new applications in this technology area are published.
H04L63/0218 » CPC main
Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls; Architectural arrangements, e.g. perimeter networks or demilitarized zones Distributed architectures, e.g. distributed firewalls
G06F21/445 » CPC further
Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity; Authentication, i.e. establishing the identity or authorisation of security principals; Program or device authentication by mutual authentication, e.g. between devices or programs
G06Q20/04 » CPC further
Payment architectures, schemes or protocols Payment circuits
G06Q20/12 » CPC further
Payment architectures, schemes or protocols; Payment architectures specially adapted for electronic shopping systems
G06Q20/341 » CPC further
Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
G06Q20/3823 » CPC further
Payment architectures, schemes or protocols; Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
G06Q20/4097 » CPC further
Payment architectures, schemes or protocols; Payment protocols; Details thereof; Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists; Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
G07F7/1008 » CPC further
Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
H04L63/0853 » CPC further
Network architectures or network communication protocols for network security for supporting authentication of entities communicating through a packet data network using an additional device, e.g. smartcard, SIM or a different communication terminal
H04L63/12 » CPC further
Network architectures or network communication protocols for network security Applying verification of the received information
G06F2221/2129 » CPC further
Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity; Indexing scheme relating to and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity Authenticate client device independently of the user
G06F21/00 IPC
Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
G06F21/44 IPC
Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity; Authentication, i.e. establishing the identity or authorisation of security principals Program or device authentication
G06Q20/34 IPC
Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
G06Q20/38 IPC
Payment architectures, schemes or protocols Payment protocols; Details thereof
G06Q20/40 IPC
Payment architectures, schemes or protocols; Payment protocols; Details thereof Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
G07F7/10 IPC
Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
The present application is a continuation application of PCT Application No. PCT/IL02/00236, filed on 22 Mar. 2002, published as WO 02/078199. The present application is also a continuation-in-part of PCT Application No. PCT/IL01/00758, filed on 14 Aug. 2001, published as WO 02/14974, and U.S. application Ser. No. 09/853,017, filed on 10 May 2001, and claims the benefit under §119(e) of U.S. Provisional Application No. 60/278,065, filed on 22 Mar. 2001, U.S. Provisional Application No. 60/278,010, filed on 22 Mar. 2001 and U.S. Provisional Application No. 60/277,996, filed on 22 Mar. 2001. All the disclosures of the above listed applications are incorporated herein by reference.
The present invention relates to authentication methods. In one aspect thereof, the invention relates to a method and system for authenticating an identification devices, such as a self-powered card (hereinafter referred to as SPC).
In order to facilitate the reading of the description to follow, a number of terms and acronyms, which are well known in the art are defined below. These definitions are not to be taken as limiting and are provided as examples for facilitation of understanding of the disclosure. A complete and exact definition may be found in various books and other publications in the relevant fields.
The Internet, and the World Wide Web (WWW) in particular, has grown in popularity in recent years. In addition to news and information, merchants and consumers alike have come to view the web as a virtually unlimited range for conducting business, in the form of sales of products, services, and information. Nevertheless, many computer users are still somewhat leery of conducting sales transactions over the Web especially because credit cards are involved, along with the associated fear of widespread and unchecked dissemination of the credit card numbers. These same users may also be leery of conducting non-Internet related sales transactions using credit cards. One worry is that After all, anyone can steal a credit card number and use it later for unauthorized purchases.
There are many applications where authentication may be useful, for example, opening a door to a secured location, buying commodities, entrance (and staying in) a secret facility, e-commerce, and logging in to a system. Sometimes presenting an identification card, such as credit or social security, is adequate for authenticating a person, and sometimes the authentication requirements are so high that the authentication process requires biometric analysis.
Currently, credit cards are used for authentication. They comprise a magnetic stripe that comprises the ID of the owner of the credit card and some additional details. Of course a conventional credit card provides relatively poor authentication, since its magnetic strip can be copied and an associated secret password (e.g., PIN) stolen rather easily. Today, in order to overcome this drawback, merchants usually verify the identity of the credit card holder with another identification means; e.g. an identification card or driving license. However, in remote authentication, such as purchasing commodities through the Internet or telephonic means, the merchant has no contact with the credit card or the cardholder itself.
There are two principal techniques currently used to handle a transaction where a credit card is involved. The first one is used for transactions of a “card present transaction” type, and the other is used for transactions of a “non-present card transaction” type. According to the first technique, three key elements exist in the transaction. The first one is called “something you have”; namely the credit card. The second one is “something you know”; namely a password and the third element is “having a witness”; namely the merchant's presence. These elements exist whenever a buyer is actually where the transaction is about to take place; e.g. in a shop. In this case the card's details are compared with the card's details contained in the card's issuer database. Verifying the cardholder is carried out by comparing his signature to the one on the card and/or using some sort of identifying card; e.g. a driving license. Since the card issuer confirms the card details and the transaction itself, the card issuer bears the consequences in case of a fraud. However, in case of telephonic or Internet transactions, none of the above-mentioned elements exist and the merchant bears responsibility in case of a fraud. Solving the problem of “non-present card” transactions greatly reduces the risk taken by merchants and makes them more amenable to such transactions.
Conventional business models, according to which credit card companies operate, pose a basic problem. The problem arises from the fact, that in a case of a “non-present card” transaction, there are generally two unsecured and parallel channels, which contribute to the risk of fraud. The first channel relates is the transaction channel itself. Whenever a cardholder wishes to carry out a transaction, he is asked by the merchant to give him details regarding the card and also his ID number. The merchant forwards these details to the card issuer (usually by phone) and upon approval of the transaction by the card issuer, the transaction is given a special code. The second channel is the authentication phase of the card by conventional methods, such as giving a password to the card issuer or by using a conventional electronic device. The problem in such cases is that the card issuer can not be sure that the specific code given to the transaction relates to the corresponding authenticated card.
Currently, each merchant is likely to have a unique digital signature, and therefore it is relatively easy to secure the merchant side/domain. Additionally there are several solutions provided by several companies, such as CYOTA and ORBISCOM, according to which whenever a potential buyer wishes to make a transaction, a one-time credit card number is created by the merchant/seller. This kind of solution apparently reduces the risk of stealing a credit card number. However, this is only a partial solution since this ‘one-time’ number is created and forwarded from the merchant to the card issuer, and the card issuer has to trust the merchant.
A recent development in this field is the “Smart card”. A smart card includes a built-in microprocessor and memory used for identification and/or financial transactions. A smart card is currently used in conjunction with a special electronic reading device. When such a card is inserted into a reader, it transfers data to and, and receives from, a central computer. It is more secure than a conventional magnetic strip card and can be programmed to lock if the wrong password is entered too many times.
Generally, a conventional authentication system that involves a smart card comprises the following elements:
One of the methods to increase the security level of conventional authentication schemes based on smart cards is the “one-time code”. The one-time code mechanism usually generates pseudo-random numbers, which from an outsider point of view, are random numbers. However, in some conventional systems the numbers can be predicted and abusively utilized, since the smart card and the authentication servers use the same numbers' generator.
An aspect of some embodiments of the invention relates to controlling an authentication process, for example, so as to protect a card merchant and/or a card user from fraud. In an exemplary embodiment of the invention, the protection comprises encrypting transmissions to a remote authentication server, for example to prevent tampering. Optionally, the encryption comprises signing with merchant related information, for example, so the authentication process can be reliably linked to both a card and a merchant. Alternatively or additionally, the encryption comprises signing the transmission at the user, for example to include user related and merchant page related information or a timestamp. Optionally, the merchant signature is provided by the authentication server or an associated entity.
In an exemplary embodiment of the invention, the encryption is provided by software embedded or otherwise linked to a WWW page used by the user to access the merchant. Optionally, the embedded software will work only if the merchant is online and responding correctly.
Alternatively or additionally, the merchant sends a one time code to the user, for each session and expects the code, hash thereof and/or a signed form thereof to be returned by the user. Thus, the user can be verified by the merchant. The code may be provided, for example using the embedded software.
Alternatively or additionally, protection is provided by generating codes for an authentication card and then destroying initial numbers used to generate the codes. Alternatively or additionally, the codes used by a card are pre-set at the time a card is manufactured and no new codes are generated nor is there a way to generate them once the initial numbers are destroyed.
Alternatively or additionally, protection is provided by the authentication server generating a simple authentication answer, without a reason.
Alternatively or additionally, the history of authentication of a particular card is used to assist authentication. For example, a more restrictive authentication method is used for initial authentication, but if a consecutive authentication attempt is made with similar parameters (e.g., but with a counter that is increased by one or a small number), it may succeed. Alternatively or additionally, the number of codes skipped between authentication attempts is used as an indication of the validity of an attempt.
In an exemplary embodiment of the invention, various decisions may be made according to the results of the Authentication process, for example, if to freeze a card, allow a second attempt, warn a merchant and/or freeze a merchant (e.g., if many authentication errors come with a same merchant designation).
An aspect of some embodiments of the invention relates to a method of signal detection for acoustic signals. In an exemplary embodiment of the invention, the method employs a tradeoff which allows less processing to be used, while allowing some types of errors. In an exemplary embodiment of the invention, the method comprises correlating Hilbert transforms of expected FSK frequencies, rather than correlating the frequencies themselves. This may allow various delays in an input signal to be correct for.
In an exemplary embodiment of the invention, a sinusoidal signal is represented as an analytic signal using a Hilbert transform. It is then correlated with itself and integrated over an interval. The total power and/or other property of this integral is indicative of whether a signal is present or noise.
There is thus provided in accordance with an exemplary embodiment of the invention, a method of authenticating, using an authentication server, the use of an authentication device over a communication network via an intermediate communication device, comprising:
receiving an authentication datagram by said intermediate device;
protecting said datagram by said intermediate device, by at least one of changing, adding to, encrypting and signing of said datagram; and
forwarding said datagram to said authentication server for authentication. Optionally, said intermediate device comprises a vendor WWW site. Optionally, protecting comprises adding a signature associated with said vendor to said datagram. Optionally, protecting comprises encrypting said datagram.
In an exemplary embodiment of the invention, said intermediate device comprises a user computing device. Optionally, said computing device adds a time stamp to said datagram. Optionally, said computing device adds a vendor-associated information item to said datagram.
In an exemplary embodiment of the invention, said computing device encrypts said datagram. Optionally, said encryption uses a one time code. Alternatively or additionally, said one time code is provided by a vendor for a particular session with said user.
In an exemplary embodiment of the invention, said user computing device uses an embedded software component for said protecting. Optionally, said embedded software comprises an ActiveX component. Alternatively or additionally, said component is cached on said user device. Alternatively or additionally, said component requires a property value provided by a vendor to operate.
In an exemplary embodiment of the invention, communication between said intermediate device and said server uses a secure connection.
Alternatively or additionally, different communication paths are used for said authentication and for transaction details from said user. Alternatively or additionally, different communication paths are used for said authentication and for transaction details from a vendor to said authentication server.
There is also provided in accordance with an exemplary embodiment of the invention, a method of authentication of an authentication datagram by a remote authentication server, comprising:
sending an encrypted datagram by secure computer communication from a vendor software to said remote authenticator;
comparing said datagram or a hash thereof to a hash table at said server, and
generating a binary validation answer by said server without an associated explanation.
There is also provided in accordance with an exemplary embodiment of the invention, a method of authentication of an authentication datagram by a remote authentication server, comprising:
sending an encrypted datagram by computer communication from an authentication device to said remote authentication server,
searching, at said server, for a hash value matching said datagram or a hash thereof; and
generating a validation answer by said remote authentication server, responsive to said search,
wherein, said datagram includes a secret code and wherein said secret code exists only on said authentication device. Optionally, said authentication device includes a plurality of secret codes that are generated to appear unrelated.
There is also provided in accordance with an exemplary embodiment of the invention, a method of generating a code set for an authentication device, comprising:
providing a code generating software;
providing at least one seed code for said software;
generating said code set using said software and said seed;
destroying said seed immediately after generating said code set; and
storing said code set or an indication thereof on an authentication device. Optionally, the method comprises generating hash values for said code set. Optionally, the method comprises generating a second set of hash values for said code set, using a different hash function for said second set.
There is also provided in accordance with an exemplary embodiment of the invention, a method of communication between a vendor and a user using an authentication device, comprising:
generating a one time code for the user for a session;
receiving an authentication datagram from said user; and
passing on said datagram for verification by a remote authentication server if at least an indication of said one time code that matches said user is provided with said datagram. Optionally, the method comprises signing said datagram using said one time code by said user.
There is also provided in accordance with an exemplary embodiment of the invention, a method of remote validation, comprising:
receiving an authentication datagram by an authentication server from a remote authentication device;
matching said datagram or a hash of said datagram to a table;
calculating a counter value from a matching position in said table; and
validating said authentication datagram based on an increase in said counter over a previous counter being within a certain limit. Optionally, the method comprises:
failing said authentication based on said increase being too large; and
allowing a subsequent authentication based on a further increase of said subsequent validation being below a second threshold Optionally, said thresholds are the same. Alternatively, said second threshold is smaller than said certain threshold.
In an exemplary embodiment of the invention, said counter comprises an ordinal position in said table that is not apparently related to a series of generated random numbers.
There is also provided in accordance with an exemplary embodiment of the invention, a method of detecting a transmission of an acoustic multitone FSK signal, comprising:
receiving an acoustic signal;
converting the signal into a Hilbert-transform representation of the signal
correlating said converted signal with at least one reference signal representing at least one expected frequency in said FSK signal;
integrating said correlation over an interval; and
determining if a signal is present, based on a thresholding of a result of said integrating. Optionally, the method comprises further determining if a detected signal has a frequency within a certain frequency range. Alternatively or additionally, the method comprises further determining if a detected signal has a signal to noise ratio within a certain signal to noise ratio range.
In an exemplary embodiment of the invention, the method comprises resampling said signal after said determining.
In an exemplary embodiment of the invention, said threshold is noise dependent of the received signal.
In an exemplary embodiment of the invention, the method comprises calculating said interval based on a hardware characteristic of a producer of said acoustic signal.
Non-limiting embodiments of the invention will be described with reference to the following description of exemplary embodiments, in conjunction with the figures. The figures are generally not shown to scale and any measurements are only meant to be exemplary and not necessarily limiting. In the figures, identical structures, elements or parts which appear in more than one figure are preferably labeled with a same or similar number in all the figures in which they appear, in which:
FIG. 1 schematically illustrates a process for detecting existence of forged devices, according to one embodiment of the invention;
FIG. 2 schematically illustrates an authentication scheme of a device, according to an exemplary embodiment of the invention;
FIG. 3 schematically illustrates using an ActiveX control to secure Internet transaction, according to a preferred embodiment of the invention;
FIG. 4A is a flow-chart of an authentication process, according to one embodiment of the invention;
FIG. 4B is a flow-chart of an authentication process, according to another embodiment of the invention;
FIG. 5A schematically illustrates the structure of a multitone FSK signal according to an exemplary embodiment of the invention;
FIG. 5B schematically illustrates a detector for a multitone FSK signal, according to an exemplary embodiment of the invention;
FIG. 6 is a flow chart illustrating the process of detection and estimation of multitone FSK signal, in accordance with an exemplary embodiment of the invention; and
FIG. 7 schematically illustrates a method for decoding a multitone FSK signal, in accordance with an exemplary embodiment of the invention.
Exemplary Implementation
An example of an identifying device is a self-powered electronic card (SPC) that performs wireless communication with a standard PC or telephone without using a card reader. The card transmits a user identification code to a PC, a mobile, or a regular phone, enabling online authentication and physical presence in online transactions. Of course, non-card devices, such as statues and pens, may be provided as well. The authentication system may be designed to be implemented on various computer or telephony networks, such as the Internet, extranets, and IVR systems.
Various cards and card related software and hardware which may be useful for carrying out and/or using the invention are described, for example in Ser. No. 60/278,010, filed Mar. 22, 2001, Ser. No. 09/853,017, filed May 10, 2001, Ser. No. 60/278,065, filed Mar. 22, 2001, Ser. No. 60/277,996, filed Mar. 22, 2001, U.S. patent application filed May 12, 2000, by applicants Alon Atsmon, et al., and entitled “Physical Presence digital Authentication System”, PCT/IL99/00506 filed on 16 Sep. 1999, PCT/IL99/00525 filed on 4 Oct. 1999, PCT/IL99/00521 filed on 1 Oct. 1999, PCT/IB99/02110, filed on 16 Nov. 1999, PCT/IL01/00758 filed on 14 Aug. 2001, Ser. No. 09/820,358 filed Mar. 28, 2001, PCT/IL98/00450 filed on 16 Sep. 1998 and a PCT application filed on even date by applicant Comsense, et al. and having the disclosures of which are incorporated herein by reference.
The card may also support payment card legacy systems, such as magnetic stripe readers. It can be implemented, for example as a standard credit card or a bankcard, a membership card, or a gift certificate, and works both on the Internet and in the offline world. Additionally, a conventional smart card's electronic circuit (e.g. an electronic microchip) may be embedded in the SPC.
To use the card, in some embodiments of the invention, the cardholder squeezes a button provided on the card, while holding the card relatively close (e.g., approximately 3 inches from) to the front of the PC's microphone. The card then sends a sonic transmission of a unique, one-time code to the device's microphone.
In addition, a client software, which may be for example a communications layer embedded in a web page, receives this encrypted one-time code. The communication layer relays the code, unaltered (or as described below, for example, encoded and/or with data added), to a remotely located Authentication server for authentication. Current versions of the client software are generic database program based software, which are based on, but not limited to, Microsoft SQL and Oracle, for example.
Thus, the card, in some embodiments of the invention, converts PCs or telephones into point of sale terminals, enabling secure Internet shopping, banking, and financial account services.
The user software may be configured to receive the signal of an activated ComDot card (e.g., a card as described herein), launch a web browser and visit a specific URL, such as that of the card issuer.
The card may serve as a user authentication, loyalty and secure transaction system, based around a credit card sized layer of electronic circuitry. This circuitry may be powered by an on-card battery, and activated by a flat switch, embedded in a standard credit card.
After visiting the Web site of the manufacturer of the card, a communication layer (embedded in the Web site for example as an ActiveX control or JNI plug-in) may be cached into the user's browser. Upon card activation, the communication layer receives the signal from the card and authenticates the card through communication with a server running authentication software. The information transmitted by the card is received by a client software application, running on a Windows-compatible PC, or as part of a PC-based telephony Interactive Voice Response (IVR) or Computer-Telephony (CTI) system. Other communication methods may be provided instead
Optionally, upon verifying that a complete signal was received, the client software application sends the received signal—via a secure HTTPs or SSL network link—to the Authentication Server. In some embodiments of the invention, no decryption of the transmitted signal is performed on the client. It should be noted that encryption by the client is a separate step from using an SSL link, as it is performed by different software units, over which different degrees of control are available and different degrees and types of attacks by a hacker (or other malicious person) may be perpetrated.
For remote authentication, the card's signal is optionally sent to the authentication server for example by the client software or an ActiveX control. The server software analyses this signal, then reports to the card issuer's or third party's web server as to whether the signal in question comes from a Valid (i.e. active card) or Invalid source.
In an exemplary embodiment of the invention, the authentication system employs unique, one-time cryptographic codes for enhanced security. This one-time code is generated and encrypted by the card, and remains encrypted until it reaches the authentication server software. Optionally, no decryption of the data, which is received from the card, is performed in the authentication server.
In an exemplary embodiment of the invention, when an e-wallet, merchant payment Web site or gateway, or other payment middle ware is equipped with a software client, the card authenticates cardholders to their payment card issuers and e-merchants, potentially reducing the problem of on-line fraud. Because the presence of a card in transactions can be proven (to some extent), cardholders shop online without fear of credit card theft.
In some embodiments of the invention, additional protection steps may be taken. For example, using a random generator with three keys with values unique to each device, using a CRC for validating that transferred information have not been changed and/or different encryption functions and pseudo-random numbers for each card.
In an exemplary embodiment of the invention, a Datagram structure used by the card may be as follows:
In an exemplary embodiment of the invention, a card is authenticated on the Internet using the following process:
In an exemplary embodiment of the invention, a card is authenticated on the telephone using the following process:
In an exemplary embodiment of the invention, two different implementations of the communications layer is provided, however, other implementations may be used as well:
In this implementation, a first-time user would simply go to a particular card issuer web page in which the communication layer is embedded, and then activate the device. Possibly, no conscious user decision to download or install is required.
Authentication server
The Authentication Server software can be implemented on a PC system running a Windows NT 4.0 or higher operating system, and Microsoft SQL server for Database software.
ISO Compatibility
In an exemplary embodiment of the invention, the card will be ISO 7816 and ISO 7810 credit card tested, for example, by Visa certified labs. These tests include torsion testing, involving 1,000 bends of the card. The tests also include exposure to heat, cold, water and acids.
Card Security
In an exemplary embodiment of the invention, the card is secured physically and/or logically in order to prevent access to its secured data
Logical security is optionally achieved by encrypting the card's ‘Secret User ID’ and counter value using the DES3 encryption technique. The card's public ID is transmitted without encryption.
Physically, the electronic circuit is optionally secured by its placement as the middle of five plastic layers. The two layers of plastic on either side of the electronics layer, and the card's lack of external connectors constitute a degree of physical security. Additionally, once the data is written to a card EPROM, the read and write fuses are burned, to prevent accessing the written information.
2 Unique, Triple DES (DES3 or T-DES) Keys Per Device/card
In an exemplary embodiment of the invention, the encryption used in the card is 2 key DES3 algorithm. Optionally, each card has two unique keys. These keys are randomly generated during the manufacturing process, for example, by a statistically safe, random generation mechanism. The keys are generated and written directly onto the card's non-erasable memory, and, as a security caution, are never stored outside of the card. In an exemplary embodiment of the invention, after using these 2-key DES3 and the hash function to generate the hash table, no trace of the two keys exists in the Authentication server. Optionally, the hash table is generated on the card and read off during manufacture. Then various fuses on the card may be destroyed, for example physically, or by providing the card with a suitable command, for example, to erase the hash table.
Optionally, the codes are prepared for particular customers, for example, so each customer can use his codes for validation. Optionally, the customer prepares the codes and only a hash is provided to the authentication server. The customer may then load the cards that he distributes, with the desired codes and/or hash values thereof. By providing the customer with a different hash value, the authorization server can allow the customer to perform his own validation, without compromising the validation at the authentication server.
One-Time Encrypted Code
In an exemplary embodiment of the invention, the card creates and encrypts a one-time code every time the card is activated. The encrypted data is, for example, 64 bits in length and contains, for example, two or more fields; the ‘secret card ID’ and the Counter value. After each activation of the card the counter value is optionally incremented, making each transmitted code unique. Alternatively, a same one time code may be reused, for example, within 1 minute.
EDAC
In an exemplary embodiment of the invention, this information is transmitted not encrypted in order to verify that transmitted message is complete and to correct any error that may exist.
Second Factor Authentication
The clients may be advised to use a second factor of authentication in tandem with the first factor token authentication. The second factor may be, for example, a PIN/password, secret question, voice verification, or other preferred authentication methods. In an exemplary embodiment of the invention, the described method does not put limitations on the type of second factor authentication technique that can be employed.
Server Software Security
Comparison Function
In an exemplary embodiment of the invention, the server authenticates a cardholder using a comparison function. The hashed version of the card's encrypted data bit stream is searched for in the hash database. Optionally, at no point is this data decrypted, and all the hashed data is a read only, preventing accidental changes to this data. The comparison function is used to compare the new counter click number (determined by the position in the hash table that matches, for example) with the last known counter click number. Decisions are optionally made according to the result of this function.
Limited External Communications
In an exemplary embodiment of the invention, the server can send only two messages to the outside world: ‘Card Valid’ or ‘Card Invalid’. This feature potentially prevents hackers from knowing why the card was not validated by the server, information that is often important for improving attacks on the server. In intra-network, secure communications with a card issuer or trusted third party server, the server optionally provides additional information as to why a particular card was not authenticated. In any case, when the card is retried, it may pass the authentication, for example by showing that the supposed card holder has at least two one time correct (and optionally consecutive) codes.
Management
In an exemplary embodiment of the invention, the system will enable administration of various operations, which may be useful when issuing cards, for example described below.
Card Issuance
In an exemplary embodiment of the invention, a Card issuance process includes, in addition to the delivery of the cards to the users, one or more of the following operations:
In an exemplary embodiment of the invention, for card revocation and canceling of such a revocation, one or both of the following two mechanisms are optionally provided:
In an exemplary embodiment of the invention, expired cards, assuming that new ones have been issued, will go through the revocation process, while in parallel, a new link will be created between the User ID and the new card. In addition to this process, the record of the cards and the hash list are optionally backed up (e.g., in case the backups are not in the same place). However, in an exemplary embodiment of the invention, no backing up is performed, as the hash list is generally static.
Manufacturing
Manufacturing is typically the first process in the card life span.
In an exemplary embodiment of the invention, the card is assembled in one of the proprietary manufacturing lines, located within a Visa-certified facility. In an exemplary embodiment of the invention, a circuitry module is programmed with the manufacturer-Data, to be used later as the manufacturer-ID and Encrypted Data. The circuitry then goes through lamination and graphics, for example, cold lamination or hot lamination. The magnetic stripe (and/or Smart card module) is added, and the card is ready for personalization. Alternatively, the card may be personalized and/or various hash codes generated, prior to lamination.
Authentication Scheme:
In an exemplary embodiment of the invention, according to the invention, one of two authentication schemes is used. According to a first scheme, a counter is embedded within the Self-Powered Card (SPC) and is used as a basis for generating a random number. The SPC also comprises a button, such that each time the button is pressed (i.e. the card is ‘clicked’), the counter's value increases, and a new random number is generated and transmitted to the authentication server along with the rest of the data.
Upon receiving the SPC's data at the authentication server, a portion of the data is hashed. Since each SPC activation generates a new random number, a new hash number is generated at the server, to conform to the new counter's value. Knowing the rule by which the counter's value increases allows calculating the next future counter's values. In an exemplary embodiment of the invention, a set of, for example, 10,000 (or any other number) of pseudo-random numbers is calculated, and the resulting numbers are hashed and stored in a database contained in the Authentication server, for example prior to the first card use. In an exemplary embodiment of the invention, there is no need for the server to calculate, store or to use in any way, the original counter values. These values are only generated once in the card (i.e. when a card is ‘clicked’; one new value/number for each click) for further generating the random numbers. In the Authentication server, each unique hash number reflects a specific card ‘click’ rather than the actual counter's value. Therefore, consecutive hash numbers in the server reflect consecutive card ‘clicks’ (i.e. activations).
In an exemplary embodiment of the invention, the Authentication process itself is carried out according to the following method: the server receives a random code data from the SPC. At least a portion of this data is hashed, and the resulting hash value is searched for in the server's database. If there is a matching number in the database, the corresponding SPC's ‘click’ number is compared against the last known ‘click’ number; i.e. the last time this SPC was authenticated. If the new ‘click’ number is equal or less than the last known ‘click’ number, the SPC is considered to be invalid. In this case the authentication server may hold any confirmation of transactions using this electronic card, or take any other action as/if required. A reasonable number of ‘clicks’ per time period may be allowed. For example, an average user may use the card for purchasing commodities, show the card to his friends, and click on the button unintentionally. For example, a card may be allowed no more than 200 clicks per day. Hence, by keeping track of the click number and/or its history, unreasonable increments that may be an indication of a problematic SPC, can be detected or identified as artifacts. For example, a SPC user clicks his card, and the Authentication server interprets the received data as ‘click number 12’. If, however, at the same day the server receives another data but interprets it as ‘click number 220’, the Authentication server ‘remembers’ this click number (i.e. 220) and may decide to invalidate the card for this specific transaction. However, if later on the server receives from the same card a data that reflects a click number of 221, the card may be considered to be valid. Later on receiving click number 20, may be indicative of a real security problem. Optionally, the card (and server) uses a different set of hash numbers for each day.
According to a second exemplary Authentication scheme, a set of random numbers is generated, hashed and stored both in the card and in the Authentication server. Optionally, no trace of the way by which this set of numbers is generated exists anywhere in the system after completing the numbers generation process. For example, the set may be generated by skipping some numbers in a series, for example, every other number, or using a random jump.
In an exemplary embodiment of the invention, each time a card is ‘clicked’; a pointer draws the next random number from the table, which is transmitted to the Authentication server. The server then searches for a matching hash number in its own table, in order to find its corresponding click's number, after which it takes whatever required action, for example, using the same way as described in the first Authentication scheme.
Optionally, the card ID number in the main table is used to reduce the searching time in the hash table. Alternatively or additionally, a reduction in search time is provided by removing used, old, and/or ‘wasted’, hash values from the hash table. a wasted hash number is a hash number that relates to (or is a representative of) false clicks; for example, whenever a card is clicked without its transmission being received at the Authentication server (e.g. accidental clicks).
Security: One possible purpose of the security is to allow the owner of a device to carry out transactions in a secure manner, e.g., to ensure that the owner, and only the owner, will issue a transaction. In an exemplary embodiment of the invention, achieving this object is provided by one or more of:
(a) Prevention of exact duplicating of an electronic card;
(b) Prevention of duplicating the operation logic of an electronic card;
(c) Encrypting information being transferred between the electronic card and the authentication server; and
(d) Storing encrypted information at the authentication server and a reference information at the electronic card.
The authentication scheme described herein allows preventing a replay attack. However, replay attack is not the only security consideration. Optionally, one or both of the following issues is dealt with in accordance with an exemplary embodiment of the invention:
(a) The integrity of the transferred information between the electronic card and the authentication server; and
(b) Protection against untrustworthy employees at the authentication server's side;
Security Scheme Based on ActiveX Control:
According to several embodiments of the invention, the device/card is used in Internet transactions. In an exemplary embodiment of the invention, there is a desire to prevent the risk of a hacker trying to pretend being a web merchant, by copying a merchant's web site. In other words, a hacker may be able to ‘get in the middle’ between a legitimate user and a merchant, thus becoming an intermediate, or by pretending to be a real merchant and receive payment without providing goods. In such cases, the hacker may, for example, send the user a message, pretending to be a genuine merchant, urging/tempting the user to reply. A legitimate user would not be able to tell whether he responds to the genuine merchant or to the hacker, and the hacker may take advantage of that fact by intercepting and abusively exploiting the data exchanged between the user and the genuine merchant.
In an exemplary embodiment of the invention, in order to protect both cardholders and web merchants (and other ISPs), a special means is used in conjunction with an ActiveX control. The ActiveX control is a generic software element embedded in most of today's browsers. Whenever an Internet user enters a web site for the first time, the home page may prompt the user a request to download an ActiveX file, after which it remains in the user's PC. This file may at least contain parameters regarding the particular web page. If the user enters another web page, the user does not have to load the Active X again, and the already existing ActiveX dynamically changes its attributes to comply with the new web page.
In an exemplary embodiment of the invention, a merchant must acquire at least one of two certificates in order to allow him to securely interact with other parties by using the Internet. These certificates may be issued, for example, by a Certification Authority (CA) or by the ASP itself. The first certificate is referred to as the ‘client certificate’. This certificate is used by the Authentication Service Provider (ASP) to verify the merchant. The second certificate is referred to as the ‘server certificate’, and it is used to verify a legitimate Internet user.
In an exemplary embodiment of the invention, whenever a card authentication is required, the card is activated so that a data stream is transmitted from the card and received at the user's PC. Assuming that the ActiveX is operable, it receives the transmission and modifies it according to the following process, at the user computer and/or at a merchant computer:
Optionally, the ASP site (i.e. authentication server) has a list of all merchants' certificates and digital signatures, and stealing these two key elements; i.e. a digital signature and a certificate belonging to the same merchant, is necessary to execute a fraud. However, since it is almost impossible to steal these two elements, enhanced security may result. The data, which is transmitted from the card, is secured since the data from a legitimate user bears the ASP imprint, as is carried out by the ActiveX in the user's PC. A hacker may intercept a data sent from a legitimate user. However, the hacker cannot sign the intercepted data with the proper signature. Therefore, whenever the ASP receives a data transmission from a hacker, this data is most likely to have a false signature, and therefore is ignored.
Alternatively or additionally, a special attribute is added to the ActiveX in such a way, that whenever a user makes an attempt to load an ActiveX control, the ActiveX control searches, while on runtime, for the special attribute. If such an attribute is not found, the ActiveX control will turn off automatically, otherwise the ActiveX control is ready to analyze incoming signals and take further actions as required. Possibly, the special attribute may be given by the Authentication Service Provider (ASP) to each authorized merchant.
Alternatively or additionally, the following method is used, for example for increasing immunity to hackers. Each merchant assigns a special number to each user on a session basis; namely whenever a cardholder enters the merchant's web page, the merchant assigns the card user a random ‘one-time’ number. Upon activating the card, the ActiveX control is activated and the special number is added to the card's data and launched to the merchant's web server, where it is compared with the original number sent by the merchant. If several users enter the same merchant's web page essentially at the same time, each one of them is given a different number, and if a user exits and reenters the web page, he is given a number that differs from the previous number he had. Sending one-time numbers, and receiving them as a feedback, may ensure to the merchant that the user is really who he says he is. The card may be signed by the ActiveX control using the merchants code and/or using the card.
Authentication Server Databases:
In an exemplary embodiment of the invention, one or more of the following databases are provided for authentication, for example, at the server:
As was described herein, in an exemplary embodiment of the invention, whenever an Internet transaction is carried out, a card issuer can not be sure that the transaction code given by the merchant and the authenticated card relate to each other. Since a web site is involved, whether the merchant's or the card issuer's, the problem can is optionally solved by using a proper ActiveX file, which may include various parameters relating to the merchant and/or to the transaction and/or the user/buyer, such as PC's IP address, timestamp, amount of transaction, URL and/or signature.
In some embodiments of the invention, a same device/card may be used in various applications, by using the same encrypted data generated by the card. The right application is selected according to the hash function applied by the corresponding Authentication server. For example, lets assume that there is a 2-application card. whenever this card transmits its data to a specific Authentication server, this server applies its unique hash function to Authentication the card. Should the user transmit his card data to the second Authentication server, another hash function is applied, to generate a different hash number. The differing hash functions and/or other associated information may be added, for example, by the vendor or by a subsidiary authenticator which may use the ASP for providing some authentication services.
FIG. 1 schematically illustrates a process for authenticating a SPC, according to one embodiment of the invention. A card 100 transmits a counter value 10 and a card-ID 20 over a connection 30, to an authentication server 200, where the card ID is used to lookup in a table 40. Optionally, connection 30 is encoded, for example using the cards one time code.
FIG. 2 schematically illustrates an authentication scheme of a device, according to another preferred embodiment of the invention. In this embodiment, a further security is provided by employing a security ID (e.g., a key) 50, at the card, for example one which is a public key of authentication server 200. The data may be hashed, as described above and used to lookup in a hash table 40, for example according to card-ID.
FIG. 3 schematically illustrates an authentication situation, wherein an authentication service provider 35 (ASP) authenticates a user 300:31 (i.e. potential buyer) before carrying out an Internet transaction with a merchant 36, in accordance with an exemplary embodiment of the invention. By using his PC 33, the user 300 enters the merchant's web page 36. Entering the merchant's web page 36 for the first time prompts the user to download a copy of the generic ActiveX control 37A to the user's PC 37B. If the cardholder wishes to carry out a transaction, he presses his card 31, which in turn launches the card's encoded details to the PC 33 by transmission signal 32. In an exemplary embodiment of the invention, the ActiveX control on the PC 33 has the capability to identify the transmitted signal 32; e.g. by detecting its frequency, transmission duration, checksum bytes or any combination of these attributes. If the transmitted signal is considered to be valid, the ActiveX control optionally digitally signs the card's data with the merchant web server's certificate. The ActiveX control optionally adds, to the signed data, the specific web page parameters, and optionally encrypts the resulting data by using the ASP's public key (or a public key relating to the merchant, for further verification by the ASP). The encrypted signal 32′ is then sent to the merchant's web server 36. The merchant optionally adds his public key 36A and forwards the data to the ASP 35 optionally using the Secure Sockets Layer (SSL) protocol, which is a protocol for managing the security of a message transmission on the Internet.
In an exemplary embodiment of the invention, the ASP owns the Authentication Server, which optionally performs one or both of two principal tasks, one of which is to verify the merchant, and the second is to authenticate the card itself. Verifying the merchant and the user is simultaneously carried out by the ASP by comparing the received merchants server's certificate to the ASP's list. If the ASP finds it in his list (or using a hash thereof compares it to a suitable list), it indicates that the merchant is really who he says he is (e.g., if the ASP himself gave the certificate to the merchant). On the other hand, since the merchant certificate was added to the user's data in the user's PC, it also indicates that the user is really who he says he his, and the card authentication may be carried out.
In an exemplary embodiment of the invention, the ActiveX 37A has an important role in the above-mentioned process, since it collects details from one or both of the merchant web page 36 and the user's PC (33), and digitally signs it with a server 30 certificate 36B of the merchant (which was provided to him by the ASP). The ActiveX also encrypts this data by using the public key of the ASP.
FIG. 4A illustrates an Authentication scheme, in accordance with an exemplary embodiment of the invention. When the card is manufactured, a pseudo-random numbers generator (RNG) generates at least the secret card's ID number 42, the initial counter value 41 and a 2-key T-DES (43). The 2-key T-DES is used to generate a random number, from the latter two types of data, each time the card is activated (i.e. ‘clicked’). The 2-key T-DES is optionally permanently stored inside the card. Another mechanism is optionally stored inside the card, of which purpose is to change the counter value 41 each time the card is clicked. Since the public card ID 44 typically does not play any role in the Authentication process, it is added to the transmitted signal 46 after the generation of the random data Xi (45). It should be noted that the 2-key T-DES is only an option to generate the random numbers in the card, and other pseudo-random generators may be used instead.
Since each transmission 46 from the card yields a progressively higher counter value, a new data content 45 is generated, which is a reflection of the secret card ID 42 and the counter's value 41. Knowing the rule by which the counter's value changes, an arbitrary-sized set of future numbers can be anticipated. In an exemplary embodiment of the invention, the card is expected to withstand at least 10,000 squeezes/presses, a set of 10,000 random numbers is hashed and stored in a database 50 or 40 (which is optionally contained in the Authentication server).
Optionally, whenever the card is clicked, the card's counter value increases according to the predefined rule. The increased counter's value 41 and the card's secret ID number 42 are used to generate a random number by applying the card's internal two predefined keys 43 (T-DES). The random number 45 is transmitted, along with the public card ID 44, to the Authentication server through a receiving means; e.g. a PC.
Optionally, upon receiving the transmitted data 46 from the card, the Authentication server extracts the public card ID (47), and generates from the remaining data (Xi) a hash number 48 (Yi), and the hashed number is searched for in the hash database/table column 49 of table 50.
In an exemplary embodiment of the invention, the rows in the hash table are arranged according to the original counter values; namely the first row of the table contains the hashed number 50: y1 which represents the initial counter's value, the second row represents the second counter's value and so on.
Optionally, the Authentication procedure is based on the counter click number (see table: 50). If the card is clicked for the first time, its counter's value is expected to be the initial random value as was set during the manufacturing process of the card. Upon receiving the transmitted data 46 from the card, the Authentication server applies the hash function 48 on this data to yield the first hash number y1 (49A). Since y1 represents the original first counter value, it is expected to be found in the first row in table 50, which corresponds to counter click number 1 (see table: 50). If y1 is not found in table 50 or is not found in a low row number, which can be for example pre-defined or a property of the user, which may be for example learned by the system, the card is assumed to be illegitimate.
When the Authentication server receives the second transmission 46 from the card, the server hashes 48 the data Xi (‘i’ denotes the card's click number) to yield another hash value 48: yi, after which it is searched for in table 50. It is taken into account that a cardholder might mistakenly squeeze his card several times between each two transactions, but nevertheless, there is still a logical limit to such accidental squeezes. A decision-making algorithm relating to this logical limit, may take into account different considerations. Therefore, if the second received data yields a hash number like y8, which represents counter click number 8, it might be considered a viable transmission of a legitimate card. If, however, the second received data yields a hash value like y155 (49B), the card, from which this data was transmitted, may be considered illegitimate, or other decisions may be taken.
The Authentication procedure optionally relates, therefore, to the difference between two consecutive card transmissions as received in the Authentication server and represented by the counter click number.
In an exemplary embodiment of the invention, the same Authentication procedure repeats itself every time the Authentication server receives a transmitted data. Each received data is hashed, searched for in the hash table and the corresponding counter click number is compared against the last known counter click number.
FIG. 4B illustrates a second, alternative, possible Authentication scheme. When the card is manufactured, a set 52 of pseudo-random numbers is generated, for example, by using a key 51 and hashed. The hash numbers are stored both in the card and in the server 50. Alternatively, original numbers may be stored in one or both locations. The random numbers generator/key 51 may be any generator known in the art. After completing the process of generating, hashing and storing the hash numbers, the key is discarded. Whenever a card is clicked, pointer 49C points to the (new) consecutive hash number, which is to be transmitted from the card. In the server, each received hash number (y1, y2, etc.) is searched for in table 50, and if it is found, the corresponding counter click number is determined.
The Authentication process is continued the same way as in the first scheme; namely by comparing the counter clicks of consecutive receptions from a card.
In some embodiments of the invention, information is transmitted from the authentication/identification device over the telephony system. The telephony system is typically designed to deliver audio signals, and thus high frequencies are filtered, and therefore transmission of ultrasonic signals is usually acceptable over the regular telephony system. Thus, a sonic signal is utilized in telephony implementations. A same card may be used to transmit simultaneously both sonic and ultrasonic signals. More particularly, in an exemplary embodiment of the invention, the information is transmitted utilizing Frequency Shift Keying of sonic signals (herein after will be referred to as multitone FSK).
In multitone FSK n different data symbols are represented by n different frequencies (i.e., each symbol is assigned a predefined frequency), so that the decoding of such a transmission is carried out by modulating data symbols utilizing transmission of signals of predefined frequencies. According to an exemplary embodiment of the invention four frequencies F0, F1, F2, and F3, are utilized for the multitone FSK signal.
FIG. 5A schematically illustrates the structure of the multitone FSK signal according to an exemplary embodiment of the invention. The transmission starts with a detection preamble comprising two frequencies F0=1/T0 and F1=1/T1 (e.g., pure sinusoids, however, other wave forms, for example pre-filtered, may be used instead). The first part of the detection preamble comprise a signal of frequency F0 over an interval of n0*Tb seconds, and the second part of the detection preamble comprise a signal of frequency F1 over an interval of n1*Tb, where n0 and n1 are integers and Tb is the duration in seconds of a symbol, called the symbol interval. The frequency sequence utilized for detection may be comprised from any number of predefined frequencies, for example, from the set of frequencies utilized for FSK encoding. The detection preamble is optionally followed by a synchronization sequence and then by the encoded data. Other orders and/or signal parts may be provided, for example, an error correction section.
The process of signal detection and encoding is illustrated in FIG. 6, in a form of a flow chart. The Hilbert transform {circumflex over (x)}n=F−1{H(ω)X(ω)} of the signal xn, received in 610, is utilized in 600 to obtain the complex analytical representation xn+j{circumflex over (x)}n of the received signal. The complex analytic representation xn+j{circumflex over (x)}n is used because under this model sinusoids, which are functions with time varying amplitudes, become complex exponentials of unit magnitude. Sinusoidal signals correlated with each other with an unknown delay can yield a zero output, even when the two are of the same frequency. This can be seen from the following
∫
a
b
cos
(
ω
t
)
cos
(
ω
t
+
θ
)
ⅆ
t
=
1
2
(
cos
θ
∫
a
b
ⅆ
t
+
∫
a
b
cos
(
2
ω
t
+
θ
)
ⅆ
t
)
for θ=−π/2, a=0, b=T, and ω=2π/T, we have
∫
0
T
cos
(
2
π
T
t
)
sin
(
2
π
T
t
)
ⅆ
t
=
0
For the complex analytic representation, however, we have
∫
0
T
exp
(
j
2
π
T
t
)
exp
(
-
j
(
2
π
T
t
+
θ
)
)
ⅆ
t
=
exp
(
-
j
θ
)
∫
0
T
ⅆ
t
=
T
exp
(
-
j
θ
)
So that this form of correlation detection is less vulnerable to the delay incurred between the correlated windows θ, or the duration of the correlation a-b, while allowing other signals to be erroneously detected. However, in the sonic transmission situation, considering expected echoes and/or frequency dependent artifacts and delays with signal generating hardware, such a tradeoff may be desirable. In addition, the tradeoff may allow a less computationally intensive detection method to be used, so that the PC may be used as a detector, rather than a dedicated DSP. Such a tradeoff may also be desirable in other problematic situations, for example, detecting RF signals transmitted by such a handheld card and detecting ultrasonic signals transmitted by the card and received by a non-dedicated microphone.
At 601, 602, 603, 604, and 605, the detection of a transmitted signal is performed, for example based on correlation tests as illustrated in FIG. 5B. The detection is, for example, based on the correlation of 601 obtained by the correlators 501 and 511. The correlation in 601 is performed on the received signal and a delayed portion of the received signal for the purpose of detecting the sinusoids F0 and F1 in the detection preamble of the transmission. Alternatively, other detection methods are used.
The correlator 501 correlates the samples received in the interval t−(n0Tb)/2≦τ≦t (Bank 0) with the samples received in the interval t−(n0Tb)≦τ≦t−(n0Tb)/2 (Bank 1), where t is a given moment in time. Similarly, the correlator 511 correlates the samples received in the interval t−(n0Tb)−(n1Tb)/2≦τ≦t−(n0Tb) (Bank 2) with the samples received in the interval t−(n0+n1)Tb≦τ≦t−(n0Tb)−(n1Tb)/2 (Bank 3). The choice of symbol interval Tb used in calculating the above correlations is optionally derived from considerations regarding the hardware that generates the transmission waveform. In accordance with the hardware, minmum and maximum symbol durations Tb are optionally identified, from which the correlator will use the minimum. In this way, the correlators may be better guaranteed to exclusively identify their intended frequencies.
In 602 the correlators results are validated, this is optionally performed utilizing slicers 502 and 512. The slicers 502 and 512 optionally issue a TRUE indication whenever the correlation result is greater that a predetermined threshold, η0 and η1, respectively. If the signal received is of the form depicted in FIG. 5A, than the output of correlators 501 and 511 will indicate a maximal correlation, and slicers 502 and 512 will issue a true indication, which will result in issuing a TRUE indication on 516 (i.e., signal detection). In an exemplary embodiment of the invention, the threshold is determined based on the noise level, for example, by analyzing the amplitude level in a known part of the signal for example, the preamble.
Alternatively or additionally to the above correlation metric, the complex analytic signal may be used to estimate the frequency in the given windows (F0 and F1). Assuming that the signal in the window is a complex exponential, then through the entire window, we can expect the waveform to look like
rn=ejωn+θ+vn, n=t−niTb, . . . , t
where vn is noise. Accordingly, multiplying any sample rn by its delay conjugated rn-1* will yield the constant
rnrn−1*=ejω+. . .
Thus, by finding the angle of the complex number rnrn−1* and averaging over the window n=t−niTb, . . . , t, an estimate of the frequency ω may be found. Optionally, the estimate is compared with a bounds on what frequency are allowed, which bound is optionally defined based on the inherent inaccuracies in the hardware that generates the signal and/or well as the minimum SNR allowed. Therefore, a signal may be accepted based on whether it has sufficient correlation energy (from the correlators 501 and 511) and/or whether it has an acceptable frequency.
On the other hand, if one of the correlation results, from 501 and 511, is not higher than the respective threshold (η0 or η1), the correlation is invalid, and the process starts all over again from 610 as a new sample is retrieved. If the correlation passes the validation test in 602, in 603, another test is optionally performed to determine whether the frequencies and the SNR (Signal to Noise Ratio) are within an acceptable tolerance for detection. The frequencies are optionally estimated using an approach described in “A Fast and Accurate Single Frequency Estimator.” by Kay, S M, IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol 37, No 12, December 1989, where the data used in the Kay analysis is the same as that already in the delay lines for using the correlator detector described previously, whereas the SNR is determined by using a window of delayed samples to estimate the frequency-dependent noise power. Once the noise power is estimated, detection is optionally determined using statistical hypothesis testing between the energy at the output of the received correlators and the energy at the same frequency, as estimated from the noise window. Ultimately, the threshold is optionally calculated using the Neyman-Pearson criterion. (This approach is described in U.S. patent application Ser. No. 09/570,399 of the same applicant). If it is determined that frequencies and the SNR are not acceptable for detection the process starts again from 610 (as a new sample is retrieved).
After high resolution estimation of the transmitted frequencies is performed, 605, the frequencies obtained are optionally tested in 604, to determine whether they are in an acceptable range in view of the frequencies deviations. As before, if it is determined that the estimated frequencies are not in an acceptable range, the process starts again from 610 (as a new sample is retrieved). If the estimated frequencies are in range, in 606 resampling (interpolation) is performed so that the symbol interval Tb will be an integer multiple ks of the new sampling interval Ts′, so that Tb=ksTs. By forcing this relationship through interpolation, the data frequencies, which are all related to the symbol interval by the relation
f
i
=
c
i
T
b
with ci an integer, will generally be orthogonal to each other in the digital domain with samples spaced by Ts′. In this way, when detection is performed, interference between symbols is optionally minimized. The resampled signal is then optionally utilized in 607 to calculate the signal's timing from a known preamble, (This approach is described in U.S. patent application Ser. No. 09/570,399 of the same applicant), which is utilized in 608 to further determine if the signal is valid. If it is determined that the signal is invalid, the process starts again from 610 (as a new sample is retrieved). If a valid indication is obtained in 608, detection is completed and the decoding operations are performed in 609. Other detection schemes, for example with fewer levels or with a greater number of levels and/or with additional and/or alternative verification criteria, may be used.
FIG. 7 schematically illustrates the decoding operation, according to a preferred embodiment of the invention. The resampled signal, obtained in 606, is correlated in correlators 701, 702, and 703. The number of correlators is optionally the same as the number of different frequencies (symbols) utilized for the FSK transmission. Alternatively, a single correlator may be reused. The resampled signal 700 is correlated with the estimated frequencies for each signal ω0, ω1, . . . , ωn, which were estimated, for example, from the Kay algorithm referenced above. The slicers 711, 712, and 713, test the output of each correlator 701, 702, and 703, respectively, to determine if a maximum correlation is obtained. Whenever the output of a correlator 701, 702 or 703, exceed the threshold of the corresponding slicer, a match indication is issued on the output of the respective slicer. This indication is actually a decoded symbol.
It will be appreciated that the above-described methods of authentication may be varied in many ways, for example, changing the order of steps or the number of security mechanism used. While the application has focused on card authentication over the Internet, other authentication situations are intended as well. In addition, a multiplicity of various features, both of methods and of devices has been described. Where methods are described, devices for carrying out the methods are also contemplated. It should be appreciated that different features may be combined in different ways. In particular, not all the features shown above in a particular embodiment are necessary in every similar exemplary embodiment of the invention. Further, combinations of the above features are also considered to be within the scope of some exemplary embodiments of the invention. Also within the scope of the invention are software hardware and/or firmware for carrying out the methods, and devices and/or software for programming existing devices to make the device comply with the methods described herein. Section headings where they appear are meant for clarity of browsing only and should not be construed as limiting the contents of a section to that particular section. When used in the following claims, the terms “comprises”, “includes”, “have ” and their conjugates mean “including but not limited to”.
It will be appreciated by a person skilled in the art that the present invention is not limited by what has thus far been described. Rather, the scope of the present invention is limited only by the following claims.
1. A method of authenticating, using an authentication server, the use of an authentication device by at least a first user over a communication network via an intermediate communication device at a vendor location, comprising:
receiving an interaction request to communicate with said intermediate device by said intermediate device from said first user;
responding to said interaction request by said intermediate device, to said first user;
receiving an authentication datagram by said intermediate device, said authentication datagram including data from the first user, in response to said responding;
protecting said datagram by said intermediate device, by at least one of changing, adding to, encrypting and signing of said datagram prior to said authenticating;
adding a vendor-associated information item to said protected datagram by said intermediate device to link together said vendor-associated information and said protected datagram, prior to said authenticating;
forwarding said linked vendor-associated information item and said protected datagram to said authentication server via the communication network, by said intermediate device, for authentication of at least one of the vendor and of the first user;
comparing said datagram or a hash thereof to a hash table at said server;
generating a binary validation answer having only a single bit by said server without an associated explanation;
outputting said binary validation answer for authentication of the vendor;
providing to at least one of the vendor and the user, by said authentication server, an indication of said authentication of at least one of the vendor and the user; and
continuing interacting with said first user by said intermediate device in response to said authentication,
wherein said intermediate device and said authentication server are separated from one another.
2. A method according to claim 1, wherein said intermediate device comprises a vendor World Wide Web site.
3. A method according to claim 2, wherein protecting comprises adding a signature associated with said vendor to said datagram.
4. A method according to claim 2, wherein protecting comprises encrypting said datagram.
5. A method according to claim 1, wherein said intermediate device comprises a user computing device.
6. A method according to claim 5, wherein said computing device adds a time stamp to said datagram.
7. A method according to claim 5, wherein said computing device encrypts said datagram.
8. A method according to claim 7, wherein said encryption uses a one time code.
9. A method according to claim 7, wherein said one time code is provided by a vendor for a particular session with said user.
10. A method according to claim 5, wherein said user computing device uses an embedded software component for said protecting.
11. A method according to claim 10, wherein said embedded software comprises an ActiveX component.
12. A method according to claim 10, wherein said component is cached on said user device.
13. A method according to claim 10, wherein said component requires a property value provided by a vendor to operate.
14. A method according to claim 1, wherein communication between said intermediate device and said server uses a secure connection.
15. A method according to claim 1, wherein different communication paths are used for said authentication and for transaction details from said user.
16. A method according to claim 1, wherein different communication paths are used for said authentication and for transaction details from a vendor to said authentication server.
17. A method according to claim 4, said encrypted datagram including data from at least a first user;
said method including, after said forwarding, receiving said encrypted datagram by said remote authentication server;
searching, at said server, for a hash value matching said datagram or a hash thereof;
generating a validation answer by said remote authentication server, responsive to said search,
wherein, said datagram includes a secret code and wherein said secret code exists only on said authentication device; and
outputting said validation answer for authentication of the first user.
18. A method according to claim 17, wherein said authentication device includes a plurality of secret codes that are generated to appear unrelated.
19. A method according to claim 1, further comprising:
generating a code set for the authentication device:
providing a code generating software;
providing at least one seed code for the first user for said software; generating said code set using said software and said seed; destroying said seed immediately after generating said code set; forwarding a first copy of said code set to the first user; and
storing a second copy said code set or an indication thereof on said authentication device;
prior to said authentication, forwarding said first copy to said remote authentication server for authentication of the user; and
authenticating the first user by matching between said first copy and said second copy or said indication thereof.
20. A method according to claim 19, comprising generating hash values for said code set.
21. A method according to claim 20, comprising generating a second set of hash values for said code set, using a different hash function for said second set.
22. A method according to claim 8 wherein said receiving an authentication datagram includes receiving an authentication datagram from at least said user by an intermediate device of a vendor prior to said authentication;
wherein said includes forwarding said authentication datagram to the authentication server for authentication of the vendor when at least an indication of said one time code that matches the vendor is provided with said datagram and forwarding said authentication datagram to the authentication server for authentication of the user when at least an indication of said one time code that matches said user is provided with said authentication datagram.
23. A method according to claim 22, comprising signing said datagram using said one time code by said user.
24. A method according to claim 1 wherein, after said forwarding, said method further comprises:
for each datagram received by the authentication server, matching said datagram or a hash of said datagram to a corresponding table;
for each datagram received, calculating a corresponding counter value from a matching position in said corresponding table; and
for each datagram received, if said authentication datagram is valid, increasing said corresponding counter over a previous counter, within a certain limit; and
for each datagram received, outputting a validation signal for the first user, in response to said corresponding counter value.
25. A method according to claim 24, comprising:
failing said authentication based on said increase being too large; and
allowing a subsequent authentication based on a further increase of said subsequent validation being below a second threshold.
26. A method according to claim 25, wherein said thresholds are the same.
27. A method according to claim 25, wherein said second threshold is smaller than said certain threshold.
28. A method according to claim 24, wherein said counter comprises an ordinal position in said table that is not apparently related to a series of generated random numbers.
29. A method according to claim 1, wherein said authentication datagram additionally includes data from a second user; and
wherein said forwarding includes forwarding said datagram to said authentication server for authentication of the second user.
30. A method according to claim 1, wherein said encrypted datagram additionally includes data from a second user; and wherein said outputting additionally includes outputting said validation answer for authentication of the second user.
31. A method according to claim 17, wherein said encrypted datagram additionally includes data from a second user; and
wherein said outputting additionally includes outputting said validation answer for authentication of the second user.
32. A method according to claim 19, wherein said remote device is additionally configured for authentication of a second user; and wherein said providing at least one seed code additionally includes providing at least one seed code for the second user for said software.
33. A method according to claim 24, wherein said method is additionally for remote validation of a second user; wherein said receiving additionally includes, from the second user, receiving an authentication datagram by an authentication server from a remote authentication device; and wherein said outputting additionally includes outputting a validation signal for the second user.
34. A method according to claim 2, carried out as part of a commercial interaction between said first user and said vendor, wherein said authentication does not require said first user to interact with a different web server.
35. A method according to claim 1, wherein said receiving, protecting and forwarding is secured by a software component which is downloaded to a computing device associated with said first user and used by said user for sending an interaction request.
36. A method according to claim 2, wherein said forwarded datagram includes payment instructions to said vendor.
37. A method according to claim 35, wherein said forwarding comprises forwarding by said software component.
38. A method according to claim 1, wherein said authentication comprises a single bit authentication answer without an associated explanation.
39. A method according to claim 19, comprising:
storing said code set or an indication thereof on an authentication server; and at a later time,
authenticating said authenticating device by said authentication server by comparing a datagram from said authentication device against said storage at said authentication server.
40. A method according to claim 1, wherein said authentication device comprises a card and wherein said use of an authentication device includes activating the card by pressing a button located on the card.
41. A method according to claim 1, said method further comprising authenticating, using the authentication server, at least the first user by a technique wherein the at least first user is required to input data, the data selected from a PIN, a password, a secret question, voice verification, and a digital signature.
42. A method according to claim 1, wherein said forwarding includes forwarding said protected datagram to said authentication server via the communication network, by said intermediate device, for verification of the intermediate device.
43. A method according to claim 42, wherein said authentication of the first users and said verification of the intermediate device are performed simultaneously.
44. A method according to claim 1, further comprising, before said receiving an interaction request, transmitting an acoustic signal by said authentication device to said intermediate communication device.
45. A method according to claim 1 wherein, after said forwarding, said authentication server transmits an indication of user authentication if said vendor-associated information is verified.
46. A method according to claim 1, wherein said user authentication and said vendor authentication are simultaneously provided.
47. A method according to claim 1, wherein said forwarding includes forwarding said protected datagram for authentication of the vendor.
48. A method according to claim 1, wherein said forwarding includes forwarding said protected datagram for authentication of the user.
49. A method according to claim 1, wherein said forwarding includes forwarding said protected datagram for authentication of both the vendor and the user.
50. A method according to claim 1, wherein said providing includes providing said indication to the vendor.
51. A method according to claim 1, wherein said providing includes providing said indication to the user.
52. A method according to claim 1, wherein said providing includes providing said indication to both the vendor and the user.
53. A method according to claim 1, wherein said authentication of at least one of the vendor and the user includes authentication of both the vendor and the user, and wherein said authentication of both the vendor and the user is performed simultaneously.