Spisu treści:
Definicja - Co oznacza Code Access Security (CAS)?
Zabezpieczenia dostępu do kodu (CAS) to mechanizm bezpieczeństwa, za pomocą którego środowisko uruchomieniowe języka wspólnego (CLR) .NET Framework może ograniczyć zarządzany kod do wykonywania operacji z ograniczonym zestawem uprawnień.
CAS egzekwuje zasady bezpieczeństwa w środowisku .NET, zapobiegając nieautoryzowanemu dostępowi do chronionych zasobów i operacji. W przeciwieństwie do tradycyjnych metod bezpieczeństwa, w których dane uwierzytelniające uzyskiwane są od użytkownika, CAS został zaprojektowany w celu rozwiązania problemów napotykanych podczas uzyskiwania kodu ze źródeł zewnętrznych, które zawierają błędy i podatności. Te błędy i luki mogą powodować, że system użytkownika jest podatny na złośliwy kod, który może wykonywać zadania bez wiedzy użytkownika. CAS faktycznie zna i zezwala tylko na te operacje, które kod danego użytkownika może i nie może wykonać. Ta funkcja ma zastosowanie do całego kodu zarządzanego ukierunkowanego na CLR.
CAS zapewnia bezpieczeństwo oparte na dowodach zbudowane na warstwie powyżej bezpieczeństwa zapewnianego przez system operacyjny Windows. Podczas gdy system Windows opiera się na uprawnieniach użytkownika, CAS jest oparty na dowodach dla zestawu. Zestaw zawiera uprawnienia zdefiniowane w polityce bezpieczeństwa i stanowi podstawę do umożliwienia kodowi wykonania niezbędnych działań.
Techopedia wyjaśnia Code Access Security (CAS)
CAS opiera się między innymi na następujących elementach:
- Uprawnienia: są to podstawowe prawa potrzebne do uzyskania dostępu do chronionego zasobu lub wykonania chronionej operacji.
- Zestaw uprawnień: jest to zestaw uprawnień, takich jak „pełne zaufanie”, „nic”, „Internet”, „lokalny intranet” i inne.
- Grupa kodów: Jest to logiczne grupowanie kodu z określonym warunkiem członkostwa, takim jak Strefa_Intranet i Strefa Internet.
- Dowody: są to informacje związane ze złożeniem, takie jak katalog aplikacji, wydawca, adres URL i strefa bezpieczeństwa.
- Polityka bezpieczeństwa: jest to zestaw reguł skonfigurowanych przez administratora w celu określenia uprawnień przyznanych dla kodu wyrażonego hierarchicznie na czterech poziomach jako domena przedsiębiorstwa, komputera, użytkownika i aplikacji.
Operacja uprzywilejowana do wykonywania kodu wymaga CLR dla jednego lub więcej uprawnień. Rzeczywiste uprawnienie jest obliczane na podstawie unii uprawnień ustawionej w grupach kodów, a następnie przecięcia na poziomie zasad. CLR zapewnia, że wymagane uprawnienia znajdują się w przyznanych uprawnieniach metody tego zestawu. Jeśli pozwolenie nie zostanie udzielone, zostanie zgłoszony wyjątek bezpieczeństwa.
CAS udostępnia dwa tryby bezpieczeństwa do definiowania uprawnień do kodu:
- Zabezpieczenia deklaratywne są wdrażane poprzez zdefiniowanie atrybutów bezpieczeństwa na poziomie zestawu, poziomu klasy lub elementu członkowskiego. Tryb deklaratywny jest używany, gdy połączenia muszą być oceniane w czasie kompilacji.
- Ochrona imperatywna używa wywołań metod w czasie wykonywania do tworzenia instancji klas zabezpieczeń. Tryb imperatywny jest używany, gdy połączenia muszą być oceniane w czasie wykonywania.
CAS ma ograniczenia, w tym nieprawidłowe działanie aplikacji przeniesionej do innego systemu, gdy zasady bezpieczeństwa są inne. Ponadto nie ma kontroli nad niezarządzanym kodem ani kontroli nad tworzeniem aplikacji w celu zaspokojenia potrzeb różnych scenariuszy ustawień zabezpieczeń w systemach użytkownika.
Aby efektywnie korzystać z drobnoziarnistej technologii zabezpieczeń CAS, programiści powinni pisać kod bezpieczny dla typu, stosować deklaratywną lub imperatywną składnię opartą na kontekście, żądać uprawnień od czasu wykonania dla kodu i używać bezpiecznych bibliotek.
