this post was submitted on 25 Jan 2022
2 points (100.0% liked)

Privacy

31938 readers
809 users here now

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

Related communities

Chat rooms

much thanks to @gary_host_laptop for the logo design :)

founded 5 years ago
MODERATORS
 

There is this tool called age written in go and a fully compatible Rust implementation called rage. They promise to be a simple tool for encrypting files and other things.

It only does encryption, using public key cryptography (Curve 25519 or SSH keys) or password based symmetric encryption. (Please excuse me glossing over some details here)

It only encrypts things, no signatures beyond AEAD involved. It aims to be minimalistic and do just one thing reasonably well instead of being a mediocre multi tool. It doesn't aim to be a full replacement for things like OpenPGP.

AFAICT there hasn't been a proper security audit yet. There seem to be some issues with the design as pointed out here which don't look like critical flaws to me, but then again I'm not a cryptography expert.

Some of the questions I want to throw into the discussions are:

  • Is it any good?
  • In which situation would you use it?
  • What are some alternatives that do it differently or maybe even better and why is that?

Bonus question: Is there a similar tool that uses an audited library like libsodium, and if not, would it be worth developing one?

you are viewing a single comment's thread
view the rest of the comments
[–] X_Cli@lemmy.ml 1 points 2 years ago

Filippo Valsorda, the author of Age, is a qualified cryptographer and I can vouch for them, being myself an applied cryptographer. And many of my cryptographer friends do as well.

Age seems good to me BUT. I don't like streaming, and the article that you cite is on point. To me, streaming is unwise precisely because you can have truncation attacks. Or even length extension attacks. One may counter them using counters, but you will need a temporary storage until you know if the input is complete or not. And this defeats streaming.

Your application might be OK with truncation. That's for you to determine. Which is hard. If you can't decide, then you shoud stay away from streaming.

I wrote an article on this myself, a few weeks ago. I use that approach in production to secure some data that may be sent to me anonymously. It was reviewed by some cryptographers in my circles but I do not claim that it is a trusted library.