View Issue Details

IDProjectCategoryView StatusLast Update
0008630GNUnetcore servicepublic2024-11-14 09:46
Reporterschanzen Assigned Toch3  
PrioritynormalSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Target Version0.24.0 
Summary0008630: Change symmetric encryption scheme to XChaCha20-Poly1305
DescriptionCurrently, we as using a AES-Twofish double encryption and HMAC.
For performance and security reasons, we should move to something more simple and standard.

After discussions we settled on XChaCha20-Poly1305 that is offered through a current dependency (libsodium).

I have reviewed the code in gnunet-service-core_kx.c and the changes are rather straight-forward.
I suggest that the implementation for both encryption schemes should live (teporarily) in the same source file and we guard the new implementation with a define. E.g.

#if CONG_CRYPTO_ENABLED
 // Do XChaCha20-Poly1305 encryption/decryption here
#else
 // Do current encryption/decryption here
#endif

I think should should possible with a couple of such #ifdefs.

This is, of course, a change that very much breaks the P2P protocol. So the above approach is important unless we want to keep this in a branch for a long time. Also this means this requires a "major" version bump.
TagsNo tags attached.

Relationships

child of 0008596 assignedch3 CONG meta issue 

Activities

schanzen

2024-03-12 12:45

administrator   ~0021857

Assigned to ch3 for now, but I can help with implementation.

schanzen

2024-03-12 12:49

administrator   ~0021858

We should also consider first testing the conceptual changes to CONG separately from the crypto.

schanzen

2024-03-12 12:55

administrator   ~0021859

We also could include authenticated data in the tag (e.g. the GNUNET_MessageHeader or any other metadata we will include in the EncryptedMessage struct)

schanzen

2024-03-12 14:04

administrator   ~0021865

Draft implementation in dev/schanzen/core_xchacha

Issue History

Date Modified Username Field Change
2024-03-12 12:44 schanzen New Issue
2024-03-12 12:44 schanzen Status new => assigned
2024-03-12 12:44 schanzen Assigned To => ch3
2024-03-12 12:44 schanzen Issue generated from: 0008597
2024-03-12 12:45 schanzen Note Added: 0021857
2024-03-12 12:49 schanzen Note Added: 0021858
2024-03-12 12:55 schanzen Note Added: 0021859
2024-03-12 14:04 schanzen Note Added: 0021865
2024-03-12 23:16 schanzen Relationship added child of 0008596
2024-08-26 12:24 schanzen Target Version 0.22.0 => 0.23.0
2024-11-14 09:46 schanzen Target Version 0.23.0 => 0.24.0