[{"data":1,"prerenderedAt":743},["ShallowReactive",2],{"navigation_docs":3,"-extension-basics-crypto":380,"-extension-basics-crypto-surround":738},[4,9,41,108,185,312,328,370,375],{"title":5,"path":6,"stem":7,"icon":8},"首页","\u002Fwhat-is-lolia","1.what-is-lolia","i-lucide-house",{"title":10,"icon":11,"path":12,"stem":13,"children":14,"page":40},"开始之前","i-lucide-list-check","\u002Fbefore-start","2.before-start",[15,20,25,30,35],{"title":16,"path":17,"stem":18,"icon":19},"入门阅读","\u002Fbefore-start\u002Fintroduction","2.before-start\u002F1.introduction","i-lucide-book",{"title":21,"path":22,"stem":23,"icon":24},"常见问题","\u002Fbefore-start\u002Ffaq","2.before-start\u002F2.faq","i-lucide-badge-question-mark",{"title":26,"path":27,"stem":28,"icon":29},"实名认证","\u002Fbefore-start\u002Fkyc","2.before-start\u002F3.kyc","i-lucide-user-check",{"title":31,"path":32,"stem":33,"icon":34},"安全提示","\u002Fbefore-start\u002Fsecurity","2.before-start\u002F4.security","i-lucide-shield-alert",{"title":36,"path":37,"stem":38,"icon":39},"大流量内容","\u002Fbefore-start\u002Fbig-traffic-contents","2.before-start\u002F5.big-traffic-contents","i-lucide-zap",false,{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":40},"面板","i-lucide-panels-top-left","\u002Fweb-management","3.web-management",[47,52,66,76,94],{"title":48,"path":49,"stem":50,"icon":51},"仪表盘","\u002Fweb-management\u002Fdashboard","3.web-management\u002F1.dashboard","i-lucide-gauge",{"title":53,"icon":54,"path":55,"stem":56,"children":57,"page":40},"隧道","i-lucide-chevrons-left-right-ellipsis","\u002Fweb-management\u002Ftunnel","3.web-management\u002F2.tunnel",[58,62],{"title":59,"path":60,"stem":61},"隧道管理","\u002Fweb-management\u002Ftunnel\u002Ftunnel-management","3.web-management\u002F2.tunnel\u002F1.tunnel-management",{"title":63,"path":64,"stem":65},"隧道创建","\u002Fweb-management\u002Ftunnel\u002Fcreate-tunnel","3.web-management\u002F2.tunnel\u002F2.create-tunnel",{"title":67,"icon":68,"path":69,"stem":70,"children":71,"page":40},"域名管理","i-lucide-globe-code","\u002Fweb-management\u002Fdomain-management","3.web-management\u002F3.domain-management",[72],{"title":73,"path":74,"stem":75},"域名白名单","\u002Fweb-management\u002Fdomain-management\u002Fwhitelist","3.web-management\u002F3.domain-management\u002F1.whitelist",{"title":77,"icon":78,"path":79,"stem":80,"children":81,"page":40},"OAuth","i-lucide-key-round","\u002Fweb-management\u002Foauth","3.web-management\u002F4.oauth",[82,86,90],{"title":83,"path":84,"stem":85},"应用管理","\u002Fweb-management\u002Foauth\u002Fapp-management","3.web-management\u002F4.oauth\u002F1.app-management",{"title":87,"path":88,"stem":89},"创建应用","\u002Fweb-management\u002Foauth\u002Fcreate-app","3.web-management\u002F4.oauth\u002F2.create-app",{"title":91,"path":92,"stem":93},"授权管理","\u002Fweb-management\u002Foauth\u002Fauthorizations","3.web-management\u002F4.oauth\u002F3.authorizations",{"title":95,"icon":96,"path":97,"stem":98,"children":99,"page":40},"账户设置","i-lucide-user-cog","\u002Fweb-management\u002Fsettings","3.web-management\u002F5.settings",[100,104],{"title":101,"path":102,"stem":103},"基础设置","\u002Fweb-management\u002Fsettings\u002Fsettings","3.web-management\u002F5.settings\u002F1.settings",{"title":105,"path":106,"stem":107},"安全性","\u002Fweb-management\u002Fsettings\u002Fsecurity","3.web-management\u002F5.settings\u002F2.security",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":40},"客户端","i-lucide-laptop","\u002Fclient","4.client",[114,157,171],{"title":115,"icon":116,"path":117,"stem":118,"children":119,"page":40},"图形化客户端","i-lucide-app-window-mac","\u002Fclient\u002Fgui","4.client\u002F1.gui",[120,141,153],{"title":121,"path":122,"stem":123,"children":124,"page":40},"LoliaFrpClient","\u002Fclient\u002Fgui\u002Floliafrpclient","4.client\u002F1.gui\u002F1.loliafrpclient",[125,129,133,137],{"title":126,"path":127,"stem":128},"简介","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fintroduction","4.client\u002F1.gui\u002F1.loliafrpclient\u002F1.introduction",{"title":130,"path":131,"stem":132},"Windows","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fwindows","4.client\u002F1.gui\u002F1.loliafrpclient\u002F2.Windows",{"title":134,"path":135,"stem":136},"Linux","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Flinux","4.client\u002F1.gui\u002F1.loliafrpclient\u002F3.Linux",{"title":138,"path":139,"stem":140},"Android","\u002Fclient\u002Fgui\u002Floliafrpclient\u002Fandroid","4.client\u002F1.gui\u002F1.loliafrpclient\u002F4.Android",{"title":142,"path":143,"stem":144,"children":145,"page":40},"LoliaShizuku","\u002Fclient\u002Fgui\u002Floliashizuku","4.client\u002F1.gui\u002F2.loliashizuku",[146,149],{"title":126,"path":147,"stem":148},"\u002Fclient\u002Fgui\u002Floliashizuku\u002Floliashizuku","4.client\u002F1.gui\u002F2.loliashizuku\u002F1.loliashizuku",{"title":150,"path":151,"stem":152},"快速入门","\u002Fclient\u002Fgui\u002Floliashizuku\u002Fusage","4.client\u002F1.gui\u002F2.loliashizuku\u002F2.usage",{"title":154,"path":155,"stem":156},"Kairo","\u002Fclient\u002Fgui\u002Fkairo","4.client\u002F1.gui\u002F3.kairo",{"title":158,"icon":159,"path":160,"stem":161,"children":162,"page":40},"命令行客户端","i-lucide-square-terminal","\u002Fclient\u002Fcli","4.client\u002F2.cli",[163,167],{"title":164,"path":165,"stem":166},"Lolia CLI","\u002Fclient\u002Fcli\u002Fcli","4.client\u002F2.cli\u002F1.cli",{"title":168,"path":169,"stem":170},"参考","\u002Fclient\u002Fcli\u002Freference","4.client\u002F2.cli\u002F2.reference",{"title":172,"icon":173,"path":174,"stem":175,"children":176,"page":40},"面板客户端","i-lucide-app-window","\u002Fclient\u002Fweb","4.client\u002F3.web",[177,181],{"title":178,"path":179,"stem":180},"MCSManager FRP模板","\u002Fclient\u002Fweb\u002Fmcsm","4.client\u002F3.web\u002F1.mcsm",{"title":182,"path":183,"stem":184},"MSLX 面板插件","\u002Fclient\u002Fweb\u002Fmslx","4.client\u002F3.web\u002F2.mslx",{"title":186,"icon":187,"path":188,"stem":189,"children":190,"page":40},"配置指南","i-lucide-sliders-horizontal","\u002Ftutorials","5.tutorials",[191,210,261,286],{"title":192,"icon":193,"path":194,"stem":195,"children":196,"page":40},"常见应用","i-lucide-toolbox","\u002Ftutorials\u002Fapp","5.tutorials\u002F1.app",[197],{"title":198,"path":199,"stem":200,"children":201,"page":40},"RDP远程桌面","\u002Ftutorials\u002Fapp\u002Frdp","5.tutorials\u002F1.app\u002F1.rdp",[202,206],{"title":203,"path":204,"stem":205},"通用配置","\u002Ftutorials\u002Fapp\u002Frdp\u002Fintroduction","5.tutorials\u002F1.app\u002F1.rdp\u002F1.introduction",{"title":207,"path":208,"stem":209},"以服务模式运行LoliaFRP","\u002Ftutorials\u002Fapp\u002Frdp\u002Fcli-tutorial","5.tutorials\u002F1.app\u002F1.rdp\u002F2.cli-tutorial",{"title":211,"icon":212,"path":213,"stem":214,"children":215,"page":40},"游戏应用","i-lucide-gamepad-2","\u002Ftutorials\u002Fgame","5.tutorials\u002F2.game",[216,257],{"title":217,"path":218,"stem":219,"children":220,"page":40},"Minecraft","\u002Ftutorials\u002Fgame\u002Fminecraft","5.tutorials\u002F2.game\u002F1.minecraft",[221,225,229,233,237,241,245,249,253],{"title":222,"path":223,"stem":224},"Java 版局域网联机","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fmcjavalan","5.tutorials\u002F2.game\u002F1.minecraft\u002F1.mcjavalan",{"title":226,"path":227,"stem":228},"Java 版独立服务器","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fmcjavaserver","5.tutorials\u002F2.game\u002F1.minecraft\u002F2.mcjavaserver",{"title":230,"path":231,"stem":232},"Simple Voice Chat","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fsimplevoicechat","5.tutorials\u002F2.game\u002F1.minecraft\u002F3.simplevoicechat",{"title":234,"path":235,"stem":236},"外置登录联机教程","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fauthlib-injector","5.tutorials\u002F2.game\u002F1.minecraft\u002F4.authlib-injector",{"title":238,"path":239,"stem":240},"基岩版服务器（BDS）","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fbedrock-nethernet","5.tutorials\u002F2.game\u002F1.minecraft\u002F5.bedrock-nethernet",{"title":242,"path":243,"stem":244},"旧版基岩版（RakNet）","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fbedrock-raknet","5.tutorials\u002F2.game\u002F1.minecraft\u002F6.bedrock-raknet",{"title":246,"path":247,"stem":248},"Geyser 互通服","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fgeysermc","5.tutorials\u002F2.game\u002F1.minecraft\u002F7.geysermc",{"title":250,"path":251,"stem":252},"旧版 Geyser（RakNet）","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fgeyser-raknet","5.tutorials\u002F2.game\u002F1.minecraft\u002F8.geyser-raknet",{"title":254,"path":255,"stem":256},"SRV 解析","\u002Ftutorials\u002Fgame\u002Fminecraft\u002Fsrv-record","5.tutorials\u002F2.game\u002F1.minecraft\u002F9.srv-record",{"title":258,"path":259,"stem":260},"星露谷物语多人联机","\u002Ftutorials\u002Fgame\u002Fstardew-valley","5.tutorials\u002F2.game\u002F2.stardew-valley",{"title":262,"icon":263,"path":264,"stem":265,"children":266,"page":40},"网页应用","i-lucide-link-2","\u002Ftutorials\u002Fweb","5.tutorials\u002F3.web",[267,270,274,278,282],{"title":150,"path":268,"stem":269},"\u002Ftutorials\u002Fweb\u002Fquick-start","5.tutorials\u002F3.web\u002F1.quick-start",{"title":271,"path":272,"stem":273},"DNS 配置","\u002Ftutorials\u002Fweb\u002Fdns-config","5.tutorials\u002F3.web\u002F2.dns-config",{"title":275,"path":276,"stem":277},"Apache","\u002Ftutorials\u002Fweb\u002Fapache","5.tutorials\u002F3.web\u002F3.apache",{"title":279,"path":280,"stem":281},"NGINX","\u002Ftutorials\u002Fweb\u002Fnginx","5.tutorials\u002F3.web\u002F4.nginx",{"title":283,"path":284,"stem":285},"获取访客真实IP","\u002Ftutorials\u002Fweb\u002Fget-realip","5.tutorials\u002F3.web\u002F5.get-realip",{"title":287,"icon":288,"path":289,"stem":290,"children":291,"page":40},"进阶配置","i-lucide-file-cog","\u002Ftutorials\u002Fadvanced","5.tutorials\u002F4.advanced",[292,296,300,304,308],{"title":293,"path":294,"stem":295},"配置PROXY protocol","\u002Ftutorials\u002Fadvanced\u002Fproxy-protocol","5.tutorials\u002F4.advanced\u002F1.proxy-protocol",{"title":297,"path":298,"stem":299},"双栈网络配置","\u002Ftutorials\u002Fadvanced\u002Fmixed-v4-v6","5.tutorials\u002F4.advanced\u002F2.mixed-v4-v6",{"title":301,"path":302,"stem":303},"AutoTLS","\u002Ftutorials\u002Fadvanced\u002Fautotls","5.tutorials\u002F4.advanced\u002F3.autotls",{"title":305,"path":306,"stem":307},"多个隧道创建和使用","\u002Ftutorials\u002Fadvanced\u002Fmulti-tunnel","5.tutorials\u002F4.advanced\u002F4.multi-tunnel",{"title":309,"path":310,"stem":311},"使用自己的域名","\u002Ftutorials\u002Fadvanced\u002Fcname","5.tutorials\u002F4.advanced\u002F5.cname",{"title":313,"icon":314,"defaultOpen":40,"path":315,"stem":316,"children":317,"page":40},"开发者","i-lucide-folder-code","\u002Fdevelopers","6.developers",[318,323],{"title":319,"path":320,"stem":321,"icon":322},"LoliaFRP Open API","\u002Fdevelopers\u002Fopenapi","6.developers\u002F1.openapi","i-lucide-webhook",{"title":324,"path":325,"stem":326,"icon":327},"OAuth2 鉴权","\u002Fdevelopers\u002Foauth","6.developers\u002F2.oauth","i-lucide-fingerprint-pattern",{"title":329,"icon":330,"defaultOpen":40,"path":331,"stem":332,"children":333,"page":40},"扩展阅读","i-lucide-book-open-text","\u002Fextension","7.extension",[334,338,360],{"title":126,"path":335,"stem":336,"icon":337},"\u002Fextension\u002Fabout","7.extension\u002F1.about","i-lucide-text-initial",{"title":339,"icon":340,"defaultOpen":40,"path":341,"stem":342,"children":343,"page":40},"相关原理","i-lucide-monitor-cloud","\u002Fextension\u002Fbasics","7.extension\u002F2.basics",[344,348,352,356],{"title":345,"path":346,"stem":347},"frp 的工作基础","\u002Fextension\u002Fbasics\u002Ffrp-base","7.extension\u002F2.basics\u002F1.frp-base",{"title":349,"path":350,"stem":351},"TLS 与证书","\u002Fextension\u002Fbasics\u002Ftls","7.extension\u002F2.basics\u002F2.tls",{"title":353,"path":354,"stem":355},"密码学基础","\u002Fextension\u002Fbasics\u002Fcrypto","7.extension\u002F2.basics\u002F3.crypto",{"title":357,"path":358,"stem":359},"HTTP 虚拟主机","\u002Fextension\u002Fbasics\u002Fhttp-vhost","7.extension\u002F2.basics\u002F4.http-vhost",{"title":361,"icon":362,"defaultOpen":40,"path":363,"stem":364,"children":365,"page":40},"疑难解答","i-lucide-bug-off","\u002Fextension\u002Fapplications","7.extension\u002F3.applications",[366],{"title":367,"path":368,"stem":369},"Minecraft Java SRV与forced hosts搭配","\u002Fextension\u002Fapplications\u002Fminecraft-srv-forced-hosts","7.extension\u002F3.applications\u002F1.minecraft-srv-forced-hosts",{"title":371,"path":372,"stem":373,"icon":374},"社区","\u002Fcommunity","8.community","i-lucide-users",{"title":376,"path":377,"stem":378,"icon":379},"参与贡献","\u002Fcontributing","9.contributing","i-lucide-git-pull-request-arrow",{"id":381,"title":353,"body":382,"description":731,"extension":732,"links":733,"meta":734,"navigation":735,"path":354,"seo":736,"stem":355,"__hash__":737},"docs\u002F7.extension\u002F2.basics\u002F3.crypto.md",{"type":383,"value":384,"toc":719},"minimark",[385,393,398,453,457,461,464,477,480,487,491,502,505,509,512,515,519,522,525,529,536,600,622,637,641,699,703],[386,387,388,389,392],"tip",{},"本文只讲算法，不涉及协议流程与配置。握手各步骤与证书见 ",[390,391,349],"a",{"href":350},"。",[394,395,397],"h2",{"id":396},"_1-两类密码","1. 两类密码",[399,400,401,416],"table",{},[402,403,404],"thead",{},[405,406,407,410,413],"tr",{},[408,409],"th",{},[408,411,412],{},"对称",[408,414,415],{},"非对称",[417,418,419,431,442],"tbody",{},[405,420,421,425,428],{},[422,423,424],"td",{},"密钥",[422,426,427],{},"一把，双方共用",[422,429,430],{},"一对，公钥可公开、私钥自持",[405,432,433,436,439],{},[422,434,435],{},"速度",[422,437,438],{},"快，能处理海量数据",[422,440,441],{},"慢，通常只处理几十字节",[405,443,444,447,450],{},[422,445,446],{},"解决什么",[422,448,449],{},"保密与完整性",[422,451,452],{},"密钥分发与身份",[454,455,456],"p",{},"TLS 的分工很明确：非对称只用来协商会话密钥、并证明服务器身份，真正承运数据的是对称加密。",[394,458,460],{"id":459},"_2-密钥交换","2. 密钥交换",[454,462,463],{},"DH（Diffie-Hellman）让双方各自生成一个私下数值并算出对应的公开值，交换公开值后各算一次，得到同一个共享秘密，而这个秘密从未在链路上传输过。",[454,465,466,467,471,472,476],{},"前缀 ",[468,469,470],"code",{},"E"," 表示 ephemeral，即每次连接都换一对新的临时密钥。由此带来",[473,474,475],"strong",{},"前向保密","：服务器的长期私钥日后泄露，也解不开之前录下的流量，因为当时的临时私钥早已丢弃。",[454,478,479],{},"RSA 密钥交换是另一种做法：客户端自己生成会话密钥，用服务器公钥加密后发过去。只要服务器私钥还在，历史流量就能被解开，因此 TLS 1.3 已经把它移除，只保留 (EC)DHE。",[454,481,482,483,486],{},"ECDH 是同一套运算在椭圆曲线上的形式，参数短、算得快，所以现代部署基本都是 ECDHE；",[468,484,485],{},"DHE","（有限域）仍有实现，但性能差得多。",[394,488,490],{"id":489},"_3-kem","3. KEM",[454,492,493,494,497,498,501],{},"严格说 DH\u002FECDH 属于",[473,495,496],{},"密钥协商","：双方各算一次，结果相同。KEM 是另一种模型——一方用对方的公钥把随机密钥",[473,499,500],{},"封装","成密文，另一方用自己的私钥解封得到同一个密钥。",[454,503,504],{},"两者正在 TLS 1.3 里被拼起来用：后量子的 ML-KEM 与传统的 X25519 组合成混合方案，一条连接同时依赖两种难题的安全性。",[394,506,508],{"id":507},"_4-对称加密与-aead","4. 对称加密与 AEAD",[454,510,511],{},"握手谈定会话密钥后，数据由对称加密承运。TLS 1.3 只允许 AEAD 类算法，如 AES-GCM 与 ChaCha20-Poly1305：一次运算同时给出密文与认证标签，被改过一个字节都会被拒绝。",[454,513,514],{},"TLS 还给每条记录编号，并把序号纳入运算，因此重放、重排、截断都能被发现。",[394,516,518],{"id":517},"_5-密钥派生","5. 密钥派生",[454,520,521],{},"共享秘密不会被直接当作会话密钥。TLS 1.2 把它与双方随机数一起送入 PRF 派生出主密钥；TLS 1.3 用 HKDF，逐步把共享秘密与整段握手记录的哈希扩展开。派生出的不止一把：握手一把、应用数据一把，两个方向再各分开。",[454,523,524],{},"这样每段数据用不同的密钥，某一把泄露不会牵连其他阶段；双方随机数参与其中，也让每次连接的结果都不同。",[394,526,528],{"id":527},"_6-密码套件怎么读","6. 密码套件怎么读",[454,530,531,532,535],{},"TLS 1.2 的套件名由几段拼成，例如 ",[468,533,534],{},"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","：",[399,537,538,548],{},[402,539,540],{},[405,541,542,545],{},[408,543,544],{},"段",[408,546,547],{},"含义",[417,549,550,560,570,580,590],{},[405,551,552,557],{},[422,553,554],{},[468,555,556],{},"TLS",[422,558,559],{},"协议",[405,561,562,567],{},[422,563,564],{},[468,565,566],{},"ECDHE",[422,568,569],{},"密钥交换算法",[405,571,572,577],{},[422,573,574],{},[468,575,576],{},"ECDSA",[422,578,579],{},"认证用的签名算法",[405,581,582,587],{},[422,583,584],{},[468,585,586],{},"AES_128_GCM",[422,588,589],{},"对称加密算法与模式",[405,591,592,597],{},[422,593,594],{},[468,595,596],{},"SHA256",[422,598,599],{},"PRF 使用的哈希",[454,601,602,603,606,607,610,611,613,614,617,618,621],{},"认证段也可能写成 ",[468,604,605],{},"RSA","，如 ",[468,608,609],{},"TLS_ECDHE_RSA_WITH_…","，同样表示签名，具体策略通常是 RSA-PSS；",[468,612,576],{},"、",[468,615,616],{},"ED25519"," 同理，都只表示签名，不表示用它们加密数据。而以 ",[468,619,620],{},"TLS_RSA_WITH_…"," 开头的套件是静态 RSA 密钥交换，TLS 1.3 已移除。",[454,623,624,625,628,629,632,633,636],{},"TLS 1.3 把套件名压到两段，例如 ",[468,626,627],{},"TLS_AES_128_GCM_SHA256","：密钥交换由 ",[468,630,631],{},"supported_groups"," 扩展单独协商，签名算法由 ",[468,634,635],{},"signature_algorithms"," 扩展单独协商，套件名里只剩对称加密与哈希。",[394,638,640],{"id":639},"_7-对照","7. 对照",[399,642,643,653],{},[402,644,645],{},[405,646,647,650],{},[408,648,649],{},"握手里的一步",[408,651,652],{},"用到的密码",[417,654,655,663,671,683,691],{},[405,656,657,660],{},[422,658,659],{},"选版本与密码套件",[422,661,662],{},"无，纯协商",[405,664,665,668],{},[422,666,667],{},"交换临时公钥",[422,669,670],{},"(EC)DHE，或混合 KEM",[405,672,673,676],{},[422,674,675],{},"证明身份",[422,677,678,679,682],{},"证书链验签 + ",[468,680,681],{},"CertificateVerify"," 签名",[405,684,685,688],{},[422,686,687],{},"导出会话密钥",[422,689,690],{},"HKDF \u002F PRF",[405,692,693,696],{},[422,694,695],{},"传输应用数据",[422,697,698],{},"AEAD 对称加密",[394,700,702],{"id":701},"_8-结论","8. 结论",[704,705,706,710,713,716],"ul",{},[707,708,709],"li",{},"非对称负责「谈」，对称负责「运」",[707,711,712],{},"(EC)DHE 的临时密钥带来前向保密，RSA 密钥交换没有，已被 1.3 移除",[707,714,715],{},"现代 TLS 只用 AEAD，并靠记录序号防重放",[707,717,718],{},"套件名就是一句话：用什么协商、用什么证明、用什么加密、用什么派生",{"title":720,"searchDepth":721,"depth":721,"links":722},"",2,[723,724,725,726,727,728,729,730],{"id":396,"depth":721,"text":397},{"id":459,"depth":721,"text":460},{"id":489,"depth":721,"text":490},{"id":507,"depth":721,"text":508},{"id":517,"depth":721,"text":518},{"id":527,"depth":721,"text":528},{"id":639,"depth":721,"text":640},{"id":701,"depth":721,"text":702},"TLS 用到的两类密码：密钥交换与前向保密、AEAD、密钥派生，以及密码套件名字的读法","md",null,{},true,{"title":353,"description":731},"82bUcnT3TMCKBMC5rT8OqpqVyVrJWyzfVfFjYpqmTjA",[739,741],{"title":349,"path":350,"stem":351,"description":740,"children":-1},"TLS 如何证明服务器身份、证书的 SAN 匹配规则、TLS 1.3 的握手流程与双向认证（mTLS）",{"title":357,"path":358,"stem":359,"description":742,"children":-1},"节点如何用一个端口按域名把请求分给不同隧道，以及 Host 与 SNI 的区别",1793537051472]