Jak dotnetup weryfikuje pobrane pliki

Uwaga

dotnetup jest dostępna w publicznej wersji zapoznawczej. Jego funkcje i zachowanie mogą ulec zmianie przed ogólną dostępnością.

dotnetupSprawdza zestawy SDK .NET i środowiska uruchomieniowe, które pobiera, zanim je wyodrębni. Typ weryfikacji zależy od tego, skąd pochodzi kompilacja.

Wydane buildy

W przypadku wydanych kompilacji dotnetup używa łańcucha zaufania, który zaczyna się od podpisanego manifestu wydania:

  1. dotnetuppobiera manifesty wersji .NET. Te manifesty są indeksem wydań i plikami releases.json dla każdego kanału.
  2. dotnetup Sprawdza odłączony podpis kodu (plik .p7s) każdego manifestu. Jeśli brakuje podpisu lub jest on nieprawidłowy, polecenie zakończy się niepowodzeniem.
  3. Zweryfikowany manifest zawiera skrót SHA-512 każdego archiwum.
  4. dotnetup pobiera archiwum i porównuje skrót SHA-512 z skrótem w manifeście. Jeśli hasze nie są zgodne, polecenie zakończy się niepowodzeniem i dotnetup nie wyodrębni archiwum.

Ponieważ podpisany plik manifestu wiąże skrót każdego archiwum, dotnetup nie weryfikuje oddzielnego podpisu dla każdego archiwum.

Weryfikacja podpisu sprawdza również status unieważnienia certyfikatu w trybie online. Zezwalaj na dostęp do wymaganych punktów końcowych odwołania certyfikatów. Jeśli sieć blokuje te kontrole, weryfikacja zakończy się niepowodzeniem i dotnetup zatrzyma instalację, nawet jeśli podpis jest prawidłowy.

Wygaśnięcie manifestu

Manifesty wydania zawierają czas wygaśnięcia. dotnetup sprawdza, czy manifest nie wygasł, nawet jeśli skróty podpisu i archiwum są prawidłowe. Sprawdza również, czy manifest został podpisany przed upływem czasu wygaśnięcia.

Nieprawidłowy zegar systemowy lub wygasły manifest może spowodować niepowodzenie weryfikacji. Aby uzyskać wskazówki dotyczące przywracania, zobacz Manifest wydania wygasł.

Zaufane certyfikaty

W przypadku podpisów manifestu i ich znaczników czasu dotnetup używa zaufanych certyfikatów głównych dołączonych do narzędzia. Nie dodaje certyfikatów z magazynu zaufania systemu operacyjnego do tych głównych urzędów certyfikacji.

Dodanie certyfikatu do magazynu zaufania systemu operacyjnego nie sprawia, że dotnetup ufa podpisowi manifestu wydania z łańcucha tego certyfikatu. Podpis musi spełniać zasady weryfikacji dotnetup i być powiązany w łańcuchu z dołączonym zaufanym głównym certyfikatem.

Codzienne i niepubliczne kompilacje wersji wstępnej

Codzienne kompilacje i wersje wstępne, które nie są w podpisanym manifeście wydania, pochodzą z innego kanału. Te kompilacje mają plik skrótu SHA-512, ale bez podpisu kodu. W przypadku tych kompilacji dotnetup sprawdza tylko skrót SHA-512.

dotnetup używa tej ścieżki podczas instalowania:

  • Kanał dzienny, taki jak daily lub 10.0-daily.
  • W pełni określona wersja wstępna, taka jak 10.0.100-preview.4.25216.37, nie znajduje się w manifeście wydania.

Przed rozpoczęciem dotnetup instalacji zostanie wyświetlone następujące ostrzeżenie:

⚠ Daily builds are not code-signed. Only the SHA-512 hash is verified.

Aby uzyskać więcej informacji na temat codziennych kompilacji, zobacz Używanie wersji zapoznawczej i codziennych kompilacji.

Blokuj niepodpisane pobrania

Administratorzy mogą zablokować instalację kompilacji, które nie są podpisane kodem. Gdy te zasady będą obowiązywać, dotnetup nadal instaluje wydane kompilacje, ale instalacje codziennych i niewymienionych kompilacji wstępnych kończą się niepowodzeniem.

Windows

BlockUnsignedDownloads Utwórz wartość rejestru jako REG_DWORD wartość z wartością inną niż zero w obszarze HKLM\SOFTWARE\Policies\Microsoft\dotnet\Dotnetup. Na przykład uruchom następujące polecenia w sesji programu PowerShell z podwyższonym poziomem uprawnień:

$key = 'HKLM:\SOFTWARE\Policies\Microsoft\dotnet\Dotnetup'
New-Item -Path $key -Force | Out-Null
New-ItemProperty -Path $key -Name 'BlockUnsignedDownloads' -PropertyType DWord -Value 1 -Force | Out-Null

Aby wyczyścić zasadę, usuń wartość lub ustaw ją na 0.

Linux i macOS

Utwórz plik /etc/dotnet/dnup-block-unsigned-downloads. Zawartość pliku nie ma znaczenia. Przykład:

sudo mkdir -p /etc/dotnet
sudo touch /etc/dotnet/dnup-block-unsigned-downloads

Aby wyczyścić politykę, usuń plik.

Zablokowane instalacje

Gdy zasady blokują instalację, dotnetup wyświetla błąd podobny do następującego komunikatu:

An IT policy on this machine requires code-signed downloads. Installing daily or unsigned prerelease builds of SDK <version> is blocked. Choose a released version, or have an administrator clear the policy ...

Aby kontynuować, zainstaluj wydaną wersję lub poproś administratora o usunięcie tej zasady.

Plik wykonywalny dotnetup

Skrypty pobierania get-dotnetup weryfikują pobrany dotnetup plik wykonywalny przy użyciu pliku sumy kontrolnej SHA-512. Aby uzyskać więcej informacji, zobacz Rozpocznij pracę z dotnetup.

Informacje dodatkowe