Dans le cadre du cours "Ateliers en sécurité", il nous a été demandé de créer une entreprise fictive qui utilise une infrastructure à clef publique, ou PKI (Public Key Infrastructure), pour sécuriser ses services. Ce document décrit le scénario choisi, l'organisation de notre entreprise fictive et les différents composants physiques et logiciels utilisés pour mettre en place notre infrastructure. Il décrit aussi la politique de certification utilisée pour celle-ci.
Dans le cadre du cours "Ateliers en sécurité", il nous a été demandé de créer une entreprise fictive qui utilise une infrastructure à clef publique, ou PKI (Public Key Infrastructure), pour sécuriser ses services. Ce document décrit le scénario choisi, l'organisation de notre entreprise fictive et les différents composants physiques et logiciels utilisés pour mettre en place notre infrastructure. Il décrit aussi la politique de certification utilisée pour celle-ci.
# Idée principale
## Idée principale
Nous avons choisi de concevoir une entreprise fournissant une version simplifiée des services proposés par une autorité de certification comme Let's Encrypt. Notre infrastructure comprendra donc sa propre autorité de certification qui permettra d'émettre des certificats pour nos services ainsi que pour les services publiques de nos clients. La gestion de ces certificats pourra ensuite être automatisée grâce au protocole ACME (Automated Certificate Management Environment).
Nous avons choisi de concevoir une entreprise fournissant une version simplifiée des services proposés par une autorité de certification comme Let's Encrypt. Notre infrastructure comprendra donc sa propre autorité de certification qui permettra d'émettre des certificats pour nos services ainsi que pour les services publiques de nos clients. La gestion de ces certificats pourra ensuite être automatisée grâce au protocole ACME (Automated Certificate Management Environment).
## Répartition des tâches
- Recherches théoriques : Élio Marconi
- Mise en place de l'infrastructure : Flavio Morrone, Léo Muff
- Rédaction de la documentation : Léo Muff
## Avancement
- [x] Installation de Microk8s et Vault
- [x] Configuration initiale de Vault
- [x] Création de l'autorité racine et de l'autorité intermédiaire
- [x] Configuration de Cert-manager
- [x] Mise en place d'un service test en https
- [x] Mise à jour des certificats
- [x] Mise en place d'ACME
- [ ] Mise en place d'un service DNS pour valider les challenges ACME
- [ ] Mise en place d'un script pour permettre une utilisation simplifiée de notre service ACME.
\newpage
\newpage
# Description de l'infrastructure à clef publique
# Description de l'infrastructure à clef publique
...
@@ -79,6 +99,8 @@ Notre autorité racine émettra les certificats deux deux autorités intermédia
...
@@ -79,6 +99,8 @@ Notre autorité racine émettra les certificats deux deux autorités intermédia
# Mise en place de l'infrastructure :
# Mise en place de l'infrastructure :
→ Les commandes commençant par `microk8s` sont à exécuter dans le terminal de la machine hôte. Celles commençant par `vault` doivent être exécutées dans le container de Vault.
## Installation Vault sur MicroK8s
## Installation Vault sur MicroK8s
Les commandes suivantes permettent d'installer microk8s et d'y déployer une instance de Vault. Elles ont été testées sur un système Ubuntu 22.04, et peuvent varier selon le système utilisé.
Les commandes suivantes permettent d'installer microk8s et d'y déployer une instance de Vault. Elles ont été testées sur un système Ubuntu 22.04, et peuvent varier selon le système utilisé.
...
@@ -519,7 +541,6 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon
...
@@ -519,7 +541,6 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon
```
```
\newpage
### Remplacer l'émetteur par défaut
### Remplacer l'émetteur par défaut
...
@@ -527,6 +548,8 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon
...
@@ -527,6 +548,8 @@ Cette étape permet aux services qui n'ont pas communiqué avec le CA depuis lon
vault write pki/root/replace default=root-2
vault write pki/root/replace default=root-2
```
```
\newpage
### Signer l'autorité intermédiaire avec notre nouveau certificat racine
### Signer l'autorité intermédiaire avec notre nouveau certificat racine
-**Infrastructure à clef publique ou PKI (Public Key Infrastructure)** : Une PKI est un ensemble de processus basés sur l'utilisation de certificats qui permettent de chiffrer et d'authentifier les communications entre utilisateurs et services ou de service à service.
-**Infrastructure à clef publique ou PKI (Public Key Infrastructure)** : Une PKI est un ensemble de processus basés sur l'utilisation de certificats qui permettent de chiffrer et d'authentifier les communications entre utilisateurs et services ou de service à service.
-**Politique de certification** : Ensemble de décisions qui définissent les caractéristique des certificats émis. La politique de certification définit le temps de vie des certificats, la chaîne de confiance, les politiques de révocations, etc.
-**Politique de certification** : Ensemble de décisions qui définissent les caractéristique des certificats émis. La politique de certification définit le temps de vie des certificats, la chaîne de confiance, les politiques de révocations, etc.
-**Autorité de certification ou CA (Certificate Authority)** : Une autorité de certification est un organisme qui agit comme tiers de confiance. La CA est responsable de l'émission de certificats et de leur validation. Pour être considérée comme un tiers de confiance valide, l'autorité doit être reconnue par les principaux navigateurs et systèmes d'exploitation.
-**Autorité de certification ou CA (Certificate Authority)** : Une autorité de certification est un organisme qui agit comme tiers de confiance. La CA est responsable de l'émission de certificats et de leur validation. Pour être considérée comme un tiers de confiance valide, l'autorité doit être reconnue par les principaux navigateurs et systèmes d'exploitation.
-**Chaîne de confiance**
-**Chaîne de confiance** : Hiérarchie utilisée par les certificats pour vérifier la validité de l'émetteur.