Sample Header Ad - 728x90

Handshake failed in Pidgin

2 votes
0 answers
1199 views
I am trying to connect to our in-house XMPP server using piding in Arch Linux, but I always get SSL Handshake Failed error in Pidgin. These are the error lines I get when running pidgin -d: (10:52:25) jabber: Sending (user@host): (10:52:25) jabber: Recv (50): (10:52:25) nss: Handshake failed (-12173) (10:52:25) connection: Connection error on 0x16385f0 (reason: 5 description: SSL Handshake Failed) (10:52:25) account: Disconnecting account user@host/ (0x1820c60) I searched for that nss error, and found here that this error means that server is using some kind of insecure key exchange (I suppose). Anyway, I tried ssltap -s -p 5222 host:5222 and pointed Pidgin to localhost:5222 to get the log of handshake, and this is it: Connected to HOST:5222 --> [ ] ] PLAIN] --> [ ] ] --> [ (151 bytes of 146) SSLRecord { [Wed Feb 24 10:44:10 2016] type = 22 (handshake) version = { 3,1 } length = 146 (0x92) handshake { type = 1 (client_hello) length = 142 (0x00008e) ClientHelloV3 { client_version = {3, 3} random = {...} session ID = { length = 0 contents = {...} } cipher_suites = { (0xc02b) TLS/ECDHE-ECDSA/AES128-GCM/SHA256 (0xc02f) TLS/ECDHE-RSA/AES128-GCM/SHA256 (0xc00a) TLS/ECDHE-ECDSA/AES256-CBC/SHA (0xc009) TLS/ECDHE-ECDSA/AES128-CBC/SHA (0xc013) TLS/ECDHE-RSA/AES128-CBC/SHA (0xc027) TLS/ECDHE-RSA/AES128-CBC/SHA256 (0xc014) TLS/ECDHE-RSA/AES256-CBC/SHA (0xc007) TLS/ECDHE-ECDSA/RC4-128/SHA (0xc011) TLS/ECDHE-RSA/RC4-128/SHA (0x009e) TLS/DHE-RSA/AES128-GCM/SHA256 (0x0033) TLS/DHE-RSA/AES128-CBC/SHA (0x0032) TLS/DHE-DSS/AES128-CBC/SHA (0x0067) TLS/DHE-RSA/AES128-CBC/SHA256 (0x0039) TLS/DHE-RSA/AES256-CBC/SHA (0x006b) TLS/DHE-RSA/AES256-CBC/SHA256 (0x002f) TLS/RSA/AES128-CBC/SHA (0x0035) TLS/RSA/AES256-CBC/SHA } compression[1] = { (00) NULL } extensions = { extension type server_name, length = { 0: 00 0c 00 00 09 6c 6f 63 61 6c 68 6f 73 74 | .....localhost } extension type renegotiation_info, length [1] = { 0: 00 | . } extension type elliptic_curves, length = { 0: 00 06 00 17 00 18 00 19 | ........ } extension type ec_point_formats, length = { 0: 01 00 | .. } extension type signature_algorithms, length = { 0: 00 14 04 01 05 01 06 01 02 01 04 03 05 03 06 03 | ................ 10: 02 03 04 02 02 02 | ...... } } } } } ] [ (7 bytes of 2) SSLRecord { [Wed Feb 24 10:44:10 2016] type = 21 (alert) version = { 3,1 } length = 2 (0x2) fatal: illegal_parameter } ] Read EOF on Client socket. [Wed Feb 24 10:44:10 2016] Read EOF on Server socket. [Wed Feb 24 10:44:10 2016] Seems like server and client agreed on TLS/DHE-RSA/AES128-CBC/SHA, but client failed then. Is that it? I have added cert.001 and cert.002 to Certificates in Pidgin, but that doesn't help. Because it is an in-house server, I don't need the security and I don't care about it. I modified account setting in Pidgin to Use encryption if available and also Allow plaintext auth over unencrypted streams but it does not work. Any help on how to make Pidgin (or NSS) to accept my server is very appreciated. Output of pidgin --version Pidgin 2.10.12 (libpurple 2.10.12) Output of pacman -Qi nss Name : nss Version : 3.22-1 Description : Mozilla Network Security Services Architecture : x86_64 URL : http://www.mozilla.org/projects/security/pki/nss/ Licenses : MPL GPL Groups : None Provides : None Depends On : nspr>=4.10.10 sqlite zlib sh p11-kit Optional Deps : None Required By : atom-editor firefox jre8-openjdk-headless libnm-glib libpurple qca-qt4 qca-qt5 Optional For : None Conflicts With : None Replaces : None Installed Size : 5.80 MiB Packager : Jan Alexander Steffens (heftig) Build Date : Fri Feb 5 15:09:40 2016 Install Date : Mon Feb 22 17:13:39 2016 Install Reason : Installed as a dependency for another package Install Script : Yes Validated By : Signature *EDIT*: I forgot to mention that I do not have access to server, so I can not change anything there.
Asked by vfsoraki (155 rep)
Feb 24, 2016, 07:32 AM
Last activity: Feb 24, 2016, 08:22 AM