Methods for rights enabled peer-to-peer networking
Claim Score by NHIP
Abstract
The present invention relates to digital rights management. In one embodiment, persons, processes, and/or computers and appliances locate, share, publish, retrieve, and use all kinds of digital information that has been protected using digital rights management technologies. Rights management includes securely associating rules for authorized use with the digital information. Rules and/or digital information may be encapsulated in a cryptographically secure data structure or "container" ("CSC") to protect against unauthorized use, to ensure secrecy, to maintain integrity, and to force the use of a rights management system to access the protected information. Attributes or metadata information describing at least some of the rules ("rules-metadata information") and optionally any associated rule parameter data with respect to the protected information are created. This rules-metadata information may be organized, structure, encoded, and/or presented using a self-defining data structure such as those created using Extensible Markup Language (XML). In one embodiment, the XML-encoded rules-metadata information is also made available unencrypted, in plain text, to facilitate P2P search and file transfer. Having at least some of the rules-metadata information outside or external to a CSC allows greater flexibility in searching based at least in part upon the rules-metadata information. Some embodiments may hold the rules-metadata information in a separate CSC. Putting the rules-metadata information in a separate CSC more easily allows authentication and maintains the integrity of the rules-metadata information. In another embodiment, the rules metadata may be in an unencrypted portion of a CSC itself or concatenated with a CSC in a single file.

