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
### 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