|
| 1 | +# HackerInside Text Encryption Utility |
| 2 | +Applicativo che consente di criptare e decriptare testi utilizzando l'algoritmo AES con chiavi a 256 bit e in modalità GCM (Galois/Counter Mode) |
| 3 | + |
| 4 | +# Informazioni Generali |
| 5 | +**Algoritmo Utilizzato:** AES-256-GCM |
| 6 | + |
| 7 | +**Gestione degli IV:** Ogni IV viene generato casualmente (utilizzando la classe SecureRandom) e concatenati ai dati cifrati |
| 8 | + |
| 9 | +**Formato del KeyStore:** JCEKS |
| 10 | + |
| 11 | +# Gestione delle chiavi e KeyStore |
| 12 | +Il software per poter criptare e/o decriptare ha bisogno di accedere ad un KeyStore (JCEKS) da cui preleva la chiave scelta. |
| 13 | +- Appena avviato il software verifica la presenza di un KeyStore con nome "KeyStore.jks", se non trovato provvede a crearne uno chiedendo una password (password generale del KeyStore) |
| 14 | +- Per poter aggiungere una chiave ad un KeyStore è possibile utilizzare l'apposita scheda nelle impostazioni (FILL) oppure utilizzare uno dei tanti KeyStore explorer disponibili (consigliato https://keystore-explorer.org/) |
| 15 | +- Il file "KeyStore.jks" deve rimanere dentro la stessa cartella dove risiede l'eseguibile |
| 16 | + |
| 17 | +# ENCRYPT |
| 18 | +Per criptare un file procedere come segue: |
| 19 | +1) Avviare il programma e sbloccare il KeyStore utilizzando la propria password |
| 20 | +2) Selezionare dal menù a tendina la chiave che si desidera utilizzare |
| 21 | +3) Inserire il testo da criptare (o caricarlo da un file con l'apposita funzione nel menù contestuale) |
| 22 | +4) Premere il bottone ENCRYPT |
| 23 | +Il testo scritto sarà ora criptato, codificato e formattato sulla base delle opzioni da noi scelte. |
| 24 | + |
| 25 | +# DECRYPT |
| 26 | +Per criptare un file procedere come segue: |
| 27 | +1) Avviare il programma e sbloccare il KeyStore utilizzando la propria password |
| 28 | +2) Selezionare dal menù a tendina la chiave che si desidera utilizzare |
| 29 | +3) Inserire il testo da criptato (o caricarlo da un file con l'apposita funzione nel menù contestuale) |
| 30 | +4) Premere il bottone DECRYPT |
| 31 | + |
| 32 | +# Impostazioni generali di formattazione del testo e di codifica |
| 33 | +- **ENCODING:** Codifica che viene utilizzata per la rappresentazione del testo criptato, sono supportate: |
| 34 | + - Base64 |
| 35 | + - Base58 |
| 36 | + - Esadecimale (Hex) |
| 37 | + |
| 38 | +- **SPACING:** Aggiunge uno spazio dopo "n" caratteri |
| 39 | +- **TextArea Wrapping:** Opzione di "a capo automatico" della textArea |
| 40 | +Queste informazioni vengono memorizzate attraverso le "Java Preferences API" |
| 41 | + |
| 42 | +# Zeroize |
| 43 | +In caso di emergenza è possibile premere il bottone rosso ZEROIZE che provvederà ad **CORROMPERE PERMANENTEMENTE IL KEYSTORE** (viene sovrascritto con bytes casuali generati sul momento) |
| 44 | + |
| 45 | +**Procedura di Zeroize:** |
| 46 | +- Premere il bottone ZEROIZE. |
| 47 | +- Prendere nota del codice che viene generato. |
| 48 | +- Inserire il codice ed attendere il messaggio di conferma. |
| 49 | + |
| 50 | +# BEST PRACTICES |
| 51 | +- Generare la chiave di 256 bit in modo completamente casuale (possibilmente usando dispositivi RNG hardware e macchine "air-gapped"). |
| 52 | +- Non archiviare mai la chiave in chiaro e/o su supporti di memoria non sicuri. |
| 53 | +- Comunica sempre al tuo interlocutore l'alias della chiave utilizzare. |
| 54 | +- Evita di utilizzare la funzione per visulizzare la chiave se non sei in un luogo sicuro con dispositivi sicuri. |
| 55 | +- Riavviare il programma dopo aver inserito una nuova chiave. |
| 56 | + |
| 57 | +# Screenshot |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | +# Disclaimer |
| 64 | +Questo software è a puro scopo di divertimento, non deve essere preso in considerazione come punto di riferimento. |
| 65 | + |
| 66 | +Non mi assumo nessuna responsabilità di eventuali danni provocati da questo codice o da suoi possibili usi impropri. |
| 67 | + |
| 68 | +# Credits |
| 69 | +<a href="https://www.flaticon.com/free-icons/data-encryption" title="data encryption icons">Data encryption icons created by kerismaker - Flaticon</a> |
| 70 | + |
| 71 | +# Sitografia |
| 72 | +- https://it.wikipedia.org/wiki/Advanced_Encryption_Standard |
| 73 | +- https://en.wikipedia.org/wiki/Galois/Counter_Mode |
| 74 | +- https://github.com/multiformats/java-multibase/blob/master/src/main/java/io/ipfs/multibase/Base58.java |
0 commit comments