Compare commits

..

No commits in common. "633540c7d591c1e2c65f9c9405b315911dfb04ea" and "8d67017c79fc233944efcf4fa562f79db28bb7b5" have entirely different histories.

11 changed files with 3 additions and 357 deletions

View File

@ -1,37 +0,0 @@
# Installation
## 1. Crée un dossier et un utilisateur
sudo mkdir -p /opt/isso
sudo useradd --system --home /opt/isso --shell /sbin/nologin isso
## 2. Crée et active lenvironnement
cd /opt/isso
sudo python3 -m venv venv
sudo source venv/bin/activate
sudo pip install --upgrade pip
sudo pip install isso
sudo pip install setuptools
sudo pip install wheel
## 3. Crée le fichier de config
sudo touch /opt/isso/isso.conf
sudo chown isso:isso /opt/isso/isso.conf
## 4. Crée le service systemd
sudo cp isso.service /etc/systemd/system/isso.service
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable isso
sudo systemctl start isso
sudo systemctl status isso
# Utilisation
Modification dans le thème binario de :
* themes/binario/layouts/partials/header.html -> ajout du script isso
* themes/binario/layouts/partials/comments.html -> modification intégrale du fichier
Ajout du fichier d'administration :
/opt/isso/isso-admin.sh

View File

@ -1,44 +0,0 @@
#!/bin/bash
DB="/opt/isso/comments.db"
echo -e "\nThreads existants :"
sqlite3 "$DB" <<EOF
.headers on
.mode column
SELECT id, uri FROM threads ORDER BY id;
EOF
read -p "ID du thread à modérer : " TID
[ -z "$TID" ] && exit
echo -e "\nCommentaires dans le thread #$TID :"
sqlite3 "$DB" <<EOF
.headers on
.mode column
SELECT id, mode, substr(text,1,60) AS preview
FROM comments WHERE tid=$TID ORDER BY id DESC;
EOF
while true; do
echo
read -p "ID à modérer (ou vide pour quitter) : " CID
[ -z "$CID" ] && exit
echo "1. Approuver"
echo "2. Supprimer"
read -p "Choix : " CHOICE
case $CHOICE in
1)
sqlite3 "$DB" "UPDATE comments SET mode=1 WHERE id=$CID;"
echo "Commentaire $CID approuvé."
;;
2)
sqlite3 "$DB" "DELETE FROM comments WHERE id=$CID;"
echo "Commentaire $CID supprimé."
;;
*)
echo "Choix invalide." ;;
esac
done

View File

@ -1,20 +0,0 @@
[general]
dbpath = /opt/isso/comments.db
host = https://fabnum-blog.peccini.fr
max-age = 3600
notify = false
[server]
listen = http://127.0.0.1:8181/
[moderation]
enabled = true
[admin]
enabled = true
password = votremotdepasse
[guard]
enabled = true
ratelimit = 2
direct-reply = 3

View File

