Abstract:
The present disclosure provides method for accessing digital web content. It provides for selective access rights for users, to a web content. When the user tries to retrieve the data, the system checks for the rights available to the user, and accordingly implements the access before providing the content.

Description:
RELATED APPLICATION DATA 
       [0001]    This application claims priority to India Patent Application No. 1484/CHE/2014, filed Mar. 20, 2014, the disclosure of which is hereby incorporated by reference in its entirety. 
       FIELD OF THE INVENTION 
       [0002]    The present disclosure generally relates to digital rights managements, more particularly, to a method and system for accessing digitally protected web content. 
       BACKGROUND 
       [0003]    Digital Rights Management (DRM) techniques are used by publishers to protect, distribute, track and manage user rights for digital content. The digital content can be in the form of documents, e-books, audio, video, games, images etc. DRM controls the access of sensitive content by including information about the user rights (i.e., permissions, constraints, and obligations) associated with that content. It involves cryptographic techniques and access control mechanisms for preventing unauthorized access; and control usage of content. 
         [0004]    The web content can consist of html, images, flash and active documents such as PDF. In a conventional DRM product, URLs to access the protected content has to use the protocol names such as rmfile (for local files) and rmhttp (for remote content). But in the case of mixed content, part of the content may have to be in plain format and part of it needs to be protected. In that case the proprietary protocols may not be able to interpret them. Many DRM solutions do not provide a uniform framework for the protection of multiple content types such as html, flash, digital media and executables with in a web page. Hence, the overall applicability of the present DRM solutions for web content is limited. In some DRM systems key management is an issue. The decryption keys may have to be stored locally to render the protected content. 
         [0005]    Accordingly a uniform framework is required for the protection of multiple content types such as html, flash, digital media and executables with in a web page. 
       SUMMARY 
       [0006]    The present disclosure provides a method executed by a content handler in a digital right management (DRM) architecture for accessing digitally protected web content, the method comprising, receiving a request from a user, at the content handler, for the web content from a digital protected web content server; transmitting, by the content handler, authentication data of the user and the request for the web content, to an authentication server associated with the web content server, for verification of access rights of the user to access the requested web content wherein the user has selective access rights on the web content; and retrieving, by the content handler, the requested web content and the verified access rights from the web content server if the access rights of the user on the requested web content are verified. 
         [0007]    The present disclosure also provides a digital protected web content server system for storing and providing digital protected web content, the system comprising a directory and authentication server configured to store user details and authenticate users; a web server configured to manage web content uploaded by a user; and a database server configured to store access rights associated with a web content, the access rights being set by the user. 
         [0008]    The present disclosure further provides a digital right management (DRM) architecture for digitally protected web content comprising, a content handler configured to receive request for the web content from a digital protected web content server; an authentication server in the web content server configured to receive an authentication data of the user along with the request for the web content, and verify access rights of the user to access the requested web content, using the received authentication data of the user, wherein the user has selective access rights on the web content; and the content handler further configured to retrieve the requested web content from a web content server and the verified access rights from the web content server in the event the access rights of the user on the requested web content are verified. 
         [0009]    The present disclosure further provides at least one non-transitory computer-readable medium storing computer-readable instructions that, when executed by one or more computing devices, cause at least one of the one or more computing devices to request web content from a digital protected web content server; transmit authentication data of the user along with the request for the web content to an authentication server associated with the web content server, for verification of access rights of the user to access the requested web content wherein the user has selective access rights on the web content; and retrieve the requested web content and the verified access rights from the web content server in the event the access rights of the user on the requested web content is verified. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]      FIG. 1  is a flowchart describing a preferred embodiment of the process of the present disclosure; 
           [0011]      FIG. 2  describes a preferred embodiment of the work flow of a Protocol Handler. 
           [0012]      FIG. 3  describes a preferred embodiment of the system of the present disclosure. 
           [0013]      FIG. 4  describes an exemplary environment of a client server architecture. 
       
    
    
     DETAILED DESCRIPTION 
       [0014]    The present disclosure will now be explained by way of figures and examples. 
         [0015]    The present disclosure provides a uniform framework for protection of multiple content types by using a content handler for authorized users. 
         [0016]    The DRM Web Framework proposed here aims at applying Digital Rights Management for web content hosted on a public website. The framework is based on client-server architecture with the client being a content handler attached to a browser. The web content is hosted on webserver in protected format and a DRM server manages user rights for this content. 
         [0017]    At the server side, all the web pages are kept encrypted. The decryption keys and rights related information of these encrypted web pages lies with the DRM server. Post authentication and authorization of a request from the client, the encrypted data and the related information are passed by the webserver. The web pages are decrypted at the client side and rendered by the browser after applying rights to the web page with the help of the rights plugin attached to the browser. The rights related information is passed on to the rights plugin from the content handler at runtime. This allows users with restricted privileges to access content according to the rights allocated to her. Also, the decryption keys and rights information is saved only in memory without any persistence on the disk. 
         [0018]      FIG. 1  explains the main steps of the disclosure briefly. In a preferred embodiment of the present disclosure ( 100 ), a user sets access rights for content stored on a server. This user can be the content producer who manages user access. 
         [0019]    These access rights are stored on a digital protected web content server, or a DRM server. For one web page comprising of different images, videos, text and other such contents, there can be different types of access rights set. One user can have read access to only the images. Only few users may have write access. Some content may be free for all. 
         [0020]    When a new user comes to fetch the content, a request is sent along with authentication data of the user ( 101 ). A content handler is used for this purpose. The access rights of the user for the requested content are identified, using his authentication data ( 102 ). And the content for which he has appropriate rights are then retrieved for the user ( 103 ). 
         [0021]      FIG. 2  describes the detailed working of a preferred embodiment of the disclosure. 
         [0022]    Initially access rights of users for a particular web content are set and stored in a DRM server. The web content is stored in a web server in a protected format. The protected format can be password protected or encrypted using any appropriate encryption algorithm. 
         [0023]    In one embodiment a user requests for a web content at a browser ( 201 ). A content handler is invoked to take the request ( 202 ). In a one embodiment the content handler is a Protocol handler. 
         [0024]    Protocol handler is an application/plugin which handles the user&#39;s URL request on the protocol scheme for which it is registered for a browser. Example protocols supported by browsers are http, https, ftp etc. Protocol handler is constructed to support new protocol drm:// 
         [0025]    In one embodiment, user requests web page with protocol scheme drm://” through a browser. The browser searches for the protocol handler registered for “drm” protocol and invokes it to handle the request. 
         [0026]    In another embodiment the content handler is a mime type filter registered for the encrypted web pages with the application server. This can be done by associating a specific file extension (.drm) with the mime type(application/drm) with the application server and registry. 
         [0027]    In this embodiment, user requests web page with the extension “.drm” to the browser. Browser forwards the request to the host and fetches the encrypted “.drm” web page. Further, the browser searches for the mime type of “.drm” extension in the registry. As we have registered “application/drm” mime type for “.drm”, it is able to fetch the mime type and further searches for the mime type filter of “application/drm” mime type. Once found, it passes the “.drm” request to the mime type filter. 
         [0028]    In yet another preferred embodiment, the web content is encrypted. Hence the user also requests for decryption key along with the web content. 
         [0029]    The content handler then checks what access rights the user has. The user might not have privileges to retrieve the content. Or he may have access right only few parts of the web content. He also may not have access rights at all. 
         [0030]    The content handler checks the user access rights from the authentication data entered by the user. In another embodiment the authentication data and the request is forwarded to an authentication server ( 203 ). 
         [0031]    If the user is valid, the request for decryption key and rights is forwarded to DRM Server ( 204 ). 
         [0032]    In another embodiment, if the authentication fails, appropriate error message is displayed to the user. 
         [0033]    The DRM server fetches the data from the database ( 205 ) and sends it to the authentication server ( 206 ) which further forwards it to the content handler ( 207 ) along with the access rights. 
         [0034]    The database can be a web server. 
         [0035]    In one embodiment, the retrieved web content and the access rights are forwarded to a web browser plug in ( 208 ). This plugin is registered with a browser which loads with every instance of browser and adds rights management to its existing functionality. 
         [0036]    In one embodiment, the web browser plug in is a Browser Helper Object (BHO). 
         [0037]    A window procedure is created in place of the original one in the Browser helper object. It overrides the existing window procedure. The custom logic handles/filters messages based on the rights passed to it by content handler. For example: If save permission is given, only then the corresponding messages are passed to the default window procedure. If the user doesn&#39;t have the permission, the message isn&#39;t passed further hence the message processing flow is blocked in the window procedure itself. 
         [0038]    The DRM server responsible for content and rights management, has three major functionalities i.e., user administration, content publication and user self-service. A DRM Administrators can add, delete and edit the users in the DRM group. Users can be of type publishers or consumers. The users identified as publishers have the right to upload their contents and assign rights to others. 
         [0039]    An active directory authenticates the users and a DRM database stores rights information. The publisher who owns the content sets the user&#39;s rights. These rights include permissions such as print, view, execute, play and constraints such as time limit or number of views. When user requests access, to a specific file, a DRM license consisting of decryption keys along with rights information is passed to DRM server. DRM users should be authenticated to the server in every interaction for security reasons. 
         [0040]      FIG. 3  will describe a preferred embodiment of a system ( 300 ) for the present disclosure. 
         [0041]    One embodiment of the present system comprises a browser ( 300 ) for a user to request a protected web content. The browser can be installed on any computing device. Such computing device includes but not limited to, desktop, laptops, kiosks, handheld devices including handheld communication devices, and other such computing devices which can be used to request a web content. 
         [0042]    In one embodiment, the browser is configured to fetch an appropriate content handler ( 302 ) to take care of the user&#39;s request for the web content. In an embodiment the content handler can be a Protocol Handler. In another embodiment, the content handler can be a MIME type filter. Any other content handler which can be used to handle requests for a protected web content can be used. The content handler is decided based on the request format of the user. In case of a protocol handler, the user will request the content with protocol scheme “drm://”. Other supported protocols are http, https, ftp etc. 
         [0043]    In an embodiment, an authentication server ( 303 ) receives the request forwarded to it by the content handler. The authentication has means to accept the transmission. It also accepts the user profile, or user authentication information from the content handler. The authentication server checks if the user has sufficient rights to request for the web page. Since the user has selective rights on the content, it needs to be determined that on what content type, the user has what rights. 
         [0044]    Once the user is authenticated, the DRM server ( 304 ) receives the request from the authentication server. In case the user is not authenticated, the authentication server returns an error message which is rendered by content handler to the browser. 
         [0045]    In an embodiment, the DRM server is configured to fetch the data from the web server ( 305 ) and transmit it back to the content handler. The DRM server fetches the web content, the rights of the user for the web content, and a decryption key. 
         [0046]    The encrypted web pages are organized at server side in a hierarchical folder structure. If a file, such as “drm://server:port/A/B/a.html”, wants to call the b.jpg file in folder A, then the relative url would simply be “../b.jpg”. 
         [0047]    The base url i.e., “drm://server:port/virtualdir” needs to be specified at the time of defining the content handler where virtualdir is the directory one level top to the folder from where the context begins. Here in the example, the virtual directory lies one level up (folder A) hence context begins from folder A. Then onwards the files can be called using relative url from within another file. 
         [0048]    The system further comprises a browser plugin ( 306 ) which receives the web content, the user rights and the decryption key from the content handler. The browser plugin can be Browser Helper Object, or any suitable plugin for a browser. 
         [0049]    In an example, whenever the user tries to access the protected content using DRM client using the browser, the user is prompted for authentication, which is routed to IIS web server. If the client authentication succeeds, the request is passed on to tomcat server. The response is returned from tomcat (application server) back to IIS which is then further forwarded to the client application. Following is a description of the components of the system. 
         [0050]    Windows Active Directory. It serves as a central repository for network administration and security. It authenticates and authorizes all users and computers within a windows network of Windows domain. It stores the information of all the users authenticated by it. 
         [0051]    Authentication Server. It is the authentication server which is being used to authenticate the end user using Integrated Windows Authentication. It does so through a connection to active directory. 
         [0052]    Web Server. It is the application server which contains the business logic for managing and protecting the content. An example can be Tomcat server. 
         [0053]    Database Server. It is the server side database which stores files, users&#39; rights and permissions. An example can be SQL server. 
         [0054]    Custom Audio Player. It is the integrated DRM client through which end user can play DRM protected content. 
         [0055]      FIG. 4  describes the above system with a detail about the structure of client and server system. The client and server system are coupled together by Wide Area Network (WAN)  450 , although the environment can include other types and numbers of devices, components, elements and communication networks in other topologies and deployments. While not shown, the exemplary environment may include additional components, such as routers, switches and other devices which are well known to those of ordinary skill in the art and thus will not be described here. 
         [0056]    In the present disclosure the client refers to browsers in any computing machine or handheld device. The client interacts with the server WAN  450  although the interaction can be using any other network topologies. Additionally, the network can be hosted on a cloud or could be provided as a service. 
         [0057]    The server systems includes at least one processor  410 , memory  420 , optional configurable logic  430 , input and display devices  440 , and interface device  470  which are coupled together by bus, although the nodes may comprise other types and numbers of elements in other configurations. 
         [0058]    Processor(s)  410  may execute one or more computer-executable instructions stored in the memory  420  for the methods illustrated and described with reference to the examples herein, although the processor(s)  410  can execute other types and numbers of instructions and perform other types and numbers of operations. The processor(s)  410  may comprise one or more central processing units (“CPUs”) or general purpose processors with one or more processing cores, such as AMD® processor(s), although other types of processor(s) could be used (e.g., Inter)). 
         [0059]    Memory  420  may comprise one or more tangible storage media, such as RAM, ROM, flash memory, CD-ROM, floppy disk, hard disk drive(s), solid state memory, DVD, or any other memory storage types or devices, including combinations thereof, which are known to those of ordinary skill in the art. Memory  420  may store one or more non-transitory computer-readable instructions of this technology as illustrated and described with reference to the examples herein that may be executed by the one or more processor(s).  FIGS. 1 and 2  are representative of example steps or actions of this technology that may be embodied or expressed as one or more non-transitory computer or machine readable instructions stored in memory that may be executed by the processor(s)  410 . 
         [0060]    Input and display devices  440  enable a user, such as an administrator, to interact with the systems such as to input and/or view data and/or to configure, program and/or operate it by way of example only. Input devices may include a touch screen, keyboard and/or a computer mouse and display devices may include a computer monitor, although other types and numbers of input devices and display devices could be used. Additionally, the input and display devices can be used by the user, such as an administrator to develop applications using Application interface. 
         [0061]    The interface device in the nodes is used to operatively couple and communicate between the nodes which are all coupled together by LAN and WAN. By way of example only TCP/IP can be over Ethernet and industry-standard protocols. 
         [0062]    Although an exemplary environment with the client and server systems are described and illustrated herein, other types and numbers of systems, devices in other topologies can be used. It is to be understood that the systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s). 
         [0063]    Furthermore, each of the systems of the examples may be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, and micro-controllers, programmed according to the teachings of the examples, as described and illustrated herein, and as will be appreciated by those of ordinary skill in the art. 
         [0064]    The examples may also be embodied as a non-transitory computer readable medium having instructions stored thereon for one or more aspects of the technology as described and illustrated by way of the examples herein, which when executed by a processor (or configurable hardware), cause the processor to carry out the steps necessary to implement the methods of the examples, as described and illustrated herein. 
         [0065]    Having thus described the basic concept of the invention, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the invention. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.