Fwd: How to tweak openSSL vulnerabilities CVE-2013-0169
One of the openSSL vulnerabilities is: CVE-2013-0169: The TLS protocol 1.1 and 1.2 and the DTLS protocol 1.0 and 1.2, as used in OpenSSL, , do not properly consider timing side-channel attacks on a MAC check requirement during the processing of malformed CBC padding, which allows remote attackers to conduct distinguishing attacks and plaintext-recovery attacks via statistical analysis of timing data for crafted packets, aka the "Lucky Thirteen" issue. All versions of OpenSSL are affected including 1.0.1c, 1.0.0j and 0.9.8x Affected users should upgrade to OpenSSL 1.0.1d, 1.0.0k or 0.9.8y we use DTLS 1.0 protocol. Does anyone know of any setting in openssl configuration that can be tweaked to mitigate this vulnerability? E.g. a setting to not allow use of algorithms with CBC etc.? Regards, Alok
How to tweak openSSL vulnerabilities CVE-2013-0169
One of the openSSL vulnerabilities is: CVE-2013-0169: The TLS protocol 1.1 and 1.2 and the DTLS protocol 1.0 and 1.2, as used in OpenSSL, , do not properly consider timing side-channel attacks on a MAC check requirement during the processing of malformed CBC padding, which allows remote attackers to conduct distinguishing attacks and plaintext-recovery attacks via statistical analysis of timing data for crafted packets, aka the "Lucky Thirteen" issue. All versions of OpenSSL are affected including 1.0.1c, 1.0.0j and 0.9.8x Affected users should upgrade to OpenSSL 1.0.1d, 1.0.0k or 0.9.8y we use DTLS 1.0 protocol. Does anyone know of any setting in openssl configuration that can be tweaked to mitigate this vulnerability? E.g. a setting to not allow use of algorithms with CBC etc.? Regards, Alok
Re: [PATCH 0/4] ppc64 port to little-endian
On Fri, Nov 08, 2013 at 09:59:11PM +0100, Andy Polyakov wrote: > >Andy, do you think the changes in the config scripts can already be > >committed? > > Sure. Basically, explicit confirmation that everything works would > have sufficed. Only one remaining thing. As for config patch, I > don't quite understand. From what was discussed I've got impression > that LE system can only execute LE binaries. But then why would > config suggest to run ./Configure linux-ppc64le manually? Output for > 'uname -a' would suffice. Hi Andy, Everything works. Regarding the config patch. I did the simplest change in order to use -DL_ENDIAN instead of -DB_ENDIAN. Currently is there a way that already is used in the config scripts to do that automatically? Regards, Marcelo Cerri > __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org
Re: PIC code on Sparc Solaris
OK, I must have been doing something wrong. I ran "make distclean" for everything I have built up to this point and tried again. the problem went away. Sorry for the false alarm. Tom On Mon, Nov 11, 2013 at 1:14 PM, Tom Kacvinsky wrote: > It helps if I tell you I am using opnessl-1.0.1e > > > > On Mon, Nov 11, 2013 at 1:06 PM, Tom Kacvinsky < > tom.kacvin...@vectorcast.com> wrote: > >> The short story is that I want to make static libraries of Open SSL so >> that I can make Python modules (_ssl) that link against Open SSL >> statically, thereby reducing the amount of run time dependencies we have. >> But when I link these libraries in statically, I get relocation errors form >> the linker due to some of the code not being PIC. >> >> I don't know if the development is the appropriate forum for this, but I >> think it might since it has to do with how Open SSL builds on Solaris. >> >> Here is my set up: gcc 4.7.4 with GNU assembler and Solaris linker (gcc >> was configured with --with-gnu-as, but not with --with-gnu-ld). I ran >> >> ./config --prefix=/home/tjk/openssl no-shared -fPIC >> >> The configured build is for 32 bit Sparc Solaris running on a sparcv9 >> processor. >> >> The C code compiles into PIC objects just fine, but the GNU assembler >> does not produce PIC code for sparccpuid.S. I worked around this by first >> preprocessing the file using gcc: >> >> gcc -I... -D... -E sparcpuid.S > sparcpuid.s >> >> and then assembled it using >> >> as -V -Qy -s -xarch=v8plusa -K PIC -xcode=pic32 sparcpuid.s >> >> (I first ran gcc -v to see what gcc was going to pass to the assembler, >> then took that output and modified it so that the right options would be >> used for the Solaris assembler). I found that the crucial option is >> -xcode=pic32. >> >> I do not really ant to do this as I plan on scripting builds of Open SSL >> and this requires manual intervention. Do you know of a way to get the GNU >> assemble to produce PIC code? >> >> Thanks, >> >> Tom >> >> >> >
openssl-1.0.2-stable-SNAP-20131111
This might have cropped into all the SSL snapshots. /usr/bin/ranlib ../libssl.a || echo Never mind. if [ -n "libcrypto.so.1.0.0 libssl.so.1.0.0" ]; then (cd ..; make libssl.so.1.0.0); fi [ -z "" ] || gcc3 -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -pthread -D_THREAD_SAFE -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -DPERL5 -DL_ENDIAN -DTERMIOS -fomit-frame-pointer -O2 -Wall -g -DOPENSSL_EXPERIMENTAL_DANE -DOPENSSL_EXPERIMENTAL_JPAKE -DOPENSSL_EXPERIMENTAL_STORE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DGHASH_ASM -Iinclude -DFINGERPRINT_PREMAIN_DSO_LOAD -o fips_premain_dso fips_premain.c fipscanister.o libcrypto.a -lgmp -ldl -lm -lc /bin/sh: 1: Syntax error: "(" unexpected (expecting "fi") *** Error code 2 Stop. *** Error code 1 Stop. *** Error code 1 Stop. *** Error code 1 Stop. *** Error code 1 Stop. openssl-1.0.2-stable-SNAP-20131110 did not have the above problem. Please fix. -- Member - Liberal International This is doc...@nl2k.ab.ca Ici doc...@nl2k.ab.ca God,Queen and country!Never Satan President Republic!Beware AntiChrist rising! http://www.fullyfollow.me/rootnl2k Look at Psalms 14 and 53 on Atheism 23 Nov 2013 a Big day indeed __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org
Re: PIC code on Sparc Solaris
It helps if I tell you I am using opnessl-1.0.1e On Mon, Nov 11, 2013 at 1:06 PM, Tom Kacvinsky wrote: > The short story is that I want to make static libraries of Open SSL so > that I can make Python modules (_ssl) that link against Open SSL > statically, thereby reducing the amount of run time dependencies we have. > But when I link these libraries in statically, I get relocation errors form > the linker due to some of the code not being PIC. > > I don't know if the development is the appropriate forum for this, but I > think it might since it has to do with how Open SSL builds on Solaris. > > Here is my set up: gcc 4.7.4 with GNU assembler and Solaris linker (gcc > was configured with --with-gnu-as, but not with --with-gnu-ld). I ran > > ./config --prefix=/home/tjk/openssl no-shared -fPIC > > The configured build is for 32 bit Sparc Solaris running on a sparcv9 > processor. > > The C code compiles into PIC objects just fine, but the GNU assembler does > not produce PIC code for sparccpuid.S. I worked around this by first > preprocessing the file using gcc: > > gcc -I... -D... -E sparcpuid.S > sparcpuid.s > > and then assembled it using > > as -V -Qy -s -xarch=v8plusa -K PIC -xcode=pic32 sparcpuid.s > > (I first ran gcc -v to see what gcc was going to pass to the assembler, > then took that output and modified it so that the right options would be > used for the Solaris assembler). I found that the crucial option is > -xcode=pic32. > > I do not really ant to do this as I plan on scripting builds of Open SSL > and this requires manual intervention. Do you know of a way to get the GNU > assemble to produce PIC code? > > Thanks, > > Tom > > >
PIC code on Sparc Solaris
The short story is that I want to make static libraries of Open SSL so that I can make Python modules (_ssl) that link against Open SSL statically, thereby reducing the amount of run time dependencies we have. But when I link these libraries in statically, I get relocation errors form the linker due to some of the code not being PIC. I don't know if the development is the appropriate forum for this, but I think it might since it has to do with how Open SSL builds on Solaris. Here is my set up: gcc 4.7.4 with GNU assembler and Solaris linker (gcc was configured with --with-gnu-as, but not with --with-gnu-ld). I ran ./config --prefix=/home/tjk/openssl no-shared -fPIC The configured build is for 32 bit Sparc Solaris running on a sparcv9 processor. The C code compiles into PIC objects just fine, but the GNU assembler does not produce PIC code for sparccpuid.S. I worked around this by first preprocessing the file using gcc: gcc -I... -D... -E sparcpuid.S > sparcpuid.s and then assembled it using as -V -Qy -s -xarch=v8plusa -K PIC -xcode=pic32 sparcpuid.s (I first ran gcc -v to see what gcc was going to pass to the assembler, then took that output and modified it so that the right options would be used for the Solaris assembler). I found that the crucial option is -xcode=pic32. I do not really ant to do this as I plan on scripting builds of Open SSL and this requires manual intervention. Do you know of a way to get the GNU assemble to produce PIC code? Thanks, Tom
[openssl.org #3169] [PATCH] Additional "chain_cert" functions for 1.0.2-dev
This patch, which currently applies successfully against master and 1_0_2, adds the following functions: SSL_[CTX_]select_current_cert() - set the current certificate without disturbing the existing structure. SSL_[CTX_]get0_chain_certs() - get the current certificate's chain. SSL_[CTX_]clear_chain_certs() - clear the current certificate's chain. The patch also adds these functions to, and fixes some existing errors in, SSL_CTX_add1_chain_cert.pod. -- Rob Stradling Senior Research & Development Scientist COMODO - Creating Trust Online diff --git a/doc/ssl/SSL_CTX_add1_chain_cert.pod b/doc/ssl/SSL_CTX_add1_chain_cert.pod index 04f7526..2d2161a 100644 --- a/doc/ssl/SSL_CTX_add1_chain_cert.pod +++ b/doc/ssl/SSL_CTX_add1_chain_cert.pod @@ -3,9 +3,11 @@ =head1 NAME SSL_CTX_set0_chain, SSL_CTX_set1_chain, SSL_CTX_add0_chain_cert, -SSL_CTX_add1_chain_cert, SSL_set0_chain, SSL_set1_chain, -SSL_add0_chain_cert, SSL_add1_chain_cert, SSL_CTX_build_cert_chain, -SSL_build_cert_chain - extra chain certificate processing +SSL_CTX_add1_chain_cert, SSL_CTX_get0_chain_certs, SSL_CTX_clear_chain_certs, +SSL_set0_chain, SSL_set1_chain, SSL_add0_chain_cert, SSL_add1_chain_cert, +SSL_get0_chain_certs, SSL_clear_chain_certs, SSL_CTX_build_cert_chain, +SSL_build_cert_chain, SSL_CTX_select_current_cert, +SSL_select_current_cert - extra chain certificate processing =head1 SYNOPSIS @@ -13,36 +15,58 @@ SSL_build_cert_chain - extra chain certificate processing int SSL_CTX_set0_chain(SSL_CTX *ctx, STACK_OF(X509) *sk); int SSL_CTX_set1_chain(SSL_CTX *ctx, STACK_OF(X509) *sk); - int SSL_CTX_add0_chain_cert(SSL_CTX *ctx, STACK_OF(X509) *x509); + int SSL_CTX_add0_chain_cert(SSL_CTX *ctx, X509 *x509); int SSL_CTX_add1_chain_cert(SSL_CTX *ctx, X509 *x509); + int SSL_CTX_get0_chain_certs(SSL_CTX *ctx, STACK_OF(X509) **sk); + int SSL_CTX_clear_chain_certs(SSL_CTX *ctx); int SSL_set0_chain(SSL *ssl, STACK_OF(X509) *sk); int SSL_set1_chain(SSL *ssl, STACK_OF(X509) *sk); - int SSL_add0_chain_cert(SSL *ssl, STACK_OF(X509) *x509); + int SSL_add0_chain_cert(SSL *ssl, X509 *x509); int SSL_add1_chain_cert(SSL *ssl, X509 *x509); + int SSL_get0_chain_certs(SSL *ssl, STACK_OF(X509) **sk); + int SSL_clear_chain_certs(SSL *ssl); int SSL_CTX_build_cert_chain(SSL_CTX *ctx, flags); - int SSL_build_cert_chain(SSL_CTX *ctx, flags); + int SSL_build_cert_chain(SSL *ssl, flags); + + int SSL_CTX_select_current_cert(SSL_CTX *ctx, X509 *x509); + int SSL_select_current_cert(SSL *ssl, X509 *x509); =head1 DESCRIPTION SSL_CTX_set0_chain() and SSL_CTX_set1_chain() set the certificate chain -associated with the current certificate of B to B. If B is set -to B any existing chain is cleared. +associated with the current certificate of B to B. SSL_CTX_add0_chain_cert() and SSL_CTX_add1_chain_cert() append the single certificate B to the chain associated with the current certificate of B. +SSL_CTX_get0_chain_certs() retrieves the chain associated with the current +certificate of B. + +SSL_CTX_clear_chain_certs() clears any existing chain associated with the +current certificate of B. (This is implemented by calling +SSL_CTX_set0_chain() with B set to B). + SSL_CTX_build_cert_chain() builds the certificate chain for B using the chain store. Any existing chain certificates are used as untrusted CAs. If the function is successful the built chain will replace any existing chain. The B parameter can be set to B to omit the root CA from the built chain. -SSL_set0_chain(), SSL_set1_chain(), SSL_add0_chain_cert(), SSL_add0_chain_cert() -and SSL_build_cert_chain() are similar except they apply to SSL structure -B. +Each of these functions operates on the I end entity +(i.e. server or client) certificate. This is the last certificate loaded or +selected on the corresponding B structure. + +SSL_CTX_select_current_cert() selects B as the current end entity +certificate, but only if B has already been loaded into B using a +function such as SSL_CTX_use_certificate(). + +SSL_set0_chain(), SSL_set1_chain(), SSL_add0_chain_cert(), +SSL_add1_chain_cert(), SSL_get0_chain_certs(), SSL_clear_chain_certs(), +SSL_build_cert_chain() and SSL_select_current_cert() are similar except they +apply to SSL structure B. All these functions are implemented as macros. Those containing a B<1> increment the reference count of the supplied certificate or chain so it must @@ -56,10 +80,6 @@ The chains associate with an SSL_CTX structure are copied to any SSL structures when SSL_new() is called. SSL structures will not be affected by any chains subsequently changed in the parent SSL_CTX. -Each of these functions operates on the I end entity -(i.e. server or client) certificate. This is the last certificate set -on the corresponding B or B structure. - One chain can be set for each key type supported by a server. So, for example, an RSA and a DSA certificate can (and often will) have different chains. diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c i
Re: [openssl.org #3165] tru64-alpha-cc compatibility fixes
On Sun, 2013 Nov 10 23:01+0100, Andy Polyakov via RT wrote: > > If 'perl | cc -E - > a.s' was used, then consequent 'cc -c a.s' was > observing truncated file, as if buffer was not flushed in time. Ah, strange. Maybe a bug in their early implementation of support for preprocessing stdin. (I think it should work if it used a temporary file instead of a pipe/stdin...) > :-( indeed, worked for me. It's sometimes disadvantageous to > have newest gear, huh? Changing .FRame to .frame should work, please > verify that there are no other problems. Old systems make for good corner cases! New systems just try to be like Linux+GCC. Yes, s/.FRame/.frame/ on the generated .s file allows it to assemble correctly, and the full test suite then passes without error nor "Unaligned access" messages. (This is with git d0f1d924 plus my patch.) --Daniel -- Daniel Richard G. || sk...@iskunk.org My ASCII-art .sig got a bad case of Times New Roman. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org
Re: [openssl.org #3165] tru64-alpha-cc compatibility fixes
On Sun, 2013 Nov 10 23:01+0100, Andy Polyakov via RT wrote: > > If 'perl | cc -E - > a.s' was used, then consequent 'cc -c a.s' was > observing truncated file, as if buffer was not flushed in time. Ah, strange. Maybe a bug in their early implementation of support for preprocessing stdin. (I think it should work if it used a temporary file instead of a pipe/stdin...) > :-( indeed, worked for me. It's sometimes disadvantageous to > have newest gear, huh? Changing .FRame to .frame should work, please > verify that there are no other problems. Old systems make for good corner cases! New systems just try to be like Linux+GCC. Yes, s/.FRame/.frame/ on the generated .s file allows it to assemble correctly, and the full test suite then passes without error nor "Unaligned access" messages. (This is with git d0f1d924 plus my patch.) --Daniel -- Daniel Richard G. || sk...@iskunk.org My ASCII-art .sig got a bad case of Times New Roman. __ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org