With EFS, we know that a symmetric key, File Encryption Key (FEK), is used for encrypting files. The FEK is then protected by encrypting it with the public key of the user that can be recovered by decrypting with their corresponding private key. The private key is again encrypted with the user's log-in password. My argument is, if the FEK is ultimately being protected using the user's log-in password, then the use of public key encryption is a redundant step which doesn't improve the security of the File Encryption Key (FEK) at all. Am I right or I'm missing a point?
-
1$\begingroup$ If you're talking about the windows software, also note that it supports smart cards as well and symmetric crypto primitives are much rarer on them than asymmetric primitives. $\endgroup$– SEJPMDec 14, 2019 at 14:37
-
$\begingroup$ @SEJPM, Thanks for your comment. I know the points that you've made. So, my question is why should we do something if that doesn't improve security. $\endgroup$– NewbieDec 15, 2019 at 10:13
1 Answer
[Or] I'm missing a point?
Actually there are at least two reasons why you would want to involve public:
First using public key allows you to rather precisely map permissions into keys. So suppose you create a file, how do you get the new file key to everyone who should have access to it? Public key encryption solves this readily. Or suppose you remove access to a file for somebody, you obviously need to pick a new file encryption key, so that that person doesn't have access anymore even if they accessed in the past. How do you communicate the new key? Public key encryption.
Second reason is mostly historic. EFS was mostly designed for corporations and governmental use. They already had smart cards deployed or saw the obvious usefulness of smart cards. But these smart cards typically don't support symmetric key encryption, but only public key encryption, so if you wanted to integrate smart card based authentication into the process, you'd have to involve public key encryption at some point.
-
$\begingroup$ Thanks for your reply. With regard to the first point, EFS is used for keeping the data safe from offline attacks; not to protect it when it is in transit (being shared). For sharing we have different schemes. There may be a historic reason but if you could provide a reference then it would be more convincing. I appreciate your time and effort. $\endgroup$– NewbieJan 21, 2020 at 6:10