Comment fonctionne l'inspection de la pile?

11

Ceci est le précurseur de mon autre question plus avancée sur l'inspection des piles.

L'inspection de la pile est un mécanisme de sécurité introduit dans la machine virtuelle Java pour gérer le code en cours d'exécution provenant d'emplacements ayant différents niveaux de confiance. Cette question vise à trouver une description simple de sa fonctionnalité. Donc:

Comment fonctionne l'inspection de la pile?

Dave Clarke
la source

Réponses:

7

Voir

Extrait du journal:

... L'algorithme d'inspection de pile utilisé dans les systèmes Java actuels peut être considéré comme une généralisation du modèle d' inspection de pile simple suivant :

Dans ce modèle, les seuls principes sont «système» et «non fiables». De même, le seul privilège disponible est «complet». Ce modèle ressemble au système d'inspection de pile utilisé en interne dans Netscape Navigator 3.0.

Dans ce modèle, chaque trame de pile est étiquetée avec un principal («système» si la trame exécute du code faisant partie de la machine virtuelle ou de ses bibliothèques intégrées, et «non approuvé» sinon), et contient un indicateur de privilège qui peut être défini par une classe système qui choisit «d'activer ses privilèges», déclarant explicitement qu'elle veut faire quelque chose de dangereux. Une classe non approuvée ne peut pas définir son indicateur de privilège. Lorsqu'un cadre de pile se ferme, son indicateur de privilège (le cas échéant) disparaît automatiquement.

Toutes les procédures sur le point d'effectuer une opération dangereuse, comme l'accès au système de fichiers ou au réseau, appliquent d'abord un algorithme d'inspection de pile pour décider si l'accès est autorisé. L'algorithme d'inspection de pile recherche les trames de la pile de l'appelant dans l'ordre, du plus récent au plus ancien. La recherche se termine, permettant l'accès, lors de la recherche d'une trame de pile avec un indicateur de privilège. La recherche se termine également, interdisant l'accès et lançant une exception, lors de la recherche d'une trame de pile non approuvée (qui n'aurait jamais pu obtenir un indicateur de privilège). ...

Vor
la source