[ 
https://issues.apache.org/jira/browse/HDFS-6391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14039459#comment-14039459
 ] 

Andrew Wang commented on HDFS-6391:
-----------------------------------

I'm starting on this JIRA, and was wondering about how we should handle 
compatibility with regard to cipher types. I'm planning to add a 
FileEncryptionInfo class, which will incorporate a key, iv, and CipherType 
enum. Currently, our only CipherType is AES/CTR/NoPadding, but there were some 
plans in the works to use other CipherTypes as well.

The question here relates to CryptoCodec. Right now, the factory is determined 
based on the client's conf, but for reading an encrypted file, it should be 
determined by the CipherType of the file. On the read-side, we also need to 
pass the CipherType from the client to the NN so it's stored correctly.

[~hitliuyi], any thoughts on the best way of doing this? From my initial 
investigation, it looks like the strings used by javax.crypto.Cipher are the 
standard way of specifying a cipher type. If I provided a mapping from 
CipherType -> javax.crypto.Cipher-style string, would that be sufficient?

I'm also wondering about how the client and server will agree on which cipher 
to use. The NN needs to interpret the CipherType to know what KeyProvider 
operations are required. I think it could go something like this on the 
write-side:

* Client specifies the list of CipherTypes it supports
* NN filters the list by which it supports
* Client chooses a CipherType, or errors out saying "desired CipherType not 
supported"
* Client specifies its chosen CipherType with future commands.

Read-side seems pretty trivial:

* Client opens a file
* NN returns the CipherType for the file
* Client either has support for it and reads it, or can't

Any thoughts here?

> Get the Key/IV from the NameNode for encrypted files in DFSClient
> -----------------------------------------------------------------
>
>                 Key: HDFS-6391
>                 URL: https://issues.apache.org/jira/browse/HDFS-6391
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: namenode, security
>            Reporter: Alejandro Abdelnur
>            Assignee: Andrew Wang
>         Attachments: HDFS-6391.1.patch
>
>
> When creating/opening and encrypted file, the DFSClient should get the 
> encryption key material and the IV for the file in the create/open RPC call.
> HDFS admin users would never get key material/IV on encrypted files 
> create/open.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to