Salta ai contenuti
getnextpdf.com

Premium edizione

Due canali di distribuzione: ionCube e sorgente firmato

NextPDF Pro ed Enterprise vengono distribuiti in due forme, che puoi considerare come due canali per lo stesso prodotto:

  • Codificato con ionCube — PHP installabile il cui sorgente è codificato ed eseguito tramite l’ionCube Loader a runtime.
  • Sorgente in chiaro firmato — sorgente PHP leggibile, firmato crittograficamente in modo da poter verificare che sia autentico e non modificato.

Entrambi i canali portano con sé la stessa licenza e gli stessi diritti (il NextPDF Commercial License Agreement governa entrambi, e l’accesso al sorgente leggibile non è mai un permesso di copiarlo o ridistribuirlo). Esistono perché due tipi di cliente hanno due problemi diversi da risolvere, e fissiamo il prezzo di ciascun canale in funzione del compromesso che comporta — non perché uno abbia più funzionalità dell’altro. Questa pagina spiega il ragionamento, così da poter scegliere a occhi aperti. Per la configurazione pratica della build codificata, vedi Configurare l’ionCube Loader.

Perché proteggere il sorgente è un problema reale in PHP

Sezione intitolata “Perché proteggere il sorgente è un problema reale in PHP”

PHP viene distribuito ed eseguito come sorgente. A differenza dei linguaggi che compilano in un binario opaco o in bytecode prima della distribuzione, il sorgente operativo di un pacchetto PHP è ciò che installi — il runtime lo legge direttamente. Questo è uno dei grandi punti di forza di PHP: è trasparente, facile da ispezionare, facile da correggere, ed è in gran parte il motivo per cui il suo ecosistema open source è così vivace.

È anche il motivo per cui un progetto PHP commerciale ha un problema di protezione più difficile rispetto ai suoi omologhi altrove. L’investimento che confluisce in un motore profondo e specializzato — gli anni di lavoro sugli standard, i casi limite, le suite di test — risiede in un sorgente che, per impostazione predefinita, viaggia in chiaro. Quell’investimento è un segreto commerciale: il know-how pratico che finanzia lo sviluppo continuo, e un bene che la legge riconosce e tutela. Proteggerlo non significa nascondersi dagli utenti; significa mantenere finanziabile il lavoro.

È anche per questo che la protezione del sorgente è semplicemente più facile negli ecosistemi che distribuiscono artefatti compilati o in bytecode — Java è l’esempio comune: la forma distribuita è già un passo più in là rispetto al sorgente operativo, quindi un fornitore commerciale ha meno da proteggere. Questo ha reso più semplice finanziare strumenti commerciali profondi e specializzati in quel contesto, mentre gran parte del lavoro PHP serio si è invece affidata alla buona volontà della comunità open source. Non riteniamo che sia una legge di natura. Anche PHP merita strumenti professionali, attivamente mantenuti e all’altezza degli standard — e rendere il sorgente difendibile è ciò che rende sostenibile il finanziamento di quel lavoro.

La risposta di NextPDF è l’open core con un premium a pagamento. Il motore su cui costruisci — nextpdf/core — è Apache-2.0 e rimane aperto; puoi leggerlo, forkarlo e distribuirlo commercialmente. NextPDF Pro ed Enterprise sono le edizioni private, e i loro ricavi sono ciò che paga la manutenzione attiva, la conformità agli standard e le funzionalità future. Questa divisione è intenzionale: ci consente di servire team che hanno bisogno di capacità professionali, di livello B2B, e di restare accoglienti verso i singoli sviluppatori, perché noi stessi abbiamo iniziato come sviluppatori indipendenti amanti del software libero. Il ragionamento dietro la metà aperta è trattato in Open core, nessun lock-in; questa pagina riguarda il modo in cui la metà a pagamento ti raggiunge.

Il canale ionCube — protezione che mantiene basso il prezzo

Sezione intitolata “Il canale ionCube — protezione che mantiene basso il prezzo”

