Controlling frequency of data transfer

A method for controlling frequency of data transfer of an electronic device is disclosed. A time stamp is fetched over a network connection, wherein the time stamp is not modifiable at the electronic device. The time stamp is stored at the electronic device. In response to a request to transfer digital content, it is determined whether a predetermined time interval since a most recent transfer of the digital content has elapsed.

FIELD

The field of the present technology relates to data management.

BACKGROUND

Since the advent of the personal computer, transferring large amounts of digital content has become much easier. Digital content providers have become concerned that computer users may transfer its copyrighted or published materials to others in mass quantities. Consequently, in order to counteract a user's ability to transfer digital content, providers have used management schemes which slow or stop the rate of data transfer.

For example, one digital rights mechanism which attempts to control both access to and usage of digital data includes the modification of a digital media player's software to include cryptographic controls. Another management mechanism is that of software/firmware-embedded hardware controls which interact with an operating system and/or media player software. Legislation and regulations have also been enacted to help manage access to and usage of digital data or hardware.

However, there exist many limitations to the current state of technology with respect to data management mechanisms. For example, cryptographic controls may be reversed engineered. Additionally, software/firmware-embedded hardware controls are vulnerable to attack via tampering. Furthermore, legislation and regulations do not always have the intended affect of reducing or stopping the rate of data transfer.

SUMMARY

Various embodiments of the present invention, a method for controlling frequency of data transfer of an electronic device, are described. In one embodiment, a time stamp is fetched over a network connection, wherein the time stamp is not modifiable at the electronic device. The time stamp is stored at the electronic device. In response to a request to transfer digital content, it is determined whether a predetermined time interval since a most recent transfer of the digital content has elapsed.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments of the present technology, examples of which are illustrated in the accompanying drawings. While the technology will be described in conjunction with various embodiment(s), it will be understood that they are not intended to limit the present technology to these embodiments. On the contrary, the present technology is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope the various embodiments as defined by the appended claims.

Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present technology. However, the present technology may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present embodiments.

Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present detailed description, discussions utilizing terms such as “fetching”, “storing”, “determining”, “establishing”, “accessing”, “retrieving”, “comparing”, “replacing”, “blocking”, or the like, refer to the actions and processes of a computer system, or similar electronic computing device. The computer system or similar electronic computing device manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices. The present technology is also well suited to the use of other computer systems such as, for example, optical and mechanical computers.

The discussion will begin with an overview of the process of managing data transfers and its resulting problems. The discussion will then focus on embodiments of the present technology that provide a data transfer rate reducer for controlling frequency of data transfer of an electronic device. The discussion will then focus on the method for controlling frequency of data transfer of an electronic device.

Overview

With the advent of personal computers, it has become much easier for digital data or hardware to be copied and transferred to another. Consequently, Digital Rights Management systems have been developed to manage and/or reduce this copying. “Digital Rights Management” (DRM) is a term that refers to any of several technologies used by publishers or copyright owners to control access to and the usage of digital data or hardware. Additionally, DRM also refers to restrictions associated with a specific instance of a digital work or device.

One DRM mechanism developed to reduce the rate of copying is ‘friction’. Friction requires that a pre-determined minimum amount of time must have elapsed between the last transfer of digital content and the current attempt to transfer the same digital content. If this pre-determined time has not elapsed, the transfer of the digital content will not be permitted. Friction necessitates the presence of a clock in order to determine if a certain time has elapsed.

Generally, when one electronic device is connected to another electronic device on-line, the party mediating the transfer (such as the digital content provider) may control the clock used to determine the passage of time. Additionally, as part of its DRM policy, the party mediating the transfer may also specify another party to have a trusted clock which may be used to determine the passage of time.

For example, suppose friction requires that a party can only transfer certain digital content once every hour. Once the hour has passed, the party may transfer the digital content. However, the party has to wait another hour before another copy can be transferred. Consequently, it takes a thousand hours to transfer a thousand copies. The presence of a clock is an integral part of friction.

