Negli ultimi giorni mi sono imbattuto in una problematica molto particolare. Pubblicando sull'Apple Store alcune mie nuove app che fanno uso di cifratura AES, ho scoperto che è necessario fare una dichiarazione al U.S. Bureau of Industry and Security. In particolare bisogna sottomettere a questo organismo governativo statunitense il modulo chiamato "Encryption Registration Supplement No. 5 to Part 742".
In base a quello che ho sostanzialmente capito, se si esporta dall'USA ad altri paesi un prodotto che utilizza tecnologie di cifratura che vanno oltre determinati standard (per esempio se usate AES a più di 64 bit), bisogna dichiararlo con questo modulo al fine di ottenere un Encryption Registration Number (ERN). Poiché quando si pubblica un'app sull'Apple Store si invia ai server di Apple in USA un software che poi viene venduto in tutto il mondo (quindi esportato), è necessario fare questo tipo di dichiarazione ed inviare l'ERN ad Apple nel momento in cui si pubblicano le applicazioni.
Da italiano quale sono, abituato agli standard della pubblica amministrazione del Bel Paese, mi sono immediatamente preoccupato dei tempi che tale procedura avrebbe comportato. In realtà dopo aver svolto la procedura posso rassicurare tutti coloro che, come me, potrebbero trovarsi nella stessa situazione: l'USA non è l'Italia e, anche se tale obbligo potrebbe risultare essere ai più eccessivo (i soliti discorsi dello Zio Sam che vuole sapere e controllare tutto), in realtà non se ne sono andate più di 4 ore per completare il tutto :)
La procedura da seguire è abbastanza semplice:
- Andate sul sito https://snapr.bis.doc.gov/registration/Register.do e registratevi
- Vi invieranno un paio di email per confermare la registrazione e scegliere le vostre credenziali. Questo è essenzialmente tutto il tempo che perderete, perché avute le credenziali il resto della procedura sarà immediata
- Autenticatevi sul sito https://snapr.bis.doc.gov/snapr/exp/UserLoginLoad
- Selezionate la voce "Create Work Item"
- Come type selezionate "Encryption Registration" e mettete un Reference Number nel formato richiesto (è un numero di riferimento di vostra fantasia, ma con un formato da rispettare)
- Cliccate su "Create"
- Nella schermata che vi verrà presentata, potrete, in fondo, allegare documenti in formato PDF. Create un documento nel formato del Supplement No. 5 to Part 742 e compilatelo (un esempio di compilazione potete trovarla in questo blog). Allegate il documento appena creato in formato PDF
- Procedete nel "Submit" del work item
- Completata questa procedura, tornate alla home del sito e, restando autenticati, andate nell'elenco dei messaggi ricevuti e troverete un messaggio come questo contenente l'ERN di cui avete bisogno
- Fate uno screenshot del messaggio, mettetelo in un documento ed allegate questo documento all'atto della pubblicazione dell'app sull'Apple Store
Come anticipato, non lasciatevi intimorire dalla procedura: è semplice e veloce e potrete sottomettere ad Apple la vostra app che usa API di encryption senza alcun timore che in futuro ve la ritirino dall'Apple Store.
Chiaramente tale procedura è necessaria solo ed esclusivamente se la vostra app usa tecnologie di cifratura oltre determinati standard (sul sito del Bureau trovate le specifiche), mentre non è richiesta in altri casi. Ponete particolare attenzione, infine, nel caso in cui avete implementato un qualche metodo di cifratura custom: se l'uso di algoritmi standard richiede al più l'ERN, se ne avete inventato uno tutto vostro la documentazione da presentare sarà molto più complessa e i tempi risulteranno essere più lunghi.