Bitmessage / PyBitmessage

Reference client for Bitmessage: a P2P encrypted decentralised communication protocol:
https://bitmessage.org/wiki/Main_Page
Other
2.83k stars 577 forks source link

Move from SHA1 to SHA256 #953

Open kewde opened 7 years ago

kewde commented 7 years ago

Recently the team at Google have found the first SHA1 collision, the ECDSA signatures use SHA1 and most of the code for a switch to SHA256 is in the comments already.

https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html

PeterSurda commented 7 years ago

See here: https://www.reddit.com/r/bitmessage/comments/5vt3la/sha1_and_bitmessage/

martinvahi commented 7 years ago

A few related links:

http://www.shattered.io/

https://www.fossil-scm.org/fossil/doc/trunk/www/hashpolicy.wiki

https://github.com/cr-marcstevens/sha1collisiondetection

g1itch commented 7 years ago

Wouldn't this potentially make it possible to use the bitcoin ASICs to spam bitmessage?

kewde commented 7 years ago

@g1itch I doubt it. The ASICs operate under a very specific format that I doubt is applicable to BitMessage.

PeterSurda commented 7 years ago

@g1itch Bitmessage uses double SHA512 for PoW, so no. The SHA1 -> SHA256 migration is only for sender authentication.

kewde commented 7 years ago

Has there been any progress on this issue?

martinvahi commented 7 years ago

Wouldn't this potentially make it possible to use the bitcoin ASICs to spam bitmessage?

The ASICs operate under a very specific format that I doubt is applicable to BitMessage.

If the ASIC's are implemented by using FPGAs, which might be the case to allow the same hardware, server park, to be reconfigured and reused for mining other cryptocoins after the Bitcoin "mine" has become "depleted enough", then the switch from one hash algorithm to another is not that big of an impediment for the server park owners.

PeterSurda commented 7 years ago

@kewde You can specify that you want to send SHA256-hashed messages by specifying

digestalg = sha256

in the bitmessagemain section of keys.dat. The other steps outlined will progress as new releases are made.

PeterSurda commented 4 years ago

This probably should be expedited, it's been waiting for too long. I've been running with digestalg = sha256 for a long time and haven't had issues.