US5784560A - Method and apparatus to secure distributed digital directory object changes - Google Patents

Method and apparatus to secure distributed digital directory object changes Download PDF

Info

Publication number
US5784560A
US5784560A US08/573,034 US57303495A US5784560A US 5784560 A US5784560 A US 5784560A US 57303495 A US57303495 A US 57303495A US 5784560 A US5784560 A US 5784560A
Authority
US
United States
Prior art keywords
attribute
associated attribute
recited
objects
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/573,034
Inventor
Kevin Kingdon
Randal Earl Childers
DeeAnne Higley
Dale R. Olds
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
Novell Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Novell Inc filed Critical Novell Inc
Priority to US08/573,034 priority Critical patent/US5784560A/en
Assigned to NOVELL, INC. reassignment NOVELL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HIGLEY, DEEANNE, OLDS, DALE R., CHILDERS, RANDAL EARL, KINGDON, KEVIN
Application granted granted Critical
Publication of US5784560A publication Critical patent/US5784560A/en
Assigned to EMC CORPORATON reassignment EMC CORPORATON ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CPTN HOLDINGS LLC
Assigned to CPTN HOLDINGS, LLC reassignment CPTN HOLDINGS, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NOVELL, INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Definitions

  • the present invention relates generally to resolving attributes of objects, and will be specifically disclosed in connection with a system for resolving such object attributes in a distributed digital network directory.
  • One type of computer network employs a client-server architecture, wherein the portions of network applications that interact with human users are typically separated from the portions of network applications that process requests and information.
  • client applications or client software the portions of an application that interact with the user
  • server applications or server software the portions of the application that process requests and information.
  • client applications and server applications are generally executed on different computers, known as clients and servers, respectively, although servers can be clients as well.
  • LANs local area networks
  • the network server manages the network resources, such as files, printers, printer queues, server applications, etc.
  • the network server maintained information on each of the network resources, the identities of the network clients and users, and the scope and the nature of the access available to the network clients and users.
  • the structure of the information stored in the distributed directory is enforced by the directory schema. While the X.500 protocol appears to hold great promise to provide a robust distributed directory, the X.500 protocol has been slow to gain acceptance.
  • the X.500 protocol specification describes a technical framework, interoperability requirements and compliance criteria, however, it does not describe specific implementations. Therefore, many of the details of implementation have been deferred to systems providers, which has resulted in variability and ultimately the lack of a true standard.
  • a distributed directory contains a collection of objects with associated attributes or properties tied together by their relationship to each other.
  • FIG. 1 shows an object named "Computer” with some of its associated properties, such as “Owner”, “Operator”, “Status”, etc.
  • the values of the associated attributes are not shown in FIG. 1, but an example of a value for the property "Owner” might be "George”.
  • objects in a distributed directory and their names represent things that humans relate to when dealing with computers. For instance, some typical objects might represent users, printers, print queues, network files, resources, etc.
  • objects could represent non-computer related things, such as countries, companies, organizations, departments, buildings, etc.
  • an object can represent virtually anything, whether imaginary or real.
  • the objects contained within a distributed directory can be viewed by a user in a hierarchial structure, generally in the form of a tree, where objects are organized in subtrees and partitions.
  • FIG. 2 shows such a hierarchial structure.
  • Each of the branches and terminating points represent objects in the distributed directory, and each of the circles represent partitions.
  • Each partition contains a set of objects wherein the root-most object is referred to as the partition root.
  • Multiple replicas of a partition can be stored in the distributed directory, wherein each insular server could hold a unique set of partitions and at the same time hold a unique hierarchy of objects within that insular machine.
  • a server that maintains a partition is referred to as a name server, which is responsible for updating and making modifications to objects within the partition.
  • a name server which is responsible for updating and making modifications to objects within the partition.
  • Directory schemas define and determine the types of replicas of each partition, such as master partitions, read only partitions, duplicate partitions, etc. This hierarchial structure of objects and partitions is an effective way to reduce network storage, control network traffic, and ultimately speed access to the distribute directory.
  • the hierarchial structure or tree provides a logical means of searching for information within the distributed directory.
  • the tree is generally patterned after logical groupings such as organizations, organizational units, computers, users, etc.
  • Partition A could represent the legal department of a company and Partition C could represent the tax group, a subordinate group to the legal department.
  • Each partition forms a major subtree of the distributed directory.
  • the partitions form a hierarchial structure of partitions that lead back to the Root Partition. Where boundaries of two partitions meet, the partition closer to the Root Partition is considered superior, and the partition further from the Root Partition is considered subordinate.
  • Partition E is subordinate to Partition B and subordinate to the Root Partition
  • Partition B is superior to Partition E and subordinate to the Root Partition.
  • a distributed directory can become accessible to non-trusted parties, and such parties could make unauthorized changes within the distributed directory. This is particularly true as a distributed directory proliferates and more name servers are added to the network. For example, two companies may participate in the same distributed network. While complete trust may not exist between the two companies, each company could have a name server that maintains a partition within the distributed directory and have replicas of other partitions. As is readily apparent to one with ordinary skill in the art, such access could take a variety of forms and is not limited by the previous example. Because non-trusted parties could access information contained in the distributed directory, these non-trusted parties may tamper with or change important information in the distributed directory. If such tampering is allowed, the success of a distributed directory could be severely impacted.
  • Tampering may occur in objects that employ a static means of resolving object attributes, also referred to as static resolution.
  • Another means of resolving object attributes is referred to as dynamic resolution.
  • Resolving object attributes refers to comparing an attribute value or a set of values within one or more objects with another value or set of values to determine if they match.
  • static resolution is employed to decrease network traffic in larger networks
  • dynamic resolution is generally used in smaller networks.
  • FIG. 3 compares these two means to resolve object attributes.
  • the people and things Boyd 31, Group A 32, and Printer C 33 are all represented by objects 31a,b, 32a,b, and 33a,b.
  • a dynamic system upon receiving request from Boyd 31 to print to Printer C 33, a dynamic system searches through random access memory ("RAM") for the object Printer C 33a in Column 36a. Next, the dynamic system 34 searches through the associated attributes 37a of the object Printer C 33a. When the dynamic system 34 finds the object Group A 32a, it then searches through the associated attributes 37a of the object Group A 32a until it finds the object Boyd 31a. Having resolved the object attributes and checked that the values match, the system has verified that the object Boyd 31a has authorization to access the object Printer C 33a, and the dynamic system 34 then accepts the request from the Boyd 31 to print to the Printer C 33.
  • RAM random access memory
  • a static system 35 searches the associated attribute 37b the object Boyd 31b for the object Printer C 33b. If the object Printer C 33b is an attribute of the object Boyd 31b, the static system 35 then accepts the request from Boyd 31 to print to Printer C 33. While a dynamic system 34 tends to be faster in smaller computer systems, a static system 35 tends to be faster in larger computer systems.
  • an object of this invention is to increase security in computers.
  • An additional object of this invention is to provide an improved method for resolving attributes of objects.
  • Another object of this invention is to provide an improved method for synchronizing attributes associated with objects.
  • Yet another object of this invention is to provide an improved method for securing object changes.
  • a further object of this invention is to provide an improved method for enhancing static object resolution.
  • Still a further object of this present invention is to achieve the foregoing objects in a distributed directory.
  • a method for verifying that a first object has authorization to access a second object.
  • the first object has a Security Equals associated attribute, which attribute contains a list of other objects from which the first object derives or inherits rights.
  • the second object has an Equivalent To Me associated attribute, which attribute contains an authoritative list of all objects that have security equal to the second object.
  • Authorization is verified if the Security Equals attribute in the first object and the Equivalent To Me attribute in the second object are synchronized.
  • the two associated attributes are synchronized when the Security Equals attribute of the first object includes the second object, and the Equivalent To Me attribute of the second object includes the first object. If the two attributes are not synchronized, a further aspect of the invention provides for the system to notify a person or a computer that unauthorized access to the second object was attempted.
  • the present invention also provides a process for synchronizing the Security Equals and the Equivalent To Me attributes.
  • the process of synchronization can be initiated upon receiving a request to modify the Equivalent To Me attribute of the second object. For example, such a request could suggest that the first object be added to the Equivalent To Me list of the second object.
  • the process verifies that the Equivalent To Me attribute may be modified. Verification can be achieved in a variety of ways, including checking that the requestor has proper system authorization or checking through business administrative procedures that the first object has authorization to access the second object.
  • the first object can be added to the Equivalent To Me attribute of the second object.
  • the Security Equals attribute of the first object can be synchronized to the modified Equivalent To Me attribute by adding the second object to the Security Equals attribute.
  • FIG. 1 shows a typical object with some of its associated attributes
  • FIG. 2 shows a typical distributed directory
  • FIG. 3 illustrates the difference between dynamic and static resolution
  • FIG. 4 illustrates the use of the Security Equals and Equivalent To Me attributes in a distributed directory employing static resolution of object attributes where the attributes are synchronized
  • FIG. 5 illustrates the use of the Security Equals and Equivalent to Me attributes in a distributed directory employing static resolution of object attributes where the attributes are not synchronized.
  • the software of the preferred embodiment of the invention supports a security mechanism for deterring the tampering of objects contained in a distributed directory.
  • the distributed directory of the preferred embodiment has a schema that includes a collection of class definitions and attribute definitions. Each object in this schema belongs to a class, which class has a textual name within a class hierarchy. Descending the class hierarchy corresponds to increasing specialization. For example, a server is a specialization of a device, and a print server is a specialization of a server.
  • the objects also has a name hierarchy, which can be analogized to a tree structure.
  • Objects at interior nodes, or objects closer to the root of the tree are "container" objects that are considered superior to relatively exterior nodes, or objects closer to the leaves of the tree, which are considered subordinate.
  • these objects have attributes whose values can be read and written.
  • Each attribute has a textual name and a syntax by which its values are represented, wherein the name can be from one to 32 characters in length (excluding null termination).
  • a given attribute can have a range of valid values and a variety of other attribute characteristics, such as whether an attribute is mandatory or optional.
  • Objects can reference other objects. Such references are organized or controlled by specialized access attributes associated with such objects.
  • the first object when a first object references a second object, the first object contains an access attribute named "Security Equals" and the second object contains an access attribute named "Equivalent To Me.” Both access attributes are statically resolved and may have multiple values.
  • the Security Equals attribute which as used in the present specification and claims shall mean any attribute that contains a list of other objects from which the first object derives or inherits rights, or to which the object has access rights. For instance, a user object named Boyd, having the objects George and Group A in its Security Equals attribute list, inherits the rights that George and Group A have for other objects.
  • a user object named Heidi could have the object Tape Drive in its Security Equals attribute list whereby Heidi would have access rights to the Tape Drive.
  • the Equivalent To Me attribute which as used in the present specification and claims shall mean any attribute that contains a list of all objects that have security equal to the object associated with that attribute.
  • the Equivalent To Me attribute is used as the authoritative attribute for access control of a given object. So, in the foregoing examples, the objects George and Group A would have Boyd in their Equivalent To Me attribute lists, and the object Type Drive would have Heidi in its Equivalent To Me attribute list.
  • FIG. 4 illustrates how the Security Equals and Equivalent To Me attributes are used in the preferred embodiment.
  • Company A 41a and Company B 41b work with one another in separate offices, however complete trust does not exist between the two companies.
  • the two companies 41a, 41b both share and participate in a distributed network 40, wherein each company operates a name server 47a, 47b that maintains a partition 42a, 42b for the respective companies 41a, 41b.
  • Each of these partitions 42a, 42b are subordinate to the root partition 42.
  • An employee of Company A 41a named Boyd 43 operates a client computer 43a that communicates with the name server 47a as part of their working relationship. Boyd 43 has been authorized to print to and otherwise access Printer C 45 located in the offices of Company B 41b.
  • the partition 42a includes an object Boyd 44 representing employee Boyd 43, which object 44 has a Security Equals attribute 48.
  • the partition 42b includes an object Printer C 46 that has an Equivalent To Me attribute 49, which object 46 represents the physical Printer C 45.
  • the name server 47a controls and maintains the object Boyd 44, and the name server 47b controls and maintains the object Printer C 46.
  • the two servers 47a, 47b can telecommunicate between each other either directly or indirectly in any of a variety of ways, such as modem, physical connections, internetworking, gateway links, satellite links, etc.
  • modesm such as modem, physical connections, internetworking, gateway links, satellite links, etc.
  • present example demonstrates an embodiment of this invention in the context of a distributed directory 40, the teachings of this disclosure could be readily applied by one with ordinary skill in the art in multiple other arrangements, such as between two machines having discrete non-distributed directories or within a single machine that maintains both the objects in question 44, 46.
  • Boyd 43 uses an application running on the client computer 43a to request access to Printer C 45, such as the form of a print job
  • the client 43a passes the request to the server 47a in the form of a request such as "Resolve Name.”
  • Resolve Name is an operation whereby a client may start determining the values of the various attributes. This operation takes an object's Distinguished Name and returns "Entry IDs" or addresses of the object that can be used to access a corresponding value.
  • the client computer 43a indicates the various characteristics of the desired Entry ID.
  • CN is the common name
  • O is the organizational name
  • U is the organizational unit.
  • the preferred embodiment looks into the list of values in the Security Equal attribute 48 of object Boyd 44 using a function such as "Read".
  • Read is a function used to determine the value of an attribute, which function returns the values of a given attribute for a specified object.
  • the server 47a uses Read to resolve the Security Equals attribute 48 and return the value "Printer C”.
  • the server 47a issues a Read request to the server 47b located in Company B 41b. Similar to the Read request for the object Boyd 44, the server 47b references the object Printer C 46 and returns the access control list associated with the Equivalent To Me attribute 49.
  • a value in the Equivalent To Me attribute 49 is "Boyd.”
  • Synchronization is determined by comparing the values for Security Equals attribute 48 and the Equivalent To Me attribute 49, and determining if the respective attributes 48, 49 reference the opposite objects 44, 46.
  • the example illustrated in FIG. 4 shows synchronization between the attributes of the two objects: "Printer C" is the value of the Security Equals attribute 48 and "Boyd” is the value of the Equivalent To Me attribute 49.
  • the servers 47a, 47b acknowledge that employee Boyd 43 has authorization to access the physical Printer C 45, and the print job is then processed.
  • FIG. 4 demonstrates what happens when the values of Security Equals and Equivalent To Me attributes 48, 49 are synchronized
  • FIG. 5 demonstrates when the attributes are not synchronized.
  • Company A 51a and Company B 51b work together, however complete trust does not exist between two companies.
  • an employee named Joyce 53 of Company A 51a will attempt to gain unauthorized access to Printer C 55 located in Company B 51b.
  • the companies 51a, 51b participate in a distributed directory 50, wherein each company has a name server 57a, 57b that maintains a partition 52a, 52b, respectively.
  • Server 57a maintains the object Joyce 54
  • server 57b maintains the object Printer C 56.
  • the employee Joyce 53 makes a request to access Printer C 55, such as sending a print job through the client computer 53a.
  • the client computer 53a forwards a request such as Resolve Name to server 57a.
  • the server 57a resolves the values of the Security Equals attribute 58 for the object Joyce 54.
  • the server 57a will not detect an anomaly and will issue a request to server 57b located in Company B 51b using a function such as Read.
  • the server 57b accesses the Equivalent To Me values 59 for the object Printer C 56.
  • the server 57a will notify Joyce 53 through a message that she does not have rights to Printer C 55.
  • either one of the servers 57a, 57b could notify the system administrator (not shown), a separate name server (not shown), or Printer C 55 that employee Joyce 53 attempted an unauthorized access to Printer C 55.
  • FIGS. 4 and 5 concern access to a printer
  • the present invention can be applied to virtually anything represented by objects, such as computers, print servers, fax servers, storage devices, databases, etc.
  • the present invention is not limited to things represented by objects located in different physical locations or separate computers.
  • the present invention could be applied in a wing of an advertising firm having one server that maintains objects representing an expensive color printer and the employees, wherein only certain graphic designers are allowed access to the printer.
  • the present invention could also be applied to non-physical objects, such as subdirectories, partitions, files, databases, applications, etc.
  • a company could implement the present invention to limit access to a subdirectory containing sensitive company information relating to a corporate merger.
  • the system administrator of the company LAN which could have only one server, could establish a subdirectory object named "Merger" having an Equivalent To Me attribute with a list of values of user objects representing the privy employees: Jay, Heidi, and Rob.
  • the system administrator could add the value "Merger” to their Security Equals attribute. In doing so, only the users Jay, Heidi, and Rob could access the subdirectory Merger.
  • the present invention could also be applied within a program or on a system level.
  • one object variable could attempt access to a second object variable as part of a program organization, wherein the request is initiated automatically without a human prompt.
  • the specifically described embodiment includes a mechanism for securely synchronizing the Security Equals and Equivalent To Me attributes.
  • Boyd 43 could be granted access to Printer C 45 by synchronizing the Security Equals and Equivalent To Me attributes 48, 49 of the respective objects 44, 46.
  • the process of synchronization can be initiated in a variety of ways. For example, synchronization can be initiated when a network client application, possibly operated by the system administrator, passes a request to server 47b to add the value "Boyd" to the Equivalent To Me attribute 49 of the object Printer C 46.
  • Modify Object is a function used for modifying attribute values for a specified object, wherein the act of modifying can include adding, deleting or changing the values of a given attribute.
  • the distributed directory schema of the preferred embodiment allows most attributes to have multiple values, so there may be several kinds of individual changes to the same attribute in a Modify Object request, each modification adding, deleting or changing an attribute value.
  • the server 47b After receiving the Modify Object request, the server 47b verifies the existence of the object Boyd 44 by making the request Resolve Name. In the present example, where the object Boyd 44 is maintained by the server 47a, this request must be sent to server 47a, which responds whether or not the object Boyd 44 exists. If the object Boyd 44 exists, the server 47b verifies that employee Boyd 43 has access rights to Printer C 45. This verification can be accomplished in any number of different ways. For example, the server 47b can read a database of the various objects and the corresponding access rights, possibly located in the root partition 42. As a further example, the server 47b could prompt the system administrator or some other user having the appropriate corporate authority to confirm that employee Boyd 43 has access rights. Having verified that employee Boyd 43 has access rights to Printer C 45, the server 47b modifies the Equivalent To Me attribute 49 of the object Printer C 46 by adding the value "Boyd" in the Equivalent To Me attribute 49.
  • the server 47b issues a "Check Sev" request to server 47a.
  • Check Sev is a request to check the security equivalence of an object.
  • the server 47a notes that server 47b suggests that a change has been made to the Equivalent To Me attribute 49 of the object Printer C 46 and that the object Boyd 44 was involved in the change.
  • server 47a issues a request to the server 47b in the form of Resolve Name for the object Printer C 46, and server 47b returns the corresponding Entry ID.
  • server 47a issues a request in the form of "Read Entry Info" to determine the partition root (not shown) of partition 42b containing the object Printer C 46. Read Entry Info is different from Read.
  • Read Entry Info obtains other values associated with the object. For instance, using Read Entry Info a client can read an entry's modification time stamp, the Entry ID of its containing parent, or any other of a variety of values associated with the object.
  • the server 47a then issues a request in the form of Read to determine the attribute values of Printer C's object 46.
  • server 47a issues a request to server 47b in the form of "Compare” to verify the presence or absence of the value "Boyd” in the Equivalent To Me attribute 49 of the object Printer C 46.
  • the Compare operation reports whether a client-supplied value is one of the entry values for an attribute identified in the request. A common use of the Compare operation is to determine if a user object is a member of a specific group.
  • the server 47a modifies the Security Equals attribute 48 of the object Boyd 44 based on the presence or absence of Equivalent To Me attribute 49. If the value is present, the server 47a adds the value "Printer C" in the Security Equals attribute 48. On the other hand, if the value is not present the server 47a does not add the value "Printer C" to Security Equals attribute 48.

