Die Firma Google hat die Quelltexte des Projekts HIBA (Host Identity Based Authorization) veröffentlicht, das die Implementierung eines zusätzlichen Autorisierungsmechanismus für den Zugriff von Benutzern über SSH in Verbindung mit Hosts vorschlägt (Überprüfungen, ob der Zugriff auf eine bestimmte Ressource bei der Authentifizierung über öffentliche Schlüssel erlaubt oder nicht erlaubt ist). Die Integration mit OpenSSH erfolgt durch die Angabe des HIBA-Handlers in der Direktive AuthorizedPrincipalsCommand in /etc/ssh/sshd_config. Der Code des Projekts ist in C geschrieben und steht unter der BSD-Lizenz zur Verfügung.
HIBA nutzt die Standard-Authentifizierungsmechanismen auf Basis von Zertifikaten von OpenSSH für ein flexibles und zentrales Management der Benutzerautorisierung in Verbindung mit Hosts, erfordert jedoch nicht die regelmäßige Änderung der Dateien authorized_keys und authorized_users auf der Seite der Hosts, zu denen die Verbindung hergestellt wird. Anstelle der Aufbewahrung einer Liste zulässiger öffentlicher Schlüssel und Zugriffsbedingungen in den Dateien authorized_(keys|users) integriert HIBA Informationen zur Bindung von Benutzern an Hosts direkt in die Zertifikate. Insbesondere wurden Erweiterungen für Hostzertifikate und Benutzersertifikate vorgeschlagen, die die Parameter der Hosts und die Bedingungen für die Bereitstellung des Zugangs der Benutzer speichern.
Die Überprüfung auf der Seite des Hosts wird durch den Aufruf des Handlers hiba-chk initiiert, der in der Direktive AuthorizedPrincipalsCommand festgelegt ist. Dieser Handler dekodiert die in den Zertifikaten integrierten Erweiterungen und trifft auf deren Grundlage die Entscheidung über die Gewährung oder Blockierung des Zugangs. Die Zugriffsregeln werden zentral auf Ebene der Zertifizierungsstelle (CA) festgelegt und in die Zertifikate während ihrer Generierung integriert.
Auf der Seite der Zertifizierungsstelle wird eine allgemeine Liste der verfügbaren Berechtigungen (Hosts, zu denen die Verbindung erlaubt ist) sowie eine Liste der Benutzer, die diese Berechtigungen nutzen dürfen, geführt. Zur Generierung von beglaubigten Zertifikaten mit integrierten Informationen zu Berechtigungen wurde das Dienstprogramm hiba-gen vorgeschlagen, und die Funktionalität, die zur Erstellung einer Zertifizierungsstelle erforderlich ist, wurde in das Skript iba-ca.sh ausgelagert.
Beim Anschluss des Benutzers werden die im Zertifikat angegebenen Berechtigungen durch die digitale Signatur der Zertifizierungsstelle bestätigt, was es ermöglicht, alle Überprüfungen vollständig auf der Seite des Zielhosts, zu dem die Verbindung hergestellt wird, ohne Rückgriff auf externe Dienste durchzuführen. Die Liste der öffentlichen Schlüssel der Zertifizierungsstelle, die SSH-Zertifikate beglaubigt, wird über die Direktive TrustedUserCAKeys angegeben.
Neben der direkten Bindung von Benutzern an Hosts ermöglicht HIBA die Definition flexiblerer Zugriffsregeln. Beispielsweise können Informationen wie Standort und Art des Dienstes mit Hosts verknüpft werden, und bei der Festlegung von Zugriffsregeln für Benutzer kann der Zugriff auf alle Hosts mit einem bestimmten Diensttyp oder auf Hosts an einem bestimmten Standort gewährt werden.


Quelle: opennet.ru
