Systemata operativa moderna fines securitatis inter processūs, tabulas, apparatus, et usores servant. Tamen modus quo hi fines efficiuntur inter diversa systematum consilia magnopere variat.

Pleraque systemata operativa usitata nituntur accessu secundum identitatem moderato et spatiis nominum globalibus. Systemata operativa facultatibus fundata rationem prorsus aliam sumunt: auctoritatem explicite repraesentant eamque notionem primariae dignitatis faciunt.

Hoc scriptum systemata facultatum introducit, explicat quomodo a consiliis traditionalibus differant, atque ostendit cur ad consilium EriX centralia sint.


Problema: auctoritas ambientis

In systematis traditionalibus processūs saepe ad opes per auctoritatem ambientis accedunt.

Auctoritas ambientis significat programmati ad rem accedere posse, quia res in spatio nominum communi exstat et systema iudicat programma permissum habere ut ea utatur.

Exempli gratia:

  • Processus /etc/passwd aperire potest, si satis permissionum habet.
  • Programma ad socket retis coniungi potest, si systema operativum id permittit.
  • Ministerium ad tabulas accedere potest secundum identitatem usoris aut consortium gregis.

In omnibus his casibus auctoritas ad rem accedendi implicita est.

Processus non tenet directam atque explicitam relationem ad rem. Potius nititur:

  • nominibus globalibus (viae tabularum, portus, signa apparatuum)
  • examinationibus accessus (ID usoris, permissiones, ACL)

Hoc exemplar plura problemata creat:

1. Problema delegati confusi

Programma auctoritate sua per errorem abuti potest pro alio programmate.

Exempli gratia, ministerium privilegiatum tabulam a cliente infido petitam legere potest, quamvis ipse cliens ad eam accedere non debeat.

2. Auctoritas nimis lata

Programmāta saepe cum pluribus permissionibus currunt quam revera indigent. Hoc ictum vitiorum vel corruptionum auget.

3. Ratio difficilis

Difficile est intellegere quid processus facere liceat, nisi status globalis, identitates usorum, et regulae accessus analysi subiciantur.


Idea centralis: facultates

Facultas est symbolum infalsificabile quod accessum ad obiectum certum cum iuribus certis concedit.

Loco huius quaestionis:

“Num hic processus permissionem habet ad hanc rem accedendi?”

systema facultatibus fundatum hoc rogat:

“Num hic processus facultatem possidet quae hanc operationem auctoritate donat?”

Si responsum est non, operatio procedere non potest.


Proprietates facultatum

Facultates plures proprietates definitrices habent:

1. Infalsificabilitas

Processus facultatem validam ex nihilo creare non potest.

Facultates a nucleo creantur et administrantur, quo fit ut neque falsificari neque coniectura inveniri possint.


2. Auctoritas explicita

Omnis auctoritas explicite per facultates repraesentatur.

Si processus operationem perficere potest, facultatem possidere debet quae id permittit. Nullus accessus implicitus per spatia nominum globalia datur.


3. Iura subtiliter definita

Facultates permissiones certas codificare possunt, ut:

  • accessum solius lectionis
  • accessum scribendi
  • permissiones exsecutionis
  • limitata operationum subgenera

Hoc efficit ut exacte moderari possimus quid quisque processus facere possit.


4. Transferibilitas

Facultates inter processūs transferri possunt, plerumque per communicationem inter processūs (IPC).

Hoc delegationem moderatam auctoritatis efficit.


Obiecta et facultates

In systemate facultatibus fundato omnia ut obiecta formantur:

  • regiones memoriae
  • tabulae
  • apparatus
  • termini IPC
  • processūs

Facultas est relatio ad obiectum cum certo iurium numero coniuncta.

Processus cum systemate agit operationes in obiectis per suas facultates invocando.

Non opus est nominibus globalibus sicut viis tabularum aut signis apparatuum intra nucleum. Omnis accessus per facultates mediatur.


Quomodo systemata facultatibus fundata operentur

Ad summam, systema facultatibus fundatum ita operatur:

  1. Nucleus obiecta et facultates creat.
  2. Unusquisque processus habet spatium facultatum (saepe CSpace appellatum), in quo facultates servantur.
  3. Processus tantum in illa obiecta operari potest pro quibus facultates habet.
  4. Facultates inter processūs per IPC transferri possunt.
  5. Nucleus omnes probationes facultatum exsequitur.

