Showing entries 1 to 5
Displaying posts with tag: seguridad (reset)
Descifrar backups de MySQL con clave pública

Anteriormente vimos cómo hacer backups de un MySQL con una clave simétrica que luego ciframos con una clave pública. Vamos a ver cómo hacer la operación inversa para descifrar el backup y recuperar los datos.

Primero de todo deberemos recuperar la clave simétrica del fichero cifrado, para ello deberemos usar la clave privada con la opción rsautl -decrypt:

openssl rsautl -decrypt \
        -in backup_key_20120704.secret \
        -out backup_key_20120704.key \
        -inkey privkey.pem 

Este comando nos genera el fichero backup_key_20120704.key que contiene la clave simetrica descrifrada. A continuación deberemos descifrar el backup con dicha clave. Para ello deberemos usar la opción enc pero con la opción -d para descifrar, el …

[Lea más]
Backups MySQL cifrados con clave pública

En el caso que intentemos cifrar unos datos directamente con una clave pública, obtendremos el siguiente mensaje de error:

RSA operation error
140654231455560:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:151:

Vamos a ver cómo cifrar unos backups con clave pública.

No podemos cifrar backups directamente con la clave pública, pero sí que podemos emular el intercambio de claves simétricas del protocolo TLS. Por lo tanto, para cifrar un backup podemos crear una clave aleatoria:

openssl rand 128 -out $BACKUP/backup_key_$(date +%Y%m%d)

Con dicha clave de 128 bytes ciframos los backups:

openssl enc -aes256 -in $BACKUP/backup_${db}_${taula}_$(date +%Y%m%d).sql.gz \
        -out $BACKUP/backup_${db}_${taula}_$(date +%Y%m%d).sql.gz.secret \
        -pass file:$BACKUP/backup_key_$(date +%Y%m%d)
[Lea más]
El peligro del permiso FILE de MySQL

Mediante el permiso FILE permitimos que desde una sentencia SQL se lea y se escriba en el sistema de ficheros del servidor MySQL de acuerdo con los permisos del usuario que se ejecute (normalmente existe un usuario dedicado llamado mysql o mysqld) Podemos otorgar dicho privilegio mediante GRANT FILE: mysql> grant file on *.* to [...]

Denegación de servicio en MySQL

Mediante un ALTER DATABASE es posible mover todos los datos del datadir a un nuevo punto, haciendo desaparecer todas las bases de datos. Vamos a suponer las siguientes base de datos: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cacti | | jordi | | mysql | | nagios | | [...]

Truco: tabla de permisos

Mysql tiene muchos posibles permisos a establecer. Algunos son globales, otros de tablas, otros de bases de datos... Recordar todos es dificil y además una perdida de tiempo. Un truquito para conocer todos los posibles permisos, descripción y ámbito de uso :)

mysql> show privileges\G
*************************** 1. row ***************************
Privilege: Alter
Context: Tables
Comment: To alter the table
*************************** 2. row ***************************
Privilege: Alter routine
Context: Functions,Procedures
Comment: To alter or drop stored functions/procedures
*************************** 3. row ***************************
Privilege: Create
Context: Databases,Tables,Indexes
Comment: To create new databases and tables
*************************** 4. row ***************************
Privilege: Create routine
Context: …

[Lea más]
Showing entries 1 to 5