Wie funktioniert die Stapelinspektion?

11

Dies ist der Vorläufer meiner anderen, weiter fortgeschrittenen Frage zur Stapelinspektion.

Die Stapelinspektion ist ein in der JVM eingeführter Sicherheitsmechanismus für die Ausführung von Code, der von Standorten mit unterschiedlichen Vertrauensstufen stammt. Diese Frage zielt darauf ab, eine einfache Beschreibung seiner Funktionalität zu finden. So:

Wie funktioniert die Stapelinspektion?

Dave Clarke
quelle

Antworten:

7

Sehen

Aus dem Papier:

... Der in aktuellen Java-Systemen verwendete Stapelprüfungsalgorithmus kann als Verallgemeinerung der folgenden einfachen Stapelprüfung angesehen werden werden:

In diesem Modell sind die einzigen Prinzipien "System" und "nicht vertrauenswürdig". Ebenso ist das einzige verfügbare Privileg "voll". Dieses Modell ähnelt dem in Netscape Navigator 3.0 intern verwendeten Stapelprüfsystem.

In diesem Modell ist jeder Stapelrahmen mit einem Prinzipal gekennzeichnet ("System", wenn der Rahmen Code ausführt, der Teil der virtuellen Maschine oder ihrer integrierten Bibliotheken ist, und ansonsten "nicht vertrauenswürdig") und enthält möglicherweise ein Berechtigungsflag von einer Systemklasse festgelegt werden, die "ihre Berechtigungen aktiviert" und ausdrücklich angibt, dass sie etwas Gefährliches tun möchte. Eine nicht vertrauenswürdige Klasse kann ihr Berechtigungsflag nicht setzen. Wenn ein Stapelrahmen beendet wird, verschwindet sein Berechtigungsflag (falls vorhanden) automatisch.

Alle Verfahren, die eine gefährliche Operation ausführen sollen, z. B. der Zugriff auf das Dateisystem oder das Netzwerk, wenden zunächst einen Stapelprüfalgorithmus an, um zu entscheiden, ob der Zugriff zulässig ist. Der Stack-Inspektionsalgorithmus durchsucht die Frames auf dem Stack des Aufrufers nacheinander vom neuesten zum ältesten. Die Suche wird beendet und ermöglicht den Zugriff, wenn ein Stapelrahmen mit einem Berechtigungsflag gefunden wird. Die Suche wird auch beendet, indem der Zugriff verboten und eine Ausnahme ausgelöst wird, wenn ein nicht vertrauenswürdiger Stapelrahmen gefunden wird (der niemals ein Berechtigungsflag erhalten hätte). ...

Vor
quelle