Udostępnij przez


Zagadnienia dotyczące zabezpieczeń zestawów

Podczas kompilowania zestawu można określić zestaw uprawnień wymaganych przez zestaw. Czy zgromadzeniu przyznaje się pewne uprawnienia, czy nie, zależy to od dowodów.

Istnieją dwa różne sposoby użycia dowodów:

  • Dane wejściowe są scalane z danymi zebranymi przez moduł ładujący, aby utworzyć końcowy zestaw dowodów używanych do realizacji zasad. Metody korzystające z tej semantyki obejmują Assembly.Load, Assembly.LoadFrom i Activator.CreateInstance.

  • Dowody wejściowe są używane bez zmian jako ostateczny zestaw dowodów do rozwiązywania polityk. Metody korzystające z tej semantyki obejmują Assembly.Load(byte[]) i AppDomain.DefineDynamicAssembly().

    Opcjonalne uprawnienia można przyznać za pomocą zasad zabezpieczeń ustawionych na komputerze, na którym zostanie uruchomiony zestaw. Jeśli chcesz, aby kod obsługiwał wszystkie potencjalne wyjątki zabezpieczeń, możesz wykonać jedną z następujących czynności:

  • Wstaw żądanie o wszystkie uprawnienia, które musi mieć kod i z góry obsłuż błąd w trakcie ładowania, który występuje, jeśli uprawnienia nie zostaną udzielone.

  • Nie używaj żądania uprawnień, aby uzyskać uprawnienia, których może potrzebować kod, ale przygotuj się do obsługi wyjątków zabezpieczeń, jeśli nie udzielono uprawnień.

    Uwaga / Notatka

    Zabezpieczenia to złożony obszar i masz wiele opcji do wyboru. Aby uzyskać więcej informacji, zobacz Kluczowe pojęcia dotyczące zabezpieczeń.

Podczas ładowania dowody zestawu są używane jako dane wejściowe do polityki zabezpieczeń. Zasady zabezpieczeń są tworzone przez przedsiębiorstwo, administratora komputera oraz przez ustawienia zasad użytkownika, co określa zestaw uprawnień przyznawanych całemu zarządzanemu kodowi podczas jego wykonywania. Zasady zabezpieczeń można ustanowić dla wydawcy zestawu (jeśli ma on podpis wygenerowany przez narzędzie podpisujące), dla witryny sieci Web i strefy (co było koncepcją programu Internet Explorer), z której zestaw został pobrany, lub dla jego mocnej nazwy. Na przykład administrator komputera może ustanowić zasady zabezpieczeń, które zezwalają na cały kod pobrany z witryny sieci Web i podpisany przez daną firmę oprogramowania w celu uzyskania dostępu do bazy danych na komputerze, ale nie udziela dostępu do zapisu na dysku komputera.

Zestawy o silnych nazwach i narzędzia podpisywania

Ostrzeżenie

Nie należy polegać na silnych nazwach jako środku bezpieczeństwa. Zapewniają one tylko unikatową tożsamość.

Zestaw można podpisać na dwa różne, ale uzupełniające sposoby: za pomocą silnej nazwy lub przy użyciu SignTool.exe (narzędzia podpisywania). Podpisanie zestawu mocną nazwą powoduje dodanie szyfrowania kluczem publicznym do pliku, który zawiera manifest zestawu. Podpisywanie przy użyciu silnej nazwy pomaga zweryfikować unikatowość nazw, zapobiega fałszowaniu nazw i dostarcza wywołującym pewną tożsamość, gdy odwołanie jest rozpoznawane.

Żaden poziom zaufania nie jest skojarzony z silną nazwą, co czyni SignTool.exe (narzędzie podpisywania) istotnym. Dwa narzędzia podpisywania wymagają, aby wydawca udowodnił swoją tożsamość autorytetowi zewnętrznemu i uzyskał certyfikat. Ten certyfikat jest następnie osadzony w pliku i może być używany przez administratora, aby zdecydować, czy ufać autentyczności kodu.

Możesz nadać zarówno silną nazwę, jak i podpis cyfrowy utworzony przy użyciu SignTool.exe (narzędzia podpisywania) do zestawu lub użyć go samodzielnie. Dwa narzędzia podpisywania mogą podpisywać tylko jeden plik naraz; w przypadku zestawu wieloplikowego podpiszesz plik zawierający manifest zestawu. Silna nazwa jest przechowywana w pliku zawierającym manifest zestawu, ale podpis utworzony przy użyciu SignTool.exe (narzędzia podpisywania) jest przechowywany w zarezerwowanym miejscu w pliku przenośnym wykonywalnym (PE) zawierającym manifest zestawu. Podpisywanie zestawu przy użyciu SignTool.exe (Sign Tool) może być używane (z nazwą mocną lub bez nazwy mocnej), gdy masz już hierarchię zaufania, która opiera się na SignTool.exe (Sign Tool) wygenerowanych podpisach lub gdy zasady używają tylko fragmentu klucza i nie sprawdzają łańcucha zaufania.

Uwaga / Notatka

W przypadku używania zarówno mocnej nazwy, jak i podpisu narzędzia podpisywania w zestawie, najpierw trzeba przypisać mocną nazwę.

Środowisko uruchomieniowe języka wspólnego wykonuje również weryfikację skrótu; manifest zestawu zawiera listę wszystkich plików tworzących zestaw, w tym skrót każdego pliku w takiej postaci, w jakiej istniał w momencie tworzenia manifestu. W miarę ładowania każdego pliku, tworzony jest jego skrót i porównywany z wartością skrótu przechowywaną w manifeście. Jeśli oba skróty nie są zgodne, nie można załadować zestawu.

Mocne nazewnictwo i podpisywanie przy użyciu SignTool.exe (Narzędzia Podpisywania) gwarantuje integralność dzięki podpisom cyfrowym i certyfikatom. Wszystkie wymienione technologie, czyli weryfikacja skrótu, silne nazewnictwo i podpisywanie przy użyciu SignTool.exe (narzędzia podpisywania), współpracują ze sobą, aby upewnić się, że zestaw nie został w żaden sposób zmieniony.

Zobacz także