2009-07-22 51 views
1

我正在創建將爲用戶創建證書的應用程序。我想以某種方式紀念那些證書,這樣我可以在以後通過以下類別中的Windows用戶證書存儲區中搜索它們:僅適用於一個應用程序的x509證書 - 要選擇哪個OID

  • 應用GUID(或名稱 - 我想知道,這個證書是對我的應用程序)
  • 證書的作用(管理證書或用戶證書)
  • 用戶電子郵件

我知道,最後一個我應該使用「E = [email protected]」或OID號「1.2.840.113549.1.9 .1 = [email protected]「 但我不知道哪些OID到選擇應用程序GUID和證書角色。

或者我應該使用「Key Usage」字段?

我不知道它是否重要,但證書將用於對我的應用程序進行身份驗證並解密數據庫中的數據。

有沒有任何標準的方法來做到這一點?

回答

0

好吧,幾個小時後,我帶來了這樣的事情。

所有證書將被主題字段識別。 對於管理員證書,它看起來就像這樣:

CN=<My application Name> Administrator,OU=Administrator,OU=<My application Name>,O=<My company Name> 

,爲用戶

E=<User email>,CN=<User email>,OU=User,OU=<My application Name>,O=<My company Name> 

如果有人有更好的主意,我很開放的建議:-)

0

嗯...所以我在想的是你計劃向每個用戶頒發證書,並且你打算爲每個應用程序製作一個不同的證書。所以如果你有10個用戶每個使用3個應用程序,你會得到30個證書。

然後證書還描述了用戶在應用程序中的角色以及用戶的電子郵件。

說實話,我不會把所有這些信息放在證書裏。 PKI很難提供 - 用戶通常難以設置證書,重新頒發證書是一種痛苦。通常,PKI部署策略會盡量減少必須發佈的證書數量,並將其與風險進行平衡。

我見過的最典型的場景是用戶獲得了一個他用來識別自己的證書。證書包括用戶名和他的電子郵件。但它通常不包括用戶的角色或特定的應用程序。相反,這些信息是在訪問控制服務器上進行管理的,當用戶訪問系統時會查詢該信息。這樣,可以更改用戶可用的角色和應用程序,而無需重新頒發證書。像Active Directory或Select Access這樣的產品就可以做到這一點。

將每個用法分爲單獨的憑證的原因是爲了專門控制某種類型的風險。例如,如果單個用戶在一臺機器上執行高風險操作,而在另一臺機器上執行低風險操作,則可能會出現兩臺證書(每臺機器一臺),因此您可以撤銷低風險證書而不禁用高風險功能。如果您計劃將所有證書存儲在同一臺計算機上,那麼僅爲每個用戶分發一個證書會更容易。這就是說 - 如果你仍然需要爲每個應用程序每個角色發出1個證書,我建議找到一種方法,將應用程序的GUID,角色和電子郵件分爲可分辨的名稱。

您不會在密鑰用法或擴展密鑰用法中獲得太多里程 - 它們具有非常具體的價值,我懷疑它們會傳達您想要描述的信息。此外,它們還被各種其他應用程序以特定方式使用,所以如果您需要與其他應用程序集成,那可能會變得棘手。

+0

實際上,我們每個用戶都會擁有一張智能卡,因爲少數特殊敏感的應用程序具有共同的「管理員」(即我們的財務總監)。我只有兩種類型的管理員和用戶證書。所有用戶證書均由管理員簽名。所有其他角色都在數據庫中定義並由管理員簽名。 正如您所說的 - 數據泄露的風險很大 - 這就是爲什麼我們正在採取這些特殊步驟來保護它們。 – SeeR 2009-07-27 21:12:37

0

你的任務是一個相當複雜的任務。爲了解決這個問題,最好的方法是使用openssl工作一些內部認證機構。請在PKI分配給你提到以下規則的實體記:

  1. 分辨名稱:它是用來標識用戶或實體魔女頒發證書。使用它來識別單個證書中的兩個不同實體:您的用戶和應用程序並不正確。這兩個實體將在兩個不同的地方確定。

  2. 密鑰用法是一個8位數的字段,用於定義密鑰的用法。每一位都有其預定的含義,不能用於其他目的。

我建議你:

  1. 把應用程序GUID作爲X509的擴展。您可以將個人OID分配到該緊張情況並進行查詢。如果你的OID在內部使用,你可以利用你想要的任何值。如果您打算分發您的證書,您可以從IANA獲取您自己的OID

  2. 按照PKI的建議,將郵件放入郵件主題備用郵件中。

  3. 對於助理或用戶,您可以添加第二個x509擴展或創建一個證書樹。主要CA證書,管理CA證書和用戶CA證書。每個管理員證書都將由管理員CA簽署,每個用戶證書都由用戶CA簽署。

相關問題