Firma Google opublikowała kod źródłowy projektu HIBA (Host Identity Based Authorization), który oferuje wdrożenie dodatkowego mechanizmu autoryzacji dla organizacji dostępu użytkowników przez SSH w powiązaniu z hostami (sprawdzanie, czy dostęp do konkretnego zasobu jest dozwolony w momencie uwierzytelnienia za pomocą kluczy publicznych). Integracja z OpenSSH odbywa się poprzez wskazanie obsługi HIBA w dyrektywie AuthorizedPrincipalsCommand w /etc/ssh/sshd_config. Kod projektu napisano w języku C i jest dystrybuowany na licencji BSD.
HIBA korzysta z wbudowanych mechanizmów uwierzytelniania opartych na certyfikatach OpenSSH, aby elastycznie i centralnie zarządzać autoryzacją użytkowników w powiązaniu z hostami, ale nie wymaga okresowej zmiany plików authorized_keys i authorized_users na stronach hostów, do których następuje połączenie. Zamiast przechowywać listę dozwolonych kluczy publicznych i warunków dostępu w plikach authorized_(keys|users), HIBA integruje informacje o powiązaniu użytkowników z hostami bezpośrednio w samych certyfikatach. W szczególności zaproponowano rozszerzenia dla certyfikatów hostów oraz certyfikatów użytkowników, w których przechowywane są parametry hostów i warunki przyznawania użytkownikom dostępu.
Sprawdzanie po stronie hosta inicjowane jest poprzez wywołanie obsługi hiba-chk, zapisanej w dyrektywie AuthorizedPrincipalsCommand. Ta obsługa dekoduje zintegrowane w certyfikatach rozszerzenia i na ich podstawie podejmuje decyzję o przyznaniu lub zablokowaniu dostępu. Zasady dostępu określane są centralnie na poziomie urzędu certyfikacji (CA) i integrowane w certyfikaty na etapie ich generacji.
Na stronie urzędu certyfikacji prowadzi się ogólną listę dostępnych uprawnień (hostów, do których dozwolone jest połączenie) oraz listę użytkowników, którym pozwolono skorzystać z tych uprawnień. Do generowania podpisanych certyfikatów z zintegrowanymi informacjami o uprawnieniach zaproponowano narzędzie hiba-gen, a funkcjonalność potrzebna do stworzenia urzędu certyfikacji przeniesiono do skryptu iba-ca.sh.
Podczas nawiązywania połączenia użytkownika, uprawnienia wskazane w certyfikacie są potwierdzane cyfrowym podpisem centrum certyfikacji, co pozwala na przeprowadzenie wszystkich weryfikacji w całości po stronie docelowego hosta, do którego nawiązywane jest połączenie, bez konieczności kontaktowania się z zewnętrznymi służbami. Lista otwartych kluczy centrum certyfikacji, które zatwierdza certyfikaty SSH, jest określana za pomocą dyrektywy TrustedUserCAKeys.
Oprócz bezpośredniego przypisania użytkowników do hostów, HIBA pozwala na określenie bardziej elastycznych zasad dostępu. Na przykład, do hostów można przypisać informacje takie jak lokalizacja i typ usługi, a przy definiowaniu zasad dostępu użytkowników zezwolić na połączenia z wszystkimi hostami o zadanym typie usługi lub do hostów w określonym miejscu.


Źródło: opennet.ru
