Abstract:
The invention is a method of managing access to a plurality of data from a server by a client through a point-to-point link. Each of the data is reachable through a set of URIs that belongs to an index list. The method comprises the step of inserting a request to a control message in the index list. The control message applies to a data reachable through one URI belonging to the index list.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to methods of protecting access to data on a network. It relates particularly to methods of protecting access to data sent between two entities through the Internet network. 
       PRIOR ART 
       [0002]    On a network, data is generally provided by a server through a dedicated Uniform Resource Identifier, also named URI. In particular Uniform Resource Locator (URL) is a kind of URI. The exchanges of data between a client and a server over a network may require the protection of the data conveyed through the network. The security of the exchanged data may rely on the public key scheme. The data protection may also be carried out with a session key which is known by both sides. In such a case the session key is called symmetric key. For high secure sessions, several session keys may be successively used during a unique session. 
         [0003]    In the domain of TV over IP, a large amount of data must be transported over Internet network. Streaming refers to the technology allowing delivery of real-time or “Video On Demand” services—such as video or audio—from a server to a client over a network. There are several protocol standards available to do streaming over an IP network. The streaming over Internet requires specific means which allows guaranteeing the Quality of Service (QoS). HTTP streaming is a particular case of Internet streaming where the media (video, audio) traffic is carried over the HTTP protocol. This allows going naturally through firewalls and Network Address Translation (NAT) gateways. In HTTP Streaming, a media file, like movie, is split into a number of smaller media files on the server. The HTTP client recovers the initial file by consecutive HTTP requests to the web streaming server. Web streaming is becoming a leading streaming technology fostered by the mains actors in this domain. Content delivery networks (CDN) consist in a network of cache servers spread over the edge of Internet. The role of these servers is to cache frequently accessed and/or big content in places closer to the clients accessing it in order to improve QoS. The CDN framework allows a short lead-time for requests. The initial server redirects requests to the optimal cache servers. In the case of web streaming over a CDN, the consecutive files are cached possibly over several edge servers. With the growth of video services over the Internet, CDN are more and more used. 
         [0004]    The main solution for service protection is encryption between the server and the client. This can be done using classical Internet solutions such as Internet Protocol Security (IPSEC), Transport Layer Security (TLS), or any relevant known security mechanism. In case of web streaming, the natural solution for encryption is to deliver the content over a TLS session. But this solution does not scale if the server has to manage 10s of thousands to million of concurrent secure one-to-one connections. Moreover there is a need for providing a secure streaming mechanism over Internet compatible with CDNs. 
       SUMMARY OF THE INVENTION 
       [0005]    An object of the invention is to solve the above mentioned technical problem. 
         [0006]    The object of the present invention is a method of managing access to a plurality of data from a first entity by a second entity through a point-to-point link. Each of said data is reachable through a set of URIs that belongs to an index list. The method comprises the step of inserting a request to a control message in the index list. Said control message applies to a data which is reachable through one URI that belongs to the index list. 
         [0007]    Advantageously, the control message may apply to a set of data which are reachable through a set of URIs belonging to the index list. 
         [0008]    The request to control message may be an URI targeting a remote server. 
         [0009]    Advantageously, the second entity may comprise a personal token. In response to said request the remote server may send both a control message and a re-direct request to an URI targeting a local server embedded in the personal token. 
         [0010]    Said personal token may be a smart card. 
         [0011]    Alternately, the second entity may comprise a personal token and the request to a control message may be an URI targeting a local server which is embedded in the personal token. 
         [0012]    Advantageously, said data intended to be distributed may be web streaming content. The control message may be coupled with a descrambling key. 
         [0013]    Another object of the invention is a method of managing access to a plurality of data from a first entity by a second entity through a point-to-point link. Each of said data is reachable through a set of URIs belonging to an index list. Said second entity comprises a personal token which embeds a local server. The method comprises the step of inserting a request to a descrambling key in the index list. Said request to a descrambling key is an URI targeting the local server. 
         [0014]    Another object of the invention is a streaming Web server intended to distribute a plurality of data to a distant entity through a point-to-point link. The streaming web server comprises an index list. Each of said data is reachable through a set of URIs belonging to the index list. The index list comprises a request to a control message. Said control message applies to a data reachable through one of the URIs belonging to the index list. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]    Other characteristics and advantages of The present invention will emerge more clearly from a reading of the following description of a number of preferred embodiments of the invention with reference to the corresponding accompanying drawings in which: 
           [0016]      FIG. 1  is a first example of system comprising a server entity and a client entity according to the invention; 
           [0017]      FIG. 2  is a second example of a system comprising a server entity and a client entity according to the invention; 
           [0018]      FIG. 3  depicts a first example of Index list generated according to the invention; 
           [0019]      FIG. 4  shows an example of messages sequence exchanged between a server entity and a client entity according to the invention; 
           [0020]      FIG. 5  depicts an example of response to the requests contained in an Index list generated according to the invention; 
           [0021]      FIG. 6  is a third example of a system comprising a server entity and a client entity; and 
           [0022]      FIG. 7  depicts a second example of Index list. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0023]    The invention may apply to any types of server entity and to any types of client entity which are able to manage URI. The client entity may be a unique device that embeds software application able to generate the required secret data. The client entity may also be a couple made of a host machine and a hardware secure token. 
         [0024]    The invention may apply to any types of data exchanged between two entities through a network like Internet. For example, the exchanged data may be files, HTML pages, scripts, applications or audio/video content. In particular, the invention is well-suited for protecting TV streaming over the Internet network. 
         [0025]    The invention relies on the association of control messages to elementary data intended to be transported over a network. According to an embodiment of the invention, a unique video file may be split in a plurality of ordered segments. These segments may be made available at a corresponding series of URI. The control messages associated to the segments have two functions. Each control message carries a key which is required for deciphering a segment. Each control message may carry a description of at least one access condition that the client entity should fulfill to be allowed to access the associated segment. 
         [0026]    An advantage of the invention is to allow a flexible and dynamic definition of access conditions which is compatible with massive scale. 
         [0027]    Another advantage of the invention is to allow the real-time definition of access conditions. This is useful for live events for example. 
         [0028]    The invention is consistent with the current web streaming standards. 
         [0029]      FIG. 1  shows an example of system comprising a server entity SV that provides a client entity CL with access to a data through the Internet network according to the invention. 
         [0030]    In this example, the server entity SV is made of three machines MA 1 , MA 2  and MA 3 . The machine MA 1  is a streaming Web server able to provide video content intended to be distributed. The machine MA 2  is a control center able to provide a service key SK. The machine MA 3  is a cache server of CDN type. MA 3  is able to provide a copy of the video content initially stored in MA 1 . 
         [0031]    In this example, the client entity CL comprises a host machine HM and a personal token ET connected to the host machine HM. The personal token ET may be a hardware secure token or a software secure token. The hardware secure token may be a smart card. 
         [0032]    In particular, the hardware OTP token ET may contain a microprocessor, a communication interface, a non volatile memory, and a working memory. The working memory may be a RAM memory. The communication interface may be intended to be connected to a host machine for exchanging data. The communication interface may be a contactless or a contact interface. The non volatile memory may be an EEPROM or a Flash memory. The non volatile memory may contain an operating system, a token identifier. The operating system OS may comprise a virtual machine, in particular a Java® virtual machine or a .Net® virtual machine. The microprocessor cooperates with the working memory and is intended to run the operating system. 
         [0033]      FIG. 2  shows another example of system comprising a server entity SV that provides a client entity CL with access to data D 1 , D 2  and D 3  through the Internet network. 
         [0034]    In this example, the server entity SV is made of a unique machine which acts as both a streaming Web server and a control center. 
         [0035]    The server entity SV comprises three data D 1 , D 2  and D 3  intended to be distributed to the client entity CL. The entity SV comprises two control messages CM 1  and CM 2 , an index list IL, a service key SK and two scrambling keys DK 1  and DK 2 . For example the scrambling key may be compliant with the Advanced Encryption Standard also named AES. 
         [0036]    In this example, the client entity CL comprises a host machine HM and an hardware secure token ET connected to the host machine HM. 
         [0037]    The host machine HM comprises web browser BR, a media player PL and an agent AG. The agent AG is able to manage control messages and to communicate with the token ET. 
         [0038]    The token ET comprises a local server LS. The local server LS comprises the service key SK. 
         [0039]    The service key SK is a secret value shared between the server entity SV and the client entity CL. The key SK is assumed to have been deployed in a secure way from the server entity SV or securely generated into the client entity CL. 
         [0040]      FIG. 3  shows an example of Index list generated according to the invention. 
         [0041]    The index list IL comprises five elements. The first element RCM 1  is a request to the control message CM 1 . The second element UD 1  is an URL where the data D 1  is made reachable. The third element RCM 2  is a request to the control message CM 2 . The fourth element UD 2  is an URL where the data D 2  is made reachable. The fifth element UD 3  is an URL where the data D 3  is made reachable. According to a preferred mode of use, each request to control message is placed before its set of associated URLs. In the example of  FIG. 3 , the control message CM 1  applies to D 1  and the control message CM 2  applies to D 2  and D 3 . 
         [0042]      FIG. 4  shows an example of messages sequence exchanged between a server entity and a client entity according to the invention. 
         [0043]    In this example, the server entity is made of two machines RS and CC. The machine RS is a streaming web server able to provide video content intended to be distributed to client entities through streaming mechanism. The machine CC is a control center able to provide a service key SK. In this example, the client entity CL is made of two parts HM and ET. The host machine HM is a personal computer and ET is a smart card connected to the computer HM. The service key SK is assumed to be securely sent to the token ET in order to be shared by both server and client side. The personal computer HM comprises a web browser BR, a media player PL and an agent AG. The agent AG is able to communicate with the token ET. For example, the media player PL may be Quicktime®, SilverLight® client of Microsoft® or any HTTP streaming media player. 
         [0044]    When the client entity wants to get the video streaming, a first get content request is sent by the browser BR to the server RS. In response, the server RS sends the index list, also named a play list. The index list may be seen as a recipe that explains how to get the video data. Then the computer HM sends a HTTP request to get the first control message which applies to the URL that follows in the index list. 
         [0045]    Then the agent AG sends the received control message to the token ET. The token ET uses the service key SK for retrieving the descrambling key from the control message and for controlling the rights contain in the control message. Thus the access to the video data may be controlled according to various and dynamic criteria. In particular, the following criteria may be checked: subscription rights, pay per view rights, pay-per time rights, Impulse pay per view, free sliding pre-view, multichannel package content and parental control. The control message allows the token of the client entity to increase the security. Thus the token may check usage conditions, may verify a secret code or a signature. 
         [0046]    For example the control message may comply with STKM as defined by the OMA BCast standard. 
         [0047]    Then the token ET sends the descrambling key to the computer HM. At a further step, the computer sends a HTTP request to the URL that follows in the index list. In response, the server RS sends a first encrypted video data through a message Ml. Then the agent AG deciphers the received encrypted video data thanks to the descrambling key. Then the player P 1  is able to play the first video data. The above-described steps are repeated for getting the further video data. Thus the computer HM receives the successive segments of the video streaming. Usually, a video content, like a movie, is split in segments of ten seconds. The play list file can be updated during the segment consumption. 
         [0048]    The above-described method may be executed with the index list IL which is shown at  FIG. 3 . In this embodiment, the index list comprises two requests to control message which are inserted before the set of URLs addressing the data related to the respective control message. Thus the first request RCM 1  allows the computer HM to get the first control message CM 1  which applies to video data D 1 . The URL UD 1  allows the computer HM to get the scrambled video data D 1 . Thank to the method, the computer HM is able to descramble the received data D 1 . The second request RCM 2  allows the computer HM to get the second control message CM 2  which applies to the URL set made of UD 2  and UD 3 . In other words, the second control message CM 2  applies to both video data D 2  and D 3 . The URLs UD 2  and UD 3  allow the computer HM to get the two scrambled video data D 2  and D 3 . Thus the computer HM is able to descramble the received data D 2  and D 3 . 
         [0049]      FIG. 5  shows an example of responses to the requests contained in an Index list generated according to a specific embodiment. 
         [0050]    In one embodiment, the response REP corresponds to the Index list of  FIG. 3 . 
         [0051]    The response REP comprises five elements. The first element is a couple (RR 1 , CM 1 ). RR 1  is an HTTP re-direct request to an URL targeting the local server LS. CM 1  is a control message applying to the data D 1 . The second element D 1  is the scrambled data reachable at the URL UD 1 . The third element is a couple (RR 2 , CM 2 ). RR 2  is an HTTP re-direct request to an URL targeting the local server LS. CM 2  is a control message applying to the data D 2  and D 3 . The fourth element D 2  is the scrambled data that can be retrieved at the URL UD 2 . The fifth element D 3  is the scrambled data that can be retrieved at the URL UD 3 . In the example of  FIG. 5 , the HTTP re-direct request RR 1  allows to get a descrambling key that applies to D 1  and the re-direct request RR 2  allows to get a descrambling key that applies to D 2 . In a preferred embodiment, the local server LS is a smart card web server as defined by the OMA Smartcard Web Server V1.0 standard. The local server LS comprises a means able to decipher or generate the descrambling keys by using the service key SK. In the example of  FIG. 3 , D 1  is scrambled with DK 1  in server side. D 2  and D 3  are scrambled with DK 2 . D 1  is descrambled with DK 1  in client side. D 2  and D 3  are descrambled with DK 2  in client side 
         [0052]      FIG. 6  shows another example of system comprising a server entity SV that provides a client entity CL with access to data D 1 , D 2  and D 3  through the Internet network. 
         [0053]    In this example, the server entity SV is made of a unique machine which acts as a streaming Web server. 
         [0054]    The server entity SV comprises three data D 1 , D 2  and D 3  intended to be distributed to the client entity CL. The entity SV comprises two control messages CM 1  and CM 2 , an index list IL and three scrambling keys DK 1 , DK 2  and DK 3 . 
         [0055]    In this example, the client entity CL comprises a host machine HM and an hardware secure token ET connected to the host machine HM. 
         [0056]    The host machine HM comprises web browser BR, a media player PL and an agent AG. The agent AG is able to manage control messages and to communicate with the token ET. 
         [0057]    The token ET comprises a local server LS. The local server LS comprises three descrambling keys DKL 1 , DKL 2  and DKL 3 . Advantageously, the keys DKL 1 , DKL 2  and DKL 3  may be equal to the scrambling keys DK 1 , DK 2  and DK 3 . 
         [0058]    The keys DKL 1 , DKL 2  and DKL 3  are assumed to have been deployed in a secure way during a previous phase. The setting of the descrambling keys in the client entity may be carried out through high secure session. In particular, if the token is a smart card comprising a smart card web server, the descrambling key set may be administrate in a secure way through Internet or even through OTA if the smart card has SIM features. Alternately, the descrambling keys may be stored in a hardware token before token issuance. Alternately, the descrambling keys may be dynamically generated in the hardware token from a master key or from a secret seed. In a smart card token, the descrambling keys may be generated by dedicated servlets. The generation of descrambling keys may be manages with counters that are incremented in similar way at both server and client sides. 
         [0059]      FIG. 7  shows an example of Index list which may be used by the system of  FIG. 6 . 
         [0060]    The index list IL comprises six elements. The first element RKL 1  is a request to a descrambling key DKL 1 . The request RKL 1  targets the local server LS. The second element UD 1  is an URL where the scrambled data D 1  is made reachable. The third element RKL 2  is a request to a descrambling key DKL 2 . The request RKL 2  targets the local server LS. The fourth element UD 2  is an URL where the scrambled data D 2  is made reachable. The fifth element RKL 3  is a request to a descrambling key DKL 3 . The request RKL 3  targets the local server LS. The sixth element UD 3  is an URL where the scrambled data D 3  is made reachable. According to a preferred embodiment, each request to descrambling key is placed before its set of associated URLs. In the example of  FIG. 7 , the key DKL 1  applies to D 1 , the key DKL 2  applies to D 2  and the key DKL 3  applies to D 3 . 
         [0061]    Thanks to this embodiment, the descrambling keys are not transmitted on the network with the video streaming. 
         [0062]    Advantageously, the Index list may be regularly refreshed by the server entity with new URLs. 
         [0063]    Thanks to the invention, the server entity and the client entity may be out of sync. Thus the invention is compliant with the web cache of CDN framework over Internet. 
         [0064]    The invention allows protecting access to data sent over a public network with a high granularity of rights. 
         [0065]    Thanks to the invention, a video segment is ciphered with a scrambling key and all client entities may get the descrambling key associated to the video segment. The invention allows protecting access to data sent over a public network with millions of concurrent clients. 
         [0066]    Alternately, the host machine HM may be a TV, a set-top box, a mobile phone or any device intended to receive a data distributed by the server entity SV through a public network like Internet. 
         [0067]    Advantageously, the use of the token ET may be controlled through a value specific to the user of the token. For example, the access to the token ET may be controlled by a PIN code or a biometric value.