Sistema de arquivos criptográfico cross-stack em espaço de kernel utilizando processamento antecipado e especulativo
Resumo
Resumo: Sistemas de Arquivos Criptográficos (SACs) proporcionam confidencialidade e privacidade aos dados armazenados submetendo-os a operações criptográficas. Juntamente com essa segurança, existe a perda de desempenho inerente ao processamento dos dados. Durante as operações de E/S, a CPU fica ociosa enquanto o dispositivo de armazenamento está movendo os dados requisitados. Esse tempo ocioso pode ser aproveitado para realizar operações criptográficas antecipadas e especulativas, reduzindo consideravelmente a latência das operações do SAC. Trabalhos anteriores demonstraram que essa abordagem gera ganhos de desempenhos consideráveis, contudo, eles não exploraram toda a capacidade dessa ideia, tendo em vista que os resultados foram gerados através de abordagens empilhadas e em espaço de usuário. Dessa forma, as arquiteturas previamente propostas não provem integração com os diferentes níveis da pilha de armazenamento, impossibilitando potenciais otimizações. Neste trabalho, as diversas possibilidades arquiteturais providas por uma abordagem cross-stack foram exploradas para propor um novo SAC em espaço de kernel completamente integrado com o subsistema de armazenamento. Dessa forma, é possível executar operações antecipadas de forma otimizada. Os resultados, gerados a partir de uma prova de conceito implementada através de hooks no sistema de arquivo EXT4, indicam uma queda significativa na latência das operações do SAC proposto, assim como um aumento na vazão de dados quando comparado com o sistema de arquivos criptográfico padrão do Linux, especialmente para dispositivos de armazenamento de baixa latência. Abstract: Cryptographic File Systems (CFSs) provide confidentiality and privacy of stored data by subjecting it to cryptographic operations. Alongside this security, there is a performance penalty caused by the data processing. During I/O operations, the CPU becomes idle while the storage device is moving the requested data. This CPU idle time can be used to perform ahead-of-time and speculative encryption, considerably reducing the latency of CFS operations. Previous works have shown that this approach generates significant performance improvements, however, they did not explore the full capacity of this idea, considering that the results were generated through stacked and user-space approaches. Therefore, the previously proposed architectures do not provide integration with different levels of the storage stack, missing potential optimizations. In this work, the diverse architectural possibilities provided by a cross-stack approach were explored to propose a new in-kernel CFS completely integrated with the storage subsystem. Then, it is able to perform optimized ahead-of-time operations. The results, generated by a proof-of-concept implementation through hooks in the EXT4 file system, showed a significant decrease in the latency of the proposed CFS operations, as well as an increase in data throughput when compared to the default Linux CFS, especially for low-latency storage devices.
Collections
- Dissertações [258]