IP Library Granted Patent US 8,578,170
Granted Patent B2
US 8,578,170 · App. 13/489,037 · Granted Nov 5, 2013

Bundle verification

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,578,170
App. No.
13/489,037
Granted
Nov 5, 2013
Kind
B2
Abstract

Systems, devices, and methods for modifying a signed bundle and verifying the modified bundle are disclosed. A signed bundle may be modified by removing a file specified in a server file list from a plurality of files in the bundle. The signed bundle comprises a catalog of files in the signed bundle and their associated hashes. The modified bundle includes the remaining files of the signed bundle that are not specified in the server file list and the catalog file of the signed bundle, the catalog signature of the signed bundle. The modified bundle may be verified by verifying the catalog signature of the modified signed bundle, and checking that the files specified in the catalog are either in the modified signed bundle or specified in the server file list. The hashes of the files in the modified signed bundle may also be checked to verify the modified signed bundle.

Claims (70)

1. A method of distributing a first plurality of files between a server and a device, the method comprising:

at a computing system remote from the server and from the device,

creating a server file list that specifies at least one file of the first plurality of files intended for the server and not the device;

sending the server file list to the server;

signing a bundle to generate a signed bundle comprising the first plurality of files, a catalog file specifying the first plurality of files and a hash for each of the first plurality of files, and a catalog signature obtained by signing the catalog file; and

sending the signed bundle to the server, wherein the server is configured to:

remove the at least one file specified in the server file list from the first plurality of files of the signed bundle to generate a modified signed bundle, the modified signed bundle comprising:

a second plurality of files that includes all of the files in the first plurality of files except the at least one file specified in the server file list, and

the catalog file of the signed bundle, the catalog file not being modified by the server despite removal of the at least one file specified in the server file list from the first plurality of files of the signed bundle, such that the hash of the at least one file specified in the server file list remains in the catalog file, and

send the modified signed bundle to the device, such that the modified signed bundle is verifiable, using the server file list as received from the computing system or the server, at the device despite removal of the at least one file specified in the server file list from the first plurality of files of the signed bundle.

2. The method as claimed in claim 1 , wherein the modified signed bundle generated at the server further comprises:

the catalog signature of the signed bundle, the catalog signature not being modified by the server despite the removal of the at least one file specified in the server file list from the first plurality of files of the signed bundle.

3. The method as claimed in claim 1 , wherein the server file list is sent to the server in the signed bundle.

4. The method as claimed in claim 1 , wherein the signed bundle is verifiable at the server prior to removing the at least one file specified in the server file list from the first plurality of the signed bundle.

5. The method as claimed in claim 1 , wherein

the catalog file is verifiable at the server using the catalog signature to ensure the catalog file has not been modified since signing; and

each file of the first plurality of files in the signed bundle is verifiable at the server by generating a hash of the each file and verifying that the generated hash matches a corresponding hash for the each file in the associated file hashes in the catalog file of the signed bundle.

6. The method as claimed 1 , wherein

the catalog file is verifiable at the server using the catalog signature to ensure the catalog file has not been modified since signing; and

the server file list is verifiable at the server by generated hash matches a stored hash associated with the server file list in the catalog file of the signed bundle.

7. The method as claimed in claim 1 , further comprising:

sending the server file list to the device so that the device can verify that the second plurality of files does not include the at least one file of the first plurality of files specified in the server file list.

8. The method as claimed in claim 1 , wherein the second plurality of files comprises no additional files not specified in the catalog file.

9. The method as claimed in claim 3 , wherein the server file list is identifiable in the signed bundle based on at least one of:

a file position within the signed bundle;

a file name; or

a file extension.

10. The method as claimed in claim 6 , wherein:

the at least one file specified in the server file list is verifiable at the server, by, for each of the at least one filed specified in the server filed list, generated a hash of the file and verifying that the generated hash matches the stored hash associated with the file in the catalog file of the signed bundled.

11. The method as claimed in claim 7 , wherein upon the device receiving the modified signed bundle and the server file list,

the catalog file is verifiable at the device using the catalog signature file to ensure the catalog file has not been modified since signing; and

