GNUnet Messenger API: March 2025

Hello again,

since last month I tried to optimize the mechanism of forward secrecy further and indeed I was able to reduce the amount of messages required for a whole key exchange in a new epoch. So rather than scaling N scare if N is the amount of epoch members, it seems to scale linear now. That is quite an improvement but there’s still room for more adjustments.

For example I realized recently that the current implementation is now providing perfect forward secrecy. That means if your long-term private key (the identity key to sign messages) gets compromised, an attacker might still be able to access messages from older epochs by request its keys from others. So to mitigate this, it will require changes that restrict requests of older epoch keys much more. Additionally deriving epoch keys via KDF could be adjusted to make it much more difficult to brute-force any epoch key from messages with HMAC using keys from the KDF.

Once that’s done, there’s still work to do for allowing accounts in libgnunetchat to use the shared anonymous key as long-term key. For this there need to be implemented some exceptional management of key exchange messages. So users with this anonymous key try to avoid making requests with their compromisable signature and instead rely on pre-exchanged symmetric keys from older key exchanges if possible. Additionally since epoch keys need further key management on account basis anyway, the messenger service could start using unique asymmetric keys for signatures per room basis signed by their long-term key. That way less signatures would be made using the same key, replacing keys would cause less friction internally and the private key from the identity service would not need to be shared with the client-side of the messenger service.

All of this could be merged with planned changes in the account management in libgnunetchat. Because I want to separate identity keypairs from the actual accounts. So you can have more private keys in the identity service than accounts and you can have more accounts than unique private keys. Accounts will just refer to a private key if desired. Which will ultimatively allow using attributes via reclaimID and GNS entries. However a lot of the internal details which require all of this currently, could be simplified.

So far about all of my future ideas. There has also been a new release of GNUnet 0.24.0 and libgnunetchat 0.5.3 to stay compatible. Meson is getting the default build system for GNUnet. There’s still ongoing work in the new core layer of GNUnet and NLnet announced to fund efforts bringing GNUnet on Android which includes the goal to port the GNUnet messenger application to this platform. Which features will be supported exactly across all different applications and front-ends is still an open question. But it would be neat to see these efforts speed up bringing GNUnet in the palm of your hands.

Kind regards,
Jacki

Read original article

Popular posts from this blog

GNUnet Messenger API: March

GNUnet Messenger API: February

GNUnet Messenger API: September