IP Library Granted Patent US 9,363,243
Granted Patent B2
US 9,363,243 · App. 14/225,636 · Granted Jun 7, 2016

External indexing and search for a secure cloud collaboration system

Inventor: Shaun Cooley (El Segundo, CA)
Assignee: Cisco Technology, Inc.
H04L63/0428G06F17/30864H04L63/06H04L63/061H04L67/1097
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 9,363,243
App. No.
14/225,636
Granted
Jun 7, 2016
Kind
B2
Abstract

An end-to-end secure cloud-hosted collaboration service is provided with a hybrid cloud/on-premise index and search capability. This approach includes on-premise indexing and search handling, while relying on the cloud for persistent storage and search of the index. The on-premise indexer receives a copy of an encrypted message from the cloud-hosted collaboration service. The encrypted message has been encrypted with a conversation key. The indexer receives the conversation key from an on-premise key management service, and decrypts the encrypted message with the conversation key. A set of tokens are extracted from the decrypted message, and subsequently encrypted with a secret key, different than the conversation key, to generate a first set of encrypted tokens. The first set of encrypted tokens is transmitted for storage in a search index on the cloud-hosted collaboration service.

Claims (79)

1. A method comprising:

receiving a copy of an encrypted message from a cloud-hosted collaboration service, the encrypted message encrypted with a conversation key;

receiving the conversation key from an on-premise key management service;

decrypting the encrypted message with the conversation key;

extracting a set of tokens from the decrypted message by extracting at least one key word and determining roots, variations or plurals of the at least one key word;

encrypting the set of tokens with a secret key different than the conversation key to generate a first set of encrypted tokens; and

transmitting the first set of encrypted tokens for storage on the cloud-hosted collaboration service.

2. The method of claim 1 , further comprising receiving the secret key from the on-premise key management service.

3. The method of claim 1 , further comprising receiving a conversation identifier associated with the copy of the encrypted message, and wherein transmitting the first set of encrypted tokens further comprises transmitting the conversation identifier for storage in association with each of the first set of tokens.

4. The method of claim 3 , further comprising:

receiving a search query from a client device,

extracting a set of search tokens from the search query;

encrypting the set of search tokens with the secret key to generate a second set of encrypted tokens;

transmitting the second set of encrypted tokens to be matched against the first set of encrypted tokens stored on the cloud-hosted collaboration service; and

responsive to at least one of the second set of encrypted tokens matching at least one of the first set of encrypted tokens, receiving the conversation identifier associated with the first set of encrypted tokens.

5. The method of claim 4 , further comprising:

receiving any encrypted messages associated with the conversation identifier as search results to the search query; and

transmitting the search results to the client device.

6. The method of claim 1 , wherein extracting the set of tokens from the decrypted message further comprises:

filtering the at least one key word against a set of stop words.

7. The method of claim 1 , wherein encrypting the set of tokens comprises combining each of the set of tokens with the secret key to produce a plurality of combinations, and passing each of the plurality of combinations through a hash-based message authentication code (HMAC) function to generate the first set of encrypted tokens as a set of HMACs.

8. The method of claim 1 , further comprising deleting the copy of the encrypted message and the decrypted message after extracting the set of tokens.

9. An apparatus comprising:

a network interface unit configured to enable communications over a network in order to:

receive a copy of an encrypted message from a cloud-hosted collaboration service the encrypted message encrypted with a conversation key;

transmit a first set of encrypted tokens for storage on the cloud-hosted collaboration service; and

receive the conversation key from an on-premise key management service; and

a processor configured to:

decrypt the encrypted message with the conversation key;

extract a set of tokens from the decrypted message by extracting at least one key word and determining roots, variations or plurals of the at least one key word; and

encrypt the set of tokens with a secret key different than the conversation key to generate the first set of encrypted tokens.

10. The apparatus of claim 9 , wherein the network interface unit is further configured to receive the secret key from the on-premise key management service.

11. The apparatus of claim 9 , wherein the network interface unit is further configured to receive a conversation identifier associated with the copy of the encrypted message, and to transmit the conversation identifier for storage in association with each of the first set of tokens.

12. The apparatus of claim 11 , wherein the network interface unit is further configured to:

receive a search query from a client device;

