Ich entwickle einen SSL-Cipher-Scanner. Das heißt, ich gebe Host und Port an und mein Programm teilt mir mit, welche Chiffren der Host akzeptiert.Verschlüsselung bei offener Verbindung ändern
Meine aktuelle Version funktioniert aber ist tot langsam (etwa 20 bis 30 sec pro Host), weil ich eine neue Verbindung für jede Chiffre öffnen.
ich die folgenden Methoden (in dieser Reihenfolge):
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);
Ich versuchte nun setzen gerade die cipherlist wieder und machen einen weiteren Handshake statt wieder zu verbinden. In Wireshark habe ich gesehen, dass es das Change-Cipher-Spec-Protokoll verwendet hat, aber dass der Server einen verschlüsselten Alarm zurückgab (also kann ich Ihnen nicht sagen, welcher es ist). Die Rückgabewerte von
SSL_set_cipher_list(ssl, cipher);
und
BIO_do_handshake(bio);
beide 1 so sollte es erfolgreich sein.
Könnte mir bitte jemand helfen, wie man die verwendete Chiffre bei einer offenen Verbindung ändert?
Einige zusätzliche Informationen: Ich benutze openssl Version 1.0.2h
Überprüfen Sie den Quellcode für [sslscan] (http://sourceforge.net/projects/sslscan/). Dies geschieht meistens mit OpenSSL, aber zu einem anderen Zeitpunkt im Workflow als Sie versuchen. Das ursprüngliche Projekt wurde vor einiger Zeit aufgegeben, aber es gibt viele moderne Gabeln auf GitHub. – jww
Der Alarm wurde in der alten Cipher-Suite verschlüsselt, Sie sollten also sehen können, was er war. Es schlägt auch vor, dass der Server die angeforderte neue Verschlüsselungssuite nicht unterstützt. – EJP