On 03-09-17 20:20, Jurrie Overgoor wrote:
We are using Apache VFS, which in turn uses JSCH to connect to SFTP.
Recently, my team and I stumbled upon a bug in JSCH which presents
itself when using Java 8 and SHA1withDSA. We are using JSCH 0.1.53,
but I tried 0.1.54 and the bug is still present. Other users appear to
be hitting this bug as well: https://sourceforge.net/p/jsch/bugs/111/
I traced the problem down to SignatureDSA.java, which does conversion
from ASN.1 to mpint and from mpint to ASN.1. When verifying a hash, a
conversion from mpint to ASN.1 is done, just before the hash is passed
on to Java to actually do the verification. In the conversion from
mpint to ASN.1 I believe things are not done correctly. Leading 0x00
bytes are not stripped from the ASN.1 INTEGER as they should be.
Please note that Java 6 allows leading 0s, but Java 7 and 8 do not.
So, an IOException is thrown with message "Invalid encoding: redundant
leading 0s".
So, when either r or s are integers that can be represented in less
than 20 bytes, we see redundant leading 0s. Sadly, r and s are
dependent on a random value k. So I whipped up a quick test that does
signatureDSA.sign() and signatureDSA.verify() over and over again. I
can reproduce the problem this way. I can not seem to trigger an error
when using SignatureRSA (representing SHA1withRSA) or SignatureECDSA
(representing SHA256withECDSA).
Now, as I'm by no means an expert on this matter, I'd like to ask this
list if my observations are correct :)
I made changes to SignatureDSA and am currently testing. Things seem
to work fine now. I can try to create a patch if it would be handy?
Hello everyone,
My alternative implementation of SignatureDSA.java is available as a
Maven artifact. It's available at https://github.com/Jurrie/jsch-111-bugfix
Please let me know if it helped you, or if something is wrong.
With kind regards,
Jurrie
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
JSch-users mailing list
JSch-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jsch-users