Auteur Sujet: VPN - PQ strongSwan - Modern Security network  (Lu 2591 fois)

0 Membres et 1 Invité sur ce sujet

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« le: 22 février 2024 à 13:15:44 »
Bonjour,

j’ai installé strongSwan 6.0beta Vici Post-Quantum IKEv2 Daemon - Bien sûr vous pouvez utiliser la version officielle d’aujourd’hui, la version 5.9 sans compiler, mais vous ne pourrez pas chiffrer avec les algorithmes OQS.

Je ne connais pas « stroongSwan VICI » c’est à dire une configuration IPSec sans le fichier « ipsec.conf » (j’ai du retard sûrement) :

Avec ces fichiers donc :

/etc/strongswan.conf
/etc/swanctl/swanctl.conf

Pour commencer, j'ai écris un « mémo d'introduction à strongSwan » sur Debian-FR.org

Je viens de réussir à connecter 3 ordinateurs ensemble et à arriver à attraper des sous-réseaux IPv6, je souhaitais vous le dire et vous le transmettre.

Donc, j'ai stocké « mes fichiers et les commandes » dans un de mes répertoire "public", avant de faire un tuto sur mon site web.

Citer
My files test and commands #strongSwan v6.0.beta -> https://www.zw3b.fr/pub/vpn/strongSwan-v6.0

Pour le moment je n'ai rien de mieux.

1. La config « 1 » est un exemple des fichiers « /etc/strongSwan.conf » (Serveur / Client)
2. La config « 2 » est OK sans sous-réseaux (IPv4 publique to IPv4 publique - le traceroute ne fait pas de saut entre les 2 machines connectées).
3. La config « 3 » est OK de « site » à « site » (ping & services) avec sous réseaux IPv6.
4. La config « 4 » est OK de « site » à « serveur » à « site » : (ping et services) avec sous-réseaux, j’en suis là au 20240313.

Il faudrait essayer d’autres méthodes d’autentification -- EAP (Extensible Authentication Protocol) :)

20240313 : Je vous ajoute mon script « firewall-icmpv6 » où j’ai ajouté la fonction « ipv6_strongswan() » qui permet de laisser passer les requêtes UDP/TCP sur le prefix d’adresses « IPv6 SWAN Site-Local scoped » en plus de l’ICMPv6 (du ping)  :)

Un bout du firewall-ipv6 - checker le network range fe80::/10 et fec0::/10 et le multicast ff00::/8 et en plus les ULA fc00::/7 (pour que tous le réseaux SLAN puissent communiquer) ;)

#####
# on fixe les regles des adresses IPv6 locales
#####

function ipv6_ula()
{
        echo "   |";
        echo "   + IPv6 - Addrs Unique Locale Area -----------------------";

        # Allow Link-Local addresses
        # network range : fc00:0000:0000:0000:0000:0000:0000:0000-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\";
        $IP6TABLE -A INPUT -s fc00::/7 -j ACCEPT
        $IP6TABLE -A FORWARD -s fc00::/7 -d fc00::/7 -j ACCEPT
        $IP6TABLE -A OUTPUT -d fc00::/7 -j ACCEPT
        echo "   | +--> "fc00::/7 : ACCEPT;
        echo "   | |";
        echo "   |" + IPv6 - Addrs Unique Locale Area : [OK]

}

function ipv6_multicast()
{
        echo "   |";
        echo "   + IPv6 - Addrs Multicast -----------------------";

        # Allow multicast
        # network range : ff00:0000:0000:0000:0000:0000:0000:0000-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\";
        $IP6TABLE -A INPUT -d ff00::/8 -j ACCEPT
        $IP6TABLE -A FORWARD -s ff00::/8 -d ff00::/8 -j ACCEPT
        $IP6TABLE -A OUTPUT -d ff00::/8 -j ACCEPT
        echo "   | +--> "ff00::/8 : ACCEPT;
        echo "   | |";
        echo "   |" + IPv6 - Addrs Multicast : [OK]
}

function ipv6_link_local()
{
        echo "   |";
        echo "   + IPv6 - Addrs Link-Local Unicast -----------------------";

        # Allow Link-Local addresses
        # network range : fe80:0000:0000:0000:0000:0000:0000:0000-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\";
        $IP6TABLE -A INPUT -s fe80::/10 -j ACCEPT
        $IP6TABLE -A FORWARD -s fe80::/10 -d fe80::/10 -j ACCEPT
        $IP6TABLE -A OUTPUT -d fe80::/10 -j ACCEPT
        echo "   | +--> "fe80::/10 : ACCEPT;
        echo "   | |";
        echo "   | "+ IPv6 - Addrs Link-Local : [OK]

}

#####
# on fixe les regles des adresses IPv6 locales secure (VPN/strongSwan)
#####

function ipv6_strongswan()
{
        # Default ------------------
        echo "   |";
        echo "   + IPv6 - Addrs Site-Local Secure Area Network -------------------------";

        # Allow  Secure Area Network addresses
        # network range : fec0:0000:0000:0000:0000:0000:0000:0000-feff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   |\\";
        $IP6TABLE -A INPUT -s fec0::/10 -j ACCEPT
        $IP6TABLE -A FORWARD -s fec0::/10 -d fec0::/10 -j ACCEPT
        $IP6TABLE -A OUTPUT -d fec0::/10 -j ACCEPT
        echo "   | +--> "fec0::/10 : ACCEPT;
        echo "   | |";
        echo "   | "+ IPv6 - Addrs Secure Area Network : [OK]

        # Add ------------------

        echo "   |";
        # Allow  Forwarding SLAN (fec0::/10) <> ULA (fc00::/7)
        # network range : fc00:0000:0000:0000:0000:0000:0000:0000-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

        echo "   + IPv6 - Forwarding Addrs SWAN 2 ULA Networks -------------------------";
        echo "   |\\";
        $IP6TABLE -A FORWARD -s fec0::/10 -d fc00::/7 -j ACCEPT
        $IP6TABLE -A FORWARD -d fec0::/10 -s fc00::/7 -j ACCEPT
        echo "   | +--> fec0::/10 <?> fc00::/7 : ACCEPT";
        echo "   | |";
        echo "   | "+ IPv6 - Forwarding Addrs SWAN 2 ULA Networks : [OK]
        echo "   |";

}

GestióIP : IPv6 subnet calculator

Note le 2024/10/02 :

Je vous ajoute la function "nat_v6()" qui me permet de protéger mes machines avec des adresses ULA (et non pas GUA temporaire) et de pouvoir naviguer en IPv6.

function nat_v6()
{
        # NET FOR LXC EXCEPT TO THE ULA NETWORK# NET FOR LXC EXCEPT TO THE ULA NETWORK
        $IP6TABLE -t nat -A POSTROUTING -o $WAN_IF -s $CT_WEB ! -d fc00::/7 -j MASQUERADE

        echo "   "+ NAT : [OK]
}

J'ai ouvert ce sujet sur LaFibre.info : Fibre - IP❤6 - Routers - Configuration Networks - Test Iperf.

Si çà peut vous intéresser.

Bonne journée.

Romain.
« Modifié: 02 octobre 2024 à 05:03:18 par LAB3W.ORJ »

jeannot

  • Abonné Orange Fibre
  • *
  • Messages: 193
  • 64 🏔
VPN - PQ strongSwan - Modern Security network
« Réponse #1 le: 18 mars 2024 à 08:39:46 »
intéressant, merci :)
question rapide : il y a un impact sur les suites de chiffrement post quantum comparé à de l'AES classique (forcément vu que c'est prix en charge en hw par le cpu), mais c'est pour avoir une idée.

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #2 le: 22 mars 2024 à 17:05:42 »
Bonjour, je ne pas vous dire côté hardware, cpu, mémoire.

Par contre, côté Bits transfert réseau c'est bien mieux.

L'algorithme est plus petit, c'est moins lourd.

Au lien d'encoder en 8192 bits chaque paquet, c'est encodé en 1024 pour le falcon.

J'ai fais des test "iperf" ça transfert au maximun des bande passante disponible.

J'ajoute un truc important, c'est que les algos PostQuantique ne sont pas encore accepter sur les OS. Dans win11 le max c'est ecdsa. Il faut donc que l'AC (Authorité) soit en un algo accepté par les OS. Et suivant les clients on s'adapte au meilleur algo reconnu.

Entre Linux, compilé avec les algos OQS (open quantum safe) pas de problem. Il faudrait faire des tiers AC sur les routeurs outdoor (ce qui ne sont pas en datacenter) pour gérer çà - Et les postes wifi de chaque "sites", en choisissant la meilleur connexion eap (par exemple eap-ttls) selon les bornes d'accès.

Romain

jeannot

  • Abonné Orange Fibre
  • *
  • Messages: 193
  • 64 🏔
VPN - PQ strongSwan - Modern Security network
« Réponse #3 le: 25 mars 2024 à 08:45:47 »
merci pour les précisions!

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #4 le: 09 avril 2024 à 15:50:25 »
Bonjour, sans parler d'algorithme pour la cryptographie quantique, la technologie serait un clef stockée dans un photon..

Des informations ci-dessous ;)

La cryptographie quantique avance grâce au record de chercheurs danois

Je pense qu'ils utilisent le protocole BB84 pour la techno de transmission.

Et sûrement en utilisant ce type de matériels pour la distribution de clés quantique (QKD) - compteur de photons SPD_A d'AUREA Technology.

Bonne journée à vous.

Romain

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #5 le: 30 août 2024 à 14:20:24 »
Bonjour
----

ANSSI : Sélection par le NIST de futurs standards en cryptographie post-quantique.

https://cyber.gouv.fr/actualites/selection-par-le-nist-de-futurs-standards-en-cryptographie-post-quantique

Ces futurs standards devraient devenir des options par défaut préconisées par l’ANSSI pour la sélection d’algorithmes post-quantiques dans la majorité des produits de sécurité - sous réserve que ces algorithmes post-quantiques soient combinés avec des algorithmes classiques éprouvés à travers des mécanismes hybrides.

OVHcloud inaugure son ordinateur quantique MosaiQ et annonce un nouveau programme éducatif pour soutenir l’écosystème européen de l’informatique quantique.

https://corporate.ovhcloud.com/fr/newsroom/news/inauguration-quantum-computer/

Découvrir les notebooks quantiques OVHcloud :

Essai gratuit : Créez votre premier projet Public Cloud et profitez de 200 € de crédit offert.

Le futur du quantique à portée de main.

Vous voulez tester vos algorithmes ou développer sur différents types de qubits ?
- Note de Moi-même : Comment dire à la machine quantique MosaiQ d'OVH de trouer ma connexion VPN sécurisé avec Kyber ? Serais-ce écrit dans le notebook ?

https://www.ovhcloud.com/fr/public-cloud/ai-notebooks/

----

Je voulais vous poser une question :

Imaginons que je souhaite créer une PKI (Public Key Infrastructure), ou AC (Authority de Certification), il faut quelle soit accepter dans Windows - disons - MS Windows 10 et 11.

Mes exemples de commandes "pki --type x509" et "openssl x509" - création de certificats

Citer
Note de Moi-même 20240128 : Mes certificats Krystals PQ Dilitium, Falcon ne sont toujours pas valable dans Windows 11 - La signature numérique de ce certificat n’est pas valide.

Algoritme de Signature : 1.3.9999.3.4 et 1.3.101.112

Alors quelle serait la solution (la plus judicieuse) que vous me conseillerez ?

En quel algorithme cryptographique minimum (et fiable) créer ce certificat pour cette AC et/ou cette Autorité Tierce ?

Je pensais créer pour chaque "appareil" une clef (différente) la plus robuste possible - un peu chiant. Surtout, si c'est un certificat par personne, pour une personne.

Parce qu'ici je parle de VPN (transaction sécurisé à travers l'Internet public), mais, il n'y a pas que ces protocoles, il y a par exemple, le web (PQ HTTPs), les mails (SMTPs/POPs/IMAPs), les messages GPG (GNU Privacy Guard), le FTPs, la Voix sur IPs et pleins d'autres comme les blockchains.

https://openquantumsafe.org/applications/

---

Il faudrait répondre à ces questions :
  • L'algo de l'AC serait ?
  • L'algo de la tierce AC serait - Si on a une tierce, l'OS vérifie celle-ci ou non ? Est-ce que je peut avoir l'AC super robuste et la tierce (seulement) valide pour l'OS de l'utilisateur.
  • L'algo d'une machine (facile, on s'adapte).
  • L'algo d'une personne (on s'adapte à sa demande, son appareil, super contraignant, non..) ?

Qui peut me dire comment il réfléchirait, où comment il faut faire de façon sûr ;)

Merci.

Romain.

----

Citer
Déjà, sur la page https://test.openquantumsafe.org il nous explique que l'autorité est en RSA puis les certificats sont en algorithme OQS (c'est une piste à suivre) :

Certificats
Chaque port de test fournit une authentification du serveur TLS à l'aide d'un certificat de serveur généré à l'aide de l'algorithme de signature QSC répertorié. Tous les certificats de serveur sont signés par un certificat CA commun utilisant la cryptographie conventionnelle (RSA).

----

Pour re-mettre un petite couche ; parce que, tout çà, çà ne va pas :

Tester la sécurité de vos utilisateurs mails après avoir -- Sécurité à installer sur nos serveurs de mails comme (SpamAssassin, Rspamd, Amavis pour assurer une protection contre le spam, les virus et autres logiciels malveillants et de n'accepter que les mails conforment DMARC (Domain-based Message Authentication, Reporting, and Conformance) qui utilise un premier contrôle des SPF (Sender Policy Framework), les IP autorisés à envoyer des mails et un deuxième contrôle en signant/vérifiant les mails avec DKIM (DomainKeys Identified Mail).

Un nouveau protocole MAIL - JMAP (JSON Meta Application Protocol)
- Le protocole de méta-application JSON est un ensemble de protocoles standard Internet ouverts associés pour la gestion du courrier électronique.

On peut aussi, ajouter une couche DNSSEC sur le nom de domaine et confirmer l'entité SMTP avec DANE (DNS-based Authentification of Named Entities).

PS : Vous pouvez tester la sécurité des serveurs de mails ; de vos adresses mails que vous utiliser tous les jours -- sur ce site web ; https://internet.nl - exemple test mail serveur du domaine "@lab3w.fr" : https://internet.nl/mail/lab3w.fr/1316756/ result 100% (2024-08-23 09:23 UTC). Mi "kontrolis" ĉi tiujn poŝtservilojn  ;D Espéranto !

Encore mieux : Tester vos adresses mails ; s'ils arrivent à casser la sécurité : https://haveibeenpwned.com/ -- vous deviez avoir ce résultat :
Citer
Good news — no pwnage found!
No breached accounts and no pastes (subscribe to search sensitive breaches)


;)

Ils ne sont ni "ordinateur quantique", ni "Intelligence Artificielle", ni "ordinateur neuronal", ceux-là.

Et votre Vie privée et professionnelle, vous ne vous sentez-vous pas trop espionné ?
« Modifié: 31 août 2024 à 17:05:13 par LAB3W.ORJ »

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #6 le: 31 août 2024 à 15:18:21 »
Salut,

Après avoir préparé avec/devant vous, mon réseau IPv6 (privé/public) de chez moi. J'ai ajouté les 2 réseaux IPv6 sur mon VPN (professionnel) pour vérifier que tout fonctionne comme je le souhaite.

Et bien, StrongSwan version 6.0.0 beta5 fonctionne parfaitement. Y'a la beta6, en passant.

----

Depuis mon ordinateur portable "nomade" vers un LinuX Container ci-dessous un traceroute6 "mtr" :

root@nomade:~ $ mtr -6 --report fc00:41d0:801:2000::1
Start: Sat Aug 31 15:04:01 2024
HOST: nomade                        Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- fc01::10:6:42:254          0.0%    10    0.7   1.4   0.7   2.6   0.0 # my routeur
  2.|-- fc01::172:16:0:1           0.0%    10    2.9   1.8   0.9   3.0   0.3 # my strongwan v6
  3.|-- fec0::1                    0.0%    10   24.3  24.7  23.9  26.5   0.5 # my vps allemangne
  4.|-- fec1::1                    0.0%    10   38.2  38.3  37.1  41.6   1.2 # my vps angleterre
  5.|-- fc00:41d0:801:2000::1      0.0%    10   37.1  38.4  37.1  40.0   0.7 # my container

Cà commence à faire une belle "zone étendue sécurisée et solide" (Strong Secure Wide Area)  :)