Abstract

A method and apparatus for providing access control to objects in a distributed network directory employing static resolution to resolve object attributes. A first object has a Security Equals attribute and a second object has an Equivalent To Me attribute. Upon receiving a request for the first object to access the second object, authorization of such access is verified by checking if the two attributes are synchronized. The attributes are synchronized when the Security Equals attribute of the first object includes the second object, and the Equivalent To Me attribute of the second object includes the first object. A method of synchronizing the two attributes is also disclosed.

Description

RELATED APPLICATIONS
This is a continuation-in-part of application Ser. No. 08/357 467 filed Dec. 15, 1994, now U.S. Pat. No. 5,677,851.
BACKGROUND
The present invention relates generally to resolving attributes of objects, and will be specifically disclosed in connection with a system for resolving such object attributes in a distributed digital network directory.
Technological advances in microelectronics, digital computers, and software have resulted in the proliferation of computer networks. In such networks, computers telecommunicate between each other and share information, applications and services. One type of computer network employs a client-server architecture, wherein the portions of network applications that interact with human users are typically separated from the portions of network applications that process requests and information. often, the portions of an application that interact with the user are called client applications or client software, and the portions of the application that process requests and information are called server applications or server software. In a client-server network environment, client applications and server applications are generally executed on different computers, known as clients and servers, respectively, although servers can be clients as well.
An early form of digital networks were local area networks, commonly referred to as LANs, which consist of a physical collection of computers generally interconnected with network cabling and network interface cards. Historically, LANs comprised a single network server and multiple network clients. The network server manages the network resources, such as files, printers, printer queues, server applications, etc. As part of this management, the network server maintained information on each of the network resources, the identities of the network clients and users, and the scope and the nature of the access available to the network clients and users.
As LANs became more popular, these networks grew in size requiring several servers to manage the needs of clients and users, which made the management of the network increasingly difficult. Logistically, this was difficult because users required access to an increasing number of network resources that were located on an increasing number of network servers. Adding to the difficulty was the multiple server structure itself: macro management of the network servers within a LAN was essential, however, each network server maintained a discrete directory that stored its own unique information and networking services, which required independent micro management. Further adding to the difficulty was the lack of a standard scheme of providing networking services information. As a result, a variety of vendors began offering their own particular networking servers each having a unique and idiosyncratic schemes.
The associated difficulties with this insular method of maintaining information of networking services fueled research and development of distributed network directories. With distributed directories, a single directory spans and is shared by multiple networking servers. Thus far, research has resulted in several distributed directory protocols, some of which hold great promise for replacing the large number of insular and idiosyncratic directories that now litter many of the existing LANs and electronic-mail systems. One of the more popular solutions exploits the X.500 network services protocol developed and published by the CCITT (now called ITU-T) and Open Systems Interconnect Consortium. Part of the X.500 protocol specification describes a distributed directory wherein information can be created, read, modified, and shared by network clients who have applicable access rights across a plurality of servers. The structure of the information stored in the distributed directory is enforced by the directory schema. While the X.500 protocol appears to hold great promise to provide a robust distributed directory, the X.500 protocol has been slow to gain acceptance. The X.500 protocol specification describes a technical framework, interoperability requirements and compliance criteria, however, it does not describe specific implementations. Therefore, many of the details of implementation have been deferred to systems providers, which has resulted in variability and ultimately the lack of a true standard.
A distributed directory contains a collection of objects with associated attributes or properties tied together by their relationship to each other. For example, FIG. 1 shows an object named "Computer" with some of its associated properties, such as "Owner", "Operator", "Status", etc. The values of the associated attributes are not shown in FIG. 1, but an example of a value for the property "Owner" might be "George". Often, objects in a distributed directory and their names (e.g. "Computer" in FIG. 1) represent things that humans relate to when dealing with computers. For instance, some typical objects might represent users, printers, print queues, network files, resources, etc. In addition, objects could represent non-computer related things, such as countries, companies, organizations, departments, buildings, etc. As one with ordinary skill in the art will readily appreciate, an object can represent virtually anything, whether imaginary or real.
Often, the objects contained within a distributed directory can be viewed by a user in a hierarchial structure, generally in the form of a tree, where objects are organized in subtrees and partitions. FIG. 2 shows such a hierarchial structure. Each of the branches and terminating points represent objects in the distributed directory, and each of the circles represent partitions. Each partition contains a set of objects wherein the root-most object is referred to as the partition root. Multiple replicas of a partition can be stored in the distributed directory, wherein each insular server could hold a unique set of partitions and at the same time hold a unique hierarchy of objects within that insular machine. A server that maintains a partition is referred to as a name server, which is responsible for updating and making modifications to objects within the partition. Through the distributed directory framework, changes made by the name server to the partition will be distributed to the various replicas. Directory schemas define and determine the types of replicas of each partition, such as master partitions, read only partitions, duplicate partitions, etc. This hierarchial structure of objects and partitions is an effective way to reduce network storage, control network traffic, and ultimately speed access to the distribute directory.
The hierarchial structure or tree provides a logical means of searching for information within the distributed directory. The tree is generally patterned after logical groupings such as organizations, organizational units, computers, users, etc. For example, in FIG. 2 Partition A could represent the legal department of a company and Partition C could represent the tax group, a subordinate group to the legal department. Each partition forms a major subtree of the distributed directory. Taken together, the partitions form a hierarchial structure of partitions that lead back to the Root Partition. Where boundaries of two partitions meet, the partition closer to the Root Partition is considered superior, and the partition further from the Root Partition is considered subordinate. Thus, in FIG. 2 Partition E is subordinate to Partition B and subordinate to the Root Partition, and Partition B is superior to Partition E and subordinate to the Root Partition.
These logical groupings, while extremely useful in helping users find relevant information, can create logistical challenges in managing the distributed directory. As objects in the distributed directory change, the distributed directory must be changed as well. For example, organizations, organizational units, computers and users all move. Today, the legal department may be reporting through the finance department. Tomorrow, one of the employees of the finance department might be moved to marketing. The day after, another employee could receive a promotion granting him or her new rights and privileges. Therefore, objects and partitions in the distributed directory must be capable of being changed.
A distributed directory can become accessible to non-trusted parties, and such parties could make unauthorized changes within the distributed directory. This is particularly true as a distributed directory proliferates and more name servers are added to the network. For example, two companies may participate in the same distributed network. While complete trust may not exist between the two companies, each company could have a name server that maintains a partition within the distributed directory and have replicas of other partitions. As is readily apparent to one with ordinary skill in the art, such access could take a variety of forms and is not limited by the previous example. Because non-trusted parties could access information contained in the distributed directory, these non-trusted parties may tamper with or change important information in the distributed directory. If such tampering is allowed, the success of a distributed directory could be severely impacted.
Tampering may occur in objects that employ a static means of resolving object attributes, also referred to as static resolution. Another means of resolving object attributes is referred to as dynamic resolution. Resolving object attributes refers to comparing an attribute value or a set of values within one or more objects with another value or set of values to determine if they match. Generally, static resolution is employed to decrease network traffic in larger networks, whereas dynamic resolution is generally used in smaller networks. For example, FIG. 3 compares these two means to resolve object attributes. The people and things Boyd 31, Group A 32, and Printer C 33 are all represented by objects 31a,b, 32a,b, and 33a,b. As represented by the Dynamic resolution table 34, upon receiving request from Boyd 31 to print to Printer C 33, a dynamic system searches through random access memory ("RAM") for the object Printer C 33a in Column 36a. Next, the dynamic system 34 searches through the associated attributes 37a of the object Printer C 33a. When the dynamic system 34 finds the object Group A 32a, it then searches through the associated attributes 37a of the object Group A 32a until it finds the object Boyd 31a. Having resolved the object attributes and checked that the values match, the system has verified that the object Boyd 31a has authorization to access the object Printer C 33a, and the dynamic system 34 then accepts the request from the Boyd 31 to print to the Printer C 33. On the other hand, a static system 35 searches the associated attribute 37b the object Boyd 31b for the object Printer C 33b. If the object Printer C 33b is an attribute of the object Boyd 31b, the static system 35 then accepts the request from Boyd 31 to print to Printer C 33. While a dynamic system 34 tends to be faster in smaller computer systems, a static system 35 tends to be faster in larger computer systems.
While providing superior performance in larger computer systems, static resolution can introduce a potential security problem, particularly in a distributed directory having multiple replicas of partitions. For instance, if the object Boyd 31b is maintained by a name server that is physically located in Company A, and the object Printer C 33b is maintained by a separate name server that is physically located in Company B, someone could, without Company B's consent, tamper with the attributes 37b of the object Boyd 31b and add Printer C 33b as an attribute. As a result, Boyd 31 could access Printer C33 even though Company B did not authorize such access. This is true because a static system 35 looks at the attributes 37b associated with the object 36b requesting access, which object 36b is beyond the control of Company B. Thus, there is a need for a means for resolving object attributes without the attendant problems with the prior art.
SUMMARY OF THE INVENTION
Accordingly, an object of this invention is to increase security in computers.
An additional object of this invention is to provide an improved method for resolving attributes of objects.
Another object of this invention is to provide an improved method for synchronizing attributes associated with objects.
Yet another object of this invention is to provide an improved method for securing object changes.
A further object of this invention is to provide an improved method for enhancing static object resolution.
Still a further object of this present invention is to achieve the foregoing objects in a distributed directory.
Additional objects, advantages, and novel features of the invention will be set forth in part in the description that follows and in part will become apparent to those skilled in the art upon examining or practicing the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
To achieve the foregoing and other objects of this invention, a method is provided for verifying that a first object has authorization to access a second object. The first object has a Security Equals associated attribute, which attribute contains a list of other objects from which the first object derives or inherits rights. The second object has an Equivalent To Me associated attribute, which attribute contains an authoritative list of all objects that have security equal to the second object. Authorization is verified if the Security Equals attribute in the first object and the Equivalent To Me attribute in the second object are synchronized. The two associated attributes are synchronized when the Security Equals attribute of the first object includes the second object, and the Equivalent To Me attribute of the second object includes the first object. If the two attributes are not synchronized, a further aspect of the invention provides for the system to notify a person or a computer that unauthorized access to the second object was attempted.
The present invention also provides a process for synchronizing the Security Equals and the Equivalent To Me attributes. The process of synchronization can be initiated upon receiving a request to modify the Equivalent To Me attribute of the second object. For example, such a request could suggest that the first object be added to the Equivalent To Me list of the second object. Next, the process verifies that the Equivalent To Me attribute may be modified. Verification can be achieved in a variety of ways, including checking that the requestor has proper system authorization or checking through business administrative procedures that the first object has authorization to access the second object. Once verified, the first object can be added to the Equivalent To Me attribute of the second object. Then, the Security Equals attribute of the first object can be synchronized to the modified Equivalent To Me attribute by adding the second object to the Security Equals attribute.
Still other aspects of the present invention will become apparent to those skilled in the art from the following description of a preferred embodiment, which is simply by way of illustration is one of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of other different obvious aspects all without departing from the invention. Accordingly, the drawings and descriptions are illustrative in nature and not restrictive.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, incorporated in and forming part of the specification, illustrate several aspects of the present invention and together with their description serve to explain the principles of the invention. In the drawings:
FIG. 1 shows a typical object with some of its associated attributes;
FIG. 2 shows a typical distributed directory;
FIG. 3 illustrates the difference between dynamic and static resolution;
FIG. 4 illustrates the use of the Security Equals and Equivalent To Me attributes in a distributed directory employing static resolution of object attributes where the attributes are synchronized; and
FIG. 5 illustrates the use of the Security Equals and Equivalent to Me attributes in a distributed directory employing static resolution of object attributes where the attributes are not synchronized.
Reference will now be made in detail to the present preferred embodiment of the invention, an example of which is illustrated in the accompanying drawings, wherein like numerals indicate the same elements throughout the views.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The software of the preferred embodiment of the invention supports a security mechanism for deterring the tampering of objects contained in a distributed directory. The distributed directory of the preferred embodiment has a schema that includes a collection of class definitions and attribute definitions. Each object in this schema belongs to a class, which class has a textual name within a class hierarchy. Descending the class hierarchy corresponds to increasing specialization. For example, a server is a specialization of a device, and a print server is a specialization of a server. The objects also has a name hierarchy, which can be analogized to a tree structure. Objects at interior nodes, or objects closer to the root of the tree, are "container" objects that are considered superior to relatively exterior nodes, or objects closer to the leaves of the tree, which are considered subordinate. In addition to belonging to a class these objects have attributes whose values can be read and written. Each attribute has a textual name and a syntax by which its values are represented, wherein the name can be from one to 32 characters in length (excluding null termination). A given attribute can have a range of valid values and a variety of other attribute characteristics, such as whether an attribute is mandatory or optional.
Objects can reference other objects. Such references are organized or controlled by specialized access attributes associated with such objects. In the preferred embodiment, when a first object references a second object, the first object contains an access attribute named "Security Equals" and the second object contains an access attribute named "Equivalent To Me." Both access attributes are statically resolved and may have multiple values. The Security Equals attribute, which as used in the present specification and claims shall mean any attribute that contains a list of other objects from which the first object derives or inherits rights, or to which the object has access rights. For instance, a user object named Boyd, having the objects George and Group A in its Security Equals attribute list, inherits the rights that George and Group A have for other objects. As a further example, a user object named Heidi could have the object Tape Drive in its Security Equals attribute list whereby Heidi would have access rights to the Tape Drive. The Equivalent To Me attribute, which as used in the present specification and claims shall mean any attribute that contains a list of all objects that have security equal to the object associated with that attribute. In the present embodiment, the Equivalent To Me attribute is used as the authoritative attribute for access control of a given object. So, in the foregoing examples, the objects George and Group A would have Boyd in their Equivalent To Me attribute lists, and the object Type Drive would have Heidi in its Equivalent To Me attribute list.
FIG. 4 illustrates how the Security Equals and Equivalent To Me attributes are used in the preferred embodiment. In this example, Company A 41a and Company B 41b work with one another in separate offices, however complete trust does not exist between the two companies. The two companies 41a, 41b both share and participate in a distributed network 40, wherein each company operates a name server 47a, 47b that maintains a partition 42a, 42b for the respective companies 41a, 41b. Each of these partitions 42a, 42b are subordinate to the root partition 42. An employee of Company A 41a named Boyd 43 operates a client computer 43a that communicates with the name server 47a as part of their working relationship. Boyd 43 has been authorized to print to and otherwise access Printer C 45 located in the offices of Company B 41b. The partition 42a includes an object Boyd 44 representing employee Boyd 43, which object 44 has a Security Equals attribute 48. Similarly, the partition 42b includes an object Printer C 46 that has an Equivalent To Me attribute 49, which object 46 represents the physical Printer C 45. The name server 47a controls and maintains the object Boyd 44, and the name server 47b controls and maintains the object Printer C 46.
As one skilled in the art will readily appreciate, the two servers 47a, 47b can telecommunicate between each other either directly or indirectly in any of a variety of ways, such as modem, physical connections, internetworking, gateway links, satellite links, etc. Although the present example demonstrates an embodiment of this invention in the context of a distributed directory 40, the teachings of this disclosure could be readily applied by one with ordinary skill in the art in multiple other arrangements, such as between two machines having discrete non-distributed directories or within a single machine that maintains both the objects in question 44, 46.
In the present example, when Boyd 43 uses an application running on the client computer 43a to request access to Printer C 45, such as the form of a print job, the client 43a passes the request to the server 47a in the form of a request such as "Resolve Name." Resolve Name is an operation whereby a client may start determining the values of the various attributes. This operation takes an object's Distinguished Name and returns "Entry IDs" or addresses of the object that can be used to access a corresponding value. Through the request parameters, the client computer 43a indicates the various characteristics of the desired Entry ID. In the present example, Resolve Name can additionally identify the Distinguished Name of Printer C 45, namely CN=Printer C.OU=Domain B.O=Company B which represents where the object Printer C 46 is located within the distributed directory hierarchy. In this example, "CN" is the common name, "O" is the organizational name, and "OU" is the organizational unit.
Next, the preferred embodiment looks into the list of values in the Security Equal attribute 48 of object Boyd 44 using a function such as "Read". Read is a function used to determine the value of an attribute, which function returns the values of a given attribute for a specified object. When used in the context of the present example, the server 47a uses Read to resolve the Security Equals attribute 48 and return the value "Printer C". After resolving the Security Equals attribute 48, the server 47a issues a Read request to the server 47b located in Company B 41b. Similar to the Read request for the object Boyd 44, the server 47b references the object Printer C 46 and returns the access control list associated with the Equivalent To Me attribute 49. In the present example, a value in the Equivalent To Me attribute 49 is "Boyd." Next, synchronization between the attributes 48, 49 is checked. Synchronization is determined by comparing the values for Security Equals attribute 48 and the Equivalent To Me attribute 49, and determining if the respective attributes 48, 49 reference the opposite objects 44, 46. The example illustrated in FIG. 4 shows synchronization between the attributes of the two objects: "Printer C" is the value of the Security Equals attribute 48 and "Boyd" is the value of the Equivalent To Me attribute 49. Having established that there is synchronization, the servers 47a, 47b acknowledge that employee Boyd 43 has authorization to access the physical Printer C 45, and the print job is then processed.
While FIG. 4 demonstrates what happens when the values of Security Equals and Equivalent To Me attributes 48, 49 are synchronized, FIG. 5 demonstrates when the attributes are not synchronized. Like the prior example, Company A 51a and Company B 51b work together, however complete trust does not exist between two companies. In this example, an employee named Joyce 53 of Company A 51a will attempt to gain unauthorized access to Printer C 55 located in Company B 51b. The companies 51a, 51b participate in a distributed directory 50, wherein each company has a name server 57a, 57b that maintains a partition 52a, 52b, respectively. Server 57a maintains the object Joyce 54, and server 57b maintains the object Printer C 56. The two companies 51a, 51b in their working relationship have agreed that Joyce 53 should not have access to Printer C 55, thus the value "Printer C" has not been added as a value to the Security Equals attribute 58 of the object Joyce 53, and "Joyce" has not been added as a value to the Equivalent To Me attribute 59 of the object Printer C 56.
Disregarding this agreement, employee Joyce 53 will attempt to access Printer C 55 by modifying the values associated with the object Joyce 54. In the present example, such modification takes the form of adding the value "Printer C" to the Security Equals attribute 58 (shown in italics to indicate an illicit modification). In this example, Joyce 53 had the ability to modify the object Joyce 54 because she had physical access to the server 57a. However, access can take a variety of other forms.
Having modified the Security Equals attribute 58 of the object Joyce 54, the employee Joyce 53 makes a request to access Printer C 55, such as sending a print job through the client computer 53a. The client computer 53a forwards a request such as Resolve Name to server 57a. Using a function such as Read, the server 57a resolves the values of the Security Equals attribute 58 for the object Joyce 54. Because the employee Joyce 53 added the value "Printer C" to the Security Equals attribute 58, the server 57a will not detect an anomaly and will issue a request to server 57b located in Company B 51b using a function such as Read. Next, the server 57b accesses the Equivalent To Me values 59 for the object Printer C 56. Because the value "Joyce" is not a value in the Equivalent To Me attribute, there is no synchronization, and access to Printer C55 will be denied. The server 57a will notify Joyce 53 through a message that she does not have rights to Printer C 55. In addition, either one of the servers 57a, 57b could notify the system administrator (not shown), a separate name server (not shown), or Printer C 55 that employee Joyce 53 attempted an unauthorized access to Printer C 55.
While the examples illustrated in FIGS. 4 and 5 concern access to a printer, one with ordinary skill in the art will readily appreciate that the present invention can be applied to virtually anything represented by objects, such as computers, print servers, fax servers, storage devices, databases, etc. In addition, the present invention is not limited to things represented by objects located in different physical locations or separate computers. For example, the present invention could be applied in a wing of an advertising firm having one server that maintains objects representing an expensive color printer and the employees, wherein only certain graphic designers are allowed access to the printer. The present invention could also be applied to non-physical objects, such as subdirectories, partitions, files, databases, applications, etc. For instance, a company could implement the present invention to limit access to a subdirectory containing sensitive company information relating to a corporate merger. The system administrator of the company LAN, which could have only one server, could establish a subdirectory object named "Merger" having an Equivalent To Me attribute with a list of values of user objects representing the privy employees: Jay, Heidi, and Rob. For each of these user objects, the system administrator could add the value "Merger" to their Security Equals attribute. In doing so, only the users Jay, Heidi, and Rob could access the subdirectory Merger. The present invention could also be applied within a program or on a system level. For example, in an insular stand-alone machine, one object variable could attempt access to a second object variable as part of a program organization, wherein the request is initiated automatically without a human prompt. These examples are intended to illustrate that the present invention can be applied wherever object attributes are resolved.
The specifically described embodiment includes a mechanism for securely synchronizing the Security Equals and Equivalent To Me attributes. Using the example illustrated in FIG. 4, Boyd 43 could be granted access to Printer C 45 by synchronizing the Security Equals and Equivalent To Me attributes 48, 49 of the respective objects 44, 46. The process of synchronization can be initiated in a variety of ways. For example, synchronization can be initiated when a network client application, possibly operated by the system administrator, passes a request to server 47b to add the value "Boyd" to the Equivalent To Me attribute 49 of the object Printer C 46. Such a request could take the form of a request such as "Modify Object." Modify Object is a function used for modifying attribute values for a specified object, wherein the act of modifying can include adding, deleting or changing the values of a given attribute. The distributed directory schema of the preferred embodiment allows most attributes to have multiple values, so there may be several kinds of individual changes to the same attribute in a Modify Object request, each modification adding, deleting or changing an attribute value.
After receiving the Modify Object request, the server 47b verifies the existence of the object Boyd 44 by making the request Resolve Name. In the present example, where the object Boyd 44 is maintained by the server 47a, this request must be sent to server 47a, which responds whether or not the object Boyd 44 exists. If the object Boyd 44 exists, the server 47b verifies that employee Boyd 43 has access rights to Printer C 45. This verification can be accomplished in any number of different ways. For example, the server 47b can read a database of the various objects and the corresponding access rights, possibly located in the root partition 42. As a further example, the server 47b could prompt the system administrator or some other user having the appropriate corporate authority to confirm that employee Boyd 43 has access rights. Having verified that employee Boyd 43 has access rights to Printer C 45, the server 47b modifies the Equivalent To Me attribute 49 of the object Printer C 46 by adding the value "Boyd" in the Equivalent To Me attribute 49.
Next, the server 47b issues a "Check Sev" request to server 47a. Check Sev is a request to check the security equivalence of an object. After receiving the Check Sev request, the server 47a notes that server 47b suggests that a change has been made to the Equivalent To Me attribute 49 of the object Printer C 46 and that the object Boyd 44 was involved in the change. Then, server 47a issues a request to the server 47b in the form of Resolve Name for the object Printer C 46, and server 47b returns the corresponding Entry ID. Next, server 47a issues a request in the form of "Read Entry Info" to determine the partition root (not shown) of partition 42b containing the object Printer C 46. Read Entry Info is different from Read. While Read obtains values of an object's attributes, Read Entry Info obtains other values associated with the object. For instance, using Read Entry Info a client can read an entry's modification time stamp, the Entry ID of its containing parent, or any other of a variety of values associated with the object.
The server 47a then issues a request in the form of Read to determine the attribute values of Printer C's object 46. Next, server 47a issues a request to server 47b in the form of "Compare" to verify the presence or absence of the value "Boyd" in the Equivalent To Me attribute 49 of the object Printer C 46. The Compare operation reports whether a client-supplied value is one of the entry values for an attribute identified in the request. A common use of the Compare operation is to determine if a user object is a member of a specific group. Lastly, the server 47a modifies the Security Equals attribute 48 of the object Boyd 44 based on the presence or absence of Equivalent To Me attribute 49. If the value is present, the server 47a adds the value "Printer C" in the Security Equals attribute 48. On the other hand, if the value is not present the server 47a does not add the value "Printer C" to Security Equals attribute 48.
The foregoing description of the preferred embodiment of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive nor to limit the invention to the precise form disclosed. Many alternatives, modifications and variations will be apparent to those skilled in the art in light of the above teaching. Accordingly, this invention is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.

