Skip to content
Snippets Groups Projects
Commit 05e38179 authored by Vincent Mazenod's avatar Vincent Mazenod
Browse files

cri + cours

parent ab9b5e6b
No related branches found
No related tags found
No related merge requests found
Pipeline #3361 passed
...@@ -13,13 +13,16 @@ ...@@ -13,13 +13,16 @@
* asynchrone * asynchrone
## Javascript ## scope
* `var variable`
* directement dans le script
* accessible partout y compris dans les fonctions
* dans les fonctions
* visibilité restreinte à la fonction
* var contexte * sans `var` on déclare forcément variable globalement
* var dans le sciprt accessible partout y compris dans les fonctionns * y compris dans une fonction
* var dans les fonctions scope restreint à la fonction
* sans le var on déclare forcément global
* y compris dans une variable
Note: Note:
- on peut avoir du js dans un pdf (adobe reader a donc un interpréteur js) - on peut avoir du js dans un pdf (adobe reader a donc un interpréteur js)
...@@ -29,10 +32,14 @@ Note: ...@@ -29,10 +32,14 @@ Note:
## Les événements ## Les événements
* sur chaque élément
* chaque balise
* page
* déclenchement de traitements * déclenchement de traitements
* interaction utilisateur
* événements de là page * interaction utilisateur
## Les événements ## Les événements
......
content/slides/cri/images/80columns.jpg

124 KiB

content/slides/cri/images/vault-auth.png

33.1 KiB

content/slides/cri/images/vault-secrets-engines.png

29.3 KiB

