Verifica Password
Verificare se una password è sicura utilizzando il machine learning
Verificare la affidabilità di una password Machine learning
Verificare se una password è sicura utilizzando il machine learning è un processo che implica l'addestramento di un modello su un dataset di password, alcune delle quali sono considerate sicure e altre no.Il modello imparerà a identificare pattern che caratterizzano una password sicura rispetto a una non sicura. L'output sarà uno score o una classificazione che indicherà se una password è sicura.
Passi del processo di machine learning
-
Dataset di Password: Abbiamo bisogno di un dataset pubblico di password (ad esempio, da fonti come il RockYou dataset), che contiene password compromesse o comunemente utilizzate.
Le etichette possono essere assegnate in base a regole predefinite di sicurezza. - Pre-processing: Le password vengono pre-processate e convertite in una forma che il modello di machine learning può comprendere. In questo caso, utilizzeremo un approccio di Natural Language Processing (NLP) attraverso TfidfVectorizer, che trasforma le password in vettori numerici.
- Modello: Usiamo un modello di machine learning, come XGBoost, che verrà addestrato sulle password etichettate (sicure o non sicure).
- Pipeline: Utilizziamo una Pipeline di scikit-learn per combinare tutti i passaggi: pre-processing (TfidfVectorizer) e classificazione (XGBoost).
- Valutazione: Una volta addestrato il modello, viene testato su password nuove per verificarne l'efficacia.
- Form di Input: Creiamo un semplice form per permettere agli utenti di inserire una password e ottenere uno score di sicurezza.
Data set Password
Caricare il dataset RockYou
Il file di password RockYou può essere trovato su varie piattaforme, inclusi:
- Kaggle: È possibile scaricare il dataset dal [repository Kaggle](https://www.kaggle.com/datasets/wjburns/common-password-list-rockyoutxt), che contiene una versione compressa del file.
- GitHub: Diverse repository GitHub includono il dataset RockYou, come ad esempio nel progetto "common-password-list" su [GitHub](https://github.com/josuamarcelc/common-password-list).
- TensorFlow Datasets: RockYou è anche disponibile come dataset preconfigurato in [TensorFlow](https://www.tensorflow.org/datasets/catalog/rock_you), utile per applicazioni di machine learning.
Per caricare il file RockYou nel tuo ambiente Python, puoi utilizzare uno dei seguenti metodi:
1.Scaricarlo manualmente da Kaggle o GitHub e poi caricarlo in Python con:
with open('path_to_rockyou.txt', 'r', encoding='latin-1') as f:
passwords = f.readlines()
2. Usare la libreria `kaggle` per scaricarlo direttamente, previa configurazione API:
!kaggle datasets download -d wjburns/common-password-list-rockyoutxt
Altri dataset di password
Oltre a RockYou, ci sono molti altri dataset di password disponibili:- RockYou2021: Una variante più grande e aggiornata del dataset originale, contenente oltre 8 miliardi di password.
- Weak Passwords Dataset: Disponibile su GitHub, contiene una lista di password deboli utilizzate comunemente.
- SecLists: Una raccolta di liste di password e altre risorse utili per test di penetrazione, disponibile su GitHub.