Files
securebit-chat/fr/index.html
T

469 lines
36 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<!-- Generated by scripts/build-i18n.js from templates/index.template.html and
locales/*.json. Edits made here are overwritten by the next build. -->
<html lang="fr" dir="ltr">
<head>
<meta charset="UTF-8">
<!-- viewport-fit=cover is what makes env(safe-area-inset-*) resolve to anything
other than 0 on notched iPhones; the composer already pads for it.
interactive-widget=resizes-content is honoured by Chrome/Android; iOS
ignores it, which is why the shell also tracks visualViewport in JS. -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, interactive-widget=resizes-content">
<meta http-equiv="Content-Security-Policy"
content="default-src 'self';
script-src 'self';
style-src 'self' 'unsafe-inline';
font-src 'self' data:;
connect-src 'self' stun: stuns: turn: turns:;
img-src 'self' data:;
media-src 'self' blob:;
object-src 'none';
frame-src 'none';
worker-src 'self';
manifest-src 'self';
form-action 'self';
base-uri 'none';
upgrade-insecure-requests;">
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<meta http-equiv="X-XSS-Protection" content="1; mode=block">
<meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin">
<!-- PWA Manifest -->
<link rel="manifest" href="/fr/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788496655816">
<!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="apple-mobile-web-app-title" content="SecureBit">
<meta name="application-name" content="SecureBit">
<meta name="msapplication-TileColor" content="#ff6b35">
<meta name="msapplication-config" content="/browserconfig.xml">
<!-- iOS Splash Screens - Полная конфигурация с генератора -->
<!-- Landscape -->
<link rel="apple-touch-startup-image" media="screen and (device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_17_Pro_Max__iPhone_16_Pro_Max_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_17_Pro__iPhone_17__iPhone_16_Pro_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_16_Plus__iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 420px) and (device-height: 912px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_Air_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_16__iPhone_15_Pro__iPhone_15__iPhone_14_Pro_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_16e__iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_11__iPhone_XR_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_landscape.png">
<!-- iPad Landscape -->
<link rel="apple-touch-startup-image" media="screen and (device-width: 1032px) and (device-height: 1376px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/13__iPad_Pro_M4_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/12.9__iPad_Pro_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1210px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/11__iPad_Pro_M4_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/11__iPad_Pro__10.5__iPad_Pro_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/10.9__iPad_Air_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/10.5__iPad_Air_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/10.2__iPad_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_landscape.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)" href="/logo/splash/splash_screens/8.3__iPad_Mini_landscape.png">
<!-- Portrait -->
<link rel="apple-touch-startup-image" media="screen and (device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_17_Pro_Max__iPhone_16_Pro_Max_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_17_Pro__iPhone_17__iPhone_16_Pro_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_16_Plus__iPhone_15_Pro_Max__iPhone_15_Plus__iPhone_14_Pro_Max_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 420px) and (device-height: 912px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_Air_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_16__iPhone_15_Pro__iPhone_15__iPhone_14_Pro_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_14_Plus__iPhone_13_Pro_Max__iPhone_12_Pro_Max_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_16e__iPhone_14__iPhone_13_Pro__iPhone_13__iPhone_12_Pro__iPhone_12_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_13_mini__iPhone_12_mini__iPhone_11_Pro__iPhone_XS__iPhone_X_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_11_Pro_Max__iPhone_XS_Max_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_11__iPhone_XR_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_8_Plus__iPhone_7_Plus__iPhone_6s_Plus__iPhone_6_Plus_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/iPhone_8__iPhone_7__iPhone_6s__iPhone_6__4.7__iPhone_SE_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/4__iPhone_SE__iPod_touch_5th_generation_and_later_portrait.png">
<!-- iPad Portrait -->
<link rel="apple-touch-startup-image" media="screen and (device-width: 1032px) and (device-height: 1376px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/13__iPad_Pro_M4_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/12.9__iPad_Pro_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1210px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/11__iPad_Pro_M4_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/11__iPad_Pro__10.5__iPad_Pro_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/10.9__iPad_Air_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/10.5__iPad_Air_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/10.2__iPad_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/9.7__iPad_Pro__7.9__iPad_mini__9.7__iPad_Air__9.7__iPad_portrait.png">
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788496655816">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/logo/icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/logo/icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788496655816">
<!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35">
<meta name="msapplication-TileImage" content="./logo/icon-144x144.png">
<meta name="msapplication-config" content="/browserconfig.xml">
<!-- Theme colors -->
<meta name="theme-color" content="#ff6b35">
<meta name="msapplication-navbutton-color" content="#ff6b35">
<!-- Security Headers for PWA - CSP is already defined above -->
<!-- SEO -->
<title>SecureBit.chat - Messagerie privée et chiffrée</title>
<meta name="description" content="Messagerie P2P gratuite et chiffrée de bout en bout, entièrement dans votre navigateur. Aucun compte, aucun serveur ne conserve vos messages.">
<meta name="author" content="Volodymyr">
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1">
<link rel="canonical" href="https://securebit.chat/fr/">
<link rel="alternate" hreflang="en" href="https://securebit.chat/">
<link rel="alternate" hreflang="de" href="https://securebit.chat/de/">
<link rel="alternate" hreflang="fr" href="https://securebit.chat/fr/">
<link rel="alternate" hreflang="es" href="https://securebit.chat/es/">
<link rel="alternate" hreflang="uk" href="https://securebit.chat/uk/">
<link rel="alternate" hreflang="ru" href="https://securebit.chat/ru/">
<link rel="alternate" hreflang="zh-Hans" href="https://securebit.chat/zh/">
<link rel="alternate" hreflang="ko" href="https://securebit.chat/ko/">
<link rel="alternate" hreflang="hi" href="https://securebit.chat/hi/">
<link rel="alternate" hreflang="ar" href="https://securebit.chat/ar/">
<link rel="alternate" hreflang="he" href="https://securebit.chat/he/">
<link rel="alternate" hreflang="fa" href="https://securebit.chat/fa/">
<link rel="alternate" hreflang="ur" href="https://securebit.chat/ur/">
<link rel="alternate" hreflang="x-default" href="https://securebit.chat/">
<!-- Open Graph -->
<meta property="og:site_name" content="SecureBit.chat">
<meta property="og:title" content="SecureBit.chat - Chat pair-à-pair chiffré de bout en bout">
<meta property="og:description" content="Une messagerie sécurisée qui fonctionne entièrement dans votre navigateur. Aucun compte, aucun serveur ne conserve vos messages. Utilisez vos propres serveurs STUN/TURN : nous ne vous imposons rien.">
<meta property="og:url" content="https://securebit.chat/fr/">
<meta property="og:type" content="website">
<meta property="og:locale" content="fr_FR">
<meta property="og:locale:alternate" content="en_US">
<meta property="og:locale:alternate" content="de_DE">
<meta property="og:locale:alternate" content="es_ES">
<meta property="og:locale:alternate" content="uk_UA">
<meta property="og:locale:alternate" content="ru_RU">
<meta property="og:locale:alternate" content="zh_CN">
<meta property="og:locale:alternate" content="ko_KR">
<meta property="og:locale:alternate" content="hi_IN">
<meta property="og:locale:alternate" content="ar_AR">
<meta property="og:locale:alternate" content="he_IL">
<meta property="og:locale:alternate" content="fa_IR">
<meta property="og:locale:alternate" content="ur_PK">
<meta property="og:image" content="https://securebit.chat/assets/social-card.png">
<meta property="og:image:secure_url" content="https://securebit.chat/assets/social-card.png">
<meta property="og:image:type" content="image/png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="SecureBit.chat - chat pair-à-pair chiffré de bout en bout">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="SecureBit.chat - Chat pair-à-pair chiffré de bout en bout">
<meta name="twitter:description" content="Une messagerie sécurisée qui fonctionne entièrement dans votre navigateur. Aucun compte, aucun serveur ne conserve vos messages.">
<meta name="twitter:image" content="https://securebit.chat/assets/social-card.png">
<meta name="twitter:image:alt" content="SecureBit.chat - chat pair-à-pair chiffré de bout en bout">
<!-- Structured data (schema.org) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://securebit.chat/#organization",
"name": "SecureBit.chat",
"url": "https://securebit.chat/",
"logo": "https://securebit.chat/logo/icon-512x512.png",
"sameAs": [
"https://github.com/SecureBitChat/securebit-chat",
"https://snapcraft.io/securebit-chat"
]
},
{
"@type": "WebSite",
"@id": "https://securebit.chat/#website",
"name": "SecureBit.chat",
"url": "https://securebit.chat/",
"description": "Chat pair-à-pair chiffré de bout en bout, fonctionnant entièrement dans le navigateur.",
"inLanguage": "fr",
"publisher": {
"@id": "https://securebit.chat/#organization"
}
},
{
"@type": "WebApplication",
"name": "SecureBit.chat",
"url": "https://securebit.chat/fr/",
"applicationCategory": "CommunicationApplication",
"operatingSystem": "Toute plateforme (navigateur web moderne)",
"browserRequirements": "Nécessite WebRTC et l'API Web Crypto",
"description": "Une messagerie pair-à-pair gratuite et chiffrée de bout en bout. Aucun compte, aucun serveur ne conserve les messages : ECDH P-384, AES-256-GCM et vérification SAS en personne.",
"inLanguage": "fr",
"image": "https://securebit.chat/assets/social-card.png",
"license": "https://opensource.org/licenses/MIT",
"isAccessibleForFree": true,
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
},
"featureList": [
"Chiffrement de bout en bout (ECDH P-384, AES-256-GCM)",
"Connexion pair-à-pair par WebRTC, sans serveur de messages",
"Vérification SAS en personne contre les attaques de l'intercepteur",
"Serveurs STUN/TURN personnels et mode de confidentialité relais uniquement",
"Transfert de fichiers chiffré",
"Application web progressive installable, utilisable hors ligne"
],
"sameAs": [
"https://github.com/SecureBitChat/securebit-chat"
]
}
]
}
</script>
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788496655816"></script>
<script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
it never executes the snippet. Loaded in manual mode (no auto-highlight).
Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script>
<!-- One render-blocking stylesheet, built by scripts/build-css.js from the Tailwind
output, the Inter @font-face declarations and the five hand-written sheets, in
that order — they argue with each other on source order, and concatenation
preserves it exactly. There used to be eight separate <link> tags here and at
the end of <body>: 21 KB of CSS in total, but eight round trips before the
browser could paint, which GTmetrix measured at 441 ms on a throttled mobile
connection. Bytes were never the problem; requests were. -->
<link rel="stylesheet" href="/assets/app.css?v=1788496655816">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788496655816">
<!-- Preload only the fonts needed for first paint. Inter is one variable file that
answers for every weight, so there is one to preload rather than the two of five
copies this used to name. fa-solid covers the bulk of UI icons; fa-regular and
fa-brands are loaded on demand by their CSS, rarely on the first screen. -->
<link rel="preload" href="/assets/fontawesome/webfonts/fa-solid-900.subset.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin.woff2" as="font" type="font/woff2" crossorigin>
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788496655816"></script>
<noscript>
<link rel="stylesheet" href="/libs/prism/prism.css">
</noscript>
<script defer src="/src/scripts/fa-check.js?v=1788496655816"></script>
<!-- This locale's dictionary, registered before anything can ask for a string.
Only the default locale's is bundled (src/i18n/index.js imports it, because t()
falls back to it); every other page loads its own here instead of all thirteen
riding along inside dist/app.js. Absent on the default locale's own page. -->
<script type="module" src="/src/i18n/dict/fr.js?v=1788496655816"></script>
<!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788496655816"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788496655816"></script>
<!-- /dist/qr-local.js is deliberately absent: app-boot.js fetches it once the
app has mounted and the browser is idle, so the 142 KB it weighs is off the
first load. src/components/QRScanner.js used to be here too and registered
window.QRScanner, which nothing has ever read. -->
</head>
<body>
<div id="root">
<style>
.sb-pre{display:none}
.sb-boot{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;margin:0;background:#0f0f11}
.sb-boot svg{width:62px;height:auto;display:block;animation:sbBootPulse 1.8s ease-in-out infinite}
@keyframes sbBootPulse{0%,100%{opacity:.32;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.sb-boot svg{animation:none;opacity:.75}}
</style>
<noscript><style>
.sb-pre{display:block}
.sb-boot{display:none}
</style></noscript>
<style>
.sb-pre{background:#0f0f11;color:#e8e8eb;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6;padding:56px 24px 72px;margin:0}
.sb-pre .sb-pre-in{max-width:940px;margin:0 auto;display:flex;flex-direction:column;gap:56px}
.sb-pre .sb-pre-brand{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#f0892a;margin:0 0 18px}
.sb-pre h1{font-size:clamp(28px,5vw,40px);font-weight:800;letter-spacing:-1.1px;line-height:1.12;color:#f4f4f6;margin:0 0 14px}
.sb-pre h2{font-size:23px;font-weight:700;letter-spacing:-.5px;color:#f4f4f6;margin:0 0 8px}
.sb-pre h3{font-size:17px;font-weight:700;letter-spacing:-.2px;color:#e8e8eb;margin:0 0 6px}
.sb-pre p{margin:0 0 10px;color:#8a8a92;font-size:15px;max-width:62ch}
.sb-pre .sb-pre-lead{font-size:16px;color:#a6a6ae;max-width:52ch}
.sb-pre .sb-pre-eyebrow{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#6b6b73;margin:0 0 6px}
.sb-pre .sb-pre-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:22px;padding:0;list-style:none}
.sb-pre .sb-pre-card{background:#141417;border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:18px 20px}
.sb-pre .sb-pre-tags{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.sb-pre .sb-pre-tags li{font-size:11.5px;color:#3ecf8e;background:rgba(62,207,142,.09);border:1px solid rgba(62,207,142,.18);border-radius:4px;padding:2px 7px}
.sb-pre .sb-pre-steps{margin:22px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}
.sb-pre .sb-pre-steps li{border-top:1px solid rgba(255,255,255,.06);padding:13px 0;display:flex;flex-wrap:wrap;gap:2px 14px;align-items:baseline}
.sb-pre .sb-pre-steps h3{margin:0;font-size:15.5px}
.sb-pre .sb-pre-steps .sb-pre-when{font-size:12px;color:#6b6b73;margin-inline-start:auto;white-space:nowrap}
.sb-pre .sb-pre-steps p{flex:1 1 100%;margin:2px 0 0;font-size:14px}
.sb-pre .sb-pre-docs{margin:14px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px 24px}
.sb-pre .sb-pre-docs li{padding:8px 0;border-top:1px solid rgba(255,255,255,.06);font-size:14.5px}
.sb-pre a{color:#f0892a;text-underline-offset:2px}
@media (prefers-reduced-motion:reduce){.sb-pre *{animation:none!important;transition:none!important}}
</style>
<div class="sb-boot" aria-hidden="true">
<svg viewBox="276 240 700 760" xmlns="http://www.w3.org/2000/svg" focusable="false">
<defs>
<linearGradient id="sbBootSilver" x1="0" y1="0" x2="0.35" y2="1"><stop offset="0" stop-color="#fdfdff"/><stop offset="0.20" stop-color="#e7e7ec"/><stop offset="0.46" stop-color="#c4c4cb"/><stop offset="0.72" stop-color="#a4a4ac"/><stop offset="1" stop-color="#86868d"/></linearGradient>
<linearGradient id="sbBootOrange" x1="0" y1="0" x2="0.25" y2="1"><stop offset="0" stop-color="#ffb84d"/><stop offset="0.27" stop-color="#ff9a33"/><stop offset="0.58" stop-color="#fb7d16"/><stop offset="1" stop-color="#db5d04"/></linearGradient>
</defs>
<path fill="url(#sbBootSilver)" fill-rule="nonzero" d="m 835.26446,352.56633 102.39051,-103.90366 -418.64101,1.00877 c 0,0 -171.69323,1.22309 -222.43455,167.96079 -52.34251,171.99925 77.67556,253.20215 77.67556,253.20215 0,0 35.54922,23.82856 79.77792,31.68982 15.73869,2.39372 79.16695,1.09532 79.16695,1.09532 54.47377,-10.08773 41.40629,-81.22528 -10.65516,-77.67557 C 492.06451,630.5166 372.5156,615.45079 386.86464,469.07968 415.02639,353.31661 520.52712,353.57511 520.52712,353.57511 Z"/>
<path fill="url(#sbBootOrange)" fill-rule="nonzero" d="m 289.24744,881.29522 95.22696,-95.94027 369.13823,1.06997 C 873.15229,774.31964 863.51011,647.63259 863.51011,647.63259 846.7608,546.1216 749.51871,545.49427 749.51871,545.49427 l -232.01791,0.25219 c -37.80546,-8.91638 -37.85435,-49.4299 -37.85435,-49.4299 0,0 -1.56131,-38.07813 40.52401,-46.63785 l 260.62023,-0.7745 c 170.83788,24.60922 185.61432,187.63187 185.61432,187.63187 0,0 18.85523,117.07655 -90.63794,200.89054 l -0.62454,154.4184 -144.79052,-110.68137 z"/>
<path fill="url(#sbBootOrange)" d="m 658.38568,658.74237 a 27.462458,27.462458 0 0 1 -27.43073,27.46244 27.462458,27.462458 0 0 1 -27.49412,-27.39898 27.462458,27.462458 0 0 1 27.36719,-27.52575 27.462458,27.462458 0 0 1 27.55736,27.33536 z"/>
<path fill="url(#sbBootOrange)" d="m 748.42871,659.07971 a 27.462458,27.462458 0 0 1 -27.43073,27.46244 27.462458,27.462458 0 0 1 -27.49412,-27.39898 27.462458,27.462458 0 0 1 27.36719,-27.52575 27.462458,27.462458 0 0 1 27.55736,27.33537 z"/>
</svg>
</div>
<div class="sb-pre">
<div class="sb-pre-in">
<header>
<p class="sb-pre-brand">SecureBit.chat</p>
<h1>Une ligne directe<br>que vous seuls pouvez lire.</h1>
<p class="sb-pre-lead">Les clés sont créées sur votre appareil et échangées directement entre pairs. Aucun compte, aucun serveur ne conserve vos messages.</p>
</header>
<section>
<p class="sb-pre-eyebrow">Ce qui nous distingue</p>
<h2>Pourquoi SecureBit est unique</h2>
<ul class="sb-pre-grid">
<li class="sb-pre-card">
<h3>Cœur de chiffrement en couches</h3>
<p>Échange de clés ECDH P-384, charges utiles en AES-256-GCM, signatures ECDSA et validation ASN.1 complète, réunis en une seule chaîne durcie.</p>
<ul class="sb-pre-tags"><li>ECDH P-384</li><li>AES-256-GCM</li><li>ECDSA</li><li>ASN.1</li></ul>
</li>
<li class="sb-pre-card">
<h3>Pur P2P sur WebRTC</h3>
<p>Les messages passent directement d'un appareil à l'autre par WebRTC. Aucun relais ne retient vos données : le serveur aide seulement deux pairs à se trouver.</p>
<ul class="sb-pre-tags"><li>DTLS 1.3</li><li>Sans relais</li></ul>
</li>
<li class="sb-pre-card">
<h3>Confidentialité persistante parfaite</h3>
<p>Les clés de session tournent en continu et sont jetées après usage : une clé compromise n'ouvre jamais les conversations passées.</p>
<ul class="sb-pre-tags"><li>Clés éphémères</li><li>Rotation automatique</li></ul>
</li>
<li class="sb-pre-card">
<h3>Brouillage du trafic</h3>
<p>La taille des paquets et leur cadence sont complétées et rendues aléatoires, ce qui masque les motifs de métadonnées à quiconque observe la ligne.</p>
<ul class="sb-pre-tags"><li>Remplissage de paquets</li><li>Décalage temporel</li></ul>
</li>
<li class="sb-pre-card">
<h3>Aucune collecte de données</h3>
<p>Aucun compte, aucun journal, aucun message conservé. Il n'y a rien sur un serveur à faire fuiter, à saisir ou à vendre.</p>
<ul class="sb-pre-tags"><li>Sans compte</li><li>Sans journaux</li></ul>
</li>
</ul>
</section>
<section>
<p class="sb-pre-eyebrow">Feuille de route</p>
<h2>L'évolution de SecureBit</h2>
<p>Du premier prototype à un réseau décentralisé résistant au quantique, avec une validation ASN.1 complète à chaque couche.</p>
<ol class="sb-pre-steps">
<li>
<h3>Début du développement</h3>
<span class="sb-pre-when">Début 2025</span>
<p>Idée, prototype et mise en place de l'infrastructure</p>
</li>
<li>
<h3>Version alpha</h3>
<span class="sb-pre-when">Printemps 2025</span>
<p>Première alpha publique : chat simple et échange de clés</p>
</li>
<li>
<h3>Sécurité durcie</h3>
<span class="sb-pre-when">Été 2025</span>
<p>Renforcement de la sécurité et publication de la branche stable</p>
</li>
<li>
<h3>Montée en charge et stabilité</h3>
<span class="sb-pre-when">Automne 2025</span>
<p>Mise à l'échelle du réseau et gains de stabilité</p>
</li>
<li>
<h3>La vie privée d'abord</h3>
<span class="sb-pre-when">Hiver 2025</span>
<p>Priorité à la vie privée : réduire les métadonnées</p>
</li>
<li>
<h3>Enhanced Security Edition</h3>
<span class="sb-pre-when">Fin 2025</span>
<p>Cryptographie de niveau militaire en 18 couches, avec validation ASN.1 complète</p>
</li>
<li>
<h3>Desktop Edition</h3>
<span class="sb-pre-when">Début 2026</span>
<p>Applications de bureau natives pour Windows, macOS et Linux</p>
</li>
<li>
<h3>Voix et appels sécurisés</h3>
<span class="sb-pre-when">Début 2026</span>
<p>Messages vocaux, appels audio et vidéo chiffrés</p>
</li>
<li>
<h3>Communication de groupe</h3>
<span class="sb-pre-when">Maintenant</span>
<p>Discussions de groupe sans renoncer à la vie privée</p>
</li>
<li>
<h3>Mobile Edition</h3>
<span class="sb-pre-when">2e trimestre 2027</span>
<p>Applications natives pour iOS et Android</p>
</li>
<li>
<h3>Édition résistante au quantique</h3>
<span class="sb-pre-when">4e trimestre 2027</span>
<p>Protection contre les ordinateurs quantiques</p>
</li>
<li>
<h3>Réseau décentralisé</h3>
<span class="sb-pre-when">2028</span>
<p>Un réseau entièrement décentralisé</p>
</li>
<li>
<h3>Assistant de confidentialité par IA</h3>
<span class="sb-pre-when">2028+</span>
<p>L'IA au service de la vie privée et de la sécurité</p>
</li>
</ol>
</section>
<section lang="en" dir="ltr">
<p class="sb-pre-eyebrow">Documentation</p>
<ul class="sb-pre-docs">
<li><a href="/docs/" hreflang="en">Documentation</a></li>
<li><a href="/docs/faq/" hreflang="en">Frequently asked questions</a></li>
<li><a href="/docs/architecture/" hreflang="en">Architecture</a></li>
<li><a href="/docs/cryptography/" hreflang="en">Cryptography</a></li>
<li><a href="/docs/descriptor-sbq2/" hreflang="en">SBQ2 — connection descriptor v2</a></li>
<li><a href="/docs/configuration/" hreflang="en">Configuration</a></li>
<li><a href="/docs/calls/" hreflang="en">Voice and video calls</a></li>
<li><a href="/docs/api/" hreflang="en">API Notes</a></li>
<li><a href="/docs/contributing/" hreflang="en">Contributing</a></li>
<li><a href="/docs/use-policy/" hreflang="en">Use policy and limitations</a></li>
</ul>
</section>
<section>
<h2>Construisez l'avenir de la vie privée</h2>
<p>SecureBit grandit grâce à sa communauté. Vos idées et vos retours façonnent l'avenir des communications sécurisées, développées à ciel ouvert, avec une validation ASN.1 complète de bout en bout.</p>
<p><a href="https://github.com/SecureBitChat/securebit-chat" rel="noopener">Dépôt GitHub</a></p>
</section>
</div>
</div>
</div>
<script type="module" src="/dist/app-boot.js?v=1788496655816"></script>
<script type="module" src="/dist/app.js?v=1788496655816"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788496655816"></script>
<script src="/src/pwa/install-prompt.js?v=1788496655816" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788496655816" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788496655816"></script>
</body>
</html>