Un ping :

root@nomade:~ $ ping6 fc00:41d0:801:2000::1 -c10
PING fc00:41d0:801:2000::1(fc00:41d0:801:2000::1) 56 data bytes
64 bytes from fc00:41d0:801:2000::1: icmp_seq=1 ttl=60 time=38.4 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=2 ttl=60 time=38.7 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=3 ttl=60 time=38.6 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=4 ttl=60 time=39.0 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=5 ttl=60 time=57.3 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=6 ttl=60 time=39.4 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=7 ttl=60 time=38.7 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=8 ttl=60 time=38.7 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=9 ttl=60 time=38.5 ms
64 bytes from fc00:41d0:801:2000::1: icmp_seq=10 ttl=60 time=38.7 ms

--- fc00:41d0:801:2000::1 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9014ms
rtt min/avg/max/mdev = 38.474/40.653/57.368/5.581 ms

Cà claque  :D

----

UK.LAB3W.VPS (Ambassade du LAB3W en Angleterre) :

root@vps-uk:~ # host vps.uk.ipv10.net
vps.uk.ipv10.net has address 57.128.171.43
vps.uk.ipv10.net has IPv6 address 2001:41d0:801:2000::44f9

root@vps-uk:~ # swanctl --list-sas
uk-de: #1, ESTABLISHED, IKEv2, 316181871019cf75_i* 24922dd3e247c74c_r
  local  'vps.uk.ipv10.net' @ 57.128.171.43[4500] [fec1::1]
  remote 'vps.de.ipv10.net' @ 135.125.133.51[4500]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 2117s ago, rekeying in 10979s
  uk-de: #14, reqid 1, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 140s ago, rekeying in 39s, expires in 58s
    in  cc739905,      0 bytes,     0 packets
    out cb9e1172,      0 bytes,     0 packets
    local  fc00:41d0:801:2000::/64 fec1::/16
    remote fc00:41d0:701:1100::/64 fc01::10:6:0:0/104 fc01::172:16:0:0/104 fc10:11:6:42:1::/96 fec0::/16 fec2::/16

Les routes de la table "spéciale" StrongSWAN :

root@vps-uk:~ # ip -6 route show table 220
fc00:41d0:701:1100::/64 dev vmbr0 proto static src fec1::1 metric 1024 pref medium
fc01::10:6:0:0/104 dev vmbr0 proto static src fec1::1 metric 1024 pref medium
fc01::172:16:0:0/104 dev vmbr0 proto static src fec1::1 metric 1024 pref medium
fc10:11:6:42:1::/96 dev vmbr0 proto static src fec1::1 metric 1024 pref medium
fec0::/16 dev vmbr0 proto static src fec1::1 metric 1024 pref medium
fec2::/16 dev vmbr0 proto static src fec1::1 metric 1024 pref medium

DE.LAB3W.VPS (Ambassade du LAB3W en Allemagne) :

root@vps-de:~ # host vps.de.ipv10.net
vps.de.ipv10.net has address 135.125.133.51
vps.de.ipv10.net has IPv6 address 2001:41d0:701:1100::6530

