在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎么樣才能識別文件的真假

Wildesbeast ? 來源:今日頭條 ? 作者:阮一峰的網絡日志 ? 2020-02-18 12:30 ? 次閱讀

每個人都下載文件,大家有沒有想過,文件可能是假的,尤其來自網盤或專門的下載站。

本文就來談談如何識別文件的真假。

一、XcodeGhost 事件

我們從一件真實的事件說起。

2015 年 9 月,蘋果手機的一些 App 被發現[1]向可疑網站發送數據。進一步調查確認,可疑代碼是 Xcode 打包時植入的。也就是說,開發者編程工具 Xcode 被動過手腳了。

騰訊的安全團隊公布調查報告[2],應用商店的前 5000 名應用有 76 個被感染。360 應用商店檢查后發現[3],共有 1076 個 App 被感染,包括微信、網易云音樂、滴滴打車、高德地圖、12306、同花順等熱門應用。蘋果公司將所有被感染的版本,都從官方軟件商店下架了。這個事件就稱為 XcodeGhost 事件[4]。

國家互聯網應急中心專門發出了預警通知。

追查下去,那些動過手腳的 Xcode 都不是從官方渠道下載的,而是來自網盤或下載站。一個網名“coderfun”的人,在各種 iOS 開發者論壇或者微博留言,引誘其他開發者下載修改過的 Xcode,版本從 Xcode 6.1 到6.4。

事后,這位 coderfun 發出致歉公告,表示這只是自己的一次實驗,沒有惡意。但是,這個事件足以引起警惕,任何下載的文件都不一定安全,很可能被修改過或植入惡意代碼。

二、軟件的防偽措施

為了防止來源不明的軟件,很多平臺都有簽名機制。軟件發布必須由認證過的開發商,使用平臺的密鑰簽名。如果用戶安裝未簽名的軟件,平臺會彈出警告,阻止安裝。下面就是 MacOS 的警告。

但是,不可能所有開發者都去認證,尤其是認證要收費。而且,用戶對這種警告不在乎,一般都會忽略或手動關閉。所以,這種做法的效果不明顯。

目前的常用做法是,軟件發布時,同時給出哈希碼和簽名文件。前者保證沒有被第三方修改,后者保證確實出自原始作者。

舉例來說,Linux 的發行版 Manjaro 除了提供原始的 iso 文件,還提供另外三個文件:sha1 哈希文件、sha 256 哈希文件和 sig 簽名文件。它們保證了軟件的真實性。

三、哈希碼驗證

哈希碼指的是,文件內容經過哈希函數的計算,會返回一個獨一無二的字符串。哪怕原始內容只改動一個字節,哈希碼也會完全不同。用戶下載軟件后,只要計算一下哈希碼,再跟作者給出的哈希碼比較一下,就會知道軟件有沒有被改動。

目前,常用的三種哈希函數是 MD5、SHA1 和 SHA256。其中,SHA256 最安全,SHA1 次之,MD5 墊底。一般來說,軟件至少會提供其中一種哈希碼。

下面是哈希碼的驗證方法。

(1)Linux 系統

Linux 系統直接用md5sum、sha1sum、sha256sum這三個命令,計算哈希碼。

$ md5sum foo.zip $ sha1sum foo.zip $ sha256sum foo.zip

上面命令返回文件foo.zip的三種哈希碼。用戶再跟作者給出的哈希碼比對。如果不一致,文件就是被改動了,或者沒有完整下載。

有時,就像前面 Manjaro 的例子,哈希碼不是寫在網頁上,而是作為一個單獨的文本文件下載。這時可以使用-c參數

$ md5sum -c foo.zip.md5file $ sha1sum -c foo.zip.sha1file $ sha256sum -c foo.zip.sha256file

上面命令會返回哈希碼的比對結果,直接告訴用戶是否一致。

(2)Mac 系統

MacOS 的驗證命令需要自己安裝。

$ brew install md5sha1sum

執行上面命令以后,md5sum和sha1sum就可以使用了。至于sha256sum要用shasum -a256命令代替。

(3)Windows 系統

Windows 可以下載安裝免費軟件 Quick hash[5]或者 Raymond’s MD5 & SHA Checksum Utility[6]。其中,Quich hash 是跨平臺的,還支持 Linux 和 MacOS。

四、簽名驗證

哈希碼只能保證文件內容沒有修改,但是哈希碼本身也有可能仿冒,完全可能連帶原始文件一起造假。

文件簽名能解決這個問題。軟件發布時,作者用自己的私鑰,對發布的軟件生成一個簽名文件(Manjaro 例子的 sig 文件),用戶使用作者的公鑰驗證簽名文件。

第一步,下載公鑰。

軟件的官網一般都會給出作者公鑰的下載方法。比如,Manjaro 就可以從 GitHub 倉庫下載公鑰。

$ wget github.com/manjaro/packages-core/raw/master/manjaro-keyring/manjaro.gpg

公鑰也有可能放在專門的公鑰服務器,這時可以使用gpg命令在從公鑰服務器下載。

$ gpg --keyserver hkp://eu.pool.sks-keyservers.net --search-keys [公鑰 ID]

上面命令會列出搜索結果,讓你選擇是否下載某一個公鑰。--keyserver參數指定公鑰服務器,search-keys參數給出搜索參數,可以是作者的名稱,也可以是公鑰的指紋。

gpg命令在 Linux 下可以直接使用,MacOS 和 Windows 需要安裝 GnuPG[7]。

第二步,導入公鑰。

下載得到公鑰后,將其導入操作系統

$ gpg --import [公鑰文件]

如果有完整的公鑰指紋,gpg命令的--recv-key參數可以直接從服務器導入公鑰。

$ gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-key "27DE B156 44C6 B3CF 3BD7 D291 300F 846B A25B AE09"

第三步,驗證簽名。

導入公鑰以后,就可以驗證簽名文件(后綴名為sig的 文件)了。

# 用法一 $ gpg --verify [簽名文件] # 用法二 $ gpg --verify [簽名文件] [原始文件]

上面命令的兩種用法,效果是一樣的。但是,用法一要求原始文件與簽名文件同名,且在一個目錄下。比如,簽名文件是foo.iso.sig,原始文件必須是同目錄下的foo.iso。

簽名文件一般包括完整的公鑰指紋,所以也可以跳過上面的第一步和第二步,直接從公鑰服務器獲取公鑰,驗證簽名。

$ gpg --keyserver-options auto-key-retrieve --verify [簽名文件]

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11331

    瀏覽量

    210007
  • APP
    APP
    +關注

    關注

    33

    文章

    1575

    瀏覽量

    72620
  • iOS
    iOS
    +關注

    關注

    8

    文章

    3396

    瀏覽量

    150833
