Le Problème D'Emprisonnement
Considérez un client et un serveur. Quand le client publie une demande au serveur, le client envoie au serveur quelques données. Le serveur alors emploie les données pour exécuter une certaine fonction et ne renvoie un résultat (ou aucun résultat) au client. Le contrôle d'accès affecte la fonction du serveur de deux manières.
La première condition représente le but du fournisseur de service. Ce but est d'empêcher le client d'envoyer les messages au serveur qui le causent à l'accès, changent, transmettent, ou consomment les ressources que le client n'est pas autorisé à accéder, changer, transmettre, ou consommer. La deuxième condition représente le but de l'utilisateur de service. Ce but est d'empêcher le serveur de transmettre l'information confidentielle au fournisseur de service. Dans les deux cas, le serveur doit être confiné à accéder seulement à un ensemble spécifique de ressources.
Lampson appelle ceci le problème d'emprisonnement.
Une caractéristique des processus qui ne fuient pas l'information vient de l'observation qu'un processus doit stocker des données pour la récupération postérieure (la fuite). Un processus qui ne stocke pas l'information ne peut pas la fuir. Cependant, à l'extrème, de tels processus ne peuvent également exécuter aucun calculs, parce qu'un analyste pourrait observer l'écoulement de la commande (ou l'état du processus) et de cet écoulement déduisez les informations sur les entrées. Ceci mène à l'observation qu'un processus qui ne peut pas être observé et ne peut pas communiquer avec d'autres processus ne peut pas fuir l'information. Lampson appelle cet isolement total. Dans la pratique, la réalisation de l'isolement total est difficile. Les processus à être habituellement confinées les ressources de part telles que CPUs, réseaux, et mémoire à disque avec autre, unconfined des processus. Unconfined des processus peut transmettre l'excédent de l'information ces ressources partagées.
L'emprisonnement est transitif. Supposez qu'un processus p est confiné pour empêcher la fuite. S'il appelle un deuxième processus q, alors q doit être pareillement confiné ou q pourrait fuir l'information que p passe.
L'emprisonnement est un mécanisme pour imposer le principe de moindre privilège. Un processus correctement confiné ne peut pas transmettre des données à un deuxième processus à moins que la transmission soit nécessaire pour accomplir le leur chargent. Le problème est que le processus confiné a besoin de l'accès aux données pour être transmis et ainsi l'emprisonnement doit être sur la transmission, pas sur l'accès de données. Pour compliquer des sujets, le processus peut devoir transmettre de l'information au deuxième processus. Dans ce cas-ci, le mécanisme d'emprisonnement doit distinguer la transmission des données autorisées et la transmission des données non autorisées. La combinaison de ces problèmes illustre la difficulté d'empêcher la fuite. Le dilemme est que des ordinateurs modernes sont conçus pour partager des ressources, mais par l'acte partageant d'eux créent les canaux de dont communication le long l'information peut être fuie. Lipner examine le problème d'une politique et aspect de modeler. Il considère deux types de canaux secrets. Le premier comporte l'utilisation du stockage de transmettre l'information. Si un modèle décrit correctement toutes les manières dans lesquelles l'information peut être stockée et lue, alors le modèle soustrait les canaux légitimes et secrets le long dont l'information peut couler. Le modèle contraint tous les accès au stockage. Les seuls accès permis sont ceux autorisés par la politique, ainsi les écoulements d'information sont légitimes. Cependant, si le modèle ne capture pas tous tels écoulements, puis écoulements non autorisés, ou canaux secrets, surgissez. Lipner note alors que tous les processus peuvent obtenir au moins une idée approximative de temps. Ceci fait à temps une voie de transmission. Temps un "lu" de bidon de programme en vérifiant l'horloge de système ou (alternativement) en comptant le nombre d'instructions il s'est exécuté pendant une période de temps d'horloge de mur. Un bidon de programme "écrivent" le temps en exécutant un nombre d'ensemble d'instructions et l'arrêt, permettant à un autre processus de s'exécuter. Ce canal partagé ne peut pas être rendu exclusif à moins qu'un processus ne partage pas l'ordinateur avec un autre processus, qui suggère l'isolement comme remède. Les attaques de la synchronisation de Kocher sur des cryptosystems illustrent ce problème. Kocher note que les instructions exécutées par des réalisations des cryptosystems dépendent de l'arrangement du peu dans la clef. Par exemple, l'algorithme au-dessous des instruments une fonction modulaire rapide d'élévation à une puissance. Si un peu est 1, deux multiplications se produisent ; autrement, une multiplication se produit. La multiplication supplémentaire prend du temps supplémentaire. Kocher détermine le peu de l'exposant confidentiel en mesurant le temps de calcul. Une routine modulaire rapide d'élévation à une puissance. Cette routine calcule x = mod n d'az. Le peu de z est zk1. . . ,z0.X : = 1 ; atmp : = a ; pour I : = 0 à k-1 commencent si zi = 1 puis x : = (x * atmp) mod n ; atmp : = (atmp * atmp) mod n ; extrémité ; résultat : = X ; Nous explorons le mécanisme de l'isolement d'abord. Alors nous examinons les canaux secrets en plus détail et discutons d'autres approches à les analyser, y compris des techniques pour identifier les canaux secrets et les isoler. c'est un article supplémentaire par Bill Kuriko
|
|||||
|