- 代碼: 選擇全部
deb http://security.debian.org/ squeeze/updates main
而我要將內容改成
- 代碼: 選擇全部
deb http://ftp.de.debian.org/debian squeeze main
問題是…很明顯我並沒有該套件源的公開金鑰,
但是我還是可以 update 啊。WHY?
難道說,沒有經過公開金鑰的解密,也可以下載套件的 MD5 列表嗎?
就這個細節,向各位高手請教,謝謝。
版主: mufa
lortagery 寫:那可以再請問一下嗎?
....,其實此時 update 的話,其實也蠻安全的,
....這樣說對嗎?
企鵝狂 寫:可以阿,很安全,沒錯
不過我剛剛好像有一個地方講錯了
/dists/Debian4.0r8/Release 這裡面是所有package 的md5跟sha256 hash
/dists/Debian4.0r8/Release.gpg 這個是上面那個檔案的簽章,確定上面那個檔案沒有被修改。
要驗證簽章,就要用gpg,可以從gpg server取得public key然後匯入apt。
lortagery 寫:
而其中公開金鑰是當初 Debian 官方原始光碟內早就有了,並不會因為將更改套件源而有所不同,即便各套件源所提供的套件不盡相同!
所以我們也可以推論:一、提供 Debian 套件源的站,應該是取得了 Debian 的私密金鑰,否則難以製作出 Release.gpg,也就是說,想要提供 Debian 套件源的話,必須取得 Debian 私密金鑰才行。
上面的推論對不對呢?如果對的話,那再請教您一個問題,就是如何得知 Debian 系統內,早就已知的公開金鑰碼呢?
二、若一個網路中繼站(如cache)要藉由竄改內容以便向更新者值入惡意程式,就這樣的架構來看,透過偽造 DEB 包使得內含惡意程式碼的新 DEB 包,其 MD5 碼能夠恰好與某個正常 DEB 包的 MD5 碼相同才行,這個方法恐怕已經是捷徑了,但難度也不小。
最後,謝謝您詳細的解答,謝謝!
apt-key list
gpg --list-keys
謝謝您的意見,不過我有小小的疑問,我感覺「各大 mirror 站都是複製」好像不太對耶,因為我將 http://security.debian.org/ 改為 http://ftp.de.debian.org/debian 之後再去作更新,所得到的內容根本完全部一樣啊!包括說我想安裝 ntfs-3g 或是 PCManX 的話,security.debian.org 這個站根本就沒有提供啊!要不然我乖乖用原來的套件源就好,何必去修改 source.list 呢?企鵝狂 寫:1. 他們不用製作,因為他們是mirror, 把ftp.debian.org 上面的東西複製過來就好。私鑰不能放在外面亂跑,不然人家隨便一個小孩跑來賴是你生的就慘了。
企鵝狂 寫:提供apt/deb的站百百個 不是每一個都是mirror其他人,或是被mirror 他們的Release也都是用不同的key去簽的 所以,一點關係也沒有阿 像luna根本沒有簽名 整個詳細的過程可以參考這裡 http://wiki.debian.org/SecureApt
In recent releases, Debian has been using strong crypto to validate downloaded packages. This is commonly called "secure apt" and was implemented in Apt version 0.6 in 2003, which Debian migrated to in 2005.
簡單來說,apt-get 會告訴我什麼?或者說我該去怎樣做檢查的動作?尤其是當我加入一個像 http://ftp.de.debian.org/debian 這個套件源並非官方簽署的時候。特別講一下我大概知道下面的事實:企鵝狂 寫:提供apt/deb的站百百個 不是每一個都是mirror其他人,或是被mirror 他們的Release也都是用不同的key去簽的 所以,一點關係也沒有阿
這時候該怎麼辦。apt-get update 會下載兩樣東西:DEB 包的 MD5 碼列表以及該列表檔案的簽名,並且驗證。只是說,就像企鵝狂說的,並不是每個一個站都是 mirror 其他人,他們的 Release 也都是用不同的 key 去簽的。
正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客