Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • vimazeno/blog.limos.fr
  • matrossevi/blog.limos.fr
  • borlonjo/blog.limos.fr
3 results
Show changes
Showing
with 2179 additions and 68 deletions
# Tor
# <i class="fa fa-user-secret" aria-hidden="true"></i>
## Tor (The Onion Router)
* mis au point par l'armée américaine milieu des 90's
* le code est ouvert en 2004
* sponsorisé par l'[EFF](https://www.eff.org/fr)
## Darknet
* Tor est "un" [darknet](https://fr.wikipedia.org/wiki/Darknet) parmi d'autres
* [Freenet](https://fr.wikipedia.org/wiki/Freenet), [I2P](https://fr.wikipedia.org/wiki/I2P), [GNUnet](https://fr.wikipedia.org/wiki/GNUnet), [RetroShare](https://fr.wikipedia.org/wiki/RetroShare), [ZeroNet](https://fr.wikipedia.org/wiki/ZeroNet)
* Chiffrement & Anonymisation
* network overlay & mix network
* "Le" [darkweb](https://fr.wikipedia.org/wiki/Dark_web) est un des services du darknet Tor
## Anonymat
* N'anonymise pas complètement
* réduit fortement la probabilité d'identification
* Utilisation
* détectable par les sites /service consultés
* [How to ban people from sites when using Tor](https://www.reddit.com/r/TOR/comments/7xsl7v/how_to_ban_people_from_sites_when_using_tor/)
* détectable par le FAI
#### ++
* Réduit le tracking
* Dissidence politique
* [Great Firewall of China](https://en.wikipedia.org/wiki/Great_Firewall)
* The Guardian, The New Yorker, ProPublica (hidden services & relais)
* Whistle blower (wikileaks)
* Activisme
* Informations / blogs / livres censurés
* Mail
* Forum
* Chat
#### --
* Extrémisme
* (Pédo) pornographie
* Market
* armes
* drugs
* virus
* leak
* carte de crédit
* identité
* Crime organisé
## Tor en stats
* [Tor metrics](https://metrics.torproject.org/)
* [Tor relays map](https://torflow.uncharted.software)
* [Tor est lent](https://svn.torproject.org/svn/projects/roadmaps/2009-03-11-performance.pdf)
* [Mais ce peut être amélioré](https://www.torproject.org/docs/faq.html.en#WhySlow)
* [Tor utilise RSA 1024 etdevrait passer à Curve 25519 group / Ed25519](https://gitweb.torproject.org/torspec.git/tree/tor-spec.txt)
## Tor Browser
* [Firefox ESR(Extended Support Release)](https://www.mozilla.org/en-US/firefox/organizations/)
* 4 extensions
* TorButton
* TorLauncher
* NoScript
* HTTPS Everywhere
* Tor proxy
## Tor Browser
* [cross platform](https://www.torproject.org/projects/torbrowser.html.en) <i class="fa fa-linux" aria-hidden="true"></i> <i class="fa fa-windows" aria-hidden="true"></i> <i class="fa fa-apple" aria-hidden="true"></i>
* version portable <i class="fa fa-windows" aria-hidden="true"></i>
* mobile [<i class="fa fa-android" aria-hidden="true"></i>](https://play.google.com/store/apps/details?id=org.torproject.android&hl=fr) [<i class="fa fa-apple" aria-hidden="true"></i>](https://itunes.apple.com/fr/app/onion-browser-secure-anonymous/id519296448?mt=8&ign-mpt=uo%3D4) [Sailfish OS](https://openrepos.net/content/nieldk/tor)
* [Outbound Ports](https://www.torproject.org/docs/faq.html.en#OutboundPorts) 80, 443, 9001, 9030
* fichier de configuration [torrc](https://www.torproject.org/docs/faq.html.en#torrc)
* [option "FascistFirewall 1"](https://www.torproject.org/docs/faq.html.en#FirewallPorts)
### <i class="fa fa-exclamation-circle" aria-hidden="true"></i> quelle confiance avez vous en votre OS?
## Tor
* Protège toujours le ***client***
* Ne protège pas les serveurs sur le web de surface
* trahi par la correspondance DNS / IP
* Les **hidden services** ou **services cachés** (***SC***)
* sont stockés "dans" Tor de manière anonyme
* mais ne sortent pas de Tor
* extension spécifique **.onion**
* consultable via Tor Browser
## Routage
* Tor fonctionne avec 3 types de relais
* **relais d’entrée** (*RE*)
* **relais Gardien** (*RG*)
* **bridge** (*RB*)
* **relais intermédiaire** (*RI*)
* **relais de sortie** (*RS*)
* **relais Hidden Service Directory** (*HSDir*)
* annuaire de **services cachés** (***SC***)
## Relais
* [Les relais Tor par type (*Flag*)](https://metrics.torproject.org/relayflags.html?start=2017-10-25&end=2018-01-23&flag=Running&flag=Exit&flag=Fast&flag=Guard&flag=Stable&flag=HSDir)
* [Héberger des relais Tor](https://www.torproject.org/docs/tor-doc-relay.html.en)
* [The New Guide to Running a Tor Relay](https://blog.torproject.org/new-guide-running-tor-relay)
## Circuit Tor
```
***client*** > RE > RI > RS > serveur
```
* contrôler le *RE* et le *RS* d'un circuit
* permet de désanonymiser ce circuit
* les circuits sont renouvelés toutes les 10 minutes
* le *RE* lui ne change que tous les 2 à 3 mois
* [Minimise la probabilité d'utiliser de manière cumulative des circuits compromis](https://www.freehaven.net/anonbib/cache/wpes12-cogs.pdf)
## Circuit Tor
![How tor works](https://i.stack.imgur.com/XhXQa.png)
## Circuit Tor
* seul le *RE* connaît Alice
* le *RE* ne connait pas Bob
* seul le *RS* connaît Bob
* le *RS* ne connaît pas Alice
* le *RS* voit le contenu de la requête d'Alice
## Relais d'entrée (*RE*)
* relais Gardien (*RG*)
* liste d'IPs publiques
* connues des FAI
* bloquables
* relais bridges (*RB*)
* liste d'IPs secrètes
* [distribuer au compte gouttes](https://bridges.torproject.org/bridges)
#### Relais gardien (*RG*)
* [Relay Search flag:Guard](https://atlas.torproject.org/#search/flag:Guard)
* [Tor Node List](https://www.dan.me.uk/tornodes)
* [Tor Network Status](https://torstatus.blutmagie.de/)
* Cruciale
* pour le bon fonctionnement
* pour la sécurité des utilisateurs
### Qui décide de cette liste?
## Autorités d’annuaire (*AA*)
> *"maintained by super trusted we-know-you-and-have-had-many-beers-with-you Tor volunteers"*
* [Relay Search flag:Authority](https://atlas.torproject.org/#search/flag:authority)
* IP codées en dures dans les ***clients*** Tor
* votent toutes les heures pour trouver un consensus sur la liste des relais à diffuser
## Consensus
* les *relais* envoient leurs infos aux *AA*
* les *AA* compilent indépendamment ces informations et évaluent chaque *relais*
* passage au **flag Guardian**, **flag BadExit** ...
* critères
* bande passante, uptime, sécurité ...
* les *AA* votent pour obtenir un consensus
* une liste commune
* les *AA* publient le consensus
## Rappel sur le web de surface
* HTTP tout passe en claire
* HTTPS, les données et l'url de la requête sont chiffrées
* l'IP du site consulté est traçable
* la requête DNS du ***client*** trahit le nom de domaine
## Tor sur le web de surface
* Téléchargement du consensus
* liste des IPs des *RE*
* Sélection d'un circuit Tor aléatoire
* Récupération des clés publiques de chaque relais du circuit
* à partir d'un serveur de clé
#### Handshake avec le ***RE***
<small>
1. Le ***client*** envoie une demande de connexion au ***RE***
2. Le ***RE*** signe le handshake avec sa clé privée
3. Le ***client*** vérifie la signature du ***RE***
* avec la clé publique de ***RE***
* récupérée sur le serveur de clé
4. Négociation d'une clé de session *KE*
* via Diffie Hellman
5. Etablissement d'un canal chiffré symétriquement avec le **RE**
</small>
#### Handshake avec le ***RI***
<small>
Toutes les communications entre le ***client*** et le ***RE*** sont chiffrées avec *KE*
1. Le ***client*** envoie une demande de connexion au ***RE*** à transmettre au ***RI***
2. Le ***RE*** déchiffre la demande de connexion et transmet au ***RI***
3. Le ***RI*** signe le handshake avec sa clé privée et transmet au ***RE***
4. Le ***RE*** transmet au ***client***
5. Le ***client*** déchiffre le message reçu avec *KE* et vérifie la signature du ***RI***
* avec la clé publique du ***RI***
* récupérée sur le serveur de clé
6. Négociation d'une clé de session *KI* avec le ***RI***
* via Diffie Hellman en passant par le ***RE***
7. Etablissement d'un canal chiffré symétriquement avec le ***RI***
* le ***RI*** ne connait pas l'IP du ***client***
</small>
## Handshake avec le ***RS***
<small>
Toutes les communications entre le ***client*** et le ***RE*** sont chiffrées avec *KE*<br>
Toutes les communications entre le ***client*** et le ***RI*** sont chiffrées avec *KI* et transitent par le ***RE***
1. Le ***client*** envoie une demande de connexion chiffrée 2 fois: avec *KE*, puis avec *KI* et l’envoie au ***RE***
2. Le ***RE*** déchiffre la première couche avec *KE* et transmet au ***RI***
3. Le ***RI*** déchiffre avec *KI* et transmet au ***RS***
4. Le ***RS*** le handshake avec sa clé privée et renvoie au ***RI***
5. Le ***RI*** transmet au ***RE***
6. Le ***RE*** transmet au ***client***
7. Le ***client*** déchiffre le message reçu avec *KE* puis *KI* et vérifie la signature du ***RS***
* avec la clé publique du ***RS***
* récupérée sur le serveur de clé
8. Négociation d'une clé de session *KS* avec le *RS**
* via Diffie Hellman en passant par le ***RE***, puis par le ***RI***
9. Etablissement d'un canal chiffré symétriquement avec le ***RS***
* le ***RS*** ne connait ni l'IP du ***client***, ni l'IP du ***NE***
</small>
#### Echange de données
<small>
* Le ***client*** peut envoyer une requête http en utilisant de circuit
* Ce n'est plus le ***client*** qui émet la requête DNS mais le ***RS***
* le ***RS*** transmet la requête au serveur
* le ***RS*** transmet ensuite la réponse au ***RI*** en chiffrant avec *KS*
* le ***RI*** transmet ensuite la réponse au ***RE*** en chiffrant avec *KI*
* le ***RE*** transmet ensuite la réponse au ***client*** en chiffrant avec *KE*
* le ***client*** déchiffre alors successivement avec *KE*, *KI* et *KS*
</small>
## Echange de données
[![Tor circuit](images/tor/tor-circuit.png)](https://tor.stackexchange.com/questions/1932/does-exit-node-encrypt-three-times-for-the-return-path-to-local-machine)
#### Echange de données via HTTPS
![Tor avec HTTPS](https://cloud.m4z3.me/index.php/s/rywwyShzrwgLbrA/download)
## Service Caché (SC)
* .onion
* uniquement via un ***client*** Tor
* [Hébergé un Hidden Service sur Tor](https://benjamin.sonntag.fr/Tor-les-onion-le-darknet-a-votre-portee)
* Système d'adressage basé sur des clés de chiffrement
* protège l'IP du serveur
* protège le serveur du DDoS
[Trawling Tor Hidden Service – Mapping the DHT](https://donncha.is/2013/05/trawling-tor-hidden-services/)
## Déclaration d'un ***SC***
* Etablissement de quelques circuits Tor
* les ***RS*** de ces circuits sont sollicités pour jouer le rôle de points d'introductions ***PI*** pour le ***SC***
***SC*** > ***RE*** > ***RI*** > ***RS*** (***PI***)
## Déclaration d'un ***SC***
[![HS Step1](images/tor/HS-Step1.png)](images/tor/HS-Step1.png)
## Déclaration d'un ***SC***
* le ***SC*** publie sur un ***HSDir*** un descripteur contenant
* Les IP des ***PI*** sollicitées
* La clé publique du ***SC***
* La signature de ces deux informations
* faite avec la clé privée du ***SC***
***SC*** > ***RE*** > ***RI*** > ***RS*** (***HSDir***)
* les ***HSDir*** partagent une [table de hachage distribuée (DHT)](https://fr.wikipedia.org/wiki/Table_de_hachage_distribu%C3%A9e) de descripteurs de ***SC***
## Déclaration d'un ***SC***
[![HS Step2](images/tor/HS-Step2.png)](images/tor/HS-Step2.png)
## Connexion à un ***SC***
* le ***client*** télécharge le consensus
* récupère des IPs de ***HSDir***
* les ***client*** interroge les ***HSDir*** via des circuits Tor
* ***client*** > ***RE*** > ***RI*** > ***RS*** (***HSDir***)
* récupère le descripteur du ***SC*** et vérifie la signature
* le ***client*** peut alors contacter les ***PI***
## Connexion à un ***SC***
[![HS Step3](images/tor/HS-Step3.png)](images/tor/HS-Step3.png)
## Connexion à un ***SC***
* le ***client*** crée un circuit Tor
* le relais de sorti sera le point de rendez vous (***RdV***)
* ***client*** > ***RE*** > ***RI*** > ***RS*** (***RdV***)
* le ***client*** communique un ***secret*** au ***RdV***
* le ***secret*** permettra d'authentifier le ***SC***
## Connexion à un ***SC***
[![HS Step4](images/tor/HS-Step4.png)](images/tor/HS-Step4.png)
## Connexion à un ***SC***
* le ***client*** créée un circuit Tor vers un des ***PI***
* ***client*** > ***RE*** > ***RI*** > ***RS*** (***PI***)
* le ***client*** transmet au ***SC*** via le ***PI***
* l'IP du ***RdV***
* la première partie d'un échange Diffie Hellmann
* le ***secret*** communiqué précédemment au ***RdV***
* le tout chiffré est avec la clé publique du ***SC***
* ***client*** > ***RE<inf>c</inf>*** > ***RI<inf>c</inf>*** > ***RS<inf>c</inf>*** > ***PI<inf>sc</inf>*** > ***RI<inf>sc</inf>*** > ***RE<inf>sc</inf>*** > ***SC***
## Connexion à un ***SC***
[![HS Step5](images/tor/HS-Step5.png)](images/tor/HS-Step5.png)
## Connexion à un ***SC***
* les ***SC*** contact le ***RdV***
* transmet le ***secret*** qu'il a reçu du ***client***
* authentification du ***SC***: il possède la clé publique du descripteur
* puisqu'il a déchiffré le ***secret***
## Connexion à un ***SC***
[![HS Step6](images/tor/HS-Step6.png)](images/tor/HS-Step6.png)
## Connexion à un ***SC***
* Finalisation de l'échange Diffie Helmann entre ***client*** et ***SC***
* un secret de communication est établi
***client*** > ***RE<inf>c</inf>*** > ***RI<inf>c</inf>*** > ***RS<inf>c</inf>*** (***RdV***) > ***RS<inf>sc</inf>*** > ***RI<inf>sc</inf>*** > ***RE<inf>sc</inf>*** > ***SC***
## Connexion à un ***SC***
[![HS Step7](images/tor/HS-Step7.png)](images/tor/HS-Step7.png)
## Circuit Tor d'échange avec un ***SC***
[![HS Step8](images/tor/HS-Step8.png)](images/tor/HS-Step8.png)
#### Trouver des .onion
* pas de "Google"
* sur le web de surface
* [TheHiddenWiki](https://thehiddenwiki.org/)s
* [reddit](https://www.reddit.com/r/TOR/)
* [Deep To Web](https://www.deepdotweb.com/)
* sur des ***SC***
#### Quelques .onion
* [wikileaks](http://wikilw7ayqhjl6zr.onion/)
* [facebook](facebookcorewwwi.onion)
* [new york time](https://open.nytimes.com/https-open-nytimes-com-the-new-york-times-as-a-tor-onion-service-e0d0b67b7482)
* [USFakeIDs](http://en35tuzqmn4lofbk.onion/)
* [Deep Web Radio](http://76qugh5bey5gum7l.onion/)
* [Have I Been Powned](https://haveibeenpwned.com/)
##### toujours consolider les hash onions
<i class="fa fa-exclamation-circle" aria-hidden="true"></i> surtout pour les darkmarkets
## Tor over VPN
* VPN over Tor?
* [Auto VPN](https://github.com/adtac/autovpn)
# Tracking
# <i class="fa fa-user-secret" aria-hidden="true"></i>
## [Cover Your Tracks](https://coveryourtracks.eff.org/)
### Is your browser safe against tracking?
[Electronic Frontier Foundation](https://www.eff.org/about)'s project
## Fingerprint
[![Finger print](images/tracking/fingerprint.png)<!-- .element style="width: 80%" -->](https://coveryourtracks.eff.org/)
## Cookies
* Palie à l'amnésie du protocol HTTP
* En têtes HTTP envoyées par le serveur
```http
Set-Cookie: name=value[; Max-Age=age][; expires=date]
[; domain=domain_name][; path=some_path][; secure][; HttpOnly]
```
* Renvoyées inchangées par le client à chaque requête
```http
Cookie: name=value
```
* Cloisonnés par domaine
* accessibles via les sous domaines
## just do it
* [<i class="fa fa-github" aria-hidden="true"></i> willdurand-edu/cookie-playground](https://github.com/willdurand-edu/cookie-playground)
```bash
git clone https://github.com/willdurand-edu/cookie-playground.git
php composer.phar install
php -S localhost:4000 -t .
```
* tracker exposes a dashboard at: http://localhost:4000/tracker/public/dashboard.
* The website does not do much, but is available at: http://localhost:4000/website/.
## Space cookies
* Techniques de tracking
* Cookies plus persistants
* moins limité en taille
* [Supercookie](https://en.wikipedia.org/wiki/HTTP_cookie#Supercookie)
* cookie de niveau racine (.com)
## Space cookies
* Flash cookie
* utilise la persistance flash
* [LSO (Local Shared Object)](https://fr.wikipedia.org/wiki/Objet_local_partag%C3%A9)
* cross domain
* accès à l'historique des sites visités utilisant flash
## Space cookies
* [Zombie cookie](https://en.wikipedia.org/wiki/Zombie_cookie)
* cookie perpétuellement recréé
* [Evercookie](https://en.wikipedia.org/wiki/Evercookie)
* exploite toute les possibilités
* [<i class="fa fa-github"></i> samyk/evercookie](https://github.com/samyk/evercookie/)
* [Cookie de tracking / assiste.com](http://assiste.com/Cookie_de_Tracking.html)
* [Using HTML5 Local Storage vs Cookies For User Tracking ...](http://johnsteinmetz.net/blog/using-html5-local-storage-vs-cookies-for-user-tracking/)
## Vault en bref!
![vault](../cri/images/vault.png "vault")<!-- .element width="30%" -->
#### Des secrets, des apps, des tokens, des équipes, un séquestre
## Vault
* By HashiCorp
* [écrit en go](https://github.com/hashicorp/hcl)
* cross plateform
* [hcl](https://github.com/hashicorp/hcl)
* intégration avec [consul](https://www.consul.io) & [terraform](https://www.terraform.io/)
* [auditable](https://www.vaultproject.io/docs/commands/audit/enable.html)
* [documenté](https://www.vaultproject.io/docs/)
* ... couteau suisse
## Vault
* Un binaire [vault](https://releases.hashicorp.com/vault/) qui fait
* serveur
* [<i class="fa fa-book" aria-hidden="true"></i> api](https://www.vaultproject.io/api/overview)
* UI web
* cli
```shell
$ export $VAULT_ADDR=https://10.0.0.1
```
## Configuration
`/etc/vault/vault.hcl`
```
backend "file" {
path = "/var/lib/vault"
}
ui = true
disable_mlock = true
listener "tcp" {
address = "10.0.0.1:443"
tls_cert_file = "/etc/certs/vault.crt"
tls_key_file = "/etc/certs/vault.key"
tls_disable = 0
}
```
## initialisation SSS
### Shamir's Secret Sharing
```shell
$ vault operator init -key-shares=3 -key-threshold=2
```
```shell
Unseal Key 1: 6gAO3lmAhIaHzDAdkK256g2B2Dpeqy+z4jqQCJBID3d8
Unseal Key 2: TO7DDRQXSPC3IQylPEBPjPGAGAGMzjEkjT/FL62m7UUd
Unseal Key 3: CYfEbt83jYsQFcSErHT4Y5NCsrEtfFUE6tjQZKfP632K
Initial Root Token: s.78MykQO2b5qcy03rtoNwmhr1
Vault initialized with 3 key shares and a key threshold of 2. Please securely
distribute the key shares printed above. When the Vault is re-sealed,
restarted, or stopped, you must supply at least 2 of these keys to unseal it
before it can start servicing requests.
Vault does not store the generated master key. Without at least 2 key to
reconstruct the master key, Vault will remain permanently sealed!
```
## Authentification
!["authentification"](../cri/images/vault-auth.png "authentification")
## Authentification
par token
```shell
$ vault login token=<root-or-app-token>
```
equivalent à
```shell
$ export VAULT_TOKEN token=<root-or-app-token>
```
par ldap
```shell
$ vault login -method=ldap username=mazenovi
```
stocke le token dans `~/.vault-token` et `$VAULT_TOKEN`
## Policy (ACL)
```
path "cri/*" {
capabilities = ["create", "read", "update", "delete", "list"]
}
```
écriture
```shell
$ vault policy write cri `/etc/vault/cri.hcl`
```
application à un groupe ldap
```shell
$ vault write auth/ldap/groups/cri policies=cri
```
création de token à partir de la policy
```shell
$ vault token create -policy=cri
```
## [<i class="fa fa-book" aria-hidden="true"></i> Secrets engines](https://www.vaultproject.io/docs/secrets/)
!["secrets engines"](../cri/images/vault-secrets-engines.png "secrets engines")
## workflow
```shell
$ vault secrets list
$ vault kv list cri/
$ vault kv get cri/test
$ vault kv get -format=json cri/test
$ vault kv get -format=json cri/test | jq .data
$ vault kv get -format=json cri/test | jq .data.data.root
$ vault kv put cri/test password2=$(date | sha256sum)
$ vault kv patch cri/test password1=$(date | sha256sum)
$ vault delete cri/test
```
## avec ansible
* lookup natif [hashi_vault](https://docs.ansible.com/ansible/latest/plugins/lookup/hashi_vault.html)
* lecture uniquement
* pas de support natif pour kv2 à ce jour
* module "community" [hashivault](https://github.com/TerryHowe/ansible-modules-hashivault)
* Reading and Writing
* supporte kv2
* Initialization, Seal, and Unseal
* Policy
* User Management
## UI
!["UI"](images/vault/web.png "UI")
!["carnets mots de passe"](images/vault/password_management.jpg "carnets mots de passe")<!-- .element width="80%" -->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Keepass</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/black.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/passwords.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<!-- script src="../../node_modules/reveal.js/lib/js/head.min.js"></script -->
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js',
condition: function() { return !!document.querySelector( '[data-markdown]' ); },
callback: function() {
Array.prototype.forEach.call(document.querySelectorAll('section > li'), function(ele){
var fragIndex = ele.innerHTML.indexOf("--")
if (fragIndex != -1){
ele.innerHTML = ele.innerHTML.replace("--", "");
ele.className = 'fragment';
}
});
}
},
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>PGP</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/pgp.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Souveraineté</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/black.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/sovereignty.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<!-- script src="../../node_modules/reveal.js/lib/js/head.min.js"></script -->
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js',
condition: function() { return !!document.querySelector( '[data-markdown]' ); },
callback: function() {
Array.prototype.forEach.call(document.querySelectorAll('section > li'), function(ele){
var fragIndex = ele.innerHTML.indexOf("--")
if (fragIndex != -1){
ele.innerHTML = ele.innerHTML.replace("--", "");
ele.className = 'fragment';
}
});
}
},
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
<script src="../main.js"></script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Tor</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/black.css">
<style>
.trsp {background-color: rgba(0, 0, 0, 0.8);}
.green {color: green;}
.red {color: red;}
li {list-style-type: none}
li.c {list-style-type: circle}
ul.c {padding-left: 70px;padding-right: 70px;}
</style>
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-background-image="images/tor/hacker.jpg">
<h1 class="trsp" style="margin-top: 30%">Comment surfer couvert ...</h1>
<h4 class="trsp" style="margin-top: 2%; text-transform: lowercase;">
<img src="https://fc.isima.fr/~mazenod/images/mazenovi.png"
style="margin: 0; margin-left: 10px; margin-right: 10px;padding: 0;float: right;border: 0; border-radius: 50%;width: 5%" />
<a href="http://m4z3.me/pintofscience">http://m4z3.me/pintofscience</a>
<span style="float: right">par
<a href="http://twitter.com/mazenovi">@mazenovi</a>
</span>
</h4>
<aside class="notes">
<ul>
<li>Vincent Mazenod aka mazenovi
<ul>
<li>20 ans de développement pour le web</li>
<li>dont 17 au CNRS</li>
<li>expert SSI à la délégation régionale Auvergne-Rhône-Alpes du CNRS (DR7) depuis 10 ans</li>
<li>concerné par la vie privée depuis le début</li>
<li>je parle histoire de l'informatique, éthique de l'informatique et futurologie après quelques pintes</li>
</ul>
</li>
<li>Surfez couvert ...
<ul>
<li>sujet banal pour image de couverture banale
<ul>
<li>marronier digital</li>
<li>saucisson numérique</li>
</ul>
</li>
<li>
ce soir réponse radicale et argumentée,
accrochez vous à vos claviers
</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/n00b.jpg">
<h2 class="trsp">... alors qu'on ne comprend rien à l'informatique?</h2>
<aside class="notes">
<ul>
<li>ce n'est pas une présentation pour les nuls</li>
<li>pas de conseils sur les mot de passes, JP Pernaud fait ca très bien</li>
<li>pour ne pas avoir de problèmes:
<ul>
<li>vérifier votre barre d'url souvent</li>
<li>Pas de streaming / téléchargement</li>
<li>Pas de jeu en ligne</li>
<li>Pas de porn</li>
</ul>
</li>
<li>si vous êtes persuadés d'être nul ...</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/minitel.gif">
<h1 class="trsp">ne surfez pas!!</h1>
<aside class="notes">
<ul>
<li>Si on y comprend vraiment rien
<ul>
<li>Mieux vaut ne pas</li>
</ul>
</li>
<li>Si vous voulez comprendre
<ul>
<li>Poser des questions : c'est le moment</li>
<li>Aucune question n'est idiote: peu de gens savent</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/go.gif">
<h2 class="trsp">ou comprenez les enjeux!</h2>
<aside class="notes">
<ul>
<li>On ne parle pas ici des enjeux de madame michu</li>
<li>On parle de la protection des sources sur Internet</li>
<li>hastag: investigation, journalisme, liberté d'expression, leak etc ... </li>
</ul>
</aside>
</section>
<section>
<h2>menaces</h2>
<ul>
<li>états / renseignements</li>
<li>plateformes (GAFAM)</li>
<li>attaques ciblées</li>
</ul>
<aside class="notes">
<ul>
<li>vous connaissez Edward Snowden?
<ul>
<li>la NSA</li>
<li>les plateformes qui collaborent avec la NSA (révélations PRISM)</li>
<li>éventuellement des pirates souhaitant mettre la main
sur les outils de la NSA avant qu'ils soient connus</li>
</ul>
</li>
<li>TOUS LES COUPS SONT PERMIS</li>
</ul>
</aside>
</section>
<section>
<h2>se protéger</h2>
<ul>
<li>confidentialité</li>
<li>authenticité</li>
<li>anonymat</li>
</ul>
<aside class="notes">
<ul>
<li>confidentialité: le message n'est lu QUE par le destinataire</li>
<li>authenticité:
<ul>
<li>le message est lu par le bon destinataire</li>
<li>l'identité de l'émetteur est éventuellement vérifiable</li>
</ul>
</li>
<li>
anonymat:
<ul>
<li>l'IP (de votre box, ou mobile) notamment est géolocalisable et tracable</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/en-clair.png"
data-background-color="white"
data-background-size="70%">
<h4>confidentialité / en clair par défaut</h4>
<aside class="notes">
<ul>
<li>le FAI
<ul>
<li>attribue l'IP</li>
<li>
fournit les DNS (correspondance nom de domaine
adresse IP du serveur à consulter). Requête transparente
mais cruciale comme on le verra plus tard
</li>
<li>voit tout le traffic. C'est le centre de tri des cartes postales</li>
<li>plusieurs FAI sont en général impliqués dans une communication</li>
</ul>
</li>
<li>
les plateformes
<ul>
<li>s'il partage un fichier via dropbox</li>
<li>une pièce jointe via gmail</li>
</ul>
</li>
<li>la NSA collabore avec les FAI et les plateformes</li>
<li>Snowden balance gros: il doit se protéger de tout le monde</li>
<li>comment s'en sortir?</li>
</ul>
</aside>
</section>
<section data-background-image="images/crypto/scytale.png"
data-background-size="50%">
<h4>confidentialité / chiffrement</h4>
<aside class="notes">
<ul>
<li>vieux comme le monde</li>
<li>le scytale</li>
<li>on fait plus robuste maintenant (attaque par analyse)</li>
<li>la sécurité doit reposer sur le secret de la clé,
pas sur le secret de l'algorithme
<ul>
<li>le fonctionnement des algo de chiffrement est typiquement connu</li>
</ul>
</li>
<li> chiffrer, déchiffrer, décrypter, crypter, chiffrage</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/chiffrement-symetrique.png"
data-background-color="white"
data-background-size="70%">
<h4>confidentialité / chiffrement symétrique</h4>
<aside class="notes">
<ul>
<li>on a un problème pour partager la clé
<ul>
<li>peut marcher si on se cache des FAI (IRL?)</li>
</ul>
</li>
<li>pas de scellé (authenticité)
<ul>
<li>on sait juste que c'est quelqu'un qui partage notre sercret</li>
</ul>
</li>
<li>la NSA doit décrypter : ca nécessitebeaucoup de calcul</li>
<li>google aussi dans le contexte Gmail, mais pas forcément dans le contexte pub ou ananlyse de traffic (techniquement parlant)</li>
<li>Souvenez vous on parle d'Edward Snowden!</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/chiffrement-asymetrique-chiffrement.png"
data-background-color="white"
data-background-size="70%">
<h4>confidentialité / chiffrement asymétrique</h4>
<aside class="notes">
<ul>
<li>depuis les 70s</li>
<li>tout s'appelle clé ... désolé</li>
<li>1 clé publique présentée dans un certificat publique
<ul>
<li>sur le site du guardian, carte de visite, IRL, etc ...</li>
<li>permet d'obtenir un cadenas pour fermer sans la clé</li>
<li>seul celui qui a la clé peut ouvrir</li>
<li>pas d'échange de clé</li>
</ul>
</li>
<li>c'est des maths
<ul>
<li>tout ce qui est chiffré avec la clé publique est déchiffrable avec la clé privée</li>
<li>tout ce qui est chiffré avec la clé privée est déchiffrable avec la clé publique
<ul>
<li>c'est la signature</li>
</ul>
</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/chiffrement-asymetrique-signature.png"
data-background-color="white"
data-background-size="70%">
<h4>authenticité / signature</h4>
<aside class="notes">
<ul>
<li>la clé privée agit ici comme un sceau</li>
<li>elle permet de sceller l'enveloppe avec la clé privée</li>
<li>le sceau est vérifiable par tous</li>
<li>toute la confiance repose sur la légitimité des certificats
<ul>
<li>approche PGP : on échange les clés d'humain à humain
<ul>
<li>système décentralisé, chacun se créée sa toile de confiance</li>
</ul>
</li>
<li>approche X509 : des autorités délivrent les certificats
<ul>
<li>repose essentiellement sur le nom de domaine pour TLS</li>
</ul>
</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/pki.png"
data-background-color="white"
data-background-size="70%">
<h4>authenticité / PKI</h4>
<aside class="notes">
<ul>
<li>Autorité de certification (CA)</li>
<li>système de gestion de clé publique / privée (ou de chiffrement asymétrique)
<ul>
<li>pour humains, serveurs, organisation</li>
</ul>
</li>
<li>vérifie la légitimité lors de l'attribution</li>
<li>gère les révocations, la distribution, le renouvellement etc ...</li>
<li>tout repose sur ces autorités mais elles sont loin d'être irréprochable</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/known-good-signers.png"
data-background-size="50%">
<h4>authenticité / CA</h4>
<aside class="notes">
<ul>
<li>le navigateur est configuré avec les autorités de confiance</li>
<li>en pratique les autorités qui paient</li>
<li>on ne les connaît pas toutes</li>
</ul>
</aside>
</section>
<section>
<h2><strike>SSL</strike> TLS</h2>
<ul>
<li class="c">
échange d'une clé de chiffrement symétirque
<ul>
<li class="c">via un système de chiffrement asymétrique</li>
</ul>
</li>
<li class="c">autorités de confiance dans le navigateur</li>
cadenas vert
</ul>
<img src="images/tor/green-bar-web-browser.jpg" />
<div class="trsp" style="margin-top: 2%">le FAI voit toujours quelle IP consulte quelle IP :/</div>
<aside class="notes">
<ul>
<li>mais il y a pire que le leake de l'IP: même le nom de domaine n'est pas préservé</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/dns.jpg"
data-background-color="white"
data-background-size="55%">
<h2>anonymat / leak DNS</h2>
<aside class="notes">
<ul>
<li>trahit la consultation de tel nom de domaine pour telle IP</li>
<li>typiquement les données recueilli par les boites noires de la loi renseignement</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/tracking.png"
data-background-color="#F8F2E4"
data-background-size="72%">
<h2>anonymat / tracking</h2>
<div style="margin-top: 45%;font-size: 12px">source: <a href="https://c-marketing.eu/zoom-sur-les-cookies/">https://c-marketing.eu/zoom-sur-les-cookies/</a></div>
<div style="margin-top: 5%"><a href="https://panopticlick.eff.org/">panopticlick.eff.org</a></div>
<aside class="notes">
<ul>
<li>des régies publicitaires (Google adSens)</li>
<li>des analyseur de traffic (Goole Analytics)</li>
<li>agit au sein de l'échange protégé
<ul>
<li>recoupement d'utilisateur par cookie</li>
<li>recoupement d'utilisateur par signature de navigateur
<ul>
<li>prévient la suppression des cookies</li>
<li>adblocker peut être payé pour laisser passer telle ou telle régies</li>
</ul>
</li>
<li>même en navigation privé google peut lier le traffic à un utilisateur
<ul>
<li>ne pas être authentifié sur gmail ou facebook n'est pas un obstacle</li>
<li>navigation mode privée permet juste de préserver l'historique</li>
</ul>
</li>
<li>javascript est la faille, le désactiver est une bonne idée pour la privacy
<ul>
<li>une mauvaise idée pour le confort</li>
</ul>
</li>
</ul>
</li>
</ul>
</aside>
</section>
<section>
<h2>se protéger avec <strike>SSL</strike> TLS</h2>
<ul>
<li>confidentialité <strong class="green"></strong></li>
<li>authenticité <strong class="green"></strong></li>
<li>anonymat <strong class="red">𐄂</strong></li>
</ul>
<div class="trsp" style="margin-top: 25%">idéal pour le e-commerce ;)</div>
<aside class="notes">
<ul>
<li>
BTW les gesticulations sécuritaires à chaque attentat sur la remise en cause du chiffrement n'ont pas de sens
<ul>
<li>pas de chiffrement = pas de confiance = pas de e-commerce</li>
<li>la première chose qu'on a chiffré c'est les numéro de CB (LCEN 2004)</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/tor.png" data-background-size="55%">
<h2>Tor</h2>
<ul class="trsp c">
<li class="c">"un" darknet parmi d'autres</li>
<li class="c">"le" <strong>darkweb</strong>: un des services de <strong>Tor</strong></li>
<li class="c">surcouche réseau
<ul>
<li class="c">s'appuie sur le web <em>"classique"</em></li>
</ul>
</li>
<li class="c">projet de l'armée américaine (mi-1990)</li>
<li class="c">code en open source depuis 2004</li>
<li class="c">sponsorisée par l'<a href="https://www.eff.org/fr">EFF</a></li>
<li class="c">organisation à but non lucratif</li>
<li class="c">contournement de la censure</li>
<li class="c">~2 375 000 utilisateurs par jour</li>
</ul>
<aside class="notes">
<ul>
<li>faire une recherche sur TOR c'est déjà être fiché par la NSA
<ul>
<li>peut être même en venant à cette talk ;)</li>
<li>réellement efficace</li>
</ul>
</li>
<li>utilisé par Snowden, Wikileaks, panama papers etc ...
<ul>
<li>
mais pas n'importe comment
</li>
</ul>
</li>
<li>utilisé par les dissidents chinois etc ... où le web est surveillé / censuré
<ul>
<li>c'est pourquoi facebook par exemple est sur Tor</li>
</ul>
</li>
</ul>
</aside>
</section>
<section>
<ul class="trsp c">
<li class="c">
<a href="https://www.torproject.org/projects/torbrowser.html.en">cross platform</a>
<i class="fa fa-linux" aria-hidden="true"></i>
<i class="fa fa-windows" aria-hidden="true"></i>
<i class="fa fa-apple" aria-hidden="true"></i>
<i class="fa fa-android" aria-hidden="true"></i>
</li>
<li class="c"><i class="fa fa-firefox" aria-hidden="true"></i> Firefox + proxy tor intégré</li>
<li class="c">
<i class="fa fa-firefox" aria-hidden="true"></i> add ons</a>
<ul>
<li><a href="https://addons.mozilla.org/fr/firefox/addon/noscript/">NoScript</li>
<li><a href="https://www.eff.org/fr/https-everywhere"> HTTPS everywhere</li>
</ul>
</li>
<li class="c">
<a href="https://tails.boum.org/">Tails (OS live)</a>
</li>
</ul>
<img src="images/tor/tor-browser.jpg" />
<aside class="notes">
<ul>
<li>Tails ajoute de la sécurité au niveau de l'OS
<ul>
<li>linux opensource VS windows ou mac os privateur</li>
<li>système live = système amnésique
<ul>
<li>ne possède aucune donnée</li>
</ul>
</li>
<li>MEME SI personnalisation d'une partition de données chiffrées possible</li>
</ul>
</li>
<li>portable
<ul>
<li>se démarre avec une clé usb à partir de n'importe quelle machine</li>
<li>environnement utilisable sur n'importe quelle machine sans laisser de trace</lI>
<li>kit de survie pour journaliste d'investigation</li>
</ul>
</li>
<li>toutes les applications passent par Tor
<ul>
<li>IM, mail, etc ... ce qui n'est pas le cas avec Tor Browser</li>
</ul>
</li>
<li>utiliser Tor sur son mobile ou sur windows est ce une bonne idée?</li>
</ul>
</aside>
</section>
<section
data-background-image="images/tor/tor-circuit.png"
data-background-size="contain"
data-background-position="bottom">
<h3 class="trsp">Tor circuit</h3>
<aside class="notes">
<ul>
<li>repose sur des noeuds internet spéciaux appelés neouds Tor
<ul>
<li>on chiffre de proche en proche
<ul>
<li>chaque noeud ne connait que son prédécesseur et son successeur</li>
<li>on utilise Trois nouds Tor</li>
<li>on cache donc le client au serveur</li>
</ul>
</li>
<li>
c'est le noeud de sortie qui effectue la requête DNS
<ul>
<li>peut voir le contenu de la requête</li>
</ul>
</li>
<li>le noeud d'entrée l'IP du client</li>
</ul>
</li>
<li>anonymat préservé
<ul>
<li>sauf sur le dernier mètre
<ul>
<li>la NSA peut avoir des infos</li>
</ul>
</li>
<li>sauf si on maîtrise tout le circuit Tor
<ul>
<li>le projet émane de l'armée américaine</li>
<li>opensourcing du renseignement</li>
</ul>
</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/Tor-Encryption.jpg" data-background-size="contain" data-background-color="#eeeeee">
<aside class="notes">
<ul>
<li>le schéma est faux mais beau</li>
<li>les trois noeuds par les quels passent la communication
<ul>
<li>sont choisis aléatoirement</li>
<li>renouvelés régulièrement</li>
</ul>
</li>
<li>réduit la probabilité qu'un attaquant maîtrise tous les cricuits</li>
<li>ce n'est pas 100% efficace
<ul>
<li>ca maximise la probabilité de l'être</li>
</ul>
</li>
</ul>
</aside>
</section>
<section>
<h2>se protéger avec Tor sur le web</h2>
<ul>
<li>confidentialité <strong class="red">𐄂</strong></li>
<li>authenticité <strong class="red">𐄂</strong></li>
<li>anonymat <strong class="green"></strong></li>
</ul>
</section>
<section>
<h2>se protéger avec Tor + TLS (https) sur le web</h2>
<ul>
<li>confidentialité <strong class="green"></strong></li>
<li>authenticité <strong class="green"></strong></li>
<li>anonymat <strong class="green"></strong></li>
</ul>
<aside class="notes">
<ul>
<li>sécuristation du dernier mètre</li>
<li>authenticité du serveur via TLS et la PKI associée</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/hs.png" data-background-size="contain" data-background-color="#e1e1e1">
<aside class="notes">
<ul>
<li>service caché = hidden service</li>
<li>l'idée est de mettre 2 circuits Tor bout à bout
<ul>
<li>un annuaire de service cachés joue le rôle d'entremetteur</li>
</ul>
</li>
<li>un point de rendez vous est fixé
<ul>
<li>le client ne connait pas l'IP du serveur</li>
<li>le serveur ne connait pas l'IP du client</li>
<li>le HSDir ne connait ni l'IP du client ni l'IP du serveur</li>
<li>le Point de rendez vous ne connait ni l'IP du client ni l'IP du serveur</li>
</ul>
</li>
</ul>
</aside>
</section>
<section>
<h2>se protéger avec des services cachés Tor (.onion)</h2>
<ul>
<li>confidentialité <strong class="green"></strong></li>
<li>authenticité <strong class="green"></strong></li>
<li>anonymat <strong class="green"></strong></li>
<li><strong>anonymat du serveur</strong> <strong class="green"></strong></li>
</ul>
<div class="trsp" style="margin-top: 15%">idéal pour la liberté d'expression ;)</div>
</section>
<section data-background-image="images/tor/whistleblowers.jpg">
<aside class="notes">
<ul>
<li>Edward Snowden</li>
<li>Julian Assange - wikileaks: panama papers, cable diplomatique - personnalité discutable</li>
<li>Bradley / Chelsea Manning</li>
</ul>
</aside>
</section>
<section>
<h2>se protéger avec Tor (.onion)</h2>
<ul>
<li>confidentialité <strong class="green"></strong></li>
<li>authenticité <strong class="green"></strong></li>
<li>anonymat <strong class="green"></strong></li>
<li><strong>anonymat du serveur</strong> <strong class="green"></strong></li>
</ul>
<div class="trsp" style="margin-top: 15%">idéal pour la cybercriminalité ;)</div>
<aside class="notes">
<ul>
<li>Tout ce qui est usuellement interdit est faisable
<ul>
<li>drogues: beaucoup</li>
<li> armes: peu, beaucoup de scam</li>
<li>pédopornographie: bien cachée, car ne fait pas l'unanimité sur Tor comme ailleurs</li>
</ul>
</li>
<li>ces sujets existent avant Tor et existeront après</li>
</aside>
</section>
<section data-background-image="images/tor/cybercrime.gif">
<aside class="notes">
<ul>
<li>acheter de la drogue, avec des crypto monnaie
<ul>
<li>BTC ou mieux monero pour l'anonymat</li>
<li>une autre présentation pour Pot Of Science peut etre;)</li>
</ul>
</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/phil-zimmermann.jpg">
<aside class="notes">
<ul>
<li>Problème fondamental qui doit amener à la réflexion et non à l'action</li>
<li>Posé dès 1991 par Phil Zimmermann auteur de PGP et de la première crypto war</li>
</ul>
</aside>
</section>
<section data-background-image="images/tor/applause.gif">
<div class="trsp">
<h1>Merci</h1>
<h2>Questions?</h2>
</div>
</section>
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Tails</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/tails.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>X.509 / TLS</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/tls.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js',
condition: function() { return !!document.querySelector( '[data-markdown]' ); },
callback: function() {
Array.prototype.forEach.call(document.querySelectorAll('section > li'), function(ele){
var fragIndex = ele.innerHTML.indexOf("--")
if (fragIndex != -1){
ele.innerHTML = ele.innerHTML.replace("--", "");
ele.className = 'fragment';
}
});
}
},
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Tor</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<link rel="stylesheet" href="../main.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/tor.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Tracking</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/tracking.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Vault</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<link rel="stylesheet" href="../main.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/vault.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
# Profan
## RGPD
## RGPD
* Règlement général sur la protection des données
* en vigueur le 25 mai 2018
* Dans tous les états membres de l'UE
* En France la CNIL devient autorité de contrôle
* <strike>Déclaration CNIL</strike>
* tous responsable
* démonstration permanente du maintien de la conformité
## Périmètre
* Tout service ou sous traitant (y compris hors UE) traitant des données de résidents de l'UE
* Entreprises
* Associations
* Organismes publics
* Sous traitants
## Objectifs
### Crédibiliser la régulation
* Réclamation auprès de l'autorité de contrôle
* Droit de recours contre le responsable du traitement ou un sous traitant
* Actions collectives ou personnelles
* Sanctions
* 4% du chiffre d'affaire annuel mondial
* 20 000 000 €
## Objectifs
### Renforcer la transparence
* Quelles données sont collectées?
* Dans quels buts?
* Pour combien de temps?
## Objectifs
### Faciliter l'exercice des droits
* droit à la rectification
* droit à la portabilité
* droit à l'oubli
* suppression des données personnelles
* dès qu'elles ne sont plus nécessaires au traitement
* dès que le consentement de l'utilisateur a été retiré
* dès que la personne s'y oppose
## Objectifs
### Responsabiliser les acteurs traitant des données
* Obligation de moyens pour la sécurité des données
* Obligation d'information en cas de violation de données à caractère personnel
* Vis à vis de l'autorité de contrôle
* Vis à vis des personnes concernées
## Comment?
* DPO (Data Protection Officer) / DPD (Délégué à la protection des données)
* conformité RGPD
* Point de contact avec les autorités
* Analyse d'impact (PIA)
* [un logiciel pour réaliser son analyse d’impact sur la protection des données (PIA)](https://www.cnil.fr/fr/rgpd-un-logiciel-pour-realiser-son-analyse-dimpact-sur-la-protection-des-donnees-pia)
## Profan
* qui est le responsable du traitement
* L'UCA?
* Le CNRS?
* Le ministère de l'éducation nationale?
Réponse le 20 mars!
## Profan
* Quels sont les finalités du traitement?
* Le LAPSCO doit préciser
* cette information doit faire partier de la communication Profan dès la rentrée prochaine
## Profan
* exercice des droits
* les fonctionnalités sont implémentées
* Mesure de sécurité
* elles ont été listées
Plus généralement l'analyse d'impact a été largement entamé pour eP3c et peut être réutilisé pour Profan.
## à faire
* Déterminer le responsable des traitements
* Détailler (toutes) les finalités du projet
* Les communiquer clairement aux famille
* Adapter l'analyse d'impact à partir du travail réalisé pour eP3C
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Profan RGPD</title>
<link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
<link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="md/profan-rgpd.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="utf-8">
</section>
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: false,
dependencies: [
{ src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
{ src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
{ src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
{ src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
Title: git 101
Date: 2017-05-16 10:20
Status: Published
Tags: www, dev
## Qu'est ce que git?
d'après la [page git sur <i class="fa fa-wikipedia-w" aria-hidden="true"></i> wikipédia](https://fr.wikipedia.org/wiki/Git)
> git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les
> termes de la licence publique générale GNU version 2. En 2016, il s’agit du logiciel de gestion de versions le plus populaire qui est utilisé par plus de
> douze millions de personnes4.
## Pourquoi devrais je utiliser git?
Vous développez? vous écrivez des articles?
Vous avez deux préoccupations
1. ne pas perdre votre travail: vous avez besoin un endroit où le sauvegarder
2. garder un trace de l'historique de vos modifications: vous avez besoin d'une copie de référence et d'un moyen de gérer cette copie
3. collaborer de manière efficace avec d'autres personnes sur votre travail: vous avez besoin d'une gestion partagée de l'hitorique des modifications
git s'emploie à résoudre tout cela.
### SVN fait ca très bien ...
C'est vrai! On a pour habitude de dire que git n'est pas pire ;)
La différence majeure est la centralisation du repository. avec SVN le serveur de version doit toujours être accessible pour par exemple pouvoir remonter dasn l'historique des modification. Git lui est décentralisé c'est à dire que vous travaillerez toujour sur repository complet qui vous permettra de travailler sans le serveur qui vous sert de référence. Vous pourrez mettre à jour le repository après coup.
#### Github / gitlab
un deuxième argument pour utiliser git plutôt que SVN est l'adhésion qu'il a sucité au travers de projets devenus majeurs dans le paysage du logiciel libre et opensource. Github a vu le jour en 2006
## Concept de base
https://try.github.io/levels/1/challenges/25
http://gitreal.codeschool.com/?utm_source=github&utm_medium=codeschool_option&utm_campaign=trygit
http://themouette.github.io/slides-git/?theme=clermontech#/
https://speakerdeck.com/willdurand/git-and-github-and-open-source-clermontech-workshop-git
### GUI
### .gitconfig
* melf mergetool difftool
Title: markdown
Date: 2017-05-16 10:20
Status: Published
Tags: www, dev
## Qu'est ce que markdown?
* http://www.aaronsw.com/weblog/001189
* https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
## Pourquoi markdown?
outil de conversion
* https://word-to-markdown.herokuapp.com/
* http://pandoc.org/
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@fortawesome/fontawesome-free@^6.1.1":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.2.tgz#d18880eddeadd42b1c64cb559f2f3d13d47a4a64"
integrity sha512-XwWADtfdSN73/udaFm+1mnGIj/ShDZNFMe/PRoqv3FhQ4GNI2PUN70yFTPsjq65Lw2C9i4TG5/hTbxXIXVCiqQ==
reveal.js@^3.5.0:
version "3.9.2"
resolved "https://registry.yarnpkg.com/reveal.js/-/reveal.js-3.9.2.tgz#7f63d3dfec338b6c313dcabdf006e8cf80e0b358"
integrity sha512-Dvv2oA9FrtOHE2DWj5js8pMRfwq++Wmvsn1EyAdYLC80lBjTphns+tPsB652Bnvep9AVviuVS/b4XoVY9rXHLA==
...@@ -67,7 +67,7 @@ function start_up(){ ...@@ -67,7 +67,7 @@ function start_up(){
pelican_pid=$! pelican_pid=$!
echo $pelican_pid > $PELICAN_PID echo $pelican_pid > $PELICAN_PID
mkdir -p $OUTPUTDIR && cd $OUTPUTDIR mkdir -p $OUTPUTDIR && cd $OUTPUTDIR
$PY -m pelican.server $port & $PY -m pelican.server $port
srv_pid=$! srv_pid=$!
echo $srv_pid > $SRV_PID echo $srv_pid > $SRV_PID
cd $BASEDIR cd $BASEDIR
......
version: '3.5'
services:
node:
image: node:latest
container_name: ${APP_NAME}_node
environment:
TZ: ${TIMEZONE:-Europe/Paris}
working_dir: /srv/blog
volumes:
- .:/srv/blog
command: bash /srv/blog/.docker/scripts/node/command.dev.sh
python:
image: ${NAMESPACE}/${APP_NAME}_python:latest
build:
context: .
dockerfile: .docker/build/python/Dockerfile
container_name: ${APP_NAME}_python
environment:
TZ: ${TIMEZONE:-Europe/Paris}
working_dir: /srv/blog
volumes:
- .:/srv/blog
ports:
- "${PORT-8000}:8000"
command: bash /srv/blog/.docker/scripts/python/command.dev.sh
kerberos:
image: ${NAMESPACE}/${APP_NAME}_kerberos:latest
build:
context: .
dockerfile: .docker/build/kerberos/Dockerfile
container_name: ${APP_NAME}_kerberos
environment:
TZ: ${TIMEZONE:-Europe/Paris}
volumes:
- .:/srv/blog
command: bash /srv/blog/.docker/scripts/kerberos/command.dev.sh
dockerize:
image: jwilder/dockerize
volumes:
- .:/tmp
\ No newline at end of file
## TODOS
* faire le challenge javascript au moment de javascript
* faire le challenge brute force + weak session dans auth
* faire le challenge DVWA CSP après XSS ajouter SOP et CORS => virer ou vider Browser
* faire le challenge captcha après CSRF
* reprendre le code du gist dans http et dans CSP pour faire des fetch dignes
* faire relire js à @tibertra & @thlecoub
##
sudo vi /etc/sudoers -> %sudo ALL=(ALL:ALL) ALL -> %sudo ALL=(ALL) NOPASSWD:ALL
sudo vi /etc/default/keyboard -> replace "us" by "fr"
default language in kali : https://www.youtube.com/watch?v=zCzxXc2SJ6Y
firefox / burp suite / kali / https://www.youtube.com/watch?v=Uzy28osev5g
simple api project / https://developer.okta.com/blog/2019/03/08/simple-rest-api-php
https://addons.mozilla.org/fr/firefox/addon/proxy-switcher-and-manager/
https://github.com/onhexgroup/Vulnerable-WordPress
https://sharpforce.gitbook.io/cybersecurity/walkthroughs/damn-vulnerable-web-application/damn-vulnerable-web-application-dvwa
https://medium.com/@dannybeton/dvwa-brute-force-tutorial-low-security-463880d53e50
\ No newline at end of file