root@vps-de:~ # swanctl --list-sas
vps_de-vps_uk: #2, ESTABLISHED, IKEv2, 316181871019cf75_i 24922dd3e247c74c_r*
  local  'vps.de.ipv10.net' @ 135.125.133.51[4500]
  remote 'vps.uk.ipv10.net' @ 57.128.171.43[4500] [fec1::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 2258s ago, rekeying in 12068s
  vps_de-vps_uk: #30, reqid 1, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 113s ago, rekeying in 56s, expires in 85s
    in  c4b24a4c,      0 bytes,     0 packets
    out cf5b0d3d,      0 bytes,     0 packets
    local  fc00:41d0:701:1100::/64 fc01::10:6:0:0/104 fc01::172:16:0:0/104 fc10:11:6:42:1::/96 fec0::/16 fec2::/16
    remote fc00:41d0:801:2000::/64 fec1::/16
vps_de-home_orange: #1, ESTABLISHED, IKEv2, d3c376a164d5d641_i cdf8bc9df695e9e3_r*
  local  'vps.de.ipv10.net' @ 135.125.133.51[4500]
  remote 'bw.lab3w.fr' @ 109.210.56.240[4500]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 2305s ago, rekeying in 11195s
  vps_de-home_orange: #29, reqid 2, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
    installed 118s ago, rekeying in 49s, expires in 80s
    in  cd71b20f,    108 bytes,     1 packets,    84s ago
    out c5c8db84,    204 bytes,     2 packets,    84s ago
    local  fc00:41d0:701:1100::/64 fc00:41d0:801:2000::/64 fec0::/16 fec1::/16
    remote fc01::10:6:0:0/104 fc01::172:16:0:0/104 fc10:11:6:42:1::/96 fec2::/16

Les routes de la table "spéciale" StrongSWAN :

root@vps-de:~ # ip -6 route show table 220
fc00:41d0:801:2000::/64 dev vmbr0 proto static src fec0::1 metric 1024 pref medium
fc01::10:6:0:0/104 dev vmbr0 proto static src fec0::1 metric 1024 pref medium
fc01::172:16:0:0/104 dev vmbr0 proto static src fec0::1 metric 1024 pref medium
fc01::/16 dev vmbr0 proto static src fec0::1 metric 1024 pref medium
fc10:11:6:42:1::/96 dev vmbr0 proto static src fec0::1 metric 1024 pref medium
fec1::/16 dev vmbr0 proto static src fec0::1 metric 1024 pref medium
fec2::/16 dev vmbr0 proto static src fec0::1 metric 1024 pref medium

FR.LAB3W.HOME (Chalet LAB3W) :

root@bw:~ # host home.lab3w.fr
home.lab3w.fr has address 109.210.56.240
home.lab3w.fr has IPv6 address 2a01:cb1d:12:1c00::1

root@bw:~ # swanctl --list-sas
home_orange-vps_de: #1, ESTABLISHED, IKEv2, d3c376a164d5d641_i* cdf8bc9df695e9e3_r
  local  'bw.lab3w.fr' @ 172.16.0.1[4500]
  remote 'vps.de.ipv10.net' @ 135.125.133.51[4500]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 2399s ago, rekeying in 11493s
  home_orange-vps_de: #17, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
    installed 45s ago, rekeying in 3253s, expires in 3915s
    in  c6b91c3e,      0 bytes,     0 packets
    out c37bf0f3,      0 bytes,     0 packets
    local  fc01::10:6:0:0/104 fc01::172:16:0:0/104 fc10:11:6:42:1::/96 fec2::/16
    remote fc00:41d0:701:1100::/64 fc00:41d0:801:2000::/64 fec0::/16 fec1::/16

Les routes de la table "spéciale" StrongSWAN :

root@bw:~ # ip -6 route show table 220
fc00:41d0:701:1100::/64 dev vmbr2 proto static src fec2::1 metric 1024 pref medium
fc00:41d0:801:2000::/64 dev vmbr2 proto static src fec2::1 metric 1024 pref medium
fec0::/16 dev vmbr2 proto static src fec2::1 metric 1024 pref medium
fec1::/16 dev vmbr2 proto static src fec2::1 metric 1024 pref medium

Il manque toute ma "prod" ; mon serveur au Canada avec plusieurs VMs et pleins de containers dedans, mais je ne vais pas vous la présenter ici. Ici ce sont des VPS de  "tests" à 5€/mois et le réseau de chez moi.

----

Les algorithmes (conventionnels et post-quantique) StrongSWAN version 6 - Open Quantum Safe :

Citer
root@bw:~ # swanctl --list-algs
encryption:
  AES_CBC[openssl]
  AES_CTR[openssl]
  AES_ECB[openssl]
  AES_CFB[openssl]
  CAMELLIA_CBC[openssl]
  CAMELLIA_CTR[openssl]
  CAST_CBC[openssl]
  BLOWFISH_CBC[openssl]
  3DES_CBC[openssl]
  DES_CBC[openssl]
  DES_ECB[openssl]
  NULL[openssl]
integrity:
  HMAC_MD5_96[openssl]
  HMAC_MD5_128[openssl]
  HMAC_SHA1_96[openssl]
  HMAC_SHA1_128[openssl]
  HMAC_SHA1_160[openssl]
  HMAC_SHA2_256_128[openssl]
  HMAC_SHA2_256_256[openssl]
  HMAC_SHA2_384_192[openssl]
  HMAC_SHA2_384_384[openssl]
  HMAC_SHA2_512_256[openssl]
  HMAC_SHA2_512_512[openssl]
  CAMELLIA_XCBC_96[xcbc]
  AES_XCBC_96[xcbc]
  AES_CMAC_96[cmac]
aead:
  AES_GCM_16[openssl]
  AES_GCM_12[openssl]
  AES_GCM_8[openssl]
  AES_CCM_16[openssl]
  AES_CCM_12[openssl]
  AES_CCM_8[openssl]
  CHACHA20_POLY1305[openssl]
hasher:
  HASH_SHA1[openssl]
  HASH_MD5[openssl]
  HASH_MD4[openssl]
  HASH_SHA2_224[openssl]
  HASH_SHA2_256[openssl]
  HASH_SHA2_384[openssl]
  HASH_SHA2_512[openssl]
  HASH_SHA3_224[openssl]
  HASH_SHA3_256[openssl]
  HASH_SHA3_384[openssl]
  HASH_SHA3_512[openssl]
  HASH_IDENTITY[openssl]
prf:
  PRF_KEYED_SHA1[openssl]
  PRF_HMAC_MD5[openssl]
  PRF_HMAC_SHA1[openssl]
  PRF_HMAC_SHA2_256[openssl]
  PRF_HMAC_SHA2_384[openssl]
  PRF_HMAC_SHA2_512[openssl]
  PRF_AES128_XCBC[xcbc]
  PRF_CAMELLIA128_XCBC[xcbc]
  PRF_AES128_CMAC[cmac]
xof:
  XOF_SHAKE128[openssl]
  XOF_SHAKE256[openssl]
kdf:
  KDF_PRF[openssl]
  KDF_PRF_PLUS[openssl]
drbg:
  DRBG_CTR_AES256[drbg]
  DRBG_CTR_AES128[drbg]
  DRBG_CTR_AES192[drbg]
  DRBG_HMAC_SHA1[drbg]
  DRBG_HMAC_SHA256[drbg]
  DRBG_HMAC_SHA384[drbg]
  DRBG_HMAC_SHA512[drbg]
ke:
  MODP_3072[openssl]
  MODP_4096[openssl]
  MODP_6144[openssl]
  MODP_8192[openssl]
  MODP_2048[openssl]
  MODP_2048_224[openssl]
  MODP_2048_256[openssl]
  MODP_1536[openssl]
  MODP_1024[openssl]
  MODP_1024_160[openssl]
  MODP_768[openssl]
  MODP_CUSTOM[openssl]
  ECP_256[openssl]
  ECP_384[openssl]
  ECP_521[openssl]
  ECP_224[openssl]
  ECP_192[openssl]
  ECP_256_BP[openssl]
  ECP_384_BP[openssl]
  ECP_512_BP[openssl]
  ECP_224_BP[openssl]
  CURVE_25519[openssl]
  CURVE_448[openssl]
  FRODO_SHAKE_L1[frodo]
  FRODO_SHAKE_L3[frodo]
  FRODO_SHAKE_L5[frodo]
  FRODO_AES_L1[frodo]
  FRODO_AES_L3[frodo]
  FRODO_AES_L5[frodo]
  KYBER_L1[oqs]
  KYBER_L3[oqs]
  KYBER_L5[oqs]
  BIKE_L1[oqs]
  BIKE_L3[oqs]
  BIKE_L5[oqs]
  HQC_L1[oqs]
  HQC_L3[oqs]
  HQC_L5[oqs]
rng:
  RNG_WEAK[openssl]
  RNG_STRONG[random]
  RNG_TRUE[random]
nonce-gen:
  NONCE_GEN[nonce]

----

Pour informations, j'ai ajouté mes 2 réseaux ULA à la configuration « 4 » dans le lien ci-dessous (écrit dans le sujet de ce fil de discussion) :

[...]
My files test and commands #strongSwan v6.0.beta -> https://www.zw3b.fr/pub/vpn/strongSwan-v6.0

Pour le moment je n'ai rien de mieux.

1. La config « 1 » est un exemple des fichiers « /etc/strongSwan.conf » (Serveur / Client)
2. La config « 2 » est OK sans sous-réseaux (IPv4 publique to IPv4 publique - le traceroute ne fait pas de saut entre les 2 machines connectées).
3. La config « 3 » est OK de « site » à « site » (ping & services) avec sous réseaux IPv6.
4. La config « 4 » est OK de « site » à « serveur » à « site » : (ping et services) avec sous-réseaux, j’en suis là au 20240313.

----

Une "cartographie" de mon SWAN : https://www.zw3b.fr/pub/vpn/strongSwan-v6.0/INFOS-post_quantum_crypto_safe_and_ipv6_vpn.txt

----

 :P
« Modifié: 31 août 2024 à 18:15:07 par LAB3W.ORJ »

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #7 le: 02 octobre 2024 à 05:11:21 »
J'ai ouvert le sujet "Problem route table 220 (strongswan) from a container" sur le forum de LinuX Containers (LXC) croyant que c'était de leur côté qu'un truc déconné -- mais c'était dans la configuration de mon firewal ICMPv6 / IPv6.

Bonne journée.

Romain.

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #8 le: 08 octobre 2024 à 00:55:45 »
Bonjour, sans parler d'algorithme pour la cryptographie quantique, la technologie serait un clef stockée dans un photon..

Des informations ci-dessous ;)

La cryptographie quantique avance grâce au record de chercheurs danois

Je pense qu'ils utilisent le protocole BB84 pour la techno de transmission.

