# 8.2. Kppp hat das SUID Bit gesetzt. Wo bleibt die Sicherheit?

Es ist realistisch gesehen nicht möglich, ein Wählprogramm ohne gesetztes SUID Bit zu schreiben, das sicher und dabei für unerfahrene Benutzer einfach zu benutzen ist. Kppp geht das Sicherheitsproblem mit folgender Strategie an:

- Gleich nach dem Programmstart startet Kppp einen neuen Prozeß.

- Der Masterprozeß (der die GUI, Benutzerinteraktion u.ä. verwaltet) legt den SUID-Status danach ab und läuft dann mit den normalen Benutzerprivilegien.

- Der Slaveprozeß behält seine Privilegien bei und kümmert sich um alles, für das man root-Rechte benötigt. Um diesen Teil sicher zu machen, werden hier keine Funktionen der KDE/QT-Bibliotheken aufgerufen, sondern nur einfache Funktionen der C-Bibliothek. Der Quellcode für diesen Prozeß ist kurz (etwa 500 Zeilen) und gut dokumentiert. Dadurch ist es einfach, Sicherheitslöcher zu entdecken.

- Master- und Slaveprozeß kommunizieren mit standard UNIX IPC.

Vielen Dank an Harri Porten für das Schreiben dieses exzellenten Stück Quellcodes. Ich dachte, es sei unmöglich - er schrieb es in einer Woche.