Per la maggior parte dei clienti, il canale codificato con ionCube è quello predefinito. Codificare il sorgente — un modo riconosciuto per aumentare il costo della manomissione e dell’appropriazione indebita — ci permette di proteggere il codice premium con molto meno overhead: meno gestione su misura del sorgente, meno amministrazione di distribuzione e accesso, e un onere legale e di applicazione dei diritti più leggero rispetto a quello necessario per proteggere il sorgente in chiaro su larga scala. Quei risparmi sono reali, e li trasferiamo a te.

Il compromesso è un modesto costo a runtime: il Loader decodifica i file codificati mentre PHP è in esecuzione, il che aggiunge un po’ di overhead. Riflettiamo quel compromesso nel prezzo, così da poterlo valutare onestamente anziché scoprirlo in seguito. In pratica l’overhead è di solito ridotto e spesso trascurabile nei deployment tipici — ed è di fatto un non-problema su un host che già esegue l’ionCube Loader per altri software. I carichi di lavoro sensibili alle prestazioni dovrebbero misurarlo rispetto al proprio profilo; per la grande maggioranza dei deployment il canale codificato è semplicemente l’opzione a costo inferiore, ossia proprio l’incontro tra domanda e offerta che vogliamo realizzare. Configurare il Loader è un passaggio una tantum, documentato in Configurare l’ionCube Loader.

Il canale sorgente firmato — per regolamentazione, audit e garanzia della supply chain

Sezione intitolata “Il canale sorgente firmato — per regolamentazione, audit e garanzia della supply chain”

Alcuni clienti non possono accettare codice codificato nel proprio runtime. Le organizzazioni soggette a una forte regolamentazione, o con rigorosi requisiti di sicurezza della supply chain e di audit, hanno bisogno di leggere, esaminare e verificare ciò che eseguono — e di norma dispongono del budget che tali requisiti implicano. Per loro offriamo il canale sorgente in chiaro firmato: le stesse edizioni distribuite come sorgente leggibile, firmato crittograficamente in modo che se ne possano verificare origine e integrità.

Questo corrisponde direttamente al modo in cui la moderna sicurezza della supply chain si aspetta che il software venga gestito: sorgente distribuito in un pacchetto firmato digitalmente, firme verificate prima dell’uso e sorgente ispezionabile preferito a un artefatto opaco ai fini della garanzia e dell’audit (NIST SP 800-204D). Qui il codice non è protetto dalla codifica — è protetto da legge e contratto: rimane il segreto commerciale riservato di PATEON, l’azienda dietro NextPDF, e ciò che puoi e non puoi farne è stabilito dal NextPDF Commercial License Agreement. Poter leggere il sorgente non è mai un permesso di copiarlo, ridistribuirlo o concederlo in sublicenza.

Questo canale costa di più, e il motivo è l’inverso di quello di ionCube: elimina l’overhead a runtime, ma sposta l’onere della protezione di nuovo su contratto, fiducia e amministrazione — che è il costo che ci accolliamo affinché i clienti vincolati alla conformità possano adempiere ai propri obblighi.

I canali differiscono anche per come viene verificata la licenza mentre la tua applicazione è in esecuzione, e per i deployment offline o air-gapped questo è di solito il fattore decisivo.

Il canale ionCube verifica la propria licenza periodicamente online. Una build premium distribuita tramite il canale codificato si connette al servizio di licenza di NextPDF a cadenza regolare — all’incirca un controllo ogni 7 giorni che rinnova un lease di circa 14 giorni. Finché il deployment riesce a raggiungere il servizio entro quella finestra, tutto funziona normalmente. Se resta offline oltre il lease, le funzionalità premium si mettono in pausa e il motore ripiega sul Core gratuito — non si arresta, non genera errori e non va in crash — e riprendono automaticamente non appena la connettività ritorna. Quel lease online è anche ciò che rende applicabile il numero di postazioni concesse e consente a una revoca di avere effetto entro la finestra del lease (circa 14 giorni, più un breve periodo di tolleranza). Un controllo invia solo un identificatore di licenza e un hash con salt dell’impronta — mai il contenuto dei tuoi documenti, e mai un’impronta grezza o un indirizzo IP.

