The invention relates to methods of controlling access to network content within structured documents, such as XML and “podcasting” RSS documents.
The invention provides methods of controlling access to one or more items of network content referenced within a structured document such as RSS. Embodiments of the invention are particularly suited to podcasting, where the access control is based on monetary payment, presentation of coupons or other promotional devices, or other forms of web commerce; or may limit the duration of accessibility of the content, the number of times the content can be downloaded, or other characteristics of access.
Extensible Markup Language, abbreviated XML, when used here, is understood broadly to describe a class of data objects called XML documents. XML is an application profile or restricted form of SGML, the Standard Generalized Markup Language [ISO 8879]. By construction, XML documents are conforming SGML documents.
RSS, when used here, is understood broadly to describe a family of XML file formats for web syndication used by news websites, weblogs, and other publishers of network content. The acronym stands for any or all of the following: Rich Site Summary (RSS 0.9x), RDF Site Summary (RSS 0.9 and 1.0), and Really Simple Syndication (RSS 2.x). “Atom” is another RSS-like protocol. This information is delivered as an XML file called an RSS feed, RSS stream, or RSS channel.
HTTP (for HyperText Transfer Protocol) is the primary method used to convey information on the World Wide Web.
A Uniform Resource Locator, URL or Web address, is a standardized address for some resource (such as a document or image) on the Internet or elsewhere. First created by Tim Berners-Lee for use on the World Wide Web, the currently used forms are detailed by Internet standard RFC 1738.
An HTTP cookie (usually called simply a cookie) is a packet of information sent by a server to a World Wide Web browser and then sent back by the browser each time it accesses that server. Cookies are used by a server to maintain state between otherwise stateless HTTP transactions, and are often used for authentication, personalization, shopping baskets, and other information about the user accessing the server. RSS reader software, when used here, is understood broadly to refer to software which understands and is able to render or display one or more of the RSS family of XML formats. Such software need not and often does not have the full capabilities of a browser, particularly the ability to run Java, JavaScript, Flash, etc., and to handle cookies. Podcasting is a term of art referring to a protocol built on the RSS 2.0 protocol. Originally RSS was used as a way of syndicating traditional web content, such as HTML pages, but podcasting relies on the addition of an “enclosure” tag within an item of the XML document, which includes a link to a file, which could be an audio or video file, an image or download link, or any form of content addressable by a URL. Users of MP3 players are able to subscribe to a podcast by running RSS reader software, which allows fetching the files referenced by enclosure tags within the RSS document. A single podcasting “feed” may contain multiple enclosures. Video images have also been published via podcast.
A problem with RSS and, by extension, podcasting is that, typically, an RSS feed and all the items contained within the feed are free, and have no other forms of access control applied to them. Besides the cost of creating and offering the content itself, an RSS feed may impose other burdens on the content provider: RSS reader software may “poll” the feed so frequently to see if the information in the feed has changed that the provider's servers become overburdened, especially since there may be tens of thousands of subscribers running such software. These same limitations apply to podcasts, and may become more severe as the size of the podcasted files increases with the greater use of audio, video, and other media as podcast material, as the network overhead imposed by thousands of downloads may become quite significant. Thus there is a need for applying access controls of various types to RSS feeds and the content referenced therein. Such access controls should ideally be different, potentially, for each enclosure within a feed. These forms of access control are difficult with present RSS documents, since even if the RSS feed itself were to be access-controlled, which is not usually done, there is no mechanism by which the content within the feed can be controlled, as the RSS reader software may not be a JavaScript-capable or cookie-aware browser.
The invention provides methods, apparatuses and systems by which a structured document, such as an RSS feed or podcast, containing references to one or more items of network content, may have various forms of access control applied to the content. These access controls include ensuring that the customer has paid for the content; enforcing limitations on the length of time during which the content is available, the number of downloads, the number of IP addresses from which downloads may be initiated; or any other form of control. Access control may be “chained,” i.e. carried forward from the structured document itself to the items contained within the document, so that these items, which may be subsequently retrieved by software other than a conventional browser, are still access controlled. Alternatively, access control may be applied individually to one or more of the items described by the enclosures of the structured document.
The term “server”, when used here, is broadly understood to mean any computing entity or family of such entities capable of responding to user requests over a network. The computing entities may be computer servers or server farms, general purpose digital computers, personal digital assistants, special-purpose devices such as printers or scanners with digital processors built in, or specialized hardware devices such as XML chips or XML computers; either containing storage units or making use of storage units elsewhere on the network. The family of computing entities may be geographically distributed or may be “virtual” entities within a larger entity.
The seller may wish to avoid the cost of maintaining databases of valid tokens, counting the number of times each token has been used, invalidating the token after its lifetime has expired, and other such overhead, and instead allow a third party on the web to perform these services for the seller. The invention provides methods whereby a third party may perform these token-validation services and replace the unique token with a “one-time token” whose construction is described herein. The seller authenticates the one-time token, a simple operation described herein.
The invention makes use of two forms of “token”; first, a digital identifier standing for the item of content, the user, the promotional offer, or other type of identification important to the seller; and second, a “one-time token” which is intended to be used once. A one-time token need not be secure against hackers or other parties capable of intercepting the traffic, since even if the token is copied or stolen, the token cannot be used again. For the one-time token, the seller recipient 300 of such token authenticates that the token is valid, as explained below.
A one-time token is constructed as follows:
token=hash(concatenate(seed, target, key, timestamp)), where:
hash( ) is any suitable one-way function, such as the MD5 function as described in RFC 1321.
concatenate( ) is a string concatenation function, e.g. concatenate(“A”, “B”)==“AB”
seed=any randomly generated string
target=an identifier string to verify, e.g. the URL of the item
key=a secret shared between the parties, e.g. the intermediary 330 and seller 300
timestamp=a time window during which the token is valid. Often the timestamp is derived from the Unix time UT (the number of seconds since 00:00:00 UTC on Jan. 1, 1970) and an agreed-upon time-to-live (TTL), using the formula:
timestamp=UT−UT % TTL; for example, if UT were 93 seconds and TTL were 15, then timestamp=(93−93 mod 15), or 90, and remains 90 until UT reaches 105, so that the timestamp remains the same during the entire time window.
For example, if intermediary 330 desired to construct a one-time token to network content addressed by the URL ‘http://seller.com/premium-url/’, the target would be ‘http://seller.com/premium-url/’ and the one-time token would be encoded in a URL as ‘http://seller.com/premium-url/?seed=xxx&token=yyyy’, where ‘yyyy’ represents the result of the above calculation; or ‘http:seller.com/premium-url/xxx/yyyy’. The seller's computer 300 validates this URL, using the method of
In
The client software 100 is thus directed to the net address of the host component of the URL 120. The logic check 160 is executed, wherein the unique token is validated as to the form of access control desired by the seller: checking payment status, number of uses, etc., using the database 370, a validation process illustrated in
The generation process at 180 in
Although structured documents may be podcasts, which rely on the RSS 2.0 specification which is based on XML, one skilled in the art will recognize that other forms of structured documents could also be used to publish multiple content items. A media syndication document could be built from another XML variant, from a variant of HTML such as CHTML or XHTML, the Wireless Appliance Protocol (WAP), or any other hierarchically structured document format.
Foregoing described embodiments of the invention are provided as illustrations and descriptions. They are not intended to limit the invention to precise form described. In particular, it is contemplated that functional implementation of invention described herein may be implemented equivalently in hardware, software, firmware, and/or other available functional components or building blocks, and that networks may be wired, wireless, or a combination of wired and wireless. Other variations and embodiments are possible in light of above teachings, and it is thus intended that the scope of invention not be limited by this Detailed Description, but rather by Claims following.
This application claims priority to U.S. Provisional Patent Application No. 60/680,263 filed on May 11, 2005.
Number | Name | Date | Kind |
---|---|---|---|
6360254 | Linden et al. | Mar 2002 | B1 |
6484197 | Donohue | Nov 2002 | B1 |
6505300 | Chan et al. | Jan 2003 | B2 |
6715082 | Chang et al. | Mar 2004 | B1 |
6718328 | Norris | Apr 2004 | B1 |
6779115 | Naim | Aug 2004 | B1 |
6868403 | Wiser et al. | Mar 2005 | B1 |
6948061 | Dierks | Sep 2005 | B1 |
7454356 | Fields et al. | Nov 2008 | B2 |
7603469 | Fletcher et al. | Oct 2009 | B2 |
7962415 | Gupta et al. | Jun 2011 | B2 |
8005224 | Nakhjiri et al. | Aug 2011 | B2 |
8051491 | Cavage et al. | Nov 2011 | B1 |
8095972 | Floyd et al. | Jan 2012 | B1 |
8281136 | Ramakrishna | Oct 2012 | B2 |
8316091 | Hirvela et al. | Nov 2012 | B2 |
8333317 | Buer et al. | Dec 2012 | B2 |
8447858 | Venkatraman | May 2013 | B1 |
20010045451 | Tan et al. | Nov 2001 | A1 |
20020177433 | Bravo et al. | Nov 2002 | A1 |
20030037070 | Marston | Feb 2003 | A1 |
20030061250 | Fujita et al. | Mar 2003 | A1 |
20030099353 | Goh et al. | May 2003 | A1 |
20030120943 | Hughes | Jun 2003 | A1 |
20040243475 | Aronsson et al. | Dec 2004 | A1 |
20050060389 | Cherkasova et al. | Mar 2005 | A1 |
20060059346 | Sherman et al. | Mar 2006 | A1 |
20060085862 | Witt et al. | Apr 2006 | A1 |
20060095779 | Bhat et al. | May 2006 | A9 |
20060184997 | La Rotonda et al. | Aug 2006 | A1 |
20060190616 | Mayerhofer et al. | Aug 2006 | A1 |
20060225138 | Toyohara et al. | Oct 2006 | A1 |
20070219908 | Martinez | Sep 2007 | A1 |
20080183628 | Oliver et al. | Jul 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20060259492 A1 | Nov 2006 | US |
Number | Date | Country | |
---|---|---|---|
60680263 | May 2005 | US |