However, during an off-line transfer of digital content, a digital content provider may no longer have control over these transfers or which clock may be used. Even though the digital content provider has set a friction time interval as part of its DRM policy, a party may access its computer's own internal clock to determine the passage of time. This approach is problematic if the system clock is under the control of a party who may wish to violate the transfer restrictions.

For example, friction permits a party to transfer certain digital content once every hour. The party then resets the clock relied upon to an hour ahead, and then transfers the digital content. The benefit of friction has been lost because the party reset a clock to an hour ahead instead of waiting for the hour to pass. Additionally, some devices may not even have a clock.

Even though a tamper resistant clock can be provided on an electronic device, such a clock would be a constant power drain. Additionally, these tamper resistant clocks need a way in which to be reset should the device's power fail. Such a mechanism to reset this clock could be used to circumvent the transfer restrictions.

Embodiments of the present technology provide a method for controlling the frequency of data transfer of an electronic device without a secure local clock. For example, the present technology initially fetches a time stamp over a network connection, wherein the time stamp is not modifiable at the electronic device. The time stamp is stored at the electronic device. Then, in response to a request to transfer a digital content, the present technology determines whether a predetermined time interval since a most recent transfer of the digital content has elapsed.

Architecture

With reference now to100ofFIG. 1, a block diagram of one embodiment of data transfer rate reducer100for controlling the frequency of data transfer of an electronic device is shown. In one embodiment, data transfer rate reducer100comprises time stamp fetcher110, time stamp store125, and time interval determiner130. Line115represents the network connection by which time stamp117is being sent from trustworthy clock120to data transfer rate reducer100. In one instance of the present technology, network is defined as two or more computers connected together to form a network. Data transfer rate reducer100may be integrated within electronic device105, or communicatively coupled thereto. For example, electronic device105may be a digital music player, such as an MP3 player. However, it should be appreciated that electronic device105may include any type of electronic device that is capable of transferring data.

In one embodiment, time stamp fetcher110is configured to fetch time stamp117over a network connection from trustworthy clock120, wherein time stamp117is not modifiable at electronic device105. Time stamp117is a representation of the current time as calculated by trustworthy clock120, and does not change once in time stamp117form. It should be appreciated that in various embodiments time stamp117is unforgettable, e.g., tamper resistant.

In one embodiment, time stamp117is comprised within a digital certificate. In another embodiment, time stamp117is for storage within a counter stored in a portion of a memory device of electronic device105or some other electronic device. The memory device which includes time stamp117may be comprised within a trusted platform module (TPM) microcontroller.

For example, an electronic device may contain a TPM on one of its computer chips. That TPM stores secured information such as time stamp117within its memory module, and is not accessible to the owner of electronic device105. Time stamp117may be in the form of a digital certificate, a counter, or some other fetchable form.

Referring now toFIG. 2and toFIG. 1, in one instance of the present technology, time stamp fetcher110comprises Internet connector200, trusted time stamp generator accessor215, and time stamp retriever220. Time stamp fetcher110and/or any of its components may be communicatively coupled to Internet210. Line225represents the Internet connection by which time stamp fetcher110and its components therein use to connect, access, and retrieve time stamp117.

In one embodiment, Internet connector200is configured to establish an Internet connection. Trusted time stamp generator accessor215is configured to access a trusted time stamp generator over the Internet connection which was established by Internet connector200. A trusted time stamp generator is an electronic device or part of an electronic device which is recognized by the digital content provider as generating an authorized time.

For example, the digital content provider may embed a list of one or more authorized time providers within the digital content itself, electronic device105, or data transfer rate reducer100. The authorized time provider will generate time stamp117that is accessible by data transfer rate reducer100and/or trusted time stamp generator accessor215.

In one instance of the present technology, time stamp retriever220is configured to retrieve time stamp117from the trusted time stamp generator. It is appreciated that each module within time stamp fetcher110, (such as Internet connector200, trusted time stamp generator accessor215, and time stamp retriever220) may be communicatively coupled to any other module within time stamp fetcher110and/or Internet210.

