-
Notifications
You must be signed in to change notification settings - Fork 647
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prevent the ability to modify messages on the wire or craft a message #3323
Comments
I would prefer this was first a sample using mutators or behaviors so we can experiment with idea in a low risk and flexible way |
@SimonCropp Spiking it is way to test if our pipeline even allows signing on the areas that are required. A set of requirements should be defined to test like:
I also added an additional reason for this issue in the description:
|
Is it fair to say that this item is both about providing message integrity as well as protection against a replay attack ? Maybe these two security properties should be covered by separate issues? |
@MarcinHoppe Replay attack is different but for sure about integrity. |
Extended the description with a possible implementation after a discussion with @justabitofcode and @WojcikMike |
Mention of copy-paste made me think of a replay attack, but I see this is more about message integrity & authenticity. The possible implementation notes should probably also mentioned crypto key management. Also, there are known practical attacks against MD5 and SHA1. If we want to use them to authenticate messages (as opposed to adding integrity protection only), we should look at SHA2 family of functions and HMACs built upon them. |
@MarcinHoppe Nice that you mention the crypto key management as the idea as to rely on the encryption service for this and one of the weaknesses of it is that it currently does not allow rolling keys without restarting the instance. For sure, the hashing algorithm should be selectable and be current. 👍 |
@ramonsmits is there a separate issue to allow key rotation without endpoint restart? |
@MarcinHoppe it is here: #3317 |
@WojcikMike thanks, looks good. |
This can be added in a minor release, removing the v6 label |
We currently do have a feature that prevents message tampering. This results in being able to forge a message. In normal circumstances this probably isn't a big issue but when this message has encrypted data in it than the probability to prevent increases.
The current encryption might also give a false level of trust as the customer might expect that encrypted data is tamper proof.
It is possible to copy/paste property values somewhere else in the message or in a completely different message and this also applies to encrypted property values which might be something that we want to detect.
We can detect this by singing the message and make this signature specific for this message ID and encrypting this signature so that we can check this signature when the message is processed.
Possible solution
Features
Where to store hashes?
Sending
Receiving
Questions / Remarks
Example
The following is an example of the signature attribute and the ContentHash header value:
The text was updated successfully, but these errors were encountered: