È saggio includere qualcosa come OpenSSL o GnuTLS con un progetto in un repository?

4

Attualmente sto lavorando a un progetto che utilizza la libreria OpenSSL per comunicazioni sicure. Poiché questa libreria è un requisito per la costruzione del progetto, sto considerando di includerla nel repository del progetto. Ecco i pro e i contro come li vedo:

Pro:

  • Creazione autonoma - con un'eccezione, tutto il necessario per la costruzione del progetto è contenuto nel repository. Sarebbe bello se l'utente non avesse bisogno di passare attraverso il problema di installare e configurare le intestazioni / librerie di sviluppo per OpenSSL.

Contro:

  • Problemi di sicurezza - è ovvio che l'unica versione di OpenSSL che chiunque dovrebbe utilizzare è sempre l'ultima. Non appena verrà rilasciata una nuova versione, dovrò aggiornare la versione di OpenSSL nel repository del progetto.

Quindi la domanda si riduce a questo:

Is it wise to include a security library with the project that we need to always ensure gets updated whenever a new release is issued?

    
posta Nathan Osman 08.02.2013 - 20:32
fonte

1 risposta

5

La ragione principale per cui non è opportuno raggruppare la propria copia di OpenSSL (o altre librerie di uso comune) è che il tuo progetto non sarà l'unica cosa che i tuoi utenti finali installano che utilizza quelle librerie .

Se si dipende dalla versione del sistema installato di OpenSSL sull'host su cui si esegue, gli utenti devono solo aggiornare quella copia di OpenSSL quando viene scoperto un nuovo problema di sicurezza in OpenSSL. Se si raggruppa la propria copia, è necessario aggiornare la copia del sistema (per tutti gli altri software che utilizzano tali collegamenti) e la propria applicazione. E questo, naturalmente, presuppone che realizzino - e ricordano - che la tua applicazione non stia utilizzando la copia di sistema di OpenSSL.

Peggio ancora, per ottenere una copia della tua applicazione che si collega alla nuova versione di OpenSSL, devono ricostruire (o ri-scaricare) non solo la tua copia di OpenSSL, ma il resto della tua applicazione . Al contrario, se si utilizzano le librerie OpenSSL del sistema, finché la versione di OpenSSL a cui si sta eseguendo l'aggiornamento è una nuova versione secondaria, senza modifiche ABI dalla versione che avevano utilizzato, è necessario solo ricreare OpenSSL, non la tua applicazione.

Questo peggiora, ovviamente, se anche altre applicazioni di terze parti che utilizzano utilizzano le loro copie private di OpenSSL ...

    
risposta data 08.02.2013 - 20:51
fonte