VPN-installationsprogram fra et spejl? Bekræft udgiveren først
Downloadkanalen afgør, hvilken kode der kører, og hvem der kan opdatere den. Kontroller først signaturen, kilden til kontrolsummen og profiludstederen.
Tunnelen virkede, grænsefladen kom op, og sessionen forblev stabil i en uge. Intet af det fortæller dig, hvem der byggede installationsprogrammet. En VPN-klient kører med privilegier nok til at omskrive ruter og læse legitimationsoplysninger, så udgiveren er en del af trusselsmodellen, ikke en fodnote.
Udfør kontrollerne i rækkefølge, og stop ved den første, der fejler. De er billige, og hver især lukker et forskelligt hul.
Første trin: Hent fra den kanal, projektet angiver
Hvert projekt dokumenterer, hvor dets udgivelser ligger, og den side er referencepunktet. Fællesskabsbyggede versioner, butiksopslag og leverandørportaler er alle legitime kanaler. Hver af dem er kun legitim, når projektet selv peger på den. Det er testen, og det er ikke det samme som at se officiel ud.
En fil opkaldt efter projektet beviser intet. At omdøbe et installationsprogram er en operation på et sekund, og navnet er det, et søgeresultat viser først.
Andet trin: Bekræft signaturen mod en kendt identitet
Signaturbekræftelse besvarer et snævert spørgsmål godt. Den fortæller dig, at en bestemt identitet har signeret denne binære fil, og at filen ikke er ændret siden. Den besvarer ét spørgsmål og afviser et andet. Den kan ikke fortælle dig, om den identitet er den, du mente at stole på.
# macOS: who signed this app, and is the signature intact?
codesign -dv --verbose=4 /Applications/Tunnel.app
spctl -a -vvv -t install /Applications/Tunnel.app
# Windows: signature and publisher of the installer
Get-AuthenticodeSignature .\tunnel-setup.exe | Format-List Status, SignerCertificate
# Linux: detached signature from the project's release page
gpg --verify tunnel-1.4.2.tar.gz.asc tunnel-1.4.2.tar.gz
Læs identiteten, ikke statusordet. En uvedkommende udvikler med et gyldigt certifikat frembringer en gyldig signatur. Et styresystem, der rapporterer en anerkendt udgiver, har kun fortalt dig, at nogen betalte for et certifikat.
Tredje trin: Sammenlign hashen med en uafhængig kilde
En kontrolsum beviser overensstemmelse med en referenceværdi. Hvis referencen ankom sammen med downloadet, kan begge være forkerte på samme tid, og sammenligningen består stadig. Det er fejlmønsteret i de fleste vejledninger. Hashen står på samme side som den fil, den beskriver.
# Linux and macOS
shasum -a 256 tunnel-1.4.2.dmg
# compare against the value published on the project's own release page
# not against a value copied from the same mirror
Når et projekt offentliggør signerede kontrolsummer eller et signeret udgivelsesmanifest, skal du bekræfte signaturen over listen i stedet for hver fil for sig. På den måde dækker én betroet reference hele udgivelsen.
Efter installationen: Behold opdateringsvejen
En understøttet kanal bliver ved med at betyde noget, efter installationen er færdig. Repaketerede versioner kan have deres egen opdateringsfunktion, og den funktion afgør, hvad der kører næste måned. En version, der aldrig opdateres, er ikke sikrere. Den er bare ældre.
Notér, hvordan klienten forventes at blive opdateret, og om et styringssystem ejer det trin. Hvis svaret er en manuel download fra et forum, er forsyningskædespørgsmålet aldrig rigtig lukket.
To oprindelser, ikke én
Klientudvikleren og profiludstederen er separate parter. En officiel klient, der importerer en profil fra en uvedkommende operatør, er en normal ordning, og profilen fortjener sin egen granskning: hvem udstedte den, hvordan blev den leveret, og matcher servercertifikatet det navn, du forventer.
Hold begge oprindelser identificerbare i dine noter. I det øjeblik en klient udskiftes, eller en enhed gendannes fra backup, er det de to linjer, der forhindrer en ukendt version eller en ukendt profil i at vende tilbage sammen med resten af dataene.