Il canale sorgente firmato può funzionare completamente offline. Poiché la sua licenza firmata è un artefatto autonomo che il motore verifica localmente, il canale sorgente firmato non richiede alcuna connettività periodica e si adatta ai deployment air-gapped, con l’unico limite della validità della licenza stessa. Qui il numero di postazioni è un limite contrattuale fissato dal tuo accordo anziché qualcosa applicato a runtime, una revoca si applica al successivo controllo online o tramite un aggiornamento del prodotto, e un deployment puramente offline non invia nulla.

Due orologi distinti — non confonderli. Il lease di circa 14 giorni del canale ionCube riguarda la connettività — per quanto tempo un deployment tollera di restare offline. È indipendente dai circa 30 giorni di tolleranza che entrambi i canali concedono dopo la data di fine di un abbonamento, durante i quali le funzionalità premium continuano a funzionare mentre effettui il rinnovo, prima che il motore ripieghi sul Core. La scadenza di un lease e la scadenza di un abbonamento sono eventi diversi su timer diversi.

Qualunque canale utilizzi, la modalità di errore è la stessa e sempre sicura: NextPDF degrada al Core gratuito e open source. Non si blocca mai, non ti esclude mai dal software che hai già distribuito e non si arresta mai a metà esecuzione.

I due canali non sono due prodotti. Conferiscono diritti di licenza identici e lo stesso software; la differenza è come viene protetto il sorgente, come viene verificata la licenza a runtime e quanto costa:

Codificato con ionCubeSorgente in chiaro firmato
Che cosa eseguiPHP codificato, tramite l’ionCube LoaderSorgente PHP leggibile e firmato
Come è protetto il sorgenteCodifica (una misura tecnologica) più la licenzaLa licenza e la legge sul segreto commerciale (nessuna codifica)
Ideale perLa maggior parte dei deployment; costo più bassoEsigenze di regolamentazione / audit / sicurezza della supply chain
Costo a runtimeUn piccolo overhead del Loader (spesso trascurabile; misuralo se sensibile alle prestazioni)Nessuno aggiunto da noi
Controllo online della licenzaPeriodico (~controllo ogni 7 giorni, lease di ~14 giorni)Facoltativo; verifica localmente e funziona offline
Offline / air-gappedFino alla finestra del lease, poi le funzionalità premium si mettono in pausa ripiegando sul Core (ripresa automatica alla riconnessione)Pienamente supportato; nessuna connettività periodica
Numero di postazioniApplicato tramite il lease onlineContrattuale (secondo il tuo accordo); non applicato a runtime
Efficacia della revocaEntro la finestra del lease (~14 giorni + breve tolleranza)Al successivo controllo online, o tramite un aggiornamento del prodotto
Dati di licenza inviatiSolo ID di licenza + hash con salt dell’impronta (mai contenuto, IP o impronta grezza)Nulla quando completamente offline
DirittiIdentici — vedi l’EULAIdentici — vedi l’EULA

Il prezzo riflette quel compromesso tra protezione e runtime, non un divario di funzionalità. Per i prezzi e le edizioni attuali, vedi Acquisto e licenze e la pagina dei prezzi collegata da lì; questa pagina della documentazione deliberatamente non ripete prezzi o termini di licenza.

Preferiremmo che l’ecosistema PHP avesse al suo interno più strumenti seri, ben finanziati e mantenuti professionalmente — e meno progetti che si esauriscono in silenzio perché non c’era un modo sostenibile per finanziare la profondità di cui avevano bisogno. Proteggere il sorgente è ciò che ci permette di investire in quella profondità mantenendo aperto il core e accessibile il canale codificato. E poiché la fiducia si guadagna, cerchiamo di essere trasparenti proprio su questo: che cosa protegge ciascun canale, quanto ti costa e perché — così che il compromesso sia tuo da soppesare, non nostro da nascondere.