我正在開發SSL-Cipher-Scanner。這意味着我指定了主機和端口,我的程序告訴我主機接受哪些密碼。在打開的連接上更改密碼
我目前的版本可以正常工作,但速度很慢(每個主機約20到30秒),因爲我爲每個密碼開啓了一個新的連接。
我用下面的方法(按照這個順序):
ssl_ctx = SSL_CTX_new(method);
bio = BIO_new_ssl_connect(ssl_ctx);
BIO_set_conn_port(bio, port);
BIO_set_conn_hostname(bio, host);
BIO_get_ssl(bio, &ssl);
SSL_set_cipher_list(ssl, cipher);
BIO_do_connect(bio);
BIO_do_handshake(bio);
我現在想只是重新設置cipherlist做一套握手,而不是重新連接的。在wireshark中,我看到它實際上使用更改密碼規範協議,但服務器返回了加密的警報(所以我不能告訴你它是哪一個)。的
SSL_set_cipher_list(ssl, cipher);
和
BIO_do_handshake(bio);
的返回值都是1,所以它應該是成功的。
任何人都可以請幫助我如何更改打開的連接上使用的密碼?
一些額外的信息:我用的OpenSSL版本1.0.2h
簽出[sslscan](http://sourceforge.net/projects/sslscan/)的源代碼。它大多使用OpenSSL做同樣的事情,但在工作流程中的不同時間比嘗試。原來的項目在一段時間之前就被放棄了,但GitHub上有很多現代化的分支。 – jww
該警報是在舊的密碼套件中加密的,因此您應該能夠看到它是什麼。它還表明該服務器不支持所要求的新密碼套件。 – EJP