Migliorare la privacy e la sicurezza di macOS con l’UUID dell’applicazione

Tradotto automaticamente da Deepl

Con l’aggiornamento Sequoia, macOS si basa ora sull’UUID delle applicazioni per vari controlli di privacy e sicurezza, come l’accesso alla rete. Questa nuova caratteristica di macOS potrebbe causare problemi agli utenti finali, come la necessità di riautorizzare spesso le applicazioni 4D create. Per risolvere questo problema, a partire da 4D 20 R9, ogni applicazione 4D creata per macOS ha ora un proprio UUID dell’applicazione. Questa modifica garantisce controlli di accesso meglio calibrati. Approfondiamo i dettagli.

macOS Sequoia e gli UUID delle applicazioni

Con l’introduzione della versione Sequoia, macOS basa ora alcune impostazioni di privacy e sicurezza sugli UUID delle applicazioni anziché sui loro nomi. Se più applicazioni condividono lo stesso UUID, ciò può causare problemi nei controlli di sistema. Ciò è particolarmente rilevante per l’accesso alla Rete locale, come spiegato in questa nota tecnica. Le impostazioni in questione si trovano nella finestra di dialogo Impostazioni di sistema, nel pannello Rete locale della voce Privacy e sicurezza:

UUID univoci delle applicazioni

Prima di 4D 20 R9, le applicazioni 4D create condividevano lo stesso UUID dell’applicazione 4D Volume Desktop o 4D Server utilizzata come origine.

Ora, quando si crea un’applicazione, il suo UUID viene impostato automaticamente utilizzando una combinazione dell’applicazione 4D di origine e dell’identificatore dell’applicazione. Questo garantisce che l’applicazione sia considerata unica sui sistemi macOS e mantiene lo stesso UUID per l’applicazione finché si utilizza la stessa versione dell’applicazione sorgente 4D.

Naturalmente, questo nuovo comportamento si applica anche al componente Build4D!

Buone notizie, non c’è nulla da fare, nulla da modificare nella catena di compilazione, tutto è completamente automatico. Di solito si può smettere di leggere qui, ma se è necessario, forniamo il pieno controllo dell’UUID! Questo è spiegato nel paragrafo seguente.

Funzioni aggiornate

Per supportare questa nuova caratteristica, abbiamo aggiornato la funzione File. getAppInfo() per restituire l’UUID dell’applicazione quando viene applicata all’eseguibile dell’applicazione. Ecco un esempio di codice:

var $app:=File("/Applications/myApp.app/Contents/MacOS/myApp")
var $info:=$app.getAppInfo()

Ecco un esempio di risultato:

{
  "archs": [
    {
      "type": 16777223,
      "name": "x86_64",
      "uuid": "9C286FBFFAAA242FEBF462654C950ECF"
    },
    {
      "type": 16777228,
      "name": "arm64",
      "uuid": "8D8AA28824AACC558AB3D287A43EC53A"
    }
  ]
}

Inoltre, la funzione File. setAppInfo() è stata migliorata per consentire di definire il proprio UUID, se lo si desidera. Ecco come fare:

var $app:=File("/Applications/myApp.app/Contents/MacOS/myApp")
var $info:=$app.getAppInfo()
 
// regenerate uuids for all architectures
For each ($arch; $info.archs)
  $arch.uuid:=Generate UUID
End for each
 
// update the app with the new uuids
$app.setAppInfo($info)

Ci auguriamo che questa funzione migliori l’esperienza dell’utente con le applicazioni distribuite, garantendo che siano uniche e meglio integrate negli ambienti macOS.

Buona codifica!

Avatar
- Product Owner -Damien Fuzeau è entrato a far parte del team 4D Product nel febbraio 2019. In qualità di Product Owner, si occupa di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo lavoro consiste anche nell'assicurarsi che le implementazioni delle funzionalità fornite soddisfino le esigenze dei clienti.Damien si è laureato all'Università di Nantes in ingegneria del software. Ha trascorso più di 23 anni nella sua precedente azienda, prima come sviluppatore (scoprendo 4D nel 1997), poi come responsabile dell'ingegneria e architetto software. Questa azienda è un partner OEM di 4D e ha distribuito software aziendali basati su 4D per migliaia di utenti, su centinaia di server. Damien è quindi abituato allo sviluppo e alla distribuzione di 4D in un contesto multilingue.