Script para respaldar y encriptar marcadores/configs de Brave y Firefox con 10 niveles de seguridad Linux (Asistido por IA no Consciente ni Lógica)

Aunque X se esmera en decir que su IA es tan poderosa, si bien es capaz de crear un código correcto minímalista lógico y funcional, ésta no entiende un absurdo sinsentido en un sistema de seguridad informática: la clave "12345678" que baypassea todos los niveles de seguridad es la falla del código. Debería haber sido lo primero en criticar del pedido antes de continuar, porque todo lo demás no tiene sentido al agregar esa función... y sin embargo ella lo intentó y lo programó (además que le encanta hablar e ir contando todo lo que va haciendo incluyendo a veces frases de relleno sin ningún sentido como: "lo que dices merece abordar el tema de forma ordenada..." y cosas por el estilo mientras va tirando pedazos de código como si estuviera compartiendo lo que piensa o esperara una aprobación que no espera porque sigue y sigue respondiendo), programó decía, el siguiente código (por si a alguien que use Linux le sirve ya que automatiza una función que los navegadores no tienen), que copio a continuación. Pero antes quiero que sepan que yo no soy como Grok, que habla y habla sin dar una respuesta concreta... pero alguien tenía que decirlo, que gasten plata en otra cosa porque eso de las IA no les sale... va el código:


#!/bin/bash
# Script para respaldar y encriptar marcadores/configs de Brave y Firefox con 10 niveles de seguridad.
# Incluye APIs para Google 2FA (TOTP) y WhatsApp (Twilio), huella digital (fprintd), simulación de iris, y bypass.
# Uso: Guardar como secure_sync_browsers.sh, hacer ejecutable (chmod +x secure_sync_browsers.sh) y correr.

# Configuración
BACKUP_DIR="/mnt/backups"              # Carpeta compartida en red (NFS/Samba/NAS)
USER="tu_usuario"                      # Tu usuario
HOSTS=("compu1" "compu2" "compu3" "compu4" "compu5")  # Nombres o IPs de las compus
PROFILE_DIR=$(find ~/.mozilla/firefox -maxdepth 1 -type d -name "*.default-release")  # Perfil Firefox
GPG_RECIPIENT="tu_email@example.com"   # Email para clave GPG
EMAIL="tu_email@example.com"           # Email para código alfanumérico
USB_MOUNT="/mnt/usb"                   # Punto de montaje de la USB
BYPASS_KEY="12345678"                  # Clave para saltar seguridad
TOTP_SECRET="JBSWY3DPEHPK3PXP"        # Secreto TOTP para Google 2FA (cámbialo)
TWILIO_SID="tu_twilio_account_sid"     # Twilio Account SID
TWILIO_TOKEN="tu_twilio_auth_token"    # Twilio Auth Token
WHATSAPP_TO="whatsapp:+1234567890"     # Número de destino en WhatsApp
WHATSAPP_FROM="whatsapp:+0987654321"   # Número de Twilio

# Crear directorios de respaldo
mkdir -p "$BACKUP_DIR/Brave" "$BACKUP_DIR/Firefox"

# Nivel 1: Cifrado tradicional (AES-256 con GPG)
backup_and_encrypt() {
    local src="$1" dest="$2" name="$3"
    tar -czvf - "$src" | gpg --symmetric --cipher-algo AES256 -o "$dest/$name_$(date +%F).tar.gz.gpg"
    echo "Cifrado AES-256: $name"
}

# Nivel 2: Cifrado con clave pública/privada (GPG)
encrypt_with_gpg_key() {
    local src="$1" dest="$2" name="$3"
    tar -czvf - "$src" | gpg --encrypt -r "$GPG_RECIPIENT" -o "$dest/$name_$(date +%F)_pubkey.tar.gz.gpg"
    echo "Cifrado GPG: $name"
}

# Nivel 3: Google 2FA (TOTP)
check_2fa() {
    local totp_code
    read -p "Ingresá el código TOTP de Google Authenticator: " totp_code
    local generated_code=$(oathtool --totp -b "$TOTP_SECRET")
    if [ "$totp_code" != "$generated_code" ]; then
        echo "Error: Código TOTP inválido"
        exit 1
    fi
    echo "2FA verificado"
}

# Nivel 4: Huella digital (fprintd)
check_fingerprint() {
    if fprintd-verify; then
        echo "Huella digital verificada"
    else
        echo "Error: Verificación de huella fallida"
        exit 1
    fi
}

# Nivel 5: Escaneo de iris (simulado, soporte en Linux es limitado)
check_iris() {
    local iris_file="$BACKUP_DIR/iris_check.txt"
    # Simulación: asumimos un sistema de iris que escribe un archivo de verificación
    echo "Simulación de escaneo de iris: OK" > "$iris_file"
    if [ -f "$iris_file" ]; then
        echo "Iris simulado verificado"
    else
        echo "Error: Verificación de iris fallida"
        exit 1
    fi
}

