Polyinstantiation

From HandWiki

Polyinstantiation in computer science is the concept of type (class, database row or otherwise) being instantiated into multiple independent instances (objects, copies). It may also indicate, such as in the case of database polyinstantiation, that two different instances have the same name (identifier, primary key).

Operating system security

In Operating system security, polyinstantiation is the concept of creating a user or process specific view of a shared resource. I.e. Process A cannot affect process B by writing malicious code to a shared resource, such as UNIX directory /tmp.[1][2]

Polyinstantiation of shared resources have similar goals as process isolation, an application of virtual memory, where processes are assigned their own isolated virtual address space to prevent process A writing into the memory space of process B.

Database

In databases, polyinstantiation is database-related SQL (structured query language) terminology. It allows a relation to contain multiple rows with the same primary key; the multiple instances are distinguished by their security levels.[3] It occurs because of mandatory policy. Depending on the security level established, one record contains sensitive information, and the other one does not, that is, a user will see the record's information depending on his/her level of confidentiality previously dictated by the company's policy[4]

Consider the following table, where the primary key is Name and λ(x) is the security level:

Name λ(Name) Age λ(Age) λ
Alice Secret 18 Top Secret Top Secret
Bob Secret 22 Secret Secret
Bob Secret 33 Top Secret Top Secret
Trudy Top Secret 15 Top Secret Top Secret

Although useful from a security standpoint, polyinstantiation raises several problems:

  • Moral scrutiny, since it involves lying
  • Providing consistent views
  • Explosion in the number of rows

Cryptography

In cryptography, polyinstantiation is the existence of a cryptographic key in more than one secure physical location.

References