<!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>manifest</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/manifest.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>
# manifeste
## 80 colonnes par lignes max
!["80 colonnes"](images/80columns.jpg "80 colonnes")
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
## Configuration ## Configuration
* /etc/vault/vault.hcl `/etc/vault/vault.hcl`
``` ```
backend "file" { backend "file" {
...@@ -35,28 +35,32 @@ listener "tcp" { ...@@ -35,28 +35,32 @@ listener "tcp" {
``` ```
## [<i class="fa fa-book" aria-hidden="true"></i> Secret engine](https://www.vaultproject.io/docs/secrets/) ## [<i class="fa fa-book" aria-hidden="true"></i> Secrets engines](https://www.vaultproject.io/docs/secrets/)
!["secrets engines"](images/vault-secrets-engines.png "secrets engines")
<!--
* [<i class="fa fa-book" aria-hidden="true"></i> Secrets Engines - getting started](https://learn.hashicorp.com/vault/getting-started/dynamic-secrets) * [<i class="fa fa-book" aria-hidden="true"></i> Secrets Engines - getting started](https://learn.hashicorp.com/vault/getting-started/dynamic-secrets)
* [<i class="fa fa-book" aria-hidden="true"></i> AWS Secrets Engine](https://www.vaultproject.io/docs/secrets/aws/index.html) * [<i class="fa fa-book" aria-hidden="true"></i> AWS Secrets Engine](https://www.vaultproject.io/docs/secrets/aws/index.html)
* [<i class="fa fa-book" aria-hidden="true"></i> Active Directory Secrets Engine](https://www.vaultproject.io/docs/secrets/aws/index.html) * [<i class="fa fa-book" aria-hidden="true"></i> Active Directory Secrets Engine](https://www.vaultproject.io/docs/secrets/aws/index.html)
* [<i class="fa fa-book" aria-hidden="true"></i> SSH Secrets Engine](https://www.vaultproject.io/docs/secrets/ssh/index.html) * [<i class="fa fa-book" aria-hidden="true"></i> SSH Secrets Engine](https://www.vaultproject.io/docs/secrets/ssh/index.html)
* [<i class="fa fa-book" aria-hidden="true"></i> KV Secrets Engine](https://www.vaultproject.io/docs/secrets/kv/index.html) * [<i class="fa fa-book" aria-hidden="true"></i> KV Secrets Engine](https://www.vaultproject.io/docs/secrets/kv/index.html)
-->
## KV ## KV
```shell ```shell
$ vault kv get secret/test $ vault kv get cri/test
====== Data ====== ====== Data ======
Key Value Key Value
--- ----- --- -----
password1 secret$ password1 secret$
$ vault kv put secret/test password2=secret! $ vault kv put cri/test password2=secret!
Success! Data written to: secret/test Success! Data written to: cri/test
$ vault kv get secret/test $ vault kv get cri/test
====== Data ====== ====== Data ======
Key Value Key Value
--- ----- --- -----
...@@ -67,19 +71,18 @@ password2 secret! ...@@ -67,19 +71,18 @@ password2 secret!
## KV2 ## KV2
```shell ```shell
vault login token=<root-token>
vault secrets enable -path=cri kv vault secrets enable -path=cri kv
vault kv enable-versioning secret/ # kv2 vault kv enable-versioning cri/ # kv2
``` ```
* les secrets sont versionés * les secrets sont versionés
* il est possible d'utiliser PATCH et pas seulement PUT * il est possible d'utiliser PATCH et pas seulement PUT
```shell ```shell
$ vault kv patch secret/test password1=secret$ $ vault kv patch cri/test password1=secret$
Success! Data written to: secret/test Success! Data written to: cri/test
$ vault kv get secret/test $ vault kv get cri/test
====== Data ====== ====== Data ======
Key Value Key Value
--- ----- --- -----
...@@ -90,10 +93,23 @@ password2 secret! ...@@ -90,10 +93,23 @@ password2 secret!
## Authentification ## Authentification
!["authentification"](images/vault-auth.png "authentification")
## Authentification
```shell
vault login token=<root-token>
```
* par token * par token
* root * root
* d'application * d'application
```shell
$ vault login -method=ldap username=vimazeno
```
* par ldap * par ldap
* en réalité génère un token dans ~/.vault-token contenant * en réalité génère un token dans ~/.vault-token contenant
...@@ -119,7 +135,7 @@ $ vault write auth/ldap/config \ ...@@ -119,7 +135,7 @@ $ vault write auth/ldap/config \
## Policy ## Policy
/etc/vault/cri.hcl /etc/vault/users/cri.hcl
``` ```
# Write and manage secrets in key-value secret engine # Write and manage secrets in key-value secret engine
...@@ -164,17 +180,16 @@ ou ...@@ -164,17 +180,16 @@ ou
## Workflow ## Workflow
```shell ```shell
$ vault login -method=ldap username=vimazeno
$ vault secrets list $ vault secrets list
$ vault list secret/ $ vault kv list cri/
$ vault kv get secret/tokens $ vault kv get cri/services/vault/tokens
$ vault kv get secret/tokens # à chaque put on écrase les entrées qu'on ne réécrit pas $ vault kv get cri/services/vault/tokens # à chaque put on écrase les entrées qu'on ne réécrit pas
$ vault kv get secret/tokens -format=json $ vault kv get -format=json cri/services/vault/tokens
$ vault kv get secret/tokens -format=json | jq .data $ vault kv get -format=json cri/services/vault/tokens | jq .data
$ vault kv get secret/tokens -format=json | jq .data.password $ vault kv get -format=json cri/services/vault/tokens | jq .data.data.root
$ vault kv put secret/tokens password2=$(date | sha256sum | cut -c -50) $ vault kv put cri/test password2=$(date | sha256sum | cut -c -50)
$ vault kv patch secret/tokens password1=$(date | sha256sum | cut -c -50) $ vault kv patch cri/test password1=$(date | sha256sum | cut -c -50)
$ vault delete secret/tokens $ vault delete cri/test
``` ```
...@@ -189,7 +204,7 @@ path "secret/data/cri/apps/my" { ...@@ -189,7 +204,7 @@ path "secret/data/cri/apps/my" {
``` ```
```shell ```shell
$ vault policy write vault/apps/my.hcl $ vault policy write vault/hcl/apps/my.hcl
$ vault token create -policy=my $ vault token create -policy=my
``` ```
...@@ -207,7 +222,6 @@ authentification ldap ...@@ -207,7 +222,6 @@ authentification ldap
## bin/setup ## bin/setup
<small>
```bash ```bash
command -v "vault" >/dev/null 2>&1 || { command -v "vault" >/dev/null 2>&1 || {
echo >&2 "I require vault to run see stack" echo >&2 "I require vault to run see stack"
...@@ -228,12 +242,11 @@ else ...@@ -228,12 +242,11 @@ else
vault login token=${VAULT_TOKEN} > /dev/null vault login token=${VAULT_TOKEN} > /dev/null
fi fi
``` ```
</small> <!-- .element style="width: 100%;" -->
## bin/configure ## bin/configure
<small>
```bash ```bash
# lecture des clés vault avec python: la sortie est une liste python UTF8 (u'value') # lecture des clés vault avec python: la sortie est une liste python UTF8 (u'value')
KV=$(vault read cri/my -format=json | python -c "import sys, json; print json.load(sys.stdin)['data'].keys()") KV=$(vault read cri/my -format=json | python -c "import sys, json; print json.load(sys.stdin)['data'].keys()")
...@@ -251,4 +264,4 @@ do ...@@ -251,4 +264,4 @@ do
sed -i "s|$i|$(vault read cri/my -format=json | jq -r .data.$i | sed -r "s/\n//g")|g" config.py 2>/dev/null sed -i "s|$i|$(vault read cri/my -format=json | jq -r .data.$i | sed -r "s/\n//g")|g" config.py 2>/dev/null
done done
``` ```
</small> <!-- .element style="width: 100%;" -->
## X.509 ## X.509
* Certificat créé par la CA * Certificat créé par la CA
* 1 seule signature : celle de la CA * 1 seule signature : celle de la CA
* Chiffre le tuyau (TLS/SSL)
* Confiance centralisée * Confiance centralisée
* Confiance distribuée * Forêt d’arbres de confiance
* Forêt d’arbres de confiance
## PGP ## PGP
* Certificat créé par l’utilisateur * Certificat créé par l’utilisateur
* Plusieurs signatures * Plusieurs signatures
* Chiffre les messages * Confiance distribuée
* Graph orienté de confiance * Graph orienté de confiance
## X.509 centralise la confiance sur les CA ## X.509 centralise la confiance sur les CA
vs
## PGP distribue la confiance entre utilisateurs ## PGP distribue la confiance entre utilisateurs
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* 1991 * 1991
* munition / cryptowar * munition / cryptowar
* PGP abandonné * PGP abandonné
* GPG GnuPG sous GPL devient est le standard * GPG GnuPG sous GPL est devenu le standard
# Gérer son envrionnement GPG # Gérer son envrionnement GPG
......
...@@ -322,7 +322,7 @@ note: ...@@ -322,7 +322,7 @@ note:
Révocation de certificats 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 * utile en cas de compromission / décommissionnement
* informer la ***CA*** * informer la ***CA***
* la ***CA*** ajoute le certificat à sa liste de certificats révoqués * la ***CA*** ajoute le certificat à sa liste de certificats révoqués
...@@ -558,7 +558,7 @@ Le serveur ...@@ -558,7 +558,7 @@ Le serveur
* Devenu obligatoire le 8 septembre 2017 * 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/) [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: Note:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment