chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

Wildesbeast ? 來源:今日頭條 ? 作者:阮一峰的網(wǎng)絡(luò)日志 ? 2020-02-18 12:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

每個人都下載文件,大家有沒有想過,文件可能是假的,尤其來自網(wǎng)盤或?qū)iT的下載站。

本文就來談?wù)勅绾巫R別文件的真假。

一、XcodeGhost 事件

我們從一件真實(shí)的事件說起。

2015 年 9 月,蘋果手機(jī)的一些 App 被發(fā)現(xiàn)[1]向可疑網(wǎng)站發(fā)送數(shù)據(jù)。進(jìn)一步調(diào)查確認(rèn),可疑代碼是 Xcode 打包時植入的。也就是說,開發(fā)者編程工具 Xcode 被動過手腳了。

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

國家互聯(lián)網(wǎng)應(yīng)急中心專門發(fā)出了預(yù)警通知。

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

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

二、軟件的防偽措施

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

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

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

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

三、哈希碼驗(yàn)證

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

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

下面是哈希碼的驗(yàn)證方法。

(1)Linux 系統(tǒng)

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

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

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

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

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

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

(2)Mac 系統(tǒng)

MacOS 的驗(yàn)證命令需要自己安裝。

$ brew install md5sha1sum

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

(3)Windows 系統(tǒng)

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

四、簽名驗(yàn)證

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

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

第一步,下載公鑰。

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

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

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

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

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

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

第二步,導(dǎo)入公鑰。

下載得到公鑰后,將其導(dǎo)入操作系統(tǒng)。

$ gpg --import [公鑰文件]

如果有完整的公鑰指紋,gpg命令的--recv-key參數(shù)可以直接從服務(wù)器導(dǎo)入公鑰。

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

第三步,驗(yàn)證簽名。

導(dǎo)入公鑰以后,就可以驗(yàn)證簽名文件(后綴名為sig的 文件)了。

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11576

    瀏覽量

    216828
  • APP
    APP
    +關(guān)注

    關(guān)注

    33

    文章

    1588

    瀏覽量

    75341
  • iOS
    iOS
    +關(guān)注

    關(guān)注

    8

    文章

    3400

    瀏覽量

    154724
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會被編譯呢?

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會被編譯?有什么編譯選項(xiàng)可以設(shè)置嗎? 移植代碼,有些函數(shù)沒被調(diào)用的函數(shù)想留在代碼里,但不想被編譯,編譯的話報錯報警告啥的太多了,而且編譯起來也慢。 謝謝!
    發(fā)表于 09-28 12:25

    電腦無法識別K230,MTP USB設(shè)備無法啟動怎么解決?

    我沒有端口號是重復(fù)的 求大佬幫忙看看,網(wǎng)上找不到和我一的情況,實(shí)在不行能不能有什么虛擬U盤的替代方案,我現(xiàn)在想看設(shè)備文件得拔下TF卡插到電腦上在去用Linuxreader才能預(yù)覽文件
    發(fā)表于 07-29 09:38

    win7無法識別USB設(shè)備怎么解決?

    我現(xiàn)在有一個添加了CDC的FX3固件,該設(shè)備可以在win10和win11上正常工作,但在win7似乎并不能正確的識別設(shè)備,串口和USB設(shè)備都不能正常識別。我應(yīng)該怎么操作才能解決這個問題?
    發(fā)表于 07-16 06:52

    基于LockAI視覺識別模塊:C++人臉識別

    人臉模板進(jìn)行比較來實(shí)現(xiàn)識別。 2. C++ API 文檔 2.1 FaceRecognitionSystem類 2.1.1 頭文件 #include <
    發(fā)表于 07-01 12:01

    基于LockAI視覺識別模塊:手寫數(shù)字識別

    Result對象包含預(yù)測得分(score)和對應(yīng)的標(biāo)簽ID(label_id),即識別出的手寫數(shù)字。 2.2 Visualize函數(shù) 2.2.1 頭文件 #include <
    發(fā)表于 06-30 16:45

    如何才能知道英飛凌Bluetooth?產(chǎn)品支持哪種Bluetooth?配置文件和版本?

    如何才能知道英飛凌Bluetooth?產(chǎn)品支持哪種Bluetooth?配置文件和版本? A2DP、AVRCP、HSP、HFP 等 是否有一個網(wǎng)頁或文檔解釋每個設(shè)備支持哪些配置文件和版本? 目前我想了解以下設(shè)備特別支持的配
    發(fā)表于 06-27 06:04

    STM32N6570-DK 的STLINK口不能識別出STLINK,為什么?

    使用數(shù)據(jù)線連接STM32N6570-DK的CN6口和電腦,存在不能識別出STLINK的情況。這個板子集成的STLINK是連上數(shù)據(jù)線就能識別出STLINK,還是配置硬件才能識別出來?我電
    發(fā)表于 06-16 07:14

    Allegro Skill封裝功能-導(dǎo)出device文件介紹與演示

    焊盤連接,Device文件會明確這種映射。Device文件僅適用于導(dǎo)入第三方網(wǎng)表的情況,PCB導(dǎo)入第三方網(wǎng)表不能直接與原理圖進(jìn)行交互式,這時候需要導(dǎo)出Device 文件,然后PCB才能
    發(fā)表于 04-19 09:44 ?1400次閱讀
    Allegro Skill封裝功能-導(dǎo)出device<b class='flag-5'>文件</b>介紹與演示

    CLRC663如何增強(qiáng)對RFID標(biāo)簽ic的識別距離?

    我現(xiàn)在在使用clrc663通過ISO15693協(xié)議識別rifd標(biāo)簽 ic無線圈(尺寸5*5mm),我現(xiàn)在的方案識別距離很短接近0時才能識別,我這邊需要將
    發(fā)表于 03-17 07:50

    怎樣才能使用NUCLEO-H563ZI 識別出ST-LINK ?

    控制的?這個管腳默認(rèn)的值是高還是低? 怎樣才能使用NUCLEO-H563ZI ,識別出ST-LINK ?其開發(fā)環(huán)境需要什么版本的
    發(fā)表于 03-14 13:59

    NFS網(wǎng)絡(luò)文件系統(tǒng)深度解析

    NFS:Network File System 網(wǎng)絡(luò)文件系統(tǒng),基于內(nèi)核的文件系統(tǒng)。Sun 公司開發(fā),通過使用 NFS,用戶和程序可以像訪問本地文件訪問遠(yuǎn)端系統(tǒng)上的
    的頭像 發(fā)表于 03-01 14:15 ?1005次閱讀

    怎么才能通過ADC10MENO算出原始的X,Y,Z方向加速度的值?

    我剛剛接觸MSP430,前段時間有幸擁有一TI的一塊MSP430fr5739開發(fā)板,就在我用里面的加速度傳感器計算角度時,發(fā)現(xiàn)不知道該怎么才能通過ADC10MENO算出原始的X,Y,Z方向加速度的值,望各高手幫忙
    發(fā)表于 02-13 07:58

    用TLV2541進(jìn)行AD采樣,怎么才能使采樣為準(zhǔn)確的1K?

    我現(xiàn)在想用TLV2541進(jìn)行AD采樣,我們要求采樣頻率為1K,我現(xiàn)在不知道怎么才能使采樣為準(zhǔn)確的1K。用單片機(jī)的SPI接口怎樣才能實(shí)現(xiàn)?謝謝
    發(fā)表于 02-10 07:58

    如何辨別網(wǎng)線真假

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

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

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