¿Cómo debo verificar que no se haya manipulado una copia de seguridad?

2

Tengo un NAS con algunos archivos que suman hasta 2 TB de tamaño. Sospecho que podría reducir esto porque posiblemente hay archivos duplicados. Planeo hacer una segunda copia de seguridad enviando lo que tengo a Google Drive. La preocupación es cómo debería estar verificando mis copias de seguridad. Supongo que si me tomó unos días verificarlo manualmente, ¿hay alguna otra forma más rápida de confirmar que no se alteró todo mi respaldo?

¿Debería usar un método diferente para hacer copias de seguridad que permita verificar las copias de seguridad en lugar de simplemente ejecutar 'rclone' en todos mis archivos?

EDITAR: Agregar un poco de información sobre mi sistema. Mi NAS es una Raspberry Pi 3B + que ejecuta Arch Linux ARM Aarch64

EDIT 2: mi preocupación es que si mis unidades de copia de seguridad locales fallaron (quizás alguien las arruinó a propósito), no tengo forma de estar 100% segura de que todas mis cosas (fotos, música, etc.) son como yo recordado.

    
pregunta RansuDoragon 22.05.2018 - 00:06
fuente

1 respuesta

7

Listas de hash criptográficos

Desde un punto de vista teórico, la verificación de la integridad de los datos que se colocarán en un medio no confiable (como un servidor de copia de seguridad remoto o un dispositivo de almacenamiento desatendido) requiere que se mantenga algo en un medio seguro que es de confianza y no puede ser manipulado. Ese algo le permite verificar que el resto de los datos no han sido manipulados. En otras palabras, está moviendo la confianza de los datos en sí mismos a algunos datos auxiliares (hashes, una firma criptográfica, etc.). Esto es deseable porque los datos auxiliares son muy pequeños y se pueden almacenar localmente en la mayoría de los medios. En el caso de una copia de seguridad de una unidad, puede utilizar un hash criptográfico, como SHA-256, en cada archivo:

find /path/to/backup -type f -exec sha256sum -- {} + > hashlist.txt

El archivo de texto resultante contiene una lista de archivos y sus hashes SHA-256. El propio archivo puede almacenarse localmente en una máquina confiable o firmado criptográficamente (por ejemplo, con GnuPG o signify ) ) y guardado en la copia de seguridad en sí. Esto evitará que cualquier persona con acceso de escritura a la copia de seguridad (pero no el acceso de escritura a la lista hash) modifique, agregue o elimine archivos sin ser detectado.

Firmas digitales

Si está almacenando la copia de seguridad en una imagen de sistema de archivos o tarball grande, simplemente puede hacer un hash de eso, lo que le proporcionará la ventaja adicional de conservar directorios y metadatos:

tar cpf - /path/to/backup | tee backup.tar | sha256sum > backup.tar.sha256

Si desea almacenar la lista de hash en la copia de seguridad, es necesario asegurarse de que la lista de hash no pueda ser manipulada sin ser detectada. La forma más común de hacer esto es usar GPG. Una vez que haya creado una clave de firma , puede sign el archivo , si el archivo es una lista hash o un archivo tar completo. La firma se puede almacenar junto con las copias de seguridad y puede verificarlas de manera segura utilizando la clave pública correspondiente. Solo asegúrese de mantener una copia local de la clave pública y no permita que la clave privada caiga en manos de sus adversarios. Esta técnica tiene la ventaja de ser compatible con una serie de tarjetas inteligentes .

Utilidades de copia de seguridad seguras

Hay algunas herramientas diseñadas específicamente para copias de seguridad que proporcionan integridad y confidencialidad. Duplicity , por ejemplo, admite el envío de copias de seguridad incrementales encriptadas del lado del cliente a una gran cantidad de hosts de datos en línea, incluido Google Drive. Cifra y firma las copias de seguridad utilizando un par de claves públicas y privadas, aunque también admite el uso de una clave simétrica (frase de contraseña simple). Debido a que las copias de seguridad incrementales son compatibles, solo la copia de seguridad inicial de un disco grande tomará un tiempo considerable. Las copias de seguridad posteriores solo transmitirán los archivos que hayan cambiado:

duplicity /path/to/backup gdocs://user[:password]@other.host/some_dir 

La restauración desde la copia de seguridad verifica los datos, y los datos también pueden verificarse manualmente. Al igual que con GPG, debe mantener el par de llaves en un medio confiable (una unidad local o una tarjeta inteligente). El acceso de lectura a la clave privada permite falsificar firmas válidas, al igual que el acceso de escritura a la clave pública.

Esto es lo que uso yo mismo.

Cosas a tener en cuenta

Para garantizar que los valores de hash sean representaciones fieles del contenido de los archivos que se están copiando, es necesario utilizar una función de hash fuerte. Evite usar MD5 o SHA-1 ya que ambos están rotos (ya que es posible crear dos archivos con diferentes contenidos pero con el mismo hash). El algoritmo SHA-256 es el más popular, pero SHA-3-256 y BLAKE2b también son aceptables.

Si está generando un par de llaves (porque está usando GnuPG para firmar una lista de hash o archivo, o una utilidad de copia de seguridad que requiere un par de llaves como Duplicity), debe usar un algoritmo fuerte. El estándar de la industria es RSA para el cifrado y la firma, con un tamaño de clave de 2048 o más.

En un comentario, mencionas que deseas poder usar esto para probar que no se agregaron archivos incriminatorios con tu conocimiento. No es probable que esto vuele en el tribunal, ya que sería trivial para usted cargar un nuevo archivo incriminatorio y no firmarlo para reclamar que no lo agregó usted. Todo lo que le permitirá hacer es confiar en la copia de seguridad tanto como confía en la lista de hash local (o clave de firma).

    
respondido por el forest 22.05.2018 - 05:02
fuente

Lea otras preguntas en las etiquetas