Get started with transparent data encryption
- Last Updated: May 15, 2026
- 7 minute read
- OpenEdge
- Version 13.0
- Documentation
Transparent Data Encryption (TDE) provides data privacy while the data is at rest in your OpenEdge database, regardless of the location of the database or who has a copy of it.
Controlling access to private data while at rest, stored on disk inside your database, is the core of OpenEdge Transparent Data Encryption. OpenEdge combines cipher algorithms, encryption key lengths, secure storage of encryption keys, and user access controls to your encryption keys to ensure that your data encryption cannot be reversed by anyone other than those who are granted access.
Data at rest means data that is housed physically on computer data storage in any digital form (e.g. cloud storage, file hosting services, databases, data warehouses, spreadsheets, archives, tapes, off-site or cloud backups, mobile devices etc.). Data at rest includes both structured and unstructured data.
Each encrypted database has a single, unique Database Master Key (DMK). The DMK is created and managed by your Database Administrator and stored in your database key store, which is separate from the database. Your key store is an independent and secure entity that provides secure storage of data encryption keys and controls access in the form of user accounts. To facilitate this, encryption for your database objects is managed through encryption policies. You define which database objects are encrypted and the encryption cipher for the object. Policies are stored in your database in a designated Encryption Policy Area. Object policies use virtual data encryption keys derived from your DMK and a cipher that you indicate. The encryption key for each encrypted database object is unique. Database blocks are decrypted when loaded into memory by authorized Progress executable programs. The entire block is encrypted or decrypted, not individual entries within each block. The encryption and decryption is transparent to the connected Progress or SQL92 client. However, the data pulled into shared memory in the buffer pool is not encrypted.
Installing Transparent Data Encryption (TDE)
What is encryptable
- Type I Areas: The entire Type I area must be encrypted.
- Tables, Indexes, LOBs in Type II atorage areas
- Before Image (BI) files: encrypted by default.
- After Image (AI) files: encrypted by default.
- Backup files created with
probkup: always encrypted. - Binary Dump files: not encrypted by default.
- Audit Archive: not encrypted by default.
Type II Areas cannot be encrypted at the Area level. Objects (tables, indexes, lobs) are encrypted separately within a Type II storage area. Type II storage areas allow each object to be encrypted or not encrypted as required. Setting up TDE requires some consideration of which tables, indexes, or LOBS (binary or character large objects) should be encrypted. Encryption requires extra CPU processing for encryption and decryption. As such, the entire database be encrypted should not be encrypted, only objects with sensitive information. For more information about encrypting see, Transparent Data Encryption
Enable the OpenEdge database for TDE
- Add an encryption policy storage area to the database
- Enable the database for encryption
- Configure encryption policies
- Encrypt existing un-encrypted data
- Quick Guide to enabling Transparent Data Encryption
- Sample script to encrypt the whole database
- 4GL Scripts to generate TDE policies for existing type 1 areas, and for tables, indexes and lob fields located on type 2 areas
- 4GL scripts to generate SQL statements to apply TDE policies to tables and indexes located in type 2 areas
- How to enable Transparent Data Encryption (TDE) on a Replication enabled database
Passphrase requirements
When enabling the database for TDE, a passphrase must be provided for the user. As with most encryption related operations, a secure password must be chosen, this is known as a passphrase.
- May contain any of the following characters : [a-zA-Z0-9]!@#$%^&*()_+-{}[]|\,./<>?;:<space>
- A minimum of 8 characters
- A maximum 1024 characters / 2048 characters since OpenEdge 11
- Must have at least one numeric character: 0-9
- Must have at least two alphabetical characters: a-z A-Z
- Must have at least one special character: . ? ! , ; : - () {} [] *
- Must have at least one upper case letter: A-Z
- Must have mixed upper and lower case characters with no consecutive repeating characters
Examples of a valid passphrases are: Admin!234,
User!567
When the passphrase does not meet minimum complexity enabling encryption fails. For more information on failing passphrases, see Setting TDE Passphrase generates error (15014).
- Each production database passphrases should be distinct from those of other databases and not follow a pattern.
- The production database should define both an admin and user passphrase. These passphrases should only be known to the production Database Administrator and the user when manual start is configured.
- Use the user passphrase to start production database servers.Note: If the
autostartfeature is used, the 'user ' passphrase blocks non-Database Administrators from maintaining the TDE feature from an absent Database Administrator terminal. - Database Administrators are required to enter the 'admin' passphrase to execute TDE administration commands.
- Auditing should be enabled to track the TDE administration actions even when there is no requirement to audit anything else.
- Define ABL security administrators and SQL Database Administrators, distinct from TDE Administrators. After TDE is started, a
no blank user-idconnection for each database or authentication should be considered. - Auditors generally read and scan for information, therefore they can view the current configuration in user persona and cannot change the TDE configuration.
- Ensure that the Database Administrator has the keystore admin passphrase and that a process exists for a backup Database Administrator personae in case of emergency.
- Ensure a viable production database keystore file backup and restore process
that can compensate for emergency restoration to an earlier
.ksfile that has an old set of passphrases. - Do not use the
-newinstanceoption without your backup and restore processes assuring an exact pairing of database backup version and.kskeystore file version is maintained. This is done in order to de-couple the keystore from the original database and make it bind to the new database GUID with PROUTIL epolicy manage keystore rebind. If aprorestcommand is issued without the-newinstanceparameter, the original database GUID is retained together with the appropriate.ksfile and can be accessed without having to rebind. - For additional security, periodically alter the passphrase, particularly on
a restored database. This can be done with one or both of the following
commands:
proutil db-name -C epolicy manage keystore userphrase -Passphraseproutil db-name -C epolicy manage keystore adminphrase -Passphrase
Cipher and cipher strength used for encryption:
After determining what objects should be encrypted and the passphrase used, another important consideration is the cipher and strength of cipher used for the encryption. The stronger the cipher is the more secure the data is, but the trade off is that this increases the CPU overhead it takes to encrypt and decrypt data. Encryption of data is managed through encryption policies. When a policy is created, you specify what database object (table, index, LOB, or Type I area) is encrypted and the strength of the encryption cipher for the object. If you did not specify a cipher, the default AES_CBC_128, is used. It is important to note that creating a policy does not encrypt existing data; it only indicates that all future writes are encrypted. Fore more information on ciphers available for TDE and how to change the, see What Ciphers available for TDE and how to change them on objects or areas?
Keystore maintenance
After enabling and configuring TDE for a database, there is an extra file that is associated
with the database that must backed up or archived for security and restoration
purposes. That file is the keystore file
(data-base-name.ks).
The goal of Transparent Data Encryption is to encrypt selected database objects. To be successful, the encryption must meet certain industry security practice expectations with regards to encryption key storage, access-controls, and administration. In a practical sense, encryption is only as good as the security of the encryption key storage and its access controls. A keystore implementation is successful when an intruder is unable to coerce it into yielding the stored encryption key values and therefore must resort to a brute-force attack on the encrypted data.
A secure keystore is usually its own entity and provides its own user authentication and authorization. Most low-level keystores use simple passphrase access control; mid-level keystores enforce strong passphrase access controls; high-level keystores use stronger methods of access control such as LDAP, Kerberos, biometrics, or digital certificates. Proper care of your OpenEdge keystore is vital to maintaining access to your encryption-enabled database.
- Backing up your keystore
- Modifying passphrases
- Rebinding an existing keystore file to a new database GUID
- Keystore reconstruction
Common TDE maintenance operations
Transparent Data Encryption FAQ
- Why is the -Passphrase not required for a multi-user connection to TDE enabled database?
- TDE: Why an ascii dump generates not encrypted output
- How to see what tables,indexes, or LOBs are enabled for Transparent Data Encryption (TDE)?
- How to check what objects are encrypted within a Transparent Data Encrypted (TDE) enabled database?
- What data types and data lengths does TDE encryption support?
- Does Transparent Data Encryption require users in the _user table?
- Considerations when enabling TDE on a Replication enabled database.
- Is the ABL client connection to the database in client/server mode using port encrypted?
- Is it necessary to recompile source code when implementing Transparent Data Encryption (TDE)?
- Is there a way to encrypt data in a table?