Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Maggio 10, 2025, 07:30:44 am

Titolo: [RISOLTO]Firmare eseguibile
Inserito da: bonmario - Maggio 10, 2025, 07:30:44 am
Ciao a tutti,
scusate se non sarò preciso, ma sono cose abbastanza nuove per me ...

Ieri, poco prima di uscire dal lavoro, ho scoperto che dopo un aggiornamento dell'antivirus aziendale, alcuni miei eseguibili creati con Lazarus vengono cancellati perché "potenzialmente pericolosi".
Ho chiesto all'Ufficio Tecnico, e mi hanno detto che uno dei problemi è che gli eseguibili non sono firmati, e l'altro è che fanno operazioni "potenzialmente pericolose".
Al momento non so altro ...
Tenete conto che uno dei programmi in questione è quello che uso per farmi i backup da circa 20 anni, e che mi ha salvato diverse volte, sarebbe un dramma non poterlo usare.
P.S. Quando l'ho fatto presente, mi hanno risposto che per i backup devo usare OneDrive  :-[ :'(

Domanda: per firmare l'eseguibile, basta compilare i dati in "Informazioni di versione", che si trova nelle opzioni del progetto?

Grazie, Mario
Titolo: Re:Firmare eseguibile
Inserito da: schumi - Maggio 10, 2025, 09:30:28 am
ciao,
mi pare che si intenda aggiungere una chiave personale, come la firma dei PDF. Non l'ho mai fatto ma prova a cercare SignTool.

Per l'antivirus basta che vengano inserite le esclusioni in base alle directory e nome file.
Titolo: Re:Firmare eseguibile
Inserito da: DragoRosso - Maggio 10, 2025, 03:08:03 pm
Ciao, io firmo normalmente i programmi perchè da tempo, come per te, gli uffici IT dei clienti li vogliono firmati.

Da quest'anno ho la firma digitale EV (Extended Validation) che consente di firmare anche i driver di Windows.
Costa un botto, oltre ad avere un percorso amministrativo per il rilascio non proprio semplice (ci vuole circa 1 mese di tempo per il primo rilascio e una infinità di "domande" / "risposte")

Come privato puoi solo optare per una firma OV che costa meno e ha un valore di firma un pò "minore" ma comunque sufficiente a fare passare i controlli ai tuoi software (la EV dà un punteggio maggiore allo scan degli antivirus, garantendo una migliore affidabilità, mentre la OV dà un punteggio più basso). Esiste sia con token USB fisico che su Cloud (in questo caso ha la necessità di avere Internet disponbile al momento della firma).

Il software firmato e dotato di un marcatura temporale (sono gratutite fortunatamente per la marcatura degli eseguibili) non scade mai, anche se la firma risulta scaduta (ovviamente non deve essere revocata).

mi pare che si intenda aggiungere una chiave personale, come la firma dei PDF. Non l'ho mai fatto ma prova a cercare SignTool.

Il processo e l'"oggetto" sono simili, ma la firma è diversa. La firma digitale qualificata non è sufficiente per la firma degli eseguibili (la firma è di tipo SHA1 nel caso dei programmi ed è "obsoleta" mentre è SHA256 per i PDF ed è OK).

Per l'antivirus basta che vengano inserite le esclusioni in base alle directory e nome file.

Se è sotto gli IT, non gli lasceranno aggiungere una esclusione ovviamente.

Comunque poi il processo di firma è semplice tramite "signtool" di Microsoft come indicato da @schumi o altri tools simili di terze parti.
Qualsiasi eseguibile che io generi (in questo caso con Delphi), parte uno script che lo firma (ammesso che abbia il token USB inserito nel PC).
Titolo: Re:Firmare eseguibile
Inserito da: DragoRosso - Maggio 10, 2025, 03:40:18 pm
Domanda: per firmare l'eseguibile, basta compilare i dati in "Informazioni di versione", che si trova nelle opzioni del progetto?
Grazie, Mario

Mi sono dilungato in spiegazioni varie ma non ho risposto puntualmente alla tua domanda.

No, la firma deve essere effettuata tramite un programma (come signtool) e un certificato personale su token USB o su Cloud. Questi certificati vengono rilasciati da enti certificatori riconosciuti Possono essere richiesti da privati o piccole realtà (certificati OV) oppure solo per chi ha una attività con Partita IVA ci sono i certificati EV.

Le firme digitali qualificate che servono a firmare i documenti come i PDF o per altre attività non possono firmare un eseguibile, penso sia un limite solo "commerciale" imposto visto che le firme digitali costano qualche decina di Euro, mentre i certificati di frima eseguibili costano centinaia di Euro.

Tra i principali ci sono:

1) Certum (Europeo);

2) DigiCert;

3) Sectigo;
Titolo: Re:Firmare eseguibile
Inserito da: bonmario - Maggio 10, 2025, 04:17:15 pm
Ok, grazie a tutti per le risposte, ma a questo punto rinuncio, sperando che la cosa arrivi a chi deve arrivare, e faccia cambiare idea al reparto IT.

