(no title)
nv-vn | 4 years ago
b : lb d : ld
-------------------------------
a := b :>> c := d : max lb ld
Otherwise, it seems like you could leak info by just assigning two variables, where one is always public. E.g. x = user.firstName;
y = random()
would be "safe."(It's very likely that I'm missing something here)
mathetic|4 years ago
Now let's say I have a conditional expression `private : 999`.
The following program typechecks according to the rest of the restrictions. In particular, `999` from `private` is less than or equal to the `999` from the sequenced command.
But we just leaked data because if the value of `a` (which we can observe) is not `b`, then we know that `private` was 0 (aka. false). This should never happen because `a` is public and `private` is private.The intuition here is that the lower the security level a command has the more public the conditional has to be. Otherwise, private data would *influence* public data which we can then observe to deduce something about the private data.
> it seems like you could leak info by just assigning two variables, where one is always public.
I didn't quite follow this bit. But if you elaborate, I'm happy to discuss.
nv-vn|4 years ago
Does that sound vaguely correct?
Btw thanks for clarifying