U.S. patent application number 13/620926 was filed with the patent office on 2013-03-14 for electronic message system with federation of trusted senders.
The applicant listed for this patent is Susan Rayl Goldman, Richard Landsman, Jay D. Logue, Timothy T. Sullivan. Invention is credited to Phillip Y. Goldman, Richard Landsman, Jay D. Logue, Timothy T. Sullivan.
Application Number | 20130067004 13/620926 |
Document ID | / |
Family ID | 37011646 |
Filed Date | 2013-03-14 |
United States Patent
Application |
20130067004 |
Kind Code |
A1 |
Logue; Jay D. ; et
al. |
March 14, 2013 |
Electronic Message System with Federation of Trusted Senders
Abstract
Systems and methods for allowing challenge messages to be sent
directly to a recipient's inbox where normally the challenge
message would be sent to a pending folder or deleted. Challenge
messages sent between federated messaging services contain a
federated token which can be identified, authenticated and
validated to determine whether the challenge message should be sent
to a recipient's inbox. The federated token can include an
authentication portion and a validation portion. Authentication
methods for the authentication portion can include, for example,
checksums, salts, hashes and digital signatures. Once a federated
token is authenticated by decrypting the authentication portion
according to one or more of these authentication methods, the
federated token is validated by determining the defined use-base
and determining whether the receipt of the federated token
satisfies the defined use.
Inventors: |
Logue; Jay D.; (San Jose,
CA) ; Sullivan; Timothy T.; (Portola Valley, CA)
; Landsman; Richard; (Scotts Valley, CA) ;
Goldman; Phillip Y.; (Los Altos, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Logue; Jay D.
Sullivan; Timothy T.
Landsman; Richard
Goldman; Susan Rayl |
San Jose
Portola Valley
Scotts Valley
Los Altos |
CA
CA
CA
CA |
US
US
US
US |
|
|
Family ID: |
37011646 |
Appl. No.: |
13/620926 |
Filed: |
September 15, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12633290 |
Dec 8, 2009 |
8359360 |
|
|
13620926 |
|
|
|
|
11080240 |
Mar 15, 2005 |
7650383 |
|
|
12633290 |
|
|
|
|
Current U.S.
Class: |
709/206 |
Current CPC
Class: |
H04L 63/0823 20130101;
H04L 63/12 20130101; H04L 51/12 20130101; H04L 63/08 20130101; H04L
63/0807 20130101; H04L 63/0442 20130101 |
Class at
Publication: |
709/206 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. In a server included in an electronic messaging system capable
of receiving challenge messages, a method of determining whether a
challenge message should be delivered to an intended recipient's
inbox comprising: receiving a challenge message; analyzing the
challenge message to identify whether the challenge message
contains a federated token; determining at least one of whether the
federated token is authentic and whether the federated token is
valid; and delivering the challenge message to an intended
recipient's inbox upon determining that the federated token is at
least one of authentic and valid.
2-25. (canceled)
Description
[0001] The present application is a continuation of U.S.
application Ser. No. 12/633,290 filed Dec. 8, 2009, which is a
division of U.S. application Ser. No. 11/080,240 filed Mar. 15,
2005, which is now issued as U.S. Pat. No. 7,650,383. Each of the
aforementioned patent(s) and application(s) are hereby incorporated
by reference in their entirety.
BACKGROUND OF THE INVENTION
[0002] 1. The Field of the Invention
[0003] The present invention relates generally to systems and
methods for delivering electronic messages. More particularly,
embodiments of the invention relate to allowing challenge messages
from federated messaging services to be delivered directly to a
recipient's inbox if the challenge message is authenticated and
validated.
[0004] 2. Relevant Technology
[0005] Electronic messaging or e-mail has become, for many people,
a primary means of communication. The ease by which a person is
able to send and receive an electronic message makes this form of
communication extremely attractive. Unfortunately, others utilize
electronic messaging to send unsolicited bulk electronic messages,
better known as "spam." Unsolicited electronic messages may include
commercial advertisements, political messaging, as well as
pornographic solicitations. Due to the influx of unsolicited
electronic messages, people have become wary of giving out their
electronic addresses for fear that their address will be sold to
would-be solicitors. Further, those who receive spam are often not
able to successfully request removal from mass e-mailing lists.
Moreover, it is difficult to ascertain who has sent unsolicited
electronic messages, since solicitors often use fabricated
addresses or refrain from including one altogether.
[0006] Challenge and response mechanisms have been developed as a
way to filter out unwanted electronic messages. When an electronic
message is directed to a recipient, the message is delivered to the
recipient only if the sender is identified as being authorized to
send electronic messages to the recipient. Usually, the recipient
has a list of approved senders, allowing the electronic message
from the approved senders to be sent to the recipient's inbox
without a challenge.
[0007] However, when the sender is unknown, a challenge message is
sent to the sender to verify that the sender's address is valid and
that the sender is a person as opposed to a machine before
delivering the senders email to the recipient's inbox. The sender
is confirmed by asking the sender to respond to the challenge
message in a way that affirmatively verifies that the sender is a
person as opposed to a machine. This challenge/response method is
quite successful in eliminating unsolicited electronic messages
that are sent by mass-mailers.
[0008] However, challenge/response systems are based on a set of
rules that do not take into consideration certain scenarios in
which a recipient would actually like to receive an incoming
message. In these situations, the challenge/response system is
overinclusive, meaning that the spam protection actually prevents
wanted messages from being sent directly to the recipient. FIGS. 1A
and 1B illustrate two such scenarios.
[0009] In one example, shown in FIG. 1A, user A sends an original
message from service A to user B associated with service B, the
original messaging being addressed TO beta@serviceB.com and FROM
alpha@serviceA.com. Assuming this is the first time that user B has
received an electronic message from user A, service B will generate
a challenge message. The server generating the challenge message,
in some cases, will place in the FROM field the identity of the
server, resulting in a challenge message being addressed TO
alpha@serviceA.com and FROM postmaster@serviceB.com. Because
service A will likely not recognize the address in the FROM field
of the challenge message, service A will send the incoming
challenge message to user A's pending folder and user A will not
have the opportunity to reply.
[0010] Furthermore, if service A utilizes a challenge/response
mechanism, service A will issue a second challenge in response to
the incoming first challenge message containing the unknown address
(i.e., postmaster@serviceB.com). The second challenge sent to
service B may result in yet another challenge being sent to service
A. Meanwhile, the original message from user A remains undelivered
to user B at user B's server. Appreciably, a "challenge war" has
been created in which multiple challenges are sent to both parties,
and neither party is aware of the existence of an original message
and/or challenge message.
[0011] In another example, shown in FIG. 1B, user A associated with
messaging service A sends an original message to user B associated
with messaging service B, the original messaging being addressed TO
beta@serviceB.com and FROM alpha@serviceA.com. Suppose user B's
service B then forwards the message to user B's remote account user
B1 associated with service C. With some forwarding mechanisms, the
forwarding protocol creates an electronic message in which the FROM
field uses the address of the original sender. Thus, a forwarded
message may be addressed TO beta1remote@serviceC.com and FROM
alpha@serviceA.com. Assuming this is the first time service C has
received a message from user A, service C send a challenge message
to user A. Thus, a challenge message from service C will be
addressed TO alpha@serviceA.com from beta1remote@serviceC.com or
postmaster@serviceC.com. The challenge message will be sent to A's
pending folder since the FROM address is unknown and the original
message left undelivered to user B1.
[0012] Further, service A could send a subsequent challenge message
to service C if it does not recognize the FROM address. However,
because service C is unfamiliar with user A's address, the
challenge message is sent to user B1's pending folder. Thus, both
user A and user B1 will have challenge messages in their pending
folders, but will not be aware of them or may become aware of them
after the time for responding to the challenge message has expired.
Furthermore, repeated attempts by user A to send messages to user B
will continue to result in additional challenges by both services A
and C, which creates a "challenge war" situation in which both
parties are sending challenges and yet neither party is aware of
the incoming challenges, while, in reality, it is likely that user
A and user B1 would not consider messages from each other as
spam.
[0013] Thus, conventional challenge and response filtering systems
are over inclusive and present users from receiving desired
challenge messages in situations where the user would actually like
to receive the message. It would be advantageous to provide message
filtering systems that are capable of delivering such electronic
messages without issuing a challenge message or otherwise failing
to deliver the messages.
BRIEF SUMMARY OF THE INVENTION
[0014] The present invention relates to systems and methods for
delivering electronic messages including challenge messages while
preventing challenge wars. Challenge wars can occur when a user
sends a challenge message to a recipient, but the challenge message
is sent to a pending folder or deleted because it is viewed by the
recipient's filtering mechanism as spam. The recipient may then
send a responding challenge to the user, whose filtering mechanism
might also view the return challenge message as spam. Thus, both
parties send messages to each other that they would like to
receive, yet neither one receives the message. The present
invention provides that a federated token can be used to identify
challenge messages and, if the federated token is properly
authorized, allows the challenge message to be sent directly to a
recipient's inbox. This provides the recipient with the opportunity
to respond to the challenge and also prevents further challenges
from ensuing on either end.
[0015] In one embodiment, a computer networked system is provided
in which a first federated messaging service communicates with a
second federated messaging service via, e.g., the Internet. Both
federated messaging services may have one or more user computers
and one or more servers. The server contains a processor that
includes a messaging program, a tokenization module and an
authorization module. The server may also have access to one or
more databases and a user computer's inbox and pending folder.
[0016] When a server generates a challenge message, the server
inserts a federated token into the challenge message. The federated
token may be inserted into any suitable portion of the challenge
message. The challenge message is then delivered to a recipient
server. The federated token is a unique string which acts as a
marker on challenge messages. In one embodiment, the federated
token includes one or more of a server identifier, a version
indicator, a time stamp, a uniquifier, a usage code, an
authentication code, and the domain identifier. The time stamp,
uniquifier and usage code constitute a validation portion while the
authentication code constitutes an authentication portion. In other
embodiments, the same code can serve for both authentication
purposes and validation purposes. The usage code can be an
encrypted code which notifies the receiving server of the defined
use-base for the federated token. The use basis can be, for
example, single-use, multiple-use, or time-based usage. The
authentication code can be an encrypted value which enables servers
to verify the identity of the transmitting server and to verify the
integrity of the message. Authentication methods for forming the
authentication code include, but are not limited to, checksums,
salts, hashes, and digital signatures.
[0017] When a challenge message is received with what appears to be
a federated token, the receiving server authenticates and validates
the federated token. Authentication can include decrypting the
authentication code. For example, the receiving server can
recalculate a checksum to verify that the recalculated checksum is
the same as the original checksum in the challenge message.
Validation includes identifying the use-basis for the federated
token and then determining whether the receipt of the federated
token satisfied the use-basis criteria.
[0018] Tables can be stored in transmitting and receiving servers
to maintain information necessary to generate, authenticate and/or
validate a federated token. This information can include private
and partner keys for those encryption methods that require same.
Keys can be exchanged between servers at the same time as issuing a
challenge message or in a subsequent secure message using any of
the cryptographic techniques or those know in the art, including
the use of digital certificates.
[0019] These and other features of the present invention will
become more fully apparent from the following description and
appended claims, or may be learned by the practice of the invention
as set forth hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] To further clarify the above and other advantages and
features of the present invention, a more particular description of
the invention will be rendered by reference to specific embodiments
thereof which are illustrated in the appended drawings. It is
appreciated that these drawings depict only typical embodiments of
the invention and are therefore not to be considered limiting of
its scope. The invention will be described and explained with
additional specificity and detail through the use of the
accompanying drawings in which:
[0021] FIG. 1A illustrates diagrammatically a first prior art
scenario where multiple challenges are generated;
[0022] FIG. 1B illustrates diagrammatically a second prior art
scenario where multiple challenge messages are generated;
[0023] FIG. 2 illustrates an exemplary network environment and
system for implementing features of the present invention;
[0024] FIG. 3 illustrates one embodiment of the data structure of a
challenge message;
[0025] FIGS. 4A and 4B illustrate one embodiment of a data
structure for maintaining partner key and private key information;
and
[0026] FIG. 5 illustrates one embodiment of a data structure for
maintaining federated token usage.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0027] The present invention relates to challenge/response
electronic messaging systems and methods for delivering challenge
messages to a recipient's inbox in situations where it is likely
that the recipient would desire to receive the challenge message.
Advantageously, the present invention is useful in avoiding
"challenge wars" which can occur when two messaging services send
crossing challenge messages and where the crossing challenge
messages are delivered to pending folders or deleted on each
messaging service so that both parties are unaware of the challenge
event. In certain situations, both parties would actually like to
be provided the opportunity to respond to the challenge message in
order to establish authorized communication with each other. Thus,
the present invention is directed to systems and methods for
identifying challenge messages and allowing them to be sent
directly to a recipient's inbox instead of being handled as
spam.
[0028] The present invention provides that two or more messaging
services can become "federated." As used herein, the term
"federated messaging service" refers to a messaging service that
has implemented systems and protocols which allows a federated
messaging service to generate and/or authorize challenge messages.
Challenge messages sent from one federated messaging service to
another contain a "federated token." As used herein, the term
"federated token" refers to a marker, indicator or tag that
federated messaging services use to identify and authorize
challenge messages. As used herein, the term "authorized challenge
message" refers to a challenge message containing a federated token
where the federated token has been identified, authenticated and
validated in order to verify that the challenge message was sent
from one of the federated messaging services and not by an
unauthorized third party. Once a federated messaging service
authorizes a challenge message, the authorized challenge message is
delivered to the intended user's inbox.
[0029] Further, most filtering mechanisms do not parse an incoming
message to identify the content in order to determine whether or
not the message is a challenge message. Rather, the filtering
mechanisms usually operate on a set of rules that identify known
senders. Thus, in certain situations, it may not be obvious to
messaging services that an incoming message is a challenge message
to which the recipient would like to respond. Federated tokens
identify the presence of a challenge message and enable challenge
messages to be recognized even when the sender may be unknown.
[0030] Details of the network environment, data structure of the
federated tokens, methods for authentication and validation, and
examples illustrating the present invention are provided as
follows.
1. Computer Environment and Data Structure of Authorized Challenge
Messages
[0031] Turning to FIG. 2, an exemplary network system 100 is
illustrated in which one or more users are able to send electronic
messages to each other via, e.g., the Internet 101. System 100
includes two or more messaging services 102, 104, 106, each
including one or more client devices or user computers 108, 110,
112, respectively, each device representing a user. Each messaging
service 102, 104, 106 includes one or more servers 114, 116, 118
which act as portals for outgoing and incoming challenge messages
to and from one service to another. Each server 114, 116, 118 can
be connected to each other via, for example, the Internet 101.
[0032] As used herein, the term "messaging service" refers to a
system which provides electronic messaging capabilities to one or
more users. Each messaging service 102, 104, 106 is generally
identified by a different domain name. Each domain name is
associated with one or more servers (each having an IP address).
Thus, users associated with a particular messaging service will use
a common domain name, but may send and receive electronic messages
through multiple servers associated with the domain name. Each
messaging service 102, 104, 106 thus can include one or more
servers, with servers 114, 116, 118 being representative only of
one of the servers associated with a domain name. Messaging
services 102, 104, 106 can be an intranet, local area network
(LAN), or wide area network (WAN) or any network of any size.
[0033] It will be appreciated that each server 114, 116, 118 can
include the processors, databases, and memory required in order to
fully implement a messaging system. This may include a filtering
mechanism for identifying and filtering potential spam messages.
Each user computer 108, 110, 112 may also include messaging
programs which generate and otherwise handle electronic messages
locally for each user. For example, each user computer 108, 110 can
include an inbox 120, 122 and a pending folder 124, 126,
respectively. Server 114, 116 can filter electronic messages and
send them to the inbox or pending folder accordingly. As used
herein, the term "electronic message" generally refers to an
electronic message in any format such at, but not limited to,
e-mail, voice mail, voice-over-IP, text messaging, instant
messaging, and the like.
[0034] As defined above, federated messaging services include
systems and protocols for generating, identifying and/or
authorizing challenge messages. Thus, in one embodiment of FIG. 2,
messaging services 102, 104 are "federated messaging services"
since they contain an authorization module 128, 130 and a
tokenization module 132, 134, respectively, that can be implemented
in, for example, servers 114 and 116, respectively. In contrast,
messaging service 106 is not a federated messaging service but is
provided to illustrate that the present invention can be
implemented between federated and non-federated messaging
services.
[0035] In one embodiment, both servers 114, 116 provide electronic
messaging services using a challenge/response filtering system. The
challenge/response protocol can be any configuration known in the
art. Generally, challenge/response protocols use challenge messages
that require a human response to determine whether an unidentified
sender is human as opposed to a machine by requiring the sending
entity to perform a specified task that a machine is unlikely to be
capable of performing. Examples of suitable challenge/response
systems that can be adapted for use with the methods disclosed
herein are described in U.S. patent application Ser. No.
10/174,561, filed Jun. 18, 2002 and U.S. Pat. No. 6,199,102, issued
Mar. 6, 2001, both of which are incorporated herein by
reference.
[0036] However, other embodiments are contemplated in which only
one of servers 114, 116 implements a challenge/response filtering
mechanism and the other server includes another spam filtering
mechanism including, but not limited to, address or white lists, or
other mechanisms which sends messages from unidentified senders to
a pending folder. Thus, while the present invention is directed to
avoiding bi-directional challenge wars in which both servers 114,
116 include a challenge/response system, the present invention may
also be used to avoid the situation where the challenge is
unidirectional. So, for example, server 114 of messaging service
102 can implement a challenge/response system and can include both
an authorization module 128 and a tokenization module 132 that can
generate and identify authorized challenge messages. Meanwhile,
server 116 of messaging service 104 implements authorized address
lists to filter unwanted mail and can include only an authorization
module 130 that only identifies challenge messages, but does not
generate them. Furthermore, depending on the desired configuration,
messaging service 102 could include only a tokenization module 132
for generating authorized challenge messages, but not an
authorization module 128 for identifying challenge messages, thus
continuing to send challenge messages to the user's pending folder.
Thus, it will be appreciated that various configurations for
implementing the present invention may be possible.
[0037] Turning back to FIG. 2, when server 114 associated with
federated messaging system 102 creates a challenge message 136 and
initiates transmission thereof, the challenge message is processed
by tokenization module 132. A federated token 138 is incorporated
into the challenge message, which is then sent to, for example,
server 116 associated with messaging system 104. The structure of
federated tokens 138 and the manner in which they are incorporated
into challenge messages 136 are described in more detail below.
After the placement of federated token 138 into challenge message
136, the message is transmitted by, for example, the SMTP server
system. Server 114 and/or recipient server 116 may be configured to
operate as SMTP servers. At this point, a copy of the federated
token 138 is not stored on the server 114. However, keys used to
generate the federated token 138 may be stored at server 114, as
will be described in further detail below.
[0038] When server 116 receives the challenge message 136
containing the federated token 128, authorization module 130 of
server 116 evaluates challenge message 136 to determine (1) the
existence of a federated token 138, (2) whether the federated token
138 is authentic; and (3) whether the federated token 138 is valid.
Identification of a federated token 138 is indicative that a
challenge message is from a federated messaging service. However,
third parties may be able to intercept or copy the federated token.
Thus, additional measures are provided to ensure that the federated
token 138 is authentic and valid to determine whether the challenge
message 136 is an authorized challenge message coming from a
federated messaging service. During the authorization phase, server
116 can reference a database 142. (Server 114 is associated also
with a database 140). Further, the authentication and/or validation
step may require communication between the two servers 114, 116 or
other servers to exchange encryption keys. For example, a
certificate authorizing server 150 communicating with a database
152 can be used for exchanging keys required to carry out secure
transactions, as will be described in more detail below.
[0039] If the challenge message 136 is an authorized challenge
message, the server 116 places the authorized challenge message in
the user's inbox 122, in effect delivering the challenge message to
the user device 110. If no federated token is included in the
challenge message 136 or if the federated token is determined to be
not authentic or invalid, the challenge message is either discarded
or placed in pending folder 126. Depending on the nature of the
filtering system existing in server 116, a challenge message may
then be sent to the entity that purports to have sent the challenge
message 136.
2. Structure of Federated Tokens
[0040] With reference to FIG. 3, an exemplary data structure of a
challenge message 136 is shown after it has been processed by a
tokenization module 132, 134. Challenge message 136 includes
envelope 144 and content 146. The content includes a header 148 and
a body 149. The envelope 144 contains "envelope sender" and
"envelope receiver" fields. The envelope 144 and content 146 are
generated by the messaging program on, for example, the user
computer 108 or server 114. Generally, the messaging program
automatically creates the envelope using the information provided
in the "To:" and "From:" header fields in header 148. In addition
to the "To:" and "From:" fields, header 144 also contains other
fields such as "Subject:", "Cc:", and "Date:". The message body 149
includes everything else in the content 146. Particularly in the
case of challenge messages, the message body 149 will typically
contain a message identifying the message as a challenge and
requesting a response that is typically only performable by a
human.
[0041] Generally, a federated token 138 can be embedded in any part
of the challenge message 136. Exemplarily, in FIG. 3, the federated
token 138 is shown as appended to or embedded in the content 146 of
challenge message 136. The federated token 138 is generated by
authorization module 128 of server 114. The federated token 138 is
generally a unique string which acts as a marker, indicator or tag
in the challenge messages 136 to identify that the challenge
message was sent from a federated messaging service. The federated
token 138 may have a variety of features in order to create a
unique string. Generally, the data structure of the federated token
138 allows the federated token to be both authenticated and
validated.
[0042] The following discussion relates to a specific example of a
federated token 138 and the various fields that may be contained by
the federated token. The following example represents only one way
of implementing the federated tokens and any of a variety of other
techniques can be used. In one embodiment, the federated token 138
is inserted in a field in message header 148 that specifically
identifies the server from which the challenge message is sent.
[0043] The federated token 138 generally includes a server
identifier portion, an authentication portion and a validation
portion. It will be appreciated that the same alphanumeric code can
be used for one or more purposes. In one embodiment, the federated
token 138 includes a server identifier 202, a version indicator
204, a time stamp 206, a uniquifier 208, a use code 209, an
authentication code 210, and the domain identifier 212. The server
identifier 202 serves to identify the particular server from which
the challenge message is sent. The server identifier 202 can be,
e.g., the server IP address. The version 204 is typically a one
character version indicator that indicates the version of the
federated token. The time stamp 206 indicates the time that the
federated token was generated and can be based on server's
geographic location. The uniquifier 208 is typically an unsigned
integer that is unique for each federated token generated on a
particular server 114 in the same second. The use code 209 is an
encrypted value which identifies the use basis of a particular
federated token, as will be described in further detail below. The
authentication code 210 is an encrypted value which verifies the
source and/or integrity of the federated token, as will be
described below. In this embodiment, the time stamp 206, uniquifier
208 and use code 209 are used for validation purposes while the
authentication code 210 is used for authentication purposes. This
example illustrates that authentication portions and validation
portions are separate, while in other embodiments, they may be
combined in a single portion of the federated token 138.
[0044] While the mere existence of a federated token in a challenge
message does not ensure that the sender of a challenge message is
associated with a federated messaging service, the federated token
nonetheless can be used to confirm this fact by using one or both
of the authentication and validation features. By authenticating
and validating the federated token, the receiving messaging service
can verify that the challenge message was sent from a federated
messaging service. Features in the data structure of the federated
token allow the federate token to be authenticated and validated as
discussed above.
3. Authentication Methods
[0045] As used herein, "authentication" refers to any process used
to establish that a challenge message was generated by a server
associated with a federated messaging service. This can include
protocols used to identify federated tokens and for establishing
that the challenge message has maintained integrity during
transmission. As used herein, the term "transmitting authorized
server" will refer to a server associated with a federated
messaging service that at least contains systems and protocols for
generating federated tokens found in challenge messages. A
"receiving authorized server" refers to a server associated with a
federated messaging service that at least contains systems and
protocols for authorizing federated tokens found in challenge
messages. For purposes of this description, server 114 will be a
transmitting authorized server and server 116 will be a receiving
authorized server. It is not necessary that authorized challenge
messages be sent only to transmitting authorized servers or
receiving authorized servers. In some cases, a transmitting
authorized server may include a federated token in every challenge
message that is issued in case a receiving server is an authorized
server.
[0046] As discussed above, the federated token includes one or more
authentication codes 210. Each authentication code 210 preferably
comprises at least one authentication technique, with the
understanding that additional authentication techniques provide
added levels of security. Authentication techniques may include,
but are not limited to, encryption/decryption, checksums, hashes,
digital signatures, and digital certificates. Many of the
authentication techniques require knowledge of partner keys and
private keys to encrypt or decrypt the authentication code in the
federated token as well as for other uses that may be associated
with handling a federated token. When the transmitting authorized
server 114 generates the federated token, it uses one or more keys
to perform the encryption. The receiving authorized server 116 then
uses a key(s) to decrypt the federated token. Transmission between
a transmitting authorized server 114 and a receiving authorized
server 116 uses at least one set of keys in this example. However,
a set of keys may exist for each authentication code 210. In
addition, a set of keys may exist for each direction in which a
challenge message is transmitted.
[0047] The types of keys depend on the nature of the encryption.
Symmetric encryption requires two of the same keys to encrypt and
decrypt while asymmetric encryption has a private key to encrypt
and a partner key to decrypt. As used herein, the term "partner
key" refers to a key known by one or more receiving authorized
server 116 to decrypt information coming from a transmitting
authorized server 114. In this sense, a "partner key" is similar to
a public key and the fact that additional parties know the partner
key is not of concern because as long as the private keys of the
transmitting authorized servers 114 are kept confidential, an
intercepting third party will be unable to use the partner key to
forge a federated token.
[0048] In one embodiment, the authentication code 210 comprises a
checksum. A checksum is an integer value computed using a series of
arithmetic operations on a particular outgoing challenge message.
The checksum is located in the federated token and sent along with
the challenge message. At the receiving authorized server, the
server recalculates the checksum for the received challenge
message. If the recalculated checksum is different than the
original checksum, then it is an indicator that the challenge
message has been tampered with. In addition to verifying the
integrity of the message, a checksum can be used to verify the
origination of a message. This can be done by communicating
appropriate session or partner keys in order to allow the receiving
authorized server to recalculate the checksum. In addition, a
checksum can be used in combination with other authentication
methods. For example, a checksum can be made more secure by adding
a private salt value to the plain text of the challenge message
from which the checksum is generated. The private salt value is
randomly generated text that is placed in the plaintext so that
when the plaintext is encrypted, a different checksum is created
each time, resulting in a checksum which is almost impossible to
reproduce.
[0049] In another embodiment, the authentication code 210 may also
comprise a hash value (also called a message digest). A hash value
is a small amount of binary data that is generated from a text or
other string of bytes. Hash values, like checksums, can be used to
ensure the integrity of a federated token and are included in the
federated token. In addition, hash values use asymmetric encryption
methods to ensure the authenticity of the result, the sender using
a private key to encrypt and a recipient using a partner key to
decrypt. The receiving authorized server 116 recalculates the hash
value to compare it with the original hash value that was sent with
the message. If the recalculation results in a different hash
value, then the receiving authorized server 116 can be almost
certain that the challenge message has been tampered with.
[0050] In yet another embodiment, authentication code 210 can
comprise a digital signature to verify that the federated token was
generated by a transmitting authorized server. A digital signature
consists of a small amount of binary data that is encrypted using
the sender's private key. Successfully decrypting the digital
signature using a partner key verifies that a message was sent from
a particular user.
[0051] In one embodiment, a hash and a digital signature can be
combined to verify the integrity and identity of the challenge
message. The transmitting authorized server creates a hash value
from the message and then signs the hash value using its private
key. The receiving authorized server must have both the challenge
message and the signature to successfully authenticate the
origination of the message. First, a hash value must be created
from the challenge message the same way the original hash value was
created. The signature is also verified using the transmitting
server's partner key. The recalculated hash value and verified
digital signature are verified against the original hash value and
digital signature to verify the integrity and origination of the
challenge message.
[0052] Algorithms for performing the authentication features of the
present invention thus can include, but are not limited to checksum
algorithms such as, but not limited to, Cyclic Redundancy Check
algorithms, CRC-8, CRC-16, and CRC-32; hashing algorithms such as,
but not limited to, MD2, MD4, MD5, and Secure Hashing Algorithm
(SHA); digital signature algorithms such as, but not limited to,
digital signature algorithm (DSA) and digital signature standard
(DSS); symmetrical encryption algorithms such as, but not limited
to, Message Authentication Code (MAC) algorithms, RC2, RC4 and the
Data Encryption Standard (DES); and combinations thereof. Where
symmetric encryption algorithms are used, session keys should be
changed often to prevent the possibility of third parties reducing
the integrity of the secure communication.
[0053] As discussed above, more than one authentication code 210
may be provided to increase the difficulty of reproducing a
federated token. For example, a checksum can be used with a salt
value. A hash value can be used in combination with a digital
signature. Asymmetric encryption can be used to encrypt session
keys or digital signatures. It will be appreciated that the
receiving authorized server 116 must have the partner key for each
authentication code 210 used to create the federated tokens. For
example, where both a hash value and a digital signature are
implemented, the receiving authorized server 116 must have a first
partner key for calculating the hash value and a second partner key
for verifying the digital signature.
[0054] In asymmetric encryption, the same parties can use the same
pair of keys to send authorized challenge messages to each other.
For example, transmitting authorized server 114 can use a private
key to encrypt a message and receiving authorized server 116 uses a
partner key decrypt. When sending a return message, server 116
could use the partner key to encrypt the message and server 114
could use the private key to decrypt the message. Thus, in some
cases, only one set of keys need exist. However, to provide added
levels of security, it may be preferably to provide only one-way
encryption by requiring each transmitting authorized server 114 to
only generate federated tokens using a private key and each
receiving authorized server 116 authorize the federated token using
a partner key. That way, a third party cannot access a partner key
and forge a federated token and send it to a transmitting
authorized server 114 which could possibly authorized the federated
token using the corresponding private key.
[0055] As shown in FIG. 2, each authorized server 114, 116 can
reference a database 140, 142 to store and retrieve private and
partner keys or any other information required to generate or
authorize a federated token. With reference to FIGS. 4A and 4B, an
exemplary data structure for a federated token generating table 250
and a federated token authorizing table 252 are shown, each of
which can be stored in database 140 or 142. Databases 250 and 252
can be stored exemplarily in database 140 so that authorized server
114 is able to access the information. The information in
generating table 250 is used to generate a federated token to be
placed in an outgoing challenge message while the information in
authorizing table 252 is used to authorize a federated token in a
received challenge message. It will be appreciated that the number
of databases and types of fields will depend on whether the server
114, 116 has both generation module 132 and authorization modules
128.
[0056] Generating table 250 includes exemplarily a field 254 to
identify the particular authentication method used to generate the
authentication code 210 of the federated token and a field 256 for
the private key and field 258 for the partner key for each
authentication method, assuming that the authentication method
requires private and partner keys. For example, the authentication
method 254 may include a checksum with a salt value 260, a hash 262
and a digital signature 264 for generating authentication code 210,
each possibly requiring the use of a private key and partner key as
reflected in fields 256, 258. In configurations where not private
keys or partner keys are required it may not be necessary to have a
generating table 250 at all. It will also be appreciated that where
other portions of the federate token require the use of
private/partner keys, e.g., the validation portion, the table 250
may incorporate additional fields to track the various keys or they
may be stored in a separate table.
[0057] Authorizing table 252 includes exemplarily a table 266, 268
associated with two transmitting authorized servers that send a
challenge message to a particular receiving authorized server. Each
table 266, 268 includes a field 270 for authentication methods that
each transmitting authorized server uses to generate security code
210 of the federated token and a field 272 to store the partner key
to decrypt or recalculate the particular authentication method. For
example, in table 266 could be stored the partner keys shown in
generating table 250 for the same server. Field 270 identifies as
authentication methods a checksum with a salt value 274, a hash
276, and a digital signature 278. Corresponding partner keys are
maintained in field 272 and should correspond to the partner keys
maintained by the transmitting authorized server.
[0058] In contrast, the table 268 for a second transmitting
authorized server reflects in field 270 that the authentication
methods are a hash 290 and a digital signature 282, with partner
keys being stored in field 268. It will also be appreciated that
where other portions of the federate token require the use of a
private or partner key, e.g., the validation portion, the table 252
may incorporate additional fields to track the various keys or they
may be stored in a separate table. Any of a variety of data
structures containing the necessary information can be used, and
any such data structure is referred to herein as a tables 250 and
252.
[0059] Keys can be exchanged between authorized servers using a
variety of methods. In one embodiment, private keys and/or partner
keys can be conveyed to an authorized server when the authorized
server first begins implementing the federated challenge message
protocol. This can be done in person, over the phone, sending a
confidential disc drive, and the like.
[0060] Alternatively, the partner keys can be sent over a network
with the transmitted challenge message or in a subsequent secure
message. In one embodiment, a certificate authorizing agency,
illustrated in FIG. 2 as server 150, can serve as a certificate
authorizing source for sharing partner keys. The certificate
authorizing server 150 is shown independent of other messaging
services 102, 104, 106, but can be part of a messaging service if
desired. When an authorized server 114, 116 first implements the
messaging protocol, they may create their own private and partner
keys, but must be able to securely share the partner key with other
messaging services. Thus, the certificate authorizing server 150
verifies to a recipient of a partner key that the partner key is
valid. To ensure that the partner key information is coming from
the certificate authorizing server 150, the certificate authorizing
server uses cryptographic methods, such as a digital
certificate.
[0061] In the embodiment where the certificate authorizing server
150 uses certification, the certificate authorizing server
communicates with a database 152 to store information on each
authorized server 114, 116 and the partner keys associated with
each level of security for each server. Thus, the structure of
database 152 can look much like tables 266, 268 of FIG. 4B. A
transmitting authorized server 114 can generate a challenge message
containing the server's partner key and send the challenge message
to the certificate authorizing server 150 with a request to certify
the challenge message. The request includes information such as the
transmitting authorized server's IP address, the partner key(s), or
other identifying information. The certificate authorizing server
150 verifies the identity of the transmitting authorized server
(e.g., using partner key/private key encryption) and creates a
signature portion to the challenge message, signed with the
certificate authorizing server 150's private key, thus forming a
certified challenge message. The certified challenge message is
sent back to the transmitting authorized server. The transmitting
authorized server can verify that the certified challenge message
came from the certificate authorizing server 150 using the
certificate authorizing server's partner key to verify the
signature portion of the certified authorizing server 150.
[0062] The transmitting authorized server 114 can then forward the
certified challenge message to a receiving authorized server 116.
The receiving authorized server 116 (who also has access to the
certificate authorizing server 150 partner key) can verify that the
signature portion of the certified challenge message was signed by
the certificate authorizing server 150. Thus, the receiving
authorized server 116 can be sure that the partner key contained in
the certified challenge message is the transmitting authorized
server 114 partner key. Because the certificate authorizing server
150 only contains a store of partner keys, if a third party were to
intercept a certified challenge message, it would not matter
because, in most cases, both a private key and partner key would be
need to complete any secure transaction.
[0063] It will be appreciated that the certification methods
provided above are only one way of exchanging keys. In one
embodiment, the certificate authorizing server 150 can forward a
certified challenge message directly to the receiving authorized
server 116. In addition, the transmitting authorized server 114 and
receiving authorized server 116 can use other means for exchanging
keys. For example, keys can be exchanged directly between the
servers 114, 116 without using a certificate authorizing server
150. Keys can be included in a challenge message or in a subsequent
secure message. Additionally, authentication methods, such as those
described above, may be used to ensure that keys are exchanged
between servers 114, 116 safely and securely.
4. Validation Methods
[0064] As used herein, "validation" refers to any steps related to
ensuring that the federated token is used appropriately. That is,
even if the federated token is authentic, it may not necessarily be
valid. Federated tokens are generally valid only for a specified
period of time or for a single or limited number of uses. There may
be unusual cases in which a person succeeds in accessing a
federated token and attempts to misuses it. However, a federated
token is limited in number of times or period of time in which it
can be used. Moreover, someone who has access to a valid federated
token and might misuse it would also generally have access to a
valid "To:" and "From:" address pair that can be used to
successfully send unwanted messages to the user (i.e., the party
identified by the "From:" address) in an unlimited manner. In other
words, the use of a federated token does not compromise message
security and is useful in permitting certain desirable messages to
be successfully delivered as described herein.
[0065] A particular federated token 138 can be configured to have a
particular usage. For example, a specified federated token may be
generated based on a single-use, multiple-use, or timed-use basis.
Usage code 209 contains the information so that the receiving
authorized server 116 can ascertain the defined usage for each
federated token 138. A common coding can be used among servers 114,
116 so that authorized servers will consistently observe the same
usage rules. As such, a small coding file may be placed on the
generating table 250 and/or authorizing table 252 for each
transmitting authorized server and/or receiving authorized server
to reference. However, such a coding file has a minimal footprint
and avoids the need for a larger table to be stored for each
federated token. Further, the receiving authorized server 116 may
store additional information to ascertain whether a federated token
is valid need store a table of any extensive size since the
federated token is being evaluated at the receiving end.
[0066] Servers 114, 116 can access databases 140, 142,
respectively, to maintain tables which monitor the use of federated
tokens. As shown in FIG. 5, a table 300 tracks how a particular
federated token can be and is being used. The table 300 has a field
302 that identifies the delivery ticket, a field 304 for
identifying the defined use basis, field 306 for tracking instances
of actual use, and a field 308 containing a validity flag. For
example, as shown in FIG. 5, a first federated token may be valid
for one use while a second federated token may be valid for 1 week.
The use-basis of the federated token can be identified from the
federated token itself using a uniform coding that is discernable
only by federated messaging services. In addition, most uses will
be extremely limited to a few uses or to a small amount of time so
that any substantial use in the rare case of a third party who is
able to access the information will alarm the authorized servers
that the federated token is being abused.
[0067] It will be appreciated that table 300 can include more
detailed information for federated tokens that have been received,
as needed. Any of a variety of data structures containing the
necessary information can be used, and any such data structure is
referred to herein as a table 300.
[0068] In one embodiment, validation is based on the time stamp
206, uniquifier 208 and use code 209 features of the federated
token 138 shown in FIG. 3. The time stamp 206 and uniquifier 208
can be generated using an 11 character base64 encoding of the time
stamp and uniquifier. The use code 209 can be an encrypted
alphanumeric code which symbolizes a particular use. The use code
209 can be encrypted using any of the methods described above for
authentication codes 210 or any other encryption method.
[0069] The validity of federated tokens that are valid only for a
specified period of time can be determined by directly examining
the content of the federated tokens. The federated token table 300
is populated or updated each time a federated token is received.
Once a federated token is successfully authenticated, as described
above, the receipt of the federated token is recorded in field 302
of table 300 (assuming it is the first instance of receipt). The
use-base is ascertained from the federated token and recorded in
field 304. Based on the use-basis, use information is recorded in
field 306. Field 306 has a counter tracking the number of times the
particular federated token has been used. Alternatively, if
desired, field 306 can include a counter identifying start times
(e.g., using the time stamp 206 in the federated token) and times
of actual receipt of a federated token. A comparison is then made
between the defined use in field 304 and the actual use in field
306. A validity flag in field 308 then indicates whether the usage
is valid or not. For example, as shown in FIG. 5, the use of the
first federated token 310 is invalid because it has been used more
than the specified number of times. However, the use of the other
two federated tokens 312, 314 is valid because they fall within the
specific usage. Subsequent receipt of federated tokens already
listed in table 300 can either first reference the validity field
308 or can perform the validity steps outlined above.
[0070] The table 300 can also be updated when a user or
administrator determines that a particular federated token has been
misused or compromised. For example, an administrator could also
set the validity flag to "invalid" if the server detects abuse of a
particular federated token. This disabling of a federated token can
be valuable in certain situations that might produce a security
breach. For example, if a federated token having a use-base of one
week is compromised, a user or an administrator can specifically
disable the federated token to avoid a week-long security hole.
[0071] In another embodiment, a table 300 does not need to be
maintained if all federated token usage is time-based. That is, the
authorized time period can be ascertained from the federated token
itself as well as the length of time between transmission and
receipt (e.g., using the time stamp).
[0072] Another option is for certain federated tokens to be valid
under conditions that combine use-based rules and time-based rules.
For example, a federated token can be valid for a single use and
for a certain amount of time, meaning that if either condition
fails, the federated token is invalid. In this case, the federated
token table 300 does not need to store the federated token
information for an extended period of time.
5. Other Markers
[0073] The challenge message 136 may contain other markers which
perform other functions as described in more detail in co-pending
U.S. patent application Ser. No. 10/747,557, filed Dec. 29, 2003,
which application is herein incorporated by reference in its
entirety.
6. Exemplary Methods
[0074] The process of authorizing a challenge message will now be
discussed in further detail. When a transmitting authorized server
114 sends a challenge message 136, server 114 uses tokenization
module 132 to generate the federated token 138 embedded in the
challenge message 136. As discussed above, the federated token 138
can be placed in any part of the challenge message 136, but is
preferably placed in a location identifying the transmitting
server.
[0075] The authorization module 130 at the receiving authorized
server 116 analyzes the challenge message 136 to determine whether
or not it is an authorized message. First, the authorization module
130 determines if challenge message 136 contains a federated token
138 somewhere embedded therein. Second, the authorization module
128 authenticates the federated token using any of the various
methods described above for constructing authentication codes 210.
For example, using a private key, the authorization module 130
could regenerate a checksum and verify that the regenerated
checksum is the same as the checksum in the federated token 138. If
the checksum in the federated token 138 is the same as the
regenerated checksum, this indicates that the federated token is
authentic, i.e., was generated by the server 114.
[0076] Finally, if the federated token is authentic, the
authorization module 130 determines whether that particular use of
the federated token is valid. The authorization module 130 may
access database 142 to determine if there have been any prior uses
of the particular federated token. Validation steps may occur as
described above. Exemplarily situations in which a federated token
is advantageous are described as follows:
Example 1
Identifying Challenge Message
[0077] Generally, the federated token concept can be applied to
messaging systems in which the recipient of a challenge message has
a filter mechanism which prevents messages from unknown senders to
go to the recipient's inbox. With reference to the scenario of FIG.
1, the server at service B sends a challenge message containing an
unknown sender address (e.g., postmaster@serviceB.com). This may be
represented in FIG. 2 as the transmitting authorized server 114
generating a challenge message 136. In conventional
challenge/response system of FIG. 1, the challenge message issued
by server 114 may never be delivered to inbox 122 of user computer
110, preventing the user from responding because server 116 or
computer 110 does not recognize the sender. Further, server 116 may
also issue a challenge message, resulting in a "challenge war."
However, the present invention resolves this dilemma by implanting
federated tokens 138 in challenge message 136 which can be detected
and authorized by server 116 to allow the challenge message to be
delivered directly to inbox 122.
Example 2
Challenge Message in Response to Unknown Address
[0078] Another way that an unknown address can be inserted into a
challenge message, resulting in the challenge message being sent to
a recipient's pending folder is illustrated in FIG. 1B. That is, a
message to a known address is forwarded to a remote account, which
issues a challenge message. This scenario can also result in a
"challenge war" where in reality the parties would actually likely
not consider the challenge message as spam. Thus, in order to
recognize that the challenge message 136 is in response to an
action by the original sender, (even though the FROM address in the
challenge message may be unrecognized), a federated token 138 is
used to allow the challenge message to be sent directly to the
inbox 122 of user computer 110 after the federated token is
authorized.
7. Summary
[0079] The above examples show that the federated tokens can be
used to identify the existence of a challenge message independent
of the sender's identity. To avoid a third party from abusing the
challenge message form, authentication and validation steps are
taken to ensure that the challenge message is sent from a federated
messaging service. Once a challenge message is duly authorized, it
can be send directly to a recipient's inbox, allowing the recipient
the opportunity to respond to the challenge messages. In addition,
once a federated token has been successfully authorized, the
sender's address may be placed on the recipient's authorized
address list.
[0080] Advantageously, the present invention allows challenge
messages to be delivered successfully to intended recipients of the
challenge messages, since the intended recipients would most likely
want to receive a challenge message since challenge messages are
generated from a message that the intended recipient originally
sent. The present invention is also implemented without requiring
complex parsing of a challenge message, which can be time consuming
and require large amounts of processing power or memory.
Furthermore, certain messaging services that choose to be federated
may benefit by preventing their members from issuing spam because
challenge messages that result from a spam message will be sent
directly to a spammer's inbox. The spammer generally relies on
pending folder similar to other users to hold spam material.
[0081] The present invention is possible between multiple messaging
services that can be relatively large in size because features of
the present invention can be implemented in a decentralized manner.
That is, the software for generating and authorizing challenge
messages can be readily implemented into an existing system.
Further, any communication between federated messaging services can
be done using existing messaging protocols. Finally, the present
invention reduces the amount of data storage required because only
a minimal amount of information need be stored to generate or
authorize a federated token.
[0082] The present invention may be embodied in other specific
forms without departing from its spirit or essential
characteristics. The described embodiments are to be considered in
all respects only as illustrative and not restrictive. The scope of
the invention is, therefore, indicated by the appended claims
rather than by the foregoing description. All changes which come
within the meaning and range of equivalency of the claims are to be
embraced within their scope.
* * * * *