Nuevos comandos 4D para trabajar con datos encriptados

Traducido automáticamente de Deepl

En un post anterior, hablamos de cómo empezar a trabajar con la encriptación de archivos de datos. Ahora vamos a discutir una forma adicional de trabajar con archivos de datos encriptados: Los nuevos comandos de 4D. Estos comandos están diseñados para soportar la mayoría de los requerimientos de encriptación y le permiten entregar una solución encriptada a sus clientes.

HDI: Ejemplo de comandos de encriptación de datos

Encriptación de un archivo de datos

Además del MSC, puedes gestionar el cifrado con el Encrypt data file() comando:

C_TEXT($folder;$passphrase)
$passphrase :=Request("Introduzca la frase de contraseña")
if (OK=1)
$folder :=Encrypt data file("Macintosh HD:Users:structures:myDataBase.4DB";
"Macintosh HD:Users:data:myData.4DD";$passphrase)
// myData.4DD is not opened
End if

Proporcionar la clave de encriptación de datos a través del lenguaje

Además de la detección automática de claves de encriptación de datos de 4D, el nuevo provideDataKey() está disponible en el objeto ds para proporcionar la clave de encriptación de datos a un archivo de datos abierto. Esto es útil al construir su propia interfaz de usuario para controlar el acceso a sus datos encriptados.

Mientras que ds es una característica de ORDA, el comando provideDataKey() es válido tanto para el código ORDA como para el clásico de 4D.

C_OBJECT($keyStatus)
C_TEXT ($passphrase)
$passphrase :=Request("Introduzca la frase de contraseña")
if (OK=1)
$keyStatus :=ds.provideDataKey($passphrase)
If ($keyStatus.success)
ALERT ("Ha proporcionado una clave de cifrado válida")
Else
ALERT ("Ha proporcionado una clave de cifrado no válida. El acceso a los datos cifrados está denegado")
End if
End if

OBTENER EL ESTADO DE CIFRADO

El nuevo encryptionStatus() también está disponible en el objeto ds objeto. Comprueba si el archivo de datos abierto está encriptado o no y si se ha proporcionado una clave de encriptación de datos válida.

C_OBJECT($status;$provideStatus)
C_TEXT ($passphrase)
$status :=ds.encryptionStatus()
Case of
: (Not($status.isEncrypted))
ALERT("Los datos no están codificados")
: (($status.isEncrypted) & (Not($status.keyProvided))
ALERT ("Los datos están cifrados y no ha proporcionado una clave de cifrado válida. El acceso a los datos encriptados está denegado.")
: (($status.isEncrypted) & ($status.keyProvided))
ALERT("Los datos están cifrados y ya se ha proporcionado la clave de cifrado. Se concede el acceso a los datos encriptados.")
End case

OTROS COMANDOS

estado del archivo DATA sin abrir

El comando Data file encryption status() devuelve el estado de cifrado de un archivo de datos especificado y no abierto. Esto permite verificar el estado de cifrado de un archivo de datos antes de abrirlo.

nueva clave de datos()

El comando New data key() genera una clave binaria de encriptación de datos a partir de una frase de contraseña dada. Dado que 4D busca automáticamente una clave de encriptación de datos válida en los dispositivos conectados cuando se abre un archivo de datos, este comando le permite generar su propia clave de encriptación de datos binarios que puede escribir en un archivo.

descubrir clave de datos

Si se olvida de conectar el dispositivo que contiene su clave de cifrado de datos antes de abrir un archivo de datos, puede utilizar el comando Discover data key() para proporcionar la clave.

registrar clave de datos()

Para evitar proporcionar la clave de cifrado de datos cada vez que abra un archivo de datos, puede utilizar el comando Register data key() para añadirla al llavero de 4D.

comandos en acciones

El IDH anterior demuestra todos los comandos en esta entrada del blog para darle una visión general con ejemplos concretos sobre cómo utilizarlos para sus propias bases de datos.

Avatar
• Propietario de producto - Marie-Sophie Landrieu-Yvert ingresó al equipo de 4D Product como Propietario de producto en 2017. Como tal, está a cargo de escribir las historias de los usuarios y luego traducirlas en especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Marie-Sophie se graduó en la Escuela de Ingeniería de ESIGELEC y comenzó su carrera como ingeniera en IBM en 1995. Participó en varios proyectos (de mantenimiento y creación) y trabajó como desarrolladora de Cobol. Luego trabajó como diseñadora de UML y desarrolladora de Java. Sus principales funciones fueron analizar y redactar requisitos funcionales, coordinar los equipos de negocio y de desarrollo.