
有什麼方法可以確保已下載或系統上存在的檔案來自 Microsoft 並且未被篡改?如果是的話,有什麼PowerShell方式嗎?
我正在考慮使用Get-AuthenticodeSignature
命令列開關,但我不確定我是否朝著正確的方向前進。
有人可以幫我解決這個問題嗎?
以下是我得到的文件的輸出 -
PS C:> Get-AuthenticodeSignature -FilePath .\sts2016-kb3141486-fullfile-x64-glb.exe |佛羅裡達州
SignerCertificate :[主題] CN=Microsoft Corporation、OU=MOPR、O=Microsoft Corporation、L=Redmond、S=Washington、C=US
[Issuer] CN=Microsoft Code Signing PCA, O=Microsoft Corporation, L=Redmond, S=Washington, C=US [Serial Number] 330000014096A9EE7056FECC07000100000140 [Not Before] 8/18/2016 8:17:17 PM [Not After] 11/2/2017 8:17:17 PM [Thumbprint] 98ED99A67886D020C564923B7DF25E9AC019DF26
時間戳證書:
狀態:有效
StatusMessage:簽章已驗證。
路徑:C:\sts2016-kb3141486-fullfile-x64-glb.exe
簽名類型:驗證碼
IsOSBinary:假
因此,如果僅檢查一個文件並且它具有相同的發行者並且其簽名已驗證,我可以認為該文件是安全的嗎?
謝謝!
答案1
您可以使用校驗和,或者 Microsoft 在其下載頁面上將其稱為“包哈希”。這是可以從檔案建立的哈希值。從資訊頁面軟體您提供的,向下是包含文件哈希資訊的部分。
您可以使用此資訊來確認您已下載正確的軟體。 PowerShell 有一個名為 Get-FileHash 的 cmdlet,您可以在該檔案上執行該 cmdlet。預設使用 SHA256。您可以使用 -Algorithm 參數來使用不同的演算法。我在下面的範例中使用了 SHA1,因為它與上面的螢幕截圖相符。如果您使用 -Algorithm SHA256,它與螢幕截圖中的「Package hash SHA 2」相符。
Get-FileHash C:\sts2016-kb3141486-fullfile-x64-glb.exe -Algorithm SHA1
Algorithm Hash Path
--------- ---- ----
SHA1 1B30B50FEB5FB3F8D764C6C0D6523DBA5BE05C1E C:\sts2016-kb3141486-fullfile-x64-glb.exe
如果哈希值匹配,您就可以放心下載。
謝謝,蒂姆。