adamreeve opened a new issue, #7373:
URL: https://github.com/apache/arrow-rs/issues/7373

   #6637 and #7111 added support for reading and writing Parquet files with 
encryption. These add `FileDecryptionProperties` and `FileEncryptionProperties` 
types that hold encryption keys as a `Vec<u8>`. Precaution should be taken to 
prevent accidentally exposing these keys and allowing unauthorised access to 
encrypted data.
   
   In the C++ Parquet implementation for example, these keys are "wiped" after 
a file is read or written, which is intended to prevent any memory access bugs 
from being able to expose these keys. But it's known that this wiping isn't 
very secure as only the first byte of the key is usually overwritten. See 
https://github.com/apache/arrow/issues/31603 and some of the discussion in 
https://github.com/apache/arrow/pull/44990.
   
   Ideally these keys should be stored in a type that automatically clears the 
whole key from memory when it is dropped, eg. something like 
https://crates.io/crates/secure-string, or a custom abstraction built on top of 
https://crates.io/crates/zeroize.
   
   We might also want to have a `Debug` implementation that doesn't show the 
key contents to avoid accidental logging of keys.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to