I programmi in questione, sono fatti ad uso e consumo dell'azienda per cui lavoro, e servono ad automatizzare e velocizzare determinate operazioni.
Alcuni di questi girano da una ventina di anni ...
E' assurdo che vengano cancellati perché da un giorno all'altro qualcuno ha deciso che non sono sicuri perché non sono firmati
Titolo: Re:Firmare eseguibile
Inserito da: DragoRosso - Maggio 11, 2025, 10:02:18 am
Ok, grazie a tutti per le risposte, ma a questo punto rinuncio, sperando che la cosa arrivi a chi deve arrivare, e faccia cambiare idea al reparto IT.

Per tamponare temporaneamente, se lo ritieni te li posso firmare io i programmi. Una volta firmati però, perdono la firma se vengono ricompilati.
Titolo: Re:Firmare eseguibile
Inserito da: bonmario - Maggio 11, 2025, 04:36:55 pm
Ti ringrazio veramente tanto per la disponibilità, ma non ha senso che un'azienda blocchi/cancelli dei programmi che permettono a se stessa di lavorare in maniera più veloce e sicura.
Titolo: Re:Firmare eseguibile
Inserito da: DragoRosso - Maggio 12, 2025, 09:11:33 am
Ti ringrazio veramente tanto per la disponibilità, ma non ha senso che un'azienda blocchi/cancelli dei programmi che permettono a se stessa di lavorare in maniera più veloce e sicura.

Hai ragione da vendere, ma purtroppo stanno procedendo delle normative che lasciano poco spazio alla "ragione". Ne sò qualcosa perchè mio figlio lavora in una struttura soggetta al "NIS2" sotto controllo dell'autorità nazionale per la cybersicurezza (qui la normativa NIS2: https://www.acn.gov.it/portale/nis (https://www.acn.gov.it/portale/nis) )

Attualmente non esiste niente di sicuro che non sia convalidato da un "pezzo di carta". E ciò che non è sicuro non può girare impunemente nei sistemi aziendali.
Io produco anche delle "macchinette" (strumenti di misura ottici) che non vanno in rete. Anche li ho dovuto firmare i programmi (DLL comprese, anche quelle non mie che necessitavano e non erano firmate) ....

Gli IT di nuova generazione vengono formati specificatamente su ciò e quindi poi ci si ritrova in condizioni operative molto rigide.
Titolo: Re:Firmare eseguibile
Inserito da: nomorelogic - Maggio 12, 2025, 01:00:17 pm
come accennato da schumi, visto che sono programmi nati in azienda e per l'azienda, mi muoverei sull'esclusione dall'antivirus


Edit:
con l'occasione segnalo il seguente link
https://wiki.freepascal.org/Code_Signing_for_Windows
Titolo: Re:Firmare eseguibile
Inserito da: bonmario - Maggio 12, 2025, 01:07:56 pm
come accennato da schumi, visto che sono programmi nati in azienda e per l'azienda, mi muoverei sull'esclusione dall'antivirus


Purtroppo non ho margini di manovra per quello: possono farlo solo quelli del reparto IT, ma secondo loro, almeno per i backup, dovrei usare OneDrive ...

Per il link, grazie, domai che torno al lavoro gli d un occhio
Titolo: Re:Firmare eseguibile
Inserito da: DragoRosso - Maggio 12, 2025, 01:40:57 pm
come accennato da schumi, visto che sono programmi nati in azienda e per l'azienda, mi muoverei sull'esclusione dall'antivirus
Purtroppo non ho margini di manovra per quello: possono farlo solo quelli del reparto IT, .....

Posso confermare che per mia esperienza nessun IT pone una esclusione a qualcosa a meno che qualcuno non si faccia carico della relativa responsabilità. E ciò non avviene mai in ambito aziendale. Ricordo anche che le violazioni possono comportare responsabilità penali se accade qualcosa. E quindi è escluso che qualcuno sano di mente se ne faccia carico.

Per @bonmario, potresti spingere affinche l'azienda compri un certificato OV e firmi i tuoi eseguibili (e magari non solo i tuoi). La spesa per una azienda non è eccessiva, potrebbe essere fattibile.
Parla con gli IT e insieme spingete sulla direzione.

Ciao

Titolo: Re:Firmare eseguibile
Inserito da: nomorelogic - Maggio 12, 2025, 03:25:31 pm
Posso confermare che per mia esperienza nessun IT pone una esclusione a qualcosa a meno che qualcuno non si faccia carico della relativa responsabilità. E ciò non avviene mai in ambito aziendale. Ricordo anche che le violazioni possono comportare responsabilità penali se accade qualcosa. E quindi è escluso che qualcuno sano di mente se ne faccia carico.

