簡體   English   中英

如何通過HTTP請求獲取用戶X.509證書-(無SSL)

[英]How do you get a users X.509 certificate over an HTTP request - (without SSL)

我們想使用LDAP中的X.509證書和組對用戶進行身份驗證/授權。

使用Tomcat 5.5,我們可以通過在SSL上獲得X.509證書,然后切換回http並繼續在請求中使用userPrincipal來做到這一點。 切換回Http之后,移至Tomcat 6和7的userPrincipal不再可用。

在這個問題中, 我可以不使用HTTPS連接就使用SSL證書嗎? 據說您可以在沒有SSL的情況下請求X.509證書。 我正在嘗試確認是否有可能,是否有人知道如何做到這一點。

讓我們考慮一下。

用戶身份驗證通常是這樣的:

  1. 要求客戶證明自己的身份
  2. 接收用戶身份證明
  3. 傳回一個唯一的隨機字符串,客戶端可以在以后用來證明其身份(會話令牌)。

身份驗證后返回未加密的HTTP是一個壞主意。 每個人都可以在網上看到會話令牌。 他們可以竊取它並使用它來擺姿勢作為用戶。 請參閱FBController或在“會話劫持”中搜索示例。

使用未加密的會話來傳遞用戶身份證明同樣是一個壞主意。 每個人都可以重播此視頻並擺出用戶名。 無論您使用X.509證書還是用戶名/密碼:都是一樣的。

如果確實需要,則可以使用Javascript實現自己的偽HTTPS。 例如,雅虎使用JavaScript在通過網絡發送用戶密碼之前先對其添加鹽分的SHA1。 您可以使用Javascript通過X.509的私鑰對隨機數進行簽名,也可以通過公共證書進行發送。 請注意,使用此方法時您仍然可以進行會話劫持,因此這只是一種錯誤的安全感!

更好的方法是僅使用標准HTTPS。 完整的連接已加密,這意味着通過用戶證明,會話劫持甚至查看用戶請求的信息都不會出現機密性問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM