Proteger DNI en Envío

CiberSeguridad 7 de jun. de 2024

Uso fraudulento de las imágenes del DNI

No está de más recordar que hay personas que están sufriendo estafas a su nombre simplemente por el hecho de que algún actor indebido ha tenido acceso a una copia del DNI de esa persona.

Protección del DNI al ser enviado

Cuando nos solicitan una "copia" del DNI, si no disponemos de ningún software de edición, como mínimo nunca la deberemos enviar a color.

El pasarlo a "tonos grises" en muy fácil de realizar incluso desde cualquier móvil. En Internet encontrarás tutoriales sobre como realizarlo para el móvil.

Vamos a aprovechar a explicar como lo podemos hacer desde nuestro equipo Linux, de una forma automatizada, mediante la herramienta convert que forma parte de la aplicación ImageMagick.

Tipos de DNI en España

En españa actualmente hay 2 tipos de DNI en circulación DNI v3 y DNI v4, ambos tienen el mismo tamaño de exactamente 85,60 x 53,98 mm

Para una resolución correcta podemos trabajar con 150 dpi (puntos por pulgada) de una imagen escaneada, lo que nos dará aproximadamente unos 1011 x 638 pixel para cada imagen escaneada del DNI (Anverso y Reverso)

Si observamos el formatos de ambos DNI (v3 y v4), podemos ver las zonas que deberíamos proteger:

Zonas a borrar en el envío de una copia del DNI

Instalamos ImageMagick para disponer de convert:

# Lo primero siempre actualizar "repos"
sudo apt update
sudo apt -y upgrade

# Instalamos ImageMagick
sudo apt -y install imagemagick

Si escaneaste tu DNI en algún momento, deberías tenerlo en 2 ficheros (Anverso y Reverso) y lo mejor "recortado" posible.

En este artículo aprovecharemos el proceso de proteger nuestro DNI, con el proceso de "dibujar" sobre una imagen mediante convert

Puedes salir a la terminal y cortar y pegar  los comandos que te indico para realizar el proceso de edición de la imagen.

Vamos a crear 2 variables para usarlas como nombre de fichero, supongamos que la imágenes escaneadas de tu DNI se llaman:

ANVERSO="DNI_v4-anverso.png"
REVERSO="DNI_v4-reverso.png"

Como seguramente no sepas la resolución, ni el tamaño de las imágenes escaneadas, lo que haremos será transformarlas en dos imágenes temporales para trabajar con ellas.

# Ficheros temporales (para escalado de tamaño)
AnvTMP="${ANVERSO%.*}-tmp.jpg"
RevTMP="${REVERSO%.*}-tmp.jpg"

# Generamos imagenes temporales
convert $ANVERSO -resize 1011x638 -units PixelsPerInch -density 150 $AnvTMP
convert $REVERSO -resize 1011x638 -units PixelsPerInch -density 150 $RevTMP

# Se generarán 2 imagenes de nombre:
# DNI_v4-anverso-tmp.jpg y DNI_v4-reverso-tmp.jpg

Vamos a usar estas imágenes temporales que tendrán el tamaño exacto para pintar sobre ellas.

Las zonas (recuadros) a proteger de nuestro DNI español son las siguientes y están situadas con las siguientes coordenadas x,y  para las medidas oficiales del DNI escaneado a 150 dpi.

# Anverso. Zona a Ocultar
CAN='800,370,1000,605'
SOPORTE='400,440,570,485'

# Reverso. Zona a Ocultar
EQUIPO='5,177,100,355'
PADRES='280,317,620,376'
IDE='50,430,980,520'

Además vamos a incluir un texto que aparezca en medio del DNI indicando el uso único para el que se envió esa copia:

# Dejamos en la variable TEXTO el literal del uso de esa copia
TEXTO='SOLO PARA USO INTERNO DE ABCDEFGHIJKL'

Con todas las variables creadas y fijadas, ya podemos generar nuestras imágenes de DNI protegidas, simplemente ejecutamos los siguientes comandos:

# Proteger ANVERSO (genero anverso-protegido.jpg)
convert $AnvTMP -fill gray -draw  "rectangle $CAN" -fill gray -draw "rectangle $SOPORTE" -font helvetica -fill black -pointsize 30 -gravity center -annotate 0 "$TEXTO" -grayscale average -units PixelsPerInch -density 150 anverso-protegido.jpg


# Proteger REVERSO (genero reverso-protegido.jpg)
convert $RevTMP -fill gray -draw "rectangle $EQUIPO" -fill gray -draw "rectangle $PADRES" -fill gray -draw "rectangle $IDE" -font helvetica  -fill black -pointsize 30 -gravity center -annotate 0 "$TEXTO" -grayscale average -units PixelsPerInch -density 150 reverso-protegido.jpg

Obtendré 2 ficheros: anverso-protegido.jpg  y  reverso-protegido.jpg

Te muestro el resultado de antes y despues, tras procesar tanto un DNI v3, como un DNI v4 por ambos lados (anverso y reverso):

Como puedes ver en el resultado, hemos pintado varios recuadros sobre los bloques que queremos ocultar, hemos incluido un texto, y además la imagen final la hemos transformado a tonos grises.

Espero que hayais disfrutado con este ejemplo de uso de convert del paquete ImageMagick.

Podeis aprovechar y preparar un script bash con todos las variables y comandos que habeis visto aquí para poder hacer modificaciones masivas si teneis varios DNI's que proteger.

Nota: Todos los DNI's usados en este artículo no tienen ninguna validez, ya que son especímenes de muestra, que publica de Dirección General de la Policía.

He dejado preparado un script en bash que realiza todo el proceso, solicitando las imágenes del anverso y reverso del DNI y el texto a incluir.
Os lo dejo en mi GIT:

protege-DNI
Script Bash para enviar/compartir el DNI por medios electrónicos de forma segura. Crea bloque ocultando zonas de información.Escribe texto sobre la imagenGenera resultado en “tonos grises” Utiliza convert (para transformar imagenes) y zenity para pedir datos.
Script para ocultar info del DNI

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux