U.S. patent application number 11/519971 was filed with the patent office on 2008-03-13 for method and system for secure data collection and distribution.
This patent application is currently assigned to NICE SYSTEMS LTD.. Invention is credited to Hadas Ben-Ami, Oren Fisher, Dvir Hoffman, Leon Portman.
Application Number | 20080066184 11/519971 |
Document ID | / |
Family ID | 39171326 |
Filed Date | 2008-03-13 |
United States Patent
Application |
20080066184 |
Kind Code |
A1 |
Ben-Ami; Hadas ; et
al. |
March 13, 2008 |
Method and system for secure data collection and distribution
Abstract
A data provider generates a data encryption key and an
identifier, uses the data encryption key to encrypt data, sends the
encrypted data and the identifier to a data requester, and sends
the data encryption key and the identifier to a crypto information
server. The data requestor sends the identifier to the crypto
information server to request the encryption key. The crypto
information server authenticates the data requestor and, contingent
on that authentication, sends the data encryption key to the data
requestor. If a plurality of data instances are captured, then for
each instance, a respective data encryption key and identifier are
generated.
Inventors: |
Ben-Ami; Hadas; (Netanyah,
IL) ; Portman; Leon; (Rishon Lezion, IL) ;
Hoffman; Dvir; (Kfar Saba, IL) ; Fisher; Oren;
(Tel Aviv, IL) |
Correspondence
Address: |
DR. MARK FRIEDMAN LTD.;C/o Bill Polkinghorn
9003 Florin Way
Upper Marlboro
MD
20772
US
|
Assignee: |
NICE SYSTEMS LTD.
|
Family ID: |
39171326 |
Appl. No.: |
11/519971 |
Filed: |
September 13, 2006 |
Current U.S.
Class: |
726/27 |
Current CPC
Class: |
H04L 9/0894 20130101;
H04L 9/3242 20130101; H04L 63/123 20130101; H04L 63/0428 20130101;
H04L 2209/56 20130101; H04L 9/0822 20130101; H04L 2209/60 20130101;
H04L 63/062 20130101 |
Class at
Publication: |
726/27 |
International
Class: |
H04L 9/32 20060101
H04L009/32 |
Claims
1. A method of distributing data, comprising the steps of: (a)
encrypting the data, using a data encryption key, thereby providing
encrypted data; (b) requesting the data, by a data requestor; (c)
in response to said request, sending said encrypted data to said
data requester; (d) authenticating said data requester, by a crypto
information server; and (e) contingent on said authenticating,
sending said data encryption key to said data requester, by said
crypto information server.
2. The method of claim 1, wherein said data encryption key is a
symmetric key.
3. The method of claim 1, wherein said data encryption key is sent
to said data requestor in encrypted form.
4. The method of claim 1, further comprising the step of: (f)
requesting said data encryption key, by said data requester, said
authenticating being in response to said requesting of said data
encryption key.
5. The method of claim 1, further comprising the steps of: (f)
generating said data encryption key; and (g) associating said data
encryption key with a respective identifier.
6. The method of claim 5, wherein said data encryption key is
generated according to a predefined key granularity.
7. The method of claim 5, wherein said identifier is sent to said
data requestor along with said encrypted data, the method further
comprising the step of: (h) sending said identifier to said crypto
information server, by said data requestor, to request said data
encryption key, said authenticating being in response to receipt of
said identifier from said data requestor by said crypto information
server.
8. The method of claim 5, further comprising the step of: (h)
storing said data encryption key and said identifier in a database,
by said crypto information server.
9. The method of claim 8, wherein said data encryption key is
stored in said database in encrypted form.
10. The method of claim 1, wherein the data are encrypted by a data
provider, the method further comprising the step of: (f) storing
said encrypted data in an archive separate from said data provider,
said encrypted data being sent to said data requestor from said
archive.
11. The method of claim 1, further comprising the steps of: (f)
attaching a message authentication code to the data prior to said
encrypting; and (g) contingent on said authenticating, sending a
message authentication code key of said message authentication code
to said data requester, by said crypto information server.
12. The method of claim 11, further comprising the steps of: (h)
generating said data encryption key and said message authentication
code key; and (i) associating said data encryption key and said
message authentication code key with a common respective
identifier.
13. The method of claim 12, wherein said data encryption key and
said message authentication code key are generated according to a
predefined key granularity.
14. The method of claim 12, wherein said identifier is sent to said
data requestor along with said encrypted data, the method further
comprising the step of: (j) sending said identifier to said crypto
information server, by said data requestor, to request said data
encryption key and said message authentication code key, said
authenticating being in response to receipt of said identifier from
said data requester by said crypto information server.
15. The method of claim 12, further comprising the step of: (j)
storing said data encryption key and said message authentication
code key in a database, by said crypto information server.
16. The method of claim 15, wherein said data encryption key and
said message authentication code key are stored in said database in
encrypted form.
17. A system for secure distribution of data, comprising: (a) a
data requester; (b) a data provider operative: (i) to encrypt the
data using a data encryption key, thereby providing encrypted data,
and (ii) to send said encrypted data to said data requestor; and
(c) a crypto information server operative: (i) to authenticate said
data requester, and (ii) contingent on said authentication, to send
said data encryption key to said data requestor.
18. The system of claim 17, wherein said crypto information server
is operative to send said data encryption key to said data
requester in encrypted form.
19. The system of claim 17, wherein said data provider also is
operative: (iii) to generate said data encryption key; and (iv) to
associate said data encryption key with a respective
identifier.
20. The system of claim 19, wherein said data provider is operative
to generate said data encryption key according to a predefined key
granularity.
21. The system of claim 19, wherein said data provider also is
operative: (v) to send said identifier to said data requestor along
with said encrypted data; and (vi) to send said data encryption key
and said identifier to said crypto information server; wherein said
data requestor is operative to request said data encryption key
from said crypto information server by steps including sending said
identifier to said crypto information server, said authenticating
being in response to receipt of said identifier from said data
requestor by said crypto information server.
22. The system of claim 21, wherein each of said data provider and
said data requestor includes a respective instance of a crypto
information client that is operative: (i) to generate said data
encryption key; (ii) to generate said respective identifier; (iii)
to send said data encryption key and said identifier to said crypto
information server; and (iv) to request said data encryption key
from said crypto information server by steps including sending said
identifier to said crypto information server.
23. The system of claim 21, further comprising: (d) a database
wherein said crypto information server stores said data encryption
key and said identifier.
24. The system of claim 23, wherein said crypto information server
stores said data encryption key in said database in encrypted
form.
25. The system of claim 17, further comprising: (d) an archive,
separate from said data provider, for storing said encrypted
data.
26. The system of claim 25, wherein said archive is operative to
send said encrypted data to said data requester.
27. The system of claim 17, wherein said data provider also is
operative: (iii) to attach a message authentication code to the
data prior to encrypting the data; and wherein said crypto
information server also is operative: (iii) contingent on said
authenticating, to send a message authentication code key of said
message authentication code to said data requester.
28. The system of claim 27, wherein said data provider also is
operative: (iv) to generate said data encryption key and said
message authentication code key; and (v) to associate said data
encryption key and said message authentication code key with a
common respective identifier.
29. The system of claim 28, wherein said data provider is operative
to generate said data encryption key and said message
authentication key according to a predefined key granularity.
30. The system of claim 28, wherein said data provider also is
operative: (vi) to send said identifier to said data requestor
along with said encrypted data; and (vii) to send said data
encryption key, said message authentication code key and said
identifier to said crypto information server; wherein said data
requestor is operative to request said data encryption key and said
message authentication code key from said crypto information server
by steps including sending said identifier to said crypto
information server, said authenticating being in response to
receipt of said identifier from said data requester by said crypto
information server.
31. The system of claim 30, wherein each of said data provider and
said data requestor includes a respective instance of a crypto
information client that is operative: (i) to generate said data
encryption key; (ii) to generate said message authentication code
key; (iii) to generate said respective common identifier; (iv) to
send said data encryption key, said message authentication code key
and said identifier to said crypto information server; and (v) to
request said data encryption key and said message authentication
code key from said crypto information server by steps including
sending said identifier to said crypto information server.
32. The system of claim 30, further comprising: (d) a database
wherein said crypto information server stores said data encryption
key, said message authentication code key and said identifier.
33. The system of claim 32, wherein said crypto information server
stores said data encryption key and said message authentication
code key in said database in encrypted form.
34. A method of collecting and distributing a plurality of
instances of data, comprising the steps of: (a) for each instance:
(i) generating a respective data encryption key, and (ii)
encrypting said each instance, using said respective data
encryption key, thereby providing respective encrypted data; (b)
requesting at least a portion of one of the instances, by a data
requestor; and (c) in response to said request, sending a
corresponding portion of said respective encrypted data of said one
instance to said data requestor.
35. The method of claim 34, wherein said one instance includes
voice data.
36. The method of claim 34, wherein said one instance includes VoIP
data.
37. The method of claim 34, wherein said one instance includes
video data.
38. The method of claim 34, wherein said one instance includes
screen capture data.
39. The method of claim 34, wherein said data encryption keys are
symmetric keys.
40. The method of claim 34, wherein said data encryption keys are
generated according to a predefined key granularity.
41. The method of claim 34, further comprising the step of: (d) for
each instance: capturing said instance, by a respective data
provider, said generating of said respective data encryption key
and said encrypting of said each instance being effected by said
respective data provider.
42. The method of claim 41, further comprising the step of: (e) for
each instance, storing said encrypted data in an archive separate
from said respective data provider, said respective encrypted data
being sent to said data requestor from said archive.
43. The method of claim 34, further comprising the step of: (d) for
said one instance: (i) authenticating said data requestor, by a
crypto information server; and (ii) contingent on said
authenticating, sending said respective data encryption key of said
one instance to said data requester, by said crypto information
server.
44. The method of claim 43, wherein said respective data encryption
key of said one instance is sent to said data requestor in
encrypted form.
45. The method of claim 43, further comprising the step of: (e) for
said one instance: requesting said respective data encryption key,
by said data requestor, said authenticating being in response to
said requesting of said respective data encryption key.
46. The method of claim 45, further comprising the step of: (f) for
each instance, associating said respective data encryption key with
a respective identifier.
47. The method of claim 46, further comprising the step of: (g) for
said one instance: sending said respective identifier of said one
instance to said data requestor along with said respective
encrypted data of said one instance, said requesting of said
respective data encryption key by said data requester then
including sending said respective identifier of said one instance
to said crypto information server.
48. The method of claim 46, further comprising the step of: (g) for
each instance, storing said respective data encryption key and said
respective identifier in a database, by said crypto information
server.
49. The method of claim 48, wherein said data encryption keys are
stored in said database in encrypted form.
50. The method of claim 43, further comprising the steps of: (d)
for each instance, attaching a respective message authentication
code to said each instance prior to said encrypting; and (e) for
said one instance: (i) authenticating said data requestor by a
crypto information server; and (ii) contingent on said
authenticating, sending said respective data encryption key of said
one instance and a message authentication code key of said
respective message authentication code of said one instance to said
data requester, by said crypto information server.
51. The method of claim 50, further comprising the step of: (f) for
each instance: (i) generating a respective message authentication
code key; and (ii) generating said respective message
authentication code, using said respective message authentication
code key.
52. The method of claim 51, wherein said message authentication
code keys are generated according to a predefined key
granularity.
53. The method of claim 50, wherein said respective data encryption
key and said respective message authentication code key of said one
instance are sent to said data requestor in encrypted form.
54. The method of claim 50, further comprising the step of: (f) for
said one instance: requesting said respective data encryption key
and said respective message authentication code key, by said data
requestor, said authenticating being in response to said requesting
of said respective data encryption key and said respective message
authentication code key.
55. The method of claim 54, further comprising the step of: (g) for
each instance, associating said respective data encryption key and
said respective message authentication code key with a common
respective identifier.
56. The method of claim 55, further comprising the step of: (h) for
said one instance: sending said respective identifier of said one
instance to said data requestor along with said respective
encrypted data of said one instance, said requesting of said
respective data encryption key and said respective message
authentication code key by said data requester then including
sending said respective identifier of said one instance to said
crypto information server.
57. The method of claim 55, further comprising the step of: (h) for
each instance, storing said respective data encryption key, said
respective message authentication code key and said respective
identifier in a database, by said crypto information server.
58. The method of claim 57, wherein said data encryption keys and
said message authentication code keys are stored in said database
in encrypted form.
59. A system for secure collection and distribution of a plurality
of instances of data, comprising: (a) a set, of at least one data
provider, operative: (i) to capture said instances, and (ii) for
each instance: (A) to generate a respective data encryption key,
and (B) to encrypt said each instance, using said respective data
encryption key, thereby providing respective encrypted data; (b) a
data requestor operative: (i) to request at least a portion of one
of the instances; and (c) an archive operative: (i) to store said
encrypted data; and (ii) in response to said request of said at
least portion of said one instance by said data requester: to send
a corresponding portion of said respective encrypted data of said
one instance to said data requestor.
60. The system of claim 59, wherein said archive is separate from
said set of at least one data provider.
61. The system of claim 59, wherein said set of said at least one
data provider is operative to generate said data encryption keys
according to a predefined key granularity.
62. The system of claim 59, further comprising: (d) a crypto
information server, operative: (i) to authenticate said data
requestor; and (ii) contingent on said authentication, to send said
respective data encryption key of said one instance to said data
requestor.
63. The system of claim 62, wherein said crypto information server
is operative to send said data encryption key to said data
requestor in encrypted form.
64. The system of claim 62, wherein said data requestor also is
operative: (ii) to request said respective data encryption key of
said one instance from said crypto information server, said
authenticating being in response to said requesting of said
respective data encryption key.
65. The system of claim 64, wherein said set of said at least one
data provider also is operative, for each instance: (C) to
associate said respective data encryption key with a respective
identifier; wherein said archive also is operative: (iii) in
response to said request of said at least portion of said one
instance by said data requester: to send said respective identifier
of said one instance to said data requester; and wherein said data
requestor requests said respective data encryption key of said one
instance from said crypto information server by steps including
sending said respective identifier of said one instance to said
crypto information server.
66. The system of claim 65, wherein each of said at least one data
provider and said data requestor includes a respective instance of
a crypto information client that is operative: (i) to generate said
data encryption keys and said identifiers; (ii) to send said data
encryption keys and said identifiers to said crypto information
server; and (iii) to request said data encryption keys from said
crypto information server by steps including, for each requested
said data encryption key, sending said identifier thereof to said
crypto information server.
67. The system of claim 65, further comprising: (e) a database,
wherein said crypto information server stores said data encryption
keys and said identifiers.
68. The system of claim 67, wherein said crypto information server
stores said data encryption keys and said identifiers in said
database in encrypted form.
69. The system of claim 59, wherein said set of said at least one
data provider also is operative, for each instance: (C) to generate
a respective message authentication code key; (D) to generate a
respective message authentication code, using said respective
message authentication code key; and (E) to attach said respective
message authentication code to said each instance prior to
encrypting said each instance; and wherein the system further
comprises: (d) a crypto information server, operative: (i) to
authenticate said data requestor; and (ii) contingent on said
authentication, to send said respective data encryption key and
said respective message authentication code key of said one
instance to said data requester.
70. The system of claim 69, wherein said set of said at least one
data provider is operative to generate said message authentication
code keys according to a predefined key granularity.
71. The system of claim 69, wherein said crypto information server
is operative to send said respective data encryption key and said
respective message authentication code key of said one instance to
said data requestor in encrypted form.
72. The system of claim 69, wherein said set of said at least one
data provider also is operative, for each instance: (F) to
associate said respective data encryption key and said respective
message authentication code key with a common respective
identifier; wherein said archive also is operative: (iii) in
response to said request of said at least portion of said one
instance by said data requester: to send said respective identifier
of said one instance to said data requester; and wherein said data
requestor requests said respective data encryption key and said
respective message authentication code key of said one instance
from said crypto information server by steps including sending said
respective identifier of said one instance to said crypto
information server.
73. The system of claim 72, wherein each of said at least one data
provider and said data requestor includes a respective instance of
a crypto information client that is operative: (i) to generate said
data encryption keys, said message authentication code keys and
said identifiers; (ii) to send said data encryption keys, said
message authentication code keys and said identifiers to said
crypto information server; and (iii) to request said data
encryption keys and said message authentication code keys from said
crypto information server by steps including, for each requested
said data encryption key and for each requested said message
authentication code key, sending said identifier thereof to said
crypto information server.
74. The system of claim 72, further comprising: (e) a database,
wherein said crypto information server stores said data encryption
keys, said message authentication code keys and said
identifiers.
75. The system of claim 74, wherein said crypto information server
stores said data encryption keys, said message authentication code
keys and said identifiers in said database in encrypted form.
Description
FIELD AND BACKGROUND OF THE INVENTION
[0001] The present invention relates to a method and system for
collecting data at a source and distributing the data to one or
more destinations and, more particularly, to such a method and
system in which the data are protected from eavesdropping and from
unauthorized changes from when the data leave the source until the
data arrive at their ultimate destination(s).
[0002] The efficient storage and retrieval of multi-channel data
communications, and especially of voice data, are critically
important in many modern business and government applications. For
example, financial institutions record instructions from clients as
a protection against fraud and as evidence in legal proceedings
about the content of telephone conversations; public safety
agencies record emergency calls for event reconstruction and future
investigations; commercial entities monitor transactions over the
phone to evaluate salespersons' efficiency, to ensure customer
satisfaction and to develop training programs.
[0003] Data logging and retrieval systems for capturing, recording
and retrieving data transmitted over multiple communication lines
are known in the art. See for example Henits, U.S. Pat. No.
6,775,372, which patent is incorporated by reference for all
purposes as if fully set forth herein, and the references cited
therein. FIG. 1 is a high-level schematic block diagram of an
exemplary prior art system 10 for capturing, storing and retrieving
telephone conversations. System 10 is based on a Local Area Network
(LAN) 12 that uses the IP protocol to transfer digital data, borne
by IP packets, among the other components of system 10. System 10
includes several loggers 14, as described for example in the Henits
patent, for capturing digital data that represent telephone
conversations. Digital records of the telephone conversations are
stored in an archive 18. A controller 16 manages LAN 12.
[0004] LAN 12 is connected to the outside world, specifically to a
Wide Area Network (WAN) 22 such as the worldwide Internet, by a Web
server 20. User terminals 24, represented as personal computers,
also are connected to WAN 22. A user of a terminal 24 uses a
standard Web browser to access data stored in archive 18 via Web
server 20.
[0005] System 10 is vulnerable to eavesdropping. Even if, as is
usually the case, data captured by loggers 14 is encrypted and is
stored in an encrypted form in archive 14, Web server 20 typically
decrypts data requested by a user of a terminal 24 before exporting
the data to WAN 22. There are many ways in which eavesdroppers can
intercept the data on WAN 22, especially if WAN 22 is the worldwide
Internet.
[0006] System 10 also is vulnerable to unauthorized modification of
the data. This is true even if access to data in archive 18 were to
be limited to terminals connected to LAN 12. For example, if
archive 14 is responsible for encryption, data can be tampered with
in transit from loggers 14 to archive 18.
[0007] There is thus a widely recognized need for, and it would be
highly advantageous to have, a data collection and distribution
system in which the data are continuously protected from
eavesdropping and unauthorized modification, from when the data
leave their original source until the data arrive at their ultimate
destination.
SUMMARY OF THE INVENTION
[0008] The present invention defends data against eavesdropping by
encrypting the data as soon as the data are collected or generated
and then keeping the data encrypted at all times until the data
actually are displayed to an authorized user.
[0009] According to the present invention there is provided a
method of distributing data, including the steps of: (a) encrypting
the data, using a data encryption key, thereby providing encrypted
data; (b) requesting the data, by a data requester; (c) in response
to the request, sending the encrypted data to the data requester;
(d) authenticating the data requester, by a crypto information
server; and (e) contingent on the authenticating, sending the data
encryption key to the data requestor, by the crypto information
server.
[0010] According to the present invention there is provided a
system for secure distribution of data, including: (a) a data
requestor; (b) a data provider operative: (i) to encrypt the data
using a data encryption key, thereby providing encrypted data, and
(ii) to send the encrypted data to the data requestor; and (c) a
crypto information server operative: (i) to authenticate the data
requester, and (ii) contingent on the authentication, to send the
data encryption key to the data requester.
[0011] According to the present invention there is provided a
method of collecting and distributing a plurality of instances of
data, including the steps of: (a) for each instance: (i) generating
a respective data encryption key, and (ii) encrypting the each
instance, using the respective data encryption key, thereby
providing respective encrypted data; (b) requesting at least a
portion of one of the instances, by a data requester; and (c) in
response to the request, sending a corresponding portion of the
respective encrypted data of the one instance to the data
requester.
[0012] According to the present invention there is provided a
system for secure collection and distribution of a plurality of
instances of data, including: (a) a set, of at least one data
provider, operative: (i) to capture the instances, and (ii) for
each instance: (A) to generate a respective data encryption key,
and (B) to encrypt the each instance, using the respective data
encryption key, thereby providing respective encrypted data; (b) a
data requestor operative: (i) to request at least a portion of one
of the instances; and (c) an archive operative: (i) to store the
encrypted data; and (ii) in response to the request of the at least
portion of the one instance by the data requester: to send a
corresponding portion of the respective encrypted data of the one
instance to the data requester.
[0013] The first method of the present invention is a method of
distributing data such as voice data, voice over IP (VoIP) data,
video data and screen data, among others. According to the basic
embodiment of the first method, the data are encrypted, using a
data encryption key, to provide encrypted data. When a data
requestor requests the data, the encrypted data are sent to the
data requester. A crypto information server authenticates the data
requestor. Contingent on the authenticating, i.e., if the crypto
information server determines that the data requestor is authorized
to receive the data, the crypto information server sends the data
encryption key to the data requestor. Preferably, the data
encryption key is a symmetric key, to enable the data requester to
decrypt the encrypted data. In the preferred embodiments below,
user terminals 34 and 112 are the data requesters.
[0014] Preferably, the data encryption key is sent to the data
requester in encrypted form.
[0015] Preferably, the data requestor requests the data encryption
key, and the authentication of the data requestor is in response to
that request.
[0016] Preferably, the method includes generating the data
encryption key and associating the data encryption key with a
respective identifier. Most preferably, the data encryption keys
are generated according to a predefined key granularity.
[0017] More preferably, the identifier is sent to the data
requestor along with the encrypted data; and the data requester
sends the identifier to the crypto information server to request
the data encryption key. The authentication of the data requestor
is in response to receipt of the identifier from the data requestor
by the crypto information server.
[0018] Also more preferably, the crypto information server stores
the data encryption key and the identifier in a database. Most
preferably, the data encryption key is stored in the database in
encrypted form, to prevent unauthorized access of the data
encryption key.
[0019] Preferably, the data are encrypted by a data provider, and
the encrypted data also are stored in an archive that is separate
from the data provider. When the data requestor requests the data,
the encrypted data are sent to the data requester from the archive.
In the preferred embodiments below, loggers 32 are the data
providers.
[0020] Preferably, a message authentication code is attached to the
data prior to encrypting the data, so that the message
authentication code becomes part of the data and is encrypted along
with the data. The attaching of the message authentication code to
the data may be, for example, by appending the message
authentication code to the data, by prepending the message
authentication code to the data or by inserting the message
authentication code in the data. Contingent on the authenticating,
the crypto information server sends a message authentication code
key of the message authentication code to the data requestor.
[0021] More preferably, the method includes the steps of generating
the data encryption key and the message authentication code key and
associating the data encryption key and the message authentication
code key with a common respective identifier. The identifier is
sent to the data requestor along with the encrypted data; and the
data requestor sends the identifier to the crypto information
server to request the data encryption key and the message
authentication code key. The authentication of the data requester
is in response to receipt of the identifier from the data requester
by the crypto information server. Most preferably, the data
encryption key and the message authentication code key are
generated according to a predefined key granularity.
[0022] Also more preferably, the crypto information server stores
the data encryption key, the message authentication code key and
the identifier in a database. Most preferably, the data encryption
key and the message authentication code key are stored in the
database in encrypted form, to prevent unauthorized access of the
data encryption key and the message authentication code key.
[0023] A first basic system of the present invention, for secure
distribution of data, includes a data requestor, a data provider
and a crypto information server. The data provider encrypts the
data using a data encryption key, thereby providing encrypted data,
and sends the encrypted data to the data requestor. The crypto
information server authenticates the data requestor. Contingent on
that authentication, i.e., if the crypto information server
determines that the data requester is authorized to receive the
data, the crypto information server sends the data encryption key
to the data requestor. Preferably, the crypto information server
sends the data encryption key to the data requestor in encrypted
form.
[0024] Preferably, the data provider also generates the data
encryption key and associates the data encryption key with a
respective identifier. Most preferably, the data provider generates
the data encryption key according to a predefined key granularity.
More preferably, the data provider also sends the identifier to the
data requestor along with the encrypted data and also sends the
data encryption key to the crypto information server along with the
identifier. The data requester requests the data encryption key
from the crypto information server by sending the identifier to the
crypto information server. The authentication of the data requestor
by the crypto information server then is in response to receipt of
the identifier from the data requestor by the crypto information
server.
[0025] Most preferably, both the data provider and the data
requester include respective instances of a crypto information
client that is operative to generate the data encryption key and
its respective identifier, to send the data encryption key and its
identifier to the crypto information server, and to request the
data encryption key from the crypto information server by sending
the identifier to the crypto information server.
[0026] Even more preferably, the system also includes a database
wherein the crypto information server stores the data encryption
key and the identifier. Most preferably, the data encryption key is
stored in the database in encrypted form.
[0027] Preferably, the system also includes an archive, separate
from the data provider, for storing the encrypted data. The sending
of the encrypted data from the data provider to the data requestor
may be either direct or via the archive: most preferably, the
archive is operative to send the encrypted data to the data
requestor.
[0028] Preferably, the data provider also attaches a message
authentication code to the data prior to encrypting the data, and,
contingent on the authenticating, the crypto information server
sends a message authentication code key to the data requestor.
[0029] More preferably, the data provider also generates the data
encryption key and the message authentication code key, and
associates the data encryption key and the message authentication
code key with a common respective identifier. Even more preferably,
the data provider also sends the identifier to the data requestor
along with the encrypted data and also sends the data encryption
key and the message authentication code key to the crypto
information server along with the identifier. The data requester
requests the data encryption key and the message authentication
code key from the crypto information server by sending the
identifier to the crypto information server. The authentication of
the data requester by the crypto information server then is in
response to receipt of the identifier from the data requestor by
the crypto information server. Most preferably, the data provider
generates the data encryption key and the message authentication
code key according to a predefined key granularity.
[0030] Most preferably, both the data provider and the data
requestor include respective instances of a crypto information
client that is operative to generate the data encryption key, the
message authentication code key and their respective common
identifier, to send the data encryption key, the message
authentication code key and their identifier to the crypto
information server, and to request the data encryption key and the
message authentication code key from the crypto information server
by sending the identifier to the crypto information server.
[0031] Even more preferably, the system also includes a database
wherein the crypto information server stores the data encryption
key, the message authentication code key and the identifier. Most
preferably, the data encryption key and the message authentication
code key are stored in the database in encrypted form.
[0032] A second method of the present invention is a method of
collecting and distributing a plurality of instances of data. What
constitutes an "instance" of data is implementation dependent. For
example, in the first preferred embodiment discussed below, the
data instances are files of audio data, and in the second preferred
embodiment discussed below, the data instances are all the data
captured in different external channels and all the data captured
as a result of different initializations of screen agents 118.
According to the basic embodiment of the second method, for each
data instance, a corresponding respective data encryption key is
generated and the data instance is encrypted using that data
encryption key, thereby providing respective encrypted data. When a
data requester requests at least a portion of one of the data
instances, a corresponding portion of the requested data instance's
respective encrypted data is sent to the data requestor.
[0033] Preferably, the requested data instance includes voice data,
VoIP data, video data and/or screen capture data.
[0034] Preferably, the data encryption keys are symmetric keys, to
enable the data requestor to decrypt the encrypted data.
[0035] Preferably, the data encryption keys are generated according
to a predefined key granularity.
[0036] Preferably, each data instance is captured by a respective
data provider that then generates the respective data encryption
key and uses that data encryption key to encrypt the data
instance.
[0037] Most preferably, the respective encrypted data of each data
instance are stored in an archive separate from the data provider
that captured the data instance. Encrypted data are sent to the
data requester from the archive rather than from the data provider
that captured the corresponding data instance.
[0038] Preferably, the data requestor is authenticated by a crypto
information server. Contingent on the authenticating, i.e., if the
crypto information server determines that the data requestor is
authorized to receive the data, the crypto information server sends
the respective data encryption key of the requested data instance
portion to the data requester, most preferably in encrypted form.
More preferably, the authenticating is in response to the data
requestor requesting the respective data encryption key of the
requested data instance portion. Most preferably, each data
encryption key is associated with a respective identifier that is
sent to the data requester along with the requested data instance
portion, and the data requestor requests the respective data
encryption key of the requested data instance portion by sending
the associated identifier to the crypto information server. Also
even more preferably, the crypto information server stores the data
encryption keys and the identifiers in a database, most preferably
in encrypted form.
[0039] Preferably, a respective message authentication code is
attached to each data instance prior to encrypting the data
instance, so that the message authentication code becomes part of
the data instance and is encrypted along with the data instance.
More preferably, a respective message authentication code key is
generated and is used to generate the respective message
authentication code. Most preferably, the message authentication
code keys are generated according to a predefined key granularity.
The attaching of the message authentication code to the data
instance may be, for example, by appending the message
authentication code to the data instance, by prepending the message
authentication code to the data instance or by inserting the
message authentication code in the data instance. The data
requestor is authenticated by a crypto information server.
Contingent on the authenticating, i.e., if the crypto information
server determines that the data requestor is authorized to receive
the data, the crypto information server sends the respective data
encryption key of the requested data instance portion, along with a
message authentication code key of the requested data instance
portion, to the data requester, most preferably in encrypted form.
More preferably, the authenticating is in response to the data
requester requesting the respective data encryption key and the
respective message authentication code key of the requested data
instance portion. Most preferably, each
data-encryption-key-message-authentication-code-key pair is
associated with a respective identifier that is sent to the data
requester along with the requested data instance portion, and the
data requestor requests the respective data encryption key and the
respective message authentication code key of the requested data
instance portion by sending the associated identifier to the crypto
information server. Also even more preferably, the crypto
information server stores the data encryption keys, the message
authentication code keys and the identifiers in a database, most
preferably in encrypted form.
[0040] A second basic system of the present invention, for secure
collection and distribution of a plurality of instances of data,
includes a set of one or more data providers, a data requester and
an archive. The set of data providers capturers the data instances
and, for each captured data instance, generates a respective data
encryption key and uses that data encryption key to encrypt the
data instance, thereby providing respective encrypted data. The
data requestor requests at least a portion of one of the data
instances. The encrypted data are stored in the archive. In
response to the request for the data instance portion, the archive
sends the data requester a corresponding portion of the respective
encrypted data of the requested data instance portion.
[0041] Although the set of data providers could serve to archive
their own encrypted data, especially in an embodiment with only one
data provider, it is preferable that the archive be separate from
the set of data providers.
[0042] Preferably, the set of data providers generates the data
encryption keys according to a predefined key granularity.
[0043] Preferably, the system also includes a crypto information
server that authenticates the data requestor and that, contingent
on the authentication (i.e., if the crypto information server
determines that the data requestor is authorized to receive the
data), sends the respective data encryption key of the requested
data instance portion to the data requester, most preferably in
encrypted form.
[0044] More preferably, the data requestor also requests the
respective data encryption key of the requested data instance
portion from the crypto information server, and the authenticating
is in response to that request. Even more preferably, the set of
data providers associates each data encryption key with a
respective identifier, and the archive, in response to the request
of the data instance portion by the data requestor, sends the
respective identifier of the requested data instance portion to the
data requestor along with the requested data instance portion. The
data requestor then requests the respective data encryption key of
the requested data instance portion from the crypto information
server by sending the identifier of the requested data instance
portion to the crypto information server.
[0045] Most preferably, each data provider, as well as the data
requester, includes a respective instance of a crypto information
client that is operative to generate the data encryption keys and
the identifiers, to send the data encryption keys and the
identifiers to the crypto information server, and to request the
data encryption keys from the crypto information server by steps
including, for each requested data encryption key, sending the
identifier of the requested data encryption key to the crypto
information server.
[0046] More preferably still, the system also includes a database
wherein the crypto information server stores the data encryption
keys and the identifiers, most preferably in encrypted form.
[0047] Preferably, the set of data providers also generates a
respective message authentication code key for each data instance,
uses that message authentication code key to generate a respective
message authentication code, and attaches the respective message
authentication code key thus generated to the data instance prior
to encrypting the data instance. Most preferably, the set of data
providers generates the message authentication code keys according
to a predefined key granularity. The system also includes a crypto
information server that authenticates the data requester and that,
contingent on that authentication, sends the respective data
encryption key and the respective message authentication code key
of the requested data instance portion to the data requester, most
preferably in encrypted form.
[0048] Even more preferably, the set of data providers associates
each data-encryption-key-message-authentication-code-key pair with
a respective identifier, and the archive, in response to the
request of the data instance portion by the data requester, sends
the respective identifier of the requested data instance portion to
the data requestor along with the requested data instance portion.
The data requestor then requests the respective data encryption key
and the respective message authentication code key of the requested
data instance portion from the crypto information server by sending
the identifier of the requested data instance portion to the crypto
information server.
[0049] Most preferably, each data provider, as well as the data
requestor, includes a respective instance of a crypto information
client that is operative to generate the data encryption keys, the
message authentication code keys and the identifiers, to send the
data encryption keys, the message authentication code keys and the
identifiers to the crypto information server, and to request the
data encryption keys and the message authentication code keys from
the crypto information server by steps including, for each
requested data-encryption-key-message-authentication-code-key pair,
sending the identifier of the requested
data-encryption-key-message-authentication-code-key pair to the
crypto information server.
[0050] More preferably still, the system also includes a database
wherein the crypto information server stores the data encryption
keys, the message authentication code keys and the identifiers,
most preferably in encrypted form.
[0051] Blair et al., in US Patent Application Publication No.
2006/0123106, teach a wiretapping device that is intended to be
used by law enforcement officials to secretly record conversations
legally even before such recording has been authorized by a judge.
The device encrypts the conversations immediately upon intercept,
using a password that is available to the law enforcement officials
only from the judge, and stores the encrypted conversations.
Without receiving the password from the judge, the recorded
conversations are unintelligible to the law enforcement officials.
Unlike the present invention, the device of Blair et al. lacks
mandatory end-to-end encryption: having obtained the password, the
law enforcement officials are free to decrypt the conversations
in-place.
[0052] Coordinated Systems, Inc. of East Hartford Conn., USA,
offers a data logging and retrieval system called Virtual Observer
that is similar to the logging system of the present system,
insofar as Virtual Observer encrypts the data immediately on
capture and conditions playback of archived data on authentication
of the party requesting the playback. However, as far as the
present inventors are aware, Virtual Observer sends unencrypted
data to authenticated requesting parties and so lacks the
end-to-end authentication of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0053] The invention is herein described, by way of example only,
with reference to the accompanying drawings, wherein:
[0054] FIG. 1 is a high-level schematic block diagram of a prior
art system for capturing, storing and retrieving telephone
conversations;
[0055] FIG. 2 is a high-level schematic block diagram of the system
of FIG. 1 as modified according to the present invention;
[0056] FIG. 3 is a high-level schematic block diagram of a logger
of the system of FIG. 2;
[0057] FIG. 4 is a high-level schematic block diagram of a user
terminal of the system of FIG. 2;
[0058] FIG. 5 illustrates the data flow in the system of FIG.
2;
[0059] FIG. 6 is a high-level schematic block diagram of a second
system of the present invention;
[0060] FIGS, 7-1 through 7-20, 8-1 through 8-28 and 9-1 through
9-14 are vendor descriptions of the prior art NICE Perform.RTM.
system of which the preferred systems of the present invention
described herein are improvements.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0061] The principles and operation of a data collection and
distribution system according to the present invention may be
better understood with reference to the drawings and the
accompanying description.
[0062] Referring again to the drawings, FIG. 2 is a high-level
schematic block diagram of a first system 30 of the present
invention. Specifically, system 30 is system 10 of FIG. 1 modified
according to the principles of the present invention. System 30
inherits LAN 12, archive 18, Web server 20 and WAN 22 from system
10 substantially unchanged. The new components of system 30 include
modified loggers 32, modified user terminals 34, a modified
controller 36 and a key database 38.
[0063] FIG. 3 is a high-level schematic block diagram of a logger
32 of the system 30, for logging multichannel audio input. Logger
32 includes an input interface 44 to the audio input, a digital
signal processor (DSP) 48, a controller 50, a non-volatile memory
52 and an output interface 54 to LAN 12. Depending on how interface
44 is configured, the audio input could be, for example, analog
input, digital extension input, E1/T1 trunk input or VoIP input.
Controller 50 is responsible for overall operation of logger 32.
One of the features of controller 50 that is relevant to the
present invention is that controller 50, with the help of an
instance 56 of a crypto information client, as described below,
attaches a message authentication code (MAC) to the compressed data
that controller 50 receives from DSP 48 and then encrypts the
compressed data together with the MAC. Controller 50 stores the
encrypted data in non-volatile memory 52 and retrieves the stored
encrypted data from non-volatile memory 52. Controller 50 also
exchanges data with LAN 12 via interface 54.
[0064] FIG. 4 is a high-level schematic block diagram of a user
terminal 34 of the present invention. Terminal 34 includes an
interface 58 to LAN 12, a controller 60, a set of user output
devices represented by a display block 62 and a set of user input
devices represented by an input block 64. The user input devices
represented by input block 64 include standard input devices such
as a keyboard and a mouse. The user output devices represented by
display block 62 include standard output devices such as a video
display screen, a speaker and a printer. Controller 60 is
responsible for overall operation of terminal 34. A user of
terminal 34 uses input devices 64 to request data for display from
web server 20. The data are received via interface 58 and are
displayed at one or more of output devices 62. The data are
exported in encrypted form, as described below; and one of the
features of controller 60 that is relevant to the present invention
is that controller 60, with the help of an instance 66 of a crypto
information client, as described below, decrypts the data for
display and verifies that the data have not been altered subsequent
to their encryption by their source logger 32. Note that in the
present context, "displaying" data means presenting the data to a
user in a perceptible form: visually at a display screen, audibly
via a speaker, etc.
[0065] The crypto information client of the present invention has
several functions. One of these functions is the generation of the
MAC keys that are used by controller 50 to generate MACs and of the
data encryption keys that are used by controller 50 to encrypt
data. Any conventional real-time symmetric encryption algorithm may
be used, but the preferred algorithm is the AES algorithm.
Preferably, each MAC key is 128 bits long and each data encryption
key is 256 bits long. The data encryption keys and the MAC keys are
generated according to a predefined key granularity, for example,
per telephone conversation or periodically (e.g. daily or monthly),
rather than according to a master key. For each file that
controller 50 needs to encrypt, instance 56 of the crypto
information client generates an associated MAC key, an associated
symmetric data encryption key and a corresponding Global Unique
Identifier (GUID). Periodically, for example at the end of a
telephone conversation, controller 50 sends the accumulated files
and the corresponding GUIDs from non-volatile memory 52 to archive
18 via LAN 12. At the same time, controller 50 sends the associated
MAC keys, the associated data encryption keys and the corresponding
GUIDs to controller 36 via LAN 12. Crypto information server 40 of
controller 36 encrypts the MAC keys and the data encryption keys
for storage, along with the corresponding GUIDs, in database
38.
[0066] The data that terminal 34 receives from Web server 20 are
encrypted and so are useless unless terminal 34 can decrypt the
data. Terminal 34 also needs to verify the authenticity of the
data, to make sure that the data have not been modified subsequent
to their encryption by logger 32. Therefore, another function of
the crypto information client of the present invention is fetching
MAC keys and data encryption keys from database 38. Terminal 34
receives data files from Web server 20 along with the corresponding
GUIDs. For each data file that terminal 34 receives from Web server
20, instance 56 of the crypto information client sends the
corresponding GUID to controller 36 with a request for the
associated MAC key and the associated data encryption key. Crypto
information server 40 negotiates with instance 56 of the crypto
information client to authorize the sending of the MAC key and the
data encryption key to terminal 34. If terminal 34 is authorized to
receive the MAC key and the data encryption key, crypto information
server 40 fetches the MAC key and the data encryption key from
database 38 according to the GUID received from terminal 34,
decrypts the MAC key and the data encryption key and sends the MAC
key and the data encryption key to the requesting terminal 34.
[0067] Authentication methods suitable for use by crypto
information server 40 and instance 56 of the crypto information
client are well-known in the art and need not be elaborated herein.
For example, in an Active Directory.RTM. environment, a protocol
such as Kerberos or Integrated Windows Authentication (IWA) is
used. In a non-Active-Directory environment, crypto information
server 40 and instance 56 of the crypto information client
authenticate each other by exchanging public key certificates. In
either case, if the authentication is successful, crypto
information server 40 sends the requested keys to terminal 34 in
encrypted form, albeit encrypted differently than how the keys are
stored in database 38. For example, in a non-Active-Directory
environment, crypto information server 40 uses a public key
algorithm to encrypt the requested keys. After all, if a data
encryption key were to be sent to terminal 34 in unencrypted form,
an eavesdropper could use the data encryption key to decrypt the
associated data file, thereby circumventing the present
invention.
[0068] Note that the functionality of the crypto information client
is different in terminal 34 than in logger 32. In logger 32, the
crypto information client generates the keys and the GUIDs. In
terminal 34, the crypto information client uses the GUIDs to fetch
the keys. It follows that loggers 32 and terminals 34 could be
equipped with different clients. Preferably, however, loggers 32
and terminals 34 use instances of the same crypto information
client. This simplifies the design of the present system.
[0069] FIG. 5 illustrates the data flow among crypto information
server 40 and instances 56 and 66 of the crypto information client
according to the present invention. Given a data file to encrypt,
instance 56 generates a data encryption key 70 and a corresponding
GUID 72. Instance 56 also generates a MAC key 78 that is used to
generate a MAC 76 that is embedded in the data file. Data
encryption key 70 is used to encrypt the data, including embedded
MAC 76, thereby producing an encrypted data file 74. File 74 and
GUID 72 are stored in archive 18. Data encryption key 70, MAC key
78 and GUID 72 are sent to crypto information server 40 that stores
data encryption key 70, MAC key 78 and GUID 72 in database 38. Upon
receipt of encrypted data file 74 and GUID 72 from archive 18,
instance 66 sends GUID 72 to crypto information server 40 as part
of a request for data encryption key 70. If the request receives
authorization, crypto information server 40 fetches data encryption
key 70 and MAC key 78 from database 38 according to GUID 72 and
sends data encryption key 66 and MAC 78 to instance 66.
[0070] The description above of the operation of system 30 is in
terms of a single logger 32 and a single user terminal 34. As
illustrated in FIG. 2, system 30 almost always includes many
loggers 32 and many user terminals 34; but these loggers 32 and
user terminals 34 typically operate independently of each other.
Crypto information server 40 stores all the encryption keys 70 and
all the associated GUIDs 72 in database 38 and sends encryption
keys 70 to all terminals 34 contingent on those terminals 34 being
authorized to receive encryption keys 70.
[0071] FIG. 6 is a high-level schematic block diagram of a second
system 100 of the present invention. System 100 is based on the
NICE Perform(.RTM. system available from NICE Systems Ltd. of
Raanana, Israel. Specifically, system 100 is a NICE Perform.RTM.
system modified according to the principles of the present
invention. Like a NICE perform.RTM. system, system 100 includes
several multimedia loggers 104, several user terminals 112, a
controller 106, a storage center 108 and external storage 110, all
communicating with each other via a LAN 102.
[0072] Loggers 104 capture whatever kind of multichannel data they
are configured to capture: voice, VoIP, video and/or screen capture
data. The captured data are stored in storage center 108 that
functions in a manner similar to archive 18 of systems 10 and 30.
Each user terminal includes a screen agent 118 that sends screen
capture data to an associated logger 104 and a player application
120 for playing (i.e., displaying) data fetched from storage center
108. Overall control of system 100 is provided by controller 106
that includes a playback media server 114 that mediates between
terminals 112 and their potential data sources (loggers 104 and
storage center 108) and an audio analysis server 116 that provides
audio analysis capabilities such as speech recognition, excitement
detection and talk analysis. Optionally, for efficient operation of
storage center 108, captured data also are archived in external
storage 110. The functionality listed in this paragraph is standard
in NICE Perform.RTM. systems. More details may be found in the
following three documents that are accessible to authorized
distributors and customers of NICE Systems Ltd. at
http://www.extranice.com: [0073] NICE Perform.TM. Architecture
Overview [0074] NICE Perform.TM. Solution Overview [0075] NICE
Perform.TM. Solution Brief To ensure that these three documents
remain available for the full life of the patent that is expected
to issue from the present patent application, all three documents
are reproduced herein in their entirety, as FIGS. 7-1 through 7-20,
8-1 through 8-28 and 9-1 through 9-14, respectively.
[0076] In addition, loggers 104 include respective instances 124 of
a crypto information client of the present invention, user
terminals 112 include respective instances 126 of a crypto
information client of the present invention and controller 106
includes a crypto information server 122 of the present invention.
Crypto information client instances 124 generate data encryption
keys and MAC keys for their respective loggers 104. The data
encryption keys are generated according to a predefined key
granularity. A separate data encryption key and a separate MAC key,
with the associated GUID, is generated for each external channel
from which data are captured, as well as for each initialization of
a screen agent 118. Loggers 104 packetize the captured data, insert
respective MACs in the media headers and encrypt the packets to
provide encrypted data that are stored in storage center 108 along
with associated GUIDs. Controller 106 stores the data encryption
keys, the MAC keys and the associated GUIDs in a key database 128.
When a user of a user terminal 112 wants to play back stored data,
the user fetches the data and its GUID from storage center 108. The
user then sends the GUID to controller 106 to request the
associated keys. Crypto information client instance 126 of that
user terminal 112 negotiates with crypto information server 122 as
described above to authorize the sending of the keys to user
terminal 112.
[0077] While the invention has been described with respect to a
limited number of embodiments, it will be appreciated that many
variations, modifications and other applications of the invention
may be made. For example, the data logging and data storing
functionality of logger 32 can be partitioned between a telcom
stage and a recorder stage, as taught in the Henits patent.
* * * * *
References