使用Rutoken技術在系統中註冊和授權用戶的經驗(第3部分)

美好的一天!

在上一部分中 我們已經成功創建了自己的認證中心。 它對我們的目的有何用處?

使用本地證書頒發機構,我們可以頒發證書並驗證這些證書上的簽名。

發給使用者憑證時,憑證授權單位使用特殊的憑證要求 Pkcs#10,其檔案格式為「.csr」。 該請求包含認證機構知道如何正確解析的編碼序列。 該請求包含使用者的公鑰和用於建立憑證的資料(包含使用者資料的關聯數組)。

我們將在下一篇文章中討論如何接收憑證要求,在本文中我想給予憑證授權單位的主要命令,這些命令將幫助我們完成後端的任務。

所以首先我們必須建立一個憑證。 為此,我們使用以下命令:

openssl ca -batch -in user.csr -out user.crt

ca 是與憑證授權單位相關的 openSSL 指令,
-batch - 產生憑證時取消確認要求。
user.csr — 建立憑證的請求(.csr 格式的檔案)。
user.crt - 憑證(指令的結果)。

為了使該命令起作用,必須完全按照描述配置證書頒發機構 在文章的前一部分。 否則,您必須另外指定證書頒發機構的根證書的位置。

證書驗證指令:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.file

cms 是一個 openSSL 指令,用於使用 openSSL 進行簽署、驗證、加密資料和其他加密操作。

-verify - 在這種情況下,我們驗證憑證。

authenticate.cms - 包含使用上一個指令所發出的憑證所簽署的資料的檔案。

-通知 PEM - 使用 PEM 格式。

-CAfile /Users/……/demoCA/ca.crt - 根憑證的路徑。 (沒有這個命令對我不起作用,儘管 ca.crt 的路徑寫在 openssl.cfg 檔案中)

-out data.file — 我將解密的資料傳送到檔案 data.file。

後端使用憑證授權單位的演算法如下:

  • 用戶註冊:
    1. 我們收到建立證書並將其保存到 user.csr 檔案的請求。
    2. 我們將本文的第一個命令儲存到副檔名為 .bat 或 .cmd 的檔案中。 我們透過程式碼執行此文件,之前已將建立證書的請求儲存到 user.csr 文件中。 我們收到一個帶有 user.crt 證書的檔案。
    3. 我們讀取 user.crt 檔案並將其傳送給客戶端。

  • 用戶授權:
    1. 我們從客戶端接收簽名資料並將其儲存到authenticate.cms 檔案中。
    2. 將本文的第二個指令儲存到副檔名為 .bat 或 .cmd 的檔案中。 我們從程式碼執行此文件,之前已將來自伺服器的簽章資料保存在authenticate.cms 中。 我們收到一個包含解密資料 data.file 的檔案。
    3. 我們讀取 data.file 並檢查該資料的有效性。 描述了具體要檢查的內容 在第一篇文章中。 如果資料有效,則認為使用者授權成功。

要實作這些演算法,您可以使用任何用於編寫後端的程式語言。

在下一篇文章中,我們將了解如何使用 Retoken 外掛程式。

謝謝你的關注!

來源: www.habr.com

添加評論