Lo so che le cose vanno così, purtroppo anche a me capitano queste situazioni però, perdonatemi, ma per me siamo al paradosso:
un'applicazione nata in azienda che fa qualcosa per l'azienda, ha anche senso che ci sia un carico di responsabilità nel caso facesse qualche danno.
Ha senso e lo si può accettare.

Ma introdurre un vincolo che permetta a questa applicazione di funzionare - una specie di certificazione ideata da chi ha realizzato il sistema operativo - beh...

Perdonate lo sfogo, lo so che nella realtà non ho ragione...  :-\
Titolo: Re:Firmare eseguibile
Inserito da: bonmario - Maggio 12, 2025, 05:39:01 pm
Posso confermare che per mia esperienza nessun IT pone una esclusione a qualcosa a meno che qualcuno non si faccia carico della relativa responsabilità. E ciò non avviene mai in ambito aziendale. Ricordo anche che le violazioni possono comportare responsabilità penali se accade qualcosa. E quindi è escluso che qualcuno sano di mente se ne faccia carico.

Lo so che le cose vanno così, purtroppo anche a me capitano queste situazioni però, perdonatemi, ma per me siamo al paradosso:
un'applicazione nata in azienda che fa qualcosa per l'azienda, ha anche senso che ci sia un carico di responsabilità nel caso facesse qualche danno.
Ha senso e lo si può accettare.

Ma introdurre un vincolo che permetta a questa applicazione di funzionare - una specie di certificazione ideata da chi ha realizzato il sistema operativo - beh...

Perdonate lo sfogo, lo so che nella realtà non ho ragione...  :-\


Per esperienze passate, io mi limiterò a far presente la cosa al mio responsabile, facendo presente che quello che prima veniva fatto in automatico nel giro di qualche secondo, adesso va fatto a mano in qualche ora, con altissimi margini di errore

Da lì partiranno email e telefonate, fino a quando la cosa arriverà all'orecchio della persona giusta che farà in modo che si possa tornare ad usare quei programmi

Serve solo pazienza !!!


Ho provato a chiedere qui, solo perché, da ignorante, pensavo che bastasse compilare quei campi nelle proprietà del progetto, quindi cosa di pochi minuti, ma a questo punto mi devo muovere diversamente
Titolo: Re:Firmare eseguibile
Inserito da: DragoRosso - Maggio 12, 2025, 09:43:27 pm
un'applicazione nata in azienda che fa qualcosa per l'azienda, ha anche senso che ci sia un carico di responsabilità nel caso facesse qualche danno.
Ha senso e lo si può accettare.
Ma introdurre un vincolo che permetta a questa applicazione di funzionare - una specie di certificazione ideata da chi ha realizzato il sistema operativo - beh...
Perdonate lo sfogo, lo so che nella realtà non ho ragione...  :-\
Per diversi anni sono stato responsabile IT di una azienda "appartenente" ad una multinazionale e dovevo coordinarrmi con la casa madre.
Erano tempi ancora non sospetti (almeno la situazione non era così calda come ora) ma già allora c'erano grossi vincoli per l'installazione e l'esecuzione dei programmi.

E io, ma ripeto quei tempi erano diversi, consentivo puntualmente a una varietà notevole di programmi di girare sia senza esplicito consenso della casa madre sia con il divieto. Come avete riportato dovrebbe vincere la ragione (ed era così e nessuno ha mai proferito parola) e non il mero "fiscalismo".

Ora, riportato a questi tempi non lo rifarei anche perchè l'azienda avrebbe lo strumento giusto per porre rimedio con un costo minimo.

E nei tempi attuali, questa dovrebbe essere la strada: è come dire che mi curo da solo perchè il dottore costa. Se è necessario l'azienda prende il dottore (il certificato), lo paga e lo usa con i suoi prodotti (i software interni ad esempio).
Titolo: Re:Firmare eseguibile
Inserito da: bonmario - Maggio 13, 2025, 08:36:55 am
Ciao,
ieri ero in ferie, oggi ho visto che mi hanno risposto dal reparto IT, scrivendomi che Microsoft gli ha risposto così:

Citazione
At this time, the submitted files do not meet our criteria for malware or potentially unwanted applications.
The detection has been removed.
Please follow the steps below to clear cached detections and obtain the latest malware definitions.
1. Open command prompt as administrator and change directory to c:\Program Files\Windows Defender
2. Run “MpCmdRun.exe -removedefinitions -dynamicsignatures”
3. Run "MpCmdRun.exe -SignatureUpdate"

L'ho fatto, ed al momento gli eseguibili non vengono più segnalati come pericolisi


Grazie a tutti !
Titolo: Re:Firmare eseguibile
Inserito da: Mimmo - Maggio 13, 2025, 08:52:41 am
Tra i principali ci sono:

1) Certum (Europeo);

2) DigiCert;

3) Sectigo;

Ho dato un'occhiata ai servizi e Certum mi pare abbia un listino decisamente più basso degli altri due. @DragoRosso sai mica se c'è un motivo per queste differenze? Chiedo per ignoranza.