修改軟體數字簽名的可行性?

外行人不懂數字簽名是否可以修改,以前認為有官方簽名的文件一般就是安全的,但有一次在百度軟體下過一個VMware,下載之後看了一下簽名,然後就安裝了。

但是!安裝後有一個彈窗,什麼破解組織,什麼玩意的,記不太清楚了。

後來卸載了軟體,殺了一遍毒,沒發現異常也就沒當回事,今天忽然想起來,想請教專業人士解答一下。


數字簽名不能修改,這一點是毋庸置疑的,但是數字簽名的文件確實是可以偽造的。

所謂的數字簽名,其實核心就是一個非對稱的加密技術,因此通過鴿籠理論可以製造出簽名指紋信息一致,但內容不同的兩個文件(例如一個文件是正常程序,另一個是木馬,但是他們的指紋信息一致,或一個文件是總經理簽字的貸款合同,另一個是偽造的借款合同,也可以讓他們的指紋信息一致)

但是撇除理論,這種技術在現實世界中是否存在呢?答案是真實存在,而且我在2012年就自己實現過一個類似的東西。

當然,這並不能解釋你遇到的問題,但就我個人的經驗而言,直接修改數字簽名是不現實的(特別是被簽名文件增加了至少數百個位元組的情況下),因此他使用的肯定是一些小技巧,例如同目錄下有隱藏文件,解壓後安裝程序的簽名沒問題,但是安裝資源已經被修改等等,諸如此類(可實現的方法太多了)。


如果能破解簽名改成自己的……地球銀行的金融系統就全都崩潰了。

實際上重新封裝,自己重新簽名就可以了。只要你的簽字能拿到認證機構證書的簽署。但是你不可能仿造成 vmware 的官方簽字,但是第三方簽字通過,對於不注意簽字的人,還是很有迷惑性的。

所以要拒絕濫發籤字的公司。

國內有個安全機構,就出現過濫發籤字的問題。諾頓好像也亂髮過,而且居然還是 https 證書,簽到了 google.com 上面。不過諾頓好像都是短期證書。


以前只是看一下有沒有簽名,沒有雙擊簽名查看是否有效。剛測試了一下,如果一個有數字簽名的文件被更改,那麼簽名雖然還在,但雙擊查看數字簽名信息,會顯示簽名無效。

如下圖是對一個簽名文件進行一個位元組編輯後的效果:

由此可見,我們小白日常非官網下載的軟體,在無法核對MD5時,可以通過此方法鑒定一下該文件是否被修改過。最後再次感謝 @任曉琿 前輩的回答!


推薦閱讀:

如何看待快手員工枚舉、諷刺用戶的分享關注動態的行為?
被人盜用自己的QQ發消息是CSRF漏洞導致的嗎?
網路安全技術和網路安全意識哪個更重要?

TAG:軟體 | 操作系統 | 數字簽名 | 信息網路安全 |