我喜歡在當前項目中使用srp。但即時通訊有點不知所措,我將如何與openssl實施。我得到了客戶端運行,但我不知道如何編寫服務器端。我也找不到任何使用的文檔或示例實現。我想要的是將登錄信息存儲在數據庫中,然後在需要時檢索該數據。我使用poco的大部分網絡部分,所以寫客戶端是相當容易的,我成功地對其他服務器進行了測試。所以我會對如何實現服務器端提示有幫助。Openssl tls srp
1
A
回答
1
有一個如何在OpenSSL存檔文件ssl/ssltest.c
中執行此操作的示例。
在較高級別註冊認證回調。此回撥在SSL_Accept(
期間根據需要自動調用)以驗證您的用戶。
ssltest.c
例如
回調如下所示:
static int MS_CALLBACK ssl_srp_server_param_cb(SSL *s, int *ad, void *arg)
{
SRP_SERVER_ARG * p = (SRP_SERVER_ARG *) arg;
if (strcmp(p->expected_user, SSL_get_srp_username(s)) != 0)
{
fprintf(stderr, "User %s doesn't exist\n", SSL_get_srp_username(s));
return SSL3_AL_FATAL;
}
if (SSL_set_srp_server_param_pw(s,p->expected_user,p->pass,NULL)<0)
{
*ad = SSL_AD_INTERNAL_ERROR;
return SSL3_AL_FATAL;
}
return SSL_ERROR_NONE;
}
註冊您撥打
SSL_CTX_set_srp_username_callback(s_ctx, ssl_srp_server_param_cb);
回調函數的arg
參數傳遞給你的回調,這樣你可以參考一個空指針來自回調的應用程序中的任何必需的應用程序上下文。
設置arg參數調用SSL_CTX_set_srp_cb_arg(s_ctx, mypointer)
;
這真的很容易。確保您的密碼列表中包含SRP密碼。
有一種方法可以獲得有關驗證失敗的反饋,這些反饋可用於實施對高速在線字典攻擊的對策。
要這樣做,請撥打SSL_CTX_set_info_callback(s_ctx,mynotifycallback)
來註冊您的回撥。使用以下條件成功篩選不相關的通知。
void mynotifycallback(const SSL *s, int reason, int ret)
{
if (reason & SSL_CB_ALERT && ret & SSL3_AD_BAD_RECORD_MAC && SSL_get_srp_username((SSL *)s))
// authentication failure
}
相關問題
- 1. Bouncy Castle的TLS-SRP支持
- 2. 的OpenSSL與EAP-TLS
- 3. 是一個OpenSSL :: SSL :: SSLSocket TLS?
- 4. OpenSSL TLS/SSL版本之間的區別
- 5. 如何爲Windows XP構建Openssl TLS V1.2?
- 6. SSL/TLS保護需要openssl擴展
- 7. SRP&「變化軸」?
- 8. SRP算法設計
- 9. Rails SRP模塊,attr_accessible
- 10. 關於DI和SRP
- 11. SRP和很多類
- 12. 用於客戶端TLS連接的OpenSSL或LibreSSL C++示例
- 13. 確定我的openssl庫的最新支持的SSL/TLS版本?
- 14. 在Windows上配置stunnel和openssl以支持TLS 1.2
- 15. 無法使用openssl擴展進行SSL/TLS保護
- 16. Openssl TLS擴展支持配置(服務器名稱指示)
- 17. 如何在OpenSSL中設置TLS應用程序數據協議
- 18. 使用openssl從tls證書有效獲取常用名字
- 19. 與OpenSSL的FTP傳輸連接恢復TLS/SSL會話
- 20. CakePHP的SwiftMailer SMTP TLS OpenSSL的錯誤SSL3_GET_RECORD:錯誤的版本號
- 21. openssl s_client通過代理與clientAuth的TLS連接
- 22. 使用OpenSSL將現有的TCP套接字轉換爲TLS
- 23. 使用OpenSSL測試SSL/TLS客戶端身份驗證
- 24. OpenSSL的爲Android
- 25. OpenSSL的連接
- 26. DbFunctions類是否違反SRP
- 27. IOC/SRP的設計問題
- 28. 軌,SRP,和單元測試
- 29. 瞭解SRP原則與nlayers
- 30. 與SRP的外觀模式