Python Forensics - Aplicación forense básica
Para crear una aplicación según las pautas forenses, es importante comprender y seguir sus convenciones y patrones de nomenclatura.
Convenciones de nombres
Durante el desarrollo de aplicaciones forenses de Python, las reglas y convenciones a seguir se describen en la siguiente tabla.
Constantes | Mayúsculas con separación de subrayado | ALTA TEMPERATURA |
Nombre de variable local | Minúsculas con mayúsculas llenas de baches (los guiones bajos son opcionales) | temperatura actual |
Nombre de variable global | Prefijo gl minúscula con mayúsculas llenas de baches (los guiones bajos son opcionales) | gl_maximumRecordedTemperature |
Nombre de las funciones | Mayúsculas con mayúsculas llenas de baches (guiones bajos opcionales) con voz activa | ConvertFarenheitToCentigrade (...) |
Nombre del objeto | Prefijo ob_ minúsculas con mayúsculas llenas de baches | ob_myTempRecorder |
Módulo | Un guión bajo seguido de minúsculas con mayúsculas llenas de baches | _tempRecorder |
Nombres de clases | Prefijo class_ luego mayúsculas con baches y sea breve | class_TempSystem |
Tomemos un escenario para entender la importancia de las convenciones de nomenclatura en Computational Forensics. Supongamos que tenemos un algoritmo hash que normalmente se usa para cifrar datos. El algoritmo hash unidireccional toma la entrada como un flujo de datos binarios; esto podría ser una contraseña, un archivo, datos binarios o cualquier dato digital. El algoritmo hash luego produce unmessage digest (md) con respecto a los datos recibidos en la entrada.
Es prácticamente imposible crear una nueva entrada binaria que genere un resumen de mensaje determinado. Incluso un solo bit de los datos de entrada binaria, si se cambia, generará un mensaje único, que es diferente al anterior.
Ejemplo
Eche un vistazo al siguiente programa de muestra que sigue las convenciones mencionadas anteriormente.
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
El programa anterior produce la siguiente salida.
En este programa, el script Python acepta la entrada (su nombre completo) y la convierte según el algoritmo hash md5. Cifra los datos y protege la información, si es necesario. De acuerdo con las pautas forenses, el nombre de las pruebas o cualquier otra prueba se puede asegurar en este patrón.