# Nivel 6: Código alfanumérico de 22 dígitos al correo
send_alphanumeric_code() {
    local code=$(openssl rand -hex 11)  # 22 caracteres
    echo "Código de acceso: $code" | mail -s "Código de respaldo" "$EMAIL"
    echo "$code" > "$BACKUP_DIR/code.txt"
    echo "Código alfanumérico enviado a $EMAIL"
}

# Nivel 7: Hash SHA-256 a WhatsApp (vía Twilio)
send_hash_whatsapp() {
    local hash=$(openssl dgst -sha256 "$BACKUP_DIR/Brave/Bookmarks_$(date +%F).json")
    curl -X POST "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_SID/Messages.json" \
        --data-urlencode "From=$WHATSAPP_FROM" \
        --data-urlencode "To=$WHATSAPP_TO" \
        --data-urlencode "Body=Hash de respaldo: $hash" \
        -u "$TWILIO_SID:$TWILIO_TOKEN"
    echo "$hash" > "$BACKUP_DIR/hash.txt"
    echo "Hash enviado a WhatsApp"
}

# Nivel 8: Llave USB
check_usb_key() {
    if [ -d "$USB_MOUNT" ] && mountpoint -q "$USB_MOUNT"; then
        cp -r "$BACKUP_DIR/Brave" "$BACKUP_DIR/Firefox" "$USB_MOUNT/"
        echo "Copia a USB completada"
    else
        echo "Error: USB no montada en $USB_MOUNT"
        exit 1
    fi
}

# Nivel 9: Verificación de integridad (checksum)
verify_integrity() {
    local file="$1"
    sha256sum "$file" > "$file.sha256"
    echo "Integridad verificada para $file"
}

# Nivel 10: Registro de logs
log_action() {
    local log_file="$BACKUP_DIR/backup_log_$(date +%F).log"
    echo "$(date): $1" >> "$log_file"
}

# Bypass
check_bypass() {
    read -sp "Ingresá la clave bypass (o Enter para continuar): " input
    if [ "$input" = "$BYPASS_KEY" ]; then
        echo "Bypass activado, saltando seguridad."
        exit 0
    fi
}

# Ejecutar respaldo
main() {
    check_bypass

    # Respaldar Brave y Firefox
    cp ~/.config/BraveSoftware/Brave-Browser/Default/Bookmarks "$BACKUP_DIR/Brave/Bookmarks_$(date +%F).json"
    rsync -avh ~/.config/BraveSoftware/Brave-Browser/Default/ "$BACKUP_DIR/Brave/Default_$(date +%F)/"
    cp "$PROFILE_DIR/places.sqlite" "$BACKUP_DIR/Firefox/places_$(date +%F).sqlite"
    rsync -avh "$PROFILE_DIR/" "$BACKUP_DIR/Firefox/tu_perfil.default-release_$(date +%F)/"

    # Nivel 1 y 2: Cifrado AES-256 y GPG
    backup_and_encrypt ~/.config/BraveSoftware/Brave-Browser/Default/ "$BACKUP_DIR/Brave" "Brave_Default"
    backup_and_encrypt "$PROFILE_DIR" "$BACKUP_DIR/Firefox" "Firefox_Profile"
    encrypt_with_gpg_key ~/.config/BraveSoftware/Brave-Browser/Default/ "$BACKUP_DIR/Brave" "Brave_Default"
    encrypt_with_gpg_key "$PROFILE_DIR" "$BACKUP_DIR/Firefox" "Firefox_Profile"
    log_action "Cifrado AES-256 y GPG completado"

    # Nivel 3: Google 2FA
    check_2fa
    log_action "2FA verificado"

    # Nivel 4: Huella digital
    check_fingerprint
    log_action "Huella digital verificada"

    # Nivel 5: Iris
    check_iris
    log_action "Iris simulado verificado"

    # Nivel 6: Código al correo
    send_alphanumeric_code
    log_action "Código alfanumérico enviado"

    # Nivel 7: Hash a WhatsApp
    send_hash_whatsapp
    log_action "Hash enviado a WhatsApp"

    # Nivel 8: Copia a USB
    check_usb_key
    log_action "Copia a USB completada"

    # Nivel 9: Verificar integridad
    verify_integrity "$BACKUP_DIR/Brave/Bookmarks_$(date +%F).json"
    verify_integrity "$BACKUP_DIR/Firefox/places_$(date +%F).sqlite"
    log_action "Integridad verificada"

    # Nivel 10: Sincronizar a otras compus
    for HOST in "${HOSTS[@]}"; do
        rsync -avh -e ssh "$BACKUP_DIR/Brave/" "$USER@$HOST:/home/$USER/.config/BraveSoftware/Brave-Browser/Default/"
        rsync -avh -e ssh "$BACKUP_DIR/Firefox/" "$USER@$HOST:/home/$USER/.mozilla/firefox/tu_perfil.default-release/"
    done
    log_action "Sincronización completada"
}

main

Comentarios

Entradas populares