Referring again toFIG. 1, in one embodiment, time stamp store125is configured to store time stamp117at an electronic device. While time stamp117is being stored, its contents do not change and are not modifiable.

In one embodiment, time interval determiner130is configured to determine whether a predetermined time interval since a most recent transfer of a first digital content has elapsed, in response to a request to transfer the first digital content. The pre-determined time interval may be embedded within data transfer rate reducer100, electronic device105, or within the digital content itself. The pre-determined time interval may even be received from the content provider during the process of attempting to transfer data.

For example, the most recent transfer of digital content may be the last transfer of the first digital content which electronic device105made. In another example, the most recent transfer of digital content may be the original implantation of the digital content onto electronic device105or data transfer rate reducer100. Furthermore, in another instance, a transfer blocker is configured to block a transfer of the digital content if the predetermined time interval has not elapsed.

In one embodiment of the present technology, the request to transfer digital content to second electronic device150further comprises time stamp comparer135and time stamp replacer140. Time stamp comparer135is configured to compare time stamp117to a second time stamp145stored at second electronic device150, wherein the time stamp145is not modifiable at second electronic device150. It is appreciated that time stamp145may not be modified by electronic device105.

Additionally, line155represents the pathway of time stamp145being sent from second electronic device150to data transfer rate reducer100or to any component within data transfer rate reducer100.

In one instance, second electronic device150has time stamp145which is a trusted time stamp authorized by the digital content provider. It is appreciated that second electronic device150may have performed the method of controlling frequency of data transfer of an electronic device in order to receive its time stamp145. Additionally, second electronic device150may have a data transfer rate reducer of its own or be communicatively coupled to a data transfer rate reducer100.

In another embodiment, time stamp replacer140is configured to replace the time stamp117with time stamp145if time stamp145is older than time stamp117. The term “older” indicates that the time on time stamp145is more recent than the time on time stamp117. It is appreciated that the term “older” may also indicate that the time on any other time stamp from a trustworthy clock is more recent than time stamp117.

Operation

With reference now toFIG. 3, a flowchart300of an example method for controlling frequency of data transfer of an electronic device is shown in accordance with one embodiment of the present technology.

Referring now to305ofFIG. 3and toFIG. 1, one embodiment fetches time stamp117over a network connection, wherein time stamp117is not modifiable at electronic device105. For example, time stamp fetcher110fetches time stamp117from trustworthy clock120over network connection115.

Referring now to305ofFIG. 3,FIG. 1, andFIG. 2, in one embodiment, fetching time stamp117over network connection115comprises establishing an Internet connection, accessing a trusted time stamp generator over an internet connection, and retrieving time stamp117. For example, Internet Connector200may establish an internet connection. Trusted time stamp generator accessor215may access a trusted time stamp generator over internet connection225. Additionally, time stamp retriever220may retrieve time stamp117from a trusted time stamp generator.

Another embodiment of the present invention blocks the transfer of the digital content if the predetermined time interval has not elapsed.

As already described herein, time stamp117may be comprised within a digital certificate. Additionally, time stamp117may be comprised within a counter that is stored in a portion of a memory device of electronic device105that is inaccessible by a user. It is appreciated that the counter that is stored in a portion of a memory device may be within electronic device105, or within another electronic device.

Furthermore, as already described herein, the memory device is comprised within a TPM microcontroller. Additionally, TPM may be a tamper resistant TPM microcontroller.

In one embodiment, the request for transferring digital content to second electronic device150further comprises comparing time stamp117to a second time stamp145at second electronic device150, wherein second time stamp145is not modifiable at second electronic device150. Furthermore, if time stamp117is older than second time stamp145, one embodiment replaces time stamp117with second time stamp145.