Claims (26)

We claim:
1. A method of resolving object attributes in a computer system, wherein a first object and a second object each have at least one associated attribute and each object is part of a distributed directory having a schema, comprising the steps of:
a) determining an associated attribute of the first object;
b) checking that the second object is included in the associated attribute of the first object;
c) determining an associated attribute of the second object; and
d) checking that the first object is included in the associated attribute of the second object.
2. A method as recited in claim 1, further comprising the step of notifying that the attributes of the first and second objects are not synchronized if at least one of the following events occurs:
a) the second object is not included in the associated attribute of the first object; or
b) the first object is not included in the associated attribute of the second object.
3. A method as recited in claim 1, further comprising the step of allowing the first object to access the second object if:
a) the second object is included in the associated attribute of the first object; and
b) the first object is included in the associated attribute of the second object.
4. A method as recited in claim 1, wherein the first and second objects employ static resolution.
5. A method as recited in claim 1, wherein the associated attribute of the first object is a Security Equals attribute, and the associated attribute of the second object is an Equivalent To Me attribute.
6. A method as recited in claim 1, wherein the first and second objects are contained within different partitions in a distributed directory.
7. A method as recited in claim 6, wherein the different partitions are maintained by different servers.
8. A method of synchronizing an associated attribute of a first object and an associated attribute of a second object in a computer system, wherein each object is part of a distributed directory having a schema, comprising the steps of:
a) receiving a request to modify the associated attribute of the second object;
b) verifying that the associated attribute of the second object may be modified;
c) modifying the associated attribute of the second object; and
d) synchronizing the associated attribute of the first object and the associated attribute of the second object by modifying the associated attribute of the first object to correspond to the modified associated attribute of the second object.
9. A method as recited in claim 8, further comprising after Step (c) and before Step (d) the step of verifying that the associated attribute of the second object has been modified.
10. A method as recited in claim 8, wherein the act of modifying an associated attribute includes one or more of the following steps:
a) adding a value to such an attribute;
b) deleting a value to such an attribute; or
c) changing a value to such an attribute.
11. A method as recited in claim 8, wherein the step of modifying the associated attribute of the first object to correspond to the modified associated attribute of the second object is achieved by adding the second object to the attribute of the first object if the first attribute was added to the attribute of the second object.
12. A method as recited in claim 8, wherein the step of modifying the associated attribute of the first object to correspond to the modified associated attribute of the second object is achieved by deleting the second object from the attribute of the first object if the first object was deleted from the attribute of the second object.
13. A method as recited in claim 8, wherein the first and second objects are contained within different partitions in a distributed directory.
14. A method as recited in claim 13, wherein the different partitions are maintained by different servers.
15. A method of verifying that a first object has authorization to access a second object in a computer system, wherein the first object and the second object each have at least one associated attribute and each object is part of a distributed directory having a schema, comprising the steps of:
a) receiving a request for the first object to access the second object;
b) determining the associated attribute of the first object and the associated attribute of the second object;
c) checking that the second object is included in the associated attribute of the first object and that the first object is included in the associated attribute of the second object; and
d) verifying that the first object has authorization to access the second object if:
i. the second object is included in the associated attribute of the first object; and
ii. the first object is included in the associated attribute of the second object.
16. A method as recited in claim 15, further comprising the step of: notifying that an unauthorized access to the second object was attempted if one of the following events occurs:
a) the second object is not included in the associated attribute of the first object; or
b) the first object is not included in the associated attribute of the second object.
17. A method as recited in claim 15, wherein the first and second objects employ a static resolution to resolve object attributes.
18. A method as recited in claim 15, wherein the associated attribute of the first object is a Security Equals attribute, and the associated attribute of the second object is an Equivalent to Me attribute.
19. A method as recited in claim 15, wherein the first and second objects are contained within different partitions in a distributed directory.
20. A method as recited in claim 19, wherein the different partitions are maintained by different servers.
21. A method as recited in claim 1, wherein the schema comprises a plurality of class definitions, each of the objects belonging to at least one class definition.
22. A method as recited in claim 21, wherein the schema comprises a plurality of attribute definitions, each of the objects having at least one attribute definition.
23. A method as recited in claim 22, wherein at least one attribute definition has a plurality of attribute values.
24. A computer system comprising a first computer and a second computer which are capable of transmitting and receiving information from one another, which first and second computers access a plurality of objects, wherein the first computer maintains a first object and the second computer maintains a second object, wherein the first and second objects are part of a distributed directory having a schema and wherein the first object has a first associated attribute which references at least the second object and the second object has a second associated attribute which references at least the first object.
25. A computer readable medium comprising a program for resolving object attributes having a first directory object and a second object, wherein each of said objects includes at least one associated attributed, wherein each object is part of a distributed directory having a schema, the program being capable of resolving object attributes by performing the steps of:
a) receiving a request for the first object to access the second object;
b) determining the associated attribute of the first object and the associated attribute of the second object;
c) checking that the second object is included in the associated attribute of the first object and that the first object is included in the associated attribute of the second object; and
d) verifying that the first object has authorization to access the second object if:
i. the second object is included in the associated attribute of the first object; and
ii. the first object is included in the associated attribute of the second object.
26. A computer system accessing a plurality of objects having associated attributes, wherein each of the objects is part of a distributed directory having a schema, the computer system comprising:
a) means for receiving a request for a first object to access a second object;
b) means for determining an associated attribute of the first object and an associated attribute of the second object;
c) means for checking that the second object is included in the associated attribute of the first object and that the first object is included in the associated attribute of the second object; and
d) means for verifying that the first object has authorization to access the second object if:
i. the second object is included in the associated attribute of the first object; and
ii. the first object is included in the associated attribute of the second object.
US08/573,034 1994-12-15 1995-12-15 Method and apparatus to secure distributed digital directory object changes Expired - Lifetime US5784560A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/573,034 US5784560A (en) 1994-12-15 1995-12-15 Method and apparatus to secure distributed digital directory object changes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/357,467 US5677851A (en) 1994-12-15 1994-12-15 Method and apparatus to secure digital directory object changes
US08/573,034 US5784560A (en) 1994-12-15 1995-12-15 Method and apparatus to secure distributed digital directory object changes

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US08/357,467 Continuation-In-Part US5677851A (en) 1994-12-15 1994-12-15 Method and apparatus to secure digital directory object changes