Ita efficitur systema in quo auctoritas est:

  • explicita
  • localis
  • transferibilis
  • facile ratione tractabilis

Exemplum: tabulam aperire

Exemplar traditionale

In systemate tradito:

  1. Processus vocat open("/etc/config")
  2. Nucleus permissiones examinat:
    • ID usoris
    • consortium gregis
    • signa modi tabulae
  3. Si licet, descriptor tabulae redditur

Auctoritas ex statu globali et identitate venit.


Exemplar facultatibus fundatum

In systemate facultatum:

  1. Processus iam possidere debet facultatem tabulae
  2. Ea facultate utitur ad operationes legendi aut scribendi perficiendas

Si processus facultatem non habet, ad tabulam accedere non potest, quocumque nomine utatur.

Nullus gradus quaestionis globalis intra nucleum est.


Delegatio et minimum privilegium

Una ex potentissimis rationibus systematum facultatum est delegatio.

Processus alteri processui partem auctoritatis suae dare potest facultatem transferendo.

Exempli gratia:

  • Ministerium tabularum clienti accessum solius lectionis ad tabulam dat
  • Moderator memoriae ad regionem memoriae certam accessum concedit
  • Processus ad terminum IPC accessum concedit

Hoc principium minimi privilegii efficit:

Unaquaeque pars tantum eam auctoritatem accipit qua revera indiget.


Auctoritatem ambientis eliminare

Systemata facultatibus fundata auctoritatem ambientis omnino eliminant.

Non sunt:

  • spatia nominum globalia intra nucleum
  • accessus implicitus ex identitate pendens
  • privilegia occulta

Omnis auctoritas explicite tradi debet.

Hoc multo faciliorem reddit analysin:

  • quid processus facere possit
  • quomodo auctoritas per systema fluat
  • ubi quaestiones securitatis oriri possint

Revocatio (problema difficile)

Una ex provocationibus systematum facultatum est revocatio.

Postquam facultas processui data est, quomodo auferri potest?

Diversa systemata revocationem diversis modis efficiunt:

  • stratis indirectis
  • vestigatione relationum
  • arboribus facultatum
  • mechanismis versionum

Revocatio magni momenti campus investigationis est et in posterioribus gradibus EriX explorabitur.


Systemata facultatum in usu

Ideae facultatibus fundatae novae non sunt. Plura systemata eas impleverunt:

  • KeyKOS / EROS
  • seL4 (micronucleus formaliter verificatus)
  • CHERI (facultates apparatu adiuvatae)
  • Capsicum (extensiones facultatum pro FreeBSD)

Haec systemata demonstrant consilia facultatibus fundata et practica et valida esse.


Quomodo EriX facultatibus utatur

EriX ab initio ut systema facultatibus fundatum designatur.

In EriX:

  • omnis auctoritas per facultates repraesentatur
  • facultates fortiter typis distinctae sunt
  • facultates semel creatae immutabiles sunt
  • facultates per IPC transferuntur
  • nucleus infalsificabilitatem et invariantes securitatis servat

Nulla spatia nominum globalia intra nucleum sunt. Omnis accessus ad opes per facultates mediatur.

Hoc cum latiore proposito congruit, ut auctoritas sit:

  • explicita
  • minima
  • facile ratione tractabilis

Cur hoc momenti sit

Systemata facultatibus fundata fundamentum praebent ad aedificanda:

  • systemata tutiora
  • architecturas magis modulares
  • systemata facilius analysi atque verificationi subiecta

Auctoritate implicita remota et omni accessu explicito facto, integrae classes vulnerabilitatum quae in systematis traditionalibus communes sunt eliminantur.


Deinceps

Facultates notio fundamentalis in EriX sunt. In futuris scriptis explorabimus quomodo in usu impleantur, inter quae:

  • spatia facultatum (CSpace)
  • communicatio inter processūs (IPC)
  • administratio memoriae per facultates non typatas
  • delegatio et graphia auctoritatis

Facultates intellegere est primus gradus ad reliquum systema intellegendum.