@ -1,13 +0,0 @@
[Unit]
Description=Isso comment server (venv)
After=network.target
[Service]
User=isso
Group=isso
WorkingDirectory=/opt/isso
ExecStart=/opt/isso/venv/bin/isso -c /opt/isso/isso.conf run
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@ -1,64 +0,0 @@
server {
listen 443 ssl;
server_name fabnum-blog.peccini.fr;
root /var/www/FabNum_blog/public;
index index.html;
location ^~ /isso/ {
proxy_pass http://127.0.0.1:8181/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
# GZIP compression
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
gzip_min_length 1024;
gzip_vary on;
# Caching for static files
location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff|woff2|ttf|svg|eot|mp4|webp)$ {
expires 30d;
add_header Cache-Control "public";
}
# No cache for HTML and feeds
location ~* \.(html|xml|json|rss)$ {
expires -1;
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
}
# Main site
location / {
try_files $uri $uri/ =404;
}
# SSL settings
ssl_certificate /etc/letsencrypt/live/fabnum-blog.peccini.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/fabnum-blog.peccini.fr/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
# Redirect www non-www (HTTPS)
server {
listen 443 ssl;
server_name www.fabnum-blog.peccini.fr;
return 301 https://fabnum-blog.peccini.fr$request_uri;
ssl_certificate /etc/letsencrypt/live/fabnum-blog.peccini.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/fabnum-blog.peccini.fr/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
# Redirect all HTTP HTTPS (both www and non-www)
server {
listen 80;
server_name fabnum-blog.peccini.fr www.fabnum-blog.peccini.fr;
return 301 https://fabnum-blog.peccini.fr$request_uri;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,163 +0,0 @@
+++
date = '2025-06-24T11:48:33+02:00'
draft = false
title = 'Quels sont les indices pour évaluer les vulnérabilités ?'
summary = "Les vulnérabilités sont nombreuses et variées et peuvent influencer profondément la chaîne de fabrication du numérique. Il est donc important de pouvoir identifier les indices qui permettront d'évaluer les impacts. Cet article en présente six, dont quatre sont déployés dans l'application FabNum et deux autres en cours de réflexion pour intégration."
tags = ["concentration","concurrence","susbstitution","stabilité"]
categories = ["articles","indices"]
+++
## Introduction
La chaîne de fabrication du numérique, qui va de l'extraction des minerais jusquà lassemblage des produits finis, a été confrontée à de nombreux aléas ces dix dernières années. Ces perturbations ont eu des impacts variés, tant sur la disponibilité des composants que sur les délais de production. Voici une synthèse des principaux aléas rencontrés :
1. Catastrophes naturelles
Inondations et ouragans : Par exemple, des inondations majeures ont repris dans des régions minières ou industrielles (comme en 2019 en Indonésie, lors de tempêtes ou inondations), entraînant la fermeture temporaire ou la destruction dusines, notamment celles de la fabrication de composants électroniques.
Séismes : Certains séismes ont endommagé des sites clés de production ou de traitement de minerais.
2. Conflits et instabilités géopolitiques
Conflits économiques : La guerre commerciale entre les États-Unis et la Chine a accru les tensions sur lapprovisionnement de certains matériaux rares et composants.
Sanctions et embargos : Par exemple, les tensions avec la Corée du Nord ou lIran ont limité laccès à certains composants ou matériaux stratégiques.
Conflits régionaux : La guerre en Ukraine a également perturbé le marché des minerais bruts et des composants électroniques en Europe.
3. Concurrence et mondialisation
Tensions sur la chaîne dapprovisionnement : La forte concurrence entre acteurs a accentué la recherche de fournisseurs alternatifs, souvent inégalement développés, ce qui a contribué à des pénuries ou à des délais rallongés.
Dépendance à certains pays : Une concentration géographique de la production, notamment en Asie, a rendu la chaîne vulnérable face aux perturbations locales.
4. Crises sociales et industrielles
Mouvements sociaux : Grèves, protestations ou revendications (par exemple, en Chine ou en Europe) ont parfois interrompu la production ou retardé les livraisons.
Fermeture dusines : Certaines usines ont été fermées pour des raisons économiques ou environnementales, comme la fermeture de sites miniers ou dusines de fabrication en Europe ou aux États-Unis, confrontés à des coûts élevés ou à des réglementations strictes.
5. Pandémie de COVID-19
La pandémie a été un facteur majeur, entraînant des confinements, des restrictions de déplacement, et des pénuries de main-dœuvre, provoquant des retards importants dans lensemble de la chaîne mondiale.
6. Problèmes logistiques et transports
La congestion des ports, la pénurie de conteneurs et laugmentation des coûts de transport maritime ou aérien ont également perturbé la livraison des composants et matériaux.
Ces aléas combinés ou successifs ont amplifié la vulnérabilité de la chaîne dapprovisionnement du numérique, rendant la gestion des risques cruciale pour lindustrie.
Mais jusqu'à quel point ces aléas impactent la chaîne ?
Une rupture d'approvisionnement d'un minerai depuis un pays faiblement producteur n'a pas le même impact que si le pays est un producteur important. Une rupture d'approvisionnement d'un minerai faiblement susbstituable n'a pas le même impact si le minerai est facilement remplaçable.
## Les indices utilisés
Un conflit social ou une inondation arrête la mine de Spruce Pine en Caroline du Nord ont exactement le même impact sur la chaîne de fabrication : 80% du quartz ultra-pur pour la fabrication des creusets nécessaires aux wafers (tranche de silicium sur laquelle seront gravés les semi-conducteurs) provient de cette mine. L'impact est déterminé, non par la cause, mais par la concentration géographiqque ou industrielle.
On le voit donc, il faut déterminer les raisons qui crée la fragilité de la chaîne de fabrication du numérique. Quatre ont été identifiées et déployées dans l'application FabNum.
### L'indice de Herfindahl-Hirschmann (IHH)
Pour trouver une explication complète, on peut se référer à [Qu'est-ce que l'indice Herfindahl-Hirschman ? Index Herfindahl-Hirschman en bref](https://fourweekmba.com/fr/index-herfindahl-hirschman/)
Dans le cadre de FabNum, il est utilisé à la fois pour la partie industrielle (celle que les économistes surveillent) et pour la partie géographique ; il se décline sur toutes les opérations et aussi sur les réserves de minerais. Il est calculé sur une base 100, avec des seuils bas à 15 et haut à 25 ; la variation n'a pas été intégrée à ce stade car l'application n'est pas encore dans une vision temporelle versionnée.
Plus la concentration d'une opération est élevée et donc l'IHH au-dessus de 25 et s'approchant de 100 et plus un impact sur cette opération touchant un producteur principal sera important ; en supposant qu'une opération d'extraction soit réalisée dans trois pays à hauteur de 50%, 30%, 20% ; en cas de vulnérabilité sur le pays produisant 50%, il est quasiment impossible que les deux autres acteurs compensent le manque. La chaîne de fabrication va donc se réduire et la vulnérabilité se propager jusqu'en bout de chaîne, surtout si le minerai ne peut pas se substituer (voir ICS plus loin).
Ainsi, dans le cadre d'une gestion des risques, l'IHH nous donne le niveau d'impact de la perturbation.
La probabilité de survenance se gère avec l'indice suivant.
### L'indice de stabilité géopolitique (ISG)
Il existe déjà des indices pour évaluer la stabilité des pays selon certaines conditions. Comme on l'a décrit précédemment, plusieurs facteurs peuvent influer : géopolitique, climat, social.
L'ISG est donc un indice composite sur la base des trois indices reconnus suivants :
* WGI (World Bank, “Political Stability & Absence of Violence”),
* FSI (Fragile States Index) et
* ND-GAIN (Climat & capacité dadaptation)
Ils ont chacun été normalisés pour avoir une valeur entre 0 et 1 (peut-être faudrait-il ramener entre 0 et 100) ; plus un pays est stable, plus sa « note » est faible.
Afin de tenir compte de l'importance de chacun des indices par rapport à sa capacité de « nuisance », les pondérations mises en place sont les suivantes :
* WGI -> 50%
* FSI -> 30%
* ND-GAIN -> 20%
Les seuils positionnés pour cet indice composite sont 40 pour le seuil bas et 70 pour le seuil haut.
### Combinaison IHH / ISG
L'utilisation combinée des deux indices permet de positionner des opérations sur une matrice des risques 3 x 3, délimitée par les seuils.
Par exemple, si on considère la chaîne critique allant du dysprosium au smartphone, on obtient le schéma suivant (partie gauche) :
![Figure 1. Plan d'action - vue d'ensemble des criticités](/posts/images/indices/Vue_d_ensemble_des_criticites.webp)
Toutes les opérations sont au-dessus du seuil pour l'IHH, avec notamment l'extraction qui induit le reste de la chaîne (au bémol près des stocks dont on a aucune connaissance eu égard à leur caractère stratégique).
### L'indice de criticité de substituabilité (ICS)
Cet indice composite lui aussi est basé sur trois paramètres et s'adresse uniquement aux minerais dans la capacité de les substituer ou pas dans la fabrication des composants :
* la faisabilité technique qui s'évalue aussi bien par rapport aux solutions existantes que celles qui font l'objet de recherche
* le délai d'implantation d'une solution soit existante, soit issue de la recherche
* le coût économique de la substitution aussi bien pour les produits finaux que pour les chaînes de fabrication qu'il faudrait adapter
La pondération choisie est de 40% sur la faisabilité technique et 30% pour le délai et le coût.
Les seuils sont bas et haut sont respectivement 0,3 et 0,6. L'évaluation des trois axes se fait selon le tableau suivant :
| Score | Faisabilité technique (40 %) | Délai d'implémentation (30 %) | Impact économique (30 %) |
| :-- | :-- | :-- | :-- |
| 1.0 | Aucun substitut connu | Impossible à court/moyen terme (>10 ans) | Coût prohibitif (>5x) |
| 0.7 | Substituts théoriques en recherche fondamentale | Long terme (5-10 ans) | Augmentation significative des coûts (2-5x) |
| 0.5 | Substituts en développement (TRL 4-6) | Moyen terme (2-5 ans) | Augmentation modérée des coûts (1.5-2x) |
| 0.2 | Substituts disponibles mais sous-optimaux | Court terme (6-24 mois) | Légère augmentation des coûts (<1.5x) |
| 0.0 | Substituts équivalents disponibles | Immédiat (<6 mois) | Coût équivalent ou inférieur |
Comme l'IHH, l'ICS est un indice donnant le niveau d'impact en cas de risque avéré.
La probabilité se calcule avec l'indice suivant.
### L'indice de vulnérabilité de concurrence (IVC)
Le numérique n'est pas le seul consommateur de minerais. Il est donc important de pouvoir le positionner par rapport aux autre secteurs afin d'évaluer la probabilité du risque d'approvisionnement en cas de tension.
Avec la vision de cette concurrence, on peut alors mieux estimer la probabilité d'impacter la chaîne de fabrication du numérique en cas de perturbation. Plus le marché est tendu, plus la concurrence est forte (faible pourcentage en part de marché pour le numérique par exemple) et plus un aléa impactera fortement le numérique.
Cet indice se base sur quatre axes qui sont mulitpliés les uns avec les autres :
* la croissance relative des secteurs (autres secteurs par rapport au numérique)
* leur part de marché relative : ratio entre les deux valeurs (si le numérique est à 10% de part de marché dans la consommation d'un minerai, le facteur résultant est de 9)
* la tension du marché entre la demande et la capacité de production ; 0 si la demande est inférieure à l'offre, sinon différence entre les deux pourcentages multiplié par 100
* le niveau des réserves (poids 1 si abondantes et 1,8 si elles sont très limitées)
Les seuils bas et haut sont respectivement de 15 et 60.
### Combinaison entre ICS et IVC
L'utilisation combinée des deux indices permet de positionner un minerai dans une matrice 3 x 3, délimitée par les seuils.
En reprenant la figure précédente sur la partie droite, on que le dysprosium est un minerai faiblement substituable (il s'agit ici de la fabrication de l'audio) avec une concurrence modérée.
### Indices à venir
Le numérique est un consommateur important d'eau, que ce soit dans la phase d'extraction ou de traitement des minerais et rentre donc en concurrence avec des usages domestiques ou d'autres usages professionnels (agriculture par exemple).
Il est donc important de positionner un indice de pression hydrique des opérations qu'il faudra rapprocher d'un indice de pression hydrique des pays pour identifer la concurrence qui pourra exacerber des pressions sociales ou industrielles.
De même, le numérique est un important consommateur d'énergie fossile en phase amont et d'électricité en fabrication. Un indice pression énergétique doit être positionné sur les opérations le nécessitant avec un indice de pression énergétique par pays.
## Conclusion
L'ensemble de ces indices se positionnent ainsi :
![Figure 1. Impacts et rétroactions sur la chaîne de fabrication](/posts/images/indices/Impacts_et_retroactions.webp)
Forte des quatre indices, la réprésentation de la chaîne de fabrication peut ainsi s'accompagner d'une identification et évaluation des risques, afin de mieux la comprendre et identifier les points de faiblesse de sa propre organisation en fonction de scénarios à écrire.
> ***
> **Licence**
>
> Ce document est mis à disposition selon les termes de la licence Creative Commons [Attribution Pas dUtilisation Commerciale Pas de Modification 4.0 International (CC BY-NC-ND 4.0)](https://creativecommons.org/licenses/by-nc-nd/4.0/).
> © Stéphan Peccini, 2025
> ***

View File

@ -5,7 +5,7 @@ title = 'Lancement du blog, FabNum'
summary = "FabNum est une application que j'ai conçue pour identifier et analyser les vulnérabilités de la chaîne de fabrication du numérique. Vous êtes sur le blog qui présentera l'application et les vulnérabilités."
description = "FabNum est une application que j'ai conçue pour identifier et analyser les vulnérabilités de la chaîne de fabrication du numérique. Vous êtes sur le blog qui présentera l'application et les vulnérabilités."
tags = ["fabnum","risques"]
categories = ["articles"]
categories = ["posts"]
+++
## Pourquoi ce site ?
@ -29,10 +29,3 @@ L'application [Fabnum](https://fabnum.peccini.fr) et ce blog apportent des répo
## Que va-t-on y trouver ?
Des nouvelles sur l'application FabNum en plein développement et des informations sur les signaux qui pourraient déclencher des risques.
> ***
> **Licence**
>
> Ce document est mis à disposition selon les termes de la licence Creative Commons [Attribution Pas dUtilisation Commerciale Pas de Modification 4.0 International (CC BY-NC-ND 4.0)](https://creativecommons.org/licenses/by-nc-nd/4.0/).
> © Stéphan Peccini, 2025
> ***

View File

@ -108,11 +108,3 @@ La conclusion est la même que précédemment, mais avec des actions à mettre e
## Point d'attention
FabNum est encore en cours de développement. N'hésitez pas à me remonter vos commentaires (dans la zone correspondante en bas d'article), suggestions, bugs ; cela permettra de rendre FabNum encore plus pertinente.
> ***
> **Licence**
>
> Ce document est mis à disposition selon les termes de la licence Creative Commons [Attribution Pas dUtilisation Commerciale Pas de Modification 4.0 International (CC BY-NC-ND 4.0)](https://creativecommons.org/licenses/by-nc-nd/4.0/).
> © Stéphan Peccini, 2025
> ***

View File

@ -14,6 +14,8 @@
</footer>
{{ end }}
</article>
<hr />
{{ partial "comments.html" . }}
</div>
</main>
{{ partial "authorbox.html" . }} {{ partial "related.html" . }} {{ end }}