Publications (1)

Publication Number Publication Date
US5784560A true US5784560A (en) 1998-07-21

Family

ID=23405731

Family Applications (2)

Application Number Title Priority Date Filing Date
US08/357,467 Expired - Lifetime US5677851A (en) 1994-12-15 1994-12-15 Method and apparatus to secure digital directory object changes
US08/573,034 Expired - Lifetime US5784560A (en) 1994-12-15 1995-12-15 Method and apparatus to secure distributed digital directory object changes

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US08/357,467 Expired - Lifetime US5677851A (en) 1994-12-15 1994-12-15 Method and apparatus to secure digital directory object changes

Country Status (8)

Country Link
US (2) US5677851A (en)
EP (1) EP0745239B1 (en)
JP (1) JP2868315B2 (en)
KR (1) KR100256594B1 (en)
AU (1) AU4685996A (en)
CA (1) CA2182791C (en)
DE (1) DE69500424T2 (en)
WO (1) WO1996018941A2 (en)

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878415A (en) * 1997-03-20 1999-03-02 Novell, Inc. Controlling access to objects in a hierarchical database
US5893116A (en) * 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US5892828A (en) * 1996-10-23 1999-04-06 Novell, Inc. User presence verification with single password across applications
US5933826A (en) * 1997-03-21 1999-08-03 Novell, Inc. Method and apparatus for securing and storing executable content
US5983234A (en) * 1997-09-17 1999-11-09 Novell, Inc. Method and apparatus for generically viewing and editing objects
US6014667A (en) * 1997-10-01 2000-01-11 Novell, Inc. System and method for caching identification and location information in a computer network
US6047289A (en) * 1997-11-07 2000-04-04 Novell, Inc. Method and apparatus for directed data propagation
US6119122A (en) * 1997-09-17 2000-09-12 Novell, Inc. Method and apparatus for generically viewing and editing objects
US20010002473A1 (en) * 1998-02-26 2001-05-31 Sun Microsystems, Inc. Dynamic lookup service in a distributed system
US6263433B1 (en) * 1998-09-30 2001-07-17 Ncr Corporation Provision of continuous database service and scalable query performance using active redundant copies
US6308181B1 (en) 1998-12-19 2001-10-23 Novell, Inc. Access control with delayed binding of object identifiers
US6356913B1 (en) * 1999-06-09 2002-03-12 Avaya Technology Corp. Generic (database-independent) and dynamically-modifiable schema
US20020049827A1 (en) * 2000-10-25 2002-04-25 Carl Dionne Object duplication
US6389540B1 (en) 1998-02-26 2002-05-14 Sun Microsystems, Inc. Stack based access control using code and executor identifiers
US6424976B1 (en) 2000-03-23 2002-07-23 Novell, Inc. Method of implementing a forward compatibility network directory syntax
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US20020124118A1 (en) * 2001-01-04 2002-09-05 Colley Adrian E. Method and system for passing objects in a distributed system using serializatin contexts
US6449648B1 (en) 1996-10-11 2002-09-10 Sun Microsystems, Inc. Lease renewal service
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6480863B1 (en) 1997-11-17 2002-11-12 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6519615B1 (en) 1996-10-11 2003-02-11 Sun Microsystems, Inc. Method and system for leasing storage
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6564240B2 (en) 1996-10-11 2003-05-13 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US20030105978A1 (en) * 2001-11-13 2003-06-05 Sun Microsystems, Inc. Filter-based attribute value access control
US20030110246A1 (en) * 2001-10-29 2003-06-12 Sun Microsystems, Inc. Macro-based access control
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6601171B1 (en) 1999-02-18 2003-07-29 Novell, Inc. Deputization in a distributed computing system
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
US6629154B1 (en) 1998-02-26 2003-09-30 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6651109B1 (en) * 1997-03-31 2003-11-18 Intel Corporation Inter-object messaging
US6654793B1 (en) 1996-04-23 2003-11-25 Sun Microsystems, Inc. System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6708276B1 (en) 1999-08-03 2004-03-16 International Business Machines Corporation Architecture for denied permissions in Java
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6768985B1 (en) * 1999-08-30 2004-07-27 Unisys Corporation Method and apparatus for administration of database partitions
US6823454B1 (en) * 1999-11-08 2004-11-23 International Business Machines Corporation Using device certificates to authenticate servers before automatic address assignment
US6826690B1 (en) * 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
WO2004068722A3 (en) * 2003-01-24 2004-12-16 Coco Communications Corp Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
US6839755B1 (en) * 1998-09-30 2005-01-04 Hewlett-Packard Development Company, L.P. Network peripheral server discovery method
US20050044423A1 (en) * 1999-11-12 2005-02-24 Mellmer Joseph Andrew Managing digital identity information
US20050169260A1 (en) * 2004-02-02 2005-08-04 Elisa Andrews Methods, systems, and storage mediums for providing database management services for a telecommunications system
US20060059211A1 (en) * 2004-09-10 2006-03-16 Canon Kabushiki Kaisha Information processing method and information processing apparatus
US20070027910A1 (en) * 2002-09-12 2007-02-01 Buss Duane F Enforcing security on attributes of objects
US20090049523A1 (en) * 2007-08-16 2009-02-19 International Business Machines Corporation Method and system for multiplexing multiple level security server applications on the same internet address and port
US20090049524A1 (en) * 2007-08-16 2009-02-19 International Business Machines Corporation System and method for partitioning a multi-level security namespace
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7734747B2 (en) 1998-02-26 2010-06-08 Oracle America, Inc. Dynamic lookup service in a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US20100228820A1 (en) * 2009-03-04 2010-09-09 Canon Kabushiki Kaisha Image processing apparatus, control method, and storage medium
US20100235630A1 (en) * 2009-03-13 2010-09-16 Novell, Inc. System and method for providing key-encrypted storage in a cloud computing environment
US20100235903A1 (en) * 2009-03-13 2010-09-16 Novell, Inc. System and method for transparent cloud access
US20100235539A1 (en) * 2009-03-13 2010-09-16 Novell, Inc. System and method for reduced cloud ip address utilization
US20110106927A1 (en) * 2008-08-25 2011-05-05 Novell, Inc. System and method for implementing cloud mitigation and operations controllers
US20110106926A1 (en) * 2008-08-25 2011-05-05 Novell, Inc. System and method for implementing a cloud workflow
US7949722B1 (en) * 1999-09-29 2011-05-24 Actv Inc. Enhanced video programming system and method utilizing user-profile information
US8479281B2 (en) 2008-03-26 2013-07-02 Dell Products L.P. Authentication management methods and media
US9183066B2 (en) 1998-03-20 2015-11-10 Oracle America Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
WO2015194957A1 (en) * 2014-06-20 2015-12-23 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Data verification in a distributed data processing system
US20190116198A1 (en) * 2017-10-16 2019-04-18 Wise Network Science and Technology Consultancy Limited Method For Model Checking On The Design Of Security checking software Of Safety-critical Distributed Storage System

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5877897A (en) 1993-02-26 1999-03-02 Donnelly Corporation Automatic rearview mirror, vehicle lighting control and vehicle interior monitoring system using a photosensor array
US6822563B2 (en) 1997-09-22 2004-11-23 Donnelly Corporation Vehicle imaging system with accessory control
US5832487A (en) * 1994-12-15 1998-11-03 Novell, Inc. Replicated object identification in a partitioned hierarchy
JP3262689B2 (en) 1995-05-19 2002-03-04 富士通株式会社 Remote control system
US6891563B2 (en) 1996-05-22 2005-05-10 Donnelly Corporation Vehicular vision system
US6006018A (en) * 1995-10-03 1999-12-21 International Business Machines Corporation Distributed file system translator with extended attribute support
DE19547108A1 (en) * 1995-12-16 1997-06-19 Sel Alcatel Ag Method for integrating additional function modules into a control device of a switching system and switching system
US5787427A (en) * 1996-01-03 1998-07-28 International Business Machines Corporation Information handling system, method, and article of manufacture for efficient object security processing by grouping objects sharing common control access policies
US7655894B2 (en) 1996-03-25 2010-02-02 Donnelly Corporation Vehicular image sensing system
US5913025A (en) * 1996-11-14 1999-06-15 Novell, Inc. Method and apparatus for proxy authentication
US5903720A (en) * 1996-12-13 1999-05-11 Novell, Inc. Object system capable of using different object authorization systems
US5889958A (en) * 1996-12-20 1999-03-30 Livingston Enterprises, Inc. Network access control system and process
US6029246A (en) * 1997-03-31 2000-02-22 Symantec Corporation Network distributed system for updating locally secured objects in client machines
US6105062A (en) * 1998-02-26 2000-08-15 Novell, Inc. Method and system for pruning and grafting trees in a directory service
US6189103B1 (en) 1998-07-21 2001-02-13 Novell, Inc. Authority delegation with secure operating system queues
US6366913B1 (en) * 1998-10-21 2002-04-02 Netscape Communications Corporation Centralized directory services supporting dynamic group membership
US7305562B1 (en) 1999-03-09 2007-12-04 Citibank, N.A. System, method and computer program product for an authentication management infrastructure
US6256737B1 (en) 1999-03-09 2001-07-03 Bionetrix Systems Corporation System, method and computer program product for allowing access to enterprise resources using biometric devices
US7260715B1 (en) * 1999-12-09 2007-08-21 Koninklijke Philips Electronics N.V. Method and apparatus for revocation list management
US7013485B2 (en) * 2000-03-06 2006-03-14 I2 Technologies U.S., Inc. Computer security system
US7441263B1 (en) 2000-03-23 2008-10-21 Citibank, N.A. System, method and computer program product for providing unified authentication services for online applications
US6396408B2 (en) 2000-03-31 2002-05-28 Donnelly Corporation Digital electrochromic circuit with a vehicle network
US6519610B1 (en) * 2000-09-01 2003-02-11 Novell, Inc. Distributed reference links for a distributed directory server system
US20020065874A1 (en) * 2000-11-29 2002-05-30 Andrew Chien Method and process for virtualizing network interfaces
US7382787B1 (en) 2001-07-30 2008-06-03 Cisco Technology, Inc. Packet routing and switching device
US7697027B2 (en) 2001-07-31 2010-04-13 Donnelly Corporation Vehicular video system
US6882287B2 (en) 2001-07-31 2005-04-19 Donnelly Corporation Automotive lane change aid
US7127477B2 (en) 2001-11-06 2006-10-24 Everyware Solutions Inc. Method and system for access to automatically synchronized remote files
US7636937B1 (en) * 2002-01-11 2009-12-22 Cisco Technology, Inc. Method and apparatus for comparing access control lists for configuring a security policy on a network
GB0207354D0 (en) * 2002-03-28 2002-05-08 Ibm Inheritance of access controls within a hierarchy of data processing system resources
US7734696B2 (en) * 2002-04-08 2010-06-08 Oracle International Corporation Hierarchical org-chart based email mailing list maintenance
US6946978B2 (en) * 2002-04-25 2005-09-20 Donnelly Corporation Imaging system for vehicle
WO2003093857A2 (en) 2002-05-03 2003-11-13 Donnelly Corporation Object detection system for vehicle
US7525904B1 (en) 2002-06-20 2009-04-28 Cisco Technology, Inc. Redundant packet routing and switching device and method
US7450438B1 (en) 2002-06-20 2008-11-11 Cisco Technology, Inc. Crossbar apparatus for a forwarding table memory in a router
US20040167991A1 (en) * 2002-11-08 2004-08-26 Ups, Inc. Method for providing gated network access
US7536476B1 (en) * 2002-12-20 2009-05-19 Cisco Technology, Inc. Method for performing tree based ACL lookups
US20030177051A1 (en) * 2003-03-13 2003-09-18 Robin Driscoll Method and system for managing worker resources
US7308341B2 (en) 2003-10-14 2007-12-11 Donnelly Corporation Vehicle communication system
US7526103B2 (en) 2004-04-15 2009-04-28 Donnelly Corporation Imaging system for vehicle
US7530111B2 (en) 2004-05-20 2009-05-05 International Business Machines Corporation Write-access control system
US8205254B2 (en) * 2004-05-20 2012-06-19 International Business Machines Corporation System for controlling write access to an LDAP directory
US7881496B2 (en) 2004-09-30 2011-02-01 Donnelly Corporation Vision system for vehicle
US7889712B2 (en) 2004-12-23 2011-02-15 Cisco Technology, Inc. Methods and apparatus for providing loop free routing tables
US7720580B2 (en) 2004-12-23 2010-05-18 Donnelly Corporation Object detection system for vehicle
US20060288050A1 (en) * 2005-06-15 2006-12-21 International Business Machines Corporation Method, system, and computer program product for correlating directory changes to access control modifications
US7895639B2 (en) * 2006-05-04 2011-02-22 Citrix Online, Llc Methods and systems for specifying and enforcing access control in a distributed system
WO2008024639A2 (en) 2006-08-11 2008-02-28 Donnelly Corporation Automatic headlamp control system
US8013780B2 (en) 2007-01-25 2011-09-06 Magna Electronics Inc. Radar sensing system for vehicle
US7914187B2 (en) 2007-07-12 2011-03-29 Magna Electronics Inc. Automatic lighting system with adaptive alignment function
US8017898B2 (en) 2007-08-17 2011-09-13 Magna Electronics Inc. Vehicular imaging system in an automatic headlamp control system
WO2009036176A1 (en) 2007-09-11 2009-03-19 Magna Electronics Imaging system for vehicle
WO2009046268A1 (en) 2007-10-04 2009-04-09 Magna Electronics Combined rgb and ir imaging sensor
EP2401176B1 (en) 2009-02-27 2019-05-08 Magna Electronics Alert system for vehicle
US8376595B2 (en) 2009-05-15 2013-02-19 Magna Electronics, Inc. Automatic headlamp control
US9495876B2 (en) 2009-07-27 2016-11-15 Magna Electronics Inc. Vehicular camera with on-board microcontroller
KR101735134B1 (en) 2009-07-27 2017-05-24 마그나 일렉트로닉스 인크. Parking assist system
US9041806B2 (en) 2009-09-01 2015-05-26 Magna Electronics Inc. Imaging and display system for vehicle
US9598016B2 (en) 2010-10-15 2017-03-21 Magna Mirrors Of America, Inc. Interior rearview mirror assembly
US8890955B2 (en) 2010-02-10 2014-11-18 Magna Mirrors Of America, Inc. Adaptable wireless vehicle vision system based on wireless communication error
US9117123B2 (en) 2010-07-05 2015-08-25 Magna Electronics Inc. Vehicular rear view camera display system with lifecheck function
US9180908B2 (en) 2010-11-19 2015-11-10 Magna Electronics Inc. Lane keeping system and lane centering system
US9900522B2 (en) 2010-12-01 2018-02-20 Magna Electronics Inc. System and method of establishing a multi-camera image using pixel remapping
US9264672B2 (en) 2010-12-22 2016-02-16 Magna Mirrors Of America, Inc. Vision display system for vehicle
US9085261B2 (en) 2011-01-26 2015-07-21 Magna Electronics Inc. Rear vision system with trailer angle detection
US9194943B2 (en) 2011-04-12 2015-11-24 Magna Electronics Inc. Step filter for estimating distance in a time-of-flight ranging system
WO2012145819A1 (en) 2011-04-25 2012-11-01 Magna International Inc. Image processing method for detecting objects using relative motion
WO2013016409A1 (en) 2011-07-26 2013-01-31 Magna Electronics Inc. Vision system for vehicle
US20140218535A1 (en) 2011-09-21 2014-08-07 Magna Electronics Inc. Vehicle vision system using image data transmission and power supply via a coaxial cable
WO2013048994A1 (en) 2011-09-26 2013-04-04 Magna Electronics, Inc. Vehicle camera image quality improvement in poor visibility conditions by contrast amplification
US9146898B2 (en) 2011-10-27 2015-09-29 Magna Electronics Inc. Driver assist system with algorithm switching
US8965847B1 (en) * 2011-10-28 2015-02-24 Oxygen Cloud, Inc. Independent synchronization of file data and file metadata
WO2013081985A1 (en) 2011-11-28 2013-06-06 Magna Electronics, Inc. Vision system for vehicle
US10457209B2 (en) 2012-02-22 2019-10-29 Magna Electronics Inc. Vehicle vision system with multi-paned view
WO2013126715A2 (en) 2012-02-22 2013-08-29 Magna Electronics, Inc. Vehicle camera system with image manipulation
US8694224B2 (en) 2012-03-01 2014-04-08 Magna Electronics Inc. Vehicle yaw rate correction
US10182228B2 (en) 2012-03-16 2019-01-15 Magna Electronics, Inc. Video output diagnostics for automotive application
US10609335B2 (en) 2012-03-23 2020-03-31 Magna Electronics Inc. Vehicle vision system with accelerated object confirmation
WO2013158592A2 (en) 2012-04-16 2013-10-24 Magna Electronics, Inc. Vehicle vision system with reduced image color data processing by use of dithering
US10089537B2 (en) 2012-05-18 2018-10-02 Magna Electronics Inc. Vehicle vision system with front and rear camera integration
US9340227B2 (en) 2012-08-14 2016-05-17 Magna Electronics Inc. Vehicle lane keep assist system
DE102013217430A1 (en) 2012-09-04 2014-03-06 Magna Electronics, Inc. Driver assistance system for a motor vehicle
US9446713B2 (en) 2012-09-26 2016-09-20 Magna Electronics Inc. Trailer angle detection system
US9558409B2 (en) 2012-09-26 2017-01-31 Magna Electronics Inc. Vehicle vision system with trailer angle detection
US9743002B2 (en) 2012-11-19 2017-08-22 Magna Electronics Inc. Vehicle vision system with enhanced display functions
US9090234B2 (en) 2012-11-19 2015-07-28 Magna Electronics Inc. Braking control system for vehicle
US10025994B2 (en) 2012-12-04 2018-07-17 Magna Electronics Inc. Vehicle vision system utilizing corner detection
US9481301B2 (en) 2012-12-05 2016-11-01 Magna Electronics Inc. Vehicle vision system utilizing camera synchronization
US9092986B2 (en) 2013-02-04 2015-07-28 Magna Electronics Inc. Vehicular vision system
US20140218529A1 (en) 2013-02-04 2014-08-07 Magna Electronics Inc. Vehicle data recording system
US10027930B2 (en) 2013-03-29 2018-07-17 Magna Electronics Inc. Spectral filtering for vehicular driver assistance systems
US9327693B2 (en) 2013-04-10 2016-05-03 Magna Electronics Inc. Rear collision avoidance system for vehicle
US10232797B2 (en) 2013-04-29 2019-03-19 Magna Electronics Inc. Rear vision system for vehicle with dual purpose signal lines
US9508014B2 (en) 2013-05-06 2016-11-29 Magna Electronics Inc. Vehicular multi-camera vision system
US10567705B2 (en) 2013-06-10 2020-02-18 Magna Electronics Inc. Coaxial cable with bidirectional data transmission
US9260095B2 (en) 2013-06-19 2016-02-16 Magna Electronics Inc. Vehicle vision system with collision mitigation
US20140375476A1 (en) 2013-06-24 2014-12-25 Magna Electronics Inc. Vehicle alert system
US10326969B2 (en) 2013-08-12 2019-06-18 Magna Electronics Inc. Vehicle vision system with reduction of temporal noise in images
US9619716B2 (en) 2013-08-12 2017-04-11 Magna Electronics Inc. Vehicle vision system with image classification
US9499139B2 (en) 2013-12-05 2016-11-22 Magna Electronics Inc. Vehicle monitoring system
US9988047B2 (en) 2013-12-12 2018-06-05 Magna Electronics Inc. Vehicle control system with traffic driving control
US10160382B2 (en) 2014-02-04 2018-12-25 Magna Electronics Inc. Trailer backup assist system
US9587942B2 (en) 2014-04-01 2017-03-07 Magna Mirrors Of America, Inc. Vehicle compass system with heated windshield compensation
US9623878B2 (en) 2014-04-02 2017-04-18 Magna Electronics Inc. Personalized driver assistance system for vehicle
US9487235B2 (en) 2014-04-10 2016-11-08 Magna Electronics Inc. Vehicle control system with adaptive wheel angle correction
US9925980B2 (en) 2014-09-17 2018-03-27 Magna Electronics Inc. Vehicle collision avoidance system with enhanced pedestrian avoidance
US9764744B2 (en) 2015-02-25 2017-09-19 Magna Electronics Inc. Vehicle yaw rate estimation system
US10819943B2 (en) 2015-05-07 2020-10-27 Magna Electronics Inc. Vehicle vision system with incident recording function
US10078789B2 (en) 2015-07-17 2018-09-18 Magna Electronics Inc. Vehicle parking assist system with vision-based parking space detection
US10086870B2 (en) 2015-08-18 2018-10-02 Magna Electronics Inc. Trailer parking assist system for vehicle
US10144419B2 (en) 2015-11-23 2018-12-04 Magna Electronics Inc. Vehicle dynamic control system for emergency handling
US11277558B2 (en) 2016-02-01 2022-03-15 Magna Electronics Inc. Vehicle vision system with master-slave camera configuration
US11433809B2 (en) 2016-02-02 2022-09-06 Magna Electronics Inc. Vehicle vision system with smart camera video output
US10055651B2 (en) 2016-03-08 2018-08-21 Magna Electronics Inc. Vehicle vision system with enhanced lane tracking
KR20180090053A (en) * 2017-02-02 2018-08-10 에이치피프린팅코리아 주식회사 A server for providing a service and operation method thereof
US10565168B2 (en) 2017-05-02 2020-02-18 Oxygen Cloud, Inc. Independent synchronization with state transformation

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US5136716A (en) * 1987-09-04 1992-08-04 Digital Equipment Corporation Session control in network for digital data processing system which supports multiple transfer protocols
US5220604A (en) * 1990-09-28 1993-06-15 Digital Equipment Corporation Method for performing group exclusion in hierarchical group structures
US5367635A (en) * 1991-08-29 1994-11-22 Hewlett-Packard Company Network management agent with user created objects providing additional functionality
US5367698A (en) * 1991-10-31 1994-11-22 Epoch Systems, Inc. Network file migration system
US5388257A (en) * 1991-07-24 1995-02-07 At&T Corp. Method and apparatus for operating a computer based file system
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US5491817A (en) * 1993-05-25 1996-02-13 Bell Communications Research Inc. Linking system and method for accessing directory information about an object in one context when information in another context is known
US5495607A (en) * 1993-11-15 1996-02-27 Conner Peripherals, Inc. Network management system having virtual catalog overview of files distributively stored across network domain
US5499343A (en) * 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5499358A (en) * 1993-12-10 1996-03-12 Novell, Inc. Method for storing a database in extended attributes of a file system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US5136716A (en) * 1987-09-04 1992-08-04 Digital Equipment Corporation Session control in network for digital data processing system which supports multiple transfer protocols
US5220604A (en) * 1990-09-28 1993-06-15 Digital Equipment Corporation Method for performing group exclusion in hierarchical group structures
US5388257A (en) * 1991-07-24 1995-02-07 At&T Corp. Method and apparatus for operating a computer based file system
US5367635A (en) * 1991-08-29 1994-11-22 Hewlett-Packard Company Network management agent with user created objects providing additional functionality
US5367698A (en) * 1991-10-31 1994-11-22 Epoch Systems, Inc. Network file migration system
US5491817A (en) * 1993-05-25 1996-02-13 Bell Communications Research Inc. Linking system and method for accessing directory information about an object in one context when information in another context is known
US5495607A (en) * 1993-11-15 1996-02-27 Conner Peripherals, Inc. Network management system having virtual catalog overview of files distributively stored across network domain
US5499358A (en) * 1993-12-10 1996-03-12 Novell, Inc. Method for storing a database in extended attributes of a file system
US5499343A (en) * 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
2334D IEICE Transactions on Information and Systems, .A Two Key Lock Pair Control Method Using Prime Factorization and Time Stamp. Min Shiang Hwang et al. E77 D(1994) Sep., No. 9, Tokyo, Japan. *
2334D IEICE Transactions on Information and Systems, .A Two-Key-Lock Pair Control Method Using Prime Factorization and Time Stamp. Min-Shiang Hwang et al. E77-D(1994) Sep., No. 9, Tokyo, Japan.
2460 IEEE Communications Magazine, .Access Control: Principles and Practice., Ravi S. Sandhu and Pierangela Samarati, 32 (1994) Sep., No. 9, New York, U.S. *
Herbert Bunz et al., "Exchange of Patient Records--Prototype Implementation of a Security Attributes Service in X.500", 1994, pp. 30-38, ACM, Fairfax, Virginia.
Herbert Bunz et al., Exchange of Patient Records Prototype Implementation of a Security Attributes Service in X.500 , 1994, pp. 30 38, ACM, Fairfax, Virginia. *
Proceedings of the International Carnahan Conference on Security Technology,, .A Dynamic Access Control Model for Object Oriented System.. Peter Shaohua Deng, Chenyuan Kauo, Victor T. S. Kao, Oct. 13 15, 1993, Taipei. *
Proceedings of the International Carnahan Conference on Security Technology,, .A Dynamic Access Control Model for Object-Oriented System.. Peter Shaohua Deng, Chenyuan Kauo, Victor T. S. Kao, Oct. 13-15, 1993, Taipei.
Wolfgang Prinz, "Representing Authorization Information in the X.500 Directory", 1992, pp. 301-317, Elsevier Science Publishers B.V. (North-Holland).
Wolfgang Prinz, Representing Authorization Information in the X.500 Directory , 1992, pp. 301 317, Elsevier Science Publishers B.V. (North Holland). *

