US2008066182A1PendingUtilityA1

Security techniques for cooperative file distribution

Assignee: HICKMOTT ANDREWPriority: Sep 12, 2006Filed: Sep 12, 2006Published: Mar 13, 2008
Est. expirySep 12, 2026(~0.1 yrs left)· nominal 20-yr term from priority
H04L 9/40H04L 9/3236H04L 9/3213H04L 2209/76H04L 2209/60
41
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Security techniques are provided for cooperative file distribution. An encryption key or a nonce (or both) are generated for a package containing one or more files that are to be sent in a cooperative file distribution system. Random access encryption techniques can be employed to encrypt a package containing one or more files to be sent in a cooperative file distribution system. One or more storage proxies are allocated to a package to be transmitted in a cooperative file distribution system, based on load. Access to trackers in the cooperative file distribution system is controlled using security tokens. Content can automatically expire using a defined expiration period when the content is uploaded into the system. Variable announce intervals allow the tracker to control how often the tracker will receive a message, such as an announcement or a heartbeat message, from peers in the system.

Claims

exact text as granted — not AI-modified
1 . A method for generating one or more of an encryption key and a nonce for a package containing one or more files to be sent in a cooperative file distribution system, comprising:
 obtaining samples of at least a portion of each of said one or more files;   applying a hash to said samples; and   generating one or more of said encryption key and said nonce from a result of said hash.   
   
   
       2 . The method of  claim 1 , further comprising the step of using one or more of said encryption key and said nonce to encrypt said package. 
   
   
       3 . The method of  claim 1 , wherein said samples of at least a portion of each of said one or more files maintain an order of said files in said package. 
   
   
       4 . The method of  claim 1 , wherein said hash is a Secure Hash Algorithm. 
   
   
       5 . The method of  claim 1 , wherein said generating step further comprises the step of generating said encryption key from a predefined portion of said result of said hash. 
   
   
       6 . The method of  claim 1 , wherein said generating step further comprises the step of generating said nonce from a predefined portion of said result of said hash. 
   
   
       7 . The method of  claim 1 , wherein said encryption key is based on a content of said files in said package. 
   
   
       8 . The method of  claim 1 , wherein said samples are a predefined number of evenly spaced samples from each file in said package. 
   
   
       9 . A method for encrypting a package containing one or more files to be sent in a cooperative file distribution system, comprising:
 separating said package into pieces of a predefined size;   applying a random access encryption technique to each of said pieces; and   generating said encrypted package comprised of said encrypted pieces.   
   
   
       10 . The method of  claim 9 , wherein said random access encryption technique employs an encryption key and a nonce. 
   
   
       11 . The method of  claim 10 , wherein said encryption key is based on a content of said package. 
   
   
       12 . The method of  claim 9 , wherein said random access encryption technique adheres to an Advanced Encryption Standard. 
   
   
       13 . The method of  claim 9 , wherein said random access encryption technique allows any received encrypted piece to be decrypted by an authorized recipient. 
   
   
       14 . The method of  claim 9 , wherein said random access encryption technique encrypts a given piece N of said pieces using an encryption key for said package and applying a result to an exclusive or (XOR) gate with said given piece to generate said encrypted piece. 
   
   
       15 . The method of  claim 9 , further comprising the step of delivering said encrypted pieces to a cooperative file distribution system for transport. 
   
   
       16 . The method of  claim 15 , wherein said cooperative file distribution system is a Bit Torrent system. 
   
   
       17 . A method for assigning one of a plurality of storage proxies to a package to be transmitted in a cooperative file distribution system, comprising:
 evaluating a load of each of said plurality of storage proxies;   assigning a weight to each of said plurality of storage proxies based on said evaluated load; and   selecting one of said plurality of storage proxies for said package using one or more predefined criteria to balance a load among said plurality of storage proxies.   
   
   
       18 . The method of  claim 17 , wherein said load is based on one or more of used storage space, a number of connections, and a number of active and inactive torrents associated with each of said storage proxies. 
   
   
       19 . The method of  claim 18 , wherein said weight is based on a multiple of two or more of said used storage space, a number of connections, and a number of active and inactive torrents associated with each of said storage proxies and wherein setting any one of said values to zero results in said storage proxy becoming unavailable for being assigned to said package. 
   
   
       20 . The method of  claim 17 , wherein subsets of said plurality of storage proxies are grouped together. 
   
   
       21 . The method of  claim 17 , further comprising the step of smoothing said weights in order to reduce a tendency to assign said package to the most underutilized storage proxy. 
   
   
       22 . A method for controlling access to a tracker in a cooperative file distribution system, wherein said tracker allows peers associated with related content to discover each other, comprising:
 receiving a request to upload or download said content;   evaluating an authorization for said request; and   providing a security token to a sender of said request, whereby said security token can be used to establish an authorization between said sender of said request and said tracker.   
   
   
       23 . The method of  claim 22 , wherein said security token is provided by said sender of said request to said tracker in an announce message. 
   
   
       24 . The method of  claim 23 , wherein said tracker can validate said sender of said request using said security token. 
   
   
       25 . The method of  claim 23 , wherein said tracker provides a listing of one or more of said peers to said sender of said request in response to said announce message. 
   
   
       26 . The method of  claim 22 , wherein said peers associated with related content are one or more senders and one or more recipients of said content. 
   
   
       27 . The method of  claim 22 , wherein said security token has a defined expiration. 
   
   
       28 . The method of  claim 22 , wherein said security token is an encrypted binary data string. 
   
   
       29 . The method of  claim 22 , wherein said security token contains a last torrent update time and wherein said tracker obtains torrent information if a predefined torrent update time has been exceeded. 
   
   
       30 . The method of  claim 25 , wherein said listing is empty if said peer is a storage proxy. 
   
   
       31 . The method of  claim 25 , wherein said listing comprises addresses of leeches if said peer is a seed peer. 
   
   
       32 . The method of  claim 25 , wherein said listing does not identify peers behind a firewall. 
   
   
       33 . The method of  claim 25 , wherein said listing does not identify peers behind a different number address translator (NAT) unless said peers are not behind a firewall. 
   
   
       34 . The method of  claim 25 , wherein said listing does not identify a storage proxy peer if the number of peers satisfies a predefined criteria. 
   
   
       35 . The method of  claim 25 , wherein said listing has a predefined maximum length, X, and said listing includes a storage proxy, if present, up to X-1 peers behind the same number address translator as the requested peer and then other peers. 
   
   
       36 . A method for processing a package containing one or more files to be sent in a cooperative file distribution system, comprising:
 receiving a request to upload said package; and   responsive to said request, setting an expiration period for said package.   
   
   
       37 . The method of  claim 36 , further comprising the step of deleting said package after said expiration period has expired. 
   
   
       38 . The method of  claim 36 , further comprising the step of deallocating a storage proxy associated with said package after said expiration period has expired. 
   
   
       39 . A method performed by a tracker for communicating with one or more peers in a cooperative file distribution system, comprising:
 receiving a request from one of said peers to start a session;   determining an announce interval within which said one of said peers should provide an announcement; and   providing a message to said one of said peers comprising said announce interval.   
   
   
       40 . The method of  claim 39 , wherein announce interval is determined based on whether said peer is a storage proxy. 
   
   
       41 . The method of  claim 39 , wherein announce interval is determined based on a recency of activity for a torrent associated with said request. 
   
   
       42 . The method of  claim 39 , wherein announce interval is determined based on a number of peers in a torrent associated with said request. 
   
   
       43 . The method of  claim 39 , wherein announce interval is determined based on whether one or more peers in a torrent associated with said request are behind a firewall. 
   
   
       44 . A system for generating one or more of an encryption key and a nonce for a package containing one or more files to be sent in a cooperative file distribution system, comprising:
 a memory; and   at least one processor, coupled to the memory, operative to:   obtain samples of at least a portion of each of said one or more files;   apply a hash to said samples; and   generate one or more of said encryption key and said nonce from a result of said hash.   
   
   
       45 . A system for encrypting a package containing one or more files to be sent in a cooperative file distribution system, comprising:
 a memory; and   at least one processor, coupled to the memory, operative to:   separate said package into pieces of a predefined size;   apply a random access encryption technique to each of said pieces; and   generate said encrypted package comprised of said encrypted pieces.   
   
   
       46 . A system for assigning one of a plurality of storage proxies to a package to be transmitted in a cooperative file distribution system, comprising:
 a memory; and   at least one processor, coupled to the memory, operative to:   evaluate a load of each of said plurality of storage proxies;   assign a weight to each of said plurality of storage proxies based on said evaluated load; and   select one of said plurality of storage proxies for said package using one or more predefined criteria to balance a load among said plurality of storage proxies.   
   
   
       47 . A system for controlling access to a tracker in a cooperative file distribution system, wherein said tracker allows peers associated with related content to discover each other, comprising:
 a memory; and   at least one processor, coupled to the memory, operative to:   receive a request to upload or download said content;   evaluate an authorization for said request; and   provide a security token to a sender of said request, whereby said security token can be used to establish an authorization between said sender of said request and said tracker.   
   
   
       48 . A system for processing a package containing one or more files to be sent in a cooperative file distribution system, comprising:
 a memory; and   at least one processor, coupled to the memory, operative to:   receive a request to upload said package; and   responsive to said request, set an expiration period for said package.   
   
   
       49 . A system performed by a tracker for communicating with one or more peers in a cooperative file distribution system, comprising:
 a memory; and   at least one processor, coupled to the memory, operative to:   receive a request from one of said peers to start a session;   determine an announce interval within which said one of said peers should provide an announcement; and   provide a message to said one of said peers comprising said announce interval.

Join the waitlist — get patent alerts

Track US2008066182A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.