- Integrità
dello stato:
Dividiamo i Place in due categorie
Place Sicuri:
- Place di Partenza
- Place Certificati (da una terza parte)
Place Insicuri:
- Tutti gli altri.
Ogni volta che ci dobbiamo spostare
su un Place Insicuro, non ci andiamo direttamente, ma cloniamo il nostro
agente e mandiamo il clone. Sul Place Insicuro non si fanno Modifiche ai
Dati, ma si possono memorizzare dei nuovi dati in un "pacchetto", che verra'
spedito ad un agente su un Place Sicuro.
Le aggiunte (ai dati) vere e proprie
verranno fatte solo sul Place Sicuro.
Tutti i dati raccolti (su Place sicuri
e non) sono aggiunti agli altri, e poi firmati.
Nota: dovendo lavorare su più
Place Insicuri, si può parallelizzare (lancio di più cloni
in parallelo verso diversi Place).
-
Integrità del Codice
Gli agenti che si muovono tra Place sicuri lo fanno su canali crittati e dunque sicuri.
Gli Agenti che vanno su Place insicuri dopo il lavoro vengono eliminati.
Lista dei Place sicuri gestito da un Name -Server ( le richieste al name server saranno crittate con la sua chiave pubblica per evitare fenomeni di eavesdropping e tampering )
Sicurezza
della Comunicazione tra Agenti.
Comunicazione su Canale Sicuro, esclusivamente
tra Agenti entrambi su Place Sicuri.
Nel momento in cui un Agente deve spostarsi su un Place, chiede all’Agente dei Servizi (Service Agent) la disponibilità delle risorse per sé (per l’agente che eventualmente dovrà andare sul Place).
In caso la memoria che gli verrebbe assegnata sia insufficiente, rinuncia a muoversi verso quel Place.
In base al compito che l’agente deve
portare a termine, deciderà se accontentarsi delle altre risorse
o evitare quel Place (in base anche alla politica del Principal).
Quando su un Place Sicuro si ha un
Agente che aspetta il "ritorno" di dati da Cloni che ha mandato in altri
Place (Insicuri), ed essendo il tempo a disposizione su quel Place quasi
scaduto:
L’Agente nel muoversi da un Place
ad un altro è crittato, quindi non può essere intercettato.
Ottimizzazioni (Varie ed Eventuali)
Nel mandare un Clone ad un Place
Insicuro, si può evitare di mandare lo stato.... (dipende dall’implementazione
della primitiva di Clonazione)