Our client is a Silicon Valley company specializing in security products. They offer solutions to protect both unstructured data, such as files in a filesystem, and structured data, like databases. Their products are compatible with major Unix and Windows variants and operate within the kernel or user space based on the security assurances required by their clientele.
Unser Kunde ist ein Unternehmen im Silicon Valley, das sich auf Sicherheitsprodukte spezialisiert hat. Es bietet Lösungen zum Schutz von unstrukturierten Daten, wie z. B. Dateien in einem Dateisystem, und strukturierten Daten, wie Datenbanken. Ihre Produkte sind mit den wichtigsten Unix- und Windows-Varianten kompatibel und arbeiten im Kernel- oder Benutzerbereich, je nachdem, welche Sicherheitsgarantien ihre Kunden benötigen.
The client had a stackable Linux filesystem driver that encrypted files using the AES-CBC algorithm. They extended the product to include AES CBC-CS1 support, enabling per-file IV for enhanced protection. However, this algorithm required additional storage for IV and other encryption metadata. Most local filesystems could access this storage via extended attributes (xattrs), but CIFS and CVFS filesystems could not.
To avoid forcing customers to make invasive changes to their production setups, such as kernel modifications or server-side configuration changes, the client decided to store the IV and metadata in the first 4096 bytes of the file.
Der Kunde hatte einen stapelbaren Linux-Dateisystemtreiber, der Dateien mit dem AES-CBC-Algorithmus verschlüsselte. Das Produkt wurde um die Unterstützung von AES CBC-CS1 erweitert und ermöglichte so die Verschlüsselung pro Datei für einen besseren Schutz. Dieser Algorithmus erforderte jedoch zusätzlichen Speicher für IV und andere Verschlüsselungsmetadaten. Die meisten lokalen Dateisysteme konnten über erweiterte Attribute (xattrs) auf diesen Speicher zugreifen, CIFS- und CVFS-Dateisysteme jedoch nicht.
Um Kunden nicht zu zwingen, invasive Änderungen an ihren Produktions-Setups vorzunehmen, wie z. B. Kernel-Modifikationen oder serverseitige Konfigurationsänderungen, beschloss der Kunde, die IV und Metadaten in den ersten 4096 Bytes der Datei zu speichern.
Modify the filesystem driver to intercept xattr-related calls for CIFS and CVFS filesystems.
Write the IV and other encryption-related metadata to the first 4K bytes of the file.
Ensure the solution is generic enough to extend to other filesystems in the future.
Modify an existing user-space utility to migrate files encrypted with AES-CBC to AES CBC-CS1.
Enable AES CBC-CS1 support for CIFS and CVFS filesystems.
Modifizieren Sie den Dateisystemtreiber, um xattr-bezogene Aufrufe für CIFS- und CVFS-Dateisysteme abzufangen.
Schreiben Sie die IV und andere verschlüsselungsbezogene Metadaten in die ersten 4K-Bytes der Datei.
Aktivieren Sie die AES CBC-CS1-Unterstützung für CIFS- und CVFS-Dateisysteme.
Ändern Sie ein vorhandenes User-Space-Dienstprogramm, um Dateien, die mit AES-CBC verschlüsselt wurden, auf AES CBC-CS1 zu migrieren.
Sicherstellen, dass die Lösung generisch genug ist, um in Zukunft auf andere Dateisysteme erweitert werden zu können.
Modified the migration utility to relocate data blocks to create space for storing xattrs in existing files.
Assisted customers in migrating files encrypted with AES-CBC to AES CBC-CS1 encryption.
Enabled AES CBC-CS1 support for CIFS and CVFS filesystems.
Developed a separate module for handling xattrs:
Used local xattrs for files from local filesystems.
Used the first 4096 bytes for files from remote filesystems like CIFS or CVFS.
Enhanced the existing xattrs code to save xattrs in the appropriate location based on the filesystem type.
Das Migrationsdienstprogramm wurde geändert, um Datenblöcke zu verschieben, um Platz für die Speicherung von xattrs in bestehenden Dateien zu schaffen.
Unterstützung von Kunden bei der Migration von mit AES-CBC verschlüsselten Dateien zu AES CBC-CS1-Verschlüsselung.
Aktivierte AES CBC-CS1-Unterstützung für CIFS- und CVFS-Dateisysteme.
Entwicklung eines separaten Moduls für die Behandlung von xattrs:
Verwendung von lokalen xattrs für Dateien aus lokalen Dateisystemen.
Verwendet die ersten 4096 Bytes für Dateien von entfernten Dateisystemen wie CIFS oder CVFS.
Verbesserung des bestehenden xattrs-Codes, um xattrs an der richtigen Stelle je nach Dateisystemtyp zu speichern.
Successfully enabled per-file IV functionality on remote filesystems without requiring invasive changes to the clients' production setups.
Modified the user-space utility to facilitate the migration of files to the new encryption standard.
Transitioned customers to a superior and FIPS-compliant encryption algorithm, safeguarding their data with enhanced security measures.
Erfolgreiche Aktivierung der IV-Funktionalität pro Datei auf entfernten Dateisystemen, ohne dass invasive Änderungen an den Produktions-Setups der Kunden erforderlich waren.
Das Dienstprogramm für den Benutzerbereich wurde geändert, um die Migration von Dateien auf den neuen Verschlüsselungsstandard zu erleichtern.
Umstellung der Kunden auf einen überlegenen und FIPS-konformen Verschlüsselungsalgorithmus zum Schutz ihrer Daten durch verbesserte Sicherheitsmaßnahmen.
Our filesystem team made significant modifications to the client's filesystem driver, enabling per-file IV functionality for remote filesystems. This allowed the client's customers to transition to a more secure and FIPS-compliant encryption algorithm without disrupting their existing production environments. The stackable nature of the filesystem driver ensured that these changes were transparent to the applications, providing a seamless upgrade path for enhanced data security.
Unser Dateisystemteam nahm erhebliche Änderungen am Dateisystemtreiber des Kunden vor und ermöglichte die IV-Funktionalität pro Datei für entfernte Dateisysteme. Dies ermöglichte den Kunden des Kunden den Übergang zu einem sichereren und FIPS-konformen Verschlüsselungsalgorithmus, ohne ihre bestehenden Produktionsumgebungen zu stören. Die Stapelbarkeit des Dateisystemtreibers sorgte dafür, dass diese Änderungen für die Anwendungen transparent waren und einen nahtlosen Upgrade-Pfad für verbesserte Datensicherheit boten.