U.S. patent application number 11/233868 was filed with the patent office on 2006-04-06 for system for distributing information using a secure peer-to-peer network.
Invention is credited to Bing Liu.
Application Number | 20060075083 11/233868 |
Document ID | / |
Family ID | 36119438 |
Filed Date | 2006-04-06 |
United States Patent
Application |
20060075083 |
Kind Code |
A1 |
Liu; Bing |
April 6, 2006 |
System for distributing information using a secure peer-to-peer
network
Abstract
A secure peer-to-peer network including servers and peer
computers that are connected via a network are described. In one
aspect of the invention, the reliability of information provided by
one peer to another can be verified. One embodiment includes a
server connected to a network and a first peer computer connected
to the network. In addition, the first peer computer is configured
to communicate requests for information to the server, wherein the
server is configured to respond to requests for information by
providing the identity of at least a second peer computer, wherein
the requested information is stored on the second peer computer,
wherein the first peer computer is configured to obtain the
requested information from the second peer computer and the first
peer computer is configured to obtain from the server information
to verify the reliability of the information provided by the second
peer computer.
Inventors: |
Liu; Bing; (Rolling Hills,
CA) |
Correspondence
Address: |
CHRISTIE, PARKER & HALE, LLP
PO BOX 7068
PASADENA
CA
91109-7068
US
|
Family ID: |
36119438 |
Appl. No.: |
11/233868 |
Filed: |
September 22, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60522374 |
Sep 22, 2004 |
|
|
|
Current U.S.
Class: |
709/223 |
Current CPC
Class: |
H04L 63/0428 20130101;
H04L 63/1433 20130101; G06F 2221/0773 20130101; H04L 63/102
20130101; H04L 67/1072 20130101; H04L 67/104 20130101; H04L 67/1063
20130101; H04L 69/329 20130101; G06F 21/577 20130101; G06F 11/2294
20130101; H04L 67/1057 20130101; H04L 67/108 20130101; G06F 21/10
20130101; H04L 63/12 20130101; G06F 21/568 20130101 |
Class at
Publication: |
709/223 |
International
Class: |
G06F 15/173 20060101
G06F015/173 |
Claims
1. A secure peer-to-peer network, comprising: a server connected to
a network; a first peer computer connected to the network; wherein
the first peer computer is configured to communicate requests for
information to the server; wherein the server is configured to
respond to requests for information by providing the identity of at
least a second peer computer; wherein the requested information is
stored on the second peer computer; and wherein the first peer
computer is configured to obtain the requested information from the
second peer computer; wherein the first peer computer is configured
to obtain from the server information to verify the reliability of
the information provided by the second peer computer.
2. The secure peer-to-peer network of claim 1, wherein: a computer
program is installed on at least one of the peer computers; and the
information received by the peer is information enabling the
modification of the computer program.
3. The secure peer-to-peer network of claim 1, wherein the server
is configured to provide verification information to a peer
computer upon request.
4. The secure peer-to-peer network of claim 3, wherein the
verification information includes at least one checksum.
5. The secure peer-to-peer network of claim 3, wherein: the
information obtained from the second peer computer is encrypted;
and the verification information enables the decryption of the
information obtained from the second peer computer.
6. The secure peer-to-peer network of claim 1, wherein the server
is configured to provide verification information to a peer
computer possessing the required digital rights upon request.
7. The secure peer-to-peer network of claim 6, wherein the server
is configured to provide an option to acquire required digital
rights to a peer computer requesting verification information, when
the peer computer does not possess the required digital rights.
8. The secure peer-to-peer network of claim 7, wherein the
information includes audio information.
9. The secure peer-to-peer network of claim 8, wherein the
information also includes video information.
10. A server, comprising: hosted information stored on the server;
a list identifying computers, where the list is stored on the
server; and verification information stored on the server; wherein
the list identifying computers identifies a number of computers
that acquired the hosted information at some point in the past;
wherein the verification information can be derived from the hosted
information in accordance with a predetermined algorithm.
11. The server of claim 10, wherein the list identifying computers
includes computers that have obtained the verification information
from the server.
12. The server of claim 10, wherein the server is configured to
respond to requests for the hosted information by providing the
list identifying computers unless the list does not identify any
computers.
13. The server of claim 10, wherein the server is configured to
provide the verification information upon request.
14. The server of claim 10, wherein: the hosted information is
subject to digital rights management; and the server is configured
to provide verification information in response to a request from a
device possessing the digital rights required to use the hosted
information.
15. The server of claim 10, wherein the list identifying computers
identifies a maximum of 100 computers.
16. The server of claim 15, wherein the list identifying computers
identifies a maximum of 50 computers.
17. The server of claim 16, wherein the list identifying computers
identifies a maximum of 20 computers.
18. A computer configured to obtain information, comprising:
software; wherein the software configures the computer to enable it
to request information from a server; wherein the software
configures the computer to receive peer tables from a server;
wherein the software configures the computer to send requests for
information to computers listed in a received peer table; wherein
the software configures the computer to send requests to a server
for verification information relating to information received from
other computers; wherein the software configures the computer to
verify the reliability of information received from other computers
using verification information received from the server.
19. The computer of claim 18, wherein the software configures the
computer to request information from the server at least once a
week.
20. The computer of claim 19, wherein the software configures the
computer to request information from the server at least once a
day.
21. The computer of claim 20, wherein the software configures the
computer to request information from the server at least once every
eight hours.
22. A method of obtaining information comprising: contacting a
server to request the information; receiving information
identifying peer computers possessing the information from the
server; contacting the peer computers to request the information;
receiving the information; contacting the server for verification
information; and verifying the reliability of the information.
23. The method of claim 22, wherein the information is provided by
a peer computer.
24. The method of claim 22, wherein the information is provided by
a server.
25. The method of claim 22, further comprising obtaining the
digital rights to use the received information.
Description
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application claims the benefit of U.S. Provisional
Patent Application No. 60/522,374, filed Sep. 22, 2004, the
contents of which are expressly incorporated herein by reference in
its entirety.
BACKGROUND
[0002] The present invention relates to the distribution of
information over a data network and more specifically the secure
distribution of information over a peer network.
[0003] Networks such as the Internet can enable rapid communication
of information between computers. In many instances, rapid
distribution of information to a large number of computers is
desirable. For example, when a computer virus is first detected the
rapid distribution of information concerning the virus can
significantly reduce the number of computers impacted by the virus.
Another example is the release of a popular new song, movie, book
or video game for download. The automatic rapid distribution of
software updates is also desirable.
[0004] One method of distributing information is to make the
information available on one or more servers that can be accessed
by each client computer requiring the information. Server capacity
is typically expensive and achieving the rapid distribution of
information to all clients can require very large server capacity.
In circumstances where the distribution of information to clients
is relatively infrequent and/or unpredictable, significant cost can
be expended in maintaining idle server capacity.
[0005] An alternative to a client/server architecture is the use of
a peer-to-peer network. A peer-to-peer network is a system where a
computer can act as both a client and a server. When a computer
possesses desired information, the computer can act as a server
providing the information to other computers and a computer that
receives the information acts as a client. Once a computer has
received the information, however, it can then become a server
capable of distributing the information to other computers. The
computers from which a particular computer can obtain information
are often referred to as that computer's horizon.
SUMMARY OF THE INVENTION
[0006] Embodiments of the present invention include clients and
servers that form a secure peer-to-peer network. In several
embodiments, peer computers contact the server to obtain a list of
other peer computers that possess desired information. When
information is downloaded from a peer computer, the reliability of
and/or right to use the downloaded information can be verified by a
server. In many embodiments, the downloaded information can be
encrypted and the verification information can include information
enabling the decryption of the downloaded information. In a number
of embodiments of the invention, a client that is unable to obtain
the information from peer clients can obtain the information
directly from a server.
[0007] One embodiment of the invention includes a server connected
to a network and a first peer computer connected to the network. In
addition, the first peer computer is configured to communicate
requests for information to the server, the server is configured to
respond to requests for information by providing the identity of at
least a second peer computer, the requested information is stored
on the second peer computer, the first peer computer is configured
to obtain the requested information from the second peer computer
and the first peer computer is configured to obtain from the server
information to verify the reliability of the information provided
by the second peer computer.
[0008] In a further embodiment, a computer program is installed on
at least one of the peer computers and the information received by
the peer is information enabling the modification of the computer
program.
[0009] In another embodiment, the server is configured to provide
verification information to a peer computer upon request.
[0010] In a still further embodiment, the verification information
includes at least one checksum.
[0011] In still another embodiment, the information obtained from
the second peer computer is encrypted and the verification
information enables the decryption of the information obtained from
the second peer computer.
[0012] In a yet further embodiment, the server is configured to
provide verification information to a peer computer possessing the
required digital rights upon request.
[0013] In yet another embodiment, the server is configured to
provide an option to acquire required digital rights to a peer
computer requesting verification information, when the peer
computer does not possess the required digital rights.
[0014] In a further embodiment again, the information includes
audio information.
[0015] In another embodiment again, the information also includes
video information.
[0016] A still further embodiment again includes hosted information
stored on the server, a list identifying computers, where the list
is stored on the server and verification information that is stored
on the server. In addition, the list identifying computers
identifies a number of computers that acquired the hosted
information at some point in the past and the verification
information can be derived from the hosted information in
accordance with a predetermined algorithm.
[0017] In still another further embodiment again, the list
identifying computers includes computers that have obtained the
verification information from the server.
[0018] In a yet further embodiment again, the server is configured
to respond to requests for the hosted information by providing the
list identifying computers unless the list does not identify any
computers.
[0019] In yet another embodiment again, the server is configured to
provide the verification information upon request.
[0020] In a further additional embodiment, the hosted information
is subject to digital rights management and the server is
configured to provide verification information in response to a
request from a device possessing the digital rights required to use
the hosted information.
[0021] In another additional embodiment, the list identifying
computers identifies a maximum of 100 computers.
[0022] In a still further additional embodiment, the list
identifying computers identifies a maximum of 50 computers.
[0023] In still another additional embodiment, the list identifying
computers identifies a maximum of 20 computers.
[0024] A Yet further additional embodiment includes software. In
addition, the software configures the computer to enable it to
request information from a server, the software configures the
computer to receive peer tables from a server, the software
configures the computer to send requests for information to
computers listed in a received peer table, the software configures
the computer to send requests to a server for verification
information relating to information received from other computers
and the software configures the computer to verify the reliability
of information received from other computers using verification
information received from the server.
[0025] In yet another additional embodiment, the software
configures the computer to request information from the server at
least once a week.
[0026] In a further additional embodiment again, the software
configures the computer to request information from the server at
least once a day.
[0027] In another additional embodiment again, the software
configures the computer to request information from the server at
least once every eight hours.
[0028] An embodiment of the method of the invention includes
contacting a server to request the information, receiving
information identifying peer computers possessing the information
from the server, contacting the peer computers to request the
information, receiving the information, contacting the server for
verification information and verifying the reliability of the
information.
[0029] In a further embodiment of the method of the invention, the
information is provided by a peer computer.
[0030] In another embodiment of the method of the invention, the
information is provided by a server.
[0031] A still further embodiment of the method of the invention
also includes obtaining the digital rights to use the received
information.
BRIEF DESCRIPTION OF THE DRAWINGS
[0032] FIG. 1 is a schematic view of a secure peer-to-peer network
in accordance with one embodiment of the invention;
[0033] FIG. 2 is a flow chart showing a process for distributing
information via a secure peer-to-peer network in accordance with an
embodiment of the invention;
[0034] FIG. 3 is a flow chart showing a process that can be used by
a peer computer to obtain information via a secure peer-to-peer
network in accordance with an embodiment of the present invention;
and
[0035] FIG. 4 is a flow chart showing a process that can be used by
a server to respond to requests for information from peer computers
in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0036] Turning now to the drawings, embodiments of the present
invention are illustrated that include a network to which at least
one server and a number of peer computers are connected.
Information can be distributed amongst the peer computers and the
reliability of the information can be verified by contacting one of
the servers. In many embodiments, a peer contacts a server to
ascertain whether desired information is available. If the
information is available, the server provides the peer computer
with a list of other peer computers that possess the information.
Using the list, the peer computer can attempt to download the
desired information from on of the peer computers on the list. If
none of the peer computers on the list provide the desired
information, the server can provide the information directly. The
downloaded information can be of any variety including software
updates, virus protection system updates, music files, video files,
digital books and computer games. The reliability of downloaded
information can be verified using information provided by the
server.
[0037] A secure peer-to-peer network in accordance with the present
invention is shown in FIG. 1. The peer-to-peer network 10 includes
a number of peer computers 12 and servers 14 connected to each
other via a network 16. The peer computers can be almost any
networked computing device including personal computers, personal
digital assistants, cell phones and networked consumer electronics
devices. The servers can also be any computing device and are
typically characterized by the ability to service a large number of
requests for information. The network can be any type of network
including a local area network, a network having wired links, a
network having wireless links, a closed network and a networked
network such as the Internet.
[0038] Each of the peer computers 12 maintains information that
enables the peer computer to contact at least one of the servers
14. In one embodiment where communications via the network conform
with the TCP/IP protocol, each client computer maintains the IP
address of at least one server. In addition, the peer computers 12
are capable of storing a peer table. The peer table includes
information enabling communication with other peer computers
identified in the peer table.
[0039] The servers 14 are configured to communicate with the peer
computers via the network. The servers maintain copies of
information that is reliably available within the secure
peer-to-peer network. The servers can also maintain a peer table in
relation to each piece of information stored on the server. A peer
computer is listed in the peer table, because it is likely to
possess the information with which the peer table is associated. In
one embodiment, the peer table is generated using the contact
information of the peer computers that most recently requested the
information. In several embodiments, the peer table is generated
using the contact information of the peer computers that most
recently verified the reliability of the information. In other
embodiments, other factors can be considered in formulating a peer
table including the speed of the internet connection of a peer
computer. In addition to a peer table, each piece of information
stored on the server can possess associated verification
information. In many embodiments, the verification information is
information generated using a predetermined algorithm that can
reliably verify the accuracy of the stored information. In several
embodiments, the verification information also includes information
concerning digital rights management (DRM). In numerous
embodiments, the DRM information can include a list of people
entitled to access the information.
[0040] A flow chart showing a method for distributing information
across a secure peer-to-peer network in accordance with an
embodiment of the invention is shown in FIG. 2. The process 20
commences when information is uploaded onto the server (22). When a
peer computer desires the information, the peer computer can
contact the server inquiring (24) as to the existence of the
information. The server notifies (26) the peer computer that the
requested information is available and in several embodiments
provides the computer with information indicating other peer
computers that have already obtained the information. The peer
computer that contacted the server seeking the information can
contact the other peer computers and request (28) that the other
peer computers provide the information.
[0041] The actions of the peer computer seeking the information are
then determined (30) based upon whether any of the other peer
computers contacted possess the information. In the event that one
of the remote peer computers is contactable and possesses the
requested information, then the requesting peer computer can obtain
(32) the information. The requesting peer computer can then contact
the server to verify the reliability of the information (34). In
the event that none of the remote peer computers contacted by the
requesting peer computer possess the desired information, then the
computer can request (34) the information directly from the server.
In many embodiments, peer computers that cannot obtain desired
information from other peer computers wait a predetermined amount
of time before requesting the information directly from the server.
In one embodiment, a peer computer waits at least 6 hours. In
another embodiment, a peer computer waits at least 1 hour. In a
further embodiment, a peer computer waits at least five
minutes.
[0042] As discussed above, the server 14 can enable a peer computer
that has downloaded information to verify that information. In one
embodiment the verification process involves obtaining one or more
check sums from the server that can be compared with the downloaded
information. In another embodiment, the verification information
includes information enabling the decryption of the information. In
instances where the secure peer-to-peer network includes DRM, then
a peer computer that obtains the information may not have the right
to use the information. When a peer computer does not have the
right to use particular information, then the server can coordinate
obtaining the rights. In one embodiment, obtaining rights may
involve a financial transaction either between the peer computer
and the server, the peer computer and a 3.sup.rd party or a
3.sup.rd party on behalf of the peer computer and a server or
another party. In many embodiments, the server can refuse to
provide the peer computer with the information required to verify
and/or decrypt the downloaded information.
[0043] An embodiment of a process that can be used by a client to
obtain information via a secure peer-to-peer network is shown in
FIG. 3. The process 40 includes a peer computer requesting (42) a
peer table from a server. The peer computer then sets a timer (44)
and waits (46) for the server to provide a peer table. In the event
that the server does not provide a peer table, then the peer
computer can obtain (48) the information directly from the
server.
[0044] When the server possesses a peer table, it can be downloaded
(50) by the peer computer. The downloaded peer table can be used by
the peer computer to request (52) the desired information from each
peer computer on the peer table. Once a request has been sent, the
peer computer's actions are determined (54) based upon whether a
remote peer computer is able to provide the information. Following
the request, the requesting peer computer sets (56) a timer and
waits for a response from any of the remote peer computers. In the
absence of a response, the requesting peer computer obtains (54)
the information directly from the server. When a remote peer
computer can provide the desired information, then it is downloaded
(58) by the requesting peer computer and verified using information
provided by the server.
[0045] As discussed above, a peer table is used to identify remote
peer computers that are likely to possess desired information. In
one embodiment, the peer table is limited to a small number of
peers (e.g. 20) and the peer table does not include peers that are
located behind a firewall. A peer table can be arbitrarily large or
small and in many embodiments the size is determined based upon the
maximum amount of a peer computer's resources that it is desirable
to consume with servicing download requests. In one embodiment, the
peer table includes a maximum of 100 peer computers. In another
embodiment, the peer table includes a maximum of 50 peer computers.
In embodiments where connections with peer computers behind
firewalls are possible (e.g. using a mediated connection), peer
computers that are located behind firewalls are included in peer
tables. Once a peer computer has obtained a peer table from the
server, the peer is added to the peer table and one peer is dropped
from the peer table. In one embodiment, a FIFO process is used to
select the peer computer that is dropped from the peer table and
peer computers that are behind firewalls are not added to the peer
table. In other embodiments, any variety of criteria can be used to
select the peer computers that remain within the peer table
including the bandwidth of the peer's connection to the
network.
[0046] In embodiments where the desired information is updated
either regularly or irregularly, then a peer computer can be
configured to contact a server periodically to ascertain whether a
new update is available. As will be readily appreciated a peer
computer can be configured to request updated information from a
server in accordance with almost any conceivable set of rules
relating to the timing of the request. In one embodiment, the peer
computer is configured to contact the server at least once a week.
In another embodiment, the peer computer is configured to contact
the server at least once a day. In a further embodiment, the peer
computer is configured to contact the server at least once every
eight hours. In other embodiments, the peer computer contacts the
server as infrequently as at least once a month or as frequently as
at least once every four hours. In many embodiments, a peer
computer can check for new information in response to a periodic
events such as computer start up or reset. In addition, peer
computers can be configured to receive an instruction from a user
to obtain an update. In further embodiments, a peer computer can
seek information from a server in response to notification that the
information is available. In one embodiment, notification can be
provided by a server or another peer computer. In embodiments where
the peer computer needs the information immediately, the peer
computer can contact the server to check whether the information is
available. In embodiments where the server provides updates to a
virus protection system this online checking can be used to provide
information concerning new viruses to peer computers at the time
that it is required. In many embodiments online checking is
supplemented with periodic checking.
[0047] A process that can be used by a server to coordinate the
distribution of information via a secure peer-to-peer network is
shown in FIG. 4. The process (70) commences when information is
made available (72) on the server. Making information available on
a server can often involve encrypting the information. Once the
information is available, the server can receive (74) a first
request for the information from a peer computer. As the
information is not available elsewhere, the information is provided
(76) to the peer computer directly by the server. When subsequent
requests for information are received (78), the server determines
(80) whether the information requested is verification information.
If the request is another request for the stored information (i.e.
not a request for verification), then the server determines (82)
whether the peer computer requesting the information is requesting
the information for the first time. If the information is being
requested for the first time, the server can provide (84) the peer
computer with a copy of the peer table relating to the information.
In several embodiments, the server does not provide a peer table
unless the peer table is full. Enabling direct download until a
peer table is full can speed the initial secure distribution of the
information. If no peer table is available or the server has
requested the information before, then the server provides (78) the
information directly to the requesting peer computer.
[0048] When the server receives a request for verification
information, the server can determine (86) whether the peer
computer requesting the verification information possesses the
necessary digital rights to utilize the information. If the peer
computer possesses the necessary digital rights, then the sever
provides (88) the peer computer with the verification information
and the peer computer is added to the peer table relating to the
downloaded information. When the requesting computer does not
possess the rights, then the server can facilitate obtaining the
rights or deny (90) verification information to the peer computer.
Although the process described above involves use of verification
information and DRM information, not all information provided by
the server need have verification information and DRM information
associated with it. In many embodiments, the server facilitates the
distribution of information that has both verification information
and DRM information associated with it and information that does
not have verification information and/or DRM information associated
with it.
[0049] While the above description contains many specific
embodiments of the invention, these should not be construed as
limitations on the scope of the invention, but rather as an example
of one embodiment thereof. For example, secure peer-to-peer
networks in accordance with embodiments of the invention can enable
the communication of both secure and unsecured information. In
addition, separate servers can be used for one or all of storing
information, encrypting information, storing verification
information, storing DRM information, storing peer tables and
handling requests from peer computers. Furthermore, all or some of
the communications described above between a peer computer and
servers and between a first peer computer and a second peer
computer can be conducted using an encryption technique such as
public key/private key encryption. Accordingly, the scope of the
invention should be determined not by the embodiments illustrated,
but by the appended claims and their equivalents.
* * * * *