Source: http://www.freepatentsonline.com/y2015/0334120.html
Timestamp: 2019-03-18 17:59:13
Document Index: 324242325

Matched Legal Cases: ['art.\n3', 'art.\n4', 'art.\n10', 'art.\n11', 'art.\n14', 'art.\n15', 'art.\n16']

Server verification of secure electronic messages - BlackBerry Limited
United States Patent Application 20150334120
Systems and methods for processing encoded messages within a wireless communications system are disclosed. A server within the wireless communications system determines whether the size of an encoded message is too large for a wireless communications device. If the message is too large, the server removes part of the message and sends an abbreviated message to the wireless device, together with additional information relating to processing of the encoded message, such as, for example, hash context values, that assist the wireless communications device in verifying the abbreviated message.
Brown, Michael K. (Fergus, CA)
Brown, Michael S. (Kitchener, CA)
14/809854
H04L29/06; H04L9/32; H04L12/58; H04W12/10
Download PDF 20150334120 PDF help
20070255943 METHOD AND SYSTEM FOR AUTOMATING THE RECOVERY OF A CREDENTIAL STORE November, 2007 Kern et al.
20010042204 Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database November, 2001 Blaker et al.
20050071634 Certification apparatus, method and device for authenticating message origin March, 2005 Meggle et al.
Integral IP / BlackBerry (1370 Don Mills Road, Suite 300 TORONTO ON M3B 3N7)
1. A non-transitory computer readable medium having stored thereon instructions which, when executed by a processor comprised in a server, result in: receiving a digitally signed message comprising at least a first message part and a second message part, the first message part immediately preceding the second message part in the message; removing the first message part from the message; sending, to a mobile device, the message comprising the second message part and with the first message part removed; applying a hashing function to the first message part; after applying the hashing function to the first message part, determining a hash context of the hashing function associated with the first message part; and sending the hash context of the hashing function associated with the first message part to the mobile device, wherein the hash context of the hash function associated with the first message part is usable by the mobile device as a starting context for hashing the second message part at the mobile device.
2. The non-transitory computer readable medium of claim 1, wherein the message comprises a third message part immediately preceding the first message part in the message, and wherein the instructions, when executed by the processor at the server, further result in: applying the hashing function to the third message part; after applying the hashing function to the third message part, determining a hash context of the hashing function associated with the third message part; and sending the hash context of the hashing function associated with the third message part with the hash context of the hashing function associated with the first message part to the mobile device, wherein the hash context of the hashing function associated with the third message part is usable by the mobile device for comparison with a device-computed hash context for the third message part, wherein the first message part is used by the mobile device as a starting context for hashing the second message part at the mobile device after determining that the hash context of the hashing function associated with the third message part matches the device-computed hash context for the third message part.
3. The non-transitory computer readable medium of claim 2, wherein the hash context of the hashing function associated with the third message part and the hash context of the hashing function associated with the first message part are sent with the message to the mobile device, in place of the first message part.
4. The non-transitory computer readable medium of claim 2, wherein the message comprises a digital signature, and wherein the hashing function applied to the third message part is identical to a hashing function used to generate the digital signature.
5. The non-transitory computer readable medium of claim 1, wherein the instructions, when executed by the processor at the server, further result in: determining a size of the digitally signed message received; if the size is not above a predetermined threshold, sending the message to the mobile device without removing the first message part; and if the size is above the predetermined threshold, removing the first message part, sending the message comprising the second message part and with the first message part removed to the mobile device, applying the hashing function to the first message part, determining the hash context and sending the hash context to the mobile device.
6. The non-transitory computer readable medium of claim 1, wherein the message comprises an attachment, and wherein the first message part comprises the attachment.
7. The non-transitory computer readable medium of claim 1, wherein the message comprises a digital signature, and wherein the hashing function applied to the first message part is identical to a hashing function used to generate the digital signature.
8. A non-transitory computer readable medium having stored thereon instructions which, when executed by a processor comprised in a mobile device, result in: receiving, from a server, a message comprising at least a second message part and a digital signature, wherein a first message part that immediately preceded the second message part in the message as received by the server has been removed from the message by the server; receiving a hash context of a hashing function associated with the first message part; hashing a second message part of the message using the hash context of the hashing function associated with the first message part as a starting context for hashing the second message part; and verifying the digital signature after hashing the second message part of the message.
9. The non-transitory computer readable medium of claim 8, wherein the message comprises a third message part, and wherein the instructions, when executed by the processor comprised in the mobile device, further result in: receiving, from the server, a hash context of the hashing function associated with the third message part with the hash context of the hashing function associated with the first message part; hashing the third message part; computing a device-computed hash context for the third message part after hashing the third message part; comparing the hash context of the hashing function associated with the third message part with the device-computed hash context for the third message part; and performing hashing of the second message part of the message and verifying the digital signature, after determining that the hash context of the hashing function associated with the third message part matches the device-computed hash context for the third message part.
10. The non-transitory computer readable medium of claim 9, wherein the third message part immediately preceded the first message part in the message as received by the server, and wherein the hash context of the hashing function associated with the third message part and the hash context of the hashing function associated with the first message part are received with the message at the mobile device, in place of the first message part.
11. The non-transitory computer readable medium of claim 9, wherein the hashing function applied to the third message part is identical to a hashing function used to generate the digital signature.
12. The non-transitory computer readable medium of claim 8, wherein the second message part is hashed using a hashing function identical to a hashing function used to generate the digital signature.
13. A mobile device comprising: a processor; memory coupled to the processor, the memory to store data required for decrypting encrypted messages; a wireless network communication interface coupled to the processor, the wireless network communication interface operative to receive a message from a server, the message comprising at least a second message part and a digital signature, wherein a first message part that immediately preceded the second message part in the message as received by the server has been removed from the message by the server, and operative to receive from the server a hash context of a hashing function associated with the first message part, wherein the processor is operative to hash the second message part using the hash context as a starting context for hashing the second message part, and the processor is operative to verify the digital signature after hashing the second message part.
14. The mobile device of claim 13, wherein the message comprises a third message part, the wireless network communication interface is operative to receive from the server a hash context of the hashing function associated with the third message part, and the processor is operative to: hash the third message part; compute a device-computed hash context for the third message part after hashing the third message part; compare the hash context of the hashing function associated with the third message part received from the server with the device-computed hash context for the third message part; and perform hashing of the second message part and verifying the digital signature after determining that the hash context of the hashing function associated with the third message part received from the server matches the device-computed hash context for the third message part.
15. The mobile device of claim 14, wherein the third message part immediately preceded the first message part in the message as received by the server, and wherein the hash context of the hashing function associated with the third message part and the hash context of the hashing function associated with the first message part are received with the message at the mobile device, in place of the first message part.
16. The mobile device of claim 14, wherein the hashing function applied to the third message part is identical to a hashing function used to generate the digital signature.
17. The mobile device of claim 13, wherein the second message part is hashed using a hashing function identical to a hashing function used to generate the digital signature.
The present invention relates generally to an electronic messaging system that is capable of processing encoded messages and information. In particular, the disclosure is directed to a system in which an electronic message server performs at least a portion of the verification functions typically performed by a mobile wireless communications device having secure electronic messaging capability, especially where an encoded message is too large for verification on the mobile wireless communications device.
In view of the foregoing, we have now identified an efficient and easy to implement system and method for verifying secure electronic messages, wherein some of the processing overhead associated with decoding and/or verifying secure messages is distributed from a device having a size limit, such as, for example, a mobile wireless communications device, to a device having the ability to process much larger size messages, such as, for example, a server within the wireless communications system.
According to an exemplary embodiment of the present disclosure, a server within the wireless communications system has the ability to determine if a secure message is too large to be verified on a size-limited device. The server may make this determination by finding the point in the secure electronic message encoding where the message will be cut off due to the size constraints of the size-limited device. The server determines if the cut off point occurs in such a location that verification of the message will not be possible on the size-limited device, such as, for example, part way through the signed data or in the middle of the signature data. If the message is determined to be too long such that verification on the device is not possible, then the server can attempt to verify the signature on the message.
According to an exemplary embodiment of the disclosure, the server is operable to assist the size-limited device in verifying the message itself. For example, if a secure (e.g., signed and/or encrypted) message that is too large for the size-limited device is made up of three parts, A, B and C, where B is an attachment, the server may remove the attachment B from the message. Consequently, the attachment B will not be sent to the size-limited device. Because the attachment has been removed from the electronic message, the size-limited device will be unable to verify the signature. In order to assist the size-limited device in verifying the message, the server may apply a hashing function to parts A, B and C, in sequence. After each part has been hashed, the hashing function has a context associated therewith. The size-limited device, of course, only has parts A and C, so when it performs a hash, it will have the same context after hashing part A, but will have the incorrect starting context when it hashes part C. In a preferred embodiment, the hashing function applied to parts A, B and C may be the same as that used in signature generation.
In this situation, the server can insert the hash context after it hashed part A and the hash context after it hashed part B in place of the attachment B in the original message. Because the hash contexts are much smaller than the application data, the size-limited device should be able to accept this data. Accordingly, after the size-limited device performs its hash of part A, it can compare the hash context obtained from hashing part A with the hash context received from the server when it hashed part A. If these contexts match, the device can then substitute the hash context received from the server after it hashed part B, and the device can then continue to hash part C. This result can then be used to verify the signature.
In another exemplary embodiment of the disclosure, the server could alternatively insert the result of performing an exclusive OR function (XOR) of the context after hashing part A with the context after hashing part B. The device would then perform a hash of part A, take this context and perform an XOR with the value the server provides. The device then takes the result of that XOR function and uses it as the context after hashing part B. This alternative further reduces the amount of data required to be sent to the size-limited device.
As a further alternative exemplary embodiment, the server may only verify levels of the message. For example, in S/MIME the actual steps involved in verifying a message involve taking multiple digests and then performing an actual signature verification calculation. In this embodiment, the server may verify that the digests match, but leave the signature verification calculation to the size-limited device.
The foregoing exemplary embodiments provide a solution to the problem of verifying secured electronic messages by a size-limited device by distributing the processing overhead to a server of the electronic messaging system, thereby enabling the sharing of system resources to assist the size-limited device in verifying secured electronic messages.
FIG. 4 is a block diagram depicting components used in handling encoded messages;
FIG. 5 is an illustrative flow diagram of an exemplary operational scenario for processing encoded messages according to an exemplary embodiment of the invention; and
An e-mail sender system 10 may, for example, be connected to an ISP (Internet Service Provider) on which a user of the system 10 has an account, located within a company, possibly connected to a local area network (LAN), and connected to the Internet 20, or connected to the Internet 20 through a large ASP (application service provider) such as America Online® (AOL). Those skilled in the art will appreciate that the systems shown in FIG. 1 may instead be connected to a wide area network (WAN) other than the Internet, although e-mail transfers are commonly accomplished through Internet-connected arrangements as shown in FIG. 1.
The receiver may also verify the certificate and CRL if they were appended to the message. A certificate chain is a certificate along with a number of other certificates required to verify that the original certificate is authentic. While verifying the signature on a signed message, the receiver of the message will also typically obtain a certificate chain for the signing certificate and verify that each certificate in the chain was signed by the next certificate in the chain, until a certificate is found that was signed by a root certificate from a trusted source, such as, for example, a large Public Key Server (PKS) associated with a Certificate Authority (CA), such as, for example, Verisign™ or Entrust®, both prominent companies in the field of public key cryptography. Once such a root certificate is found, a signature can be verified and trusted, since both the sender and receiver trust the source of the root certificate.
As an exemplary operational scenario, current mobile device implementations typically have a limit on the message size that will reach the mobile device, such as, for example, 32 KB. If an S/MIME message is over 32 KB, then the entire message will not completely reach the mobile device. As such, if the message is signed, then it cannot be verified on the mobile device due to the size limitation. The server in this situation may send an indication to the mobile device that the message is too large to be verified by the mobile device and that verification has already been done by the server. The user receiving this message will then be aware that verification of the message has already been accomplished.
According to an exemplary embodiment of the present invention, as illustrated in FIG. 5, the server is operable to assist the size-limited mobile device in verifying the message itself. As an operational illustrative example, a secure (e.g., signed) message that is too large for the size-limited device may be made include an attachment. Start indication block 500 indicates that process block 502 has received a message at the server. Decision block 504 examines the message to determine if the size is above a predetermined threshold. The message size includes the size of any attachments that may be present. If the message size is not above the predetermined threshold, the message is provided to the size-limited device 506 after the server has performed any additional customary processing of the message. If the message is too large for the size-limited device, the server may perform additional steps to assist the size-limited device in verifying the message. For example, the server determines the point in the secure electronic message encoding where the message will be cut off due to the size constraints of the size-limited device. The server determines if the cut off point occurs in such a location that verification of the message will not be possible on the size-limited device, such as, for example, part way through the signed data or in the middle of the signature data. If the message is determined to be too long such that verification is not possible on the device, then the server can attempt to verify the signature on the message.
As an operational example, assume that the message data is made up of three parts, A, B and C, where B is a large attachment. After determining that the message is too large for the size-limited device, the server may remove the attachment B from the message to prevent it from being sent to the size-limited device 508. Consequently, the attachment B will not be sent to the size-limited device. Because the attachment has been removed from the electronic message, the size-limited device will be unable to verify the signature. In order to assist the size-limited device in verifying the message, the server may apply a hashing function to parts A, B and C, in sequence 510. In a preferred embodiment, the hashing function applied to parts A, B and C is the same as that used in signature generation. After each part has been hashed, the hashing function has a context associated therewith. The size-limited device, of course, only has parts A and C, so when it performs a hash, it will have the same context after hashing part A, but will have the incorrect starting context when it hashes part C.
In this situation, the server can insert the hash context after it hashed part A and the hash context after it hashed part B in place of the attachment B in the original message 512. Because the hash contexts are much smaller than the application data, the size-limited device should be able to accept this data. Accordingly, after the size-limited device performs its hash of part A, it can compare the hash context obtained from hashing part A with the hash context received from the server when it hashed part A. If these contexts match, the device can then substitute the hash context received from the server after it hashed part B, and the device can then continue to hash part C 514. This result can then be used to verify the signature 516.
Another example is illustrated in FIG. 6. In this example, steps 600, 602, 604, 606, 608 and 610 correspond substantially to steps 500, 502, 504, 506, 508 and 510 of FIG. 5. According to this example, the server could alternatively insert the result of performing an exclusive OR function (XOR) of the context after hashing part A with the context after hashing part B 612. The device would then perform a hash of part A, take this context and perform an XOR with the value the server provides for the context after hashing part B 614. The device then takes the result of that XOR function and uses it as the context after hashing part B 616, to verify the signature 618. This alternative further reduces the amount of data required to be sent to the size-limited device.
As yet another example, the server may only verify levels of the message. For example, in S/MIME the actual steps involved in verifying a message involve taking multiple digests and then performing an actual signature verification calculation. In this exemplary embodiment, the server may verify that the digests match, but leave the signature verification calculation to the size-limited device.
Previous Patent: INTELLIGENT ROLE BASED ACCESS CONTROL BASED ON TRUSTEE APPROVALS
Next Patent: SYSTEM AND METHOD FOR COLLECTING AND STREAMING BUSINESS REVIEWS