InspIRCd3 SSL Probleme

Poste hier Themen über BSIRC Software, die deiner Meinung nach als Fehler zu werten sind.
(Post your Issues with BSIRC Software here)
Antworten
Benutzeravatar
fearcry
Beiträge: 46
Registriert: 26 Jul 2020, 18:23

InspIRCd3 SSL Probleme

Beitrag von fearcry »

Ich teste momentan SSL auf dem irc.icq-chat.com Netzwerk.

Es stellt sich folgendes dar:

Der BSIRC Client ist auf TLS V1.2 eingestellt:
SSL-Verbindung zu irc-de01.icq-chat.com via Port 6697, stabile Verbindung über 24h.
SSL-Verbindung zu irc-us01.icq-chat.com via Port 6697, stabile Verbindung für etwa 3 - 4h.
SSL-Verbindung zu irc-ca01.icq-chat.com via Port 6697, stabile Verbindung für etwa 3 - 4h.


Test

irc-de01.icq-chat.com:
irc-us01.icq-chat.com:
irc-ca01.icq-chat.com:

Der BSIRC Client ist auf TLS V1.1 eingestellt: Verbindung möglich . . .
Der BSIRC Client ist auf TLS V1 eingestellt: - Verbindung nicht möglich . . .
(error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version)
Der BSIRC Client ist auf SSL V3 eingestellt: - Verbindung nicht möglich . . .
(error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure)
Der BSIRC Client ist auf SSL V2/V3 eingestellt: - Verbindung möglich . . .
Der BSIRC Client ist auf SSL V2 eingestellt: - Verbindung nicht möglich . . .
(Error getting SSL method)

Ergebnis: alle Server verhalten sich gleich oder scheinen gleich konfiguriert zu sein!


Connection Log:

Alle Server ICQ-IRC:

irc-de01.icq-chat.com
irc-us01.icq-chat.com
irc-ca01.icq-chat.com

•13:49:09• <INFO> SSL StatusInfo: SSL status: "before/connect initialization"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 write client hello A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 read server hello A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 read server certificate A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 read server key exchange A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 read server certificate request A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 read server done A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 write client certificate A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 write client key exchange A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 write change cipher spec A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 write finished A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 flush data"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSLv3 read finished A"
•13:49:09• <INFO> SSL StatusInfo: SSL status: "SSL negotiation finished successfully"
•13:49:09• <INFO> SSL StatusInfo: Cipher:

[Client TLS V1.2]:
name = ECDHE-RSA-AES256-GCM-SHA384;
description = ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2
Kx = ECDH
Au = RSA
Enc = AESGCM(256)
Mac = AEAD;
bits = 256;
version = TLSv1/SSLv3;


<INFO> SSL StatusInfo: Cipher:
[Client TLS V1.1]:

name = ECDHE-RSA-AES256-SHA;
description = ECDHE-RSA-AES256-SHA SSLv3
Kx = ECDH
Au = RSA
Enc = AES(256)
Mac = SHA1;
bits = 256;
version = TLSv1/SSLv3;


<INFO> SSL StatusInfo: Cipher:
[Client SSL V2/V3]:

name = ECDHE-RSA-AES256-GCM-SHA384;
description = ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2
Kx = ECDH
Au = RSA
Enc = AESGCM(256)
Mac = AEAD;
bits = 256;
version = TLSv1/SSLv3;


Vorläufiges Fazit

Es sind 2 Verbindungsmöglichkeiten über SSL möglich:

TLS v1.2 benutzt das (SHA384) AESCGN/AEAD Encoding/Decoding
TLS v1.1 benutzt den SSL v3 (SHA) AES/SHA1 Encoding/Decoding
SSL v2_v3 benutzt ebenso TLS v1.2 . . .

Windows 10:
Auf dem ICQ-IRC (InspIRCd-3) Netzwerk war der IRC-Client eingestellt auf TLS V1.1, nach einer unbestimmten Verbindungszeit verliert die Client-Software die Verschlüsselung und stürzt ab mit einer Exception:

<AppException> error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long
<AppException> error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
<AppException> error:140840FF:SSL routines:ssl3_connect:unknown state



Beispiel für die fehlerhafte Verschlüsselung:
[Datei "bsirc.log" (SSL IOHandler Logfile - Nach Entschlüsselung der eingehenden Textzeilen)]:

