
Framework crittografico facile da usare per la protezione dei dati: messaggistica sicura con forward secrecy e archiviazione sicura dei dati. API unificate su 14 piattaforme.
Themis è una libreria open-source di servizi crittografici di alto livello per proteggere i dati durante l'autenticazione, l'archiviazione, la messaggistica, lo scambio in rete, ecc. Themis risolve il 90% dei casi d'uso tipici di protezione dei dati comuni alla maggior parte delle app.
Themis aiuta a realizzare funzionalità crittografiche, sia semplici che complesse, in modo facile, rapido e sicuro. Themis consente agli sviluppatori di concentrarsi sulla cosa principale: sviluppare le loro applicazioni.
Crittografare i segreti salvati nelle tue app e nel backend: chiavi API, token di sessione, file.
Crittografare i campi dati sensibili prima di archiviarli nel database ("crittografia a livello di campo lato applicazione").
Supportare la crittografia ricercabile, la tokenizzazione dei dati e il data masking con Themis e Acra.
Scambiare segreti in modo sicuro: condividere dati sensibili tra le parti, creare una semplice app di chat tra pazienti e medici.
Costruire schemi di crittografia end-to-end con architettura centralizzata o decentralizzata: crittografare i dati localmente su un'app, utilizzarli crittografati ovunque e decrittografarli solo per l'utente autenticato.
Mantenere sessioni sicure in tempo reale: inviare messaggi crittografati per controllare i dispositivi connessi dalla tua app, ricevere dati sensibili in tempo reale dalle tue app al tuo backend.
Confrontare segreti tra le parti senza rivelarli (autenticazione basata su prove a conoscenza zero).
Una sola libreria crittografica che fa per tutti: Themis è la scelta ideale per le app multi-piattaforma (ad es. app iOS+Android+Electron con backend Node.js) perché fornisce un'API compatibile al 100% e funziona allo stesso modo su tutte le piattaforme supportate.
Themis fornisce componenti pronti all'uso (“crittosistemi”) che semplificano l'utilizzo delle operazioni crittografiche di sicurezza fondamentali.
Themis offre 4 importanti servizi crittografici:
Abbiamo creato Themis per costruirci sopra altri prodotti, come Acra e Hermes.
Consulta la pagina Installazione per installare Themis per la tua applicazione mobile, web, desktop o lato server. Consigliamo vivamente i pacchetti di installazione invece della compilazione dal sorgente.
Themis è disponibile per i seguenti linguaggi/piattaforme; fai riferimento alle guide per linguaggio per ciascuno di essi:
Themis supporta le seguenti architetture CPU: x86_64/i386, ARM, Apple Silicon (ARM64), varie architetture Android.
Compiliamo e verifichiamo Themis sulle ultime versioni stabili dei sistemi operativi:
Prevediamo di ampliare questo elenco con un insieme più ampio di piattaforme. Se desideri aiutarci a migliorare Themis o a portarla sulla tua piattaforma o nel tuo linguaggio preferito — contattaci.
La documentazione di Themis contiene la documentazione ufficiale in continua evoluzione, che copre tutto, dalle linee guida per la distribuzione ai casi d'uso, con brevi spiegazioni dei crittosistemi e dell'architettura alla base della libreria principale Themis.
Consulta la documentazione per saperne di più su:
Themis si basa su algoritmi crittografici collaudati implementati da note librerie crittografiche come OpenSSL, LibreSSL e BoringSSL. Consulta la documentazione Crittografia in Themis per saperne di più.
Questa distribuzione include software crittografico. Il paese in cui risiedi attualmente potrebbe avere restrizioni sull'importazione, il possesso, l'uso e/o la riesportazione verso un altro paese di software di crittografia. PRIMA di utilizzare qualsiasi software di crittografia, verifica le leggi, i regolamenti e le politiche del tuo paese in merito all'importazione, al possesso, all'uso e alla riesportazione di software di crittografia, per stabilire se è consentito. Per maggiori informazioni, consulta http://www.wassenaar.org/.
Il Dipartimento del Commercio degli Stati Uniti, Bureau of Industry and Security (BIS), ha classificato questo software come Export Commodity Control Number (ECCN) 5D002.C.1, che include software per la sicurezza delle informazioni che utilizza o esegue funzioni crittografiche con algoritmi asimmetrici. La forma e le modalità di questa distribuzione la rendono idonea all'esportazione ai sensi dell'eccezione License Exception ENC Technology Software Unrestricted (TSU) (vedi BIS Export Administration Regulations, Sezione 740.13) sia per il codice oggetto che per il codice sorgente.
Se la tua applicazione utilizza Themis e vuoi pubblicarla sull'Apple App Store, ci sono alcuni requisiti per dichiarare l'uso di qualsiasi forma di crittografia.
Leggi le normative di esportazione Apple sulla crittografia per Themis per scoprire cosa fare.
Ogni modifica alla libreria core di Themis viene esaminata e approvata dal nostro team interno di crittografi e ingegneri della sicurezza. Per ogni release, eseguiamo audit interni da parte di crittografi che non lavorano su Themis.
Utilizziamo molti test di sicurezza automatizzati, come analizzatori statici del codice, strumenti di fuzzing, analizzatori di memoria, test unitari (per ogni piattaforma), test di integrazione (per individuare problemi di compatibilità tra i diversi linguaggi supportati da Themis, i sistemi operativi e le architetture x86/x64). Scopri di più sulle nostre pratiche di test di sicurezza nella documentazione sulla sicurezza di Themis.
Se ritieni di aver trovato un problema relativo alla sicurezza, inviaci un'email a [email protected]. Potrebbe applicarsi un programma di bug bounty.
In quanto libreria di servizi crittografici per piattaforme mobili e server, Themis è uno strumento di crittografia "all'avanguardia", che garantisce scambio e archiviazione sicuri dei dati.
Con Themis puoi raggiungere una migliore conformità con le attuali normative sulla privacy dei dati, come:
Scopri di più sulle Normative nella documentazione.
Themis è consigliata da OWASP come libreria di crittografia dei dati per piattaforme mobili.
Themis è ampiamente utilizzata sia in progetti non commerciali che commerciali; alcune applicazioni e librerie pubbliche sono disponibili qui.
Vuoi essere presente anche tu sul nostro blog e nell'elenco dei contributori? Scrivici a proposito del progetto che hai creato con Themis!
Se stai cercando qualcosa a cui contribuire e guadagnare rispetto eterno, scegli una delle attività nell'elenco delle issue. Inizia dalle nostre linee guida per i contributi.
Supportare Themis su tutte queste numerose piattaforme è un lavoro impegnativo, ma facciamo del nostro meglio per rendere l'uso di Themis comodo per tutti. La maggior parte dei problemi che gli utenti incontrano è legata al processo di installazione e alla gestione delle dipendenze. Se incontri difficoltà, faccelo sapere.
Presso Cossack Labs offriamo servizi di supporto professionale per Themis e per le applicazioni che la utilizzano.
Questo supporto include, ma non si limita a: integrazione della libreria, con un focus su applicazioni web e mobili; progettazione e realizzazione di schemi di crittografia end-to-end per applicazioni mobili; audit di sicurezza, per integrazioni interne della libreria o protocolli di alto livello; sviluppo di applicazioni personalizzate che richiedono crittografia; consulenza e servizi di formazione.
Inviaci un'email a [email protected] oppure consulta i servizi di cybersecurity di Cossack Labs.
Se vuoi fare una domanda tecnica, segnalare un bug o suggerire una funzionalità, non esitare ad aprire una discussione su GitHub, a segnalare una issue nel tracker delle issue, oppure a scrivere a [email protected].
Per contattare la divisione commerciale di Cossack Labs Limited, inviaci un'email a [email protected].
| Piattaforma | Documentazione | Esempi | Versione |
|---|
| ⚛️ React Native (iOS, Android) | Guida React Native | docs/examples/react-native | |
| 🔶 Swift (iOS, macOS) | Guida Swift | docs/examples/swift | |
| 📱 Objective-C (iOS, macOS) | Guida Objective-C | docs/examples/objc | |
| ☕️ Java (Desktop) | Guida Java (Desktop) | docs/examples/java | |
| ☎️ Java (Android) | Guida Java (Android) | docs/examples/android | |
| 📞 Kotlin (Android) | Guida Kotlin (Android) | docs/examples/android | |
| 🔻 Ruby | Guida Ruby | docs/examples/ruby | |
| 🐍 Python | Guida Python | docs/examples/python | |
| 🐘 PHP | Guida PHP | docs/examples/php | |
| ➕ C++ | Guida C++ | docs/examples/c++ | |
| 🍭 Node.js | Guida Javascript (Node.js) | docs/examples/js | |
| 🖥 WebAssembly | Guida Javascript (WebAssembly) | docs/examples/js | |
| 🐹 Go | Guida Go | docs/examples/go | |
| 🦀 Rust | Guida Rust | docs/examples/rust | |
| 🕸 С++ PNaCl per Google Chrome | Progetto WebThemis |