[HN Gopher] Show HN: An Elliptic Curve-Based Secure Chat, Writte...
___________________________________________________________________
Show HN: An Elliptic Curve-Based Secure Chat, Written Using Rust
and Protobuf
This is a project I made to learn more about crypto. I've also
written a [post](https://vaktibabat.github.io/posts/ecurvechat/)
that explains all the crypto concepts and algorithms used in the
project, and how I implemented them. I'd be very glad for any
feedback about both the code and the post :)
Author : vaktibabat
Score : 54 points
Date : 2024-09-19 18:22 UTC (1 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| woodruffw wrote:
| First of all, nice work! Learning by doing is great, especially
| with cryptography.
|
| Some observations from a very quick scan:
|
| 1. You should include a disclaimer somewhere in the repo that
| this is an educational project, not something people should
| seriously use. This is the "escape hatch" for the "don't roll
| your own crypto" rule.
|
| 2. You're rolling your own curve math, including ECDH and ECDSA.
| These are not easy to get right; in particular, it looks like
| you've got a classic "attacker can send you a point not on the
| curve" bug here[1], unless I'm missing where you validate the
| other party's point.
|
| 3. Your protocol seems to allow variance over the curve
| parameters, which is notoriously dangerous (and is why X.509 and
| similar protocols prefer "named curve" sets over explicit
| parameter sets).
|
| [1]:
| https://github.com/vaktibabat/ecurvechat/blob/4a1d91bd02bbc8...
| 0x457 wrote:
| I think size of the readme covers #1
| vaktibabat wrote:
| Thank you! I'll try fixing these.
| GraphEnthusiast wrote:
| Implementing an Elliptic curve correctly is tricky, and in your
| post a quick CTRL-F didn't turn up the phrases "constant time" or
| "side channel". A good next step would be to look up various side
| channel attacks on elliptic curve implementations and work
| through mitigating them.
|
| Also, your README needs a disclaimer, like others have said.
| vaktibabat wrote:
| Thanks! Mitigating side channel attacks does seem like an
| interesting next step, I'll try doing it.
| simonjgreen wrote:
| I love the learning project :)
|
| Now invite people to break it
| vaktibabat wrote:
| Thank you :)
___________________________________________________________________
(page generated 2024-09-20 23:02 UTC)