US 20060236408 A1
A method, an apparatus, and computer instructions are provided for device-dependent access control for device independent web content. In an illustrative embodiment, a module may be implemented in a computer program detects a client device and security level from a request for a resource by a client device. The module loads, from a data source or configuration file, a three-dimensional device dependent access control matrix, which includes a user role axis, a device axis, and a resource axis. Based on the security level of the device indicated by the device matrix, the module grants or denies access to the resource by the user device. The security levels may include security protocols implemented by different devices, encryption schemes implemented by different devices, and security patches applied by the same device.
1. A method in a data processing system for device dependent access control for device independent content, the method comprising:
detecting a device type and a security level from a request for access to a resource of the data processing system by a user device, responsive to a user device login; and
loading a three-dimensional matrix from one of a data source and a configuration file, wherein the matrix includes a user role axis, a device axis, and a resource axis.
2. The method of
performing a lookup of a plurality of matrix assignment tables based on a user role of the user device, a type of user device, and the resource requested;
determining, based on one of a plurality of devices of the device axis, if permission is granted to the user device;
if the permission is granted, allowing the user device to access the resource; and
if the permission is not granted, denying the user device access to the resource and sending a warning to at least one of the user device and another.
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
reading data from the three-dimensional matrix into a resource-to-user assignment table; and
reading data from the three-dimensional matrix into a resource-to-device assignment table.
15. A data processing system comprising:
a memory connected to the bus, wherein a set of instructions are located in the memory; and
a processor connected to the bus, wherein the processor executes the set of instructions to detect a device type and a security level from a request for access to a resource of the data processing system by a user device, responsive to a user device login, load a three-dimensional matrix from one of a data source and a configuration file, wherein the matrix includes a user role axis, a device axis, and a resource axis.
16. The data processing system of
17. The data processing system of
18. A computer program product in a computer readable medium for device dependent access control for device independent Web content, the computer program product comprising:
first instructions for detecting a device type and a security level from a request for access to a resource of the data processing system by a user device, responsive to a user device login; and
second instructions for loading a three-dimensional matrix from at least one of a data source or a configuration file, wherein the matrix includes a user role axis, a device axis, and a resource axis.
19. The computer program product of
third instructions for performing a lookup of a plurality of matrix assignment tables based on a user role of the user device, a type of user device, and the resource requested;
fourth instructions for determining, based on one of a plurality of devices of the device axis, if permission is granted to the user device;
fifth instructions for allowing the user device to access the resource if the permission is granted; and
sixth instructions for denying the user device access to the resource and sending a warning to at least one of the user device and another if the permission is not granted.
20. The computer program product of
first sub-instructions for reading data from the three-dimensional matrix into a resource-to-user assignment table; and
second sub-instructions for reading data from the three-dimensional matrix into a resource-to-device assignment table.
1. Technical Field
The present invention relates to an improved data processing system. In particular, the present invention relates to providing access control to resources of a data processing system. Still more particular, the present invention relates to providing device dependent access control for device independent Web content in a data processing system.
2. Description of Related Art
In the current market, a variety of handheld or pervasive devices are available for consumers. Examples of pervasive devices include Web browsers, personal digital assistants (PDAs), smart phones, and traditional voice telephones. These devices support different security protocols, resources, and input capability. For example, a PDA may support input by a pen, while a traditional voice telephone only supports input by voice.
These devices may also have different screen sizes and bandwidth requirements. These variations present challenges in security and resource control for applications that support these devices. For example, a resource, such as a spreadsheet or a chart image, accessible by a user through a Web browser may not be available for the same user accessing through a smart phone, because either the resource is so sensitive that it should only be available to a secured smart phone or that the smart phone does not support the resource data format. A resource may be any data that is available in a given device, for example, an application, a Web page, a spreadsheet, or a data set.
Modern Web applications often adopt a device-independent approach to support various devices. In the device-independent approach, the page content containing business logic is independent from the display on a client device and is tailored to any device for display during run-time based on the device capability. The device-independent approach gives all the devices the same access privilege to a resource.
Traditionally, role-based access control may be used in applications for controlling resource access. Role-based access control is a standard security policy that is applied for many applications, including J2EE based applications. Role-based access control uses a two-dimensional matrix mechanism to control resource access. The two dimensional matrix includes a user role axis that has a list of user roles and a resource axis that has a list of resources. The list of user roles may include administrator, manager, editor or user. The list of resources may include Web page, data set, application, or any combination of the above. The content of the two dimensional matrix includes access rights or permissions assigned to a specific user for a given resource, for example, view, edit, or update.
While role-based access control solves the problem of who can access what resource, it does not distinguish users with different devices. Thus, a user that uses a smart phone is given the same access to a resource as the same user using a voice telephone. As more and more devices are introduced in the market, device capabilities and security becomes an issue. Different devices may have implemented different security protocols, and different encryption schemes, and applied different security patches. There is currently no existing mechanism that solves the problem of who and which device can access what resource. Thus, sensitive data that is only supposed to be delivered to a secured device may end up in an unsecured device.
In addition to role-based access control, programming-based access control can also be used in applications for controlling resource access. Programming-based access control allows security control to be hard-coded in a program. However, in order to add or change a device's access permissions, the user has to manually change the program code. There is no existing mechanism that dynamically configures new devices introduced in the market or removes existing devices for access control without modifying the program.
Therefore, it would be advantageous to have an improved method to control Web resources based not only on user role, but also on device security to achieve fine-grained access control, such that sensitive data may only be delivered to secured devices. In addition, it would be advantageous to have an improved method for adding or removing devices without the need to change the program code.
The present invention provides a method, an apparatus, and computer instructions in a data processing system for device dependent access control for device independent Web content. The present invention provides a module that detects the device type and security level from a request for access to a resource of the data processing system by a user device, and loads a three-dimensional matrix from a data source, a configuration file, or any other types of resource.
The module then performs a lookup of the matrix based on a user role of the user device, a type and security level of user device, and the resource requested, and determines based on one of a plurality of devices of the device axis. If permission is granted to the user device, the module allows the user device to access the resource based on the permission. However, if the permission is not granted, the module denies the user device access to the resource and sends a warning to the user device.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
With reference now to the figures,
In the depicted example, server 104 is connected to network 102 along with storage unit 106. In addition, client 108, personal digital assistant 110, and smart phone 112 are connected to network 102. Client 108 may be, for example, personal computers or network computers. In the depicted example, server 104 provides data, such as boot files, operating system images, and applications to client 108. Examples of applications in client 108 includes Web browsers 109, which process Web based content from server 104 and displays it to the user. Since the Web content is device independent, other types of applications similar to Web browsers 109 may reside in personal digital assistant 110 and smart phone 112 for processing the device independent Web content received from server 104.
Client 108, personal digital assistant 110, and smart phone 112 are clients to server 104. Network data processing system 100 may include additional servers, clients, and other devices not shown, for example, traditional voice telephone or other mobile devices. In the depicted example, network data processing system 100 is the Internet with network 102 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, government, educational and other computer systems that route data and messages. Of course, network data processing system 100 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Peripheral component interconnect (PCI) bus bridge 214 connected to I/O bus 212 provides an interface to PCI local bus 216. A number of modems may be connected to PCI local bus 216. Typical PCI bus implementations will support four PCI expansion slots or add-in connectors. Communications links to clients 108-112 in
Additional PCI bus bridges 222 and 224 provide interfaces for additional PCI local buses 226 and 228, from which additional modems or network adapters may be supported. In this manner, data processing system 200 allows connections to multiple network computers. A memory-mapped graphics adapter 230 and hard disk 232 may also be connected to I/O bus 212 as depicted, either directly or indirectly.
Those of ordinary skill in the art will appreciate that the hardware depicted in
The data processing system depicted in
The present invention provides a method, apparatus, and computer instructions for device dependent access control for device independent Web content. In an illustrative embodiment, the present invention may be implemented as a module of a computer program executed by data processing system 200 in
With the third axis, an administrator may group devices based on their security level. A device may belong to one or more groups, with each group representing a different security level. For example, Web browser device Internet Explorer™ 5.0 may belong to a different group than Web browser device Internet Explorers 5.0.5, since Intenet Explorer™ 5.0.5 has several security patches applied. As the number of devices introduced in the market increases, grouping devices based on their security level helps ease management and configuration of the devices.
An administrator may define the security levels of devices in terms of the following: security protocols implemented by different devices, encryption scheme used by different devices, security patch applied by the same device, etc. With the role and device-based three-dimensional matrix access control module, a user may transfer sensitive data to a secured device rather than an unsecured device. In addition, an administrator may temporarily remove or disable a device access to a resource in case of a suspicious virus attack while a user can still use other devices to access the same resource. For example, if a prevailing household Pocket PC IE virus is common among Pocket PC devices, an administrator may disable the Pocket PC devices to which a required security patch is not applied while at the same time giving other Pocket-PC devices with the security patches applied access to the resources using the module, since the module has the capability of disabling devices based on security patch applied. Furthermore, an administrator may easily grant or deny access right to a new device, when it is introduced in the market into the operating environment.
In an illustrative embodiment, an administrator may configure the three-dimensional matrix via a user interface. For each resource in the server, the user interface may display a list of all supported devices and potential permissions, including view, edit, update, add, or deploy, in a matrix format. With the user interface, an administrator may grant or deny permission to each device based on the security level of the device. The matrix is preferably stored in a data source or a configuration file, such as an extensible markup language file, and the module reads into a resource-to-device assignment table at run time. However, an administrator may store the matrix using other forms and in other types of storage without departing the spirit and scope of the present invention.
Turning now to
If a user has access permission to a resource, he or she may access the resource using any device supported by the server since the web server provides device-independent web content for the client. Prior to the present invention, there was no current method that allows the user to access confidential data using Pocket PC 2003 instead of Pocket PC 2002, for instance. Windows mobile Pocket PC is an operating system for Pocket PCs personal digital assistants, available from Microsoft Corporation. Thus, user role-based access fails to fine tune resource access based on device security.
Turning now to
If the detected device is a Pocket PC, program 400 then checks to see if the detected device is Pocket PC 2002 404, an example of a device model. If the detected device is Pocket PC 2002 404, program 400 further checks to see if Pocket PC 2002 Security Patch 4 has been applied on the device 406. If the security Pack has been applied, program 400 allows the user to access the resource using the Pocket PC 2002 device 408. Otherwise, program 400 outputs the message “update your device with the security pack 4” to the user to warn of a device update 408.
While program 400 provides multi-level validations, if an administrator wants to add or remove the device's access permissions, the administrator has to manually change the program 400. Prior to the present invention, there was no existing method that allows an administrator to add additional models or browser versions without modifying program 400.
Turning now to
In addition to a list of individual devices, device axis 506 may represent security levels of different devices. For example, different devices may implement or adopt different security protocols, and encryption schemes. The same type of devices may be applied different security patches. Examples of security protocols include proprietary protocol specific to device, Secure Sockets Layer (SSL) and Wireless Transaction Level Security (WTLS), etc. Examples of encryption schemes include 32-bit, 64-bit, or 128-bit key encryption etc. Examples of security patch applied include those published by the vendors for their specific devices, as normally indicated by device browser version, such as Internet Explorer™ 5.0 and 5.0.5. The higher browser version is generally securer than a lower browser version.
In this illustrative example, if device axis 506 represents individual devices, device 1 508 may represent a PDA while device 2 510 may represent a smart phone. Alternatively, if device axis 506 represents security protocols, device 1 508 may represent a wireless access protocols (WAP) device without WTSL, while device 2 510 represents a WAP device with WTSL. If device axis 506 represents devices with different security patches applied, device 1 508 may represent Internet Explorer™ 5.0, while device 2 may represent Internet Explorer™ 5.0.5. If device axis 506 represents encryption schemes, device 1 508 may represent a device with 32-bit key encryption, while device 2 510 may represent device with 64-bit key encryption. In addition, device axis 506 may represent devices or device groups with different security levels, which is a combination of security protocols, and encryption schemes and security patches applied. For instance, device 1 508 may represent a Web browser with Internet Explorer (IE) 5.0, a PDA with a 32-bit key encryption, and a WAP phone without WTSL. Device 2 510 may represent a Web browser with IE 5.0.5, a PDA with 64-bit encryption, and a WAP phone with WTSL. Device 3 511 may represent a Web browser with IE 6.0 and using SSL, a PDA with 128-key encryption and WTSL, etc.
With device axis 506, an administrator may control access to resources based on security levels of the individual devices used by the user, in addition to user roles. Thus, a user may transfer sensitive data only to secured device, rather than non-secured ones. An administrator may disable access of a device infected with suspicious viruses to resources. In addition, an administrator may grant or deny access right to a new device without the need to modify the program code.
Turning now to
Next, the administrator may group devices based on their security levels. In this example, the administrator may group Web browsers 602 further based on the type and version of the browsers 610, for example, Internet Explorer™ 6.3, Netscape™ 7.0, and Mozilla 3.3. Web browsers 602 may also be grouped by other parameters, for instance, the encryption schemes (128-bit, 64-bit or 32-bit key encryption etc.) 612.
Similarly, the administrator may group PDAs 606 based on their security level, such as encryption scheme. In this example, the administrator may group PDAs 606 further based on whether the encryption scheme the PDA uses is a public key encryption 614 or Hash 32-bit with CE 3.3 encryption 616. In addition, the administrator may group PDAs 606 based on other parameters. For example, browser levels (Pocket Internet Explorer 2.0, Pocket Internet Explorer 3.0 etc.)
Turning now to
If the combination has access to the resource based on the permissions, the module allows access to the resource based on permissions (step 716). For example, if a user and device has “view” access to the resource, the module grants “view” access only. Otherwise, if the combination does not have access to the resource based on the permissions, the module denies access to the resource and sends a warning to the user (step 718). Others may be alerted that the subject device does not have the permissions to access the resource (step 720).
In summary, the present invention provides a method, apparatus and computer instructions for device dependent access control for device independent Web content. With the present invention, an administrator may grant access to resources based on a security level of a user device. The present invention allows the administrator to use a variety of security levels as criteria for access control. In addition, administrators may grant or deny access to resources for new devices that are recently introduced in the market. Furthermore, the present invention protects sensitive data intended only for secured devices.
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media, such as a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, and transmission-type media, such as digital and analog communications links, wired or wireless communications links using transmission forms, such as, for example, radio frequency and light wave transmissions. The computer readable media may take the form of coded formats that are decoded for actual use in a particular data processing system.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.