Term
Term ended
Projected expiry passed 20 August 2022, 4.1 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
22 claims: 4 independent, 18 dependent
- 1Broadest claimClaim Score 84, broad(NHIP)A method for packaging content and rules for securely transference of said content over a network, comprising the steps of:specifying content to be secured;specifying rules associated with said content;generating metadata representative of said content and said rules;encrypting said content in a secured container in accordance with said rules;packing said metadata and said secured container together with header information.
- 9A method for packaging content and rules for securely transference of said content over a network, comprising the steps of:specifying content to be secured;specifying rules associated with said content;generating metadata representative of said content and said rules;encrypting said content in a secured container in accordance with said rules;packing said metadata and a reference to said secured container together with header information.
- 17A method for searching and retrieving contents stored in secured containers wherein each of said containers having an associated metadata describing the respective secured content, comprising the steps of:receiving a query describing content to be retrieved;parsing said query to extract one or more search parameters from said query;searching metadata indices using said search parameters to generate search results, wherein each of said metadata indices represents and references a particular set of rules and content in a cryptographically secured container;and returning said search results.
- 20A method for searching and retrieving contents stored in secured containers wherein each of said containers having an associated metadata describing the respective secured content, said metadata encrypted in metadata secured containers, comprising the steps of:receiving a query describing content to be retrieved;parsing said query to extract one or more search parameters from said query;decrypting said metadata in said metadata secured containers to generate metadata indices;searching said metadata indices using said search parameters to generate search results, wherein each of said metadata indices represents and references a particular set of rules and content in a cryptographically secured container;and returning said search results.
Independent claims4
148 paragraphs in 5 sections, as filed
PRIORITY CLAIM
[0001] This application incorporates by reference and claims priority to a provisional application entitled “Rights Enabled Peer-to-Peer Networking” filed on Dec. 21, 2000, having an application No. 60/257,735; and a PCT application filed on Dec. 21, 2001, having an application No. PCT/US01/49735.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] This invention relates in general to digital rights management technologies in controlling search and access of protected information and, more specifically, to digital rights management technologies in creating searchable secured containers for such protected information.
[0004] 2. Description of the Prior Art
[0005] Digital rights management (DRM) technologies are used as the foundation for a broad range of commerce activities. Especially in the consumer and business information markets, a variety of DRM technologies are now provided in commercial software products and related services, including technologies and/or services based on these DRM technologies offered by InterTrust, Microsoft, and many others.
[0006] A DRM platform technology that may be utilized includes technologies created by InterTrust Technologies Corporation and described at least in part in U.S. Pat. No. 6,240,185 to Van Wie, et al., U.S. Pat. No. 6,237,786 to Ginter, et al., U.S. Pat. No. 6,185,683 to Ginter, et al., U.S. Pat. No. 6,157,721 to Shear, et al., U.S. Pat. No. 6,138,119 to Hall et al., U.S. Pat. No. 6,112,181 to Shear et al., U.S. Pat. No. 5,982,891 to Ginter et al., U.S. Pat. No. 5,949,876 to Ginter et al., U.S. Pat. No. 5,943,422, to Van Wie, et al., U.S. Pat. No. 5,920,861 to Hall et al., U.S. Pat. No. 5,917,912 to Ginter et al., U.S. Pat. No. 5,915,019 to Ginter et al., U.S. Pat. No. 5,910,987 to Ginter et al., U.S. Pat. No. 5,892,900 to Ginter et al., all of which are incorporated herein by reference.
[0007] Generally speaking, the InterTrust DRM platform is based on secure, tamper-resistant “nodes” that manage the authorized access and use of protected digital information of all kinds. In addition to nodes, the InterTrust DRM platform also includes a cryptographically secure software data structure or container that may protect any kind of digital information, such as documents, forms data, audio, video, software, and any other kind of digital information. The secure container may also protect for secrecy and/or integrity rules associated with the protected digital information. InterTrust refers to its commercially available nodes as InterRights™ Point software and their secure containers as DigiBOX™ containers.
[0008] Although the InterTrust DRM platform may be utilized, other companies also offer commercial DRM technologies that use some sort of client software and a secure container. Non-limiting examples include commercially available DRM technology from a Xerox spin-off, ContentGuard that is described at least in part in U.S. Pat. No. 5,715,403 issued to Stefik on Feb. 3, 1998; U.S. Pat. No. 5,638,443 issued to Stefik et al. on Jun. 10, 1997; U.S. Pat. No. 5,634,012 issued to Stefik et al. on May 27, 1997; U.S. Pat. No. 5,629,980 issued to Stefik et al. on May 13, 1997 which are incorporated herein by reference. Other DRM technology that entails the use of secure containers is described in U.S. Pat. No. 5,845,281 issued to Benson et al. on Dec. 1, 1998 which is incorporated herein by reference.
[0009] A major limitation of current secure containers defined by InterTrust and other commercial vendors is that end-users cannot determine in advance of attempting to open the secure container whether they will be, or want to be granted permission to access and use the protected information. For example, a consumer may not have sufficient credit or other funds to pay the amount or amounts required by the rules associated with protected content. In another example, they may not have sufficient and/or appropriate authority to access the protected information in accordance with the rules defined by rightsholders, their agents, and/or any other party. In yet another example, the rules may make access and use dependent upon the possession of a digital credential indicating membership in one or more classes or groups. Non-limiting examples of digital credentials include X.509 digital certificates known to those skilled in the arts and a protected object used as a digital credential by commercially available DRM technologies from InterTrust called a Membership Card. Non-limiting examples of class membership warranted or attested to by a Membership Card and/or combinations of Membership Cards include: “Platinum” level privileges, “Gold” level privileges, IRA account holder, Company employee, Executive level employee, Works at a particular office or other physical location, Contractor, Participant in airline or other affinity program, Member of a non-profit organization, or Any other class.
[0010] Computing architectures for locating, publishing, sharing, and/or retrieving digital information on the Internet and other networks are evolving and are faced with this major limitations as described above. In digital music distribution, for example, Napster and others typically provide a centralized search service combined with peer-to-peer file transfer for those files a user wishes to download or transfer to his or her computer. In such quasi-peer-to-peer services, the index of available files and their locations on the network are maintained centrally. When a user identifies a file they wish to retrieve, that file is usually transferred directly from one user or “peer” to another user or peer. This mode of operation is contrasted with client/server architectures in which both the searchable index of information and the files that may be retrieved are maintained in one logical location, that is, a location that appears as a single service and network location to the end-user.
[0011] These quasi-peer-to-peer architectures stand in contrast to true peer-to-peer file sharing now being developed and commercialized by a number of parties including an open-source development efforts referred to as Gnutella and several Gnutella variants, extensions, elaborations, etc. In true peer-to-peer file sharing, there is no central directory and all queries are sent from a peer to peers who individually respond to the query. Other peer-to-peer development efforts include the Freenet project initiated in the United Kingdom at Cambridge University by Ian Clarke and his colleagues, and several others. In the next few figures, examples of the workings of selected peer-to-peer network architectures are explained.
[0012] In referring to the Figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.
[0013] Referring to FIG. 1, a block diagram of a prior art peer-to-peer network <b>100</b> of computers that communicate by direct links or through the Internet <b>104</b> is shown. Some of the virtual connections through the Internet <b>104</b> are shown as dotted lines. There are different types of computers, such as a portable audio player <b>108</b>, personal digital assistants (PDAs) <b>112</b>, personal computer servents <b>116</b>, an appliance servent <b>120</b>, and servers <b>124</b>. Each computer has a network interface <b>128</b> and storage device(s) <b>132</b> of some sort. The storage devices <b>132</b> could include hard drives <b>132</b>-<b>1</b>, solid-state memory (SSM) <b>132</b>-<b>2</b>, or other non-volatile storage <b>132</b>-<b>3</b>.
[0014] The computers provide and/or obtain files in a peer-to-peer manner to other computers by way of the Internet <b>104</b> without necessarily having to interact with a central information server. But, not all computers receive files from their peers, for example, the servers <b>124</b> provide files to the other computers without necessarily searching for and/or receiving any files directly from the other computers in this embodiment. Conversely, the portable audio player <b>108</b> receives files directly only from computer <b>116</b>-<b>2</b> and may send computer <b>116</b>-<b>2</b> acknowledgements and other administrative information. In this embodiment PDA <b>112</b> receives files from its peers, but typically does not serve files to its peers.
[0015] Network interfaces <b>128</b> allow the computers to communicate with each other. The communication can be direct as in the case of the portable audio player <b>108</b> communicating with the second computer servent <b>116</b> or as in the case of the servent <b>116</b> communicating with another servent and/or with server(s) <b>124</b> could be through the Internet <b>104</b>.
[0016] The servers <b>124</b> could serve as a repository of search information for each computer. A query to the server would indicate what files were available where on the network. Alternatively, a search query could go to all the computers where each would respond with the appropriate search results.
[0017] Referring next to FIG. 2, a block diagram of a prior art client-server network <b>200</b> of computers that includes a data center <b>204</b> is shown. By way of a web browser <b>236</b> communicating through the Internet <b>104</b>, client computers <b>208</b>, <b>112</b>, <b>212</b> communicate with a data center <b>204</b> to retrieve files from it. The portable audio player <b>108</b> in this example does not include a browser and receives its files by way of a browser-enabled computer <b>208</b>-<b>2</b>.
[0018] The data center <b>204</b> provides files to the client computers <b>208</b>, <b>112</b>, <b>212</b> and may collect compensation for those files. Included in the data center <b>204</b> are the network interface <b>128</b>, a web server <b>220</b>, a data warehouse <b>224</b>, a payment processor <b>228</b>, and other components that are not shown. The web server <b>220</b> graphically interfaces users associated with the client computers <b>208</b>, <b>112</b>, <b>212</b> to the data warehouse <b>224</b> and the payment processor <b>228</b>. Data files served from the data center <b>204</b> are stored in the data warehouse <b>224</b>. Metadata and storage location for the files are accessible by the web server to provide directory information to the client computers <b>208</b>, <b>112</b>, <b>212</b>. The payment processor <b>228</b> controls any payment needed.
[0019] It is noted that web server <b>220</b>, payment processor <b>228</b>, and data warehouse <b>224</b> can be logically arranged in any manner to perform the described function. For example, the data warehouse <b>224</b> could be integrated with the payment processor <b>228</b> where the integrated whole is located across the Internet <b>104</b> at a location remote to the data center <b>204</b>. Additionally, some prior art embodiments may not include the payment processor <b>228</b> where the files are served without explicit monetary compensation from the user.
[0020] Referring next to FIG. 3, a graphical window <b>300</b> from a search in a prior art peer-to-peer network is shown. In this example, a search is made for the singer Bob Dylan by entering the string “dylan” on the search line <b>304</b> and clicking the search button <b>308</b>. Five hits that match the search string are displayed in a results listing <b>312</b>. A match means that “dylan” appears somewhere in the file name on a computer that complies with the minimum bandwidth specified. Attributes of the file such as name, size and speed of the sending server are listed in the results listing <b>312</b>. If one or more listed files are CSCs, in prior art embodiments the information returned is that known by the file system on the peer on which the file resides. As noted, this information typically limited to file name, file extension or type, size, and perhaps creation or last modification date (not shown). Files from the listing can be selected and downloaded or streamed. As it can be seen, critical information with respect to rights management are sorely lacking in these architectures.
[0021] All of these limitations with respect to the currently available digital rights management related technologies provide the desire and market demand for a technology that is better suited for digital rights management of protected information in all network architectures such as the peer-to-peer architectures as well as the client/server architectures.
SUMMARY OF THE INVENTION
[0022] It is therefore an object of the present invention to provide methods for digital rights management of protected information in all network architectures including peer-to-peer architectures;
[0023] It is another object of the present invention to provide methods for managing rights in accessing protected information in a network environment;
[0024] It is still another object of the present invention to provide methods for creating searchable secure containers that protect rules and digital content regardless of type.
[0025] The present invention relates to rights-enabled peer-to-peer networking. In one embodiment, persons, processes, and/or computers and appliances locate, share, publish, retrieve, and use all kinds of digital information that has been protected using digital rights management technologies. In some embodiments, rights management includes securely associating rules for authorized use with the digital information. Rules and/or digital information may be encapsulated in a cryptographically secure data structure or “container” to protect against unauthorized use, to ensure secrecy, to maintain integrity, and to force the use of a rights management system to access the protected information.
[0026] In one embodiment, attribute or metadata information describing at least some of the rules (“rules-metadata information”) and optionally any associated rule parameter data with respect to the protected information are created. This rules-metadata information may be organized, structure, encoded, and/or presented using a self-defining data structure such as those created using Extensible Markup Language (XML). In one embodiment, the XML-encoded rules-metadata information is also made available unencrypted, in plain text, to facilitate P2P search and file transfer. Having at least some of the rules-metadata information outside or external to a CSC allows greater flexibility in searching based at least in part upon the rules-metadata information. Some embodiments may hold the rules-metadata information in a separate CSC. Putting the rules-metadata information in a separate CSC more easily allows authentication and maintains the integrity of the rules-metadata information. In another embodiment, the rules metadata may be in an unencrypted portion of a CSC itself or concatenated with a CSC in a single file.
[0027] In one embodiment searching is performed upon the rules-metadata information stored or maintained external to the CSC that protects the digital information governed and/or managed by the rules. The search program does not need, therefore, to open a CSC to determine what rules govern the authorized use of the protected information within.
[0028] Search queries and search results can be sent to peer computers in the clear or in a CSC. Before download or transfer of any protected file from a peer computer, a search of the external, plaintext rules-metadata information can be performed. In one embodiment the user would be able to retrieve or download only those protected files that they were willing and/or able to use by virtue of their anticipated compliance with at least one rule associated with the protected information.
[0029] Watermarking technology is recognized in some embodiments. Before a file can be packaged in a CSC, the packaging application may check for watermarks using algorithms appropriate to the format of the information to be packaged, if any. If a watermark is found, packaging will not continue unless the packaging application can verify that the person requesting the packaging is authorized to do so. In one embodiment authorization is conveyed and/or indicated by the presence of one or more digital credentials. Without successful credential verification, the file will not be packaged.
[0030] Documenting copyright and similar violations on the Internet can be difficult. Before packaging an item, each user may queried to determine if they believe they are authorized to package and distribute the particular file to be packaged. Presuming they answer in the affirmative, the file is packaged and a non-reputable record of their answer and of the packaging action is sent to an audit clearinghouse in the form of an audit record. This audit record may contain various information, examples of which include the user ID and other identifying information of the user, the time and date of packaging, and information concerning the information in the package and associated rules.
[0031] For certain applications, such as file sharing and transfer with a business or among a business and its suppliers, partners, and/or customers, there is a desire to limit or restrict the participants in a peer group in a file sharing network. In one embodiment, there is a capability to create a subnet or subset of all possible peers by filtering on TCP port and/or rules. Other means for subsetting include restricting participation to computers having a particular qualified domain name and or by network addresses and/or address ranges. Additionally, search queries and results can be encapsulated in CSCs only viewable by those in the subnet defined using at least in part digital credentials. In this way, businesses or other organizations can create sub-groups within a larger, extended P2P system.
[0032] The present inventions enable users of P2P, and other kinds of file sharing applications such as quasi-peer-to-peer, client/server, and traditional search and retrieval applications at least in part, to conveniently: (1) Define rules for managing access to, and use of their digital content; (2) Create a SSC that protects rules and digital content regardless of type (e.g., image, text, audio, video, software); (3) Publish the SSC to any or a subset of users of the P2P system; (4) Search a network of P2P clients, including Gnutella clients, for any file whether protected or not; (5) Locate Rights-searchable secure containers; (6) Search by rules and rule elements; (7) Determine in advance of retrieving the published files the rules and conditions of use associated with each protected file in the Rights-searchable secure container; (8) Using efficient P2P file transfer, retrieve any or all published files without having to use a central site or server; (9) Use protected information in accordance with rules associated with that file; (10) Optionally charge for the authorized use of their digital assets; (11) Optionally collect usage information in accordance with privacy agreements; (12) Optionally designate a financial clearinghouse; (13) Optionally designate a usage clearinghouse; (14) Where charges apply, conveniently pay for the use of protected digital content; (15) Recognize many contexts where “fair use” or “fair dealing” exemptions may apply and provide rules that explicitly authorize use for these fair use contexts; and (16) Support corporate internal “chargeback” accounting through the use of audit or financial clearing records.
[0033] An advantage of the present invention is that it provides methods for digital rights management of protected information in all network architectures including the peer-to-peer architecture;
[0034] Another advantage of the present invention is that it provides methods for managing rights in accessing protected information in a network environment;
[0035] Still another advantage of the present invention is that it provides methods for creating searchable secure containers that protect rules and digital content regardless of type.
[0036] Reference to the remaining portions of the specification, including the drawings and claims, will realize other features and advantages of the present invention. Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with respect to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0037]FIG. 1 is a block diagram of a prior art peer-to-peer network of computers;
[0038]FIG. 2 is a block diagram of a prior art client-server network of computers that includes a data center; computers;
[0039]FIG. 3 is a block diagram of an embodiment of a peer-to-peer network of computers that includes a centralized data center;
[0040]FIG. 4 is a graphical window from a prior art peer-to-peer network that shows search results;
[0041]FIG. 3 is a block diagram of an embodiment of a rights-enabled appliance with a trusted computing base;
[0042]FIG. 4 is a block diagram of an embodiment of an architecture for a peer-to-peer servent;
[0043]FIG. 5 is a block diagram of another embodiment of a peer-to-peer network of computers that includes a clearinghouse;
[0044]FIG. 6A is a block diagram of an embodiment of a data structure for a searchable secure container (SSC);
[0045]FIG. 8B is a block diagram of another embodiment of a data structure for a SSC;
[0046]FIG. 8C is a block diagram of an embodiment of a metadata SSC sent in response to a search query;
[0047]FIG. 8D is a block diagram of an embodiment of a metadata SSC sent in response to a search query along with a corresponding content cryptographically secure container (CSC);
[0048]FIG. 7 is a diagram of an embodiment of extendable markup language (XML) code for metadata including rules and attributes for a CSC;
[0049]FIG. 8 is a block diagram of an embodiment of a packaging window for packaging files in peer-to-peer network;
[0050]FIG. 9 is a diagram of an embodiment of a watermark error message;
[0051]FIG. 10 is a diagram of an embodiment of a authorization verification question window;
[0052]FIG. 11 is a diagram of an embodiment of a search results screen;
[0053]FIG. 12 is a diagram of another embodiment of a search results screen with one of the possible choices selected;
[0054]FIG. 13 is a diagram of an embodiment of an offer description screen;
[0055]FIG. 14 is a diagram of an embodiment of a viewer window that shows the contents of the SSC;
[0056]FIG. 15 is a block diagram of another embodiment of a packaging window for packaging files in peer-to-peer network;
[0057]FIG. 16 is a diagram of yet another embodiment of a search results screen;
[0058]FIG. 17 is a diagram of another embodiment of an offer description screen;
[0059]FIG. 18 is a flow chart of an embodiment for packaging a SSC that includes plaintext metadata;
[0060]FIG. 19 is a flow chart of another embodiment for packaging a metadata SSC and an associated content CSC;
[0061]FIG. 20 is a flow chart of another embodiment for packaging a metadata SSC and an associated content CSC;
[0062]FIG. 21 is a flow chart of an embodiment <b>2300</b> for generating a metadata SSC;
[0063]FIG. 22 is a flow chart of an embodiment for processing a search query posed to a servent from a peer computer;
[0064]FIG. 23 is a flow chart of an embodiment for validating rules from a metadata CSC against a content CSC;
[0065]FIG. 24 is a flow chart of an embodiment for validating and transferring a content CSC;
[0066]FIG. 25 is a flow chart of an embodiment for opening a content CSC;
[0067]FIG. 26 is a flow chart of an embodiment for searching for and receiving a content file;
[0068]FIG. 27 is a flow chart of an embodiment for searching for and receiving a content file via streaming;
[0069]FIG. 28A is a diagram of an embodiment of a selection window that allows dynamic subnetting of the interconnected peer computers;
[0070]FIG. 30B is a flow diagram of an embodiment for dynamic subnetting via rights selection (DRS);
[0071]FIG. 29 is a block diagram of yet another embodiment of a peer-to-peer network of computers that includes centralized searching;
[0072]FIG. 30 is a block diagram of an embodiment of a client-server network;
[0073]FIG. 31 is a block diagram of an embodiment of a peer-to-peer;
[0074]FIG. 32 is a block diagram of another embodiment of a peer-to-peer; and
[0075]FIG. 33 is a block diagram of yet another embodiment of a peer-to-peer.
DESCRIPTION OF THE SPECIFIC EMBODIMENTS
[0076] The present invention facilitates the location, distribution, and authorized use of digital information protected by a cryptographically secure container (CSC) by providing an unencrypted portion of a data structure that at least in part describes the rules associated with the protected digital information or content. In some embodiments, the unencrypted portion may describe the protected information as well. These secure containers are referred to as “Rights-searchable™” secure containers (SSCs). In some embodiments the unencrypted rules description or rules metadata may be part of the secure container data structure or may be a separate data structure concatenated with the CSC or may exist as a separate file.
[0077] One example benefit of disclosing the associated rules using a SSC is that a user, process, application, system, or any other decision-maker could decide to locate and then retrieve only those SSCs whose rules specify terms and conditions of use that the user is willing and able, or will be able, to meet. Non-limiting examples of using the information that may be disclosed in rights-searchable CSCs include situations where the user may search for and/or retrieve only those containers that can be opened by employees of a certain company or which have a cost associated with use of a one-time charge less than or equal to a specified amount, such as $2.00.
[0078] Another benefit of the present invention is that the user may take action to be able to comply with the terms and conditions associated with protected digital information in advance of downloading or transferring the SSC. One example scenario consists of a user determining that the rules associated with a particular file require a payment of $10.00 for unlimited use. This user may only have $5 remaining in a prepaid budget (not unlike a stored value card) and may therefore request additional budget from the appropriate financial clearinghouse or payment processor. After receiving at least an additional $5, the user may then transfer the file and request access. This option may be particularly helpful when the search and retrieval application attempts to open the protected file upon completion of the file transfer process, thus avoiding a situation where the user has transferred the protected information but is unable to meet the required conditions for authorized use.
[0079] With reference to FIG. 4, a block diagram of an embodiment of a quasi-peer-to-peer network <b>400</b> of computers that includes a centralized data center <b>404</b> is shown. Each of the computers <b>108</b>, <b>420</b>, <b>112</b>, <b>212</b> include either a search and retrieval (SR) application <b>408</b> or SR client software <b>416</b> that typically can transfer files from other peers, but cannot search other peer file systems directly. The data center <b>404</b> includes the web server <b>220</b>, the data warehouse <b>224</b>, the payment processor <b>228</b>, and a metadata and location database <b>412</b>.
[0080] The SR application and client software <b>408</b>, <b>416</b> in connection with the data center allows the peer-to-peer file transfer. The computers in the network <b>400</b> act as server and/or client. More specifically, the data center <b>404</b> serves files and provides a centralized directory, a first and second personal computers <b>420</b>-<b>1</b>, <b>420</b>-<b>2</b> send and receive files, the PDA <b>112</b>, the computer appliance <b>212</b> and a third personal computer <b>420</b>-<b>3</b> only receive files. The SR application <b>408</b> both sends and receives files, and the SR client software <b>416</b> only receives files.
[0081] All SR applications <b>408</b> send their local catalogs of files back to the data center <b>404</b> for storage in a metadata and location database <b>412</b>. Aggregation of all the local catalogs creates a catalog of the whole peer-to-peer network. The metadata may include any kind of attribute information descriptive of each file and is fully searchable such that any of the computers <b>112</b>, <b>212</b>, <b>420</b> can make downloading decisions based upon that rule information. After a desired file is found by searching, that file can be downloaded directly from one of the peer computers <b>112</b>, <b>212</b>, <b>420</b>.
[0082] Referring next to FIG. 5, a block diagram of an embodiment of a rights-enabled appliance <b>500</b> with a trusted computing base <b>504</b> is shown. Included in the appliance <b>500</b> are storage <b>508</b>, the network interface <b>128</b>, the trusted computing base <b>504</b> and other components known to those skilled in the art, but not shown in the figure.
[0083] A packaged file is protected on the rights-enabled appliance <b>500</b> according to defined rules that may entail one or more verbs, and attributes or parameters associated with a verb, if any. A verb defines permitted operations using the protected information and/or any consequences of use, examples of which include payment processing and/or audit record creation and reporting. The cryptographically secure container or package provides persistence protection as the file is transported from computer-to-computer such that subsequent parties who encounter the package cannot use the information inside unless allowed to do so by the appropriate verb under the control of a trusted computing base (TCB) <b>504</b>.
[0084] The TCB <b>504</b> is a software and/or hardware tamper resistant application, operating system component, or operating system extension. Included in the TCB <b>504</b> is a protected execution space <b>512</b> or protected processing environment where code is evaluated, interpreted and/or executed. Also it is where encryption, decryption, certificates, and other security related activities are handled. In one embodiment, an InterRights™ Point commercially available from InterTrust™ is used as the TCB <b>504</b>.
[0085] The storage <b>508</b> in the rights enabled appliance <b>500</b> can be any non-volatile storage media or including flash memory, magnetic discs, and/or read/write optical disks. A protected data store (PDS) <b>516</b> or database allows protecting information in storage <b>508</b> through encryption, for example. The PDS <b>516</b> may be used by the TCB <b>504</b> to store rules, audit information, electronic payment information, cryptographic keys, other cryptographic information, digital certificates, credentials, Membership Cards, financial and payment records, usage and audit records, and any other information the TCB <b>504</b> wishes to protect in the PDS <b>516</b>. Information in the PDS <b>516</b> can only be accessed through the TCB <b>504</b>. Other information is stored in a Rights-searchable secure containers (SSC) or packages outside of the storage <b>508</b>.
[0086] These true peer-to-peer (P2P) filesharing applications enable users to search for digital information of interest on any other participating peer system (in storage locations on those peers published to the network) and retrieve that digital information directly from the peer. P2P architectures allow users to determine which of their information shall be made available to the network of participating peers and to retrieve efficiently any and all information of interest to the user. These P2P filesharing applications combine features of more traditional servers and of clients, and hence are sometimes referred to as “servents.”
[0087] With reference to FIG. 6, a block diagram of an embodiment of an architecture for a peer-to-peer servent <b>600</b> is shown. The architecture shows the various functional units that form the peer-to-peer servent <b>600</b>. The functional units may or may not be separate pieces of software. Organizationally, the hardware or computer appliance <b>500</b> is on the bottom of the figure while the peer-to-peer (P2P) graphical user interface (GUI) <b>640</b> is on top.
[0088] Starting with the lowest level, the computer appliance hardware <b>500</b> provides a processor, storage <b>508</b>, network interface <b>128</b> and other component parts of a standard computer. In other embodiments, any type of computer or suitable appliance with sufficient resources could be used. The operating system <b>604</b> interfaces the computer appliance hardware <b>500</b> with any application software. Internet transport protocols, network transport protocols, storage interfaces and other functions are supported in the operating system <b>604</b>.
[0089] A P2P file search/transfer protocol <b>608</b> sits on top of the operating system <b>604</b> to interface the higher level application software with the Internet and network transport protocol interfaces (APIs) of the operating system <b>604</b>. In one embodiment, the file search/transfer protocol <b>608</b> conforms to the Gnutella™ protocol, but any P2P and/or file transfer protocol that supports similar functionality could be used. Extensions to the Gnutella protocol are added to support rights management and extensible markup language (XML) and/or any other self-defining or self-descriptive markup language. Other embodiments could use standard FTP, HTTP, Real, Quicktime file transfer or file streaming protocols.
[0090] In communication with the file search/transfer protocol <b>608</b> is a functional layer that performs discovery, search and transfer functions <b>620</b>, <b>616</b>, <b>620</b> and also includes the TCB <b>504</b>. Discovery <b>620</b> is the process for finding other peer computers on the network, and establishing a connection with them. Limits can be put on the discovery process to limit peer computers to those in a specified domain(s), specific networks and/or subnets, those having a specified Membership Card, those having a specified right(s), and/or any other means for limiting the scope of peers that are searchable or participating in a peer-to-peer network. The search function <b>616</b> takes search strings and passes them to peer computers and parses the results from those peers. Typically, the search includes at least some rights-related parameters, but searches without rights parameters are also envisioned for convenience, compatibility, and/or interoperability. When a digital information in a SSC is selected for download from a peer, the transfer function <b>612</b> manages the SSC transport. Authentication and authorization and possibly other validations maybe required by the transfer function <b>612</b> before the file is sent or received.
[0091] Streamed media files would be routed through the TCB <b>504</b> for creating an at least partially encrypted stream that is then sent to the recipient. A first SSC could be sent that includes a key(s) and rule information to the recipient such that the player could decrypt and play a second SSC that includes the media file. Other embodiments could include the keys, rules and media file in the same SSC. In another embodiment, the SSC and rules governing use are streamed ahead of the partially encrypted information governed by said rules.
[0092] Above the functional layer is an API layer that includes the rights management API <b>624</b> and the rights enabled P2P API <b>628</b>. The rights management API <b>624</b> interfaces the applications <b>632</b>, <b>636</b>, <b>640</b> with the TCB <b>504</b>, and the rights enabled P2P API <b>628</b> interfaces the applications <b>632</b>, <b>636</b>, <b>640</b> with the transfer, search and discovery functions <b>612</b>, <b>616</b>, <b>620</b>.
[0093] On top of the API layer is an application layer that includes the P2P GUI <b>640</b>, a packager <b>636</b> and a viewer <b>632</b>. The P2P GUI <b>640</b> is the interface the user interacts with. The packager application <b>636</b> allows files to be put into a SSC that could be sent any number of ways to another user. The packager application <b>636</b> may also put in a secure container rules, rule parameters, and other objects used by the TCB to evaluate requests for authorized access to the associated protected information. Non-limiting examples of these additional elements include credentials, such as Membership Cards, financial and/or usage clearinghouse information, and other governance related information. When that other user receives the SSC, the viewer application allows displaying and/or playing the protected content under the control of the TCB. The P2P GUI <b>640</b> may use a packager <b>636</b> and/or viewer <b>632</b> through its <b>640</b> GUI or separate from the P2P GUI <b>640</b>.
[0094] Referring next to FIG. 7, a block diagram of another embodiment of a peer-to-peer network <b>700</b> of computers that includes a clearinghouse <b>704</b> and two servers <b>708</b> is shown. All the computers in the network <b>700</b> include the TCB <b>504</b> and the PDS <b>516</b>. The two servers <b>708</b> provide SSCs to the peers, but typically do not receive SSCs from the peers. Conversely, the portable audio player <b>716</b> receives its protected information through computer <b>712</b>-<b>2</b> and may send back to computer <b>712</b>-<b>2</b> certain administrative information, such as acknowledgements, usage information, and other administrative information. PDA <b>720</b> typically receives SSCs from the peers, but does not provide any SSCs to the peers.
[0095] The clearinghouse <b>704</b> receives cryptographically secure containers (CSCs) from the various TCBs <b>504</b>. These containers may hold payment related information and/or audit information created in accordance with rules governing the consequences of authorized use, if any. Additionally, the clearinghouse <b>704</b> may provide credentials such as digital certificates and/or Membership Cards to the users of the peer computers. Payment processing involves receiving a payment record and taking appropriate action. In one example, the payment record indicates the credit card to be charged and the vendor accounts to be credited. In another example, the payment record confirms that a pre-paid budget amount stored in a PDS and managed by the TCB was decremented an amount specified in the payment record. Usage clearinghouse functions include receiving audit or usage records in CSCs, decrypting the CSC and sending the unencrypted usage record to a database application that, in turn, could provide reports to the clearinghouse and to other authorized parties. At least some usage records and resulting reports could indicate time, location, content, and verb exercised by the user. Clearinghouse <b>704</b> can also act as a credential authority by providing Membership Cards and other digital credentials to specific qualified users. These digital credentials may include X.509 digital certificates. Membership Cards are sent in CSCs and stored in the appropriate PDS by the TCB upon receipt. In addition to the preceding functions, the clearinghouse <b>704</b> could also provide SSC to peers in way similar to the servers <b>708</b>.
[0096] With reference to FIG. 8A, a block diagram of an embodiment of a data structure for a Rights-searchable secure container (SSC) <b>800</b> is shown. In this embodiment, plaintext metadata <b>820</b> is stored in an XML format. The metadata <b>820</b> includes a representation of some or all of the rules stored in an appended content CSC <b>824</b>. By having the rule information in the clear, the rules can be the subject of search queries without opening the CSC that protects the information whose authorized use is defined by the rules. Servers and servents <b>708</b>, <b>712</b> that store the SSC <b>800</b> can pull rules and other information about the CSC <b>824</b> from the metadata <b>820</b> to allow easy indexing of the SSCs <b>800</b>.
[0097] A header <b>816</b> provides information about the SSC <b>800</b>. For example, the header could indicate which type of SSC the header is associated with. The header <b>800</b> indicates for this type of SSC where the metadata <b>820</b> and CSC <b>824</b> are located in the SSC <b>800</b>. Other information may also be stored in the header. By reading the header the transfer function <b>620</b> knows what part(s) of the message should get sent to the TCB <b>504</b> for decode.
[0098] Referring next to FIG. 8B, is a block diagram of another embodiment of a data structure for a SSC <b>804</b> is shown. In this embodiment, metadata <b>832</b> is stored in a separate CSC. In this way, the metadata cannot be tampered with. The header <b>828</b> indicates where the metadata CSC <b>832</b> and content CSC <b>824</b> can be found in the message. Other information may also be stored in the header.
[0099] With reference to FIG. 8C, a block diagram of an embodiment of a metadata SSC <b>808</b> sent in response to a search query. During a search, each server <b>708</b> or servent <b>712</b> has a catalog of files that includes rule information, file attributes and attributes related to the server or servent. If there is a hit from the search query, the server or servent <b>708</b>, <b>712</b> sends back metadata that describes the file that caused the hit. The metadata SSC <b>808</b> includes the metadata describing the file and a code that uniquely identifies the file. Because a CSC is used, the information within the CSC cannot be tampered with. When the content CSC is later received the code is checked against another code in the content CSC to be sure there is a match. A header <b>830</b>, among other things, indicates where the metadata CSC begins. Although not shown, some embodiments could include the search query in a CSC so as to avoid non-peers from observing what a user is searching for.
[0100] Referring next to FIG. 8D, a block diagram of an embodiment of a metadata SSC <b>812</b> sent in response to a search query along with a corresponding content CSC <b>816</b> is shown. This embodiment includes a code or reference <b>836</b> that indicates the content CSC <b>816</b> is the streaming content requested. The code <b>836</b> can be part of another CSC or encapsulated within its own CSC.
[0101] With reference to FIG. 9, a diagram of example XML code for metadata <b>820</b> including rules and attributes associated with protected information within a CSC is shown. In the XML code <b>820</b> are information pertaining to offers <b>904</b>, digital content information <b>908</b> and credentials <b>912</b>. The offers <b>904</b> include rules some of which may be comprised at least in part by verbs. For example, according to this example XML-encoded metadata, the ability to play the content file is permitted by at least one rule provided any conditions associated with that rule are satisfied. In the content information section <b>908</b> of the XML, includes attributes about the file such as the publisher, data rate, encoding formation, size, file name, etc. The credential section <b>912</b> includes a listing of credentials required to access the encapsulated file. It is noted that there may be more that one credential specified such that a user with any of the credentials listed could use the associated encapsulated file. In another example, plural credentials may be required to gain authorized access to the protected digital information. Although XML is used in this embodiment, any data structure could be used. Preferably, the data structure is self-describing such that the parser determines what it is parsing from the data structure itself.
[0102] Referring next to FIG. 10, a block diagram of an embodiment of a trusted packaging window <b>1000</b> is shown. The packager application interacts with TCB <b>504</b> through the rights management API <b>624</b> to create a cryptographically secure container. Optionally, the user can either send the protected file without providing a plaintext description of the associated rules, in which case the “NO” check box <b>1032</b> would be checked, or as in the present example, with the rules metadata unencrypted as described by the XML-encoded metadata in a SSC <b>804</b>. If the user checks the “YES” box <b>1028</b> as in this example, searchable forms of the verbs are always available outside the encrypted portion of the container data structure that protects the rules. In another embodiment, creating a rights-searchable secure container may be the default for any packaging operation that entails rules and related control information.
[0103] The user selects the file name(s) to include in the SSC <b>804</b> with a file name entry <b>1004</b>. Rules <b>1008</b>, credentials <b>1012</b>, financial clearinghouse <b>1016</b>, and usage clearinghouse <b>1020</b> information may also selected. As indicated in FIG. 10, only one verb is required and that would almost always enabling viewing or playing the protected information. However, any number of rules <b>1008</b> in the form of verbs can be specified to control the file in the SSC. For example, a first verb requires a one-time fee of $1.98 to allow the purchaser to play the “black friday.mp3” any number of times. A second verb gives an alternative offer to allow playing the song for 25 cents each time.
[0104] The credential fields <b>1012</b> allow specifying credentials the user must have before accessing the protected file. Credentials could be digital certificates or Membership Cards. A Membership Card is a persistent protected file or object issued to one or more persons, processes, and/or InterRights Point installations for authorization purposes. However, this embodiment requires no credentials.
[0105] Still referring to FIG. 10, Membership Cards may also define certain contexts where fair-use copyright exemptions may apply. For example, the protected information may be packaged with a standard commercial price and a discounted price for those having a Membership Card or other acceptable credential indicating that the user had some affiliation with an institution where fair use exemptions were likely to be granted by rightsholders, for example, a library or educational institution.
[0106] The clearinghouse fields <b>1016</b>, <b>1020</b> allow specifying where audit and payment-related information should be sent. The person who packages the information may be able to choose among a number of clearinghouses. Based upon those specified, the TCB <b>504</b> of the recipient will send payment information to the financial clearinghouse <b>1016</b> and usage information to the usage clearinghouse <b>1020</b>. For example if the recipient chooses to pay 25 cents for each play, the TrustData™ Usage Clearing Services usage clearinghouse is notified by the creation and reporting of an audit record. In this non-limiting example, if the recipient has some sort of local budget managed by TCB <b>504</b> and stored in PDS <b>516</b>, the 25 cents is subtracted from the stored value amount or the unused authorized credit amount. These charges may be reported to the financial clearinghouse <b>1016</b>, in this example the TrustData Local Budget clearinghouse. In another example, there may not be sufficient funds locally, and if connected, the TCB may attempt to effect payment in real time using the financial clearinghouse represented by the TrustData Immediate Payment financial clearinghouse. Some kinds of digital information, including, but not limited to audio, video, image, and software may carry one or more watermarks or fingerprints encoded in the digital information. In the non-limiting embodiment shown here, a list of currently available and active watermark detection plug-ins <b>1024</b> are listed in the packaging window <b>1000</b>. The one or more listed watermark algorithms will be used to recognized information encoded within or by the watermark in the content file itself, if present. By having a plug-in architecture, code implementing new watermarking algorithms may be added easily for use by the packaging application. Code implementing one or more watermark detection algorithms may be user installed or installed by the developer of the packager application component. If user installed, the plug-in may be required to present a credential or certificate to the TCB <b>504</b> before it's use is permitted by the TCB <b>504</b>.
[0107] If a watermark is found, the publisher or other party about to package the watermarked information must show that they are authorized to distribute the watermarked material using rights management technologies that employ a CSC, or the packager will not package the file. Authorization to package watermarked files may be granted using a suitable credential such as a Membership Card or an X.509 digital certificate. Upon detecting a watermark of a particular kind and with certain information contained therein, the packaging application may determine if the user has a valid authorization credential stored in a PDS <b>516</b> controlled by a TCB <b>504</b>. If the appropriate valid credential is found, packaging may proceed. This prevents unauthorized parties publishing files using this packaging application that have been previously protected with a watermark. Credentials may be used to represent any rightsholder or their agent in the digital information supply and distribution value chain, non-limiting examples of which include musicians, record labels, television channels, such as MTV and/or VHI, music distributors, web portals, and other authorized parties.
[0108] In another embodiment, a plug-in may compare a sample of the music to be packaged with samples stored elsewhere to determine if that particular recording is protected under copyright. The comparisons might be between hash codes calculated over a sample of some predefined length rather than between samples of the audio. Once identified, a database could return a value indicating whether copyright was asserted or not, and if asserted, who the rightsholder is for that particular recording. The packager application could then make additional decisions based on that information and/or the presence of appropriate credentials.
[0109] In yet another embodiment, the packager could look to see if the file incorporated metadata that described attributes of the recorded music, such as the appropriate field within an MP3 header file that is reserved for the International Standard Work Code or the International Standard Recording Code, information that identifies the work and/or the specific recording of the work. The packager application could then make additional decisions based on that information and/or the presence of appropriate credentials.
[0110] With reference to FIG. 11, a diagram of an embodiment of a watermark detection error message is shown. This example message is shown when there is a watermark found in a file that someone has attempted to package without the packaging application through the TCB <b>504</b> finding an appropriate valid credential in PDS <b>516</b>.
[0111] Referring next the FIG. 12, a diagram of an embodiment authorization verification question window <b>1200</b> is shown. When a person attempts to package a file, an attestation of ownership or possession of similar rights is required. This example window asks the person about to package digital information of any kind whether that person has the authority to do so without violating the copyright(s) and/or other proprietary, legal, and/or contractual rights of another person. If the user uses a mouse or other pointing device to click on “Yes” button <b>1204</b>, then packaging will proceed. This attestation is subsequently reported to an audit clearinghouse in accordance with rules for audit records related to the packaging function. In this way, the person packaging the digital information can be identified if their ownership is subsequently questioned. If the person clicks on “No” button <b>1208</b>, then the packaging process is terminated. In another embodiment, the packager may check to see if there are one or more certain Membership Cards and/or other credentials known to the TCB <b>504</b> and if so, proceed with packaging without asking whether the person about to package the content is authorized to do so. Combinations of Membership Cards and/or other credentials may also be used to determine if audit records are created and reported to a usage clearinghouse.
[0112] With reference to FIG. 13, a diagram of an embodiment of a search results screen <b>1400</b> is shown. A user of the P2P network entered “Steeley Dan” as an example search term and five resulting SSC files were returned. Listed are a series of verbs <b>1304</b> and values <b>1308</b> for each file. The value <b>1308</b> gives a description of its associated verb <b>1304</b>. Any number of verbs <b>1304</b> are possible for each file. The verbs are returned from the metadata XML <b>820</b> maintained unencrypted outside the encrypted portion of content CSC <b>824</b> that holds and protects the digital file which in this non-limiting example, is a compressed audio file containing music.
[0113] To get additional information on any item on the list, the user can right click for more verbose explanations. Each file can be selected for downloading or streaming. Streamed files are played as they are downloaded. In other embodiments, more sophisticated searching is possible such that a user could search for specific verbs or file types. For example, a user could search for a one-time charge of less than $1.00.
[0114] There are display options available to further simplify the search results. For example, any verb value column <b>1308</b> may have a sort criteria applied to it such as price. It should be also noted that the same verbs are organized in the same columns to make comparing the different offers easier. In another embodiment, received search results may be redisplayed with a more limiting set of search criteria without having to perform the all over again.
[0115]FIG. 14 is a diagram of another embodiment of a search results screen with one of the possible choices selected. In these search results there are two listings for the song “Bad Sneekers.ssc.” There can be more than one version because of multiple instances of the same file, different packaging times or versions of the song, etc. In another embodiment, multiple instances of the same file located on one or plural participating servents <b>600</b> could be displayed to the user. In this example results screen, the second version of the song allows for a discount if the use of the song can be audited by the publisher. If agreed to by the user, an audit record would be created perhaps each time the song was played and reported to the usage clearinghouse designated by the packager of the song. As an additional example, there are multiple versions of the “Black Friday Lyric.ssc” that have identical verbs, but are available on different peer computers. In one embodiment, the user could retrieve the file located on the peer with the fastest internet connection.
[0116]FIG. 15 a diagram of an embodiment of an offer screen <b>1500</b> is shown. In the preferred embodiment, this offer screen is controlled by TCB <b>504</b> and indicates the rules that are protected by the CSC <b>824</b>. Because the TCB controls the display of actual rule information, the user is assured that the offer is accurate and genuine. If there is a discrepancy between the rule information contained in the example XML-encoded plaintext <b>820</b> and the protected rules, the information shown in this example message is definitive. Once downloaded from the peer computer, the recipient can choose an offer that suits them. Further information on any offer may be retrieved from the CSC <b>824</b> that holds the rules and related governance information.
[0117]FIG. 16 is a diagram of an embodiment of a trusted viewer window <b>1600</b> that shows at least some of digital information protected in the SSC. Information displayed by the trusted viewer is controlled by a TCB <b>504</b> in accordance with the rule(s) agreed to by the user. In this example, the contents of Black Friday Lyric.txt.ssc is shown in the viewer window. Following from the selected file in FIG. 14, this file can be viewed once for $1.00, viewed multiple times thereafter for 50 cents, or printed one time for $4.99. It is noted that once the rights are purchased in some embodiments they are portable and may follow and/or be transferred by that user from machine to machine by various methods. Although this example is for a text viewer, there are viewers available for all types of content files such as audio, video, image, and other file types.
[0118] With reference to FIG. 17, a block diagram of another embodiment of a packaging window <b>1700</b> for packaging files in peer-to-peer network is shown. In this embodiment, the watermark capability is omitted and additional functionality is given to the credential selection <b>1012</b>. Boolean combinations of credentials are possible by with a Boolean selection button <b>1704</b>. Operators such as AND, OR and NOT are supported in this embodiment. For example, a company credential and a corporate office credential or a corporate planning department credential is required to view, print or modify the CompanyBizPlan2000Draft.doc file. Although not depicted, further embodiments could entail sunrise and sunset parameters for one or more of the verbs.
[0119] The active watermark plug-in window <b>1024</b> is not shown in this embodiment because there are not any watermarking algorithms used to protect files in this format, but strong and robust watermarking algorithms for text could be used as they become available. A financial clearinghouse is specified to allow chargebacks upon accessing the file. Additionally, usage is monitored by audit records sent to a usage clearinghouse.
[0120] Referring next to FIG. 18, a diagram of yet another embodiment of a search results <b>1800</b> screen is shown. The results show the credentials required <b>1804</b> and the verbs <b>1808</b> associated with those credentials. When a search was done for “CompanyBizPlan*.*”, four results were produced. The older versions have fewer or more restrictive rights because they were not provided when packaged or because some rights were sunsetted over time. For example, the older business plans can no longer be modified. Some rights can be sunrised. For example, a company undertaking an Initial Public Offering may make their business plan, annual results, quarterly results, or SEC registration document directly available to all employees after a SEC quiet period expired.
[0121] With reference to FIG. 19, a diagram of another embodiment of an offer description screen <b>1900</b> is shown. In the preferred embodiment, this screen is controlled by a TCB <b>504</b> and accurately reflects the rules protected in the CSC. This description indicates company officers and members of the planning group can view the file as many times as they want before Dec. 31, 2001 at 6:00 p.m. when the offer is sunsetted.
[0122] Referring next to FIG. 20, a flow chart of an embodiment <b>2000</b> for packaging one embodiment of a SSC <b>800</b> that includes plaintext metadata <b>820</b> is shown. Generally, the left of the flow chart shows the input components, the right of the flow chart shows the output components, and the actions are shown in the middle. In step <b>2004</b>, a rights offers user interface (UI) <b>1000</b>, <b>1700</b> selects the rights, credentials and clearinghouses for a content file selected in step <b>2008</b>. More than one file can be selected for the package in step <b>2008</b>. Block <b>2012</b> represents the content file(s) selected for packaging.
[0123] The rules embodied in the rights, credentials and clearinghouses information are passed to steps <b>2020</b> and <b>2024</b>. In step <b>2020</b>, the rights are used to generate the plaintext XML metadata <b>820</b>. The content file(s) selected in step <b>2008</b> is used in step <b>2024</b> along with the rights to create the content CSC <b>824</b>. Before creation of the content CSC <b>824</b>, the content file(s) is checked with a third party watermark plug-in in optional step <b>2028</b>. The header <b>816</b> is created in step <b>2016</b> by with data relevant to the plaintext XML metadata <b>820</b> and the content CSC <b>824</b>. In most embodiments, the Build Header Information step <b>2016</b> completes after the metadata plaintext creation step <b>2020</b> and the Generate CSC step <b>2024</b> complete or at least after each has progressed sufficiently so that the length of the metadata plain text <b>820</b> and of Content CSC <b>824</b> are known.
[0124] With reference to FIG. 21, a flow chart of another embodiment <b>2100</b> for packaging a metadata SSC <b>812</b> and an associated content CSC <b>816</b> is shown. This embodiment <b>2100</b> produces a metadata SSC <b>812</b> separate from a content CSC <b>816</b>. In step <b>2104</b>, the rules are used to generate a metadata CSC <b>832</b>. A reference code <b>836</b> that uniquely identifies the content CSC is generated in step <b>2108</b>. The reference code <b>836</b> can be verified with information inside the content CSC <b>816</b>. Also in step <b>2108</b>, the content CSC <b>816</b> is generated. The content CSC <b>816</b> holds the content files <b>2012</b>. In most embodiments, the Build Header Information step <b>2016</b> completes after the metadata plaintext creation step <b>2104</b> and the Generate CSC step <b>2108</b> complete or at least after each has progressed sufficiently so that the length of the metadata plain text <b>832</b> and of the Reference to Content CSC <b>836</b> are known.
[0125] If at least one watermarking plugin has been provided to the application for the data format being packaged, packaging is not performed if a watermark is found and there is no authorization in the form of one or more credentials such as a Membership card and/or a digital certificate in X.509 format.
[0126] Referring next to FIG. 22, a flow chart of another embodiment <b>2200</b> for packaging a SSC <b>804</b>. In this embodiment, the metadata CSC <b>832</b> is part of the same message as the content CSC <b>824</b>. The metadata CSC is generated in step <b>2204</b> from the rules entered in step <b>2004</b>.
[0127] With reference to FIG. 23, a flow chart of an embodiment <b>2300</b> for generating a metadata SSC <b>808</b> is shown. The metadata SSC <b>808</b> is generated in response to a file query. Rules <b>2312</b> are used in step <b>2308</b> to package the metadata CSC <b>832</b>.
[0128] Referring next to FIG. 24, a flow chart of an embodiment <b>2400</b> for processing a search query posed to a servent <b>712</b> from a peer computer is shown. To perform a search across the available peer network, in one embodiment many peer computers are sent the same search query such that many peer computers perform this processing in parallel. In one embodiment, the search request received from the Internet <b>104</b> in step <b>2404</b> can be in a CSC. In step <b>2408</b>, the XML query is parsed. Each servent <b>712</b> may maintain a content database (DB) <b>2416</b> of all local shared files with metadata including rules metadata related to CSCs for each stored in the DB in indexed fashion. In step <b>2412</b>, the content DB <b>2416</b> is searched. Any hits from the search may be individually packaged into a metadata SSC <b>808</b> in step <b>2300</b> and returned to the requesting peer computer. Other embodiments, could package many hits from the search query into the same metadata SSC <b>808</b>. In another embodiment the search results are sent without being encrypted using the appropriate response and transport protocols.
[0129] With reference to FIG. 25, a flow chart of an example embodiment <b>2500</b> for validating rules from a metadata CSC <b>832</b> against a content CSC <b>816</b> is shown. Validation occurs at a number of different times in the process. For example, the validation is performed when a SSC is sent to a requesting peer computer or when a file transfer request is received. In this way, both ends of the transaction check that the metadata matches the content CSC <b>816</b>.
[0130] In steps <b>2504</b> and <b>2508</b>, the metadata CSC <b>832</b> and the content CSC <b>816</b> are retrieved. Both CSCs <b>832</b>, <b>816</b> are unpackaged in step <b>2512</b> to get the rule information. Other embodiments that store the metadata in the clear would not require unpackaging and/or decrypting metadata. The metadata is compared in step <b>2516</b> to see if there is a match.
[0131] Referring next to FIG. 26, a flow chart of an embodiment <b>2600</b> for responding to a file transfer request is shown. In step <b>2604</b>, the file transfer request is received. The transfer request includes the metadata SSC <b>808</b> sent in response to the search query. A search is performed in step <b>2400</b> to find the content CSC <b>816</b>. The metadata SSC <b>808</b> is checked against the rules in the content CSC <b>816</b> in step <b>2500</b> to verify the correct file is being requested. In step <b>2608</b>, the content CSC is transferred to the requesting peer computer. In other embodiments the file may be transferred upon receipt of a request from another peer without further metadata check and validation as long as the requested file is found locally (and in some embodiments, on a portion of the file system specifically allocated for storing files shared with other peers).
[0132] With reference to FIG. 27, a flow chart of an embodiment <b>2512</b> for opening a content CSC <b>816</b> is shown. In step <b>2704</b>, a request is sent for retrieval of the content CSC <b>816</b>. The request includes the metadata SSC <b>808</b> sent in response to the search query. The peer receiving the retrieval request validates that request in step <b>2500</b>. In step <b>2708</b>, the protected information is accessed under control of the TCB <b>504</b> in accordance with rules associated with the protected content. If there is a fee for accessing the information, the sale processing under the control of the TCB <b>504</b> in accordance with rules relating to payment consequences. Communication with a financial and audit clearinghouse <b>2712</b> provides payment and/or a record of the transaction if the actual payment event occurred using a locally stored budget or authorized credit. Other embodiments could perform the payment at a later time if there is currently no connection to the clearinghouse <b>2712</b>. The payment record would be kept in the PDS <b>516</b> until such time as the TCB <b>504</b> determined that a network connection existed and/or until the TCB <b>504</b> requested that the user establish a connection because a clearinghouse or other party had set a rule with a threshold indicating how frequently the TCB should communicate with a clearinghouse. In step <b>2716</b>, the user is allowed to use the content using a trusted viewer or player under the control of TCB <b>504</b>.
[0133] Referring next to FIG. 28, a flow chart of an embodiment <b>2800</b> for searching for and receiving a content file is shown. In step <b>2804</b>, search criteria is gathered from a user interface (UI) <b>1000</b>, <b>1700</b> window. A formatted XML search query is generated in step <b>2808</b> that will be compared to metadata on peer computers. The query is sent to connected peer servents <b>712</b> in step <b>2812</b> by way of the Internet <b>104</b>. Typically, many peer servents <b>712</b> receive the query and check for hits or matches locally.
[0134] Responses from all the peer servents <b>712</b> are gathered in step <b>2816</b> and displayed in a results window <b>1300</b>, <b>1800</b>. The responses may arrive in the form of metadata CSCs <b>808</b> and are checked against the original query in step <b>2818</b>. A verification icon could be presented in the results window next to each verified entry. After one of the entries is selected for receiving, a request is made to the servent <b>712</b> that hosts the file in step <b>2820</b>. The request includes the metadata CSC <b>808</b> such that the content CSC <b>816</b> can be checked against the metadata CSC <b>808</b> before sending the file. Once the file is validated by the host computer, it is sent to the requesting computer in step <b>2824</b>. In another embodiment, the search results are sent unencrypted.
[0135] With reference to FIG. 29, a flow chart of an embodiment <b>2900</b> for searching for and streaming a content file is shown. This embodiment is similar to that of FIG. 28, but the file requested is streamed in step <b>2916</b>. Additionally, only the file selected is verified in step <b>2818</b> before it is requested in step <b>2912</b>. In another embodiment, a CSC with the rules associated with the information to be streamed is sent to the receiving peer. The receiving peer presents the rules to the user who may agree to the conditions of use and provide payment, if any. Upon satisfaction of the rules, a message may be sent to begin streaming the information which may be in another CSC or which may be at least partially encrypted. The first CSC may also contain the key required to decrypt the at least partially encrypted streaming information.
[0136] Referring next to FIG. 30A, a diagram of an embodiment of a selection window <b>3000</b> that allows dynamic subnetting of the interconnected peer computers based upon rights selection. The rights filter(s) specified in <b>3008</b> are associated with a TCP port in <b>3004</b>. Only the computers on the same port <b>3004</b> will communicate with each other. Multiple conditions can be enabled <b>3012</b> simultaneously by connecting with multiple subnets at the same time.
[0137] For example, if the first two entries in the selection window are enabled, free files found on port <b>2001</b> and files requiring the company Membership Card on port <b>2002</b> will be subnetted separately. Only those peer computers that are in the associated subnets will receive the search queries. In other embodiments, Boolean combinations of rules could provide more powerful subnetting possibilities.
[0138] With reference to FIG. 30B, a flow diagram of an embodiment <b>3050</b> for dynamic subnetting via rights selection (DRS) is shown. In step <b>3054</b>, a DRS selection window <b>300</b> is used to select the subnet filter characteristics. A search criteria is entered into a search window <b>1000</b>, <b>1700</b> in step <b>3058</b>. In step <b>3062</b>, the search criteria are only sent to peer computers within the DRS filter subnet defined in step <b>3054</b>. Processing of the search results proceeds as normal in step <b>3066</b> among the subnet computers.
[0139] In other embodiments, participation in P2P networks may be limited to servents having certain qualified domain names, to those with certain network addresses, to those accessible over a virtual private network(s), and other means for limiting access known to those skilled in the relevant arts.
[0140] Referring next to FIG. 31, a block diagram of yet another embodiment of a peer-to-peer network <b>3100</b> of computers that includes centralized searching is shown. In this embodiment a centralized data center <b>3102</b> provides a directory <b>412</b>, data warehousing <b>224</b>, financial and usage clearinghouse <b>3104</b>, and packaging <b>3104</b> functions. New files may be packaged in block <b>3104</b> and at any servent <b>724</b>. Files may be exchanged among the peer computers <b>3102</b>, <b>712</b>, <b>720</b>, <b>724</b>. The PDA <b>720</b> and portable audio player <b>716</b> are limited to receiving content files because of resource constraints. The servents <b>724</b> can both provide and receive content files. The metadata in the metadata and location database <b>412</b> is gathered from the metadata CSC <b>808</b> associated with each content file.
[0141] In this embodiment, servent applications, other search and retrieval applications, and/or browsers running on computers <b>712</b>, <b>720</b>, and appliance <b>724</b> may search the metadata and location database that contains at least in part rules-related metadata associated with CSCs stored in data warehouse <b>224</b> and/or on other peers. Files of interest to the user may be retrieved from the data warehouse <b>224</b> and/or from other peers whose network location is provided from the metadata and location database <b>412</b>.
[0142] With reference to FIG. 32, a block diagram of an embodiment of a client-server network <b>3200</b> is shown. Each client computer <b>712</b>, <b>716</b>, <b>720</b>, <b>724</b> communicates with a central server <b>3204</b> for content files including content protected in rights-searchable CSCs. The data warehouse stores <b>224</b> rights-searchable content CSC and plaintext rules metadata to make rules-based searching easier. The central server <b>3204</b> may also have packaging and clearinghouse capabilities. In addition to P2P search, the servent software may communicate with Web Server <b>220</b> and receive its search results and files from a centralized service.
[0143] Referring next to FIG. 33, a block diagram of an embodiment of a peer-to-peer network <b>3300</b> is shown. Peer-to-peer networking has been conceived and implemented mainly in the context of individuals sharing unprotected information, especially entertainment information in the form of compressed audio recordings. However, the present inventions may be used in business contexts as well. In this embodiment, there are two locations <b>3308</b> of one organization <b>3304</b>-<b>1</b> networked with two other organizations <b>3304</b>-<b>2</b>, <b>3304</b>-<b>3</b> such that all servents <b>712</b> on the network <b>3300</b> are connected. A central clearinghouse <b>3312</b> provides various services to the whole network. All of these computers may participate in P2P sharing of protected information stored in rights-searchable CSCs. As those skilled in the art would appreciate, any combination of network components is possible. Subnetting could be used to interconnect the servents <b>712</b> in a larger peer-to-peer group. Additionally, virtual private networking could be used to further subnet these groups.
[0144] In this embodiment, participants within a single organization could search for, locate, and retrieve company information that had been packaged with rules requiring the presence of a Membership Card indicating employment or other affiliation with the example company. In addition, participants in one or another value chains might also share protected digital information that had been packaged with a rule requiring that the user possess at least one specific Membership Card indicating that the party was an authorized participant in a specific value chain. Access to participating computers may be effected by one or more of the subnetting techniques previous discussed herein and/or others that may become known in the future
[0145] With reference to FIG. 34, a block diagram of another embodiment of a peer-to-peer network <b>3400</b> is shown. This example embodiment shows the application of the present inventions within a particular vertical market, that is, within healthcare. Referring to FIG. 34, two locations <b>3404</b> of a healthcare provider organization <b>3408</b>-<b>1</b> integrated with an off-site payor company <b>3408</b>-<b>2</b> and an off-site prescription management company <b>3408</b>-<b>3</b>. All of these computers may participate in P2P sharing of protected information stored in rights-searchable CSCs. Access to participating computers may be effected by one or more of the subnetting techniques previous discussed herein and/or others that may become known in the future
[0146] Referring next to FIG. 35, a block diagram of yet another embodiment of a peer-to-peer network <b>3500</b> is shown. This embodiment shows two locations <b>3504</b> of a government agency <b>3508</b>-<b>1</b> integrated with an off-site supplier <b>3508</b>-<b>2</b> and another off-site organization <b>3508</b>-<b>3</b>. All of these computers may participate in P2P sharing of protected information stored in rights-searchable CSCs. Access to participating computers may be effected by one or more of the subnetting techniques previous discussed herein and/or others that may become known in the future
[0147] A number of variations and modifications of the invention can also be used. For example, servers could have their various components spread among a number of computers and/or locations, but are connected logically in one congruous whole.
[0148] While the present invention has been described with reference to certain preferred embodiments, it is to be understood that the present invention is not to be limited to such specific embodiments. Rather, it is the inventor's intention that the invention be understood and construed in its broadest meaning as reflected by the following claims. Thus, these claims are to be understood as incorporating and not only the preferred embodiment described herein but all those other and further alterations and modifications as would be apparent to those of ordinary skill in the art.
Contents5
37 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9729609B2 | Cited by | United States of America | Applicant |
| US7739317B2 | Cited by | United States of America | Search report |
| US2004123109A1 | Cited by | United States of America | Pre-grant |
| US2011191863A1 | Cited by | United States of America | Pre-grant |
| US8176338B1 | Cited by | United States of America | Search report |
| US2008249943A1 | Cited by | United States of America | Pre-grant |
| US2008080392A1 | Cited by | United States of America | Pre-grant |
| US2021203647A1 | Cited by | United States of America | Search report |
| US2008320300A1 | Cited by | United States of America | Pre-grant |
| US2012084554A1 | Cited by | United States of America | Pre-grant |
| US2007283167A1 | Cited by | United States of America | Pre-grant |
| US2008104202A1 | Cited by | United States of America | Pre-grant |
| US2005268346A1 | Cited by | United States of America | Pre-grant |
| US2008091763A1 | Cited by | United States of America | Pre-grant |
| US7451229B2 | Cited by | United States of America | Applicant |
| US2007266047A1 | Cited by | United States of America | Pre-grant |
| US2010191955A1 | Cited by | United States of America | Pre-grant |
| US7873988B1 | Cited by | United States of America | Search report |
| US10614252B2 | Cited by | United States of America | Applicant |
| US9100396B2 | Cited by | United States of America | Applicant |
| US2005086326A1 | Cited by | United States of America | Pre-grant |
| US8370419B2 | Cited by | United States of America | Applicant |
| US10459945B2 | Cited by | United States of America | Applicant |
| US2009013188A1 | Cited by | United States of America | Pre-grant |
| US2008250065A1 | Cited by | United States of America | Pre-grant |
| US9124767B2 | Cited by | United States of America | Search report |
| US2005240591A1 | Cited by | United States of America | Pre-grant |
| US11354446B2 | Cited by | United States of America | Applicant |
| US2004193594A1 | Cited by | United States of America | Pre-grant |
| US10860611B2 | Cited by | United States of America | Applicant |
| US2006212478A1 | Cited by | United States of America | Pre-grant |
| US2006294022A1 | Cited by | United States of America | Pre-grant |
| US7681238B2 | Cited by | United States of America | Applicant |
| US9922312B2 | Cited by | United States of America | Applicant |
| US7756388B2 | Cited by | United States of America | Applicant |
| EP1801720A1 | Cited by | European Patent Office (EPO) | Search report |
| US2010299219A1 | Cited by | United States of America | Pre-grant |
| US2005071274A1 | Cited by | United States of America | Pre-grant |
| US11451528B2 | Cited by | United States of America | Applicant |
| KR100597308B1 | Cited by | Republic of Korea | Search report |
| US2009012992A1 | Cited by | United States of America | Pre-grant |
| EP2472430A1 | Cited by | European Patent Office (EPO) | Applicant |
| US2005091508A1 | Cited by | United States of America | Pre-grant |
| US2009320050A1 | Cited by | United States of America | Pre-grant |
| US2006026141A1 | Cited by | United States of America | Pre-grant |
| US8843744B2 | Cited by | United States of America | Applicant |
| US2007083380A1 | Cited by | United States of America | Pre-grant |
| US10489044B2 | Cited by | United States of America | Applicant |
| US2010064354A1 | Cited by | United States of America | Pre-grant |
| US8473479B2 | Cited by | United States of America | Applicant |
| US8909546B2 | Cited by | United States of America | Search report |
| US2006277092A1 | Cited by | United States of America | Pre-grant |
| US7461054B2 | Cited by | United States of America | Search report |
| US10339574B2 | Cited by | United States of America | Applicant |
| US2010235889A1 | Cited by | United States of America | Pre-grant |
| US8935217B2 | Cited by | United States of America | Applicant |
| US2007038672A1 | Cited by | United States of America | Pre-grant |
| US7693871B2 | Cited by | United States of America | Applicant |
| US2017053136A1 | Cited by | United States of America | Search report |
| US2006190817A1 | Cited by | United States of America | Pre-grant |
| US9256899B2 | Cited by | United States of America | Applicant |
| US2008034437A1 | Cited by | United States of America | Pre-grant |
| US2008040816A1 | Cited by | United States of America | Pre-grant |
| GB2467580B | Cited by | United Kingdom | Search report |
| US2006195400A1 | Cited by | United States of America | Pre-grant |
| US9648069B2 | Cited by | United States of America | Applicant |
| US2008066181A1 | Cited by | United States of America | Pre-grant |
| US2008052165A1 | Cited by | United States of America | Pre-grant |
| US10936674B2 | Cited by | United States of America | Search report |
| WO2008065341A2 | Cited by | World Intellectual Property Organization (WIPO) | Applicant |
| US2007150596A1 | Cited by | United States of America | Pre-grant |
| US2006288041A1 | Cited by | United States of America | Pre-grant |
| US2003236912A1 | Cited by | United States of America | Pre-grant |
| US2005132207A1 | Cited by | United States of America | Pre-grant |
| US9213867B2 | Cited by | United States of America | Search report |
| US7870397B2 | Cited by | United States of America | Search report |
| US2021342459A1 | Cited by | United States of America | Search report |
| US9325679B2 | Cited by | United States of America | Search report |
| US2011060776A1 | Cited by | United States of America | Pre-grant |
| US9235399B2 | Cited by | United States of America | Applicant |
| US10614097B2 | Cited by | United States of America | Applicant |
| US2007299681A1 | Cited by | United States of America | Pre-grant |
| US2009254977A1 | Cited by | United States of America | Pre-grant |
| US2007094139A1 | Cited by | United States of America | Pre-grant |
| US2008114766A1 | Cited by | United States of America | Pre-grant |
| US7680937B2 | Cited by | United States of America | Search report |
| US8301884B2 | Cited by | United States of America | Search report |
| US2011178887A1 | Cited by | United States of America | Pre-grant |
| US7533091B2 | Cited by | United States of America | Applicant |
| US2008059216A1 | Cited by | United States of America | Pre-grant |
| US2011091032A1 | Cited by | United States of America | Pre-grant |
| US2011238631A1 | Cited by | United States of America | Pre-grant |
| US2009307682A1 | Cited by | United States of America | Pre-grant |
| ITTO20091055A1 | Cited by | Italy | Search report |
| US2008249942A1 | Cited by | United States of America | Pre-grant |
| US8707087B2 | Cited by | United States of America | Search report |
| US12019750B2 | Cited by | United States of America | Applicant |
| US2009276333A1 | Cited by | United States of America | Pre-grant |
| US2005091316A1 | Cited by | United States of America | Pre-grant |
| US2007083497A1 | Cited by | United States of America | Pre-grant |
4 members in 3 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 0149735 | United States of America | W | |
| 0149735 | United States of America | W | |
| 22410702 | United States of America | A | |
| PCTUS0149735 | – | – | – |
| US20020224107 | – | – | – |
| WO2001US49735 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| WO0251057A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU3119902A | Australia | A | |
| US2003120928A1 | United States of America | A1 | |
| WO0251057A3 | World Intellectual Property Organization (WIPO) | A3 |
12 transactions on the USPTO file
Abandoned after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | |
|---|---|
| Mail Abandonment for Failure to Respond to Office ActionAbandoned | |
| Aband. for Failure to Respond to O. A. | |
| IFW TSS Processing by Tech Center Complete | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Application Dispatched from OIPE | |
| Application Is Now Complete | |
| IFW Scan & PACR Auto Security Review | |
| Initial Exam Team nn |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB |
Numbers
- Publication, DOCDB
- 2003120928
- Publication, EPODOC
- US2003120928
- Application
- 10224107
- Application, DOCDB
- 22410702
- Application, EPODOC
- US20020224107
Titles
- English
- Methods for rights enabled peer-to-peer networking
Classification
- CPC, 3
- H04L63/0428
- H04L63/105
- H04L2463/101
- IPC, 2
- H04L29 06
- H04L29 08
- USPC, 2
- 713176000
- 713193000