on protecting integrity and confidentiality of
play

On Protecting Integrity and Confidentiality of Cryptographic File - PowerPoint PPT Presentation

On Protecting Integrity and Confidentiality of Cryptographic File System for Outsourced Storage Aaram Yun , Chunhui Shi, Yongdae Kim University of Minnesota CCSW 2009, 13 Nov 2009 Cryptographic network file system How to achieve a


  1. On Protecting Integrity and Confidentiality of Cryptographic File System for Outsourced Storage Aaram Yun , Chunhui Shi, Yongdae Kim University of Minnesota CCSW 2009, 13 Nov 2009

  2. Cryptographic network file system ✤ How to achieve ✤ a network file system ✤ where data storage can be outsourced ✤ securely and efficiently?

  3. Cryptographic network file system

  4. Goals ✤ Formal security definition for cryptographic file system ✤ confidentiality & integrity against attacker which controls data storage ✤ Efficient construction ✤ better computational overhead for crypto operations

  5. Requirements ✤ Confidentiality & integrity of stored data ✤ Random access ✤ Only constant amount of trusted storage per file ✤ Small computational overhead

  6. Merkle hash tree ✤ Popular solution for protecting data integrity (3) H 1 ✤ Data blocks at leaf nodes (2) (2) (2) H 1 H 2 H 3 ✤ Tree of hash values (1) (1) (1) (1) (1) (1) (1) (1) H 1 H 2 H 3 H 4 H 5 H 6 H 7 H 8 ✤ Root should be stored securely D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 ✤ O(log n) cost for update

  7. Merkle hash tree + encryption ✤ Put encrypted data blocks at (3) H 1 leaf nodes (2) (2) (2) H 1 H 2 H 3 ✤ Blockwise encryption using CTR, for example (1) (1) (1) (1) (1) (1) (1) (1) H 1 H 2 H 3 H 4 H 5 H 6 H 7 H 8 ✤ Protects confidentiality and D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 integrity

  8. How to enhance Merkle tree? ✤ Efficiency ✤ Hash function is fast, but not too fast ✤ Speed of SHA-1 only about 1.5 times faster than AES-128, in most software environments ✤ SHA-2 slower than AES-128 in general ✤ Security ✤ Secure, but could leak information if not used carefully

  9. Formalism ✤ A file represents a sequence of file blocks D 1 D 2 ...D n ✤ Allowed operations (file encryption key is implicit) ✤ Read(k), Length(), Update(k, D), Append(D), Delete() ✤ T: trusted storage, S: data storage ✤ (t, s) ∈ T × S: state of a file, starting from a fixed initial state, updated by file operations ✤ Failed operation cannot change t, but it may change s

  10. Security definitions ✤ Integrity: infeasibility of alteration of file content ✤ Attacker is allowed to interact with the file, making file operation queries ✤ Attacker can feed arbitrary state s’ before any file operation ✤ Attacker wins if he requests read(k) and obtain D’ ≠ D k ✤ D k : k th block of the correct file content

  11. Security definitions ✤ Confidentiality ✤ infeasibility to learn anything about a file block, other than by reading the block ✤ Even when the attacker somehow coerces a valid user to read a block of plaintext or eavesdrops it, still unread blocks do not give any information

  12. Universal hash-based MACs ✤ Universal hash function : Prob[H k (x)=H k (y)]< ε for any x ≠ y ✤ Structure of H k (x) is very simple ✤ Long data block is ‘compressed’ by cheap universal hashing, then ‘encrypted’ by XORing to an enciphered nonce τ = M k, k’ (N, M) = H k (M) ⊕ E k’ (N) ✤ Attacker cannot produce a forgery: (N, M, τ ) satisfying τ = H k (M) ⊕ E k’ (N) with new (N, M) ✤ We use Poly1305-AES, but other UH-based MACs are also usable

  13. Nonce-based MAC tree construction ✤ If nonce is untampered, validity of (2) N 1 (2) T 1 data & MAC can be checked M ✤ Root nonce is securely stored (1) (1) (1) N 1 N 2 N 3 ✤ Trust is transferred down the tree (1) (1) (1) T 1 T 2 T 3 ✤ Leaf nonces are used to encrypt M M M data blocks (0) (0) (0) (0) (0) (0) (0) (0) N 1 N 2 N 3 N 4 N 5 N 6 N 7 N 8 ✤ Needs only to protect nonces & nonces can be shorter than hashes!

  14. How to encrypt using nonces ✤ Nonces at the leaf nodes, N k(0) are used for encrypting each file blocks in CTR mode, and also for authenticating file blocks ✤ If, N k(0) are kept in a trusted storage & incremented properly whenever update of a block happens, this encryption & authentication can be proven to be secure ✤ But, since N k(0) are protected by the MAC tree, still this is secure

  15. Implementation & performance '!!!!" ✤ Implemented the file system on &#!!!" -9*:1-*" );+." a FUSE based network file &!!!!" system %#!!!" %!!!!" $#!!!" ✤ One for our MAC tree, one $!!!!" #!!!" for Merkle hash tree !" ()*" .)/." ()*" .)/." ()*" .)/." ()*" .)/." ✤ Cost of authentication is about +,--" +,--" +,--" +,--" +,--" +,--" +,--" +,--" 50% of the Merkle tree 0-)12*.)," 0-)12345*6" 7,8+-2*.)," 7,8+-2345*6" construction in general

  16. Thank You!

Recommend


More recommend