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