# Polyinstantiation

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Polyinstantiation
> Markdown URL: https://mediated.wiki/source/Polyinstantiation.md
> Source: https://en.wikipedia.org/wiki/Polyinstantiation
> Source revision: 1327566040
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Cybersecurity method in computer science}}
'''Polyinstantiation''' in [computer science](/source/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](/source/Operating_system), 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](/source/UNIX) directory '''/tmp'''.<ref>{{cite web
| url=http://www.ibm.com/developerworks/linux/library/l-polyinstantiation/
| title=Improve security with polyinstantiation: Using a Pluggable Authentication Module to protect private data
| author-link=Robb R. Romans
| first= Robb R
| last= Romans
| date=2008-03-26
| publisher=IBM DeveloperWorks}}</ref><ref>{{cite web
| url=http://www.coker.com.au/selinux/talks/sage-2006/PolyInstantiatedDirectories.html
| title=Polyinstantiation of directories in an SE Linux system
| author-link=Russell Coker
| first= Russell
| last= Coker
| date=2007-01-04
| work=[Sage 2006](/source/SAGE-AU)}}</ref>

Polyinstantiation of shared resources have similar goals as [process isolation](/source/process_isolation), an application of [virtual memory](/source/virtual_memory), where processes are assigned their own isolated [virtual address space](/source/virtual_address_space) to prevent process '''A''' writing into the memory space of process '''B'''.

== Database ==
In databases, polyinstantiation is database-related [SQL](/source/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.<ref>{{cite web
| url=http://www.acsac.org/secshelf/book001/21.pdf
| title=Solutions to the Polyinstantiation Problem
| first1=Sushil
| last1=Jajodia
| first2=Ravi S
| last2=Sandhu
| first3=Barbara T.
| last3=Blaustein
| date=2006-02-01}}</ref> 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<ref>{{cite book
| title=Security in Computing
| url=https://archive.org/details/securityincomput0003pfle
| url-access=registration
| first1=Charles P.
| last1=Pfleeger
| first2=Shari Lawrence
| last2=Pfleeger
| year=2003
| publisher=[Prentice Hall](/source/Prentice_Hall) Professional
| isbn=9780130355485}}</ref>

Consider the following table, where the primary key is '''Name''' and '''[λ](/source/%CE%BB)(x)''' is the security level:

{| class="wikitable"
|-
! 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](/source/cryptography), polyinstantiation is the existence of a [cryptographic key](/source/cryptographic_key) in more than one secure physical location.

== References ==
{{reflist}}

Category:Object-oriented database management systems

{{crypto-stub}}
{{database-stub}}

---
Adapted from the Wikipedia article [Polyinstantiation](https://en.wikipedia.org/wiki/Polyinstantiation) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Polyinstantiation?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
