RSA 金鑰對產生器工具
工具功能
- 產生可配置位長度的 RSA 金鑰對(256-16384 位): 生成具有可自定義位元長度的RSA金鑰對
- 公鑰和私鑰的標準 PEM 格式輸出: 以標準PEM格式輸出金鑰,方便整合
- 使用 節點-forge 庫進行安全的金鑰產生: 使用業界標準的 節點-forge 函式庫進行密碼學安全的金鑰生成
- 位長度要求的即時驗證: 即時驗證位元長度要求,提供錯誤提示
適用場景
- SSL/TLS憑證產生: 為SSL/TLS憑證產生RSA金鑰對,保護網站通訊安全。標準憑證使用2048位金鑰,擴展驗證(EV)憑證使用3072-4096位金鑰。對於HTTPS加密、保護使用者資料和建立瀏覽器與使用者的信任至關重要。
- SSH金鑰認證: 建立RSA金鑰對用於無密碼SSH伺服器認證。產生公鑰新增到伺服器的authorized_keys,實現無需密碼的安全遠端存取。廣泛用於開發者、系統管理員和DevOps團隊的安全伺服器管理。
- 程式碼簽章和軟體分發: 產生RSA金鑰對用於程式碼簽章,驗證軟體真實性和完整性。簽章可執行檔案、安裝程式和軟體套件,防止篡改和惡意軟體分發。Windows Authenticode、macOS Gatekeeper和Linux軟體套件簽章都需要。
- 數位簽章和文件驗證: 建立RSA金鑰對用於法律文件、合約和交易的數位簽章。使用私鑰簽章文件,使用公鑰驗證簽章,確保不可否認性和文件完整性。用於電子簽章平台、區塊鏈交易和法律合規。
- API認證和JWT令牌: 產生RSA金鑰對用於API認證和JWT令牌簽章。使用私鑰簽章令牌,使用公鑰驗證令牌,實現安全的無狀態認證。對於微服務、OAuth 2.0和現代API安全架構至關重要。
- 電子郵件加密(PGP/GPG): 建立RSA金鑰對用於PGP/GPG電子郵件加密和安全訊息傳遞。使用收件人的公鑰加密郵件,使用私鑰解密,確保機密通訊。記者、企業和注重隱私的個人用於安全電子郵件通訊。
- VPN和網路安全: 產生RSA金鑰對用於VPN連線、安全隧道和網路加密。建立安全的虛擬私人網路,保護傳輸中的資料,實現安全遠端存取。用於企業網路、雲端服務和安全通訊協定。
- 區塊鏈和加密貨幣錢包: 建立RSA金鑰對用於加密貨幣錢包和區塊鏈應用。保護錢包私鑰、簽署區塊鏈交易並驗證交易真實性。用於加密貨幣交易所、錢包應用和基於區塊鏈的身分系統。
使用方法
- 配置參數: 選擇金鑰長度(推薦2048位)
- 產生金鑰: 點擊產生按鈕建立金鑰對
- 複製使用: 複製公鑰和私鑰到您的應用
生成原理
RSA金鑰對生成演算法和數學
RSA金鑰生成基於質數分解難度創建數學相關的公私密金鑰對。過程包括:使用概率素性測試(Miller-Rabin演算法)選擇兩個大隨機質數(p,q),計算模數n = p × q和歐拉函數φ(n) = (p-1)(q-1),選擇公開指數e(通常為65537以提高效率和安全性),並使用擴展歐幾里得演算法計算滿足e × d ≡ 1 (mod φ(n))的私密金鑰指數d。該工具支援512到4096位的金鑰大小(推薦生產環境使用2048+),實現安全隨機質數生成,透過加密-解密往返測試驗證金鑰對正確性,並以多種格式(PEM、DER、PKCS#1、PKCS#8)匯出金鑰以相容各種密碼學函式庫和系統。
金鑰格式標準和編碼
該工具生成符合PKCS標準的行業標準格式的金鑰。PEM(隱私增強郵件)格式使用Base64編碼和頁眉/頁腳標記進行人類可讀的文字表示。DER(區分編碼規則)提供用於緊湊儲存和傳輸的二進位格式。PKCS#1(RSA密碼學標準)定義RSA金鑰結構,而PKCS#8(私密金鑰資訊語法標準)提供與格式無關的私密金鑰表示。生成器支援金鑰元件的ASN.1編碼,包括用於演算法識別的適當OID(物件識別符)標籤,並處理從私密金鑰提取公開金鑰。進階功能包括金鑰元件檢查(模數、指數、質數)、PEM/DER之間的格式轉換以及OpenSSL、Java密碼學架構和.NET密碼學函式庫的相容性驗證。
安全最佳實踐和金鑰管理
安全的RSA金鑰管理需要適當的生成、儲存和使用實踐。該工具提供安全建議:使用密碼學安全的隨機源生成金鑰,使用最小2048位金鑰以確保當前安全(長期保護使用3072-4096位),使用強密碼短語和安全儲存(HSM、金鑰保管庫)保護私密金鑰,並實施適當的金鑰輪換策略。安全警告包括金鑰大小影響(1024位金鑰不再安全)、隨機數生成的熵要求以及防止側通道攻擊。進階功能包括密碼短語保護的私密金鑰匯出、用於驗證的金鑰指紋生成(MD5、SHA-256)、安全金鑰銷毀指導以及生產環境中憑證簽章請求(CSR)、SSL/TLS憑證、SSH認證和程式碼簽章的整合建議。
常見問題
- 產生的金鑰對可以用於什麼場景?
- RSA金鑰對廣泛應用於:1)HTTPS/SSL憑證:保護網站通訊安全;2)SSH金鑰認證:無密碼登入伺服器;3)程式碼簽章:驗證軟體來源和完整性;4)電子郵件加密:PGP/GPG加密通訊;5)API認證:JWT令牌簽章;6)數位簽章:文件和交易的法律效力證明;7)VPN連線:建立安全的虛擬私人網路。
- 產生金鑰需要多長時間?
- 產生時間取決於金鑰長度和裝置效能。通常:2048位約1-3秒,3072位約3-8秒,4096位約5-15秒,8192位可能需要30秒以上。首次產生可能較慢,因為需要收集隨機熵。如果長時間無回應,建議重新整理頁面重試。
- PEM格式和DER格式有什麼區別?
- PEM(Privacy Enhanced Mail)是文字格式,使用Base64編碼,以-----開始 RSA 私人 金鑰-----開頭,便於複製貼上和在文字編輯器中檢視。DER(Distinguished Encoding 規則)是二進位格式,檔案更小但不可直接閱讀,常用於Java和某些憑證系統。大多數情況下推薦使用PEM格式。
- 如何驗證產生的金鑰對是否有效?
- 工具會自動驗證產生的金鑰對。您也可以手動驗證:1)使用OpenSSL命令驗證格式:`openssl rsa -in 私人.pem -文字 -noout`;2)測試加密解密:用公鑰加密一段文字,再用私鑰解密,看是否能恢復原文;3)檢查金鑰長度:確認金鑰模數的位數符合預期。
- 公鑰可以從私鑰匯出嗎?
- 可以。RSA私鑰包含了產生公鑰所需的所有資訊(模數n和公鑰指數e)。您可以使用OpenSSL命令從私鑰提取公鑰:`openssl rsa -in 私人.pem -pubout -out 公開.pem`。但反過來不行,公鑰無法推導出私鑰,這正是RSA安全性的基礎。
- 如何安全地儲存私鑰?
- 最佳實踐:1)使用密碼短語加密私鑰(如`openssl rsa -aes256`);2)儲存在安全位置:金鑰管理器(如1Password、LastPass)、硬體安全模組(HSM)、加密磁碟分割區;3)設定嚴格的檔案權限(Linux: chmod 600);4)不要提交到Git儲存庫;5)定期備份到離線儲存;6)使用多重身分驗證保護存取。
相關文件
- NIST - 加密標準 - NIST官方加密標準和指南
- OWASP - 加密儲存 - 安全加密儲存最佳實踐
- MDN - Web 加密 API - 瀏覽器加密API用於安全操作
- OWASP - 加密備忘單 - 正確實作加密的指南
- RFC 5246 - TLS 協定 - 傳輸層安全協定規範