Scenario
Hai un programma di avvio per alcuni software, ti permette di eseguire il software ma ti permetterà anche di cambiare versione e aggiornare a nuove versioni.
Quando il programma di avvio viene eseguito, scarica un file manifest da un URL specifico (integrato nel programma di avvio) per recuperare l'elenco corrente di versioni. Se c'è una versione più recente, l'utente viene avvisato e può aggiornarsi. Se decidono di aggiornare alla nuova versione, estrarrà un altro manifest dallo stesso host di prima, questo è il manifest per la versione specifica.
Questo file contiene un elenco di nomi di file contenuti in questa versione e i rispettivi hash SHA1. Il patcher si connetterà nuovamente allo stesso host per scaricare i file con hash che non corrispondono alle copie locali.
Tutti i file manifest e gli oggetti file per ogni versione sono memorizzati in un singolo bucket S3 in questo esempio. Tutte le richieste vengono effettuate su HTTPS in file compressi con gzip.
difetto?
Penso che questo sarebbe aperto agli attacchi a causa del download semi-automatico di file eseguibili. Non so dove possa entrare un aggressore. Dovrebbero essere firmati tutti i file sul server remoto? O sarà sufficiente verificare il contenuto del file con gli hash SHA1 forniti dal server?
C'è qualcosa che posso fare per mantenerlo al sicuro, o questo tipo di tecnica dovrebbe essere evitata completamente?