Entorno de gestión forense basado en la infraestructura Blockchain de Ethereum
Para una descripción completa sobre el proyecto, ver la memoria.
Se trata de un sistema que permite verificar la integridad de evidencias forenses mediante el uso de la tecnología Blockchain, concretamente la Blockchain Ethereum. Se compone de una interfaz web (conectada a la Blockchain con el Wallet Metamask) mediante la cuál un usuario introduce la URL de la página web que desea evidenciar. El backend envía dicha solicitud a la Blockchain ejecutando una operación del Smart Contract, que accede a la web por medio de un Oráculo. El Oráculo realiza un HASH de la página, que es almacenado en la Blockchain para poder contrastar posibles cambios en la página. De esta forma, ante un tribunal, se puede garantizar la inmutabilidad del contenido existente en dicha web.
- Ethereum Framework
- NodeJS, Express
- Truffle suite tools
- Ganache/TestRPC para la red
- Metamask Wallet
- Sistema operativo Linux (Desarrollado sobre Kali Linux 2019.2)
- Google Chrome
- Extensión Metamask para Google Chrome. (https://metamask.io/)
- Truffle (https://www.trufflesuite.com/)
- Ganache-GUI (https://eattheblocks.com/installing-the-the-ganache-gui-episode-13/)
- npm y NodeJS
- npm install --save request
- npm install --save request-promise
- npm install -g js-sha256
- npm install -g ethereumjs-testrpc (Hacer pruebas sin GUI)
- npm install -g ganache-cli (Hacer pruebas sin GUI)
- npm install -g web3
- npm install -g web3-providers-http
- npm install -g json-parser
Para el servidor web:
- npm install -g express
- npm install -g body-parser
- Dirigirse al directorio SRC con la terminal
- Ejecutar ./recompile.sh
recompile.sh:
> rm -r -d build
> truffle compile
Este comando compila los contratos del directorio contracts/ con Truffle - Ejecutar Ganache-GUI
- Abrir el proyecto .../SRC/truffle-config.js con Ganache-GUI
Ejecutar en una terminal a parte: - $ truffle developer
- $ truffle(developer)> migrate
Con estos comandos migramos los contratos a la red de Ganache
En otra terminal a parte, ejecutar: - $ node app.js
Con este comando ejecutamos el servidor - Dirigirse a la siguiente dirección en un navegador Chrome con Metamask instalado:
> localhost:8888 - En la web, guardar la evidencia deseada, podremos ver el resultado de la transacción con Metamask y el resultado del guardado en la red de Ganache