From nmav at gnutls.org Mon Mar 3 07:21:25 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Mon, 03 Mar 2014 07:21:25 +0100 Subject: [gnutls-help] gnutls 3.1.22 Message-ID: <53141F65.2090204@gnutls.org> Hello, I've just released gnutls 3.1.22. This is an important bug-fix release on the previous stable branch which addresses GNUTLS-SA-2014-2 http://www.gnutls.org/security.html#GNUTLS-SA-2014-2 * Version 3.1.22 (released 2014-03-03) ** libgnutls: Corrected certificate verification issue (GNUTLS-SA-2014-2) ** libgnutls: Corrected issue in gnutls_pcert_list_import_x509_raw when provided with invalid data. Reported by Dmitriy Anisimkov. ** libgnutls: Corrected timeout issue in subsequent to the first DTLS handshakes. ** libgnutls: Removed unconditional not-trusted message in gnutls_certificate_verification_status_print() when used with OpenPGP certificates. Reported by Michel Briand. ** libgnutls: All ciphersuites that were available in TLS1.0 or later are now made available in SSL3.0 or later to prevent any incompatibilities with servers that negotiate them in SSL 3.0. ** API and ABI modifications: No changes since last version. Getting the Software ==================== GnuTLS may be downloaded directly from . A list of GnuTLS mirrors can be found at . Here are the XZ and LZIP compressed sources: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.22.tar.xz ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.22.tar.lz Here are OpenPGP detached signatures signed using key 0x96865171: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.22.tar.xz.sig ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.22.tar.lz.sig Note that it has been signed with my openpgp key: pub 3104R/96865171 2008-05-04 [expires: 2028-04-29] uid Nikos Mavrogiannopoulos gnutls.org> uid Nikos Mavrogiannopoulos gmail.com> sub 2048R/9013B842 2008-05-04 [expires: 2018-05-02] sub 2048R/1404A91D 2008-05-04 [expires: 2018-05-02] regards, Nikos From nmav at gnutls.org Mon Mar 3 07:22:41 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Mon, 03 Mar 2014 07:22:41 +0100 Subject: [gnutls-help] gnutls 3.2.12 / GNUTLS-SA-2014-2 Message-ID: <53141FB1.3040809@gnutls.org> Hello, I've just released gnutls 3.2.12. This is an important bug-fix release on the current stable branch which addresses GNUTLS-SA-2014-2 http://www.gnutls.org/security.html#GNUTLS-SA-2014-2 This fixes is an important (and at the same time embarrassing) bug discovered during an audit for Red Hat. Everyone is urged to upgrade. The git branches of older releases (e.g., 2.12.x), were also updated with patches to the issue as they are also vulnerable. I'll provide more information on the issue the next few days. * Version 3.2.12 (released 2014-03-03) ** libgnutls: Corrected certificate verification issue (GNUTLS-SA-2014-2) ** libgnutls: Corrected issue in gnutls_pcert_list_import_x509_raw when provided with invalid data. Reported by Dmitriy Anisimkov. ** libgnutls: Corrected timeout issue in subsequent to the first DTLS handshakes. ** libgnutls: Removed unconditional not-trusted message in gnutls_certificate_verification_status_print() when used with OpenPGP certificates. Reported by Michel Briand. ** libgnutls: All ciphersuites that were available in TLS1.0 or later are now made available in SSL3.0 or later to prevent any incompatibilities with servers that negotiate them in SSL 3.0. ** ocsptool: When verifying a response and a signer isn't provided assume that the signer is the issuer. ** ocsptool: When sending a nonce, verify that the nonce exists in the OCSP response. ** gnutls-cli: Added --strict-tofu option; contributed by Jens Lechtenboerger. ** API and ABI modifications: No changes since last version. Getting the Software ==================== GnuTLS may be downloaded directly from . A list of GnuTLS mirrors can be found at . Here are the XZ and LZIP compressed sources: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.12.tar.xz ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.12.tar.lz Here are OpenPGP detached signatures signed using key 0x96865171: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.12.tar.xz.sig ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/gnutls-3.2.12.tar.lz.sig Note that it has been signed with my openpgp key: pub 3104R/96865171 2008-05-04 [expires: 2028-04-29] uid Nikos Mavrogiannopoulos gnutls.org> uid Nikos Mavrogiannopoulos gmail.com> sub 2048R/9013B842 2008-05-04 [expires: 2018-05-02] sub 2048R/1404A91D 2008-05-04 [expires: 2018-05-02] regards, Nikos From fpolan at rogers.com Mon Mar 3 19:29:25 2014 From: fpolan at rogers.com (Frank J Polan) Date: Mon, 3 Mar 2014 13:29:25 -0500 Subject: [gnutls-help] Ubuntu 12.04lts Apache 2.4 mod_gnutls.so Message-ID: <00c101cf370e$81be5cc0$853b1640$@com> This is my first posting to this list. If I'm doing anything wrong or breaking any rules please let me know The following describes the problem ( as I posted to another forum) Ubuntu 12.04LTS Apache 2.4 I've installed TLS be following the steps on this link https://help.ubuntu.com/community/GnuTLS When restarting Apache I get the following error apache2: Syntax error on line 212 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/gnutls.load: Cannot load /usr/lib/apache2/modules/mod_gnutls.so into server: /usr/lib/apache2/modules/mod_gnutls.so: undefined symbol: unixd_config If I remove the @gnutls.conf file from the /etc/apache2/mods-enabled directory Apache restarts Any suggestions would be appreciated Thanks Frank It's been suggested that the GnuTLS package in 12.04LTS hasn't been updated for apache 2.4 If that's the case is there a repository with an updated version or should I revert to apache2.2 Any advice would be appreciated Thanks Frank Polan From dkg at fifthhorseman.net Tue Mar 4 11:35:14 2014 From: dkg at fifthhorseman.net (Daniel Kahn Gillmor) Date: Tue, 04 Mar 2014 10:35:14 +0000 Subject: [gnutls-help] Ubuntu 12.04lts Apache 2.4 mod_gnutls.so In-Reply-To: <00c101cf370e$81be5cc0$853b1640$@com> References: <00c101cf370e$81be5cc0$853b1640$@com> Message-ID: <5315AC62.2020602@fifthhorseman.net> Hi Frank-- On 03/03/2014 06:29 PM, Frank J Polan wrote: > This is my first posting to this list. If I'm doing anything wrong or > breaking any rules please let me know > The following describes the problem ( as I posted to another forum) > > Ubuntu 12.04LTS Apache 2.4 I've installed TLS be following the steps on this > link https://help.ubuntu.com/community/GnuTLS > When restarting Apache I get the following error > apache2: Syntax error on line 212 of /etc/apache2/apache2.conf: Syntax error > on line 1 of /etc/apache2/mods-enabled/gnutls.load: Cannot load > /usr/lib/apache2/modules/mod_gnutls.so into server: > /usr/lib/apache2/modules/mod_gnutls.so: undefined symbol: unixd_config > > If I remove the @gnutls.conf file from the /etc/apache2/mods-enabled > directory Apache restarts > Any suggestions would be appreciated > Thanks > Frank > > It's been suggested that the GnuTLS package in 12.04LTS hasn't been updated > for apache 2.4 If that's the case is there a repository with an updated > version or should I revert to apache2.2 it sounds like you're running into a problem with apache mod_gnutls, which is a distinct project from gnutls itself -- mod_gnutls is a project to connect Apache (the web server) with the GnuTLS transport layer security library. The right place to follow up on this is probably either the mod_gnutls mailing list (i'm cc'ing it here): mod_gnutls-devel at lists.gnutls.org or on ubuntu's packaging bug reports on https://launchpad.net/ fwiw, the mod_gnutls packaging for ubuntu should have caught this error message during the test suite. however, looking at http://packages.ubuntu.com/search?keywords=apache2, i don't think that ubuntu 12.04 LTS actually has apache 2.4 at all (i think it shipped with apache 2.2), so i'm not sure what is going on with your system. Did you compile these tools yourself? if so, what versions are you working with? Regards, --dkg -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 1010 bytes Desc: OpenPGP digital signature URL: From fpolan at rogers.com Tue Mar 4 15:30:29 2014 From: fpolan at rogers.com (Frank J Polan) Date: Tue, 4 Mar 2014 09:30:29 -0500 Subject: [gnutls-help] Ubuntu 12.04lts Apache 2.4 mod_gnutls.so In-Reply-To: <5315AC62.2020602@fifthhorseman.net> References: <00c101cf370e$81be5cc0$853b1640$@com> <5315AC62.2020602@fifthhorseman.net> Message-ID: <00d001cf37b6$4b5ee700$e21cb500$@com> Daniel Thanks for the excellent explanation. You're correct 12.04lts doesn't have apache2.4; I downloaded it from a different repository. I'll uninstall it and revert back to 2.2 until it's an official Ubuntu release Thanks Frank Polan -----Original Message----- From: Daniel Kahn Gillmor [mailto:dkg at fifthhorseman.net] Sent: March-04-2014 05:35 To: Frank J Polan; gnutls-help at lists.gnutls.org; mod_gnutls-devel at lists.gnutls.org Subject: Re: [gnutls-help] Ubuntu 12.04lts Apache 2.4 mod_gnutls.so Hi Frank-- On 03/03/2014 06:29 PM, Frank J Polan wrote: > This is my first posting to this list. If I'm doing anything wrong or > breaking any rules please let me know The following describes the > problem ( as I posted to another forum) > > Ubuntu 12.04LTS Apache 2.4 I've installed TLS be following the steps > on this link https://help.ubuntu.com/community/GnuTLS > When restarting Apache I get the following error > apache2: Syntax error on line 212 of /etc/apache2/apache2.conf: Syntax > error on line 1 of /etc/apache2/mods-enabled/gnutls.load: Cannot load > /usr/lib/apache2/modules/mod_gnutls.so into server: > /usr/lib/apache2/modules/mod_gnutls.so: undefined symbol: unixd_config > > If I remove the @gnutls.conf file from the /etc/apache2/mods-enabled > directory Apache restarts Any suggestions would be appreciated Thanks > Frank > > It's been suggested that the GnuTLS package in 12.04LTS hasn't been > updated for apache 2.4 If that's the case is there a repository with > an updated version or should I revert to apache2.2 it sounds like you're running into a problem with apache mod_gnutls, which is a distinct project from gnutls itself -- mod_gnutls is a project to connect Apache (the web server) with the GnuTLS transport layer security library. The right place to follow up on this is probably either the mod_gnutls mailing list (i'm cc'ing it here): mod_gnutls-devel at lists.gnutls.org or on ubuntu's packaging bug reports on https://launchpad.net/ fwiw, the mod_gnutls packaging for ubuntu should have caught this error message during the test suite. however, looking at http://packages.ubuntu.com/search?keywords=apache2, i don't think that ubuntu 12.04 LTS actually has apache 2.4 at all (i think it shipped with apache 2.2), so i'm not sure what is going on with your system. Did you compile these tools yourself? if so, what versions are you working with? Regards, --dkg From nmav at gnutls.org Wed Mar 5 09:44:41 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Wed, 5 Mar 2014 09:44:41 +0100 Subject: [gnutls-help] gnutls 3.2.12 / GNUTLS-SA-2014-2 In-Reply-To: <53141FB1.3040809@gnutls.org> References: <53141FB1.3040809@gnutls.org> Message-ID: On Mon, Mar 3, 2014 at 7:22 AM, Nikos Mavrogiannopoulos wrote: > This fixes is an important (and at the same time embarrassing) bug > discovered during an audit for Red Hat. Everyone is urged to upgrade. > The git branches of older releases (e.g., 2.12.x), were also updated > with patches to the issue as they are also vulnerable. I'll provide more > information on the issue the next few days. Hello, It seems that this bug got quite some publicity and I even started receiving mail from random people. If anyone has any suggestions on gnutls project workflow please post it here, and (more important) volunteer to take up some work. Judging is easy, doing the actual work isn't. So here are few more words on the specific issue. The bug was introduced around the 1.0.0 version, and went for quite long time undetected, I believe for the following reason mainly: 1. This bug cannot be detected by any certificate validation tests; prior to any release gnutls is tested against a certificate validation path suite (developed to test X.509 path validation for USA's DoD), but that couldn't help detect the issue. It didn't help with any of the other issues that had been detected in the X.509 path validation code of gnutls, so we have an additional suite developed in-house. That didn't help with the issue either because it requires a specially crafted certificate (and I'm not revealing more details on that yet). 2. This bug can only be detected by code audit, which doesn't happen often (it's not a fun thing to do). 3. As this code was on a critical part of the library it was touched and thus read, very rarely. Moreover, the code in question followed the usual form of error checking in the library 'if(err<0) return err', making it look correct, unless one would notice that the function returned a boolean value (and we have very few such functions in the library). Of course the bug was introduced by me and I am fully responsible for it. That's my last mail on the topic. Shit happens; we flush and go on. regards, Nikos From nmav at gnutls.org Fri Mar 7 08:50:21 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Fri, 07 Mar 2014 08:50:21 +0100 Subject: [gnutls-help] auditing gnutls Message-ID: <1394178621.4157.55.camel@nomad.lan> Hello, It seems there are more eyes looking at gnutls now, so to make things easier, here is a list of the parts of gnutls (and also libtasn1) that are exposed to network/untrusted data and have more need for auditing. If you are able to audit the code please check the master branch (see instructions at http://www.gnutls.org/devel.html ), and in case you are able to successfully audit one of the following paths, please edit the files reviewed and add a header under the author: 'Reviewed-By: Your Name (date)' or 'Reviewed X.509 certificate verfication: Your name (date)' Then make a patch with any changes you see fit (e.g. fixes or simplifications of complex code) and send it to this list (preferably) or to me directly. If you cannot audit, but you know others that want and can, please forward that mail to them. The reward for significant flaw finders is eternal fame, and a @gnutls.org email address. Note that there are people that have requested access to the coverity gnutls logs. These are for a very old gnutls version and they don't reveal anything that isn't also visible by clang's scan-build. ********* The list: ********* 1. X.509 certificate verification starting from gnutls_certificate_verify_peers3() - gnutls_cert.c (may require PKIX details from RFC5280) 2. X.509 certificate verification starting from gnutls_x509_trust_list_verify_crt() - x509/verify-high.c 3. X.509 certificate verification starting from gnutls_x509_trust_list_verify_named_crt() - x509/verify-high.c 4. TOFU certificate verification starting from gnutls_verify_stored_pubkey() - verify-tofu.c 5. TLS record parsing starting from gnutls_record_recv() to gnutls_decrypt() - gnutls_record.c / gnutls_cipher.c (may require TLS record details from RFC2246) 6. TLS handshake for RSA key exchange - gnutls_handshake() from gnutls_handshake.c and auth/rsa.c. (may require TLS details from rfc5246) 7. TLS handshake for DHE-RSA key exchange - gnutls_handshake() from gnutls_handshake.c and auth/dhe.c. (may require TLS details from rfc5246) 8. TLS handshake for ECDHE-ECDSA key exchange - gnutls_handshake() from gnutls_handshake.c and auth/ecdhe.c. (may require TLS details from rfc4492) 9 TLS handshake as a state machine starting from gnutls_handshake in gnutls_handshake.c. 10. Random generator starting from gnutls_rnd() / random.c, and nettle/rnd.c. This generator should work on multi-threaded systems and after fork. 11. X.509 certificate parsing at x509/x509.c. (may require PKIX details from RFC5280) 12. (X.509 certificate) DER decoding at libtasn1's asn1_der_decoding. Check code from the upstream repository at: https://www.gnu.org/software/libtasn1/ (that's a task for the brave) regards, Nikos From fred.maison at gmail.com Fri Mar 7 08:54:07 2014 From: fred.maison at gmail.com (Fred) Date: Fri, 7 Mar 2014 08:54:07 +0100 Subject: [gnutls-help] Multi value extensions issue Message-ID: Hi all, It seems certtool does not correctly handles some multi-value extensions : for example, I have 2 revocation url in my certificates, which hare correctly handeled under OpenSSL, but only the first one is present in certs signed by certtool. Is this a thown issue ? Is there any workaround or any way to fix it ? certtool -v certtool 3.0.28 Copyright (C) 2000-2012 Free Software Foundation, all rights reserved. This is free software. It is licensed for use, modification and redistribution under the terms of the GNU General Public License, version 3 or later please send bug reports to: bug-gnutls at gnu.org From mrobinson7627 at gmail.com Sat Mar 1 00:59:57 2014 From: mrobinson7627 at gmail.com (Matt Robinson) Date: Fri, 28 Feb 2014 18:59:57 -0500 Subject: [gnutls-help] No such file or directory on handshake? Message-ID: I'm trying to do a simple TLS handshake, and I get a "No such file or directory" error when attempting to do so. I ran strace on my code, and this was the output: open("/etc/gnutls/pkcs11.conf", O_RDONLY) = -1 ENOENT (No such file or directory) I'm wondering what that file is, and what I can do to fix it. Here's the rest of my code, in case there's something wrong with it. #include #include #include #include #include #include #include #include void error(char* msg) { perror(msg); exit(1);} int main(){ int sockfd; int portno = 64738; struct sockaddr_in serv_addr; struct hostent* server; //set up socket server = gethostbyname("localhost"); bzero(&serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; bcopy(server->h_addr, &serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(portno); if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) error("Couldn't create socket"); if (connect(sockfd, &serv_addr, sizeof(serv_addr)) < 0 ) error("Connection error"); //global init if (gnutls_global_init() < 0) error("Could not globally initialize TLS"); //session init gnutls_session_t* session = malloc(sizeof(gnutls_session_t)); if (gnutls_init(session, GNUTLS_CLIENT) != GNUTLS_E_SUCCESS) error("Could not initialize TLS session"); //Should eventually use certs, but I don't know how right now //gnutls_certificate_credentials_t cert_cred = malloc(sizeof(gnutls_certificate_credentials_t)); //if (gnutls_credentials_set(*session, GNUTLS_CRD_CERTIFICATE, cert_cred) != GNUTLS_E_SUCCESS) // //For now do it anonymously gnutls_anon_client_credentials_t* anon_cred = malloc(sizeof(gnutls_anon_client_credentials_t)); if (gnutls_credentials_set(*session, GNUTLS_CRD_ANON, anon_cred) != GNUTLS_E_SUCCESS) error("Could not set credentials"); if (gnutls_anon_allocate_client_credentials(anon_cred) != GNUTLS_E_SUCCESS) error("Could not allocate credentials"); //set up socket for tls gnutls_transport_set_int(*session, sockfd); //do the handshake if (gnutls_handshake(*session) != GNUTLS_E_SUCCESS) error("TLS handshake failed"); //deinit gnutls_global_deinit(); printf("Success\n"); return 0;} Sorry if I'm not supposed to post code likethis in the middle of an email, I don't exactly know the protocol for something like this. -Matt -------------- next part -------------- An HTML attachment was scrubbed... URL: From nmav at gnutls.org Sat Mar 8 09:54:10 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Sat, 08 Mar 2014 09:54:10 +0100 Subject: [gnutls-help] Multi value extensions issue In-Reply-To: References: Message-ID: <1394268850.4172.3.camel@nomad.lan> On Fri, 2014-03-07 at 08:54 +0100, Fred wrote: > Hi all, > It seems certtool does not correctly handles some multi-value extensions : > for example, I have 2 revocation url in my certificates, which hare > correctly handeled under OpenSSL, but only the first one is present in > certs signed by certtool. Hello, That's a limitation of the tool. It currently handles only a single CRL distribution point. regards, Nikos From jens.lechtenboerger at fsfe.org Sat Mar 8 22:41:41 2014 From: jens.lechtenboerger at fsfe.org (Jens Lechtenboerger) Date: Sat, 08 Mar 2014 22:41:41 +0100 Subject: [gnutls-help] gnutls-cli DHE preferences Message-ID: <86eh2c8j1m.fsf@informationelle-selbstbestimmung-im-internet.de> Hi there, I just realized that gnutls-cli (3.2.12.1) prefers cipher suites without DHE over those with DHE, e.g.: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f) is preferred to TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033). I was hoping for forward secrecy with Diffie-Hellman by default, which I now must enable explicitly with option --priority=PFS. Is there a reason for this preference? Best wishes Jens From nmav at gnutls.org Sun Mar 9 20:16:49 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Sun, 09 Mar 2014 20:16:49 +0100 Subject: [gnutls-help] gnutls-cli DHE preferences In-Reply-To: <86eh2c8j1m.fsf@informationelle-selbstbestimmung-im-internet.de> References: <86eh2c8j1m.fsf@informationelle-selbstbestimmung-im-internet.de> Message-ID: <1394392609.12679.14.camel@nomad.lan> On Sat, 2014-03-08 at 22:41 +0100, Jens Lechtenboerger wrote: > Hi there, > > I just realized that gnutls-cli (3.2.12.1) prefers > cipher suites without DHE over those with DHE, e.g.: > TLS_RSA_WITH_AES_128_CBC_SHA (0x002f) is preferred to > TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033). > > I was hoping for forward secrecy with Diffie-Hellman by default, > which I now must enable explicitly with option --priority=PFS. > Is there a reason for this preference? Yes. The problem with DHE ciphersuites is that they don't negotiate the acceptable security level; thus when a client prioritizes DH and receives unacceptable DH parameters can only terminate the session with an error. This makes gnutls incompatible with these servers (there are quite some misconfigured servers like that), so gnutls prioritizes by default ECDHE, and RSA over DHE to promote compatibility. regards, Nikos From mpg at polarssl.org Tue Mar 11 11:16:15 2014 From: mpg at polarssl.org (=?ISO-8859-1?Q?Manuel_P=E9gouri=E9-Gonnard?=) Date: Tue, 11 Mar 2014 11:16:15 +0100 Subject: [gnutls-help] Ciphersuite minimal version inconsistency? In-Reply-To: <5310D8C6.2090807@gnutls.org> References: <5310AD63.8070308@polarssl.org> <5310D8C6.2090807@gnutls.org> Message-ID: <531EE26F.1020101@polarssl.org> Hi Nikos, On 02/28/2014 07:43 PM, Nikos Mavrogiannopoulos wrote: > The RFCs you refer to don't mention SSL 3.0 at all, so my approach was > to allow these algorithms for TLS 1.0 or later. Unfortunately openssl > was negotiating these algorithms on SSL 3.0 as well, so I allowed some > of them in SSL 3.0 as well. I asked the TLS WG at the time, and there > was no real answer. Anyway maybe it makes sense to allow all the TLS 1.0 > ciphersuites in SSL 3.0 as well to prevent any incompatibilities. > I see you allowed these suites in SSL 3.0 in the latest release. I agree that it's not clear if there is a real answer here, but thanks for you reaction anyway. Regards, Manuel. From mpg at polarssl.org Tue Mar 11 11:23:28 2014 From: mpg at polarssl.org (=?ISO-8859-1?Q?Manuel_P=E9gouri=E9-Gonnard?=) Date: Tue, 11 Mar 2014 11:23:28 +0100 Subject: [gnutls-help] Some "missing" ciphersuites In-Reply-To: <5310DB5C.70105@gnutls.org> References: <5310AD6F.6050700@polarssl.org> <5310DB5C.70105@gnutls.org> Message-ID: <531EE420.5000507@polarssl.org> On 02/28/2014 07:54 PM, Nikos Mavrogiannopoulos wrote: > On 02/28/2014 04:38 PM, Manuel P?gouri?-Gonnard wrote: >> TLS_DHE_PSK_NULL_SHA1 >> TLS_DHE_PSK_RC4_128_SHA1 >> TLS_ECDHE_PSK_NULL_SHA1 >> TLS_ECDHE_PSK_RC4_128_SHA1 >> TLS_PSK_NULL_SHA1 >> TLS_RSA_PSK_RC4_128_SHA1 >> Is that an oversight, or is there a particular reason? > > No particular reason. Probably it was an oversight and no-one asked for > them. Do you think there is some good reason to add them? > Honestly, I don't know if there is a good reason to add them. However, I have a quite selfish reason for wishing they were added: I'm currently adding GnuTLS to our interop test script in PolarSSL, and those are the few ciphersuites that we support but can't test interop for at the moment (they are not in OpenSSL either). Obviously, I won't be offended if you don't think it's a good enough reason to add them :) Regards, Manuel. From nmav at gnutls.org Tue Mar 11 13:02:48 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Tue, 11 Mar 2014 13:02:48 +0100 Subject: [gnutls-help] Ciphersuite minimal version inconsistency? In-Reply-To: <531EE26F.1020101@polarssl.org> References: <5310AD63.8070308@polarssl.org> <5310D8C6.2090807@gnutls.org> <531EE26F.1020101@polarssl.org> Message-ID: On Tue, Mar 11, 2014 at 11:16 AM, Manuel P?gouri?-Gonnard wrote: >> The RFCs you refer to don't mention SSL 3.0 at all, so my approach was >> to allow these algorithms for TLS 1.0 or later. Unfortunately openssl >> was negotiating these algorithms on SSL 3.0 as well, so I allowed some >> of them in SSL 3.0 as well. I asked the TLS WG at the time, and there >> was no real answer. Anyway maybe it makes sense to allow all the TLS 1.0 >> ciphersuites in SSL 3.0 as well to prevent any incompatibilities. > I see you allowed these suites in SSL 3.0 in the latest release. I agree that > it's not clear if there is a real answer here, but thanks for you reaction anyway. Hello, Actually I was wrong in allowing them. SSL 3.0 uses a special MAC construction that isn't defined for SHA256 or better, and there is no authority to extend that definition. I'll revert that choice on the next bug fix release. regards, Nikos From nmav at gnutls.org Tue Mar 11 13:05:06 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Tue, 11 Mar 2014 13:05:06 +0100 Subject: [gnutls-help] Some "missing" ciphersuites In-Reply-To: <531EE420.5000507@polarssl.org> References: <5310AD6F.6050700@polarssl.org> <5310DB5C.70105@gnutls.org> <531EE420.5000507@polarssl.org> Message-ID: On Tue, Mar 11, 2014 at 11:23 AM, Manuel P?gouri?-Gonnard wrote: >> No particular reason. Probably it was an oversight and no-one asked for >> them. Do you think there is some good reason to add them? > Honestly, I don't know if there is a good reason to add them. However, I have a > quite selfish reason for wishing they were added: I'm currently adding GnuTLS to > our interop test script in PolarSSL, and those are the few ciphersuites that we > support but can't test interop for at the moment (they are not in OpenSSL either). > Obviously, I won't be offended if you don't think it's a good enough reason to > add them :) Would you be interested in contributing that interop test to gnutls? We already have interop check with openssl (in tests/suite/testcompat), and would be nice if there were checks with other implementations as well. regards, Nikos From mpg at polarssl.org Wed Mar 12 13:26:59 2014 From: mpg at polarssl.org (=?ISO-8859-1?Q?Manuel_P=E9gouri=E9-Gonnard?=) Date: Wed, 12 Mar 2014 13:26:59 +0100 Subject: [gnutls-help] Some "missing" ciphersuites In-Reply-To: References: <5310AD6F.6050700@polarssl.org> <5310DB5C.70105@gnutls.org> <531EE420.5000507@polarssl.org> Message-ID: <53205293.7050200@polarssl.org> On 03/11/2014 01:05 PM, Nikos Mavrogiannopoulos wrote: > On Tue, Mar 11, 2014 at 11:23 AM, Manuel P?gouri?-Gonnard > wrote: >> Honestly, I don't know if there is a good reason to add them. However, I have a >> quite selfish reason for wishing they were added: I'm currently adding GnuTLS to >> our interop test script in PolarSSL, and those are the few ciphersuites that we >> support but can't test interop for at the moment (they are not in OpenSSL either). >> Obviously, I won't be offended if you don't think it's a good enough reason to >> add them :) > > Would you be interested in contributing that interop test to gnutls? > We already have interop check with openssl (in > tests/suite/testcompat), and would be nice if there were checks with > other implementations as well. > I'm not done yet integrating GnuTLS in our script, but I'll let you know when I'm done, so we can see if we can share something here. Regards, Manuel. From mail at lechevalier.se Thu Mar 13 00:17:37 2014 From: mail at lechevalier.se (A L) Date: Thu, 13 Mar 2014 00:17:37 +0100 Subject: [gnutls-help] curve25519, UMAC, etc Message-ID: <5320EB11.7050104@lechevalier.se> Are there any plans to support curve25519 or any of the other non-NIST curves for ECC/ECDH and are there plans to support Ed25519 signature? Reference: http://cr.yp.to/ecdh.html http://ed25519.cr.yp.to https://tools.ietf.org/html/draft-josefsson-tls-curve25519-04 ~A From nmav at gnutls.org Fri Mar 14 08:34:09 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Fri, 14 Mar 2014 08:34:09 +0100 Subject: [gnutls-help] curve25519, UMAC, etc In-Reply-To: <5320EB11.7050104@lechevalier.se> References: <5320EB11.7050104@lechevalier.se> Message-ID: On Thu, Mar 13, 2014 at 12:17 AM, A L wrote: > Are there any plans to support curve25519 or any of the other non-NIST > curves for ECC/ECDH and are there plans to support Ed25519 signature? > Reference: > http://cr.yp.to/ecdh.html > http://ed25519.cr.yp.to > https://tools.ietf.org/html/draft-josefsson-tls-curve25519-04 The plan is to be added once it is standardized and implemented in nettle. Ed25519 signature scheme will not be added, as it is not standardized in any way and there is no plan to make it so as far as I know. Implementing algorithms prior to standardization has the risk of implementing an early variant of the algorithm that isn't in the final standard (this is the case with gnutls implementing salsa20-umac, which was replaced with chacha20-poly, and openssh with the chacha20-poly implementation, which is based on an early draft that is incompatible with the latest). regards, Nikos From mail at lechevalier.se Fri Mar 14 19:45:51 2014 From: mail at lechevalier.se (A L) Date: Fri, 14 Mar 2014 19:45:51 +0100 Subject: [gnutls-help] curve25519, UMAC, etc In-Reply-To: References: <5320EB11.7050104@lechevalier.se> Message-ID: <53234E5F.4050709@lechevalier.se> On 2014-03-14 08:34, Nikos Mavrogiannopoulos wrote: > On Thu, Mar 13, 2014 at 12:17 AM, A L wrote: >> Are there any plans to support curve25519 or any of the other non-NIST >> curves for ECC/ECDH and are there plans to support Ed25519 signature? >> Reference: >> http://cr.yp.to/ecdh.html >> http://ed25519.cr.yp.to >> https://tools.ietf.org/html/draft-josefsson-tls-curve25519-04 > The plan is to be added once it is standardized and implemented in > nettle. Ed25519 signature scheme will not be added, as it is not > standardized in any way and there is no plan to make it so as far as I > know. > > Implementing algorithms prior to standardization has the risk of > implementing an early variant of the algorithm that isn't in the final > standard (this is the case with gnutls implementing salsa20-umac, > which was replaced with chacha20-poly, and openssh with the > chacha20-poly implementation, which is based on an early draft that is > incompatible with the latest). > > regards, > Nikos Understandably, there needs to be some standardization to avoid interoperability and security issues. Do you know the status regarding the draft? I.e. when could we expect it to be finalized enough to be included? Side note. I just saw that the OpenSSH-6.5 release does support Ed25519 ;) http://www.openssh.org/txt/release-6.5 ~A From nmav at gnutls.org Thu Mar 27 17:50:55 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Thu, 27 Mar 2014 17:50:55 +0100 Subject: [gnutls-help] gnutls 3.3.0pre0 Message-ID: <1395939055.28794.4.camel@nomad.lan> Hello, I've just released gnutls 3.3.0pre0. This is a pre-release of the next stable branch, which adds new features, optimizations and cleanups to the GnuTLS library. * Version 3.3.0 (pre-release 2014-03-27) ** libgnutls: The initialization of the library was moved to a constructor. That is, gnutls_global_init() is no longer required unless linking with a static library or a system that does not support library constructors. ** libgnutls: static libraries are not built by default. ** libgnutls: PKCS #11 initialization is delayed to first usage. That avoids long delays in gnutls initialization due to broken PKCS #11 modules. ** libgnutls: The PKCS #11 subsystem is re-initialized "automatically" on the first PKCS #11 API call after a fork. ** libgnutls: certificate verification profiles were introduced that can be specified as flags to verification functions. They are enumerations in gnutls_certificate_verification_profiles_t and can be converted to flags using GNUTLS_PROFILE_TO_VFLAGS() ** libgnutls: Added the SYSTEM priority string initial keyword. That allows a compile-time specified configuration file to be used to read the priorities. That can be used to impose system specific policies. ** libgnutls: Increased the default security level of priority strings (NORMAL and PFS strings require at minimum a 1008 DH prime), and set a verification profile by default. The LEGACY keyword is introduced to set the old defaults. ** libgnutls: Added support for the name constraints PKIX extension. Currently only DNS names and e-mails are supported (no URIs, IPs or DNs). ** libgnutls: Security parameter SEC_PARAM_NORMAL was renamed to SEC_PARAM_MEDIUM to avoid confusion with the priority string NORMAL. ** libgnutls: Added new API in x509-ext.h to handle X.509 extensions. This API handles the X.509 extensions in isolation, allowing to parse similarly formatted extensions stored in other structures. ** libgnutls: When generating DSA keys the macro GNUTLS_SUBGROUP_TO_BITS can be used to specify a particular subgroup as the number of bits in gnutls_privkey_generate; e.g., GNUTLS_SUBGROUP_TO_BITS(2048, 256). ** libgnutls: DH parameter generation is now delegated to nettle. That unfortunately has the side-effect that DH parameters longer than 3072 bits, cannot be generated (not without a nettle update). ** libgnutls: Separated nonce RNG from the main RNG. The nonce random number generator is based on salsa20/12. ** libgnutls: The buffer alignment provided to crypto backend is enforced to be 16-byte aligned, when compiled with cryptodev support. That allows certain cryptodev drivers to operate more efficiently. ** libgnutls: Depend on p11-kit 0.20.0 or later. ** libgnutls: The new padding (%NEW_PADDING) experimental TLS extension has been removed. It was not approved by IETF. ** libgnutls: The experimental xssl library is removed from the gnutls distribution. ** libgnutls: Reduced the number of gnulib modules used. ** certtool: Timestamps for serial numbers were increased to 8 bytes, and in batch mode to 12 (appended with 4 random bytes). ** libgnutls: Added --enable-fips140-mode configuration option (unsupported). That option enables (when running on FIPS140-enabled system): o RSA, DSA and DH key generation as in FIPS-186-4 (using provable primes) o The DRBG-CTR-AES256 deterministic random generator from SP800-90A. o Self-tests on initialization on ciphers/MACs, public key algorithms and the random generator. o HMAC-SHA256 verification of the library on load. o MD5 is included for TLS purposes but cannot be used by the high level hashing functions. o All ciphers except AES are disabled. o All MACs and hashes except GCM and SHA are disabled (e.g., HMAC-MD5). o All keys (temporal and long term) are zeroized after use. o Security levels are adjusted to the FIPS140-2 recommendations (rather than ECRYPT). ** API and ABI modifications: gnutls_privkey_generate: Added gnutls_pkcs11_crt_is_known: Added gnutls_fips140_mode_enabled: Added gnutls_sec_param_to_symmetric_bits: Added gnutls_pubkey_export_ecc_x962: Added (replaces gnutls_pubkey_get_pk_ecc_x962) gnutls_pubkey_export_ecc_raw: Added (replaces gnutls_pubkey_get_pk_ecc_raw) gnutls_pubkey_export_dsa_raw: Added (replaces gnutls_pubkey_get_pk_dsa_raw) gnutls_pubkey_export_rsa_raw: Added (replaces gnutls_pubkey_get_pk_rsa_raw) gnutls_pubkey_verify_params: Added gnutls_privkey_export_ecc_raw: Added gnutls_privkey_export_dsa_raw: Added gnutls_privkey_export_rsa_raw: Added gnutls_privkey_import_ecc_raw: Added gnutls_privkey_import_dsa_raw: Added gnutls_privkey_import_rsa_raw: Added gnutls_privkey_verify_params: Added gnutls_x509_name_constraints_init: Added gnutls_x509_name_constraints_deinit: Added gnutls_x509_crt_get_name_constraints: Added gnutls_x509_name_constraints_add_permitted: Added gnutls_x509_name_constraints_add_excluded: Added gnutls_x509_crt_set_name_constraints: Added gnutls_x509_name_constraints_get_permitted: Added gnutls_x509_name_constraints_get_excluded: Added gnutls_x509_name_constraints_check: Added gnutls_x509_name_constraints_check_crt: Added gnutls_x509_crl_get_extension_data2: Added gnutls_x509_crt_get_extension_data2: Added gnutls_x509_crq_get_extension_data2: Added gnutls_subject_alt_names_init: Added gnutls_subject_alt_names_deinit: Added gnutls_subject_alt_names_get: Added gnutls_subject_alt_names_set: Added gnutls_x509_ext_import_subject_alt_names: Added gnutls_x509_ext_export_subject_alt_names: Added gnutls_x509_crl_dist_points_init: Added gnutls_x509_crl_dist_points_deinit: Added gnutls_x509_crl_dist_points_get: Added gnutls_x509_crl_dist_points_set: Added gnutls_x509_ext_import_crl_dist_points: Added gnutls_x509_ext_export_crl_dist_points: Added gnutls_x509_ext_import_name_constraints: Added gnutls_x509_ext_export_name_constraints: Added gnutls_x509_aia_init: Added gnutls_x509_aia_deinit: Added gnutls_x509_aia_get: Added gnutls_x509_aia_set: Added gnutls_x509_ext_import_aia: Added gnutls_x509_ext_export_aia: Added gnutls_x509_ext_import_subject_key_id: Added gnutls_x509_ext_export_subject_key_id: Added gnutls_x509_ext_export_authority_key_id: Added gnutls_x509_ext_import_authority_key_id: Added gnutls_x509_aki_init: Added gnutls_x509_aki_get_id: Added gnutls_x509_aki_get_cert_issuer: Added gnutls_x509_aki_set_id: Added gnutls_x509_aki_set_cert_issuer: Added gnutls_x509_aki_deinit: Added gnutls_x509_ext_import_private_key_usage_period: Added gnutls_x509_ext_export_private_key_usage_period: Added gnutls_x509_ext_import_basic_constraints: Added gnutls_x509_ext_export_basic_constraints: Added gnutls_x509_ext_import_key_usage: Added gnutls_x509_ext_export_key_usage: Added gnutls_x509_ext_import_proxy: Added gnutls_x509_ext_export_proxy: Added gnutls_x509_policies_init: Added gnutls_x509_policies_deinit: Added gnutls_x509_policies_get: Added gnutls_x509_policies_set: Added gnutls_x509_ext_import_policies: Added gnutls_x509_ext_export_policies: Added gnutls_x509_key_purpose_init: Added gnutls_x509_key_purpose_deinit: Added gnutls_x509_key_purpose_set: Added gnutls_x509_key_purpose_get: Added gnutls_x509_ext_import_key_purposes: Added gnutls_x509_ext_export_key_purposes: Added gnutls_digest_self_test: Added (conditionally) gnutls_mac_self_test: Added (conditionally) gnutls_pk_self_test: Added (conditionally) gnutls_cipher_self_test: Added (conditionally) gnutls_global_set_mem_functions: Deprecated Getting the Software ==================== GnuTLS may be downloaded directly from . A list of GnuTLS mirrors can be found at . Here are the XZ and LZIP compressed sources: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.0pre0.tar.xz ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.0pre0.tar.lz Here are OpenPGP detached signatures signed using key 0x96865171: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.0pre0.tar.xz.sig ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.0pre0.tar.lz.sig Note that it has been signed with my openpgp key: pub 3104R/96865171 2008-05-04 [expires: 2028-04-29] uid Nikos Mavrogiannopoulos gnutls.org> uid Nikos Mavrogiannopoulos gmail.com> sub 2048R/9013B842 2008-05-04 [expires: 2018-05-02] sub 2048R/1404A91D 2008-05-04 [expires: 2018-05-02] regards, Nikos From swbrown at variadic.org Fri Mar 28 08:42:16 2014 From: swbrown at variadic.org (Steven Brown) Date: Fri, 28 Mar 2014 00:42:16 -0700 Subject: [gnutls-help] vectored gnutls_record_send for DTLS? Message-ID: <533527D8.8070707@variadic.org> Is there any way of doing vectored I/O for writes with gnutls? There seems to be a gnutls_transport_set_vec_push_function but no corresponding gnutls_record_send_vec or similar. This is an issue for DTLS where I can't just do multiple writes as they'll end up in separate packets and the alternative of rewriting each packet in memory is expensive. From nmav at gnutls.org Fri Mar 28 10:37:28 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Fri, 28 Mar 2014 10:37:28 +0100 Subject: [gnutls-help] vectored gnutls_record_send for DTLS? In-Reply-To: <533527D8.8070707@variadic.org> References: <533527D8.8070707@variadic.org> Message-ID: On Fri, Mar 28, 2014 at 8:42 AM, Steven Brown wrote: > Is there any way of doing vectored I/O for writes with gnutls? There > seems to be a gnutls_transport_set_vec_push_function but no > corresponding gnutls_record_send_vec or similar. This is an issue for > DTLS where I can't just do multiple writes as they'll end up in separate > packets and the alternative of rewriting each packet in memory is expensive. Hello, There is no vectored read and write yet, but you can simulate it use gnutls_record_cork() and uncork(). However, as these were made for TLS, there is some care needed when using them under DTLS (e.g., ensure you don't queue more data than the value of gnutls_dtls_get_data_mtu()). regards, Nikos From nmav at gnutls.org Fri Mar 28 10:53:12 2014 From: nmav at gnutls.org (Nikos Mavrogiannopoulos) Date: Fri, 28 Mar 2014 10:53:12 +0100 Subject: [gnutls-help] vectored gnutls_record_send for DTLS? In-Reply-To: References: <533527D8.8070707@variadic.org> Message-ID: On Fri, Mar 28, 2014 at 10:37 AM, Nikos Mavrogiannopoulos wrote: > Hello, > There is no vectored read and write yet, but you can simulate it use > gnutls_record_cork() and uncork(). > However, as these were made for TLS, there is some care needed when > using them under DTLS (e.g., ensure you don't queue more data than the > value of gnutls_dtls_get_data_mtu()). I'm wrong here. Unfortunately gnutls_record_cork() is unsafe for use with DTLS. That should be a thing to be fixed in 3.3.0. Hence the only way available for DTLS and vectored data is to concatenate them. regards, Nikos From kroosec at gmail.com Fri Mar 28 10:18:00 2014 From: kroosec at gmail.com (Hani B) Date: Fri, 28 Mar 2014 10:18:00 +0100 Subject: [gnutls-help] Setting DH params when only gnutls_session_t is available ? Message-ID: <20140328091800.GA6485@Inspiron-3521> Hi list, I am trying to set the Diffie-Hellman parameters in a case where the library I use (Libmicrohttpd) only exposes the gnutls_session_t value, but not the gnutls_certificate_credentials_t value (to use with gnutls_certificate_set_dh_params().) I am wondering if: 1. There is a way to set the DH parameters using the session ? 2. Is there a way to get the certificate_credentials_t record from the session, and thus be able to set the DH parameters using it ? Regards, From dkg at fifthhorseman.net Fri Mar 28 17:44:13 2014 From: dkg at fifthhorseman.net (Daniel Kahn Gillmor) Date: Fri, 28 Mar 2014 12:44:13 -0400 Subject: [gnutls-help] Setting DH params when only gnutls_session_t is available ? In-Reply-To: <20140328091800.GA6485@Inspiron-3521> References: <20140328091800.GA6485@Inspiron-3521> Message-ID: <5335A6DD.1060507@fifthhorseman.net> On 03/28/2014 05:18 AM, Hani B wrote: > I am trying to set the Diffie-Hellman parameters in a case where the library I > use (Libmicrohttpd) only exposes the gnutls_session_t value, but not the > gnutls_certificate_credentials_t value (to use with gnutls_certificate_set_dh_params().) If the session isn't already underway, i think you want to create a new gnutls_certificate_credentials_t, configure it as you like, and then use gnutls_credentials_set() to associate the credentials with the session. http://gnutls.org/manual/html_node/Core-TLS-API.html#gnutls_005fcredentials_005fset If this doesn't work for you, can you give details about the particular circumstances, or what you've tried and how it (mis)behaved? hope this helps, --dkg -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 1010 bytes Desc: OpenPGP digital signature URL: From kroosec at gmail.com Sun Mar 30 00:14:06 2014 From: kroosec at gmail.com (Hani B) Date: Sun, 30 Mar 2014 00:14:06 +0100 Subject: [gnutls-help] Setting DH params when only gnutls_session_t is available ? In-Reply-To: <5335A6DD.1060507@fifthhorseman.net> References: <20140328091800.GA6485@Inspiron-3521> <5335A6DD.1060507@fifthhorseman.net> Message-ID: <20140329231350.GC7130@Inspiron-3521> On Fri, Mar 28, 2014 at 12:44:13PM -0400, Daniel Kahn Gillmor wrote: > On 03/28/2014 05:18 AM, Hani B wrote: > > I am trying to set the Diffie-Hellman parameters in a case where the library I > > use (Libmicrohttpd) only exposes the gnutls_session_t value, but not the > > gnutls_certificate_credentials_t value (to use with gnutls_certificate_set_dh_params().) > > If the session isn't already underway, i think you want to create a new > gnutls_certificate_credentials_t, configure it as you like, and then use > gnutls_credentials_set() to associate the credentials with the session. > > http://gnutls.org/manual/html_node/Core-TLS-API.html#gnutls_005fcredentials_005fset > > If this doesn't work for you, can you give details about the particular > circumstances, or what you've tried and how it (mis)behaved? > > hope this helps, > > --dkg > Thanks Daniel. Apparently, earliest one can get access to the session pointer is at the connection callback, at which point, the tls handshake has already happened anyway. Guess that all I have left is hacking a patch for libmicrohttpd. Cheers, Hani.