Et sûrement en utilisant ce type de matériels pour la distribution de clés quantique (QKD) - compteur de photons SPD_A d'AUREA Technology.

Bonne journée à vous.

Romain

Je vous ajoute ca :

Sinon pour parler du présent futur : protocole BB84 quantum de bonnes communications et bien encrypté.

Application Scenarios for the Quantum Internet

RFC 9583 (June 2024)

https://www.rfc-editor.org/rfc/rfc9583.html

This scheme can be easily understood by both a technical and non-technical audience.

Note that we still do not have a quantum repeater for the continuous variable systems;

Pour info, je me fais lire à voix haute la RFC en français grâce à Google Assistant - Ok Google, lis moi la page 🤩 c'est un peu long.

# -----
Le protocole BB84 est aujourd'hui utilisé pour la plupart des implémentations de distribution quantique de clés. En 2007, le NIST annonçait une réalisation sur une fibre optique de 148,7 km. Le protocole BB84 est supporté sur plusieurs réseaux, notamment : DARPA QKD, SECOCQ QKD, Tokyo QKD.

https://fr.m.wikipedia.org/wiki/Protocole_BB84

#Zheng2019

Bonne soirée.

Romain.

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #9 le: 01 novembre 2024 à 06:18:50 »
La configuration réseau IPv6 ULA (Unique Local Address) de chez moi jusqu'aux serveurs ; en image :



Je "me" fais un récapitulatif l'installation Post-quantum strongSwan v6 (vérifier si liboqs 0.9.2 et strongswan-6.0.0beta6 n'ont pas évolués) :

# Installation
apt-get -y install iproute2 iputils-ping nano wget unzip bzip2 make gcc libssl-dev cmake ninja-build

mkdir /liboqs && \
  cd /liboqs && \
  wget https://github.com/open-quantum-safe/liboqs/archive/refs/tags/0.9.2.zip && \
  unzip 0.9.2.zip && \
  cd liboqs-0.9.2 && \
  mkdir build && cd build

cmake -GNinja -DOQS_USE_OPENSSL=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr \
                -DCMAKE_BUILD_TYPE=Release -DOQS_BUILD_ONLY_LIB=ON .. && ninja && ninja install

cd / && rm -R /liboqs

mkdir /strongswan-build && \
  cd /strongswan-build && \
  wget https://download.strongswan.org/strongswan-6.0.0beta6.tar.bz2 && \
  tar xfj strongswan-6.0.0beta6.tar.bz2 && \
  cd strongswan-6.0.0beta6

./configure --prefix=/usr --sysconfdir=/etc --with-systemdsystemunitdir=/lib/systemd/system --disable-ikev1 --disable-constraints --enable-openssl --enable-frodo --enable-oqs --enable-silent-rules --enable-eap-identity --enable-eap-md5 --enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap --enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap  --enable-dhcp --enable-addrblock --enable-unity --enable-certexpire --enable-radattr

make all && make install


----

Les connexions établies StrongSwan :

root@lab3w:/etc/swanctl # swanctl --list-sas
ca-fr: #8, ESTABLISHED, IKEv2, ad2daa13344fbeae_i 130c69bc0eb38f5b_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'srv.fr.lab3w.com' @ 109.210.56.240[4500] [fec1::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 1698s ago, rekeying in 12654s
  ca-fr: #58, reqid 1, INSTALLED, TUNNEL-in-UDP, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
    installed 24s ago, rekeying in 138s, expires in 174s
    in  ca06e0ea,      0 bytes,     0 packets
    out c363d438,      0 bytes,     0 packets
    local  fc00:41d0:701:1100::/64 fc00:41d0:801:2000::/64 fc00:5300:60:9389::/64 fec0::/16 fec2::1/128 fec3::1/128
    remote fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec1::/16

ca-uk: #12, ESTABLISHED, IKEv2, fbf8d917a028b5fa_i 27993e66b43d5756_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'vps.uk.ipv10.net' @ 57.128.171.43[4500] [fec2::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 1000s ago, rekeying in 12747s
  ca-uk: #59, reqid 4, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 3s ago, rekeying in 171s, expires in 195s
    in  c859d552,      0 bytes,     0 packets
    out cdfbc2ee,      0 bytes,     0 packets
    local  fc00:41d0:701:1100::/64 fc00:5300:60:9389::/64 fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec0::/16 fec1::/16
    remote fc00:41d0:801:2000::/64 fec2::1/128

ca-de: #2, ESTABLISHED, IKEv2, ddc7ac4975d4e081_i 97ce2741655d20ea_r*
  local  'srv.ca.lab3w.com' @ 158.69.126.137[4500]
  remote 'vps.de.ipv10.net' @ 135.125.133.51[4500] [fec3::1]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
  established 2715s ago, rekeying in 10567s
  ca-de: #57, reqid 3, INSTALLED, TUNNEL, ESP:AES_CBC-256/HMAC_SHA2_256_128/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3
    installed 69s ago, rekeying in 110s, expires in 129s
    in  c670c894,      0 bytes,     0 packets
    out c6945952,      0 bytes,     0 packets
    local  fc00:41d0:801:2000::/64 fc00:5300:60:9389::/64 fc01::10:106:0:0/104 fc01::10:126:42:0/112 fc01::172:16:0:0/104 fc01::192:168:0:0/104 fec0::/16 fec1::/16 fec2::1/128
    remote fc00:41d0:701:1100::/64 fec3::1/128

Les autorités :

root@lab3w:/etc/swanctl # swanctl --list-authorities
strongswan:
  cacert: C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072

Les certificats :

root@lab3w:/etc/swanctl # swanctl --list-certs

List of X.509 End Entity Certificates

  subject:  "C=FR, O=LAB3W, CN=srv.ca.lab3w.com"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Oct 30 07:24:39 2024, ok
             not after  Oct 30 07:24:39 2029, ok (expires in 1824 days)
  serial:    01
  altNames:  srv.ca.lab3w.com
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: 4e:f4:60:60:83:f5:53:a7:53:7d:4d:b8:9b:74:4b:d4:6c:35:d4:f6
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     28:78:34:78:37:e1:92:9f:91:e5:76:58:5f:e3:40:d8:23:03:aa:c9
  subjkey:   4e:f4:60:60:83:f5:53:a7:53:7d:4d:b8:9b:74:4b:d4:6c:35:d4:f6

  subject:  "C=FR, O=LAB3W, CN=srv.fr.lab3w.com"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Oct 30 06:48:28 2024, ok
             not after  Oct 30 06:48:28 2029, ok (expires in 1824 days)
  serial:    01
  altNames:  srv.fr.lab3w.com
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: 19:b5:62:8f:31:fc:27:a6:01:45:bc:d3:75:d4:be:07:7f:59:b8:aa
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     ce:3b:8e:ea:f0:bb:c9:2b:8b:18:7b:9c:f5:e9:24:6a:cf:fd:82:72
  subjkey:   19:b5:62:8f:31:fc:27:a6:01:45:bc:d3:75:d4:be:07:7f:59:b8:aa

  subject:  "C=FR, O=LAB3W, CN=vps.uk.ipv10.net"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Nov 01 02:51:21 2024, ok
             not after  Nov 01 02:51:21 2029, ok (expires in 1825 days)
  serial:    01
  altNames:  vps.uk.ipv10.net
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: 02:26:c7:d4:59:22:c5:51:64:6a:6e:95:6f:f0:ae:21:ea:8d:f9:1c
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     96:89:2f:cd:02:5c:80:1e:a6:dc:3e:42:f5:b0:76:15:62:30:c6:4a
  subjkey:   02:26:c7:d4:59:22:c5:51:64:6a:6e:95:6f:f0:ae:21:ea:8d:f9:1c

  subject:  "C=FR, O=LAB3W, CN=vps.de.ipv10.net"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Nov 01 03:29:17 2024, ok
             not after  Nov 01 03:29:17 2029, ok (expires in 1825 days)
  serial:    01
  altNames:  vps.de.ipv10.net
  flags:
  authkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  subjkeyId: f3:07:2f:87:81:67:7d:66:b2:e7:7a:00:3f:87:70:69:c7:63:28:28
  pubkey:    Falcon1024 14344 bits, has private key
  keyid:     08:34:b3:1c:ca:71:b2:a4:24:69:e7:86:1c:b9:14:b1:bd:9d:63:7d
  subjkey:   f3:07:2f:87:81:67:7d:66:b2:e7:7a:00:3f:87:70:69:c7:63:28:28

