<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>证书校验 on ZiYang FrontEnd Interview</title><link>https://fe-interview.pangcy.cn/tags/%E8%AF%81%E4%B9%A6%E6%A0%A1%E9%AA%8C/</link><description>Recent content in 证书校验 on ZiYang FrontEnd Interview</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 06 Mar 2025 13:07:39 +0800</lastBuildDate><atom:link href="https://fe-interview.pangcy.cn/tags/%E8%AF%81%E4%B9%A6%E6%A0%A1%E9%AA%8C/index.xml" rel="self" type="application/rss+xml"/><item><title>HTTPS中间人攻击防护</title><link>https://fe-interview.pangcy.cn/docs/network/network-23/</link><pubDate>Tue, 04 Mar 2025 09:31:00 +0000</pubDate><guid>https://fe-interview.pangcy.cn/docs/network/network-23/</guid><description>&lt;h2 id="考察点分析">考察点分析 &lt;a href="#%e8%80%83%e5%af%9f%e7%82%b9%e5%88%86%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;p>&lt;strong>核心能力维度&lt;/strong>：HTTPS安全机制理解、证书体系运作原理、浏览器安全策略实施能力&lt;/p>
&lt;ol>
&lt;li>&lt;strong>中间人攻击原理&lt;/strong>：理解经典MITM攻击手段（如SSL剥离/伪造证书）&lt;/li>
&lt;li>&lt;strong>证书链验证机制&lt;/strong>：掌握证书层级校验、信任锚点验证、域名匹配规则&lt;/li>
&lt;li>&lt;strong>证书吊销校验&lt;/strong>：区分CRL/OCSP校验流程及时效性差异&lt;/li>
&lt;li>&lt;strong>HSTS强制策略&lt;/strong>：理解协议降级防护机制与预加载机制&lt;/li>
&lt;/ol>
&lt;h2 id="技术解析">技术解析 &lt;a href="#%e6%8a%80%e6%9c%af%e8%a7%a3%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;h3 id="关键知识点">关键知识点 &lt;a href="#%e5%85%b3%e9%94%ae%e7%9f%a5%e8%af%86%e7%82%b9" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;p>证书链验证 &amp;gt; OCSP Stapling &amp;gt; HSTS &amp;gt; CRL&lt;/p>
&lt;h3 id="原理剖析">原理剖析 &lt;a href="#%e5%8e%9f%e7%90%86%e5%89%96%e6%9e%90" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;p>&lt;strong>中间人攻击场景&lt;/strong>：&lt;br>
攻击者通过ARP欺骗/DNS劫持将流量导至代理服务器，使用自签名证书解密流量（需用户手动信任假证书），或配合SSL剥离将HTTPS降级为HTTP。&lt;/p>
&lt;p>&lt;strong>证书链验证流程&lt;/strong>：&lt;/p>
&lt;ol>
&lt;li>浏览器获取服务器证书，验证证书有效期/域名匹配&lt;/li>
&lt;li>向上递归验证中间CA证书，直到受信任的根证书库&lt;/li>
&lt;li>验证证书链完整性（证书中指定的issuer与上级证书subject匹配）&lt;/li>
&lt;li>检查证书吊销状态：
&lt;ul>
&lt;li>&lt;strong>CRL&lt;/strong>：下载证书吊销列表（周期性更新，存在时间差）&lt;/li>
&lt;li>&lt;strong>OCSP&lt;/strong>：实时查询证书状态（通过请求OCSP响应器，可能暴露用户隐私）&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>HSTS机制&lt;/strong>：&lt;br>
服务器通过&lt;code>Strict-Transport-Security&lt;/code>响应头声明HTTPS强制策略（包含max-age、includeSubDomains等参数）。浏览器在有效期内自动将HTTP请求转换为HTTPS，并拒绝不安全的证书警告。&lt;/p>
&lt;h3 id="常见误区">常见误区 &lt;a href="#%e5%b8%b8%e8%a7%81%e8%af%af%e5%8c%ba" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>&lt;ol>
&lt;li>认为所有中间人攻击都可被证书校验拦截（忽略用户主动信任恶意证书的情况）&lt;/li>
&lt;li>混淆CRL文件更新周期与OCSP实时查询的差异&lt;/li>
&lt;li>误以为HSTS可完全防御首次访问的中间人攻击（依赖首次安全访问）&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="问题解答">问题解答 &lt;a href="#%e9%97%ae%e9%a2%98%e8%a7%a3%e7%ad%94" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;p>&lt;strong>中间人攻击劫持流程&lt;/strong>：&lt;br>
攻击者通过伪造证书或协议降级，在客户端与服务器之间建立两个独立SSL连接，转发解密后的数据。需要用户忽略证书错误或配合其他攻击手段（如WiFi热点欺诈）。&lt;/p>
&lt;p>&lt;strong>证书链校验流程&lt;/strong>：&lt;/p>
&lt;ol>
&lt;li>浏览器验证服务器证书的域名、有效期、签名&lt;/li>
&lt;li>递归验证中间CA证书，直至信任的根证书&lt;/li>
&lt;li>检查吊销状态：
&lt;ul>
&lt;li>优先使用OCSP实时查询（返回&amp;quot;good&amp;quot;/&amp;ldquo;revoked&amp;quot;状态）&lt;/li>
&lt;li>或下载CRL文件核对序列号&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>HSTS生效流程&lt;/strong>：&lt;/p>
&lt;ol>
&lt;li>服务器返回&lt;code>Strict-Transport-Security&lt;/code>头部（例：&lt;code>max-age=31536000; includeSubDomains&lt;/code>）&lt;/li>
&lt;li>浏览器记录该域名在未来31536000秒内必须使用HTTPS&lt;/li>
&lt;li>后续所有HTTP请求自动转换为HTTPS（地址栏输入亦生效）&lt;/li>
&lt;li>内置HSTS预加载列表可防御首次访问攻击&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="解决方案">解决方案 &lt;a href="#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h2>&lt;h3 id="配置示例nginx">配置示例（Nginx） &lt;a href="#%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8bnginx" class="anchor" aria-hidden="true">&lt;i class="material-icons align-middle">link&lt;/i>&lt;/a>&lt;/h3>


 
 
 

 
 
 
 

 

 &lt;div class="prism-codeblock ">
 &lt;pre id="204b20d" class="language-nginx ">
 &lt;code># 强制启用HSTS
add_header Strict-Transport-Security &amp;#34;max-age=31536000; includeSubDomains&amp;#34; always;

# 启用OCSP Stapling优化
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/full_chain.pem;
resolver 8.8.8.8 valid=300s;&lt;/code>
 &lt;/pre>
 &lt;/div>
&lt;p>&lt;strong>注释说明&lt;/strong>：&lt;/p></description></item></channel></rss>