Esta presentación es también una *demo* de las técnicas que propone. Puedes verla en: https://bit.do/anonweb Y su implementación (que normalmente estaría oculta) puede verse en: https://bit.do/anonwebsrc
## Por qué?
### Elaboración paso a paso:
#### 1. Usa Software Libre y máquinas bajo control exclusivo - No uses una máquina accesible por personas que no sean 100% fiables - Mejor usa sistemas libres en todo momento (GNU/Linux, BSD,...) - Considera usar maquinas virtuales (o contenedores) dedicadas: [Tails](https://tails.boum.org/), [Qubes OS](https://www.qubes-os.org/doc/live-usb/)
#### 2. Usa Tor browser - GNU/Linux, MSWindows y MacOS: **Tor Browser** - https://torproject.org/projects/torbrowser.html - Android: **Orbot**, - https://guardianproject.info/apps/orbot/
#### 3. Crea dos o más cuentas de email dedicadas y anónimas - cuentas de email temporales: - https://www.tempmailaddress.com - https://www.throwawaymail.com - https://www.emailondeck.com - ... - cuentas de email permanentes (ojo, pide tlf!) - https://protonirockerxow.onion ([protonmail](https://protonmail.com))
#### 4. Crea dos o más cuentas dedicadas en gitlab.com (paciencia con los "captchas!") - Usa un email temporal distinto en cada una - Una ("C0") será para el proyecto principal (el generador de la web) - El resto ("C1", "C2", ...) serán para proyectos sacrificables destinados a servir la página al público
#### 8. Crea uno o más proyectos **publicos** sacrificables en gitlab.com - Con la cuenta "C1", crea un proyecto "P1" usando la plantilla "Pages/Plain HTML" - (opcionalmente) repetir con "C2", "C3", etc.
#### 9. Automatiza la publicación de la web estática en los proyectos sacrificables - Genera claves ssh: ```console ssh-keygen -t rsa -b 4096 -C "burner" -f burner_rsa ``` - En el proyecto "P1", [añade una "deploy key"]() cuyo valor sea el contenido de *`burner_rsa.pub`* - En el proyecto "P0", [añade una variable protegida]() con el nombre `BURNER_SSH_PRIVATE_KEY` cuyo valor sea el contenido de *`burner_rsa`*
- En "P0", añade lo siguiente a *`.gitlab-ci.yml`* (sirve para enviar mediante git+Tor la web estática a "P1"), adaptando la variable BURNER_REPO ```yaml deploy_to_git: image: alpine:latest stage: deploy variables: # Edit this to point to your own burner repo !!! BURNER_REPO: git@gitlab.com:burn01/p1.git before_script: # install necessary utils - apk update && apk add git openssh-client bash tor netcat-openbsd # Configure ssh over tor, launch tor and wait until it is ready - echo "ProxyCommand nc -x 127.0.0.1:9050 %h %p" >> /etc/ssh/ssh_config - touch /tmp/tor.launching - /usr/bin/tor > /tmp/tor.launching 2>&1 & - while ! grep "Bootstrapped 100%. Done" /tmp/tor.launching;do echo -n "."; sleep 1; done # start ssh-agent & load identity - eval "$(ssh-agent -s)" - bash -c 'ssh-add <(echo "$BURNER_SSH_PRIVATE_KEY")' # add gitlab.com to known hosts to avoid interactive fingerprint checks - mkdir -p ~/.ssh/ - ssh-keyscan -t rsa gitlab.com > ~/.ssh/known_hosts # clone & configure deploy repo - git clone $BURNER_REPO tmprepo - git config --global user.name "private" - git config --global user.email "private" script: # remove old web entirely and replace it with the current one - rm -rf ./tmprepo/public - cp -r public ./tmprepo/public - cd tmprepo - if git diff --quiet public; then echo "No changes in public/ ; exiting."; exit 0; fi - git add public - git commit -m "Update web" - git push ```
### Borrando rastros comprometedores de tu máquina
### Documentación, herramientas recomendadas: - [Introducción a Tor](https://youtu.be/Sz_J6vJ4MYw?list=PLwyU2dZ3LJErtu3GGElIa7VyORE2B6H1H&t=35) - [Introducción a Gitlab-CI](https://www.youtube.com/watch?v=Jav4vbUrqII) - [Introducción a Tails](https://www.youtube.com/watch?v=-IfbSOjTP-w) - [ObscuraCam](https://guardianproject.info/apps/obscuracam/) Aplicación de cámara con opciones de privacidad