Typhon DB Sentry: Practical Queryable Column-Level Encryption with Fast Format-Preserving Decryption
Resumo
Consultar dados mantendo-os cifrados é ferozmente difícil— exigências criptográficas, semânticas e de desempenho colidem. A cifragem em nível de coluna protege dados sensíveis contra adversários privilegiados, mas destrói as propriedades semânticas do SQL; quando se torna consultável, a agregação no proxy vira o gargalo, pois é preciso decifrar cada valor antes de agregá-lo. Apresentamos o Typhon DB Sentry, um proxy SQL transparente que torna dados cifrados por coluna consultáveis (faixa, padrão, ordenação, agregação) em PostgreSQL, MySQL, SQL Server, Oracle e IBM Db2, com as chaves fora da aplicação. A contribuição central da ferramenta é um caminho de decifragem rápida com preservação de formato: trocamos a aritmética de precisão arbitrária do FF1 (NIST) por uma implementação de largura fixa adaptativa—inteiros de 128 bits no caso comum, com fallback para inteiros grandes—byte-idêntica ao padrão, e deciframos grandes conjuntos de resultados em paralelo, fundindo decifragem e agregação em um único passo. Com o caminho completo, o SUM/AVG no proxy sobre 150K valores cifrados executa em ~0,08–0,12 s nos cinco dialetos (~1,6–18× sobre o texto claro; o caminho convencional decifra-e-agrega paga ~80×), sem alterar o texto cifrado. Demonstramos a ferramenta com uma aplicação web completa de clínica médica servida inteiramente através do proxy.
Referências
Hacigümüs, H., Iyer, B., Li, C., Mehrotra, S. (2002). Executing SQL over encrypted data in the database-service-provider model. In: Proc. ACM SIGMOD, pp. 216–227.
De Capitani di Vimercati, S., Facchinetti, D., Foresti, S., Oldani, G., Paraboschi, S., Rossi, M., Samarati, P. (2024). Multi-dimensional flat indexing for encrypted data. IEEE Trans. Cloud Comput., 12(3), pp. 928–941.
Popa, R.A., Redfield, C.M.S., Zeldovich, N., Balakrishnan, H. (2011). CryptDB: Protecting confidentiality with encrypted query processing. In: Proc. 23rd ACM SOSP, pp. 85–100.
Tu, S., Kaashoek, M.F., Madden, S., Zeldovich, N. (2013). Processing analytical queries over encrypted data. Proc. VLDB Endowment, 6(5), pp. 289–300.
Poddar, R., Boelter, T., Popa, R.A. (2019). Arx: An encrypted database using semantically secure encryption. Proc. VLDB Endowment, 12(11), pp. 1664–1678.
Boldyreva, A., Chenette, N., Lee, Y., O’Neill, A. (2009). Order-preserving symmetric encryption. In: Advances in Cryptology – EUROCRYPT, LNCS 5479, pp. 224–241.
Naveed, M., Kamara, S., Wright, C.V. (2015). Inference attacks on property-preserving encrypted databases. In: Proc. 22nd ACM CCS, pp. 644–655.
Dworkin, M. (2016). Recommendation for block cipher modes of operation: methods for format-preserving encryption. NIST Special Publication 800-38G.
Bellare, M., Rogaway, P., Spies, T. (2010). The FFX mode of operation for format-preserving encryption. Submission to NIST.
Durak, F.B., Vaudenay, S. (2017). Breaking the FF3 format-preserving encryption standard over small domains. In: Advances in Cryptology – CRYPTO, LNCS 10402, pp. 679–707.
Baccarini, A.N., Hayajneh, T. (2019). Evolution of format preserving encryption on IoT devices: FF1+. In: Proc. 52nd Hawaii Int. Conf. on System Sciences (HICSS).
Mysto Project (2021). ff3: Format-preserving encryption with native-integer arithmetic. [link].
str4d (2023). fpe: Format-preserving encryption (FF1) in Rust. [link].
Matsakis, N., Stone, J. et al. Rayon: a data-parallelism library for Rust. [link].
Apache DataFusion. sqlparser-rs: an extensible SQL parser for Rust. [link].