each file specified in the catalog file is verifiable at the device by:

verifying that the file is either specified in the server file list or is included in the second plurality of files of the modified signed bundle; and

if the file is included in the second plurality of files of the modified signed bundle, verifying the file by generating a hash of the file and verifying that the generated hash matches a corresponding hash for the file in the catalog file of the modified signed bundle.

12. A computing system for distributing a first plurality of files between a server and a device, the computing system being remote from the server and the device, and the computing system comprising:

a processor, and

a memory for storing instructions which when executed by the processor, causes the processor to:

create a server file list that specifies at least one file of the first plurality of files intended for the server and not the device;

send the server file list to the server;

sign a bundle to generate a signed bundle comprising the first plurality of files, a catalog file specifying the first plurality of files and a hash for each of the first plurality of files, and a catalog signature obtained by signing the catalog file; and

send the signed bundle to the server, wherein the server is configured to:

remove the at least one file specified in the server file list from the first plurality of files of the signed bundle to generate a modified signed bundle, the modified signed bundle comprising:

a second plurality of files that includes all of the files in the first plurality of files except the at least one file specified in the server file list, and

the catalog file of the signed bundle, the catalog file not being modified by the server despite removal of the at least one file specified in the server file list from the first plurality of files of the signed bundle, such that the hash of the at least one file specified in the server file list remains in the catalog file, and

send the modified signed bundle to the device, such that the modified signed bundle is verifiable, using the server file list as received from the computing system or the server, at the device despite removal of the at least one file specified in the server file list from the first plurality of files of the signed bundle.

13. The computing system as claimed in claim 12 , wherein the modified signed bundle generated at the server further comprises:

server

the catalog signature of the signed bundle, the catalog signature not being modified by the server despite the removal of the at least one file specified in the server file list from the first plurality of files of the signed bundle.

14. The method computing system as claimed in claim 12 , wherein the server file list is sent to the server in the signed bundle.

15. The computing system as claimed in claim 12 , wherein the signed bundle is verifiable at the server prior to removing the at least one file specified in the server file list from the first plurality of files of the signed bundle.

16. The computing system as claimed in claim 12 , wherein

the catalog file is verifiable at the server using the catalog signature to ensure the catalog file has not been modified since signing; and

each file of the first plurality of files in the signed bundle is verifiable at the server by generating a hash of the each file and verifying that the generated hash matches a corresponding hash for the each file in the associated file hashes in the catalog file of the signed bundle.

17. The computing system as claimed in claim 12 , wherein the

the catalog file is verifiable at the server using the catalog signature to ensure the catalog file has not been modified since signing; and

the server file list is verifiable at the server by generating a hash of the server file list and verifying at the server by generated hash matches a stored hash associated with the server file list in the catalog file of the signed bundle.

18. The computing system as claimed in claim 12 , wherein the processor is further configured to:

send the server file list to the device so that the device can verify that the second plurality of files does not include the at least one file of the first plurality of files specified in the server file list.

19. The computing system as claimed in claim 12 , wherein the second plurality of files comprises no additional files not specified in the catalog file.

20. the computing system as claimed in claim 14 , wherein the server file list is identifiable in the signed bundle based on at least one of:

a file position within the signed bundle;

a file name; or

a file extension.

21. The computing system as claimed in claim 17 , wherein:

the at least one file specified in the server file list is verifiable at the server, by, for each of the at least one file specified in the server file list, matches the stored hash associated with the file in the catalog file of the signed bundles.

22. The computing system as claimed in claim 18 , wherein upon the device receiving the modified signed bundle and the server file list,

the catalog file is verifiable at the device using the catalog signature file to ensure the catalog file has been modified since signing; and

each file specified in the catalog file is verifiable at the device by:

verifying that the file is either specified in the server file list or is included in the second plurality of files of the modified signed bundle; and

if the file included in the second plurality of files of the modified signed bundle, verifying the file by generating a hash of the file and verifying that the generated hash matches a corresponding hash for the file in the catalog file of the modified signed bundle.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 3, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034150/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2012
From: SHERKIN, ALEXANDER; BROWN, MICHAEL S.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028321/0525 →