Zabezpečení založené na způsobilosti
Author
Albert FloresZabezpečení založené na způsobilosti (Capability-based security) je koncept v návrhu zabezpečených výpočetních systémů, jeden ze stávajících modelů zabezpečení. Způsobilost (známé v některých systémech jako klíč) je přenosným a nepadělatelným projev autority. Odkazuje na hodnotu, která jedinečně odkazuje na objekt spolu s přidruženou sadou přístupových práv. Na základě svého držení procesem, který používá odkazovaný objekt, token způsobilosti uděluje tomuto procesu způsobilost komunikovat s objektem určitými způsoby. V systému založeném na způsobilostech je to uživatel, který musí předložit svou autorizační způsobilost (a prokázat, že je jejím vlastníkem) poskytovateli služeb, zatímco v tradičním systému ACL je to poskytovatel služeb, který musí kontrolovat, zda je uživatel přímo nebo nepřímo (například prostřednictvím role vlastněné uživatelem) oprávněn provádět požadovanou operaci na požadovaném prostředku.
Historie
Termín „způsobilost“ pochází z článku z roku 1966, který napsali Dennis a Van Horn. Ackerman a Plummer poté pro PDP-1 vytvořili operační systém založený na těchto myšlenkách. +more Existovaly však dřívější systémy, které implementují funkce přímo do hardwaru. Všechny „akce“ v systémech, které využívají schopnosti, spočívají v implementaci a dosažení jejich nepadělatelnosti.
Zabezpečení založené na způsobilosti bylo poprvé vyvinuto v kontextu operačních systémů a bylo aplikováno na programovací jazyky a síťové protokoly. IBM System / 38, který byl předchůdcem úspěšného AS / 400, používal funkce pro správu přístupu k objektům. +more V 90. letech kombinoval programovací jazyk E se zabezpečením založeném na způsobilostech s objektově orientovaným programováním a vytvořilo zabezpečení založené na objektových schopnostech, kde jsou odkazy na objekty v programovacím jazyce OO bezpečně v paměti. Zabezpečení založené na objektových schopnostech dobře zapadá do konvenční moudrosti týkající se dobrého OO designu a návrhových vzorů, protože oba zdůrazňují eliminaci globálních proměnných a vyhýbání se statickým metodám, které mají vedlejší účinky. E také zahrnoval zabezpečený protokol pro volání metod přes síť pomocí funkcí. Tento protokol byl přijat a aktualizován Cap'n Proto framewokem, který poskytuje efektivní binární protokol pro implementaci API na základě vzdálených volacích procedur. Funkce se nyní také objevují na populárních webech a rozhraních REST API, včetně těch od Google a Dropboxu.
Přehled
Zabezpečení založené na způsobilostech je podstatně lepší přístup k dnešnímu rámci ACL pro správu identit a přístupu pro vytváření zabezpečeného systému správy identit a přístupu. Systému se způsobilostmi stačí pouhá skutečnost, že uživatelský program vlastní způsobilost, jenž jej opravňuje používat odkazovaný objekt v souladu s právy, která jsou specifikována touto způsobilostí. +more Teoreticky systém s funkcemi odstraňuje potřebu jakéhokoli seznamu řízení přístupu nebo podobného mechanismu tím, že poskytuje všem entitám všechny a pouze funkce, které skutečně budou potřebovat.
Díky způsobilostem mohou vývojáři velmi snadno psát kód, který podrobně definuje bezpečnostní oprávnění. Po vytvoření nelze pravidla v rámci způsobilosti změnit bez změny samotného klíče. +more To umožňuje vývojářům automaticky zachycovat Ambient Authority, protože způsobilost je vázána na samotný objekt.
Způsobilost lze chápat jako dvojici (x, r), kde x je název objektu a r je množina výsad a práv. U každého subjektu můžeme uložit jeho způsobilost. +more A předmět prezentuje strážci způsobilosti k získání přístupu k objektu. Funkce je zcela přenositelná, nezáleží na tom, kdo tuto způsobilost představuje. Tento framework zcela eliminuje potřebu ověřování. S ACL jsme však předpokládali, že autentizace je neodpustitelná. Díky funkcím nyní potřebujeme způsob, jak učinit funkce neodpustitelnými. Na tom závisí úspěch mechanismu založeného na způsobilostech.
Další funkce
Ve srovnání s předchozími přístupy autorizace založenými na způsobilostech, tato poskytuje následující další funkce, které představují zásadní inovaci oproti předchozím technikám založeným na způsobilostech: * Podpora delegování - Subjekt může udělit přístupová práva jinému subjektu a také udělit právo na další delegování všech nebo části udělených práv, hloubku delegování lze řídit v každé fázi. * Odvolání schopností - Způsobilosti mohou být zrušeny řádně autorizovanými subjekty, čímž se řeší jeden z problémů přístupů založených na způsobilostech v distribuovaných prostředích. +more * Granularity informací - Způsobilost může dokonce specifikovat dynamickou adaptaci udělených práv (např. specifikovat „úroveň podrobností“ pro přístupové právo ke čtení na konkrétní informaci). Tímto způsobem může poskytovatel služeb vylepšit své chování a data, která musí poskytnout, podle toho, co je uvedeno v tokenu schopností.