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 @@
* 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
* var dans le sciprt accessible partout y compris dans les fonctionns
* var dans les fonctions scope restreint à la fonction
* sans le var on déclare forcément global
* y compris dans une variable
* sans `var` on déclare forcément variable globalement
* y compris dans une fonction
Note:
- on peut avoir du js dans un pdf (adobe reader a donc un interpréteur js)
......@@ -29,10 +32,14 @@ Note:
## Les événements
* sur chaque élément
* chaque balise
* page
* déclenchement de traitements
* interaction utilisateur
* événements de là page
* interaction utilisateur
## 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 @@
## Configuration
* /etc/vault/vault.hcl
`/etc/vault/vault.hcl`
```
backend "file" {
......@@ -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> 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> 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)
-->
## KV
```shell
$ vault kv get secret/test
$ vault kv get cri/test
====== Data ======
Key Value
--- -----
password1 secret$
$ vault kv put secret/test password2=secret!
Success! Data written to: secret/test
$ vault kv put cri/test password2=secret!
Success! Data written to: cri/test
$ vault kv get secret/test
$ vault kv get cri/test
====== Data ======
Key Value
--- -----
......@@ -67,19 +71,18 @@ password2 secret!
## KV2
```shell
vault login token=<root-token>
vault secrets enable -path=cri kv
vault kv enable-versioning secret/ # kv2
vault kv enable-versioning cri/ # kv2
```
* les secrets sont versionés
* il est possible d'utiliser PATCH et pas seulement PUT
```shell
$ vault kv patch secret/test password1=secret$
Success! Data written to: secret/test
$ vault kv patch cri/test password1=secret$
Success! Data written to: cri/test
$ vault kv get secret/test
$ vault kv get cri/test
====== Data ======
Key Value
--- -----
......@@ -90,10 +93,23 @@ password2 secret!
## Authentification
!["authentification"](images/vault-auth.png "authentification")
## Authentification
```shell
vault login token=<root-token>
```
* par token
* root
* d'application
```shell
$ vault login -method=ldap username=vimazeno
```
* par ldap
* en réalité génère un token dans ~/.vault-token contenant
......@@ -119,7 +135,7 @@ $ vault write auth/ldap/config \
## Policy
/etc/vault/cri.hcl
/etc/vault/users/cri.hcl
```
# Write and manage secrets in key-value secret engine
......@@ -164,17 +180,16 @@ ou
## Workflow
```shell
$ vault login -method=ldap username=vimazeno
$ vault secrets list
$ vault list secret/
$ vault kv get secret/tokens
$ vault kv get secret/tokens # à chaque put on écrase les entrées qu'on ne réécrit pas
$ vault kv get secret/tokens -format=json
$ vault kv get secret/tokens -format=json | jq .data
$ vault kv get secret/tokens -format=json | jq .data.password
$ vault kv put secret/tokens password2=$(date | sha256sum | cut -c -50)
$ vault kv patch secret/tokens password1=$(date | sha256sum | cut -c -50)
$ vault delete secret/tokens
$ vault kv list cri/
$ vault kv get cri/services/vault/tokens
$ vault kv get cri/services/vault/tokens # à chaque put on écrase les entrées qu'on ne réécrit pas
$ vault kv get -format=json cri/services/vault/tokens
$ vault kv get -format=json cri/services/vault/tokens | jq .data
$ vault kv get -format=json cri/services/vault/tokens | jq .data.data.root
$ vault kv put cri/test password2=$(date | sha256sum | cut -c -50)
$ vault kv patch cri/test password1=$(date | sha256sum | cut -c -50)
$ vault delete cri/test
```
......@@ -189,7 +204,7 @@ path "secret/data/cri/apps/my" {
```
```shell
$ vault policy write vault/apps/my.hcl
$ vault policy write vault/hcl/apps/my.hcl
$ vault token create -policy=my
```
......@@ -207,7 +222,6 @@ authentification ldap
## bin/setup
<small>
```bash
command -v "vault" >/dev/null 2>&1 || {
echo >&2 "I require vault to run see stack"
......@@ -228,12 +242,11 @@ else
vault login token=${VAULT_TOKEN} > /dev/null
fi
```
</small>
<!-- .element style="width: 100%;" -->
## bin/configure
<small>
```bash
# 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()")
......@@ -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
done
```
</small>
<!-- .element style="width: 100%;" -->
## X.509
* Certificat créé par la CA
* 1 seule signature : celle de la CA
* Chiffre le tuyau (TLS/SSL)
* Confiance centralisée
* Confiance distribuée
* Forêt d’arbres de confiance
## PGP
* Certificat créé par l’utilisateur
* Plusieurs signatures
* Chiffre les messages
* Confiance distribuée
* Graph orienté de confiance
## X.509 centralise la confiance sur les CA
vs
## PGP distribue la confiance entre utilisateurs
......@@ -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
......
......@@ -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
......@@ -558,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:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment