Python Forensics - Applicazione forense di base
Per creare un'applicazione secondo le linee guida Forensic, è importante comprendere e seguire le sue convenzioni e modelli di denominazione.
Convenzioni di denominazione
Durante lo sviluppo di applicazioni forensi Python, le regole e le convenzioni da seguire sono descritte nella tabella seguente.
Costanti | Maiuscolo con separazione di sottolineatura | ALTA TEMPERATURA |
Nome della variabile locale | Minuscolo con maiuscole irregolari (i trattini bassi sono facoltativi) | currentTemperature |
Nome della variabile globale | Prefisso gl minuscolo con maiuscole irregolari (i trattini bassi sono facoltativi) | gl_mamostRecordedTemperature |
Nome funzioni | Maiuscolo con maiuscole irregolari (trattini bassi opzionali) con voce attiva | ConvertFarenheitToCentigrade (...) |
Nome oggetto | Prefisso ob_ minuscolo con maiuscole irregolari | ob_myTempRecorder |
Modulo | Un trattino basso seguito da lettere minuscole con maiuscole irregolari | _tempRecorder |
Nomi delle classi | Prefisso class_ poi maiuscole irregolari e sii breve | class_TempSystem |
Prendiamo uno scenario per comprendere l'importanza delle convenzioni di denominazione in Computational Forensics. Supponiamo di avere un algoritmo di hashing che viene normalmente utilizzato per crittografare i dati. L'algoritmo di hashing unidirezionale accetta l'input come flusso di dati binari; potrebbe essere una password, un file, dati binari o qualsiasi dato digitale. L'algoritmo di hashing produce quindi un filemessage digest (md) rispetto ai dati ricevuti in ingresso.
È praticamente impossibile creare un nuovo input binario che genererà un dato digest del messaggio. Anche un singolo bit dei dati di input binari, se modificato, genererà un messaggio univoco, diverso dal precedente.
Esempio
Dai un'occhiata al seguente programma di esempio che segue le convenzioni sopra menzionate.
import sys, string, md5 # necessary libraries
print "Please enter your full name"
line = sys.stdin.readline()
line = line.rstrip()
md5_object = md5.new()
md5_object.update(line)
print md5_object.hexdigest() # Prints the output as per the hashing algorithm i.e. md5
exit
Il programma precedente produce il seguente output.
In questo programma, lo script Python accetta l'input (il tuo nome completo) e lo converte secondo l'algoritmo di hashing md5. Crittografa i dati e protegge le informazioni, se necessario. Secondo le linee guida forensi, il nome delle prove o qualsiasi altra prova può essere protetto in questo modello.