Get 31.12.2020 18:53:54: :Heaven!Heaven@1i4.bbp.nik2pm.IP PRIVMSG #Chat :hi <- [Crash Line]
42�Mھt8l�����Z��
Get 31.12.2020 18:53:54: _�#U�)�=[]��t�8��iA �Fn4��$pN߶qUYans to communicate there... oh, and pictures
/�>`���0:01A8��^�"I�


Nach dem Schließen der Anwendung ist es nicht mehr möglich über TLS v1.1 wieder zu verbinden.
Die Client-Software muss erst wieder auf TLS v1.2 umgestellt werden für eine neue Verbindung zu
ICQ-IRC über SSL.

Es gestaltet sich als recht schwierig zu erkennen ob die Verschlüsselung auf der Serverseite oder auf
der Clientseite in den Crash läuft . . .
Bild

Benutzeravatar
fearcry
Beiträge: 46
Registriert: 26 Jul 2020, 18:23

Re: InspIRCd3 SSL Probleme

Beitrag von fearcry »

Ich habe nun zuerst mal das ganze OpenSSL Szenario lokal gecheckt.

Es ist möglich dass gar nicht die entsprechenden Bibliotheken libeay32.dll und ssleay32.dll
geladen werden sondern anders verteilte DLL's von anderen Installationen. Auch nach löschen
der beiden Dateien im BSIRC-Verzeichnis, konnte ich mich weiterhin über SSL verbinden, was nahe legt dass NICHT die in BSIRC enthaltenen Dateien ssleay32.dll sowie libeay32.dll geladen werden!

Um das zu verhindern oder bzw. zu steuern, habe ich nun im Programmverzeichnis den Ordner SSL hinzugefügt, in diesem befinden sich die beiden Ordner 32 und 64 mit den entsprechenden "richtigen" DLL's - Version 1.0.2u, die 32Bit Version benutzt fort an den Ordner 32, die 64Bit Version entsprechend den Ordner 64.

Im Klassen-Konstruktor Code habe ich folgenden Code hinzugefügt:

UnicodeString Path = ExtractFilePath(Application->ExeName);

#ifdef __WIN32__
IdOpenSSLSetLibPath(Path+"\\SSL\\32\\");
#endif

#ifdef _WIN64
IdOpenSSLSetLibPath(Path+"\\SSL\\64\\");
#endif

So dass nun sichergestellt ist, dass die entsprechenden Versionen auch die richtigen DLL's laden bei Bedarf.

Der Test läuft nun mit den neuen Gegebenheiten weiter . . .


Cheers

fearcry
Bild

Benutzeravatar
fearcry
Beiträge: 46
Registriert: 26 Jul 2020, 18:23

Re: InspIRCd3 SSL Probleme

Beitrag von fearcry »

[1] 24h Test 01.01.2021 - 02.01.2021:

Server: irc-de01.icq.com, inspircd-3
Channels: #Chat
Client: BSIRC SSL (TLSv1.2) Port 6697

02.01.2021 16:14:35: QUIT : BSIRC64 Version: 2.2.4.704 quit SSL Port Connection to irc-de01.icq-chat.com - Onlinetime: 24hrs 00 min 48 sec

Regulärer Quit von der Clientseite nach 24 Stunden, Keine Fehler!
Bild

Benutzeravatar
fearcry
Beiträge: 46
Registriert: 26 Jul 2020, 18:23

Re: InspIRCd3 SSL Probleme

Beitrag von fearcry »

[2] 24h Test 02.01.2021 - 03.01.2021:

Server: irc-us01.icq.com, inspircd-3
Channels: #Chat, #Germany
Client: BSIRC SSL (TLSv1.2) Port 6697

•16:17:05• <IRC-Client> [CONNECT] ID 1269 on 02.01.2021 16:17:05 Paris/Rome CET «GMT +1h» to irc-us01.icq-chat.com

Fehlerfreie Verbindung nach 8h vom Server getrennt, Netsplit

•01:00:13• <RAW> QUIT :irc-us01.icq-chat.com hub.icq-chat.com
Bild

Benutzeravatar
fearcry
Beiträge: 46
Registriert: 26 Jul 2020, 18:23

Re: InspIRCd3 SSL Probleme

Beitrag von fearcry »

[3] 24h Test 02.01.2021 - 03.01.2021:

Server: irc-ca01.icq.com, inspircd-3
Channels: #Chat, #Germany
Client: BSIRC SSL (TLSv1.2) Port 6697

•01:15:54• <IRC-Client> [CONNECT] ID 1275 on 03.01.2021 01:15:54 Paris/Rome CET «GMT +1h» to irc-ca01.icq-chat.com

ClientLog:
•05:12:58• <INFO> 16392 532 fatal Write Alert bad record mac
•05:12:58• <INFO> 4098 -1 Connect Error error
•05:12:58• <INFO> 4098 -1 Connect Error error

Client-Exception Log:
•05:12:58• <INFO> SSL StatusInfo: SSL status: "error"
•05:12:58• <INFO> 16392 532 fatal Write Alert bad record mac
•05:12:58• <AppException> error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac:
•05:12:58• <INFO> SSL StatusInfo: SSL status: "error"
•05:12:58• <INFO> 4098 -1 Connect Error error
•05:12:58• <INFO> SSL StatusInfo: SSL status: "error"
•05:12:58• <INFO> 4098 -1 Connect Error error

•05:12:58• <IRC-Client> [DISCONNECT] ID 1275 on 03.01.2021 05:12:58 Paris/Rome CET «GMT +1h» Online seit: 03h:56m:35s

SSL-Probleme nach etwa 4h zwingen dazu die Verbindung zu beenden
Bild

Benutzeravatar
fearcry
Beiträge: 46
Registriert: 26 Jul 2020, 18:23

Re: InspIRCd3 SSL Probleme

Beitrag von fearcry »

11.01.2021
MyServerHost: irc-de01.icq-chat.com
Joined: #Chat, #germany


SSL Status: Host-Name irc.icq-chat.com wird aufgelöst.
SSL Status: Verbinden mit xx.xx.xx.xx.
•16:35:22• <INFO> 16 1 Handshake Start before/connect initialization
•16:35:22• <INFO> 4097 1 Connect Loop before/connect initialization
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 write client hello A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 read server hello A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 read server certificate A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 read server key exchange A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 read server certificate request A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 read server done A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 write client certificate A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 write client key exchange A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 write change cipher spec A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 write finished A
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 flush data
•16:35:22• <INFO> 4097 1 Connect Loop SSLv3 read finished A
•16:35:22• <INFO> 32 1 Handshake Done SSL negotiation finished successfully
•16:35:22• <INFO> 4098 1 Connect Exit SSL negotiation finished successfully


•16:35:22• <IRC-Client> [CONNECT] ID 1302 on 11.01.2021 16:35:22 Paris/Rome CET «GMT +1h» to irc.icq-chat.com

Last Lines:

system.log
•23:40:56• <IRC-Client> [QUIT] HypnoJunge16 DC@v95.esv.knh7n8.IP Grund: Connection closed
•23:40:57• <RAW> PRIVMSG #Germany :nabend
•23:40:57• <IRC-Client> [JOIN] F41 F41@erj.p4m.n6hcik.IP ist #Chat beigetreten

info.log
•23:40:58• <INFO> SSL StatusInfo: SSL status: "error"
•23:40:58• <INFO> 16392 532 fatal Write Alert bad record mac
•23:40:58• <AppException> error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac:
•23:40:58• <INFO> SSL StatusInfo: SSL status: "error"
•23:40:58• <IRC-Client> [DISCONNECT] ID 1302 on 11.01.2021 23:40:58 Paris/Rome CET «GMT +1h» Online seit: 07h:04m:49s

exceptions.log
•11.01.2021 23:40:58• <AppException> error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac
•11.01.2021 23:41:09• <AppException> error:140840FF:SSL routines:ssl3_connect:unknown state

try autoreconnecting:
•23:40:58• <INFO> 4098 -1 Connect Error error
•23:40:58• <INFO> SSL StatusInfo: SSL status: "error"
•23:40:58• <INFO> 4098 -1 Connect Error error

SSL-Error nach 7h, es scheint so dass InspIRCd-3 die Verschlüsselungsmethode verliert . . . oder wechselt
von AES(256) nach AESGCM(256)
Bild

Antworten