2017-07-03 176 views
0

我的問題是關於不可否認在TLS與使用Java密鑰庫和信任庫中。位於密鑰庫和信任庫內的根和中間證書,他們驗證另一個證書。如果他們被操縱,他們可能會驗證錯誤的證書。保護的根和中級證書密鑰存儲傳輸層安全(TLS)

通常生成一個新的證書時的認證中心檢查信任鏈,並認爲如果證書與右中間和根證書來。但是如果攻擊者操縱證書呢?

如果攻擊者可以破解密碼將它隨後可能對他是不可能更改的證書?

我知道一個改進是使用一個更好的散列,例如,使用SHA-512,而不是SHA-256。另一個將確保證書只能來自某個證書頒發機構。

是否有其他已知的保護根和中間證書的改進措施?

TLS有其他限制嗎?

回答

2

位於密鑰庫和信任庫內的根證書和中間證書證明了另一證書。如果他們被操縱,他們可能會驗證錯誤的證書。

信任庫包含接受的證書頒發機構(CA)的根證書。通常它不包含中間證書。信任庫必須保持安全,因爲如果被操縱(如您所說),您可以接受不需要的證書。

密鑰庫包含客戶端證書,而不是可信任的證書。

正常情況下,當生成新證書時,證書頒發機構會檢查信任鏈,並查看證書是否帶有正確的中間和根證書。但是如果攻擊者操縱證書呢?

證書頒發機構不檢查任何鏈。您向CA提供CSR(證書籤名請求),該證書是使用您的私鑰簽署的證書請求。 CA生成證書,用CA的私鑰簽名,並將證書和鏈接返回給您。請參閱Certificate enrollment process

攻擊者無法操作證書,因爲它不擁有CA的私鑰,並且使用受信任根的公鑰進行驗證將失敗。

如果攻擊者可以破解密碼,那麼他可能無法更改證書嗎?

證書是公開的。相應的私鑰是私有的。證明你擁有一個證書是與私人執行數字簽名。因此,要「攻擊」證書,攻擊者需要私鑰。(私鑰可以用密碼保護,但這與私鑰存儲有關)

我知道一個改進就是使用更好的散列,例如使用SHA-512而不是SHA -256。

我覺得這不是問題

相關的另外一個會,以確保證書只能來形成特定的證書頒發機構。

當然,這是信任庫的目的。 證書被添加到信任的方式是TLS範圍之外

是已知TLS有其他限制?

請詳細說明...