A internet atual é um ambiente de alta ameaça. Em particular, ataques à cadeia de suprimentos, nos quais um invasor compromete o processo de download de software e atualizações, são frequentes. Portanto, é importante verificar completamente qualquer software que você baixar antes de instalá-lo e usá-lo.
Fazer isso para o OpenWrt requer a compreensão da organização do servidor web que fornece os binários que você instala. Usando a versão 21.02.0 para o x86-64 como exemplo, a estrutura é:
x8664 e um arquivo de índice contendo uma tabela com colunas para nomes de arquivos abreviados, hash SHA256, tamanho do arquivo e data de criação de cada um dos arquivos de firmware.x86/64sha256sums criada pela chave privada de assinatura 21.02.0.
A chave de assinatura 21.02.0 verifica a assinatura no arquivo sha256sums.asc.
A assinatura no arquivo sha256sums.asc verifica a integridade do arquivo sha256sums.
O hash SHA256 no arquivo sha256sums verifica a integridade dos arquivos individuais no diretório 64.
O mesmo se aplica a todas as outras arquiteturas suportadas.
Observe que as URLs acima são todas https: e não http: - alguns dos links relevantes em https://openwrt.org são http:, mas se você encontrar um, deve alterá-lo para https: antes de usar a URL.
Conexões http: são vulneráveis a interceptação e corrupção.
Para verificar completamente um arquivo de firmware, é necessário baixar:
shasumssha256sums.ascAs etapas são:
sha256sums.sha256sums para verificar o hash SHA256 do arquivo de firmware.
Se você assumir que não foi vítima de um ataque à cadeia de suprimentos e que ninguém comprometeu o site downloads.openwrt.org ou sua conexão com ele, é possível realizar uma verificação parcial omitindo a verificação de assinatura.
Isso não é recomendado.
Se a verificação de assinatura falhar ou se os hashes SHA256 não corresponderem, não atualize o firmware baixado. Seu download pode estar corrompido e bloquear seu roteador, ou pode ser malware e expor sua rede a ransomware.
Para obter a chave GPG correta, consulte Chaves públicas e impressões digitais GPG do OpenWrt
Observe que as versões 23.05 são assinadas com a “Chave PGP para compilações de snapshots autônomas (obsoleta)”.
# Download files cd /tmp curl --progress-bar -o openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz \ https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz curl --progress-bar -o sha256sums \ https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/sha256sums curl --progress-bar -o sha256sums.asc \ https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/sha256sums.asc # Import GPG public key gpg --receive-keys 88CA59E88F681580 # Check GPG public key fingerprint gpg --fingerprint 88CA59E88F681580 # Verify GPG signature gpg --status-fd 1 --with-fingerprint --verify sha256sums.asc sha256sums 2>&1 | grep -e Good # Verify SHA256 checksums sha256sum --ignore-missing -c sha256sums 2> /dev/null | grep -e OK
Para sistemas Linux, existe um script chamado download-check-artifact.sh que automatiza o processo. Certifique-se de especificar a URL usando HTTPS. Além disso, edite o script antes de executá-lo e substitua o descontinuado sks-keyservers.net por keyserver.ubuntu.com ou keys.openpgp.org ou pgp.mit.edu.
Aqui está uma gravação editada de uma sessão usando o script após adicionar a chave de assinatura pública ao chaveiro:
# download-check-artifact.sh https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz 1) Downloading image file ========================= [progress bar] 2) Downloading checksum file ============================ [progress bar] 3) Downloading the GPG signature ================================ [progress bar] 4) Verifying GPG signature ========================== gpg: Signature made Thu Sep 2 09:39:21 2021 MSK gpg: using RSA key 667205E379BAF348863A5C6688CA59E88F681580 gpg: Good signature from "OpenWrt Build System (PGP key for 21.02 release builds) <pgpsign-21.02@openwrt.org>" [ultimate] Primary key fingerprint: 6672 05E3 79BA F348 863A 5C66 88CA 59E8 8F68 1580 5) Verifying SHA256 checksum ============================ openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz: OK Verification done! ================== Firmware image placed in '~/Downloads/OpenWrt/openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz'. Cleaning up.
Se o script retornar um código de erro, verifique o código-fonte para obter uma explicação da causa do erro.
Veja também: Verificando a assinatura GPG
As somas de verificação são armazenadas na visualização de pastas da página do servidor de download. Obtenha-as seguindo estes passos:
https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz/ e abra a URL no seu navegador, por exemplo, https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/sha256sum é a soma de verificação, por exemplo, c41212b58775686ad5ed38904c0798899e6b664e9856c48831f1efce85f09824Software para verificar somas de verificação:
certutil, mas ela não possui uma interface gráfica de usuário, então teremos que usar a linha de comando para interagir com ela.
Para usar o certutil integrado:
certutil -hashfile "%USERPROFILE%\Downloads\openwrt-file-name-here" sha256
SHA256-Hash do arquivo C:\Usuários\NOME DE USUÁRIO\Downloads\openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz: c4 12 12 b5 87 75 68 6a d5 ed 38 90 4c 07 98 89 9e 6b 66 4e 98 56 c4 88 31 f1 ef ce 85 f0 98 24
c41212b58775686ad5ed38904c0798899e6b664e9856c48831f1efce85f09824
Veja também: Verificando a assinatura GPG
As somas de verificação são armazenadas na visualização de pastas da página do servidor de download. Obtenha-as seguindo estes passos:
https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz/ e abra a URL no seu navegador, por exemplo, https://downloads.openwrt.org/releases/21.02.0/targets/x86/64/sha256sum é a soma de verificação, por exemplo, c41212b58775686ad5ed38904c0798899e6b664e9856c48831f1efce85f09824O Mac possui uma ferramenta integrada para verificar somas sha256, mas não possui interface gráfica, então teremos que usar o Terminal para interagir com ela.
shasum -a 256 ./Desktop/file-name-here
c41212b58775686ad5ed38904c0798899e6b664e9856c48831f1efce85f09824 openwrt-21.02.0-x86-64-generic-squashfs-combined.img.gz