Wir können ja mal was rumspinnen.
Gut. D.h. also Du willst nur Programme ausführen, die eine entsprechende Signatur haben.
Beim Start des Porgrammes muss die Signatur mit dem entsprechenden öffentlichen Schlüssel überprüft werden. D.h. ich habe da zwei Angriffsmöglichkeiten:
1. Das überprüfende Programm
2. Den öffentlichen Schlüssel
1.
Im simpelsten - sprich leicht verständlichsten Szenario - würde das bspw. die shell machen. Der Programmcode und dessen Signatur wird genommen und mit dem öffentlichen Schlüssel überprüft. Hier kann ich hingehen und die Shell angreifen, dass sie bei einer solchen Überprüfung immer als Ergenis OK zurückliefert. Nachdem ich also die Shell angegriffen hätte, könnte ich nun meinen Schadcode ausführen.
Ergo: Das in der Shell zu machen ist schlecht. Also muss ich die Überprüfung in den Kernel einbauen, weil der Kernel ein wenig schwieriger anzugreifen ist.
2.
Der öffentliche Schlüssel wird zur Überprüfung der Signatur herangezogen. Wenn ich Punkt 1 nicht angreifen kann greife ich den öffentlichen Schlüssel an. D.h. ich tausche erstmal den öffentlichen Schlüssel gegen meinen eigenen, um danach Programm Code den ich selber signiert habe, ausführen zu können.
Ergo: Der Schlüssel muss irgendwie nicht austauschbar gehalten werden. Imho kommt hier nun das Stichwort TPM Chip ins Spiel.
Wie da so die Ideen und was da der aktuelle Stand der Unterstützung von TPM-Chips sind, weiß ich leider nicht.
Was aber evtl. weniger Aufwand bedeutet, ist die Nutzung von bspw. SELinux. Da kannst Du bspw. definieren, was manche Applikationen machen dürfen...
Schönen Gruß
Cornelius