收藏 人收藏

    評論

    相關推薦

    如何辨別網線真假

    辨別網線的真假可以從以下幾個方面入手: 一、查看包裝和標識 檢查包裝:正品網線的包裝通常比較精美,紙質較好,上面的印刷信息清晰,包括產品產地、執行標準、種類、長度等。有些品牌還會在外包裝上貼上防偽
    的頭像 發表于 01-10 10:28 ?106次閱讀

    下載PGA900 GUI Installer這個軟件安裝文件,電腦無法識別文件,該如何解決?

    請問下,從TI官網上下載的PGA900 GUI Installer這個軟件安裝文件,電腦無法識別文件,該如何解決?
    發表于 12-20 08:06

    LM4871怎么才能輸出最大的功率呢?

    你好,請問一下負載是一個電感線圈,阻值1.2R,電感值為96uh。怎么才能輸出最大的功率呢,供電是3.7V的鋰電池。
    發表于 09-30 07:01

    三星電容代理商怎么辨別真假呢?

    三星電容代理商 所代理產品辨別真假的方式有兩種,一種是先辨別 三星電容代理商 的真假,另一種就是根據三星電容的產品防偽標志來進行辨別真假。今天針對這兩種方式給大家詳細的分享一下如何去針對這兩種方式
    的頭像 發表于 07-25 15:37 ?423次閱讀

    村田電感真假貨怎么看?

    要辨別村田電感的真假,可以從以下幾個方面進行綜合考慮: 1、外觀檢查 : 真品村田電感通常具有光滑、整潔的表面,沒有打磨或磨損的痕跡。 假冒產品可能為了掩蓋瑕疵,在表面進行打磨處理,留下細紋或以
    的頭像 發表于 06-27 14:24 ?446次閱讀
    村田電感<b class='flag-5'>真假</b>貨怎么看?

    怎樣辨別超6類網線真假

    辨別超六類網線(Cat6A)的真假,可以依據以下幾個方面的特征進行判斷: 標識和標注: 超六類網線通常在線纜上有明確的標識和標注,如“Cat6A”或“Category 6A”等字樣。這是最直接且簡單
    的頭像 發表于 06-26 09:57 ?3009次閱讀

    如何才能將Bootloader和Application關聯起來

    接下來,我們要利用該Bootloader調試目標Application Project,如何才能將Bootloader和Application關聯起來呢?就需要借助剛才提到的Bootloader Project Build所生成的***.bld文件
    的頭像 發表于 06-12 14:32 ?741次閱讀
    如何<b class='flag-5'>才能</b>將Bootloader和Application關聯起來

    無法在FX3設備上找到.Img文件,怎樣才能生成.img文件

    怎樣才能生成 .img 文件,并在 USB 控制中心顯示該 img 文件,這樣我就可以將其加載到 FX3 設備的 RAM 中。
    發表于 05-28 07:08

    STVD如何設置才能生成HEX文件呢?

    請教大家,如何設置才能生成HEX文件呢?我百度一下,按網上的方法,其實是不行。所以在次求助,謝謝了
    發表于 04-28 07:50

    FATFS對SPI_FLASH新建文件、刪除文件或者修改文件后電腦無法識別,為什么?

    FATFS對SPI_FLASH新建文件、刪除文件或者修改文件后電腦無法識別,而且會斷開連接,需要重新插拔,這是什么問題呢
    發表于 04-09 07:06

    如何把外部SRAM像內部RAM一分配變量?

    各位大神,外部SRAM怎樣配置才能像內部SRAM一分配變量,要編譯器分配。我使用的是GCC,SRAM現在可以讀寫,但是就是不知道怎么修改鏈接腳本和啟動文件
    發表于 04-08 08:32

    風華電容如何辨別真假

    辨別風華電容的真假,可以從以下幾個方面入手: 1、選擇正規代理商 :購買風華電容產品時,應選擇信譽好、專業的代理商。這些代理商通常會直接從風華電容公司采購正品,并在銷售過程中提供相關證明。如果
    的頭像 發表于 03-22 15:37 ?853次閱讀

    程序中的R地址都是什么意思?怎么才能看懂?

    程序中的R地址都是什么意思?怎么才能看懂? 在程序中,R地址通常指的是寄存器地址,它是用來存儲和訪問計算機中的數據的硬件部件。寄存器是計算機中最快的內存形式,它位于中央處理器(CPU)內部或與
    的頭像 發表于 02-18 10:49 ?1168次閱讀

    什么的負載電容可以起振?又需要匹配多大的電容值才能快速響應起振呢?

    什么的負載電容是可以起振?又需要匹配多大的電容值才能快速響應起振呢? 負載電容是指連接在振蕩電路輸出端的電容元件。振蕩電路中的負載電容起著重要的作用,它不僅決定了振蕩的頻率,還影響了振蕩電路
    的頭像 發表于 01-26 14:07 ?805次閱讀

    怎樣才能配置lsl或工具來獲取HEX文件中的PSRAM地址?

    我把這個函數放進了 PSRAM 地址,我檢查了地圖,它起作用了。 但是十六進制文件不包括 PSRAM地址。 我怎樣才能配置 lsl 或工具來獲取 HEX 文件中的 PSRAM 地址?
    發表于 01-22 06:05
    主站蜘蛛池模板: 婷婷色天使在线视频观看| 国产亚洲美女精品久久久久狼| 日本日b视频| 鲁丝一区二区三区| 2018天天干天天射| vip影院在线观看| 国产午夜视频在永久在线观看| 黄色大片视频在线观看| 亚洲一区二区精品视频| 李丽莎尤物福利视频| 一级片在线免费播放| 欧美特级午夜一区二区三区| 年轻护士女三级| 亚洲精品卡1卡二卡3卡四卡 | 天天干夜夜欢| aa黄色大片| 午夜看片网| 久久九九国产| 美国一区二区三区| 亚洲欧美4444kkkk| 中国胖女人一级毛片aaaaa| 男人午夜小视频| 清冷双性被cao的合不拢腿| 一卡二卡卡四卡无人区中文| 色噜噜狠狠狠狠色综合久| 久久五月天婷婷| 午夜影网| 福利视频自拍偷拍| 性xxxxx| 午夜爽爽| 黄色一及毛片| 天天爱天天插| 久久免费国产| h视频免费在线| 同性同男小说肉黄| 亚洲高清毛片| 久久免费国产视频| 天天做天天爱夜夜爽毛片毛片| 亚洲最色网| 在线天堂中文官网| 免费大片黄在线观看日本|