List of X.509 CA Certificates

  subject:  "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  issuer:   "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072"
  validity:  not before Oct 30 06:37:36 2024, ok
             not after  Oct 30 06:37:36 2034, ok (expires in 3650 days)
  serial:    11:f6:b6:9e:4f:22:12:bc
  flags:     CA CRLSign self-signed
  subjkeyId: 95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5
  pubkey:    RSA 3072 bits, has private key
  keyid:     cf:4b:7c:c6:cc:38:ac:5b:77:5f:f2:e7:32:31:8c:0c:64:ab:0a:58
  subjkey:   95:66:e0:e9:97:2d:7b:cb:ee:3d:7b:e3:95:5f:10:19:bc:6e:71:d5

Les fichiers sur le serveur :

root@lab3w:/etc/swanctl # tree
.
├── conf.d
│   ├── ca-de.conf
│   ├── ca-fr.conf
│   └── ca-uk.conf
├── ecdsa
├── pkcs12
├── pkcs8
├── private
│   ├── LAB3W_ZW3B-caKey-rsa_3072.pem
│   ├── srv.ca.lab3w.com-Key-falcon1024.pem
│   ├── srv.fr.lab3w.com-Key-falcon1024.pem
│   ├── vps.de.ipv10.net-Key-falcon1024.pem
│   └── vps.uk.ipv10.net-Key-falcon1024.pem
├── pubkey
├── rsa
├── swanctl.conf
├── tmp
│   ├── srv.ca.lab3w.com-Req.pem
│   ├── srv.fr.lab3w.com-Req.pem
│   ├── vps.de.ipv10.net-Req.pem
│   └── vps.uk.ipv10.net-Req.pem
├── x509
│   ├── srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
│   ├── srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
│   ├── vps.de.ipv10.net-Cert-falcon1024-sign_ca-rsa_3072.pem
│   └── vps.uk.ipv10.net-Cert-falcon1024-sign_ca-rsa_3072.pem
├── x509aa
├── x509ac
├── x509ca
│   └── LAB3W_ZW3B-caCert-rsa_3072.pem
├── x509crl
└── x509ocsp

14 directories, 18 files

Les fichiers sur un client :

root@pve:/etc/swanctl # tree
.
├── conf.d
│   └── fr-ca.conf
├── ecdsa
├── pkcs12
├── pkcs8
├── private
│   └── srv.fr.lab3w.com-Key-falcon1024.pem
├── pubkey
├── rsa
├── swanctl.conf
├── x509
│   └── srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
├── x509aa
├── x509ac
├── x509ca
│   └── LAB3W_ZW3B-caCert-rsa_3072.pem
├── x509crl
└── x509ocsp

14 directories, 5 files

-----

La configuration sur le serveur :

