BizTalk Server 2020 ne prend pas en charge TLS 1.3 à la date d’octobre 2025. Voici un guide clair et actionnable pour comprendre la situation, sécuriser vos flux en TLS 1.2 durci et planifier, si nécessaire, une trajectoire vers des alternatives compatibles TLS 1.3.
Vue d’ensemble de la question
L’échange porte sur trois points clés : prise en charge actuelle, feuille de route et échéancier. En bref :
- Prise en charge actuelle : BizTalk Server 2020 reconnaît TLS 1.2. TLS 1.3 n’est pas disponible.
- Feuille de route : Microsoft n’a communiqué aucun engagement public d’ajouter TLS 1.3 à BizTalk 2020 (ou à une autre version) au moment d’écrire ces lignes.
- Échéancier : aucun calendrier officiel publié.
État actuel en octobre 2025
BizTalk Server 2020 fonctionne sur .NET Framework 4.8 et tire parti de la pile TLS/SSL Schannel de Windows via les bibliothèques .NET/WCF. Or, .NET Framework 4.8 n’expose pas TLS 1.3. Même si l’OS sous-jacent (Windows 11 ou Windows Server 2022) implémente TLS 1.3 dans Schannel, BizTalk 2020 ne peut pas s’y connecter car l’API .NET utilisée par BizTalk ne propose pas ce protocole.
Conséquence : les scénarios HTTP(S)/WCF, REST ou SOAP de BizTalk négocient au mieux TLS 1.2 (avec suites de chiffrement modernes), dès lors que l’OS et la configuration le permettent, mais jamais TLS 1.3.
Pourquoi TLS 1.3 n’est pas exposé à BizTalk 2020
- Dépendance au runtime .NET Framework : BizTalk 2020 s’appuie sur .NET Framework 4.8 pour le réseau et la sécurité. Cette version ne définit pas l’énumération/les constantes permettant d’activer TLS 1.3.
- Écart entre l’OS et le runtime : Windows Server 2022 et Windows 11 prennent en charge TLS 1.3 au niveau Schannel. Mais l’application doit aussi cibler un runtime qui expose le protocole. Sans ce pont, BizTalk ne peut pas « monter » à TLS 1.3.
- WCF et connecteurs : la majorité des adaptateurs HTTP(S) de BizTalk sont bâtis sur WCF/.NET. En .NET Framework, WCF s’aligne sur les capacités du runtime (au mieux TLS 1.2).
Impacts concrets par couche
Couche | Composant | Rôle | Prise en charge la plus élevée | Remarques |
---|---|---|---|---|
Application | BizTalk Server 2020 | Moteur d’orchestration, ports d’envoi/réception | TLS 1.2 | WCF et System.Net côté .NET Framework |
Runtime | .NET Framework 4.8 | API réseau, SChannel wrapper | TLS 1.2 | Pas d’exposition de TLS 1.3 |
OS | Windows Server 2022 / Windows 11 | Schannel (TLS/SSL) | TLS 1.3 | Disponible côté OS, non exploitable par BizTalk 2020 |
État des systèmes d’exploitation Windows (référence utile)
OS | TLS 1.3 (Schannel) | Commentaires |
---|---|---|
Windows Server 2016 | Non | Jusqu’à TLS 1.2 |
Windows Server 2019 | Non | Jusqu’à TLS 1.2 |
Windows Server 2022 | Oui | TLS 1.3 activable au niveau OS |
Windows 10 (21H2) / Windows 11 | Oui (Windows 11) | Windows 11 apporte TLS 1.3 au niveau Schannel |
Ce que cela signifie pour vos adaptateurs BizTalk
Adaptateur | Protocole/Transport | Négociation TLS | Compatible TLS 1.3 ? | Action recommandée |
---|---|---|---|---|
WCF-BasicHttp / WCF-Custom (HTTP) | HTTPS (SOAP/REST) | WCF/.NET → Schannel | Non | Forcer TLS 1.2, suites modernes, désactiver TLS 1.0/1.1 |
WCF-WebHttp | HTTPS (REST) | WCF/.NET → Schannel | Non | Idem, vérifier sides serveur/clients |
WCF-NetTcp | Net.TCP (Message/Transport Security) | Chiffrement via WCF/.NET | Non (pas TLS 1.3) | Algorithmes forts, TLS 1.2 si HTTPS utilisé |
HTTP/HTTPS natif | HTTPS | System.Net → Schannel | Non | Forcer TLS 1.2 globalement |
SFTP | SSH | Hors TLS | N/A | Non concerné par TLS, sécuriser SSH |
FTP/FTPS | FTPS (TLS) | System.Net → Schannel | Non | Imposer TLS 1.2 si FTPS |
Bonnes pratiques immédiates : durcir TLS 1.2
En attendant une éventuelle prise en charge de TLS 1.3, la stratégie pragmatique consiste à durcir TLS 1.2 de bout en bout :
- Désactiver TLS 1.0 et TLS 1.1 (client et serveur) sur toutes les machines de la ferme BizTalk et du SQL associé.
- Activer TLS 1.2 et suites de chiffrement modernes (ECDHE + AES-GCM, SHA-256/384), en ordonnant les suites côté serveur.
- Forcer .NET à utiliser des chiffres forts (
SchUseStrongCrypto
) et, si du code personnalisé est utilisé, imposer explicitementTls12
. - Installer les derniers Cumulative Updates (CU) de BizTalk 2020 et les correctifs de sécurité mensuels de Windows/SQL Server.
- Vérifier les dépendances externes : partenaires, reverse proxies, API en face doivent eux aussi accepter TLS 1.2 moderne.
Modèle de script PowerShell (désactiver TLS 1.0/1.1, activer TLS 1.2)
# À exécuter en PowerShell élevé. Redémarrage requis.
$base = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols"
# Helper
function Enable-TlsVersion {
param([string]$Version, [bool]$Enable)
$paths = @("$base$Version\Client", "$base$Version\Server")
foreach ($p in $paths) {
New-Item -Path $p -Force | Out-Null
if ($Enable) {
New-ItemProperty -Path $p -Name "Enabled" -PropertyType "DWord" -Value 1 -Force | Out-Null
New-ItemProperty -Path $p -Name "DisabledByDefault" -PropertyType "DWord" -Value 0 -Force | Out-Null
} else {
New-ItemProperty -Path $p -Name "Enabled" -PropertyType "DWord" -Value 0 -Force | Out-Null
New-ItemProperty -Path $p -Name "DisabledByDefault" -PropertyType "DWord" -Value 1 -Force | Out-Null
}
}
}
# Désactiver TLS 1.0 et 1.1
Enable-TlsVersion -Version "TLS 1.0" -Enable:$false
Enable-TlsVersion -Version "TLS 1.1" -Enable:$false
# Activer TLS 1.2
Enable-TlsVersion -Version "TLS 1.2" -Enable:$true
Write-Host "Configuration appliquée. Pensez à redémarrer le serveur."
Forcer des chiffres forts côté .NET (.NET Framework)
Sur toutes les machines BizTalk (x64 et, si pertinent, x86), appliquez SchUseStrongCrypto
pour .NET Framework :
# .NET Framework 4.x
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -PropertyType DWord -Value 1 -Force | Out-Null
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -PropertyType DWord -Value 1 -Force | Out-Null
# .NET Framework 2.0/3.5 (si des composants hérités existent)
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -PropertyType DWord -Value 1 -Force | Out-Null
New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft.NETFramework\v2.0.50727" -Name "SchUseStrongCrypto" -PropertyType DWord -Value 1 -Force | Out-Null
Exemple pour du code personnalisé (pipeline, composant, helper)
Si vous avez du code .NET dans des composants personnalisés, imposez TLS 1.2 explicitement :
System.Net.ServicePointManager.SecurityProtocol =
System.Net.SecurityProtocolType.Tls12; // .NET Framework : impose TLS 1.2
Ordre des suites de chiffrement
Définissez un ordre de suites côté serveur privilégiant ECDHE + AES-GCM (256/128) avec SHA-384/256. Utilisez la stratégie de groupe « SSL Cipher Suite Order » pour Windows Server. Évitez CBC et RC4. Contrôlez également les suites côté client si vos machines initient des connexions sortantes.
Journalisation et diagnostic Schannel
Pour diagnostiquer les négociations TLS, activez la journalisation Schannel :
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" `
-Name "EventLogging" -PropertyType DWord -Value 1 -Force | Out-Null
Consultez ensuite le journal « Système » (Source : Schannel) et le journal « Applications et services > Microsoft > Windows > Schannel » pour les détails de négociation (échecs, versions, suites).
Tests de conformité TLS 1.2
Testez qu’un endpoint distant accepte bien TLS 1.2 :
# Forcer TLS 1.2 dans la session PowerShell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Appel de test (code 200 attendu sur un endpoint HTTPS valide)
(Invoke-WebRequest -Uri "https://votre-api.exemple" -UseBasicParsing).StatusCode
Pour des ports spécifiques, vous pouvez aussi vérifier la connectivité :
Test-NetConnection -ComputerName "votre-api.exemple" -Port 443
Feuille de route : ce que l’on sait
- Pas d’annonce officielle publiée sur l’ajout de TLS 1.3 à BizTalk 2020.
- Aucune date communiquée pour une version qui exposerait TLS 1.3 via .NET Framework ou une évolution de BizTalk.
- Recommandation : surveillez les annonces Microsoft (Blog produit, TechCommunity, Microsoft Learn, feuilles de route Integration Services) pour détecter tout changement.
Alternatives et contournements lorsque TLS 1.3 est exigé
Front TLS 1.3 avec terminaison/bridge
Si des partenaires exigent TLS 1.3 côté frontal, mettez en place un proxy/reverse proxy qui termine en TLS 1.3 à l’edge puis relaie vers BizTalk en TLS 1.2 en interne :
- Azure API Management (APIM) en mode passerelle : expose TLS 1.3 aux consommateurs, applique des politiques (throttling, transformation), relaie en TLS 1.2 vers BizTalk.
- Azure Application Gateway ou un NGFW/ADC on‑prem (F5, NGINX Plus, etc.) configurés pour TLS 1.3 côté client.
- Azure Front Door ou CDN en edge global pour décharger TLS et filtrer.
Veillez à :
- segmenter le trafic (DMZ → LAN),
- journaliser les handshakes TLS à l’edge,
- aligner les suites/chiffres internes en TLS 1.2 durci,
- tester la latence et la capacité (MTLS, certificats client, rotation).
Azure Integration Services
Si l’exigence TLS 1.3 est non négociable pour des flux Internet, envisagez une évolution progressive vers une architecture basée sur Azure Integration Services :
- Logic Apps (Standard/Consumption) pour les orchestrations et déclencheurs HTTP(s).
- API Management en façade pour exposer des API sécurisées en TLS 1.3, appliquer du MTLS et des politiques.
- Service Bus pour la messagerie asynchrone.
- Event Grid pour la distribution d’événements.
Un pattern fréquent consiste à exposer des API en TLS 1.3 via APIM/Logic Apps, puis à communiquer avec BizTalk interne (le temps de la transition) via des files (Service Bus) ou via un relais sécurisé.
Sécurité : TLS 1.2 « durci » reste robuste
Dans de nombreux contextes conformes (PCI DSS, exigences clients), TLS 1.2 avec ECDHE + AES‑GCM reste acceptable et robuste. L’essentiel est de :
- désactiver fermement TLS 1.0/1.1 et les suites faibles,
- imposer des suites ECDHE + AES‑GCM,
- rotations et clés RSA 2048+ ou ECDSA P‑256/P‑384,
- renforcer la validation de certificats (OCSP, CRL),
- monitorer la dérive de configuration.
Procédure opérationnelle recommandée (playbook)
- Inventorier les endpoints HTTPS (ports, noms DNS, clients/serveurs, MTLS).
- Appliquer les clés Registre et GPO (désactivation TLS 1.0/1.1, activation TLS 1.2, ordre des suites).
- Forcer .NET via
SchUseStrongCrypto
et, le cas échéant, dans le code personnalisé. - Mettre à jour BizTalk 2020 (dernier CU), Windows Server, SQL Server et drivers.
- Tester avec des scripts PowerShell et des outils d’audit TLS (externe/interne).
- Surveiller les journaux Schannel et les métriques (erreurs de handshake, pénalités de performance).
- Négocier avec les partenaires les exigences TLS (MTLS, versions, suites) et consigner par contrat.
- Prévoir une option B (front TLS 1.3 via APIM/ADC) si des flux imposent TLS 1.3 court terme.
FAQ
BizTalk 2020 pourrait-il « hériter » de TLS 1.3 si j’active TLS 1.3 dans Windows Server 2022 ?
Non. L’OS peut supporter TLS 1.3, mais BizTalk 2020 s’appuie sur .NET Framework 4.8, qui n’expose pas ce protocole aux applications.
Le chiffrement côté Net.TCP m’épargne‑t‑il la contrainte TLS 1.3 ?
Net.TCP n’utilise pas TLS de la même manière qu’HTTPS. Les flux HTTPS restent limités à TLS 1.2 avec BizTalk 2020. Pour Net.TCP, conservez des algorithmes forts et mettez à jour.
Est‑ce risqué de rester en TLS 1.2 ?
Avec des suites modernes et une configuration rigoureuse, TLS 1.2 reste considéré comme sûr dans la plupart des cadres normatifs. Les faiblesses documentées concernent surtout des suites anciennes (CBC, RC4) et des configurations laxistes.
Existe‑t‑il un paramètre magique BizTalk pour activer TLS 1.3 ?
Non. Il ne s’agit pas d’un simple commutateur : il faudrait un runtime compatible (API .NET) et un support explicite côté produit BizTalk.
Exemples de configuration côté serveur (récapitulatif)
Objet | Clés/Actions | Valeur/Conseil |
---|---|---|
Désactivation TLS 1.0/1.1 | Registre Schannel (Client/Server) | Enabled=0 , DisabledByDefault=1 |
Activation TLS 1.2 | Registre Schannel (Client/Server) | Enabled=1 , DisabledByDefault=0 |
.NET chiffrement fort | SchUseStrongCrypto | DWORD=1 pour v4.0.30319 + v2.0.50727 |
Suites côté serveur | Stratégie « SSL Cipher Suite Order » | Privilégier ECDHE + AES‑GCM, SHA‑384/256 |
Journalisation Schannel | EventLogging | DWORD=1 pour diagnostiquer |
CU BizTalk 2020 | Maintenance | Appliquer le dernier CU disponible |
Plan de transition si TLS 1.3 devient obligatoire
- Phase 0 : cadrer l’exigence (qui demande TLS 1.3 ? sur quels endpoints ? MTLS ?).
- Phase 1 : implémenter un front TLS 1.3 (APIM/Application Gateway/ADC) et relayer en TLS 1.2 interne.
- Phase 2 : déporter progressivement les flux Internet vers Logic Apps + APIM si l’exigence est structurelle.
- Phase 3 : consolider la gouvernance (certificats, rotation, politique de suites, scanners de conformité).
- Phase 4 : surveiller les annonces Microsoft et re‑considérer BizTalk si une version ultérieure expose TLS 1.3.
Conclusion
À la date d’octobre 2025, TLS 1.3 n’est pas disponible dans BizTalk Server 2020, et aucun planning officiel n’est communiqué pour l’ajouter. La bonne démarche consiste à sécuriser la plateforme en TLS 1.2 durci (désactivation TLS 1.0/1.1, suites modernes, CU/patching), contrôler la conformité via des tests et journaux Schannel, et préparer un contournement (front TLS 1.3 ou migration sélective vers Azure Integration Services) si une exigence externe impose TLS 1.3 à court terme.
Annexe : checklist rapide
- Désactiver TLS 1.0/1.1 (client+serveur) sur tous les nœuds BizTalk et SQL.
- Activer/forcer TLS 1.2, ordonner les suites (ECDHE + AES‑GCM en priorité).
- Appliquer
SchUseStrongCrypto
pour .NET Framework (x64/x86). - Mettre à jour BizTalk (dernier CU), Windows, SQL, pilotes.
- Vérifier les partenaires (contrats : versions/suites, MTLS, SLO).
- Instrumenter : journaux Schannel, métriques de handshake, alertes.
- Préparer un front TLS 1.3 si nécessaire (APIM/ADC).
- Surveiller les annonces officielles Microsoft.
Résumé exécutif
Ce qui est sûr : BizTalk 2020 = TLS 1.2 uniquement. Ce qui n’est pas annoncé : intégration de TLS 1.3 et sa date. Ce qu’il faut faire : durcir TLS 1.2, patcher, tester, et prévoir un bridge TLS 1.3 en périphérie ou une transition vers Azure Integration Services si l’exigence persiste.