transmit a second set of encrypted tokens to be matched against the first set of encrypted tokens stored on the cloud hosted collaboration service; and

responsive to at least one of the second set of encrypted tokens matching at least one of the first set of encrypted tokens, receive the conversation identifier associated with the first set of encrypted tokens; and

wherein the processor is further configured to:

extract a set of search tokens from the search query; and

encrypt the set of search tokens with the secret key to generate the second set of encrypted tokens.

13. The apparatus of claim 12 , wherein the network interface unit is further configured to:

receive any encrypted messages associated with the conversation identifier as search results to the search query; and

transmit the search results to the client device.

14. The apparatus of claim 9 , wherein the processor is further configured to extract the set of tokens from the decrypted message by:

filtering the at least one key word against a set of stop words.

15. The apparatus of claim 9 , wherein the processor is configured to encrypt the set of tokens by combining each of the set of tokens with the secret key to produce a plurality of combinations, and passing each of the plurality of combinations through a hash-based message authentication code (HMAC) function to generate the first set of encrypted tokens as a set of HMACs.

16. The apparatus of claim 9 , wherein the processor is further configured to delete the copy of the encrypted message and the decrypted message after extracting the set of tokens.

17. One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to cause a processor to:

receive a copy of an encrypted message from a cloud-hosted collaboration service, the encrypted message encrypted with a conversation key;

receive the conversation key from an on-premise key management service;

decrypt the encrypted message with the conversation key;

extract a set of tokens from the decrypted message by extracting at least one key word and determining roots, variations or plurals of the at least one key word;

encrypt the set of tokens with a secret key different than the conversation key to generate a first set of encrypted tokens; and

transmit the first set of encrypted tokens for storage on the cloud-hosted collaboration service.

18. The computer readable media of claim 17 , further comprising instructions operable to cause the processor to receive a conversation identifier associated with the copy of the encrypted message, and wherein the instructions that cause the processor to transmit the first set of encrypted tokens further comprise instructions that cause the processor to transmit the conversation identifier for storage in association with each of the first set of tokens.

19. The computer readable media of claim 18 , further comprising instructions operable to cause the processor to:

receive a search query from a client device,

extract a set of search tokens from the search query;

encrypt the set of search tokens with the secret key to generate a second set of encrypted tokens;

transmit the second set of encrypted tokens to be matched against the first set of encrypted tokens stored on the cloud-hosted collaboration service; and

responsive to at least one of the second set of encrypted tokens matching at least one of the first set of encrypted tokens, receive the conversation identifier associated with the first set of encrypted tokens.

20. The computer readable media of claim 17 , wherein the instructions operable to cause the processor to encrypt the set of tokens comprise instructions operable to cause the processor to combine each of the set of tokens with the secret key to produce a plurality of combinations, and pass each of the plurality of combinations through a hash-based message authentication code (HMAC) function to generate the first set of encrypted tokens as a set of HMACs.

21. A method comprising:

receiving a copy of an encrypted message from a cloud-hosted collaboration service, the encrypted message encrypted with a conversation key;

receiving the conversation key from an on-premise key management service;

receiving a conversation identifier associated with the copy of the encrypted message;

decrypting the encrypted message with the conversation key;

extracting a set of tokens from the decrypted message;

encrypting the set of tokens with a secret key different than the conversation key to generate a first set of encrypted tokens; and

transmitting the first set of encrypted tokens and the conversation identifier for storage on the cloud-hosted collaboration service.

22. The method of claim 21 , further comprising:

receiving a search query from a client device,

extracting a set of search tokens from the search query;

encrypting the set of search tokens with the secret key to generate a second set of encrypted tokens;

transmitting the second set of encrypted tokens to be matched against the first set of encrypted tokens stored on the cloud-hosted collaboration service; and

responsive to at least one of the second set of encrypted tokens matching at least one of the first set of encrypted tokens, receiving the conversation identifier associated with the first set of encrypted tokens.

23. The method of claim 22 , further comprising:

receiving any encrypted messages associated with the conversation identifier as search results to the search query; and

transmitting the search results to the client device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2014
From: COOLEY, SHAUN
To: CISCO TECHNOLOGY, INC.
Reel/Frame 032527/0881 →
Continuity (1)
Related Publication 20150281184A1 · Oct 1, 2015