Cited By (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6654793B1 (en) 1996-04-23 2003-11-25 Sun Microsystems, Inc. System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US5893116A (en) * 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US6704756B2 (en) 1996-10-11 2004-03-09 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6816875B2 (en) 1996-10-11 2004-11-09 Sun Microsystems Inc Methods, apparatus, and product for distributed garbage collection
US6564240B2 (en) 1996-10-11 2003-05-13 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6449648B1 (en) 1996-10-11 2002-09-10 Sun Microsystems, Inc. Lease renewal service
US6760736B2 (en) 1996-10-11 2004-07-06 Sun Microsystems, Inc. Methods and systems for distributed failure detection and recovery using leasing techniques
US6499049B2 (en) 1996-10-11 2002-12-24 Sun Microsystems, Inc. Lease renewal service
US6519615B1 (en) 1996-10-11 2003-02-11 Sun Microsystems, Inc. Method and system for leasing storage
US5892828A (en) * 1996-10-23 1999-04-06 Novell, Inc. User presence verification with single password across applications
US5878415A (en) * 1997-03-20 1999-03-02 Novell, Inc. Controlling access to objects in a hierarchical database
US5933826A (en) * 1997-03-21 1999-08-03 Novell, Inc. Method and apparatus for securing and storing executable content
US6742050B1 (en) * 1997-03-31 2004-05-25 Intel Corporation Inter-object messaging
US6651109B1 (en) * 1997-03-31 2003-11-18 Intel Corporation Inter-object messaging
US7055153B2 (en) 1997-03-31 2006-05-30 Intel Corporation Inter-object messaging
US5983234A (en) * 1997-09-17 1999-11-09 Novell, Inc. Method and apparatus for generically viewing and editing objects
US6119122A (en) * 1997-09-17 2000-09-12 Novell, Inc. Method and apparatus for generically viewing and editing objects
US6014667A (en) * 1997-10-01 2000-01-11 Novell, Inc. System and method for caching identification and location information in a computer network
US6157925A (en) * 1997-10-01 2000-12-05 Novell, Inc. System and method for caching identification and location information in a computer network
US6047289A (en) * 1997-11-07 2000-04-04 Novell, Inc. Method and apparatus for directed data propagation
US6567820B1 (en) 1997-11-17 2003-05-20 Sun Microsystems, Inc. Method and system for in-place modifications in a database
US6480863B1 (en) 1997-11-17 2002-11-12 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6934758B2 (en) 1997-12-11 2005-08-23 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US8713089B2 (en) 1998-02-26 2014-04-29 Oracle America, Inc. Dynamic lookup service in a distributed system
US7734747B2 (en) 1998-02-26 2010-06-08 Oracle America, Inc. Dynamic lookup service in a distributed system
US20010002473A1 (en) * 1998-02-26 2001-05-31 Sun Microsystems, Inc. Dynamic lookup service in a distributed system
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6629154B1 (en) 1998-02-26 2003-09-30 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6389540B1 (en) 1998-02-26 2002-05-14 Sun Microsystems, Inc. Stack based access control using code and executor identifiers
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
US9183066B2 (en) 1998-03-20 2015-11-10 Oracle America Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6263433B1 (en) * 1998-09-30 2001-07-17 Ncr Corporation Provision of continuous database service and scalable query performance using active redundant copies
US6839755B1 (en) * 1998-09-30 2005-01-04 Hewlett-Packard Development Company, L.P. Network peripheral server discovery method
US6308181B1 (en) 1998-12-19 2001-10-23 Novell, Inc. Access control with delayed binding of object identifiers
US6742114B1 (en) 1999-02-18 2004-05-25 Novell, Inc. Deputization in a distributed computing system
US6601171B1 (en) 1999-02-18 2003-07-29 Novell, Inc. Deputization in a distributed computing system
US6356913B1 (en) * 1999-06-09 2002-03-12 Avaya Technology Corp. Generic (database-independent) and dynamically-modifiable schema
US6708276B1 (en) 1999-08-03 2004-03-16 International Business Machines Corporation Architecture for denied permissions in Java
US6768985B1 (en) * 1999-08-30 2004-07-27 Unisys Corporation Method and apparatus for administration of database partitions
US10205998B2 (en) 1999-09-29 2019-02-12 Opentv, Inc. Enhanced video programming system and method utilizing user-profile information
US7949722B1 (en) * 1999-09-29 2011-05-24 Actv Inc. Enhanced video programming system and method utilizing user-profile information
US9148684B2 (en) 1999-09-29 2015-09-29 Opentv, Inc. Enhanced video programming system and method utilizing user-profile information
US8621541B2 (en) 1999-09-29 2013-12-31 Opentv, Inc. Enhanced video programming system and method utilizing user-profile information
US6826690B1 (en) * 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
US6823454B1 (en) * 1999-11-08 2004-11-23 International Business Machines Corporation Using device certificates to authenticate servers before automatic address assignment
US20050044423A1 (en) * 1999-11-12 2005-02-24 Mellmer Joseph Andrew Managing digital identity information
US7680819B1 (en) 1999-11-12 2010-03-16 Novell, Inc. Managing digital identity information
US8631038B2 (en) 1999-11-12 2014-01-14 Emc Corporation Managing digital identity information
US6424976B1 (en) 2000-03-23 2002-07-23 Novell, Inc. Method of implementing a forward compatibility network directory syntax
US7801966B2 (en) * 2000-10-25 2010-09-21 Quazal Technologies Inc. Object duplication
US20020049827A1 (en) * 2000-10-25 2002-04-25 Carl Dionne Object duplication
US20020124118A1 (en) * 2001-01-04 2002-09-05 Colley Adrian E. Method and system for passing objects in a distributed system using serializatin contexts
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US20030110246A1 (en) * 2001-10-29 2003-06-12 Sun Microsystems, Inc. Macro-based access control
US7167918B2 (en) * 2001-10-29 2007-01-23 Sun Microsystems, Inc. Macro-based access control
US7024693B2 (en) 2001-11-13 2006-04-04 Sun Microsystems, Inc. Filter-based attribute value access control
US20030105978A1 (en) * 2001-11-13 2003-06-05 Sun Microsystems, Inc. Filter-based attribute value access control
US20070027910A1 (en) * 2002-09-12 2007-02-01 Buss Duane F Enforcing security on attributes of objects
WO2004068722A3 (en) * 2003-01-24 2004-12-16 Coco Communications Corp Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
US9866395B2 (en) 2003-01-24 2018-01-09 Coco Communications Corp. Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
US9391806B2 (en) 2003-01-24 2016-07-12 Coco Communications Corp. Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
US20080320305A1 (en) * 2003-01-24 2008-12-25 Jeremy Bruestle Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US20050169260A1 (en) * 2004-02-02 2005-08-04 Elisa Andrews Methods, systems, and storage mediums for providing database management services for a telecommunications system
US7636351B2 (en) * 2004-02-02 2009-12-22 At&T Intellectual Property, I, L.P. Methods, systems, and storage mediums for providing database management services for a telecommunications system
US20060059211A1 (en) * 2004-09-10 2006-03-16 Canon Kabushiki Kaisha Information processing method and information processing apparatus
US7580934B2 (en) * 2004-09-10 2009-08-25 Canon Kabushiki Kaisha Information processing method and apparatus for managing access rights to an object
US7954138B2 (en) 2007-08-16 2011-05-31 International Business Machines Corporation Method and system for multiplexing multiple level security server applications on the same internet address and port
US20090049523A1 (en) * 2007-08-16 2009-02-19 International Business Machines Corporation Method and system for multiplexing multiple level security server applications on the same internet address and port
US20090049524A1 (en) * 2007-08-16 2009-02-19 International Business Machines Corporation System and method for partitioning a multi-level security namespace
US7979895B2 (en) * 2007-08-16 2011-07-12 International Business Machines Corporation System and method for partitioning a multi-level security namespace
US8479281B2 (en) 2008-03-26 2013-07-02 Dell Products L.P. Authentication management methods and media
US20110106926A1 (en) * 2008-08-25 2011-05-05 Novell, Inc. System and method for implementing a cloud workflow
US20110106927A1 (en) * 2008-08-25 2011-05-05 Novell, Inc. System and method for implementing cloud mitigation and operations controllers
US9742864B2 (en) 2008-08-25 2017-08-22 Novell, Inc. System and method for implementing cloud mitigation and operations controllers
US9288264B2 (en) 2008-08-25 2016-03-15 Novell, Inc. System and method for implementing a cloud workflow
US9270844B2 (en) * 2009-03-04 2016-02-23 Canon Kabushiki Kaisha Image processing apparatus, control method, and storage medium that complement a domain to an address data item with no domain name
US20100228820A1 (en) * 2009-03-04 2010-09-09 Canon Kabushiki Kaisha Image processing apparatus, control method, and storage medium
US9658891B2 (en) 2009-03-13 2017-05-23 Micro Focus Software Inc. System and method for providing key-encrypted storage in a cloud computing environment
US20100235630A1 (en) * 2009-03-13 2010-09-16 Novell, Inc. System and method for providing key-encrypted storage in a cloud computing environment
US20100235903A1 (en) * 2009-03-13 2010-09-16 Novell, Inc. System and method for transparent cloud access
US9122533B2 (en) 2009-03-13 2015-09-01 Novell, Inc. System and method for reducing cloud IP address utilization using a distributor registry
US20100235539A1 (en) * 2009-03-13 2010-09-16 Novell, Inc. System and method for reduced cloud ip address utilization
US8364842B2 (en) 2009-03-13 2013-01-29 Novell, Inc. System and method for reduced cloud IP address utilization
US8286232B2 (en) 2009-03-13 2012-10-09 Novell, Inc. System and method for transparent cloud access
US10230704B2 (en) 2009-03-13 2019-03-12 Micro Focus Software Inc. System and method for providing key-encrypted storage in a cloud computing environment
EP2958021A1 (en) * 2014-06-20 2015-12-23 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Data verification in a distributed data processing system
WO2015194957A1 (en) * 2014-06-20 2015-12-23 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Data verification in a distributed data processing system
US10977237B2 (en) 2014-06-20 2021-04-13 K.Mizra Llc Data verification in a distributed data processing system
US20190116198A1 (en) * 2017-10-16 2019-04-18 Wise Network Science and Technology Consultancy Limited Method For Model Checking On The Design Of Security checking software Of Safety-critical Distributed Storage System

Also Published As

Publication number Publication date
JPH09509772A (en) 1997-09-30
DE69500424D1 (en) 1997-08-14
KR100256594B1 (en) 2000-05-15
WO1996018941A2 (en) 1996-06-20
AU4685996A (en) 1996-07-03
US5677851A (en) 1997-10-14
EP0745239B1 (en) 1997-07-09
EP0745239A1 (en) 1996-12-04
DE69500424T2 (en) 1998-01-08
WO1996018941A3 (en) 1996-08-22
JP2868315B2 (en) 1999-03-10
CA2182791C (en) 2000-06-06
CA2182791A1 (en) 1996-06-20

Similar Documents

Publication Publication Date Title
US5784560A (en) Method and apparatus to secure distributed digital directory object changes
US6192405B1 (en) Method and apparatus for acquiring authorized access to resources in a distributed system
US6785686B2 (en) Method and system for creating and utilizing managed roles in a directory system
US7020662B2 (en) Method and system for determining a directory entry's class of service based on the value of a specifier in the entry
US6768988B2 (en) Method and system for incorporating filtered roles in a directory system
US7016893B2 (en) Method and system for sharing entry attributes in a directory server using class of service
US7016907B2 (en) Enumerated roles in a directory system
US7130839B2 (en) Method and system for grouping entries in a directory server by group memberships defined by roles
US7757271B2 (en) Computer system security service
US7165182B2 (en) Multiple password policies in a directory server system
US6947991B1 (en) Method and apparatus for exposing network administration stored in a directory using HTTP/WebDAV protocol
US7630974B2 (en) Multi-language support for enterprise identity and access management
US6708170B1 (en) Method and system for usage of non-local data within a lightweight directory access protocol directory environment
US7380271B2 (en) Grouped access control list actions
US7512965B1 (en) Computer system security service
US7167918B2 (en) Macro-based access control
US20030078937A1 (en) Method and system for nesting roles in a directory system
Tuttle et al. Understanding LDAP-design and implementation
US20040006590A1 (en) Service for locating centralized schema-based services
US20030055917A1 (en) Method and system for determining a directory entry's class of service in an indirect manner
US20050021661A1 (en) Directory request caching in distributed computer systems
US20030061347A1 (en) Method and system for determining a directory entry's class of service by pointing to a single template entry
US20030005123A1 (en) Method and device for securing a portal in a computer system
Johner et al. LDAP Implementation Cookbook
Ahn et al. Towards role-based administration in network information services

Legal Events

Date Code Title Description
AS Assignment

Owner name: NOVELL, INC., UTAH

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KINGDON, KEVIN;CHILDERS, RANDAL EARL;HIGLEY, DEEANNE;AND OTHERS;REEL/FRAME:008675/0646;SIGNING DATES FROM 19970611 TO 19970708

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: EMC CORPORATON, MASSACHUSETTS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CPTN HOLDINGS LLC;REEL/FRAME:027016/0160

Effective date: 20110909

AS Assignment

Owner name: CPTN HOLDINGS, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOVELL, INC.;REEL/FRAME:027169/0200

Effective date: 20110427