-
Notifications
You must be signed in to change notification settings - Fork 164
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
[WIP] Securing EVE Logs #4435
base: master
Are you sure you want to change the base?
[WIP] Securing EVE Logs #4435
Conversation
d022c29
to
dceef89
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The forward chaining to generate a key for block N+1 from content in block N is secure and simple. But it has an issue if a block is missing (for instance due to running out of space for logs while being disconnected). In such a case it would be nice if an admin could validate that it is ok that 1 (or k) blocks where dropped and still have some forward chaining.
Would we get sufficient forward chaining if we include the block number (N) in how the key is generated? If so, then the verifier can detect that a block N+1 is missing by looking at the sequence numbers, but they calculate the key used to verify block N+2 and following.
I'm not aware of any cryptographic schema that allows that, detecting tampering with the order or breaking the chain in general relies on lost information. If a block is missing, there is nothing to tell us it happened because someone wanted to cover their tracks or disk was full. If we want have the ability to skip logs, then we have to define triggers for certain events that might cause log related failure and then reset the chain from that point on (start a new independently verifiable chain) and then somehow securely tell the verifier this is a new chain, this can quickly lead to a lot of complications. I'm aware of some cryptographic schemas called seekable key generators which in theory should let us verify each log entry individually, and offers forward secure, but not protection against order or deleting logs from the middle of the chain. Here the aggregated MAC of log N is based HMAC of content of N-1 past logs. So if just one block is missing, we can't verify the final aggregated MAC. To reduce the issues of missing logs, I'm aiming to add the MAC and chaining related data in the last stage (in
As far as I'm aware, no. We can achieve forward security without relying on chaining logs (which we do in this design), but not the log order or intact log chain, as I mentioned for that latter we need to rely on the information that if lost, is cryptographically detectable. Also attacker can modify and lie about everything, including the block number in the logs. I will add documents about the whole design in the next commits to make it more clear, and we can discuss this in the EVE Community meeting next week. |
dceef89
to
1056713
Compare
b4eb86e
to
ca30855
Compare
ca30855
to
3ceee84
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4435 +/- ##
=======================================
Coverage 20.93% 20.93%
=======================================
Files 13 13
Lines 2895 2895
=======================================
Hits 606 606
Misses 2163 2163
Partials 126 126 ☔ View full report in Codecov by Sentry. |
b6c0d2b
to
05b0985
Compare
Add implementation "Forward-secure sequential aggregate authentication." Signed-off-by: Shahriyar Jalayeri <[email protected]>
Update the Seal/Unseal disk key functions to be generic and accept TPM NV indexes as parameters. These functions are not bound to just store and retrive disk keys, and this modification makes it obvious. Signed-off-by: Shahriyar Jalayeri <[email protected]>
24b424b
to
4f21372
Compare
secure-logs : add implementation of FssAgg 7151bd4
Add implementation "Forward-secure sequential aggregate authentication.", this is testable using shjala/adam@478cd64
evetpm : update seal/unseal functions signature 4f21372
Update the Seal/Unseal disk key functions to be generic and accept TPM NV
indexes as parameters. These functions are not bound to just store and
retrieve disk keys, and this modification makes it obvious.
TODO :