implement stealth ack objects #1062
No reviewers
Labels
No Label
bug
build
dependencies
developers
documentation
duplicate
enhancement
formatting
invalid
legal
mobile
obsolete
packaging
performance
protocol
question
refactoring
regression
security
test
translation
usability
wontfix
No Milestone
No project
No Assignees
1 Participants
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Bitmessage/PyBitmessage-2024-12-09#1062
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "stealth-ack"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
By default, message ACK objects are generated as 32-byte random strings with a message header attached. Because of this, they are easily identified on the network (they're the only msg objects of size 54).
This PR implements some new types of ACK objects that blend in more realistically with the network traffic, and enables selection via the new configuration option ackstealthlevel.
Three stealth levels are defined currently:
0 - the default format described above
1 - a getpubkey request for a randomly generated hash
2 - a standard formatted message encrypted to a randomly generated key
To support objects of types other than 2 (msg), the internal format of the ackdata has been changed to also include the type header (objtype/version/stream). The startup routine has been updated to convert the legacy (headerless) format to the new format automatically, to continue tracking of any unacknowledged messages after upgrade.
Any comments and feedback will be appreciated.
Tested on Linux, including old/new ACK conversion, excluding SMTP gateway.
Thank you, all fine.