Referring to310ofFIG. 3andFIG. 2, one embodiment stores time stamp117at electronic device105. As shown by315ofFIG. 3, another embodiment determines whether a predetermined time interval since a most recent transfer of digital content has elapsed, in response to a request to transfer digital content.

Example Computer System Environment

With reference now toFIG. 4, portions of the technology for providing a method for controlling frequency of data transfer of an electronic device are composed of computer-readable and computer-executable instructions that reside, for example, in computer-usable media of a computer system. That is,FIG. 4illustrates one example of a type of computer that can be used to implement embodiments, which are discussed below, of the present technology.

FIG. 4illustrates an example computer system400used in accordance with embodiments of the present technology. It is appreciated that system400ofFIG. 4is an example only and that the present technology can operate on or within a number of different computer systems including general purpose networked computer systems, embedded computer systems, routers, switches, server devices, consumer devices, various intermediate devices/artifacts, stand alone computer systems, and the like. As shown inFIG. 4, computer system400ofFIG. 4is well adapted to having peripheral computer readable media402such as, for example, a floppy disk, a compact disc, and the like coupled thereto.

System400ofFIG. 4includes an address/data bus404for communicating information, and a processor406A coupled to bus404for processing information and instructions. As depicted inFIG. 4, system400is also well suited to a multi-processor environment in which a plurality of processors406A,406B, and406C are present. Conversely, system400is also well suited to having a single processor such as, for example, processor406A. Processors406A,406B, and406C may be any of various types of microprocessors. System400also includes data storage features such as a computer usable volatile memory408, e.g. random access memory (RAM), coupled to bus404for storing information and instructions for processors406A,406B, and406C.

System400also includes computer usable non-volatile memory410, e.g. read only memory (ROM), coupled to bus404for storing static information and instructions for processors406A,406B, and406C. Also present in system400is a data storage unit412(e.g., a magnetic or optical disk and disk drive) coupled to bus404for storing information and instructions. System400also includes an optional alphanumeric input device414including alphanumeric and function keys coupled to bus404for communicating information and command selections to processor406A or processors406A,406B, and406C. System400also includes an optional cursor control device416coupled to bus404for communicating user input information and command selections to processor406A or processors406A,406B, and406C. System400of the present embodiment also includes an optional display device418coupled to bus404for displaying information.

Referring still toFIG. 4, optional display device418ofFIG. 4may be a liquid crystal device, cathode ray tube, plasma display device or other display device suitable for creating graphic images and alphanumeric characters recognizable to a user. Optional cursor control device416allows the computer user to dynamically signal the movement of a visible symbol (cursor) on a display screen of display device418. Many implementations of cursor control device416are known in the art including a trackball, mouse, touch pad, joystick or special keys on alpha-numeric input device414capable of signaling movement of a given direction or manner of displacement. Alternatively, it will be appreciated that a cursor can be directed and/or activated via input from alpha-numeric input device414using special keys and key sequence commands.

System400is also well suited to having a cursor directed by other means such as, for example, voice commands. System400also includes an I/O device420for coupling system400with external entities. For example, in one embodiment, I/O device420is a modem for enabling wired or wireless communications between system400and an external network such as, but not limited to, the Internet. A more detailed discussion of the present technology is found below.

Referring still toFIG. 4, various other components are depicted for system400. Specifically, when present, an operating system422, applications424, modules426, and data428are shown as typically residing in one or some combination of computer usable volatile memory408, e.g. random access memory (RAM), and data storage unit412. However, it is appreciated that in some embodiments, operating system422may be stored in other locations such as on a network or on a flash drive; and that further, operating system422may be accessed from a remote location via, for example, a coupling to the internet. In one embodiment, the present technology, for example, is stored as an application424or module426in memory locations within RAM408and memory areas within data storage unit412. The present technology may be applied to one or more elements of described system400. For example, a method for controlling frequency of data transfer of an electronic device may be applied to operating system422, applications424, modules426, and/or data428.

The computing system400is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the present technology. Neither should the computing environment400be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the example computing system400.