Hi,all 

I just want to know in which cases we would probablely issue exponent 3 
certs. 

Thank you!

On Mon, 18 Sep 2006 01:32:39 +0200, Ives Steglich wrote
> Hi all,
> 
> recently there have been some papers and sample exploit code 
> announced which can succesfull attack weak public exponent ca-keys.
> 
> since openca and openxpki are using the openssl libraries, which are 
> obvoisly also have a faulty implementation please check the 
> following links and read carefully:
> 
>       http://www.openssl.org/news/secadv_20060905.txt
>       http://www.imc.org/ietf-openpgp/mail-archive/msg14307.html
>       
> 
> if you have a proper workflow and checks for your ca-keys there 
> shouldn't be any real issues with that. but just in case... 
> especially public exponents of 3 are an real issue...
> 
> other x.509 implementations may be also effected. fireforx for 
> example has also released a new release to tackle this issue...
> 
> kind regards
> ives
> 
> http://www.openssl.org/news/secadv_20060905.txt
> 
> OpenSSL Security Advisory [5th September 2006]
> 
> RSA Signature Forgery (CVE-2006-4339)
> =====================================
> 
> Vulnerability
> -------------
> 
> Daniel Bleichenbacher recently described an attack on PKCS #1 v1.5
> signatures. If an RSA key with exponent 3 is used it may be possible
> to forge a PKCS #1 v1.5 signature signed by that key. Implementations
> may incorrectly verify the certificate if they are not checking for
> excess data in the RSA exponentiation result of the signature.
> 
> Since there are CAs using exponent 3 in wide use, and PKCS #1 v1.5 is
> used in X.509 certificates, all software that uses OpenSSL to verify
> 
> X.509 certificates is potentially vulnerable, as well as any other 
> use of PKCS #1 v1.5. This includes software that uses OpenSSL for 
> SSL or TLS.
> 
> OpenSSL versions up to 0.9.7j and 0.9.8b are affected.
> 
> The Common Vulnerabilities and Exposures project (cve.mitre.org) has
> assigned the name CAN-2006-4339 to this issue.
> 
> Recommendations
> ---------------
> 
> There are multiple ways to avoid this vulnerability.  Any one of the
> following measures is sufficient.
> 
> 1.  Upgrade the OpenSSL server software.
> 
>     The vulnerability is resolved in the following versions of OpenSSL:
> 
>      - in the 0.9.7 branch, version 0.9.7k (or later);
>      - in the 0.9.8 branch, version 0.9.8c (or later).
> 
>     OpenSSL 0.9.8c and OpenSSL 0.9.7k are available for download via
>     HTTP and FTP from the following master locations (you can find 
> the    various FTP mirrors under 
> http://www.openssl.org/source/mirror.html):
> 
>         o http://www.openssl.org/source/
>         o ftp://ftp.openssl.org/source/
> 
>     The distribution file names are:
> 
>         o openssl-0.9.8c.tar.gz
>           MD5 checksum: 78454bec556bcb4c45129428a766c886
>           SHA1 checksum: d0798e5c7c4509d96224136198fa44f7f90e001d
> 
>         o openssl-0.9.7k.tar.gz
>           MD5 checksum: be6bba1d67b26eabb48cf1774925416f
>           SHA1 checksum: 90056b8f5e518edc9f74f66784fbdcfd9b784dd2
> 
>     The checksums were calculated using the following commands:
> 
>         openssl md5 openssl-0.9*.tar.gz
>         openssl sha1 openssl-0.9*.tar.gz
> 
> 2.  If this version upgrade is not an option at the present time,
>     alternatively the following patch may be applied to the OpenSSL
>     source code to resolve the problem.  The patch is compatible with
>     the 0.9.6, 0.9.7, 0.9.8, and 0.9.9 branches of OpenSSL.
> 
>         o http://www.openssl.org/news/patch-CVE-2006-4339.txt
> 
> Whether you choose to upgrade to a new version or to apply the patch,
> make sure to recompile any applications statically linked to OpenSSL
> libraries.
> 
> Acknowledgements
> ----------------
> 
> The OpenSSL team thank Philip Mackenzie, Marius Schilder, Jason 
> Waddle and Ben Laurie, of Google Security, who successfully forged various
> certificates, showing OpenSSL was vulnerable, and provided the patch
> to fix the problems.
> 
> References
> ----------
> 
> http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-4339
> http://www.imc.org/ietf-openpgp/mail-archive/msg14307.html
> 
> URL for this Security Advisory:
> http://www.openssl.org/news/secadv_20060905.txt
> 
> http://www.imc.org/ietf-openpgp/mail-archive/msg14307.html
> 
> At the evening rump session at Crypto last week, Daniel 
> Bleichenbacher gave a talk showing how it is possible under some 
> circumstances to easily forge an RSA signature, so easily that it 
> could almost be done with just pencil and paper.  This depends on an 
> implementation error, a failure to check a certain condition while 
> verifying the RSA signature. Daniel found at least one 
> implementation (I think it was some Java crypto code, not OpenPGP 
> related) which had this flaw.  I wanted to report on his result here 
> so that other OpenPGP implementers can make sure they are not 
> vulnerable.  Be aware that my notes were hurried as Daniel had only 
> a few minutes to talk.
> 
> The attack is only good against keys with exponent of 3.  There are
> not too many of these around any more but you still run into them
> occasionally.  It depends on an error in verifying the PKCS-1 padding
> of the signed hash.
> 
> An RSA signature is created in several steps.  First the data to be
> signed is hashed.  Then the hash gets a special string of bytes in ASN.1
> format prepended, which indicates what hash algorithm is used.  This 
> data is then PKCS-1 padded to be the width of the RSA modulus.  The 
> PKCS-1 padding consists of a byte of 0, then 1, then a string of 
> 0xFF bytes, then a byte of zero, then the "payload" which is the 
> hash+ASN.1 data. Graphically:
> 
> 00 01 FF FF FF ... FF 00  ASN.1  HASH
> 
> The signature verifier first applies the RSA public exponent to 
> reveal this PKCS-1 padded data, checks and removes the PKCS-1 
> padding, then compares the hash with its own hash value computed 
> over the signed data.
> 
> The error that Bleichenbacher exploits is if the implementation does
> not check that the hash+ASN.1 data is right-justified within the 
> PKCS-1 padding.  Some implementations apparently remove the PKCS-1 
> padding by looking for the high bytes of 0 and 1, then the 0xFF 
> bytes, then the zero byte; and then they start parsing the ASN.1 
> data and hash. The ASN.1 data encodes the length of the hash within 
> it, so this tells them how big the hash value is.  These broken 
> implementations go ahead and use the hash, without verifying that 
> there is no more data after it. Failing to add this extra check 
> makes implementations vulnerable to a signature forgery, as follows.
> 
> Daniel forges the RSA signature for an exponent of 3 by constructing 
> a value which is a perfect cube.  Then he can use its cube root as 
> the RSA signature.  He starts by putting the ASN.1+hash in the 
> middle of the data field instead of at the right side as it should 
> be.  Graphically:
> 
> 00 01 FF FF ... FF 00  ASN.1  HASH  GARBAGE
> 
> This gives him complete freedom to put anything he wants to the right
> of the hash.  This gives him enough flexibility that he can arrange for
> the value to be a perfect cube.
> 
> In more detail, let D represent the numeric value of the 00 byte, the
> ASN.1 data, and the hash, considered as a byte string.  In the case
> of SHA-1 this will be 36 bytes or 288 bits long.  Define N as 2^288-
> D. We will assume that N is a multiple of 3, which can easily be arranged
> by slightly tweaking the message if neccessary.
> 
> Bleichenbacher uses an example of a 3072 bit key, and he will 
> position the hash 2072 bits over from the right.  This improperly 
> padded version can be expressed numerically as 2^3057 - 2^2360 + D * 
> 2^2072 + garbage. This is equivalent to 2^3057 - N*2^2072 + garbage. 
>  Then, it turns out that a cube root of this is simply 2^1019 - (N * 
> 2^34 / 3), and that is a value which broken implementations accept 
> as an RSA signature.
> 
> You can cube this mentally, remembering that the cube of (A-B) is 
> A^3 - 3(A^2)B + 3A(B^2) - B^3.  Applying that rule gives 2^3057 - N*2^2072
> + (N^2 * 2^1087 / 3) - (N^3 * 2^102 / 27), and this fits the pattern
> above of 2^3057 - N*2^2072 + garbage.  This is what Daniel means when
> he says that this attack is simple enough that it could be carried 
> out by pencil and paper (except for the hash calculation itself).
> 
> Implementors should review their RSA signature verification 
> carefully to make sure that they are not being sloppy here.  
> Remember the maxim that in cryptography, verification checks should 
> err on the side of thoroughness. This is no place for laxity or 
permissiveness.
> 
> Daniel also recommends that people stop using RSA keys with exponents
> of 3.  Even if your own implementation is not vulnerable to this 
> attack, there's no telling what the other guy's code may do.  And he 
> is the one relying on your signature.
> 
> Hal Finney
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your 
> job easier Download IBM WebSphere Application Server v.1.0.1 based 
> on Apache Geronimo http://sel.as-us.falkag.net/sel?
cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> OpenCA-Devel mailing list
> OpenCA-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openca-devel


*-----------------------------------------------------------------*
|FAN,HuaXiang                    Building: 203 Computing Centre   |
|Computing Centre                     Tel: (+86) 10 8823 6837     |
|Institute of High Energy Physics     MSN: [EMAIL PROTECTED]    |
|19B Yuquan Road                    Email: [EMAIL PROTECTED]|
|P.O. Box 918-7                                                   |
|Beijing 100049,China                                             |
*-----------------------


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
OpenCA-Devel mailing list
OpenCA-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openca-devel

Reply via email to