root@lab3w:/etc/swanctl # vim /etc/strongswan.conf
charon {

        load_modular = yes
        plugins {
                include strongswan.d/charon/*.conf
        }

        start-scripts {
                creds = swanctl --load-creds
                conns = swanctl --load-conns
                pools = swanctl --load-pools
        }
        filelog {
                charon {
                        path = /var/log/charon.log
                        # add a timestamp prefix
                        time_format = %b %e %T
                        # prepend connection name, simplifies grepping
                        ike_name = yes
                        # overwrite existing files
                        append = no
                        # increase default loglevel for all daemon subsystems
                        default = 1
                        tls = 2
                        ike = 2
                        # flush each line to disk
                        flush_line = yes
                }

                # and two loggers using syslog
                syslog {
                        # prefix for each log message
                        identifier = charon-custom
                        # use default settings to log to the LOG_DAEMON facility
                        daemon {

                        }
                        # very minimalistic IKE auditing logs to LOG_AUTHPRIV
                        auth {
                                default = -1
                                ike = 0
                        }
                }
        }

        eap-dynamic {
                prefer_user = yes
                preferred = md5, tls
        }

        send_vendor_id = yes
        prefer_configured_proposals = no
        fragment_size = 1480
        max_packet = 30000
#       install_routes = no
#       install_virtual_ip = yes
#       install_virtual_ip_on = vti1
#       interfaces_use = vti0
#       interfaces_ignore = vmbr0
}
include strongswan.d/charon/*.conf

pki {
#        load = plugins: random drbg x509 pubkey pkcs1 pkcs8 pkcs12 pem openssl oqs
}

# for strongSwan 5.9
libtls {
        version_max = 1.3
        suites = TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384
}

root@lab3w:/etc/swanctl # vim swanctl.conf

connections {
        include conf.d/ca-fr.conf
        include conf.d/ca-uk.conf
        include conf.d/ca-de.conf
}

authorities {
        strongswan {
                cacert = LAB3W_ZW3B-caCert-rsa_3072.pem
#               crl_uris = http://ip6-winnetou.strongswan.org/strongswan.crl
        }
}

pools {

        rw_pool {
                addrs = 172.16.1.100-172.16.1.200
        }

        fr-ipv6 {
                addrs = fec1::1/16
        }
        uk-ipv6 {
                addrs = fec2::1/128
        }
        de-ipv6 {
                addrs = fec3::1/128
        }

}

secrets {

        ike-my_pseudo {
                id = my_pseudo@doman.tld
                secret = 0sTdD7IOindSa6FuyjLsWtsdD9o/1a
        }
        ike-hack3r {
                id = hack3r@doman.tld
                secret = 0sH7+o6wysGdv5Oda!oqKVa3F
        }
        eap-my_pseudo {
                id = my_pseudo
                secret = my_password
        }
        eap-hack3r {
                id = hack3r
                secret = K8IOG9/N0KAQF
        }
}

root@lab3w:/etc/swanctl # vim conf.d/ca-fr.conf
ca-fr {
        remote_addrs = 109.210.56.240

        pools = fr-ipv6

        local {
                auth = pubkey
                certs = srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                id = srv.ca.lab3w.com
        }
        remote {
                auth = pubkey
                id = srv.fr.lab3w.com
        }
        children {
                ca-fr {
#                       mode = transport

                        local_ts = fec0::1/16, fc00:5300:60:9389::/64, fec2::1/128, fc00:41d0:801:2000::/64, fec3::1/128, fc00:41d0:701:1100::/64

                        remote_ts = fec1::1/16, fc01::10:106:42:0/104, fc01::10:126:42:0/112, fc01::172:16:0:0/104, fc01::192:168:8:0/104

                        start_action = trap

                        #-----
                        # ESP

                        # DEFAUT : no cipher
                        # selected proposal: ESP:AES_GCM_16_128/NO_EXT_SEQ

                        # ok
                        esp_proposals = aes256-sha256-x25519-ke1_kyber3-ke2_bike3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none

#                        rekey_time = 5400 # 90min default
                        rekey_time = 180 # 3min
                }
        }

        #-----
        # IKE

        version = 2
        dpd_delay = 60s

        # DEFAULT : no cipher config
        # selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256

        # ok
        proposals = aes256-sha256-x25519-ke1_kyber3-ke1_frodoa3-ke2_bike3-ke2_hqc3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none
        # selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5

        #-----

}

La configuration sur un client (le fichier /etc/strongswan.conf ne change pas) :

root@pve:/etc/swanctl # vim swanctl.conf
connections {

        include conf.d/fr-ca.conf
}

authorities {
        strongswan {
                cacert = LAB3W_ZW3B-caCert-rsa_3072.pem
#               crl_uris = http://ip6-winnetou.strongswan.org/strongswan.crl
        }
}

pools {

}
secrets {

}

# Include config snippets
include conf.d/*.conf


root@pve:/etc/swanctl # vim conf.d/fr-ca.conf
fr-ca {
        remote_addrs = 158.69.126.137

        local {
                auth = pubkey
                certs = srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                id = srv.fr.lab3w.com
        }
        remote {
                auth = pubkey
                id = srv.ca.lab3w.com
        }
        children {
                 fr-ca {
#                       mode = transport

                        local_ts  = fec1::1/16, fc01::172:16:0:0/104, fc01::10:106:42:0/104, fc01::10:126:42:0/112, fc01::192:168:8:0/104

                        remote_ts = fec0::1/16, fc00:5300:60:9389::/64, fec2::1/128, fc00:41d0:801:2000::/64, fec3::1/128, fc00:41d0:701:1100::/64

                        #-----
                        start_action = trap

                        #-----
                        # ESP

                        # DEFAUT : no cipher
                        # selected proposal: ESP:AES_GCM_16_128/NO_EXT_SEQ

                        # ok
                        esp_proposals = aes256-sha256-x25519-ke1_kyber3-ke2_bike3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none
                        # selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ
                        #-----

#                        rekey_time = 5400 # 90min default
                         rekey_time = 180 # 3min
                }
        }

        #-----
        # IKE

        version = 2
        dpd_delay = 60s

        # DEFAULT : no cipher config
        # selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/ECP_256

        # ok
        proposals = aes256-sha256-x25519-ke1_kyber3-ke1_frodoa3-ke2_bike3-ke2_hqc3-ke3_hqc3-ke3_none-ke4_hqc5-ke4_none
        # selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519/KE1_KYBER_L3/KE2_BIKE_L3/KE3_HQC_L3/KE4_HQC_L5
}

Voilà la configuration est prête.

Ci-dessous la création des certificats SSL :

# Creation de clefs de l'autorité de certificats
pki --gen --type rsa --size 3072 --outform pem > /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem

# Création des certificats de l'autorité  (certificat auto-signé)
pki --self --ca --type rsa --in /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem --lifetime 3652 --dn "C=FR, O=LAB3W, CN=ZW3B Cyber Root CA : rsa_3072" --outform pem > /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem

Serveur CA (srv.ca.lab3w.com) debian 10 (buster) pq-strongswan 6.0

# falcon1024
pki --gen --type falcon1024 --outform pem > /etc/swanctl/private/srv.ca.lab3w.com-Key-falcon1024.pem

pki --req --type priv --in /etc/swanctl/private/srv.ca.lab3w.com-Key-falcon1024.pem \
          --dn "C=FR, O=LAB3W, CN=srv.ca.lab3w.com" \
          --san srv.ca.lab3w.com --outform pem > /etc/swanctl/tmp/srv.ca.lab3w.com-Req.pem

# Signature rsa_3072
pki --issue --cacert /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem --cakey /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem \
            --type pkcs10 --in /etc/swanctl/tmp/srv.ca.lab3w.com-Req.pem --serial 01 --lifetime 1826 \
            --outform pem > /etc/swanctl/x509/srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem

Serveur FR (srv.fr.lab3w.com) debian 12 (bookworm) pq-strongswan 6.0

# falcon1024
pki --gen --type falcon1024 --outform pem > /etc/swanctl/private/srv.fr.lab3w.com-Key-falcon1024.pem
pki --req --type priv --in /etc/swanctl/private/srv.fr.lab3w.com-Key-falcon1024.pem \
          --dn "C=FR, O=LAB3W, CN=srv.fr.lab3w.com" \
          --san srv.fr.lab3w.com --outform pem > /etc/swanctl/tmp/srv.fr.lab3w.com-Req.pem

# Signature rsa_3072
pki --issue --cacert /etc/swanctl/x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem --cakey /etc/swanctl/private/LAB3W_ZW3B-caKey-rsa_3072.pem \
            --type pkcs10 --in /etc/swanctl/tmp/srv.fr.lab3w.com-Req.pem --serial 01 --lifetime 1826 \
            --outform pem > /etc/swanctl/x509/srv.fr.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem

-----

Et voilà, on peut lancer notre connexion :

root@lab3w:/etc/swanctl # swanctl --initiate --child ca-fr
Pour terminer une connexion :

root@lab3w:/etc/swanctl # swanctl --terminate --ike ca-fr
-----

Avec çà, on a une connexion fonctionnelle VPN utilisant StrongSwan v6 (docs).

@+

Romain.


Voir un certificat :

PKI :

pki --print --type x509 --in Cert.pem
OpenSSL :

openssl x509 -in Cert.pem -noout -text -inform pem
« Modifié: 06 novembre 2024 à 17:49:23 par LAB3W.ORJ »

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #10 le: 05 novembre 2024 à 17:14:32 »
Salut.

Au passage, j’explique rapidement, j’ai pour l’instant créé une AC (PKI) en RSA_3072 et des certificats pour mes Linux en Falcon1024 puisque j’ai compilé strongSwan avec « liboqs ». Par contre sur Windows 11 et/ou Android, il faut des certificats SSL/TLS conventionnels (ainsi que ; signé par une autorité avec un algorithme conventionnel) puisque il ne sont pas encore « acceptés » sur ces OS.

Pour infos dans Windows (RienÀVoir) :

Windows 11 : Accéder aux Networks : Touches Windows + r -> "ncpa.cpl"
Windows 11 : Accéder au Gestionnaire des certificats : Touches Windows + r -> "Certmgr.msc"

* Falcon1024 to Falcon1024 -> Algorithme de signature : 1.3.9999.3.4 (Falcon1024) - Clef Publique : 1.3.9999.3.4 (**0** bits) devrait retourner 14344 bits.
* Dilitium5 : 1.3.6.1.4.1.2.267.7.8.7
-> certificats-in-windows11.txt

J'ai vu des certificats de plus de 30 000 bits, mais je ne sais plus en quel algorithme et en plus je ne sais pas si cela est important - Parcequ'il y a des certificats de 15360bits mais qui sont en TLS 1.2 alors que d'autres de 3072 bits sont de sécurité TLS 1.3

Pour informations complémentaires liés aux certificats SSL/TLS conventionnels.

###### TLS 1.3
* TLS_AES_256_GCM_SHA384 (0x1302) -- ECDH x25519 (eq 3072 bits RSA) FS
* TLS_AES_128_GCM_SHA256 (0x1301) -- ECDH x25519 (eq 3072 bits RSA) FS
* TLS_CHACHA20_POLY1305_SHA256 (0x1303) -- ECDH x25519 (eq 3072 bits RSA) FS

###### TLS 1.2
* TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA284 (0xc02c) -- ECDH x25519 (eq 3072 bits RSA) FS
* TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) -- ECDH x25519 (eq 3072 bits RSA) FS
* TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9) -- ECDH x25519 (eq 3072 bits RSA) FS
--
* TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA284 (0xc02c) -- ECDH secp521r1 (eq 15360 bits RSA) FS
* TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) -- ECDH secp521r1 (eq 15360 bits RSA) FS
* TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9) -- ECDH secp521r1 (eq 15360 bits RSA) FS

J'ai ajouté des exemple d'algos en images en bas de ce commentaire.

----

Il faut que je fasse un type de connexion « ikev2-eap-tls » et que j’arrive à me connecter depuis un smartphone ou/et windows.

Une connexion type commercial mode "road warrior" :

Le fichier de configuration "conf.d/ikev2-eap-tls-asymmetric.conf" sur le serveur :

ikev2-eap-tls-asymmetric {
        pools = rw_pool, rw_pool-v6

        send_cert = always

        rekey_time = 0s
        fragmentation = yes
#       dpd_delay = 30s

        local {
                auth = pubkey
#               certs = srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                certs = srv.ca.lab3w.com-Cert-rsa_3072-sign_ca-rsa_3072.pem
                id = srv.ca.lab3w.com
        }
        remote {
#               auth = eap-dynamic
#               auth = eap-mschapv2
                auth = eap-tls
                eap_id = %any
        }
        children {
                ikev2-eap-tls-asymmetric {
                        local_ts = 0.0.0.0/0,::/0

                        esp_proposals = default

                        rekey_time = 0s
                        dpd_action = clear
                        start_action = none
                        close_action = none
                }
        }
        version = 2

        # IKE
        proposals = default

}

Cf : Usable Examples configurations - strongSwan

J'ai créé un certificat personnel "pksc12" pour Windows et/ou Android :

root@lab3w:/etc/swanctl # pki --gen --type rsa --size 3072 --outform pem > private/orj-Key-rsa_3072.pem
root@lab3w:/etc/swanctl # pki --req --type priv --in private/orj-Key-rsa_3072.pem \
          --dn "C=FR, O=LAB3W, CN=orj@lab3w.fr" \
          --san orj@lab3w.fr --san orj@lab3w.com --outform pem > tmp/orj-Req.pem

root@lab3w:/etc/swanctl # pki --issue --cacert x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem --cakey private/LAB3W_ZW3B-caKey-rsa_3072.pem \
            --type pkcs10 --in tmp/orj-Req.pem --serial 01 --lifetime 1826 \
            --outform pem > x509/orj-Cert-rsa_3072-sign_ca-rsa_3072.pem

root@lab3w:/etc/swanctl # openssl pkcs12 -export -inkey private/orj-Key-rsa_3072.pem \
               -in x509/orj-Cert-rsa_3072-sign_ca-rsa_3072.pem -name "O.Romain.Jaillet-ramey" \
               -certfile x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem -caname "ZW3B Cyber Root CA : rsa_3072" \
               -out pkcs12/orj-Cert-rsa_3072-sign_ca-rsa_3072.p12

J'ai récupéré le fichier "orj-Cert-rsa_3072-sign_ca-rsa_3072.p12" et je l'ai installé sur mon smartphone et j'ai testé la connexion (en passant je l'ai viré du répertoire "pksc12/", ce certificat n'a pas besoin d'être là, mais j'ai une erreur d'authentification.

Je cherche d'où peut venir l'erreur.

En passant pour installer votre autorité sur votre machine Windows il faut ce type de fichier (par exemple "LAB3W_ZW3B-caCert-rsa_3072.der") ;
# Fichier de l'autorité au format Windows (pour pouvoir l'importer)
openssl x509 -in x509ca/LAB3W_ZW3B-caCert-rsa_3072.pem -out x509ca/LAB3W_ZW3B-caCert-rsa_3072.der -outform DER

----

J'ai installé l'appli "strongSwan VPN Client" puisque cela ne fonctionnait pas depuis l'interface native de mon smartphone (j'ai les logs clientes avec, c'est mieux), mais çà ne fonctionne pas non plus.

Normalement sans "application cliente" cela doit fonctionner avec les options VPN native de nos appareils.

Quelqu'un connaîtrait ce genre d'authentification depuis un smartphone ?

Merci.

Romain.


« Modifié: 05 novembre 2024 à 18:09:34 par LAB3W.ORJ »

LAB3W.ORJ

  • Abonné Orange Fibre
  • *
  • Messages: 145
  • Alpes Maritimes (06)
    • ZW3B :-: The Web Com
VPN - PQ strongSwan - Modern Security network
« Réponse #11 le: 06 novembre 2024 à 17:48:35 »
Salut,

J'ai réussis à me connecter depuis mon smartphone depuis "strongSwan VPN CLient for Android"

Connexion type : IKEv2 EAP-MSCHAPv2 (username/Password) -> OK Connected



Le fichier de configuration :

ikev2-eap-mschapv2 {
        version = 2

        pools = rw_pool, rw_pool-v6

        send_cert = always

        rekey_time = 0s
        fragmentation = yes
        dpd_delay = 30s

        # IKE ciphers
        proposals = default

        local {
                auth = pubkey
#               certs = srv.ca.lab3w.com-Cert-falcon1024-sign_ca-rsa_3072.pem
                certs = srv.ca.lab3w.com-Cert-rsa_3072-sign_ca-rsa_3072.pem
                id = srv.ca.lab3w.com
        }
        remote {
                auth = eap-mschapv2
                eap_id = %any
        }
        children {
                ikev2-eap-mschapv2 {
                        local_ts = 0.0.0.0/0,::/0

                        esp_proposals = default

                        rekey_time = 0s
                        dpd_action = clear
                        start_action = none
                        close_action = none
                }
        }
}

J'essaie d'autres mode de connexion plus sûr (pour l'instant je ne trouve pas AUTH_FAILED)

Je met la configuration par ici -> https://www.zw3b.com/pub/vpn/strongSwan-v6.0/config/5/ (strongSwan-config-EAP-XXX+LOGs-strongswanClientAndroid.txt) ... (par contre je n'ai pas configurer les routes pour sortir - y'a une option dans advanced du client....)



J'ai modifié la commande pour l'installation ./Configure -> (plus haut).

# strongSwan will be built with the following plugins
# -----------------------------------------------------
# libstrongswan: random nonce x509 revocation pubkey pkcs1 pkcs7 pgp dnskey sshkey pem openssl pkcs8 xcbc cmac kdf frodo oqs drbg
# libcharon:     attr kernel-libipsec kernel-netlink resolve socket-default vici updown eap-identity eap-md5 eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap eap-tnc xauth-eap dhcp certexpire radattr addrblock unity
# libtnccs:      tnc-tnccs
# libtpmtss:

Nov  6 16:57:09 00[DMN] Starting IKE charon daemon (strongSwan 6.0.0beta6, Linux 5.4.203-1-pve, x86_64)
Nov  6 16:57:09 00[CFG] install DNS servers in '/etc/resolv.conf'
Nov  6 16:57:09 00[KNL] unable to create IPv4 routing table rule
Nov  6 16:57:09 00[KNL] unable to create IPv6 routing table rule
Nov  6 16:57:09 00[CFG] loaded 0 RADIUS server configurations
Nov  6 16:57:09 00[LIB] loaded plugins: charon random nonce x509 revocation pubkey pkcs1 pkcs7 pgp dnskey sshkey pem openssl pkcs8 xcbc cmac kdf frodo oqs drbg attr kernel-netlink resolve socket-default vici updown eap-identity eap-md5 eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap eap-tnc xauth-eap tnc-tnccs dhcp certexpire radattr addrblock unity

Sinon, j'ai ouvert un sujet sur Debian-FR.org -> https://www.debian-fr.org/t/network-ipv6-ipsec-strongswan-modern-security-communication/89528/2#installation-1 pour d'autres ^^

Bonne journée.
« Modifié: 07 novembre 2024 à 13:42:38 par LAB3W.ORJ »