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
Select Git revision
  • master
  • prez
2 results

Target

Select target project
  • vimazeno/blog.limos.fr
  • matrossevi/blog.limos.fr
  • borlonjo/blog.limos.fr
3 results
Select Git revision
  • master
1 result
Show changes
Showing
with 847 additions and 399 deletions
## Surveillance
!["surveillance"](images/jnarac/surveillance/obama-prism-raccroche.jpg "surveillance") <!-- .element: width="70%" -->
Note:
- Barack
- snowden juin 2013
- NSA
- Prism
- grand retour en arrière au moins en facade
- bad for business
## Chine
![Chines cop](images/jnarac/surveillance/chinese_cop.jpg)<!-- .element width="85%" -->
[<small>Face Recognition Glasses Augment China’s Railway Cops</small>](http://www.sixthtone.com/news/1001676/face-recognition-glasses-augment-chinas-railway-cops)
[<small>La Chine met en place un système de notation de ses citoyens pour 2020</small>](http://www.lefigaro.fr/secteur/high-tech/2017/12/27/32001-20171227ARTFIG00197-la-chine-met-en-place-un-systeme-de-notation-de-ses-citoyens-pour-2020.php)
## whistle blowers
![Whistle blowers](images/jnarac/surveillance/whistle_blower.jpeg)<!-- .element width="85%" -->
Note:
- cypher punk
- libertarien
- le renseignement est il à combattre?
## Surveillance En France
!["surveillance"](images/jnarac/surveillance/valls-prism-raccroche.jpg "surveillance")<!-- .element: width="70%" -->
Note:
- France
- 7 janvier 2015 (Je suis Charlie)
- Je suis sur écoute
- Loi sur le renseignement
- qui abroge un cadre légal existant
- LIL
- le business en fera les frais
- la démocratie aussi
## LIL
[!["SAFARI ou la chasse aux Français"](images/jnarac/surveillance/safari.jpg "SAFARI ou la chasse aux Français")](http://fr.wikipedia.org/wiki/Syst%C3%A8me_automatis%C3%A9_pour_les_fichiers_administratifs_et_le_r%C3%A9pertoire_des_individus)
[!["cnil"](images/jnarac/surveillance/cnil.jpg "cnil")](http://www.cnil.fr/)
#### « Quand on consulte des images de djihadistes, on est un djihadiste. »
![« Quand on consulte des images de djihadistes, on est un djihadiste. »](images/jnarac/surveillance/sarko.jpg "« Quand on consulte des images de djihadistes, on est un djihadiste. »")<!-- .element width="50%" -->
![« Merde je suis Emma Watson nue. »](images/jnarac/surveillance/emma-watson.png "« Merde je suis Emma Watson nue. »")<!-- .element width="50%" -->
#### Mégafichier TES
![Méga fichiers TES](images/jnarac/surveillance/megafichier_TES.jpg)<!-- .element width="25%" -->
* [<i class="fa fa-wikipedia-w" aria-hidden="true"></i> Fichage en France](https://fr.wikipedia.org/wiki/Fichage_en_France)
* [Le «fichier des gens honnêtes»](http://www.slate.fr/story/138356/saga-generalisation-fichier-des-gens-honnetes)
* [Le «mégafichier» étendu au pas de charge](http://www.liberation.fr/futurs/2017/02/21/le-megafichier-etendu-au-pas-de-charge_1549968)
## Internet
![Hippies](images/jnarac/www/hippies-60s.jpg)<!-- .element width="60%" -->
## Internet
* __efficient__: les messages arrivent toujours
* __résiliant__: trouve d'autres chemin si besoin
* __projet politique__: modèle de société mondiale
* __décentralisé__: personne ne le contrôle réellement
* __ouvert__: très facile de s'y connecter
* __nativement non sécurisé__: tout cricule en claire
* __transmission par paquet__: via le protocol TCP / IP
## le web
* n'est pas Internet, mais fonctionne grâce à l'Internet
* n'est ni Google, ni facebook
* encore moins chrome ou firefox
* inventé par [<i class="fa fa-wikipedia-w" aria-hidden="true"></i> Tim Berners Lee](https://fr.wikipedia.org/wiki/Tim_Berners-Lee) début 90
* il est conçu comme une mine d'informations
* pas comme un lieu de transactions économiques
* tout est ouvert
* [<i class="fa fa-wikipedia-w" aria-hidden="true"></i> Wikipédia](https://wikipedia.org) incarne les concepts fondamentaux du web
## le web
* repose sur le parcours discursif
* lien hypertexte
* [<i class="fa fa-wikipedia-w" aria-hidden="true"></i> URL (Uniform Resource locator)](https://fr.wikipedia.org/wiki/Uniform_Resource_Locator)
<br />
<div style="text-align: center">
![url](images/jnarac/www/url.jpg "url")<!-- .element: width="55%" -->
</div>
* supporté par un protocole [HTTP](../1337/http.html)
## le web n'oublie jamais
[![wayback machine](images/jnarac/www/waybackmachine.png "Waybackmachine")](http://web.archive.org/web/20020331020421/http://vmazenod.free.fr/)
Note:
- waybackmachine vous connaissez?
- le tout est d'assumer ses coupes de cheveux
- et ses propos antérieurs, on change, l'environnement change
## <i class="fa fa-ambulance" aria-hidden="true"></i> le web n'oublie jamais
* Désactiver les partages automatiques
* de localisation
* de photos
* Réfléchir avant de mettre quoique ce soit en ligne
* photos
* partages d'information
* Se protéger et protéger les autres
* Enfants, famille, amis, collègue, employeurs
## le web est résiliant
[![Effet Streisand](images/jnarac/www/Streisand_Estate.jpg "Effect Streisand")](http://fr.wikipedia.org/wiki/Effet_Streisand)
Note:
- effet Streisand en 2003
- poursuite du photographe diffuseur
- 420 000 visistes le mois suivant
- l'image sur wikipedia en Creative common
- ce qu'on essaie de supprimer peut rester
## <i class="fa fa-ambulance" aria-hidden="true"></i> le web est résiliant
* Faire valoir [son droit au déréférencement](https://www.cnil.fr/fr/le-droit-au-dereferencement)
* suppression des résultats des moteurs de recherche
* ne supprime pas l'information du web
* [Google Search Console (ex webmaster tools)](https://www.google.com/webmasters/tools/home?hl=fr&pli=1)
* si vous avez "la main sur la page"
# Mots de passe
# <i class="fa fa-user-secret" aria-hidden="true"></i>
# <i class="fa fa-user-secret"></i>
## Les mots de passes
### <i class="fa-solid fa-trophy"></i> Les mots de passes
1. ça ne se prête pas
2. ça ne se laisse pas traîner à la vue de tous
......@@ -15,195 +15,113 @@
8. mieux vaut les avoir avec soi
## C'est une question d'hygiène!
### <i class="fa-solid fa-head-side-mask"></i> C'est une question d'hygiène!
![preservatif](images/passwords/preservatif-darvador.jpg)<!-- .element width="30%" -->
[CNIL / Authentification par mot de passe : les mesures de sécurité élémentaires](https://www.cnil.fr/fr/authentification-par-mot-de-passe-les-mesures-de-securite-elementaires)
## [<i class="fa fa-firefox" aria-hidden="true"></i> Firefox](https://www.mozilla.org/fr/firefox/new/)
### [<i class="fab fa-firefox"></i> Firefox](https://www.mozilla.org/fr/firefox/new/)
* Stocke les mots de passes en clair
* *Préférences > Sécurité > Identifiants enregistrés*
![/o\](images/passwords/password.firefox.png)<!-- .element style="width: 500px" -->
* Propose un "mot de passe principal"
* *Préférences > Sécurité > Utiliser un mot de passe principal*
* [Vulnérable](https://www.raymond.cc/blog/how-to-find-hidden-passwords-in-firefox/)
* [Firefox Sync](https://www.mozilla.org/en-US/firefox/sync/)
## [<i class="fa fa-chrome" aria-hidden="true"></i> Chrome](https://www.google.fr/chrome/browser/desktop/)
### [<i class="fab fa-chrome"></i> Chrome](https://www.google.fr/chrome/browser/desktop/)
* Stocke les [mots de passe en ligne](https://passwords.google.com/settings/passwords)
* non [souverain](sovereignty.html)
* comme [LastPass](https://www.lastpass.com/fr), [Dashlane](https://www.dashlane.com/), [iCloud](https://www.icloud.com/), ...
* comme [LastPass](https://www.lastpass.com/fr), [Dashlane](https://www.dashlane.com/), [iCloud](https://www.icloud.com/), ..., [Firefox Sync](https://www.mozilla.org/en-US/firefox/sync/)
![/o\](images/passwords/password.google.png)
## [KeePass](http://keepass.info/)
### <i class="fa-solid fa-key"></i> [KeePass](http://keepass.info/)
* Gestionnaire (base de données, wallet, ...) de mots de passe
* **souverain**
* <i class="fa fa-bullhorn" aria-hidden="true"></i> [Produits Certifiés CSPN par l'ANSSI](https://www.ssi.gouv.fr/entreprise/certification_cspn/keepass-version-2-10-portable/)
* <i class="fa fa-bullhorn"></i> [Produits Certifiés CSPN par l'ANSSI](https://www.ssi.gouv.fr/entreprise/certification_cspn/keepass-version-2-10-portable/)
* <i class="fa fa-bullhorn" aria-hidden="true"></i> reco CNRS à l'[ANF Protection des données par le chiffrement (2015)](http://resinfo.org/spip.php?article86)
* [<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
Gérer ses mots de passe avec KeePass et KeeFox par M. Libes](http://cesar.resinfo.org/IMG/pdf/07-anf_chiffre_-_tp_keepass_-_procedure.pdf)
* <i class="fa fa-bullhorn"></i> reco CNRS à l'[ANF Protection des données par le chiffrement (2015)](http://resinfo.org/spip.php?article86)
## [KeePass](http://keepass.info/)
### <i class="fa-solid fa-key"></i> [KeePass](http://keepass.info/)
<i class="fa fa-windows" aria-hidden="true"></i> Full windows
<i class="fab fa-windows"></i> Full windows
* intégration en [mono](http://www.mono-project.com/) sous linux & Mac OS X
* bugué sous certains environnement linux
* [nombreux plugins](http://keepass.info/plugins.html)
* dont [keepasshttp](https://github.com/pfn/keepasshttp) <i class="fa fa-thumbs-o-up" aria-hidden="true"></i> qui permet l'intégration au navigateur
* dont [keepasshttp](https://github.com/pfn/keepasshttp) <i class="fa fa-thumbs-o-up"></i> qui permet l'intégration au navigateur
## [KeePass](http://keepass.info/)
### <i class="fa-solid fa-key"></i> [KeePass](http://keepass.info/)
* KeePass 1 (Classic Edition)
* .kdb
* KeePass 2 <i class="fa fa-thumbs-o-up" aria-hidden="true"></i> (Professional Edition)
* .kdbx <i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
* KeePass 2 <i class="fa fa-thumbs-o-up"></i> (Professional Edition)
* .kdbx <i class="fa fa-thumbs-o-up"></i>
* meilleure interropérabilité
* permet d'attacher des fichiers
* permet de lier un utilisateur windows à une base de données
## [KeePass](http://keepass.info/) / config
#### Tools > Options
![Keepass config](images/passwords/keepass.config.png)
### [KeePassX](https://www.keepassx.org/) <i class="fa fa-thumbs-o-down" aria-hidden="true"></i>
### <i class="fa-solid fa-key"></i> [KeePassX](https://www.keepassx.org/) <i class="fas fa-thumbs-down"></i>
* Portage officieux de keepass
* cross-platform (<i class="fa fa-windows" aria-hidden="true"></i> Windows, <i class="fa fa-apple" aria-hidden="true"></i> Mac OS X, <i class="fa fa-linux" aria-hidden="true"></i> Linux)
* cross-platform (<i class="fab fa-windows"></i> Windows, <i class="fab fa-apple"></i> Mac OS X, <i class="fab fa-linux"></i> Linux)
* Développement chaotique
* non intégration d'une partie du code produit par la communauté
* notamment le portage du plugin [keepasshttp](http://keepass.info/plugins.html#keepasshttp)
## [KeePassXC](https://keepassxc.org/) <i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
### <i class="fa-solid fa-key"></i> [KeePassXC](https://keepassxc.org/) <i class="fas fa-thumbs-up"></i>
* Portage officieux de keepass
* [KeepassXC – A cross-platform community fork of KeepassX](https://news.ycombinator.com/item?id=13468261)
* cross-platform (<i class="fa fa-windows" aria-hidden="true"></i> Windows, <i class="fa fa-apple" aria-hidden="true"></i> Mac OS X, <i class="fa fa-linux" aria-hidden="true"></i> Linux)
* cross-platform (<i class="fab fa-windows"></i>, <i class="fab fa-apple"></i>, <i class="fab fa-linux"></i>)
* [Récemment stable](https://github.com/keepassxreboot/keepassxc/releases)
* <strike>Récemment</strike> parfaitement stable
* la [pulse du projet](https://github.com/keepassxreboot/keepassxc/pulse)
* Implémente en natif le RPC via http pour l'intégration aux navigateurs <i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
## [KeePassXC](https://keepassxc.org/) / config
#### Tools > Options
![KeepassXC config](images/passwords/keepassxc.config.general.png)
* Implémente en natif <strike>le RPC via http</strike> Unix sockets (ou pipes sous Windows) pour l'intégration aux navigateurs <i class="fa fa-thumbs-o-up"></i>
## [KeePassXC](https://keepassxc.org/) / config
### [<i class="fab fa-firefox"></i> <i class="fab fa-chrome"></i> KeePassXC-Browser Migration](https://keepassxc.org/docs/keepassxc-browser-migration/)
#### Tools > Options
* pré-requis
* [KeePassXC](https://keepassxc.org/) avec l'intégration aux bon navigateurs activée
* cherche un couple login mot de passe dans [KeePassXC](https://keepassxc.org/) à partir de l'url consultée
* sauvegarde les nouvelles entrées dans [KeePassXC](https://keepassxc.org/)
![KeepassXC config](images/passwords/keepassxc.config.http.png)
### <i class="fa-brands fa-android"></i> Android
## [<i class="fa fa-firefox" aria-hidden="true"></i> <i class="fa fa-chrome" aria-hidden="true"></i> KeePassHttp-Connector](https://github.com/smorks/keepasshttp-connector/blob/master/documentation/KeePassHttp-Connector.md)
* [KeePass2Android](https://play.google.com/store/apps/details?id=keepass2android.keepass2android&hl=fr) [<i class="fab fa-github"></i>](https://github.com/PhilippC/keepass2android)
* <i class="fa fa-windows" aria-hidden="true"></i> <i class="fa fa-apple" aria-hidden="true"></i> <i class="fa fa-linux" aria-hidden="true"></i>
* extension pour l'intégration de [KeePass](http://keepass.info/) au navigateur [<i class="fa fa-firefox" aria-hidden="true"></i> firefox](https://www.mozilla.org/fr/firefox/new/), [<i class="fa fa-chrome" aria-hidden="true"></i> chrome](https://www.google.fr/chrome) et [<i class="fa fa-chrome" aria-hidden="true"></i> chromium](https://www.chromium.org/)
## [<i class="fa fa-firefox" aria-hidden="true"></i> <i class="fa fa-chrome" aria-hidden="true"></i> KeePassHttp-Connector](https://github.com/smorks/keepasshttp-connector/blob/master/documentation/KeePassHttp-Connector.md)
* pré-requis: [KeePassXC](https://keepassxc.org/) avec le module http activé
* [Documentation](https://github.com/pfn/passifox/blob/master/documentation/PassIFox.md)
* [Fonctionnalités](https://github.com/pfn/passifox/blob/master/documentation/chromeIPass.md#1-features)
* cherche un couple login mot de passe dans [KeePass](http://keepass.info/) à partir de l'url consultée
* sauvegarde les nouvelles entrées dans [KeePass](http://keepass.info/)
* ne permet pas de classer ses mots de passes à partir du navigateur
## Android
* [KeePassDroid](http://www.keepassdroid.com/) [<i class="fa fa-github" aria-hidden="true"></i>](https://github.com/bpellin/keepassdroid)
* [KeePassDX](https://www.keepassdx.com/) [<i class="fab fa-github"></i>](https://github.com/Kunzisoft/KeePassDX)
* disponible sur l'app store alternatif [F-Droid](https://f-droid.org/)
* catalogue of FOSS (Free and Open Source Software) applications for the Android platform
* [KeePass2Android](https://play.google.com/store/apps/details?id=keepass2android.keepass2android&hl=fr)
* basé sur [KeePassDroid](http://www.keepassdroid.com/)
* pas de code source disponible
* intégration à Android
## KeePass2Android / config
![android.1.keepas2android](images/passwords/android.1.keepas2android.png)<!-- .element width="35%" -->
![android.2.keepas2android](images/passwords/android.2.keepas2android.png)<!-- .element width="35%" -->
## KeePass2Android / config
![android.3.parametres](images/passwords/android.3.parametres.png)<!-- .element width="30%" -->
![android.4.langues](images/passwords/android.4.langues.png)<!-- .element width="30%" -->
![android.5.clavier.config](images/passwords/android.5.clavier.config.png)<!-- .element width="30%" -->
## KeePass2Android / config
![android.6.clavier.disable](images/passwords/android.6.clavier.disable.png)<!-- .element width="30%" -->
![android.7.clavier.warning](images/passwords/android.7.clavier.warning.png)<!-- .element width="30%" -->
![android.8.clavier.enabled](images/passwords/android.8.clavier.enabled.png)<!-- .element width="30%" -->
## KeePass2Android / config
![android.9.clavier](images/passwords/android.9.clavier.png)<!-- .element width="30%" -->
![android.10.clavier.selectionne](images/passwords/android.10.clavier.selectionne.png)<!-- .element width="30%" -->
## KeePass2Android / config
![android.11.accessibilite](images/passwords/android.11.accessibilite.png)<!-- .element width="30%" -->
![android.12.accessibilite.clavier.desactive](images/passwords/android.12.accessibilite.clavier.desactive.png)<!-- .element width="30%" -->
![android.13.accessibilite.clavier.desactive](images/passwords/android.13.accessibilite.clavier.desactive.png)<!-- .element width="30%" -->
## KeePass2Android / config
![android.14.accessibilite.clavier.warning](images/passwords/android.14.accessibilite.clavier.warning.png)<!-- .element width="30%" -->
![android.15.accessibilite.clavier.enbabled](images/passwords/android.15.accessibilite.clavier.enbabled.png)<!-- .element width="30%" -->
## KeePass2Android / config
![android.16.clavier.reglages](images/passwords/android.16.clavier.reglages.png)<!-- .element width="30%" -->
![android.17.clavier.params](images/passwords/android.17.clavier.params.png)<!-- .element width="30%" -->
![android.18.clavier.keepass2android](images/passwords/android.18.clavier.keepass2android.png)<!-- .element width="30%" -->
## iOS
### <i class="fa-brands fa-apple"></i> iOS
* N'hésitez pas à m'envoyer vos pointeurs
## [Vault by HashiCorp](https://www.vaultproject.io/)
### <i class="fa-solid fa-server"></i> [Vault by HashiCorp](https://www.vaultproject.io/)
[![vault](images/passwords/vault.png)](https://www.vaultproject.io/)
## Solution Hardware
## <i class="fa-solid fa-microchip"></i> Solution Hardware
[![mooltipass](images/passwords/mooltipass.jpg)](https://www.themooltipass.com/)
......@@ -10,7 +10,7 @@
* 1991
* munition / cryptowar
* PGP abandonné
* GPG GnuPG sous GPL devient est le standard
* GPG GnuPG sous GPL est devenu le standard
# Gérer son envrionnement GPG
......
# Souveraineté
Si l'utilisateur n'utilise pas des outils qu'il contrôle ...
# <i class="fa-solid fa-power-off"></i>
Il est contrôlé par ses outils
Si tu n'utilises pas des outils que tu contrôles ...
tu es contrôlé par ces outils
## Hacking
<table>
<tr>
<td>![RMS](images/sovereignty/stallman.jpg "RMS")<!-- .element width="60%"--></td>
<td>![ers](images/sovereignty/raymond.jpg "ers")<!-- .element width="50%" --></td>
</tr>
</table>
[![Richard Stallamn - RMS](images/sovereignty/stallman.jpg "RMS")<!-- .element width="20%"-->](https://fr.wikipedia.org/wiki/Richard_Stallman)
[![Eric Steven Raymond - ESR](images/sovereignty/raymond.jpg "ers")<!-- .element width="37%" -->](https://fr.wikipedia.org/wiki/Eric_Raymond)
* Black Hat, white Hat, Grey Hat
* Ethical
* [une brève histoire des hackers](http://www.linux-france.org/article/these/hackers_history/fr-a_brief_history_of_hackerdom_monoblock.html)
* [une brève histoire des hackers](https://usbeketrica.com/fr/article/une-breve-histoire-des-hackers)
* [code is law](http://framablog.org/2010/05/22/code-is-law-lessig/)
......@@ -29,7 +27,7 @@ Il est contrôlé par ses outils
* la liberté d'étudier le logiciel
* la liberté de modifier le logiciel et de redistribuer les versions modifiées
* La viralité
* le copie left
* **🄯 le copie left** ~~©~~
## Open source
......@@ -40,32 +38,21 @@ Il est contrôlé par ses outils
* Même Microsoft s'ouvre
* ["An Open Letter to Hobbyists" Bill Gates, 1976](https://fr.wikipedia.org/wiki/An_Open_Letter_to_Hobbyists)
* ["Linux is a cancer" Steve Ballmer, 2001](http://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/)
* [Windows bientôt en Open Source](http://www.lemondeinformatique.fr/actualites/lire-windows-bientot-en-open-source-60767.html)
* [Foire aux questions sur l'open source et l'intéropérabilité](http://www.microsoft.com/france/openness/ressources/faq.aspx)
* [github](https://github.com), [type script](https://www.typescriptlang.org/), [vscode](https://code.visualstudio.com/), [et autres ...](https://opensource.microsoft.com/projects/)
## Logiciel privateur
[![Logiciel Propriétaire](https://upload.wikimedia.org/wikipedia/commons/1/14/Classification_des_licences.svg)](https://fr.wikipedia.org/wiki/Logiciel_propri%C3%A9taire)
## logicels libres & opensources
* OS: [Ubuntu](https://ubuntu-fr.org/)
* logiciels: [framasoft](https://framasoft.org/), [alternativeto](https://alternativeto.net/)
## logicels libres & opensources
* Android: [F-DROID](https://f-droid.org/fr/), [<i class="fa fa-reddit" aria-hidden="true"></i> best android ROM for privacy](https://www.reddit.com/r/privacy/comments/6d3a33/best_android_rom_for_privacy/)
* OS: [Certains linux sont libres](https://www.gnu.org/distros/free-distros.fr.html), mais [pas ubuntu](https://www.developpez.com/actu/332740/Richard-Stallman-s-exprime-sur-l-etat-du-mouvement-du-logiciel-libre-et-declare-que-les-Macintosh-continuent-d-etre-des-prisons-pour-les-utilisateurs/)
* logiciels: [framasoft](https://framasoft.org/), [alternativeto](https://alternativeto.net/), [liste des logiciels libres](https://fr.wikipedia.org/wiki/Liste_de_logiciels_libres) (tiens il y a ubuntu?)
## logicels libres & opensources
* [Framastart](https://framastart.org/)
* [Framalibre](https://framasoft.org/rubrique2.html)
* [Framakey](https://framakey.org/Main/Index)
* [LiberKey](https://www.liberkey.com/fr.html)
* [Framapack](https://framapack.org/)
* [AlternativeTo](http://alternativeto.net/)
* [Github](https://github.com/)
* <strike>https://sourceforge.net/</strike>
* Android: [LineageOS](https://lineageos.org/), [F-DROID](https://f-droid.org/fr/), [<i class="fab fa-reddit"></i> best android ROM for privacy](https://www.reddit.com/r/privacy/comments/6d3a33/best_android_rom_for_privacy/)
## Services
......@@ -76,14 +63,22 @@ Il est contrôlé par ses outils
* sur des machines accessibles physiquement si possible
* enjeux des connexions personnelles
* Utiliser des services décentralisés
* Déjouer le [capitalisme de surveillance](https://www.zulma.fr/livre/lage-du-capitalisme-de-surveillance/)
## Services
* [OwnCloud](https://owncloud.org/) > [framadrive](https://framadrive.org/) ou [service-public.fr](https://www.service-public.fr/assistance-et-contact/aide/compte#Comment%20stocker%20vos%20documents%20) > [Google Drive](https://drive.google.com) / [Dropbox](https://www.dropbox.com) / [One Drive](https://onedrive.live.com)
* [OwnCloud](https://owncloud.org/) > [framagenda](https://framagenda.org) > [Google calendar](https://calendar.google.com)
* [OwnCloud](https://owncloud.org/) / [Nextcloud](https://nextcloud.com/) > [framadrive](https://framadrive.org/) ou [service-public.fr](https://www.service-public.fr/assistance-et-contact/aide/compte#Comment%20stocker%20vos%20documents%20) > [Google Drive](https://drive.google.com) / [Dropbox](https://www.dropbox.com) / [One Drive](https://onedrive.live.com)
* [OwnCloud](https://owncloud.org/) / [Nextcloud](https://nextcloud.com/) > [framagenda](https://framagenda.org) > [Google calendar](https://calendar.google.com)
* [Etherpad](http://etherpad.org/) > [Framapad](https://framapad.org/) > [Google Docs](https://docs.google.com)
* [Postfix](http://www.postfix.org/) > [Proton mail](https://protonmail.com/) > [GMail](https://mail.google.com/)
* [Qwant](https://www.qwant.com/) > [DuckDuckGo](https://duckduckgo.com/) > [Google](https://www.google.fr)
* g!
<div style="text-align: center">
<a href="https://www.chatons.org">
<img src="https://www.chatons.org/sites/default/files/uploads/logo_chatons.png" style="width: 200px"/>
</a>
</div>
## Auto-hébergement
......
......@@ -11,8 +11,8 @@
* bibliothèques implémentant le protocole SSL
* commande en ligne
* Supporte SSL 2.0, SSL 3.0 et TLS 1.0
* Actuellement TLS 1.2
* [ANSSI : privilégier TLS1.2 et tolérer TLS1.1 et TLS1.0](https://www.ssi.gouv.fr/uploads/2016/09/guide_tls_v1.1.pdf)
* Actuellement TLS 1.3
* [ANSSI : privilégier TLS1.3 et tolérer TLS1.2, TLS1.1 et TLS1.0](https://www.ssi.gouv.fr/uploads/2016/09/guide_tls_v1.1.pdf)
* Distribué sous une licence de type Apache
......@@ -65,7 +65,7 @@
* **Serial**
* Algorithme de signature du certificat
* **Issuer** le signataire (***DN*** de la ***CA***)
* **Validty** début fin de validité
* **Validity** début fin de validité
* **Subject name** **DN** identifié par le certificat
* **Subject Public Key**
* Extensions (ajouté en v3)
......@@ -322,7 +322,7 @@ note:
Révocation de certificats
* Contient une liste de certificats valides à révoquer
* liste de certificats liste des identifiants des certificats qui ont été révoqués ou invalidés
* utile en cas de compromission / décommissionnement
* informer la ***CA***
* la ***CA*** ajoute le certificat à sa liste de certificats révoqués
......@@ -415,6 +415,7 @@ Transport Layer Security
* **TLS 1.0** = SSL 3.1 [IETF](http://www.ietf.org/)
* **1.1** released en Avril 2006, [RFC 4346](http://www.frameip.com/rfc/rfc3546.php)
* **1.2** released en Août 2008, [RFC 5246](http://www.frameip.com/rfc/rfc4366.php)
* **1.3** released en Août 2018, [RFC 8446](https://www.bortzmeyer.org/8446.html)
## [Cypher suite](https://fr.wikipedia.org/wiki/Suite_cryptographique)
......@@ -557,7 +558,7 @@ Le serveur
* Devenu obligatoire le 8 septembre 2017
* Le 9 septembre 2017, Comodo s’est fait pincer pour ne pas le respecter :
* Le 9 septembre 2017, Comodo s’est fait pincé pour ne pas le respecter :
[Comodo Caught Breaking New CAA Standard One Day After It Went Into Effect](https://www.bleepingcomputer.com/news/security/comodo-caught-breaking-new-caa-standard-one-day-after-it-went-into-effect/)
Note:
......@@ -568,7 +569,10 @@ Note:
## DNS-Based Authentication of Named Entities (DANE)
* Publication du certificat dans un enregistrement TLSA du DNS, protégé par DNSSEC
* pour un nom de domaine
* publication du certificat signé dans un enregistrement TLSA du DNS
* protégé par DNSSEC
* permet de spécifier quelles **CAs** peuvent émettre des certificats
* Validation par les clients
......@@ -581,7 +585,8 @@ Note:
* [les dangers du wifi](https://wiki.wireshark.org/CaptureSetup/WLAN)
* [firesheep](http://codebutler.github.io/firesheep/)
* Intégrité
* Authentification (via les certificats)
* Authentification
* via les certificats
## Apache
......@@ -596,8 +601,12 @@ Note:
* On ne voit pas l'url dans le traffic
* on voit l'ip de l'hôte
* on voit ventuellement les requêtes DNS
* Proxy https ou VPN anonymisent complètement le traffic
* on voit le domaine dans les DNS
* Anonymat?
* Proxy http
* VPN
* Tor
Note:
- Attention les proxy
......@@ -627,27 +636,18 @@ Note:
* [Certificate authorities issue SSL certificates to fraudsters](http://news.netcraft.com/archives/2015/10/12/certificate-authorities-issue-hundreds-of-deceptive-ssl-certificates-to-fraudsters.html)
## <i class="fa fa-gears"></i> Tests serveurs
## <i class="fa fa-gears"></i> Tester
* Tester un certificat SSL
* [SSL Decoder](https://ssldecoder.org/)
* [Certificate Expiry Monitor](https://certificatemonitor.org/)
* Tester une configuration SSL
* Tester un certificat SSL/TLS
* [SSL Certificate Decoder](https://www.sslchecker.com/certdecoder)
* Tester un serveur SSL/TLS
* [Qualys](https://www.ssllabs.com/ssltest/)
* [Comodo ssl analyzer](https://sslanalyzer.comodoca.com/)
* [OpenSSL Decoder](https://raymii.org/s/software/OpenSSL_Decoder.html)
* [Strong SSL Security On nginx](https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html)
* [<i class="fa fa-gitlab"></i> Monter un serveur https avec apache](https://gitlab.isima.fr/mazenovi/tp-www-ssl)
## <i class="fa fa-gears"></i> Tests navigateurs
* [SSL Cipher Suite Details of Your Browser](https://cc.dcsec.uni-hannover.de/)
* [testssl.sh](https://github.com/drwetter/testssl.sh)
* ```shell
$ nmap -p 443 --script=ssl-enum-ciphers heart.bleed
```
* Tester un navigateur
* [How's my SSL?](https://www.howsmyssl.com/)
* [<i class="fa fa-firefox"></i> Toggle Cipher Suites](https://addons.mozilla.org/fr/firefox/addon/toggle-cipher-suites/)
* [<i class="fa fa-github"></i> Toggle Cipher Suites](https://github.com/dillbyrne/toggle-cipher-suites/releases)
* [<i class="fa fa-github"></i> Calomel SSL validator](https://addons.mozilla.org/fr/firefox/addon/calomel-ssl-validation/)
Note:
- aspect arbitraire de la notation notamment qualys
......@@ -659,35 +659,21 @@ Note:
* un service sans **s** est un problème
* pas ftp, mais sftp ou ftps
* pas rsync, mais rsync over sssh
* pas rsync, mais rsync over ssh
* pas imap, pop3 et smtp, mais imaps, pop3s et smtps
* Seules les implémentations conformes à TLSv1 et supérieures doivent être employées
* Seules les implémentations conformes à TLSv2 et supérieures doivent être employées
* Les cyphersuites offrant la PFS doivent être favorisées
* [Anssi - SSL/TLS: état des lieux et recommandations](https://www.ssi.gouv.fr/uploads/2012/06/ssl_tls_etat_des_lieux_et_recommandations.pdf)
## <i class="fa fa-medkit"></i> Se protéger / Apache
* [Chiffrement fort SSL/TLS : Mode d'emploi](https://httpd.apache.org/docs/2.4/fr/ssl/ssl_howto.html)
* [Hardening Your Web Server’s SSL Ciphers](https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/)
* [ssllabs.com's own Apache SSL Config Directives](https://community.qualys.com/thread/9652)
* [Apache web server SSL best practices](https://wiki.fysik.dtu.dk/it/SSL_best_practices)
## <i class="fa fa-medkit"></i> Se protéger / Nginx
* [HTTPS on Nginx: From Zero to A+ (Part 1)](https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-1/)
* [HTTPS on Nginx: From Zero to A+ (Part 2)](https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-2-configuration-ciphersuites-and-performance/)
#### <i class="fa fa-medkit"></i> Se protéger / tout serveur
* [https://cipherli.st/](https://cipherli.st/) pour une conf sécurisée
* [<i class="fa fa-warning"></i> Modifier tous les vhosts pour nginx!!](http://serverfault.com/questions/641150/nginx-cant-disable-sslv3)
## <i class="fa fa-medkit"></i> Se protéger
* fixer le [weak Diffie-Hellman (aka logjam Attack](https://weakdh.org/))
* Apache
* [Chiffrement fort SSL/TLS : Mode d'emploi](https://httpd.apache.org/docs/current/ssl/ssl_howto.html)
différents services
* [https://syslink.pl/cipherlist/](https://syslink.pl/cipherlist/)
* fixer le [weak Diffie-Hellman (aka logjam Attack)](https://weakdh.org/))
<pre><code class="hljs bash" style="font-size: 28px"> openssl dhparam -out dhparams.pem 2048 </code></pre>
* suivre les [<i class="fa fa-book"></i> recommandations de l'ANSSI](https://www.ssi.gouv.fr/agence/publication/ssltls-3-ans-plus-tard/)
......
......@@ -3,16 +3,15 @@
# <i class="fa fa-user-secret" aria-hidden="true"></i>
## [panopticlick](https://panopticlick.eff.org/)
## [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%" -->
[![Finger print](images/tracking/fingerprint.png)<!-- .element style="width: 80%" -->](https://coveryourtracks.eff.org/)
## Cookies
......@@ -40,15 +39,9 @@
* [<i class="fa fa-github" aria-hidden="true"></i> willdurand-edu/cookie-playground](https://github.com/willdurand-edu/cookie-playground)
```bash
sudo add-apt-repository ppa:webupd8team/atom && sudo apt update;
sudo apt install git php atom
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
git clone https://github.com/willdurand-edu/cookie-playground.git
php composer.phar install
php -S localhost:4000 -t .
atom .
```
* tracker exposes a dashboard at: http://localhost:4000/tracker/public/dashboard.
......
## 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%" -->
......@@ -7,11 +7,11 @@
<title>Keepass</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="../../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/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
......@@ -35,7 +35,7 @@
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<!-- script src="../../node_modules/reveal.js/lib/js/head.min.js"></script -->
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
......@@ -49,7 +49,18 @@
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/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(); } }
]
......
......@@ -7,11 +7,11 @@
<title>Souveraineté</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="../../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/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="../main.css">
<!-- Printing and PDF exports -->
......@@ -35,7 +35,7 @@
</div>
</div>
<script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
<!-- script src="../../node_modules/reveal.js/lib/js/head.min.js"></script -->
<script src="../../node_modules/reveal.js/js/reveal.js"></script>
<script>
......@@ -49,11 +49,23 @@
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/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>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>
# 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(){
pelican_pid=$!
echo $pelican_pid > $PELICAN_PID
mkdir -p $OUTPUTDIR && cd $OUTPUTDIR
$PY -m pelican.server $port &
$PY -m pelican.server $port
srv_pid=$!
echo $srv_pid > $SRV_PID
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
......@@ -4,57 +4,104 @@ from __future__ import unicode_literals
import os
AUTHOR = 'Vincent Mazenod'
SITENAME = 'Vincent Mazenod / ingénieur d\'études'
SITENAME = 'Vincent Mazenod / ingénieur de recherche'
SITELOGO = 'images/mazenovi.png'
OIMPHOTO = 'images/oim.jpg'
FAVICON = 'images/favicon.ico'
SITEURL = 'https://fc.isima.fr/~mazenod'
DISQUS_SITENAME = 'limos-1'
DISQUS_SHORTNAME = 'mazenovi'
SITEURL = 'https://perso.limos.fr/~mazenovi/'
# DISQUS_SITENAME = 'limos-1'
# DISQUS_SHORTNAME = 'mazenovi'
LINKS = (
(
'user-circle',
'Farouk Toumani',
'http://www.isima.fr/~ftoumani/'
'http://isima.fr/~ftoumani/'
),
(
'user-circle',
'Pascal Lafourcade',
'http://sancy.univ-bpclermont.fr/~lafourcade/'
'https://sancy.iut.uca.fr/~lafourcade/index-en.html'
),
(
'user-circle',
'Christophe Rey',
'http://chrey.blogspot.com/'
),
(
'user-circle',
'Marie Pailloux',
'http://isima.fr/~pailloux/'
),
(
'user-circle',
'Engelbert Mephu Nguifo',
'http://ws.isima.fr/~mephu/'
'http://isima.fr/~mephu/'
),
(
'user-circle',
'Jean-Marie Favreau',
'https://jmfavreau.info/'
),
(
'user-circle',
'Pascal Huguet',
'https://lapsco.fr/la-direction.html'
),
)
RESEARCH = (
(
'https://limos.fr/static/limos/limos.png',
'width: 40px',
'LIMOS',
'https://limos.fr/detailperson/109',
),
(
'https://hal.science/assets/img/hal-logo-header.png',
'width: 20px',
'HAL',
'https://cv.hal.science/vincent-mazenod',
),
(
'https://static-00.iconduck.com/assets.00/google-scholar-icon-2048x2048-sjbhklt7.png',
'width: 20px',
'Google Scholar',
'https://scholar.google.com/citations?user=CFWYNi8AAAAJ',
),
)
SOCIAL = (
(
'building-o',
'users-cog',
'<span style="font-size:13px">CRI ISIMA/LIMOS</span>',
'https://hedgedoc.isima.fr/p/gD_i47uIi#/'
),
(
'building',
'<span style="font-size:13px">Bureau A115 - 1<sup>ère</sup> étage</span>',
'#'
),
# (
# 'phone',
# '04 73 40 50 27',
# '#'
# ),
(
'phone',
'04 73 40 50 27',
'#'
'envelope',
'<span style="font-size:13px">vincent.mazenod@limos.fr</span>',
'mailto:vincent.mazenod@limos.fr'
),
(
'envelope-o',
'<span style="font-size:13px">vincent.mazenod@isima.fr</span>',
'mailto:vincent.mazenod@isima.fr'
'linkedin',
'LinkedIn',
'pages/pgp.html'
),
(
'key',
'clé publique PGP',
'pages/pgp.html'
'https://www.linkedin.com/in/mazenovi'
),
(
'gitlab',
'gitlab.isima.fr',
'https://gitlab.isima.fr/mazenovi'
)
)
#INDEX_SAVE_AS = 'index.html'
......@@ -142,12 +189,13 @@ SHOW_ARTICLE_AUTHOR = False
SHOW_ARTICLE_CATEGORY = True
SHOW_DATE_MODIFIED = True
CUSTOM_CSS = 'static/custom.css'
STATIC_PATHS = ['images', 'extra/custom.css', 'node_modules', 'slides']
STATIC_PATHS = ['images', 'extra/custom.css', 'extra/custom.js', 'node_modules', 'slides']
ARTICLE_EXCLUDES = ['node_modules', 'slides']
PAGE_EXCLUDES = ['node_modules', 'slides']
STATIC_EXCLUDES = ['node_modules', 'slides']
EXTRA_PATH_METADATA = {
'extra/custom.css': {'path': 'static/custom.css'}
'extra/custom.css': {'path': 'static/custom.css'},
'extra/custom.js': {'path': 'static/custom.js'}
}
PYGMENTS_STYLE = "monokai"
USE_PAGER = True
......
=======================
I18N Sub-sites Plugin
=======================
This plugin extends the translations functionality by creating
internationalized sub-sites for the default site.
This plugin is designed for Pelican 3.4 and later.
What it does
============
1. When the content of the main site is being generated, the settings
are saved and the generation stops when content is ready to be
written. While reading source files and generating content objects,
the output queue is modified in certain ways:
- translations that will appear as native in a different (sub-)site
will be removed
- untranslated articles will be transformed to drafts if
``I18N_UNTRANSLATED_ARTICLES`` is ``'hide'`` (default), removed if
``'remove'`` or kept as they are if ``'keep'``.
- untranslated pages will be transformed into hidden pages if
``I18N_UNTRANSLATED_PAGES`` is ``'hide'`` (default), removed if
``'remove'`` or kept as they are if ``'keep'``.''
- additional content manipulation similar to articles and pages can
be specified for custom generators in the ``I18N_GENERATOR_INFO``
setting.
2. For each language specified in the ``I18N_SUBSITES`` dictionary the
settings overrides are applied to the settings from the main site
and a new sub-site is generated in the same way as with the main
site until content is ready to be written.
3. When all (sub-)sites are waiting for content writing, all removed
contents, translations and static files are interlinked across the
(sub-)sites.
4. Finally, all the output is written.
Setting it up
=============
For each extra used language code, a language-specific settings overrides
dictionary must be given (but can be empty) in the ``I18N_SUBSITES`` dictionary
.. code-block:: python
PLUGINS = ['i18n_subsites', ...]
# mapping: language_code -> settings_overrides_dict
I18N_SUBSITES = {
'cz': {
'SITENAME': 'Hezkej blog',
}
}
Default and special overrides
-----------------------------
The settings overrides may contain arbitrary settings, however, there
are some that are handled in a special way:
``SITEURL``
Any overrides to this setting should ensure that there is some level
of hierarchy between all (sub-)sites, because Pelican makes all URLs
relative to ``SITEURL`` and the plugin can only cross-link between
the sites using this hierarchy. For instance, with the main site
``http://example.com`` a sub-site ``http://example.com/de`` will
work, but ``http://de.example.com`` will not. If not overridden, the
language code (the language identifier used in the ``lang``
metadata) is appended to the main ``SITEURL`` for each sub-site.
``OUTPUT_PATH``, ``CACHE_PATH``
If not overridden, the language code is appended as with ``SITEURL``.
Separate cache paths are required as parser results depend on the locale.
``STATIC_PATHS``, ``THEME_STATIC_PATHS``
If not overridden, they are set to ``[]`` and all links to static
files are cross-linked to the main site.
``THEME``, ``THEME_STATIC_DIR``
If overridden, the logic with ``THEME_STATIC_PATHS`` does not apply.
``DEFAULT_LANG``
This should not be overridden as the plugin changes it to the
language code of each sub-site to change what is perceived as translations.
Localizing templates
--------------------
Most importantly, this plugin can use localized templates for each
sub-site. There are two approaches to having the templates localized:
- You can set a different ``THEME`` override for each language in
``I18N_SUBSITES``, e.g. by making a copy of a theme ``my_theme`` to
``my_theme_lang`` and then editing the templates in the new
localized theme. This approach means you don't have to deal with
gettext ``*.po`` files, but it is harder to maintain over time.
- You use only one theme and localize the templates using the
`jinja2.ext.i18n Jinja2 extension
<http://jinja.pocoo.org/docs/templates/#i18n>`_. For a kickstart
read this `guide <./localizing_using_jinja2.rst>`_.
Additional context variables
............................
It may be convenient to add language buttons to your theme in addition
to the translation links of articles and pages. These buttons could,
for example, point to the ``SITEURL`` of each (sub-)site. For this
reason the plugin adds these variables to the template context:
``main_lang``
The language of the main site — the original ``DEFAULT_LANG``
``main_siteurl``
The ``SITEURL`` of the main site — the original ``SITEURL``
``lang_siteurls``
An ordered dictionary, mapping all used languages to their
``SITEURL``. The ``main_lang`` is the first key with ``main_siteurl``
as the value. This dictionary is useful for implementing global
language buttons that show the language of the currently viewed
(sub-)site too.
``extra_siteurls``
An ordered dictionary, subset of ``lang_siteurls``, the current
``DEFAULT_LANG`` of the rendered (sub-)site is not included, so for
each (sub-)site ``set(extra_siteurls) == set(lang_siteurls) -
set([DEFAULT_LANG])``. This dictionary is useful for implementing
global language buttons that do not show the current language.
``relpath_to_site``
A function that returns a relative path from the first (sub-)site to
the second (sub-)site where the (sub-)sites are identified by the
language codes given as two arguments.
If you don't like the default ordering of the ordered dictionaries,
use a Jinja2 filter to alter the ordering.
All the siteurls above are always absolute even in the case of
``RELATIVE_URLS == True`` (it would be to complicated to replicate the
Pelican internals for local siteurls), so you may rather use something
like ``{{ SITEURL }}/{{ relpath_to_site(DEFAULT_LANG, main_lang }}``
to link to the main site.
This short `howto <./implementing_language_buttons.rst>`_ shows two
example implementations of language buttons.
Usage notes
===========
- It is **mandatory** to specify ``lang`` metadata for each article
and page as ``DEFAULT_LANG`` is later changed for each sub-site, so
content without ``lang`` metadata would be rendered in every
(sub-)site.
- As with the original translations functionality, ``slug`` metadata
is used to group translations. It is therefore often convenient to
compensate for this by overriding the content URL (which defaults to
slug) using the ``url`` and ``save_as`` metadata. You could also
give articles e.g. ``name`` metadata and use it in ``ARTICLE_URL =
'{name}.html'``.
Development
===========
- A demo and a test site is in the ``gh-pages`` branch and can be seen
at http://smartass101.github.io/pelican-plugins/
from .i18n_subsites import *