The invention generally relates to electronic data transfer. More particularly, the invention relates to a method and apparatus for using an integrated circuit card to facilitate downloading user reusable content from a remote server.
Software piracy or the illegal copying of software applications is a common problem. After a customer purchases a software application on a set of disks or CD-ROM, the customer may provide the source disks or CD-ROM to another individual. If this other individual copies the software application into their computer, the software publisher is denied a potential sale.
To exacerbate the software piracy problem, computer networks, such as broadcast networks, enhance the transfer of information between a local terminal and a remote site. These networks enable millions of users to watch cable television or use the Internet to communicate with other users and the like. Such a broadcast network facilitates software and other content distribution via the network. However, authorizing downloads of the content is not a simple task in a broadcast network having a large number of users.
Therefore, there is a need to provide a method and apparatus to provide a secure technique to market and distribute software applications in a broadcast network environment.
The invention overcomes the disadvantages associated with the prior art by providing a method and apparatus that uses an integrated circuit card to facilitate downloading reusable content maintained on a server into a terminal. Such reusable content includes any data file, multimedia information, application software, and the like that can be stored by a user and reused by the user. The term or the usability of the content may be limited or unlimited.
Specifically, the method comprises the steps of verifying that an entitlement contained in the integrated circuit card, such as a smart card, is correct for receiving specific reusable content from a server and, if the entitlement is correct, downloading the content from the server into a memory within the terminal.
The apparatus comprises a terminal coupled to a remote server, via a communications network. The terminal comprises a processor for processing the download of the specific reusable content from the server, a memory for storing the downloaded content, a smart card and an interface circuit for enabling the server to download a particular content into the terminal when an appropriate smart card is inserted into the interface.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.
The system 100 may have two general embodiments depending on the type of computer network 108 that is utilized. In a first embodiment, the computer network 108 comprises a point-to-point network such that the terminal 102 receives specific user content that is addressed to the terminal 102 from the remote server 106. In a second embodiment, the computer network 108 comprises a broadcast network such that the terminal 102 receives software or reusable content that is simultaneously transmitted to a plurality of terminals from the remote server 106. A user of either embodiment may download software or other reusable content from the remote server 106. The software or reusable content may be encrypted or unencrypted. Additionally, the reusable content includes any data file, multimedia information, and the like that is stored and reused by the user. The content may be reused in either a limited or unlimited manner.
The terminal 102 generally comprises a central processing unit (CPU) 114, support circuits 116 and a memory 118. The terminal 102 may comprise a set-top terminal (also commonly referred to as a set-top box), a computer terminal or any other device capable of receiving a smart card 104 or another equivalent conditional access device that facilitates conditional access to the reusable content that is available on the network. Each of these types of terminals 102 may be utilized in the broadcast or point-to-point network 108.
The terminal 102 is coupled to the remote server 106 via the network 108. More specifically, the terminal 102 is coupled to the network 108 via signal path S1 and the network 108 is coupled to the server 106 via signal path S2. The network 108 is typically a broadcast network or a point-to-point network depending on the embodiment of the system 100. The server 108 is the source of software applications or other reusable content that are available for downloading.
The physical implementations of signal paths S1 and S2 include but are not limited to telephone lines, coaxial (coax) cable, optical fibers or a hybrid fiber-coax cable system. In addition, various interface devices may couple the terminal 102 to the network 108 along signal path S1. Examples of these interface devices may include but are not limited to a digital subscriber line (DSL) modem, a cable modem, a satellite receiver, a microwave receiver, a wireless modem and a cable tuner. As such, the system 100 transmit data and control signals between the terminal 102 and the network 108 via signal path S1 as well as between the network 108 and the server 106 via signal path S2.
The terminal 102 is coupled to an input device 110 via signal path S3 and an output device 112 via signal path S4. The type of input and output devices 110 and 112 depend on the embodiment of the system 102. For example, if the terminal 102 is a computer terminal, then the input device 110 may comprise a keyboard and mouse, and the output device 112 may comprise a computer monitor. If the terminal 102 is a set top terminal, then the input device 110 may comprise a channel selector or a remote control device, and the output device 112 may comprise a television set. Signal paths S3 and S4, which are physically implemented with basic television or computer cables, carry control and data signals between the terminal 102 and input device 110 as well as between the terminal 102 and the output device 112.
The terminal 102 receives the smart card 104 via a connector in the support circuit 116. On a data transfer level, the support circuit 116 couples the smart card 104 via signal path S5. The smart card 104 includes a database 126 or memory for storing entitlements. The entitlements, typically known as “entitlement management messages” (EMM), are associated with particular downloadable software applications or other reusable content. Each entitlement represents a future right to download a software application or other reusable content into the terminal 102. Alternatively, each entitlement may represent a right to decrypt and/or use previously encrypted software or reusable content transmitted over a broadcast network 108. As such, these entitlements provide security in the marketing and distribution of software applications from the remote server 106.
Entitlements generally occupy less of the database 126 than its corresponding software application or other reusable server content, each smart card 104 may store many different entitlements. The entitlements are loaded into the smart card 104 prior to downloading the corresponding application 122 or other reusable content. For example, the smart card 104 may contain pre-loaded entitlements that are included with the purchase of the smart card 104. Alternatively, the smart card 104 is a blank smart card. In this case, the user must download the entitlement from the remote server 106 during the on-line purchase of the corresponding application 122 or other reusable content using a single smart card 104. This provides enormous flexibility, as the user may potentially download hundreds of software applications or other reusable server content using a single smart card 104.
Different types of entitlements are contemplated to be within the scope of the invention. One type of entitlement facilitates a limited use of software or reusable content. For example, the entitlement may expire once the software is used a pre-determined number of times or after a period of time, for example, 24 hours. Another type of entitlement facilitates an unlimited license to the use of the downloaded content. In this case, there is no use restriction once the application 124 is downloaded into the terminal 102. Other types of entitlements and applications thereof are contemplated and are considered to be within the scope of the invention.
The CPU 114 generally processes the data and control signals of the terminal 102. As such, the CPU 114 processes data and control signals between the memory 118, the remote server 108, the smart card 104, the input device 110 and the output device 112. The exact type of CPU 114 depends on the embodiment of the system 100. The CPU 114 couples the memory 118 via signal path S6 and couples the support circuits 116 via signal path S7. Signal paths S6 and S7, which may comprise data and control signals, are bidirectional as signals travel between the CPU 114 and the memory 118 as well as between the CPU 114 and the support circuit 116.
The support circuits 116, also known as an interface circuit, interfaces the CPU 114 with the smart card 104, the input device 110, the output device 112 and the remote server 106. The support circuit 116 generally comprises a variety of components, including a data bus, a control bus, a smart card drive, a network interface module, input ports and output ports. The support circuit 116 generally provides efficient transfer of data and control signals between the smart card 104, the terminal 102 and the remote server 106.
The memory 118 stores a variety of software modules in the terminal 102. The memory may comprise a RAM, a ROM or a combination thereof. The software modules may include a smart card manager 120, an application program 122 and an application launcher 124. Other well-known software modules, such as an operating system, are included but not shown in
The smart card manager 120 coordinates software downloads from the remote server 106 to the memory 118. More importantly, the smart card manager 120 processes the “entitlements” from the smart card 104. The entitlement allows a user to download the software application 122 or other reusable content from the server 106 or to decrypt the previously-encrypted software application 122. The smart card manager 120 generally processes the entitlement information in the database 126 within the smart card 104 in order to determine whether the terminal 102 is authorized to download a specific application from the server 106. In addition, the smart card manager 120 may coordinate the download of entitlements during the on-line purchase of a corresponding software application 124 or other reusable content.
The smart card manager 120 may process the decryption of the previously encrypted software application 122. The smart card manager 120 may decrypt the software application 122 “on the fly,” while downloading the application 122 into the memory 118. In this situation, any user may download the encrypted application 122 via the broadcast network 108 but only users having the entitlement may decrypt and use the decrypted application 122. Alternatively, the smart card manager 120 may decrypt the application 122 after previously downloading the encrypted version into the memory 118. In this case, the smart card manager 120 may decrypt and use the application 122 until all the entitlements in the database 126 for a particular application 122 are exhausted.
The application 122 is the particular software program or other reusable server content downloaded from the remote server 106. The application 122 may comprise but is not limited to software applications, such as word processing, banking, credit, and stock trading, or broadcast videos such as a movie. Once downloaded, the application 122 is typically stored in the memory 118. The application 122 includes any data file, multimedia information, software, and the like that can be stored and reused by the user. The term or usability of the application 122 may be limited or unlimited.
The application launcher 124 executes or starts the application 122. The application launcher 124 may link with the smart card manager 120 to determine the validity of the application software 122, which may be encrypted or otherwise protected. Variations of the application launcher 124 may exist as the user may initiate the application launcher 124 using an icon displayed on the output device 112 or the smart card manager 120 may initiate the application launcher 124.
The smart card 104 comprises a database 126 for receiving and storing entitlements associated with various software applications 122 or other reusable server content. Each entitlement or entitlement management message (EMM) is unique to a particular application 122 or reusable content that the system 100 may download. The entitlement may provide the user with permission to download the application 122 or reusable content from the remote server 106. Alternatively, the entitlement may allow the user to decrypt the previously encrypted application 122 or reusable content transmitted from the server 106 via the broadcast network 108.
One variation of the smart card 104 may comprise a “blank” smart card 104 that may receive entitlements to a software application 122 or other reusable content. The entitlements are downloaded into the smart card 104 from the remote server 106. Another variation of the smart card 104 may include pre-loaded entitlements of specific software applications or other reusable content.
At step 220 of the routine 200, the user inserts the smart card 104 into the terminal 102. This step assumes that the user has already activated the terminal 102 and coupled this terminal 102 to the remote server 106 via the network 108 or Internet connection. As such, this step 220 couples the smart card 104 to the remote server 106 via the terminal 102 and the network 108.
The routine 200 proceeds to step 230 where the user selects a particular application 122 to purchase or download. The user may purchase the application 122 or other reusable content using a blank or preloaded smart card 104. If the blank or preloaded smart card 104 does not presently contain the correct entitlement of the application 122, the user must purchase the application 122 or other reusable content before obtaining the correct entitlement associated with the application 122 or other reusable content. If the smart card 104 contains the correct entitlement associated with the application 122, the user may download the application 122 or other reusable content from the remote server 106.
At step 240 of the routine 200, the smart card manager 120 reads the database 126 within the smart card 104 to determine whether the smart card 104 contains the correct entitlement associated with the desired application 122 or content. If the smart card 104 contains the entitlement for the application 122, then the routine 200 proceeds to step 250. This may occur if the smart card 104 is pre-loaded with the entitlement for the desired application 122 or reusable content. However, if the smart card 104 does not contain the entitlement of the application 122, then the routine 200 proceeds to step 260. As such, the routine 200 proceeds to step 260 if the smart card 104 is blank or does not contain the entitlement for the desired application 122.
At step 250, the smart card manager 120 determines whether the entitlement is expired. Such an expiration date may exist in a trial or shareware version of a software application or a video that is available during a particular month. If the reusable content is video, the entitlement may limit viewing of the video during a particular period. If the entitlement is expired, then the routine 200 proceeds to step 260. If the entitlement is not expired or still active, then the routine 200 proceeds to step 270, where the user may download the application 122.
Therefore, if the entitlement in database 126 is not for the desired application 122 or reusable content, or if the entitlement is expired or no longer active, then the routine 200 requires the user to purchase the application 122 or reusable content at step 260. However, if this entitlement is for the desired application 122 or reusable content, and is active, then the routine 200 allows the user to download the desired application 122 or reusable content at step 270.
At step 260, the routine 200 determines whether the user wishes to purchase the application 122. This message is generally displayed to the user on the output device 112. If the user decides to purchase the application 122 or other content, the routine 200 proceeds to step 280. If the user decides not to purchase the application 122 or other reusable content, the routine 200 proceeds to step 300, where the user may no longer obtain the entitlement for the application 122.
At step 280, the user purchases the application 122 using, for example, a credit card or some other payment method. Then, the routine 200 proceeds to step 290, where the user downloads the entitlement from the server 106 into the database of the smart card 104. After the entitlement is downloaded into the smart card 104, the routine 200 proceeds to step 270 to determine whether the user desires the download the application 122.
If the user decides to download the application 122, the routine 200 proceeds to step 310. If the user decides against downloading the application 122, the routine 200 proceeds to step 300, where the server 104 will no longer download the application 122 into the memory 118 of the terminal 102.
At step 310, the routine 200 generally determines whether the memory 118 in the terminal 102 is sufficient to receive the application 122 or other reusable content. If the memory 118 is sufficient to receive the application 122, the routine 200 proceeds to step 320. However, if there is not enough memory 118 to store or receive the application 122, then the routine 200 proceeds to step 300, and the user may not download the application 122.
At step 320, the smart card manager 120 deducts the entitlement from the database 126 of the smart card 104. The nature of this deduction depends on the type of entitlement. In the case of a typical software download, the smart card manager 120 simply deducts the entitlement for the application 122. However, if the system 100 involves viewing video a particular number of times, then the smart card manager adjusts the entitlement to reflect the current usage. As such, the smart card manager 120 may fully or partially deduct the entitlement. After this step 320, the routine 200 proceeds to step 330, where the smart card manager 120 processes the download of the application 122 or other reusable content from the server 106 into the memory 118 of the terminal 102. If the application 122 is in encrypted form, then the smart card manager 120 may decrypt the application 122 during download into memory 118.
After completing the routine 200, the user may use or view the application 122 or other reusable content. The user activates the application launcher 124, which starts or executes the application 122. The user may select an icon on the output device 112 to activate this application launcher 124. Alternatively, the smart card manager 120 may automatically start the application launcher 124.
Although various embodiments, which incorporate the teachings of the present invention have been shown and described in detail herein, those skilled in the art may readily devise many other varied embodiments that still incorporate these teachings.
This application claims the benefit under 35 U.S.C. §365 of International Application PCT/US00/18894, filed Jul. 13, 2000, which was published in accordance with PCT Article 21(2) on Jan. 25, 2001 in English; and which claims benefit of U.S. provisional application Ser. No. 60/143,842 filed Jul. 15, 1999.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US00/18894 | 7/13/2000 | WO | 00 | 1/9/2002 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO01/06469 | 1/25/2001 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6055314 | Spies et al. | Apr 2000 | A |
6233683 | Chan et al. | May 2001 | B1 |
6460076 | Srinivasan | Oct 2002 | B1 |
6950941 | Lee et al. | Sep 2005 | B1 |
Number | Date | Country |
---|---|---|
788080 | Aug 1997 | EP |
915410 | May 1999 | EP |
9719395 | May 1997 | WO |
WO 9719395 | May 1997 | WO |
9843430 | Oct 1998 | WO |
WO 9843430 | Oct 1998 | WO |
9912088 | Mar 1999 | WO |
WO 9912088 | Mar 1999 | WO |
Number | Date | Country | |
---|---|---|---|
60143842 | Jul 1999 | US |