The
Team
|
The
Problem
The ABB Team was
given the task of providing a software-based user authorization
system. The goal is to restrict certain features of an
application from unauthorized users. Suppose you have a computer
(running Windows 2000) that is responsible for controlling an
industrial robot. Now, suppose a manager wants to change the
programmed behavior of the robot. That person can pull up the
control software, and make the necessary changes. But at the
same time, there are other users who use the software to check the
status of the robot, but should not have access to change the
programming. That is where our system comes into operation.
At first, this seems
like a simple task, since Windows 2000 already has a robust security
model in place. Unfortunately, the default Windows 2000 security
system only controls things on the operating system level, not
the application level. Using the native Windows 2000
model, it is possible to block unauthorized users from launching a
particular application, but there is no way to control what users can
do within the application once it has been launched. We
needed to to build a system which extends the security model of
Windows 2000 to the application level.
|
Key
Design Constraints
Adding to the
difficulty of the task were the necessary constraints. First, we
were not to develop the application itself. The system is a set
of routines to be implemented "behind the scenes" of a software
package. This meant the system had to be abstract enough to work
with a variety of different applications. The only thing that
would be common between them is the Windows 2000 operating system.
Furthermore, our system had to work with the native Windows 2000
security model. It could not bypass the current system, only
extend it.
|
The
Solution
The system developed
consists of three main components:
-
A DLL file
containing the authorization routines
-
A searchable
database, containing an access control list
-
A management tool
to control the database
Standard behavior of
our system is as follows:
-
A user tries to access a restricted
feature of an application.
-
The application queries
our system, to determine whether or not the user has access.
-
Our system searches the
database, finds the feature, and then searches for the user.
-
If the user is in the
list, access is granted. If the user is not in the list, access
is denied.
|
|
|