<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>安全 on Kernel Notes</title><link>https://my-blog.j8465383071.workers.dev/categories/%E5%AE%89%E5%85%A8/</link><description>Recent content in 安全 on Kernel Notes</description><generator>Hugo -- 0.147.7</generator><language>zh-cn</language><lastBuildDate>Mon, 07 Sep 2026 15:30:00 +0800</lastBuildDate><atom:link href="https://my-blog.j8465383071.workers.dev/categories/%E5%AE%89%E5%85%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>安全架构</title><link>https://my-blog.j8465383071.workers.dev/posts/security/1-security-architecture/</link><pubDate>Thu, 11 Jun 2026 10:50:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/1-security-architecture/</guid><description>&lt;h1 id="4-安全架构">4 安全架构&lt;/h1>
&lt;h2 id="41-威胁模型">4.1 威胁模型&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">| STRIDE类别 | 威胁描述 | 针对的生命周期阶段 | 对应安全功能（章节） |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">|------------|----------|------------------|----------------------|
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| **S** 欺骗 | 攻击者伪造合法用户/系统身份 | 访问、传输 | 身份认证、安全传输（TLS/TLCP） |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| **T** 篡改 | 攻击者修改数据或代码 | 传输、计算、存储 | 安全传输、数据防篡改（账本表）、全密态加密、审计日志防篡改 |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| **R** 否认 | 用户否认执行过某操作 | 所有阶段 | 安全审计（不可否认记录） |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| **I** 信息泄露 | 敏感数据被未授权读取 | 访问、传输、计算、存储 | 访问控制、安全传输、透明加密、全密态加密、机密计算、数据脱敏 |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| **D** 拒绝服务 | 攻击者使系统不可用 | 访问、网络 | 网络ACL、SQL防火墙（阻断异常大查询） |
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">| **E** 权限提升 | 普通用户获得更高权限 | 访问、计算 | 访问控制（三权分立、最小权限）、数据库防火墙 |
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">角色&lt;/th>
&lt;th style="text-align: left">动机&lt;/th>
&lt;th style="text-align: left">目标&lt;/th>
&lt;th style="text-align: left">技术&lt;/th>
&lt;th style="text-align: left">分类&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">黑客&lt;/td>
&lt;td style="text-align: left">售卖获利&lt;/td>
&lt;td style="text-align: left">鉴别数据&lt;/td>
&lt;td style="text-align: left">不可信IP登录&lt;/td>
&lt;td style="text-align: left">欺骗&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">内部运维人员&lt;/td>
&lt;td style="text-align: left">勒索获利&lt;/td>
&lt;td style="text-align: left">用户表&lt;/td>
&lt;td style="text-align: left">暴力破解&lt;/td>
&lt;td style="text-align: left">篡改&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">内部研发人员&lt;/td>
&lt;td style="text-align: left">情报窃取&lt;/td>
&lt;td style="text-align: left">系统表&lt;/td>
&lt;td style="text-align: left">凭证重放&lt;/td>
&lt;td style="text-align: left">否认&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">系统维护人员&lt;/td>
&lt;td style="text-align: left">蓄意报复&lt;/td>
&lt;td style="text-align: left">事务日志&lt;/td>
&lt;td style="text-align: left">默认账户攻击&lt;/td>
&lt;td style="text-align: left">信息泄露&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">供应链&lt;/td>
&lt;td style="text-align: left">规避审计&lt;/td>
&lt;td style="text-align: left">审计日志&lt;/td>
&lt;td style="text-align: left">过期账号攻击&lt;/td>
&lt;td style="text-align: left">拒绝服务&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">网络中间人&lt;/td>
&lt;td style="text-align: left">炫耀技能&lt;/td>
&lt;td style="text-align: left">内存数据&lt;/td>
&lt;td style="text-align: left">弱口令攻击&lt;/td>
&lt;td style="text-align: left">权限提升&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">机房管理人员&lt;/td>
&lt;td style="text-align: left">人为过失&lt;/td>
&lt;td style="text-align: left">配置文件&lt;/td>
&lt;td style="text-align: left">内存凭证残留&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">认证耗尽&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">密码泄露&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">数据泄露&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">流量伪造&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">流量重放&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">密钥泄露&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">证书伪造&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">身份伪造&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">未授权访问&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">越权访问&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">权限提升&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">权限滥用&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">磁盘窃取&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">恶意软件&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">系统隔离失效&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">文件篡改&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">日志伪造&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">特权窥探&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">供应链后门&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">内存嗅探&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">调试工具滥用&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">操作抵赖&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">攻击隐匿&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">合规证据缺失&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>攻击者画像&lt;/th>
&lt;th>攻击动机&lt;/th>
&lt;th>攻击阶段&lt;/th>
&lt;th>攻击类型&lt;/th>
&lt;th>攻击目标&lt;/th>
&lt;th>攻击技术（ATT&amp;amp;CK）&lt;/th>
&lt;th>影响的安全域（GB/T 20273）&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>安全功能与标准映射&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>外部渗透测试者&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>欺骗(S)&lt;/td>
&lt;td>认证凭据&lt;/td>
&lt;td>暴力破解(T1110)&lt;/td>
&lt;td>身份鉴别(4.1)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>身份认证；GB/T 20273 4.1；ISO 27001 A.9；NIST IA-5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部恶意DBA&lt;/td>
&lt;td>数据篡改&lt;/td>
&lt;td>武器化&lt;/td>
&lt;td>篡改(T)&lt;/td>
&lt;td>会话令牌&lt;/td>
&lt;td>中间人攻击(T1557)&lt;/td>
&lt;td>传输数据保密性(4.8.2)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>TLS双向认证；GB/T 20273 4.8.2；ISO 27001 A.13.2；NIST SC-8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部开发人员&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>投递&lt;/td>
&lt;td>否认(R)&lt;/td>
&lt;td>数据字典&lt;/td>
&lt;td>账户操纵(T1098)&lt;/td>
&lt;td>安全审计(4.6)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>统一审计；GB/T 20273 4.6；ISO 27001 A.12.4；NIST AU-3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>第三方运维人员&lt;/td>
&lt;td>拒绝服务&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>信息泄露(I)&lt;/td>
&lt;td>用户表数据&lt;/td>
&lt;td>SQL注入(T1190)&lt;/td>
&lt;td>自主访问控制(4.2)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>数据脱敏；GB/T 20273 4.2；PCI DSS 3.2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>网络中间人&lt;/td>
&lt;td>规避审计&lt;/td>
&lt;td>安装&lt;/td>
&lt;td>拒绝服务(D)&lt;/td>
&lt;td>审计日志&lt;/td>
&lt;td>日志清除(T1070)&lt;/td>
&lt;td>用户数据完整性(4.7)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>审计日志防篡改；GB/T 20273 4.7；ISO 27001 A.12.4；NIST AU-9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>云租户（恶意）&lt;/td>
&lt;td>勒索&lt;/td>
&lt;td>命令与控制&lt;/td>
&lt;td>权限提升(E)&lt;/td>
&lt;td>存储过程/函数&lt;/td>
&lt;td>服务器软件组件劫持(T1505)&lt;/td>
&lt;td>强制访问控制(4.4)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>最小权限原则；GB/T 20273 4.4；NIST AC-6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意应用程序&lt;/td>
&lt;td>报复&lt;/td>
&lt;td>目标达成&lt;/td>
&lt;td>-&lt;/td>
&lt;td>备份集&lt;/td>
&lt;td>数据加密（防御绕过）(T1022)&lt;/td>
&lt;td>存储数据保密性(4.8.1)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>透明加密(TDE)；GB/T 20273 4.8.1；ISO 27001 A.10.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意OS管理员&lt;/td>
&lt;td>间谍活动&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>内存中的明文&lt;/td>
&lt;td>进程注入(T1055)&lt;/td>
&lt;td>标记(4.3)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>机密计算(TEE)；NIST SC-3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>物理入侵者&lt;/td>
&lt;td>误操作&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>配置文件&lt;/td>
&lt;td>系统信息发现(T1082)&lt;/td>
&lt;td>可信路径(4.9)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>网络ACL；GB/T 20273 4.9；ISO 27001 A.13.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>身份伪造&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据导出文件&lt;/td>
&lt;td>数据破坏(T1485)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>低&lt;/td>
&lt;td>备份加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>会话劫持&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库链接&lt;/td>
&lt;td>服务停止(T1489)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SQL防火墙&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>索引/分区&lt;/td>
&lt;td>通过API攻击(T1559)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>行级安全(RLS)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>物化视图&lt;/td>
&lt;td>客户端连接劫持(T1184)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>列级加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>同义词&lt;/td>
&lt;td>网络嗅探(T1040)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>三权分立&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>触发器等对象&lt;/td>
&lt;td>创建账户(T1136)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>密钥管理(KMS/HSM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>临时表空间&lt;/td>
&lt;td>数据从本地拉取(T1213)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>全密态执行&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>Undo日志&lt;/td>
&lt;td>禁用安全工具(T1562)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>权限分析工具&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>控制文件&lt;/td>
&lt;td>受信关系利用(T1199)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>监听器/端口&lt;/td>
&lt;td>反向工程(T1598)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SSL证书私钥&lt;/td>
&lt;td>数据加密(自身通讯)(T1573)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库参数&lt;/td>
&lt;td>域策略修改(T1484)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库进程内存&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据快照&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库服务端口&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="gemini">gemini&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">攻击者画像&lt;/th>
&lt;th style="text-align: left">攻击动机&lt;/th>
&lt;th style="text-align: left">攻击阶段 (Kill Chain)&lt;/th>
&lt;th style="text-align: left">攻击类型 (STRIDE)&lt;/th>
&lt;th style="text-align: left">攻击目标 (数据库资产)&lt;/th>
&lt;th style="text-align: left">攻击技术（MITRE ATT&amp;amp;CK）&lt;/th>
&lt;th style="text-align: left">ISO 15408 (CC) 功能组件映射&lt;/th>
&lt;th style="text-align: left">商业标杆对标 (Oracle企业版组件)&lt;/th>
&lt;th style="text-align: left">本内核架构防御机制基线&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">外部黑客/APT组织&lt;/td>
&lt;td style="text-align: left">经济利益(勒索/售卖)&lt;/td>
&lt;td style="text-align: left">侦察 (Recon)&lt;/td>
&lt;td style="text-align: left">欺骗(Spoofing)&lt;/td>
&lt;td style="text-align: left">认证凭据 (Hash/密码)&lt;/td>
&lt;td style="text-align: left">T1190 利用面向公众的应用&lt;/td>
&lt;td style="text-align: left">FIA_UAU.2 (用户鉴别)&lt;/td>
&lt;td style="text-align: left">Oracle Centrally Managed Users (CMU)&lt;/td>
&lt;td style="text-align: left">统一身份认证与多因素(MFA)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">内部恶意超管/DBA&lt;/td>
&lt;td style="text-align: left">商业间谍(数据窃密)&lt;/td>
&lt;td style="text-align: left">武器化 (Weaponization)&lt;/td>
&lt;td style="text-align: left">篡改(Tampering)&lt;/td>
&lt;td style="text-align: left">数据文件(MDF/PGDATA)&lt;/td>
&lt;td style="text-align: left">T1110 暴力破解&lt;/td>
&lt;td style="text-align: left">FCS_COP.1 (密码运算)&lt;/td>
&lt;td style="text-align: left">Oracle Advanced Security (TDE)&lt;/td>
&lt;td style="text-align: left">透明数据加密 (TDE)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">内部研发/测试人员&lt;/td>
&lt;td style="text-align: left">蓄意破坏(报复社会)&lt;/td>
&lt;td style="text-align: left">投递 (Delivery)&lt;/td>
&lt;td style="text-align: left">否认(Repudiation)&lt;/td>
&lt;td style="text-align: left">WAL/Redo/Undo日志&lt;/td>
&lt;td style="text-align: left">T1098 账户操纵&lt;/td>
&lt;td style="text-align: left">FAU_GEN.1 (审计数据产生)&lt;/td>
&lt;td style="text-align: left">Oracle Audit Vault and DB Firewall (AVDF)&lt;/td>
&lt;td style="text-align: left">高性能异步统一审计与防篡改日志&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">供应链/第三方运维&lt;/td>
&lt;td style="text-align: left">掩盖罪行(规避审计)&lt;/td>
&lt;td style="text-align: left">漏洞利用 (Exploitation)&lt;/td>
&lt;td style="text-align: left">信息泄露(Info Disclosure)&lt;/td>
&lt;td style="text-align: left">系统目录/数据字典&lt;/td>
&lt;td style="text-align: left">T1078 有效账户(默认/后门)&lt;/td>
&lt;td style="text-align: left">FDP_ACC.1 (子集访问控制)&lt;/td>
&lt;td style="text-align: left">Oracle Database Vault (Realm特权隔离)&lt;/td>
&lt;td style="text-align: left">强三权分立与安全堡垒(Realm)隔离&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">网络中间人(MITM)&lt;/td>
&lt;td style="text-align: left">炫耀技能(黑客主义)&lt;/td>
&lt;td style="text-align: left">安装/植入 (Installation)&lt;/td>
&lt;td style="text-align: left">拒绝服务(DoS)&lt;/td>
&lt;td style="text-align: left">业务表核心数据&lt;/td>
&lt;td style="text-align: left">T1059 命令行解释器提权&lt;/td>
&lt;td style="text-align: left">FDP_DAU.1 (基本数据鉴别)&lt;/td>
&lt;td style="text-align: left">Oracle Blockchain Tables / Immutable Tables&lt;/td>
&lt;td style="text-align: left">数据防篡改内核账本 (Ledger Hash)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">恶意云租户/邻居&lt;/td>
&lt;td style="text-align: left">误操作(配置失误)&lt;/td>
&lt;td style="text-align: left">命令与控制 (C2)&lt;/td>
&lt;td style="text-align: left">特权提升(Elevation)&lt;/td>
&lt;td style="text-align: left">审计日志记录&lt;/td>
&lt;td style="text-align: left">T1552 访问非安全凭据&lt;/td>
&lt;td style="text-align: left">FMT_SMR.1 (安全管理角色)&lt;/td>
&lt;td style="text-align: left">Oracle Label Security (OLS)&lt;/td>
&lt;td style="text-align: left">强制访问控制 (MAC 安全标签)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">恶意OS管理员&lt;/td>
&lt;td style="text-align: left">资源盗用(挖矿)&lt;/td>
&lt;td style="text-align: left">横向移动 (Lateral Move)&lt;/td>
&lt;td style="text-align: left">侧信道探测(Side-Channel)&lt;/td>
&lt;td style="text-align: left">密钥/证书/Keystore&lt;/td>
&lt;td style="text-align: left">T1040 网络嗅探&lt;/td>
&lt;td style="text-align: left">FDP_RIP.1 (残余信息保护)&lt;/td>
&lt;td style="text-align: left">Oracle Advanced Security (Data Redaction)&lt;/td>
&lt;td style="text-align: left">动态数据脱敏 (DDM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">物理机房入侵者&lt;/td>
&lt;td style="text-align: left">合规性破坏(名誉打击)&lt;/td>
&lt;td style="text-align: left">目标达成 (Actions)&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">存储过程/UDF/扩展插件&lt;/td>
&lt;td style="text-align: left">T1557 中间人攻击&lt;/td>
&lt;td style="text-align: left">FCS_CKM.1 (密码密钥产生与管理)&lt;/td>
&lt;td style="text-align: left">Oracle Key Vault (OKV)&lt;/td>
&lt;td style="text-align: left">两级密钥管理架构 (KMS/HSM对接)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">失陷的业务程序&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">数据库进程内存 (SGA)&lt;/td>
&lt;td style="text-align: left">T1070 清除审计日志&lt;/td>
&lt;td style="text-align: left">FPT_ITT.1 (内部TOE传输保护)&lt;/td>
&lt;td style="text-align: left">Oracle Virtual Private Database (VPD)&lt;/td>
&lt;td style="text-align: left">行级安全 / 列级安全 (RLS / CLS)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">离职/僵尸账号&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">监听器/暴露网络端口&lt;/td>
&lt;td style="text-align: left">T1486 影响数据加密(勒索)&lt;/td>
&lt;td style="text-align: left">FTA_TSE.1 (TOE会话建立)&lt;/td>
&lt;td style="text-align: left">Oracle Data Safe (合规评估与发现)&lt;/td>
&lt;td style="text-align: left">敏感数据发现与分类分级扫描&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">会话令牌/Session&lt;/td>
&lt;td style="text-align: left">T1485 数据破坏(删库)&lt;/td>
&lt;td style="text-align: left">FPT_PHP.3 (抗物理攻击的TSF)&lt;/td>
&lt;td style="text-align: left">Always Encrypted (SQL Server标杆)&lt;/td>
&lt;td style="text-align: left">硬件级机密计算 (TEE/SGX 内核隔离)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">DBLink/跨库链接&lt;/td>
&lt;td style="text-align: left">T1005 收集本地系统数据&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">全密态执行引擎 (内存密态运算)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">物理备份集/快照&lt;/td>
&lt;td style="text-align: left">T1565 数据逻辑操纵&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">全链路 TLS 1.3 / 国密 TLCP 加密通道&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">视图/物化视图/触发器&lt;/td>
&lt;td style="text-align: left">T1184 客户端连接劫持&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">细粒度网络准入 (IP/用户元组控制)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">数据库配置文件&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">内核级 SQL 防火墙 (基于AST白名单)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">临时表空间(Temp)&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;td style="text-align: left">-&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="deepseek">deepseek&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>攻击者画像&lt;/th>
&lt;th>攻击动机&lt;/th>
&lt;th>攻击阶段&lt;/th>
&lt;th>攻击类型 (STRIDE)&lt;/th>
&lt;th>攻击目标&lt;/th>
&lt;th>攻击技术 (ATT&amp;amp;CK)&lt;/th>
&lt;th>影响的安全域 (GB/T 20273-2019)&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>安全功能与标准映射（示例）&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>外部渗透测试者&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>欺骗 (S)&lt;/td>
&lt;td>认证凭据&lt;/td>
&lt;td>暴力破解 (T1110)&lt;/td>
&lt;td>身份鉴别 (4.1)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>多因素认证；GB/T 20273 4.1；ISO 27001 A.8.5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部恶意DBA&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>武器化&lt;/td>
&lt;td>篡改 (T)&lt;/td>
&lt;td>会话令牌&lt;/td>
&lt;td>SQL注入 (T1190)&lt;/td>
&lt;td>自主访问控制 (4.2)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>TLS双向认证；GB/T 20273 4.7.2；NIST SC-8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部开发人员&lt;/td>
&lt;td>数据篡改&lt;/td>
&lt;td>投递&lt;/td>
&lt;td>否认 (R)&lt;/td>
&lt;td>数据字典&lt;/td>
&lt;td>中间人攻击 (T1557)&lt;/td>
&lt;td>强制访问控制 (4.4)&lt;/td>
&lt;td>低&lt;/td>
&lt;td>统一审计；GB/T 20273 4.5；ISO 27001 A.8.15&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>第三方运维人员&lt;/td>
&lt;td>拒绝服务&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>用户表数据&lt;/td>
&lt;td>账户操纵 (T1098)&lt;/td>
&lt;td>安全审计 (4.5)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据脱敏；PCI DSS 3.2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>网络中间人&lt;/td>
&lt;td>规避审计&lt;/td>
&lt;td>安装&lt;/td>
&lt;td>拒绝服务 (D)&lt;/td>
&lt;td>审计日志&lt;/td>
&lt;td>日志清除 (T1070)&lt;/td>
&lt;td>用户数据完整性 (4.6)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>审计日志防篡改；NIST AU-9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意应用程序&lt;/td>
&lt;td>勒索&lt;/td>
&lt;td>命令与控制&lt;/td>
&lt;td>权限提升 (E)&lt;/td>
&lt;td>存储过程/函数&lt;/td>
&lt;td>进程注入 (T1055)&lt;/td>
&lt;td>存储数据保密性 (4.7.1)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>最小权限原则；GB/T 20273 4.4；NIST AC-6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意OS管理员&lt;/td>
&lt;td>报复&lt;/td>
&lt;td>目标达成&lt;/td>
&lt;td>-&lt;/td>
&lt;td>备份集&lt;/td>
&lt;td>服务器软件组件劫持 (T1505)&lt;/td>
&lt;td>传输数据保密性 (4.7.2)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>透明加密 (TDE)；ISO 27001 A.8.24&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>物理入侵者&lt;/td>
&lt;td>间谍活动&lt;/td>
&lt;td>持久化&lt;/td>
&lt;td>-&lt;/td>
&lt;td>内存中的明文&lt;/td>
&lt;td>数据加密（影响）(T1485)&lt;/td>
&lt;td>可信路径 (4.8)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>机密计算 (TEE)；NIST SC-3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>云租户（恶意）&lt;/td>
&lt;td>误操作&lt;/td>
&lt;td>收集&lt;/td>
&lt;td>-&lt;/td>
&lt;td>配置文件&lt;/td>
&lt;td>系统信息发现 (T1082)&lt;/td>
&lt;td>网络安全 (4.9)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>网络ACL；GB/T 20273 4.9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意内部员工&lt;/td>
&lt;td>身份伪造&lt;/td>
&lt;td>渗出&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据导出文件&lt;/td>
&lt;td>服务停止 (T1489)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>备份加密；DLP&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>外部攻击者&lt;/td>
&lt;td>会话劫持&lt;/td>
&lt;td>物理访问&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库链接&lt;/td>
&lt;td>数据破坏 (T1485)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SQL防火墙；连接限制&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部运维人员&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>索引/分区&lt;/td>
&lt;td>通过API攻击 (T1559)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>行级安全 (RLS)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部用户&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>物化视图&lt;/td>
&lt;td>客户端连接劫持 (T1184)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>列级加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>同义词&lt;/td>
&lt;td>网络嗅探 (T1040)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>三权分立&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>触发器等对象&lt;/td>
&lt;td>创建账户 (T1136)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>密钥管理 (KMS/HSM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>临时表空间&lt;/td>
&lt;td>数据从本地拉取 (T1213)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>全密态执行&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>Undo日志&lt;/td>
&lt;td>禁用安全工具 (T1562)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>权限分析工具&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>控制文件&lt;/td>
&lt;td>受信关系利用 (T1199)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>不可变备份&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>监听器/端口&lt;/td>
&lt;td>反向工程 (T1598)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>配置基线检查&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SSL证书私钥&lt;/td>
&lt;td>数据加密(自身通信) (T1573)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>端口隐藏&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库参数&lt;/td>
&lt;td>域策略修改 (T1484)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>内存加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库进程内存&lt;/td>
&lt;td>内存刮削 (T1535)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>快照加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据快照&lt;/td>
&lt;td>数据泄露 (T1213)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>文件系统权限&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库服务端口&lt;/td>
&lt;td>端口扫描 (T1046)&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>攻击者画像&lt;/th>
&lt;th>攻击动机&lt;/th>
&lt;th>攻击阶段 (Kill Chain)&lt;/th>
&lt;th>攻击类型 (STRIDE)&lt;/th>
&lt;th>攻击目标 (数据库资产)&lt;/th>
&lt;th>攻击技术 (ATT&amp;amp;CK)&lt;/th>
&lt;th>影响的安全域 (GB/T 20273-2019)&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>安全功能与标准映射（含商业组件 &amp;amp; 内核防御）&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>外部黑客/APT组织&lt;/td>
&lt;td>经济利益（勒索/售卖）&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>欺骗 (S)&lt;/td>
&lt;td>认证凭据（密码Hash/票据）&lt;/td>
&lt;td>暴力破解 (T1110)&lt;/td>
&lt;td>身份鉴别 (4.1)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>多因素认证；Oracle CMU；ISO 27001 A.8.5；NIST IA-5 → 统一身份认证与MFA内核模块&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>网络中间人&lt;/td>
&lt;td>会话劫持&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>篡改 (T)&lt;/td>
&lt;td>会话令牌/Cookie&lt;/td>
&lt;td>中间人攻击 (T1557)&lt;/td>
&lt;td>传输数据保密性 (4.7.2)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>TLS双向认证；Oracle Advanced Security；GB/T 20273 4.7.2；NIST SC-8 → 全链路TLS 1.3/国密TLCP加密通道&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部恶意DBA&lt;/td>
&lt;td>商业间谍（数据窃密）&lt;/td>
&lt;td>武器化&lt;/td>
&lt;td>否认 (R)&lt;/td>
&lt;td>数据字典/系统编目&lt;/td>
&lt;td>账户操纵 (T1098)&lt;/td>
&lt;td>安全审计 (4.5)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>统一审计+防篡改日志；Oracle Audit Vault；GB/T 20273 4.5；ISO 27001 A.8.15 → 高性能异步审计与只读日志内核&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>第三方运维人员&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>投递&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>业务核心表数据&lt;/td>
&lt;td>SQL注入 (T1190)&lt;/td>
&lt;td>自主访问控制 (4.2)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>SQL防火墙+静态脱敏；Oracle AVDF；PCI DSS 3.2 → 内核级AST白名单SQL防火墙&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意内部员工&lt;/td>
&lt;td>规避审计&lt;/td>
&lt;td>安装&lt;/td>
&lt;td>篡改 (T)&lt;/td>
&lt;td>审计日志记录&lt;/td>
&lt;td>日志清除 (T1070)&lt;/td>
&lt;td>用户数据完整性 (4.6)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>审计日志防篡改（只读表空间）；Oracle Blockchain Table；NIST AU-9 → 内核防篡改账本（Ledger Hash）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>云租户（恶意邻居）&lt;/td>
&lt;td>勒索&lt;/td>
&lt;td>命令与控制&lt;/td>
&lt;td>权限提升 (E)&lt;/td>
&lt;td>存储过程/函数/包&lt;/td>
&lt;td>服务器软件组件劫持 (T1505)&lt;/td>
&lt;td>强制访问控制 (4.4)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>最小权限+代码签名；Oracle Database Vault；NIST AC-6 → 强三权分立与Realm特权隔离&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意应用程序&lt;/td>
&lt;td>报复&lt;/td>
&lt;td>目标达成&lt;/td>
&lt;td>拒绝服务 (D)&lt;/td>
&lt;td>物理备份集/快照&lt;/td>
&lt;td>数据破坏 (T1485)&lt;/td>
&lt;td>存储数据保密性 (4.7.1)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>不可变备份+离线存储；Oracle RMAN；ISO 27001 A.8.13 → 备份加密与防删除兜底策略&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意OS管理员&lt;/td>
&lt;td>间谍活动&lt;/td>
&lt;td>横向移动&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>数据库进程内存(SGA/PGA)&lt;/td>
&lt;td>进程注入/内存刮削 (T1055/T1535)&lt;/td>
&lt;td>用户数据保密性 (4.7.1)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>机密计算(TEE/SGX)；Oracle Database 23ai Secure Enclaves；NIST SC-3 → 内存密态运算引擎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>物理入侵者&lt;/td>
&lt;td>误操作/物理破坏&lt;/td>
&lt;td>物理访问&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>配置文件(spfile/pg_hba)&lt;/td>
&lt;td>系统信息发现 (T1082)&lt;/td>
&lt;td>可信路径 (4.8)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>文件系统权限+配置加密；Oracle Data Safe；GB/T 20273 4.8；ISO 27001 A.8.1 → 内核可信路径与完整性校验&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>离职/僵尸账号&lt;/td>
&lt;td>身份伪造&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>欺骗 (S)&lt;/td>
&lt;td>数据库链接(DBLink)&lt;/td>
&lt;td>有效账户滥用 (T1078)&lt;/td>
&lt;td>身份鉴别 (4.1)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>账户生命周期管理；Oracle CMU；ISO 27001 A.8.2 → 动态权限回收与实时拦截&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>失陷的业务程序&lt;/td>
&lt;td>数据泄露&lt;/td>
&lt;td>渗出&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>敏感数据列（身份证/手机号）&lt;/td>
&lt;td>通过API攻击 (T1559)&lt;/td>
&lt;td>存储数据保密性 (4.7.1)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>动态数据脱敏+行级安全；Oracle VPD/OLS；ISO 27001 A.8.26 → 列级加密(CLS)与行级安全(RLS)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部运维人员&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>索引/分区/物化视图&lt;/td>
&lt;td>网络嗅探 (T1040)&lt;/td>
&lt;td>网络安全 (4.9)&lt;/td>
&lt;td>低&lt;/td>
&lt;td>加密通信+网络ACL；Oracle CMAN；GB/T 20273 4.9；ISO 27001 A.8.20 → 细粒度网络准入控制&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>供应链/第三方开发&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>持久化&lt;/td>
&lt;td>权限提升 (E)&lt;/td>
&lt;td>触发器/UDF/扩展插件&lt;/td>
&lt;td>创建账户 (T1136)&lt;/td>
&lt;td>强制访问控制 (4.4)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>权限分析+代码审查；Oracle Database Vault；NIST AC-6 → 插件签名验证与默认拒绝策略&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部恶意DBA&lt;/td>
&lt;td>掩盖罪行&lt;/td>
&lt;td>目标达成&lt;/td>
&lt;td>篡改 (T)&lt;/td>
&lt;td>Undo/Redo/WAL日志&lt;/td>
&lt;td>禁用安全工具 (T1562)&lt;/td>
&lt;td>用户数据完整性 (4.6)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>防篡改日志+权限分析；Oracle Audit Vault；ISO 27001 A.8.15 → 写入只读日志流与篡改即报警&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>云租户（恶意）&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>欺骗 (S)&lt;/td>
&lt;td>控制文件/密码文件&lt;/td>
&lt;td>受信关系利用 (T1199)&lt;/td>
&lt;td>身份鉴别 (4.1)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>网络隔离+强认证；Oracle MFA；GB/T 20273 4.1；NIST IA-5 → 基于TEE的密钥保护&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>外部攻击者&lt;/td>
&lt;td>勒索&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>拒绝服务 (D)&lt;/td>
&lt;td>数据库监听器/服务端口&lt;/td>
&lt;td>服务停止 (T1489)&lt;/td>
&lt;td>网络安全 (4.9)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>端口隐藏+SQL防火墙；Oracle CMAN；ISO 27001 A.8.22 → 内核级连接限流与抗DDoS&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>网络中间人&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>SSL证书私钥/Keystore&lt;/td>
&lt;td>数据加密(自身通信) (T1573)&lt;/td>
&lt;td>传输数据保密性 (4.7.2)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>HSM/KMS保护私钥；Oracle Key Vault；NIST SC-12 → 两级密钥管理架构&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部恶意DBA&lt;/td>
&lt;td>规避审计&lt;/td>
&lt;td>安装&lt;/td>
&lt;td>篡改 (T)&lt;/td>
&lt;td>数据库参数(init.ora)&lt;/td>
&lt;td>域策略修改 (T1484)&lt;/td>
&lt;td>安全审计 (4.5)&lt;/td>
&lt;td>高&lt;/td>
&lt;td>配置基线检查+变更审计；Oracle AVDF；CIS 基线 → 参数修改自动回滚与告警&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意内部员工&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>收集&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>临时表空间/临时文件&lt;/td>
&lt;td>数据从本地拉取 (T1213)&lt;/td>
&lt;td>存储数据保密性 (4.7.1)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>全密态执行+临时文件加密；Always Encrypted；ISO 27001 A.8.24 → 全密态查询处理引擎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>物理入侵者&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>渗出&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>数据快照/克隆副本&lt;/td>
&lt;td>数据泄露 (T1213)&lt;/td>
&lt;td>存储数据保密性 (4.7.1)&lt;/td>
&lt;td>中&lt;/td>
&lt;td>快照加密+访问审计；Oracle RMAN；ISO 27001 A.8.12 → 存储级加密与快照防激活&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>外部渗透测试者&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>信息泄露 (I)&lt;/td>
&lt;td>数据库服务端口/监听器&lt;/td>
&lt;td>端口扫描 (T1046)&lt;/td>
&lt;td>网络安全 (4.9)&lt;/td>
&lt;td>低&lt;/td>
&lt;td>防火墙策略+IPS；Oracle CMAN；GB/T 20273 4.9 → 端口敲门与隐身技术&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="chatgpt">chatgpt&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>攻击者画像&lt;/th>
&lt;th>攻击动机&lt;/th>
&lt;th>攻击阶段&lt;/th>
&lt;th>攻击类型&lt;/th>
&lt;th>攻击目标&lt;/th>
&lt;th>攻击技术&lt;/th>
&lt;th>影响安全域（GB/T 20273）&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>安全功能与标准映射&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>外部攻击者&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>机密性攻击&lt;/td>
&lt;td>用户凭据&lt;/td>
&lt;td>暴力破解（T1110）&lt;/td>
&lt;td>身份鉴别（4.1）&lt;/td>
&lt;td>高&lt;/td>
&lt;td>身份认证；GB/T 20273 4.1；ISO 27001 A.9；ISO 15408 FIA&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部恶意DBA&lt;/td>
&lt;td>数据篡改&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>完整性攻击&lt;/td>
&lt;td>会话令牌&lt;/td>
&lt;td>中间人攻击（T1557）&lt;/td>
&lt;td>传输数据保密性（4.8.2）&lt;/td>
&lt;td>中&lt;/td>
&lt;td>TLS双向认证；GB/T 20273 4.8.2；ISO 27001 A.13.2；NIST SC-8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部开发人员&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>执行&lt;/td>
&lt;td>否认攻击&lt;/td>
&lt;td>数据字典&lt;/td>
&lt;td>账户操纵（T1098）&lt;/td>
&lt;td>安全审计（4.6）&lt;/td>
&lt;td>高&lt;/td>
&lt;td>统一审计；GB/T 20273 4.6；ISO 27001 A.12.4；NIST AU-3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>第三方运维人员&lt;/td>
&lt;td>拒绝服务&lt;/td>
&lt;td>利用&lt;/td>
&lt;td>信息泄露攻击&lt;/td>
&lt;td>用户表数据&lt;/td>
&lt;td>SQL注入（T1190）&lt;/td>
&lt;td>自主访问控制（4.2）&lt;/td>
&lt;td>高&lt;/td>
&lt;td>数据脱敏；GB/T 20273 4.2；PCI DSS 3.2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>网络中间人&lt;/td>
&lt;td>规避审计&lt;/td>
&lt;td>安装&lt;/td>
&lt;td>可用性攻击&lt;/td>
&lt;td>审计日志&lt;/td>
&lt;td>日志清除（T1070）&lt;/td>
&lt;td>用户数据完整性（4.7）&lt;/td>
&lt;td>高&lt;/td>
&lt;td>审计日志防篡改；GB/T 20273 4.7；ISO 27001 A.12.4；NIST AU-9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>云租户&lt;/td>
&lt;td>勒索&lt;/td>
&lt;td>命令与控制&lt;/td>
&lt;td>权限提升攻击&lt;/td>
&lt;td>存储过程/函数&lt;/td>
&lt;td>服务器组件劫持（T1505）&lt;/td>
&lt;td>强制访问控制（4.4）&lt;/td>
&lt;td>中&lt;/td>
&lt;td>最小权限原则；GB/T 20273 4.4；NIST AC-6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意应用程序&lt;/td>
&lt;td>报复&lt;/td>
&lt;td>目标达成&lt;/td>
&lt;td>机密性攻击&lt;/td>
&lt;td>备份集&lt;/td>
&lt;td>数据加密防绕过（T1022）&lt;/td>
&lt;td>存储数据保密性（4.8.1）&lt;/td>
&lt;td>高&lt;/td>
&lt;td>透明加密(TDE)；GB/T 20273 4.8.1；ISO 27001 A.10.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意操作系统管理员&lt;/td>
&lt;td>间谍活动&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>内存明文&lt;/td>
&lt;td>进程注入（T1055）&lt;/td>
&lt;td>标记（4.3）&lt;/td>
&lt;td>高&lt;/td>
&lt;td>机密计算(TEE)；NIST SC-3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>物理入侵者&lt;/td>
&lt;td>误操作&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>配置文件&lt;/td>
&lt;td>系统信息发现（T1082）&lt;/td>
&lt;td>可信路径（4.9）&lt;/td>
&lt;td>中&lt;/td>
&lt;td>网络ACL；GB/T 20273 4.9；ISO 27001 A.13.1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>身份伪造&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据导出文件&lt;/td>
&lt;td>数据破坏（T1485）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>低&lt;/td>
&lt;td>备份加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>会话劫持&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库链接&lt;/td>
&lt;td>服务停止（T1489）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SQL防火墙&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>索引/分区&lt;/td>
&lt;td>通过API攻击（T1559）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>行级安全(RLS)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>物化视图&lt;/td>
&lt;td>客户端连接劫持（T1184）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>列级加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>同义词&lt;/td>
&lt;td>网络嗅探（T1040）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>三权分立&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>触发器等对象&lt;/td>
&lt;td>创建账户（T1136）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>密钥管理(KMS/HSM)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>临时表空间&lt;/td>
&lt;td>数据从本地拉取（T1213）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>全密态执行&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>Undo日志&lt;/td>
&lt;td>禁用安全工具（T1562）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>权限分析工具&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>控制文件&lt;/td>
&lt;td>受信关系利用（T1199）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>监听器/端口&lt;/td>
&lt;td>反向工程（T1598）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SSL证书私钥&lt;/td>
&lt;td>数据加密（自身通讯）（T1573）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库参数&lt;/td>
&lt;td>域策略修改（T1484）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库进程内存&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据快照&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库服务端口&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h1 id="关系数据库安全威胁维度字典多维去重--结构化版">关系数据库安全威胁维度字典（多维去重 · 结构化版）&lt;/h1>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>攻击者画像&lt;/th>
&lt;th>攻击动机&lt;/th>
&lt;th>攻击阶段&lt;/th>
&lt;th>攻击类型&lt;/th>
&lt;th>攻击目标&lt;/th>
&lt;th>攻击技术&lt;/th>
&lt;th>影响安全域（GB/T 20273 / ISO 15408）&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>安全功能与标准映射&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>外部攻击者&lt;/td>
&lt;td>数据窃取&lt;/td>
&lt;td>侦察&lt;/td>
&lt;td>机密性攻击&lt;/td>
&lt;td>用户凭据&lt;/td>
&lt;td>暴力破解（T1110）&lt;/td>
&lt;td>身份鉴别（4.1）&lt;/td>
&lt;td>高&lt;/td>
&lt;td>身份认证 / MFA&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部恶意DBA&lt;/td>
&lt;td>数据篡改&lt;/td>
&lt;td>初始访问&lt;/td>
&lt;td>完整性攻击&lt;/td>
&lt;td>会话令牌&lt;/td>
&lt;td>SQL注入（T1190）&lt;/td>
&lt;td>自主访问控制（4.2）&lt;/td>
&lt;td>中&lt;/td>
&lt;td>访问控制（RBAC/RLS）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>内部开发人员&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>执行&lt;/td>
&lt;td>可用性攻击&lt;/td>
&lt;td>数据字典&lt;/td>
&lt;td>中间人攻击（T1557）&lt;/td>
&lt;td>标记（4.3）&lt;/td>
&lt;td>低&lt;/td>
&lt;td>三权分立&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>第三方运维人员&lt;/td>
&lt;td>拒绝服务&lt;/td>
&lt;td>持久化&lt;/td>
&lt;td>不可否认性攻击&lt;/td>
&lt;td>用户表数据&lt;/td>
&lt;td>账户操纵（T1098）&lt;/td>
&lt;td>强制访问控制（4.4）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>最小权限&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>网络中间人&lt;/td>
&lt;td>勒索&lt;/td>
&lt;td>权限提升&lt;/td>
&lt;td>-&lt;/td>
&lt;td>索引/分区&lt;/td>
&lt;td>日志清除（T1070）&lt;/td>
&lt;td>安全审计（4.6）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>审计日志防篡改&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>云租户&lt;/td>
&lt;td>报复&lt;/td>
&lt;td>防御规避&lt;/td>
&lt;td>-&lt;/td>
&lt;td>物化视图&lt;/td>
&lt;td>进程注入（T1055）&lt;/td>
&lt;td>用户数据完整性（4.7）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>统一审计&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意应用程序&lt;/td>
&lt;td>间谍活动&lt;/td>
&lt;td>凭据获取&lt;/td>
&lt;td>-&lt;/td>
&lt;td>同义词&lt;/td>
&lt;td>服务器组件劫持（T1505）&lt;/td>
&lt;td>存储数据保密性（4.8.1）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>透明加密（TDE）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>恶意操作系统管理员&lt;/td>
&lt;td>规避审计&lt;/td>
&lt;td>内部侦察&lt;/td>
&lt;td>-&lt;/td>
&lt;td>存储过程/函数&lt;/td>
&lt;td>数据加密防绕过（T1022）&lt;/td>
&lt;td>传输数据保密性（4.8.2）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>TLS / 双向认证&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>物理入侵者&lt;/td>
&lt;td>误操作&lt;/td>
&lt;td>横向移动&lt;/td>
&lt;td>-&lt;/td>
&lt;td>触发器等对象&lt;/td>
&lt;td>系统信息发现（T1082）&lt;/td>
&lt;td>可信路径（4.9）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>网络ACL&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>离职/僵尸账号&lt;/td>
&lt;td>身份伪造&lt;/td>
&lt;td>数据收集&lt;/td>
&lt;td>-&lt;/td>
&lt;td>临时表空间&lt;/td>
&lt;td>通过API攻击（T1559）&lt;/td>
&lt;td>FIA / FDP / FAU / FMT / FCS / FPT&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SQL防火墙&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>自动化攻击工具&lt;/td>
&lt;td>会话劫持&lt;/td>
&lt;td>数据外传&lt;/td>
&lt;td>-&lt;/td>
&lt;td>Undo日志&lt;/td>
&lt;td>客户端连接劫持（T1184）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>行级安全（RLS）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>影响/破坏&lt;/td>
&lt;td>-&lt;/td>
&lt;td>控制文件&lt;/td>
&lt;td>创建账户（T1136）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>列级安全（CLS）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>监听器/端口&lt;/td>
&lt;td>数据从本地拉取（T1213）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据脱敏&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>SSL证书私钥&lt;/td>
&lt;td>禁用安全工具（T1562）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>密钥管理（KMS/HSM）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库参数&lt;/td>
&lt;td>受信关系利用（T1199）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>全密态执行&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库进程内存&lt;/td>
&lt;td>反向工程（T1598）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>机密计算（TEE）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据快照&lt;/td>
&lt;td>数据加密（自身通讯）（T1573）&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据分类分级&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>数据库服务端口&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>配置基线检查&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="42-防御模型">4.2 防御模型&lt;/h2>
&lt;h3 id="一访问安全">一、访问安全&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>威胁ID&lt;/th>
&lt;th>威胁描述&lt;/th>
&lt;th>STRIDE&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>缓解的安全功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>T-ACS-01&lt;/td>
&lt;td>弱口令爆破或默认账户攻击&lt;/td>
&lt;td>S&lt;/td>
&lt;td>高&lt;/td>
&lt;td>身份认证（密码策略、账户锁定、MFA）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-ACS-02&lt;/td>
&lt;td>重放攻击（抓取认证报文后重放）&lt;/td>
&lt;td>S&lt;/td>
&lt;td>中&lt;/td>
&lt;td>身份认证（Challenge-Response、Kerberos时间戳）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-ACS-03&lt;/td>
&lt;td>从不可信IP或恶意主机连接&lt;/td>
&lt;td>S/D&lt;/td>
&lt;td>中&lt;/td>
&lt;td>网络ACL（IP白名单）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-ACS-04&lt;/td>
&lt;td>SQL注入攻击绕过权限检查&lt;/td>
&lt;td>E&lt;/td>
&lt;td>高&lt;/td>
&lt;td>SQL防火墙（SQL白名单）、最小权限原则&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-ACS-05&lt;/td>
&lt;td>内部人员滥用合法权限（如DBA偷看数据）&lt;/td>
&lt;td>I/E&lt;/td>
&lt;td>高&lt;/td>
&lt;td>访问控制（三权分立、行级安全）、数据脱敏&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-ACS-06&lt;/td>
&lt;td>权限过度授予导致横向越权&lt;/td>
&lt;td>E&lt;/td>
&lt;td>高&lt;/td>
&lt;td>访问控制（RBAC、最小权限）、权限分析工具&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-ACS-07&lt;/td>
&lt;td>用户否认执行了某项敏感操作&lt;/td>
&lt;td>R&lt;/td>
&lt;td>高&lt;/td>
&lt;td>安全审计（统一审计、细粒度审计）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="二传输安全">二、传输安全&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>威胁ID&lt;/th>
&lt;th>威胁描述&lt;/th>
&lt;th>STRIDE&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>缓解的安全功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>T-TRP-01&lt;/td>
&lt;td>网络嗅探窃听数据库通信&lt;/td>
&lt;td>I&lt;/td>
&lt;td>高&lt;/td>
&lt;td>安全传输（TLS 1.3、国密TLCP）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-TRP-02&lt;/td>
&lt;td>中间人攻击（MITM）篡改或劫持会话&lt;/td>
&lt;td>T/S&lt;/td>
&lt;td>高&lt;/td>
&lt;td>安全传输（证书双向验证、防降级攻击）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-TRP-03&lt;/td>
&lt;td>会话劫持后模拟合法用户&lt;/td>
&lt;td>S&lt;/td>
&lt;td>高&lt;/td>
&lt;td>安全传输（会话加密、绑定认证）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="三计算安全">三、计算安全&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>威胁ID&lt;/th>
&lt;th>威胁描述&lt;/th>
&lt;th>STRIDE&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>缓解的安全功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>T-CPT-01&lt;/td>
&lt;td>数据库管理员或恶意进程在内存中读取敏感数据&lt;/td>
&lt;td>I&lt;/td>
&lt;td>高&lt;/td>
&lt;td>全密态加密、机密计算（TEE）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-CPT-02&lt;/td>
&lt;td>通过侧信道攻击（如Cache时间）推断数据&lt;/td>
&lt;td>I&lt;/td>
&lt;td>中-高&lt;/td>
&lt;td>机密计算（恒定时间执行）、全密态加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-CPT-03&lt;/td>
&lt;td>SQL执行计划中泄露敏感值（如错误消息、执行计划）&lt;/td>
&lt;td>I&lt;/td>
&lt;td>中&lt;/td>
&lt;td>数据脱敏（返回结果遮盖）、错误消息泛化&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-CPT-04&lt;/td>
&lt;td>攻击者调用加密函数进行暴力破解或穷举&lt;/td>
&lt;td>I/D&lt;/td>
&lt;td>中&lt;/td>
&lt;td>加密函数（密钥强度限制、防暴力调用策略）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-CPT-05&lt;/td>
&lt;td>云环境下虚拟机管理器直接读取数据库进程内存&lt;/td>
&lt;td>I&lt;/td>
&lt;td>高&lt;/td>
&lt;td>机密计算（TEE内执行、加密内存）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-CPT-06&lt;/td>
&lt;td>已授权用户通过脱敏绕过机制看到原始数据&lt;/td>
&lt;td>I&lt;/td>
&lt;td>中&lt;/td>
&lt;td>数据脱敏（权限校验、防绕过）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="四存储安全">四、存储安全&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>威胁ID&lt;/th>
&lt;th>威胁描述&lt;/th>
&lt;th>STRIDE&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>缓解的安全功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>T-STR-01&lt;/td>
&lt;td>攻击者窃取磁盘或备份介质，绕过数据库直接读取数据文件&lt;/td>
&lt;td>I&lt;/td>
&lt;td>高&lt;/td>
&lt;td>透明加密（TDE）、备份加密&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-STR-02&lt;/td>
&lt;td>攻击者或恶意OS篡改数据文件中的数据块&lt;/td>
&lt;td>T&lt;/td>
&lt;td>高&lt;/td>
&lt;td>数据防篡改（哈希链、账本表）、块级校验&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-STR-03&lt;/td>
&lt;td>未授权用户通过文件系统直接拷贝数据文件&lt;/td>
&lt;td>I&lt;/td>
&lt;td>高&lt;/td>
&lt;td>透明加密（TDE）+ 文件权限保护&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-STR-04&lt;/td>
&lt;td>备份介质丢失导致数据泄露&lt;/td>
&lt;td>I&lt;/td>
&lt;td>高&lt;/td>
&lt;td>透明加密（备份加密）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-STR-05&lt;/td>
&lt;td>密钥管理不当（硬编码、弱密钥、不轮换）导致加密失效&lt;/td>
&lt;td>I/T&lt;/td>
&lt;td>高&lt;/td>
&lt;td>密钥管理（KMS、HSM、自动轮换）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-STR-06&lt;/td>
&lt;td>敏感数据未被识别（未分类分级）导致保护缺失&lt;/td>
&lt;td>I&lt;/td>
&lt;td>高&lt;/td>
&lt;td>数据发现（自动扫描、分类分级）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="五合法合规">五、合法合规&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>威胁ID&lt;/th>
&lt;th>威胁描述&lt;/th>
&lt;th>STRIDE&lt;/th>
&lt;th>风险等级&lt;/th>
&lt;th>缓解的安全功能&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>T-AUD-01&lt;/td>
&lt;td>攻击者或恶意管理员删除/篡改审计日志以掩盖痕迹&lt;/td>
&lt;td>T/R&lt;/td>
&lt;td>高&lt;/td>
&lt;td>审计日志防篡改（只写一次、WORM存储、加密）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-AUD-02&lt;/td>
&lt;td>审计日志被未授权读取（泄露用户行为）&lt;/td>
&lt;td>I&lt;/td>
&lt;td>中&lt;/td>
&lt;td>审计日志加密存储、访问控制&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-AUD-03&lt;/td>
&lt;td>审计数据量过大导致性能下降或日志溢出&lt;/td>
&lt;td>D&lt;/td>
&lt;td>中&lt;/td>
&lt;td>统一审计（条件审计、采样审计）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>T-AUD-04&lt;/td>
&lt;td>合规性检查时无法证明对敏感数据的控制措施&lt;/td>
&lt;td>R&lt;/td>
&lt;td>高&lt;/td>
&lt;td>合规对标（等保、ISO、GDPR）、审计记录完整性&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="43-安全功能">4.3 安全功能&lt;/h2>
&lt;h3 id="一访问安全-1">一、访问安全&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">身份认证、访问控制（自主访问控制、强制访问控制、角色访问控制（三权分立）、行级访问控制）
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="二传输安全-1">二、传输安全&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">SSL
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="三计算安全-1">三、计算安全&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">加密函数、全密态、机密计算、动态脱敏
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="四存储安全-1">四、存储安全&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">透明加密、防篡改
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="五合法合规-1">五、合法合规&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">安全审计、密钥管理
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>一、接入安全&lt;br>
1. 网络防火墙&lt;br>
- 不可信IP登录&lt;br>
2. 身份认证&lt;br>
暴力破解&lt;br>
凭证重放&lt;br>
默认账户攻击&lt;br>
过期账号攻击&lt;br>
弱口令攻击&lt;br>
内存凭证残留&lt;br>
认证耗尽&lt;br>
密码泄露&lt;br>
二、传输安全&lt;br>
3. 安全传输&lt;br>
数据泄露&lt;br>
流量伪造&lt;br>
流量重放&lt;br>
会话密钥泄露&lt;br>
证书伪造&lt;br>
身份伪造&lt;br>
三、访问安全&lt;br>
4. 访问控制&lt;br>
未授权访问&lt;br>
越权访问&lt;br>
权限提升&lt;br>
权限滥用&lt;br>
权限提升&lt;/p></description></item><item><title>传统安全 1 密码学</title><link>https://my-blog.j8465383071.workers.dev/posts/security/1-1-cryptography/</link><pubDate>Tue, 21 Jan 2025 13:55:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/1-1-cryptography/</guid><description>&lt;h1 id="1-密码学综述">1 密码学综述&lt;/h1>
&lt;p>本文主要总结常见的密码算法与协议，并不详细介绍原理&lt;/p>
&lt;ul>
&lt;li>密码算法
&lt;ul>
&lt;li>对称密码算法&lt;/li>
&lt;li>非对称密码算法&lt;/li>
&lt;li>哈希算法&lt;/li>
&lt;li>完整性校验算法&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>其他算法
&lt;ul>
&lt;li>随机数生成算法&lt;/li>
&lt;li>密钥派生算法&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h1 id="2-密码算法">2 密码算法&lt;/h1>
&lt;h2 id="21-对称加密算法">2.1 对称加密算法&lt;/h2>
&lt;p>对称加密算法的基本原理是，输入明文、密钥，对明文进行分组，对每组明文进行多轮线性、非线性运算，比如异或、代换等，得到密文。&lt;br>
常见的对称加密算法如下：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>算法&lt;/th>
&lt;th>发布时间&lt;/th>
&lt;th>分组长度&lt;/th>
&lt;th>密钥长度&lt;/th>
&lt;th>算法&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>DES&lt;/td>
&lt;td>1977&lt;/td>
&lt;td>64&lt;/td>
&lt;td>64&lt;/td>
&lt;td>16 x 置换（E扩展、异或、代换、P置换）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>3DES&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>IDEA&lt;/td>
&lt;td>1990&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>AES&lt;/td>
&lt;td>2001&lt;/td>
&lt;td>128&lt;/td>
&lt;td>128/192/256&lt;/td>
&lt;td>10/12/14 x 矩阵运算(字节代换、行移位、列混合、异或)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SM4&lt;/td>
&lt;td>2012&lt;/td>
&lt;td>128&lt;/td>
&lt;td>128&lt;/td>
&lt;td>32 x 分组运算（异或、代换、移位）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SM1&lt;/td>
&lt;td>-&lt;/td>
&lt;td>128&lt;/td>
&lt;td>128&lt;/td>
&lt;td>未公开&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SM7&lt;/td>
&lt;td>-&lt;/td>
&lt;td>128&lt;/td>
&lt;td>128&lt;/td>
&lt;td>未公开&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>在实现加密的过程中，还有几个基础知识：&lt;/p>
&lt;ul>
&lt;li>密钥扩展：加密时，会迭代很多轮，每一轮都用1个轮密钥。1个原始密钥，扩展为多个的轮密钥。&lt;/li>
&lt;li>加密模式：一个原始明文，分为多个明文组，组与组之间的组合方式如下：
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>模式&lt;/th>
&lt;th>中文&lt;/th>
&lt;th>描述&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>ECB&lt;/td>
&lt;td>电子密码本&lt;/td>
&lt;td>不同的明文块，用相同的密钥&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CBC&lt;/td>
&lt;td>密码分组链接&lt;/td>
&lt;td>上1密文块，与下一明文块异或&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CTR&lt;/td>
&lt;td>计数器模式&lt;/td>
&lt;td>密钥加密计数器生成密钥流，密文块与密钥流异或&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CFB&lt;/td>
&lt;td>密码反馈模式&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>OFB&lt;/td>
&lt;td>输出反馈模式&lt;/td>
&lt;td>与CFB类似&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ul>
&lt;p>常见算法的具体实现原理如下：&lt;/p></description></item><item><title>传统安全 3 网络安全</title><link>https://my-blog.j8465383071.workers.dev/posts/security/1-3-network-attack/</link><pubDate>Tue, 21 Jan 2025 13:55:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/1-3-network-attack/</guid><description>&lt;h4 id="网络欺骗---50">网络欺骗 - 50%&lt;/h4>
&lt;ul>
&lt;li>
&lt;p>概述：局域网内，结合数据传播特点，伪造数据，欺骗机器网卡&lt;/p>
&lt;/li>
&lt;li>
&lt;p>模型：&lt;/p>
&lt;ul>
&lt;li>
&lt;p>主机：维护ARP缓存，内容为 [IP:MAC]&lt;/p>
&lt;/li>
&lt;li>
&lt;p>协议：ARP：Address Resolution Protol：根据IP获取MAC&lt;/p>
&lt;/li>
&lt;li>
&lt;p>主机网卡：&lt;/p>
&lt;ul>
&lt;li>网卡工作模式：
&lt;ul>
&lt;li>混杂：接收所有数据&lt;/li>
&lt;li>广播：接收dest_addr为广播地址的数据&lt;/li>
&lt;li>多播：接收dest_addr为多播地址的数据&lt;/li>
&lt;li>单播：接收dest_addr为本机地址的数据&lt;/li>
&lt;li>链路层：需要MAC地址&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>交换机&lt;/p>
&lt;ul>
&lt;li>分类：二层、三层、四层交换机&lt;/li>
&lt;li>二层交换机：根据MAC，找到端口，发送数据，维护MAC缓存，内容为 [MAC:端口]&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>示意图&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl"> 帧&lt;span class="o">[&lt;/span>mac&lt;span class="o">][&lt;/span>ip&lt;span class="o">]&lt;/span> 帧&lt;span class="o">[&lt;/span>mac&lt;span class="o">][&lt;/span>ip&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">[&lt;/span>主机1&lt;span class="o">]&lt;/span> -----------&amp;gt; &lt;span class="o">[&lt;/span>交换机&lt;span class="o">]&lt;/span> -------------&amp;gt; &lt;span class="o">[&lt;/span>主机2&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">|&lt;/span> IP &lt;span class="p">|&lt;/span> MAC &lt;span class="p">|&lt;/span> &lt;span class="p">|&lt;/span> 端口 &lt;span class="p">|&lt;/span> MAC &lt;span class="p">|&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">|&lt;/span> IP &lt;span class="p">|&lt;/span> MAC &lt;span class="p">|&lt;/span> &lt;span class="p">|&lt;/span> 端口 &lt;span class="p">|&lt;/span> MAC &lt;span class="p">|&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>攻击方式：&lt;/p>
&lt;ul>
&lt;li>1 攻击机：发送大量 虚假MAC 的帧，占满交换机缓存，让交换机广播数据&lt;/li>
&lt;li>2 攻击机：发送虚假的ARP：欺骗局域网内的主机&lt;/li>
&lt;li>3 受害机：把数据发到错误的地方，比如攻击机&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>解决：&lt;/p>
&lt;ul>
&lt;li>预防：主机静态ARP表、进制ARP&lt;/li>
&lt;li>检测：看某台主机的ARP缓存，判断是否有主机发送大量ARP包&lt;/li>
&lt;li>检测：看无通信主机的ARP缓存，检测是否缓存了ARP包&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="信息收集---ok">信息收集 - ok&lt;/h4>
&lt;ul>
&lt;li>概述：在进行攻击之前，收集受害者的信息&lt;/li>
&lt;li>攻击方式：
&lt;ul>
&lt;li>主机状态
&lt;ol>
&lt;li>ICMP Echo攻击：发送ICMP Echo包，如果回复，则主机开启&lt;/li>
&lt;li>Non-Echo ICMP：发送其他类型的ICMP包，如果回复，则主机开启&lt;/li>
&lt;li>IP异常包头：发送异常IP包（无效字段、错误分片、静止分片），判断主机返回信息&lt;/li>
&lt;li>TCP扫描&lt;/li>
&lt;li>UDP扫描&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>操作系统版本
&lt;ol>
&lt;li>被动栈指纹识别：嗅探，收集网络中数据包，判断IP的TTL、TOS、DF和TCP 的Windows-size等特征&lt;/li>
&lt;li>主动栈指纹识别：TCP三次握手，ACK序号相等还是加一&lt;/li>
&lt;li>TCP ISN取样：向目标主机多次握手，多次取样返回的ISN&lt;/li>
&lt;li>ICMP包错误信息发送速率：向目标主机连续发送大量icmp错误包&lt;/li>
&lt;li>ICP消息引用：向目标主机发送ICMP错误包，判断返回的错误引用长度&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>端口
&lt;ol>
&lt;li>TCP 连接（开放）：tcp三次握手后，tcp反向ident协议可查看：对方进程pid和角色&lt;/li>
&lt;li>TCP SYN（半开放）：发送tcp syn包，端口关闭：返回rst，开启：返回syn+ack&lt;/li>
&lt;li>TCP FIN（隐蔽）：发送fin包，关闭：返回rst，开启：无返回&lt;/li>
&lt;li>TCP Xmax（隐蔽）：发送fin、urg、push标记的包，关闭：返回rst，开启：返回&lt;/li>
&lt;li>TCP NULL （隐蔽）：发送关闭无标记包&lt;/li>
&lt;li>FTP PROXY （隐藏）：请求ftp服务向目标主机建立连接&lt;/li>
&lt;li>UDP：发送UDP包，关闭：ICMP port unreachable，开启：无返回&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>软件版本&lt;/li>
&lt;li>漏洞
&lt;ol>
&lt;li>操作系统漏洞：基于漏洞库，扫描CGI漏洞、POP3漏洞、FTP漏洞、SSH漏洞等&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="拒绝服务---ok">拒绝服务 - ok&lt;/h4>
&lt;ul>
&lt;li>
&lt;p>概述：合法用户无法访问服务&lt;/p></description></item><item><title>传统安全 4 防火墙</title><link>https://my-blog.j8465383071.workers.dev/posts/security/1-4-firewall/</link><pubDate>Tue, 21 Jan 2025 13:55:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/1-4-firewall/</guid><description>&lt;h1 id="1-netfilter">1 netfilter&lt;/h1>
&lt;h2 id="11-netfilter-架构">1.1 netfilter 架构&lt;/h2>
&lt;h2 id="12-netfilter-编程">1.2 netfilter 编程&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-cpp" data-lang="cpp">&lt;span class="line">&lt;span class="cl">&lt;span class="k">struct&lt;/span> &lt;span class="nc">nf_hook_state&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">unsigned&lt;/span> &lt;span class="kt">int&lt;/span> &lt;span class="n">hook&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">thresh&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">u_int8_t&lt;/span> &lt;span class="n">pf&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">net_device&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">in&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">net_device&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">out&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">sock&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">sk&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">net&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">net&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">list_head&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">hook_list&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="n">okfn&lt;/span>&lt;span class="p">)(&lt;/span>&lt;span class="k">struct&lt;/span> &lt;span class="nc">net&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">struct&lt;/span> &lt;span class="nc">sock&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="k">struct&lt;/span> &lt;span class="nc">sk_buff&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">};&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cm">/* 回调函数 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">typedef&lt;/span> &lt;span class="kt">unsigned&lt;/span> &lt;span class="kt">int&lt;/span> &lt;span class="nf">nf_hookfn&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">void&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">priv&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">sk_buff&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">skb&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">const&lt;/span> &lt;span class="k">struct&lt;/span> &lt;span class="nc">nf_hook_state&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">state&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cm">/* 回调函数返回值 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define NF_DROP 0
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define NF_ACCEPT 1
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define NF_STOLEN 2
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define NF_QUEUE 3
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define NF_REPEAT 4
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define NF_STOP 5
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cm">/* 向内核注册回调函数 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">struct&lt;/span> &lt;span class="nc">nf_hook_ops&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">list_head&lt;/span> &lt;span class="n">list&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* 链表成员 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">nf_hookfn&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">hook&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* 回调函数 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">struct&lt;/span> &lt;span class="nc">module&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">owner&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">pf&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* 协议簇 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">hooknum&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* NF_ARP_IN, NF_ARP_OUT */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">priority&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="cm">/* 优先级 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cm">/* 协议簇 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define AF_UNSPEC 0
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define AF_UNIX 1
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define AF_LOCAL 1
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define AF_INET 2 &lt;/span>&lt;span class="cm">/* IP */&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define AF_INET6 10 &lt;/span>&lt;span class="cm">/* IPV6 */&lt;/span>&lt;span class="cp">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">#define AF_LLC 26
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cp">&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cm">/* 注册 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">void&lt;/span> &lt;span class="nf">nf_register_hooks&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">struct&lt;/span> &lt;span class="nc">nf_hook_ops&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">ops_arr&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="kt">int&lt;/span> &lt;span class="n">arr_len&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">module_init&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">arp_hook_init&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>参考：netfilter结构体：&lt;a href="https://www.cnblogs.com/ink-white/p/16818769.html">https://www.cnblogs.com/ink-white/p/16818769.html&lt;/a>&lt;/li>
&lt;li>参考：netfilter构造报文：&lt;a href="https://www.cnblogs.com/ink-white/p/16816464.html">https://www.cnblogs.com/ink-white/p/16816464.html&lt;/a>&lt;/li>
&lt;li>参考：netfilter捕获arp：&lt;a href="https://blog.csdn.net/fuyuande/article/details/79772134">https://blog.csdn.net/fuyuande/article/details/79772134&lt;/a>&lt;/li>
&lt;/ul>
&lt;h1 id="2-iptables">2 iptables&lt;/h1>
&lt;h2 id="21-iptables-命令">2.1 iptables 命令&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1 查看所有规则&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables --list -n
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables --list -t &lt;span class="o">[&lt;/span>filter/mangle/nat/raw&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2 规则管理&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables &lt;span class="o">[&lt;/span>操作&lt;span class="o">]&lt;/span> &lt;span class="o">[&lt;/span>链名&lt;span class="o">]&lt;/span> &lt;span class="o">[&lt;/span>动作&lt;span class="o">]&lt;/span> &lt;span class="o">[&lt;/span>过滤条件&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 操作&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -A : 新增规则，添加至末尾
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -I : 新增规则，添加到指定位置
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -D : 删除规则
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -R : 替换规则
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 链名&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> PREROUTING
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> INPUT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> OUTPT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> FORWARD
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 动作&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -j ACCEPT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -j DROP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -j REJECT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -j SNAT
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 过滤条件&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -s 0.0.0.0 : 源IP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -sport &lt;span class="m">100&lt;/span> : 源端口
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -d 1.1.1.1 : 目标IP
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -dport &lt;span class="m">100&lt;/span> : 目标端口
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -p icmp/tcp/udp : 协议类型
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -p icmp --icmp-type &lt;span class="m">8&lt;/span> : ping
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -i etho : 数据接收网口
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -o eth1 : 数据发送网口
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -m 其他参数
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -m mac --mac-source 00:00:00:00:01
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -m owner --uid-owner &lt;span class="m">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -m owner --pid-owner &lt;span class="m">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> -m state --state &lt;span class="o">[&lt;/span>NEW, RELATED, ESTABLISHED, INVALID&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3 启动与停止 [ location: /etc/init.d/iptables ]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables start
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables stop
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables restart
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 4 批量操作&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables -F &lt;span class="c1"># 清空规则&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables -X &lt;span class="c1"># 清空用户规则&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables -Z &lt;span class="c1"># 清空计数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 5 保存规则 [ storage: /etc/sysconfig/iptables ]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">iptables save
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="3-kkwall">3 kkwall&lt;/h1>
&lt;h2 id="31-命令">3.1 命令&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1 过滤&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1.1 过滤ip&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwall filter -sip 10.10.10.10
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwall accept -dip 10.10.10.10
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1.2 过滤端口&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwall filter -sport &lt;span class="m">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwall accept -dport &lt;span class="m">100&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwall filter -dport all
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1.2 过滤协议&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwal filter -protol tcp/icmp/udp/igmp
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3 入侵检测&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3.1 防 arp 欺骗&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 网关固定mac&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwal &lt;span class="nb">set&lt;/span> mac 0.0.0.0/00:00:00:00:01
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 短时间内，大量arp报文&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3.2 端口扫描&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 设置端口白名单，如果报文目标端口在白名单外的端口，为异常报文&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">kkwal &lt;span class="nb">set&lt;/span> ports 22,80
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 检测所有tcp状态，识别所有syn和fin扫描&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3.3 拒绝服务&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 系统漏洞：&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># ping of death: 超长icmp包 63336， 分片发送 -&amp;gt; 丢弃&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># tear drop: 重复的IP分片 -&amp;gt; 丢弃&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 有限资源&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># smurf: 短时间接收到大量icmp echo包 -&amp;gt; 全丢弃&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># tcp syn flood: 短时间，大量半开请求&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># tcp syn land: tcp src_addr和dst_addr都是自己&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># http flood: http请求&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-c" data-lang="c">&lt;span class="line">&lt;span class="cl">&lt;span class="k">typedef&lt;/span> &lt;span class="k">struct&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span> &lt;span class="n">ArpHdr&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">typedef&lt;/span> &lt;span class="k">struct&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span> &lt;span class="n">IpHdr&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">typedef&lt;/span> &lt;span class="k">struct&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span> &lt;span class="n">TcpHdr&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">typedef&lt;/span> &lt;span class="k">struct&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kt">int&lt;/span> &lt;span class="n">type&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">IpHdr&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">iphdr&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">TcpHdr&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">tcphdr&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span> &lt;span class="n">Fragment&lt;/span>&lt;span class="p">;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="cm">/* */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kt">void&lt;/span> &lt;span class="nf">detecte_trick&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ArpHdr&lt;/span> &lt;span class="o">*&lt;/span>&lt;span class="n">arp&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ArpItem&lt;/span> &lt;span class="n">staticarp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">arp_list_find&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">arp&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">mac&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">arp&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="n">dst_ip&lt;/span> &lt;span class="o">!=&lt;/span> &lt;span class="n">staticarp&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">printf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;arp trick&amp;#34;&lt;/span>&lt;span class="p">);&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>参考：iptables常用命令 &lt;a href="https://blog.csdn.net/shiner_chen/article/details/132104300">https://blog.csdn.net/shiner_chen/article/details/132104300&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>传统安全 5 数据库加密</title><link>https://my-blog.j8465383071.workers.dev/posts/security/1-5-database-encryption/</link><pubDate>Tue, 21 Jan 2025 13:55:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/1-5-database-encryption/</guid><description>&lt;h1 id="1-数据库加密的背景">1 数据库加密的背景&lt;/h1>
&lt;h2 id="11-数据库安全机制">1.1 数据库安全机制&lt;/h2>
&lt;p>应用将数据发送给数据库后，数据库组织数据，将数据存储在文件中，并提供一系列安全机制，保护数据安全。比如：&lt;/p>
&lt;p>&lt;img alt="dbsec" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/1-5-database-encryption/dbsec.png">&lt;/p>
&lt;ul>
&lt;li>安全传输：基于TLS等安全协议，保证数据在应用与数据库之间传输的机密性、完整性等，避免攻击者对传输中的数据进行窃听、伪造、篡改等&lt;/li>
&lt;li>身份认证：基于IP、口令、证书等鉴别用户身份，避免攻击者非法访问数据库&lt;/li>
&lt;li>访问控制：通过多种访问控制机制，限制攻击者对数据库对象的的访问范围&lt;/li>
&lt;li>安全审计：记录攻击者在数据库中执行的各项操作&lt;/li>
&lt;li>数据脱敏：对隐私数据库进行脱敏处理，避免攻击者查看数据库中的隐私数据&lt;/li>
&lt;li>数据防篡改：基于区块链等技术，记录数据变化情况，识别攻击者非法篡改磁盘上的数据库文件&lt;/li>
&lt;/ul>
&lt;h2 id="12-数据泄露问题">1.2 数据泄露问题&lt;/h2>
&lt;p>在很多针对数据库的攻击行为中，攻击者可绕过上述数据库安全机制，直接从磁盘窃取数据，造成数据泄露问题。&lt;br>
为了规避此类问题，有效的方案是对数据进行加密，使攻击者仅能从磁盘获取数据密文，无法解密数据，从而解决数据泄露问题。&lt;/p>
&lt;h2 id="13-数据库加密方案分类">1.3 数据库加密方案分类&lt;/h2>
&lt;p>数据库加密方案较多，本博客仅介绍一些常见的，且适用于大部分场景的加密方案。&lt;/p>
&lt;h3 id="一按加密位置分类">一、按加密位置分类&lt;/h3>
&lt;p>首先，按加密位置分类，可分为以下6种：&lt;/p>
&lt;p>&lt;img alt="dbenc" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/1-5-database-encryption/dbenc.png">&lt;/p>
&lt;p>各方案的基本原理如下：&lt;/p>
&lt;ol>
&lt;li>应用加密：应用先将数据加密，再使用SQL语句，将数据密文存储至数据库&lt;/li>
&lt;li>全密态加密：数据库驱动识别并加密SQL语法中的数据，同时自动解密SQL查询结果。部分数据库产品提供此功能&lt;/li>
&lt;li>网关或代理加密：在应用与数据库之间的中继节点中，比如代理或网关中，通过解析网络流量，自动识别与加解密流量中的数据，包括SQL语法中的数据与SQL查询结果。很多云服务、安全厂商提供此服务&lt;/li>
&lt;li>加密函数：数据库内置加密函数或存储过程，应用可通过SQL语法主动调用加密函数。大部分数据库产品提供此功能&lt;/li>
&lt;li>透明加密：数据库将数据存储至磁盘前，自动加密数据，数据库从磁盘读取数据时，自动解密数据。大部分数据库产品提供此功能&lt;/li>
&lt;li>磁盘加密：操作系统处理磁盘读写请求时，自动加密与解密读写到的数据。部分操作系统或云存储服务提供此功能&lt;/li>
&lt;/ol>
&lt;h3 id="二按加密定义方式分类">二、按加密定义方式分类&lt;/h3>
&lt;p>上述加密方案中，按应用是否主动感知加密过程，可将其分为非自动加密与自动加密。&lt;/p>
&lt;ul>
&lt;li>
&lt;p>非自动加密&lt;br>
以应用加密为例，用户加密数据的流程如下：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- 1 首先，定义表
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">c2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 2 假设需向t1中存储数据 (1, &amp;#39;data1&amp;#39;)，应用需要先将数据加密，在通过SQL语法将加密后的数据存储至数据库
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- 3 存储数据
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">INSERT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">INTO&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">VALUES&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;encrypted[1]&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;encrypted[data1]&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 4 查询数据时，查询结果为数据密文，数据无法直接使用
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- 查询结果为：(&amp;#39;encrypted[1]&amp;#39;, &amp;#39;encrypted[data1]&amp;#39;)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- 5 应用需自行解密查询结果，最终解密后得到原始数据 (1, &amp;#39;data1&amp;#39;)
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>此类加密方案中，每次涉及数据读写操作时，都需要主动进行加密与解密，操作复杂。&lt;/p></description></item><item><title>数据库安全 0 postgresql表级透明加密</title><link>https://my-blog.j8465383071.workers.dev/posts/security/3-2-postgresql-tde/</link><pubDate>Tue, 21 Jan 2025 13:55:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/3-2-postgresql-tde/</guid><description>&lt;ol>
&lt;li>&lt;a href="#1-%E7%89%B9%E6%80%A7%E8%83%8C%E6%99%AF">1 特性背景&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%88">2 实现方案&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#2-1-%E7%B3%BB%E7%BB%9F%E8%A1%A8">2.1 系统表&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#1-pg-key-info-%E5%AF%86%E9%92%A5%E4%BF%A1%E6%81%AF">1. pg_key_info 密钥信息&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-pg-key-data-%E5%AF%86%E9%92%A5%E6%95%B0%E6%8D%AE">2. pg_key_data 密钥数据&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-pg-encryption-%E5%8A%A0%E5%AF%86%E5%AF%B9%E8%B1%A1">3. pg_encryption 加密对象&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#2-2-%E5%AE%9A%E4%B9%89%E8%A1%A8">2.2 定义表&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-3-%E5%AE%9A%E4%B9%89%E8%A1%A8%E5%8A%A0%E5%AF%86">2.3 定义表加密&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-4-%E6%93%8D%E4%BD%9C%E8%A1%A8">2.4 操作表&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-5-%E7%AE%A1%E7%90%86%E8%A1%A8%E5%8A%A0%E5%AF%86">2.5 管理表加密&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-6-%E7%AE%A1%E7%90%86%E4%B8%BB%E5%AF%86%E9%92%A5">2.6 管理主密钥&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-7-%E7%AE%A1%E7%90%86%E6%95%B0%E6%8D%AE%E5%AF%86%E9%92%A5">2.7 管理数据密钥&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-8-%E7%AE%A1%E7%90%86%E5%8A%A0%E5%AF%86%E5%AE%9A%E4%B9%89">2.8 管理加密定义&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-8-%E6%9C%AA%E6%9D%A5%E8%AE%A1%E5%88%92">2.8 未来计划&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E4%B8%80%E3%80%81%E5%8A%9F%E8%83%BD%E8%A1%A5%E5%85%85">一、功能补充&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BA%8C%E3%80%81%E8%AF%AD%E6%B3%95%E5%A4%8D%E7%94%A8">二、语法复用&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#3-%E5%85%B3%E9%94%AE%E8%AE%BE%E8%AE%A1">3 关键设计&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#3-1-%E6%A0%BC%E5%BC%8F%E8%AE%BE%E8%AE%A1">3.1 格式设计&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-2-%E6%B5%81%E7%A8%8B%E8%AE%BE%E8%AE%A1">3.2 流程设计&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E6%95%B4%E4%BD%93%E6%B5%81%E7%A8%8B">整体流程&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8A%A0%E5%AF%86%E7%B2%92%E5%BA%A6">加密粒度&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8A%A0%E5%AF%86%E6%97%B6%E6%9C%BA">加密时机&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8A%A0%E5%AF%86%E5%88%A4%E6%96%AD">加密判断&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AF%86%E9%92%A5%E5%AD%98%E5%82%A8">密钥存储&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%A7%A3%E5%AF%86%E6%97%B6%E6%9C%BA">解密时机&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%A7%A3%E5%AF%86%E5%88%A4%E6%96%AD">解密判断&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%AF%86%E9%92%A5%E6%9D%A5%E6%BA%90">密钥来源&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#3-3-%E5%85%B6%E4%BB%96%E8%AE%BE%E8%AE%A1">3.3 其他设计&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-2-%E4%B8%BB%E5%A4%87%E5%AF%86%E9%92%A5%E5%90%8C%E6%AD%A5">3.2 主备密钥同步&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#4-%E7%89%B9%E6%80%A7%E6%BA%90%E7%A0%81">4 特性源码&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#4-1-%E5%8A%9F%E8%83%BD%E6%A6%82%E8%A7%88">4.1 功能概览&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E5%9F%BA%E6%9C%AC%E5%8A%9F%E8%83%BD%E7%AF%87">基本功能篇&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%AB%98%E7%BA%A7%E5%8A%9F%E8%83%BD%E7%AF%87">高级功能篇&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8A%A0%E5%BC%BA%E7%AF%87">加强篇&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#4-2-%E6%96%B0%E5%A2%9E%E7%B3%BB%E7%BB%9F%E8%A1%A8-pg-key-info">4.2 新增系统表 pg_key_info&lt;/a>&lt;/li>
&lt;li>&lt;a href="#4-2-%E6%96%B0%E5%A2%9E%E7%B3%BB%E7%BB%9F%E8%A1%A8-pg-key-data">4.2 新增系统表 pg_key_data&lt;/a>&lt;/li>
&lt;li>&lt;a href="#4-3-%E6%96%B0%E5%A2%9E%E8%AF%AD%E6%B3%95-CREATE-KEY">4.3 新增语法 CREATE KEY&lt;/a>&lt;/li>
&lt;li>&lt;a href="#4-4-%E6%96%B0%E5%A2%9E%E8%AF%AD%E6%B3%95-CREATE-TABLE-protect-x3D-data-key">4.4 新增语法 CREATE TABLE .. (protect=$data_key)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#4-5-%E5%AF%B9%E5%8A%A0%E5%AF%86%E5%AF%B9%E8%B1%A1%E7%9A%84%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E5%8A%A0%E5%AF%86">4.5 对加密对象的数据进行加密&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#%E5%8F%82%E8%80%83">参考&lt;/a>&lt;/li>
&lt;/ol>
&lt;h1 id="1-特性背景">1 特性背景&lt;/h1>
&lt;h1 id="2-实现方案">2 实现方案&lt;/h1>
&lt;h2 id="21-系统表">2.1 系统表&lt;/h2>
&lt;h3 id="1-pg_key_info-密钥信息">1. pg_key_info 密钥信息&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>keyoid&lt;/th>
&lt;th>keyname&lt;/th>
&lt;th>type&lt;/th>
&lt;th>alrotithm&lt;/th>
&lt;th>storage&lt;/th>
&lt;th>access&lt;/th>
&lt;th>protect&lt;/th>
&lt;th>create_time&lt;/th>
&lt;th>round&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>1&lt;/td>
&lt;td>mk_1&lt;/td>
&lt;td>master_key&lt;/td>
&lt;td>any&lt;/td>
&lt;td>localkms&lt;/td>
&lt;td>path=./keyfile&lt;/td>
&lt;td>$pass1&lt;/td>
&lt;td>2024/02/01 13:01:01&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>2&lt;/td>
&lt;td>dk_1&lt;/td>
&lt;td>date_key&lt;/td>
&lt;td>aes_256_cbc&lt;/td>
&lt;td>database&lt;/td>
&lt;td>m100.d100.b1.i2&lt;/td>
&lt;td>mk1&lt;/td>
&lt;td>2024/02/01 13:01:01&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="2-pg_key_data-密钥数据">2. pg_key_data 密钥数据&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>oid&lt;/th>
&lt;th>keydata&lt;/th>
&lt;th>algorithm&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>3&lt;/td>
&lt;td>abcd1234&lt;/td>
&lt;td>aes_256&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="3-pg_encryption-加密对象">3. pg_encryption 加密对象&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>type&lt;/th>
&lt;th>name&lt;/th>
&lt;th>oid&lt;/th>
&lt;th>special&lt;/th>
&lt;th>protect&lt;/th>
&lt;th>oldest_round&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>table&lt;/td>
&lt;td>t1&lt;/td>
&lt;td>100&lt;/td>
&lt;td>-&lt;/td>
&lt;td>dk_1&lt;/td>
&lt;td>1&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="22-定义表">2.2 定义表&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>定义表&lt;br>
定义表的语法与非加密表一致，我们通过单独的语法定义ENCRYPTION。&lt;/p></description></item><item><title>数据库安全 Oracle</title><link>https://my-blog.j8465383071.workers.dev/posts/security/4-oracle-security/</link><pubDate>Sat, 25 Jan 2025 11:07:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/4-oracle-security/</guid><description>&lt;p>&lt;a href="https://www.tapd.cn/60475194/markdown_wikis/show/#1160475194001006330">https://www.tapd.cn/60475194/markdown_wikis/show/#1160475194001006330&lt;/a>&lt;/p>
&lt;h1 id="3-异常参数">3 异常参数&lt;/h1>
&lt;h2 id="31-des-encrypt">3.1 DES encrypt&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>封装函数&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">OR&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">REPLACE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FUNCTION&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">desencrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hex_plain&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">VARCHAR2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">hex_key&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">VARCHAR2&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">RETURN&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">VARCHAR2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">IS&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">RAW&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">100&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">BEGIN&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="n">dbms_obfuscation_toolkit&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">desencrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hextoraw&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hex_plain&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">hextoraw&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hex_key&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">encrypted_data&lt;/span>&lt;span class="o">=&amp;gt;&lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">RETURN&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">rawtohex&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">END&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">/&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>函数格式&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="n">desencrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">plain&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">key&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">cipher&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>约束：&lt;/p>
&lt;/li>
&lt;li>
&lt;p>构造用例&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>明文长度&lt;/th>
&lt;th>密钥长度&lt;/th>
&lt;th>输出：密文长度&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>结果&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>一、正常用例&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>8&lt;/td>
&lt;td>8&lt;/td>
&lt;td>8&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>abc&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>16&lt;/td>
&lt;td>8&lt;/td>
&lt;td>16&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>abc&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>一、明文长度异常&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>0&lt;/td>
&lt;td>8&lt;/td>
&lt;td>16&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>明文不是8的倍数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>1&lt;/td>
&lt;td>8&lt;/td>
&lt;td>-&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>明文不是8的倍数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>7&lt;/td>
&lt;td>8&lt;/td>
&lt;td>-&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>明文不是8的倍数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>15&lt;/td>
&lt;td>8&lt;/td>
&lt;td>-&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>明文不是8的倍数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>二、密钥长度异常&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>8&lt;/td>
&lt;td>0&lt;/td>
&lt;td>8&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>密钥长度不是8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>8&lt;/td>
&lt;td>1&lt;/td>
&lt;td>8&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>密钥长度不是8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>8&lt;/td>
&lt;td>15&lt;/td>
&lt;td>8&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>密钥长度不是8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>8&lt;/td>
&lt;td>16&lt;/td>
&lt;td>8&lt;/td>
&lt;td>desencrypt()&lt;/td>
&lt;td>密钥长度不是8&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/li>
&lt;/ol>
&lt;h2 id="32-des-decrypt">3.2 DES decrypt&lt;/h2>
&lt;h2 id="33-3des-encrypt">3.3 3DES encrypt&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>封装函数&lt;/p></description></item><item><title>数据库安全 0 整体架构</title><link>https://my-blog.j8465383071.workers.dev/posts/security/4-0-database-security/</link><pubDate>Wed, 22 Jan 2025 11:34:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/4-0-database-security/</guid><description>&lt;blockquote>
&lt;p>摘要：介绍常见数据库安全机制的原理：&lt;br>
1.身份认证&lt;br>
2.安全传输&lt;br>
3.安全审计&lt;br>
4.访问控制&lt;br>
5.数据发现&lt;br>
6.数据防篡改&lt;br>
7.加密函数&lt;br>
8.透明加密&lt;br>
9.数据脱敏&lt;br>
10.全密态加密&lt;br>
11.机密计算&lt;/p>&lt;/blockquote>
&lt;h1 id="1-数据库安全概述">1 数据库安全概述&lt;/h1>
&lt;h2 id="11-数据库基本功能">1.1 数据库基本功能&lt;/h2>
&lt;p>本文讨论数据库安全，为方便理解，将大部分软件架构简化为2个主体：应用端与数据库端。&lt;/p>
&lt;ul>
&lt;li>应用：实现业务逻辑，收集业务数据，将数据发送至数据库，由数据库提供数据存储功能，并且，要求数据库提供数据查询功能&lt;/li>
&lt;li>数据库：存储业务数据，向应用提供SQL接口，接收应用发送的SQL语句，并处理SQL语句。同时，解决高并发、高性能、高可靠的问题&lt;/li>
&lt;/ul>
&lt;p>大部分场景中，应用与数据库部署于不同主机上，以下是一个应用使用数据库实现数据存储与查询的示例流程：&lt;/p>
&lt;ol>
&lt;li>
&lt;p>建立连接：应用与数据库建立网络连接&lt;/p>
&lt;/li>
&lt;li>
&lt;p>定义数据：应用向数据库发送以下SQL语句，创建1个表&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">INT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">c2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>存储数据：应用向数据库发送以下SQL语句，向表中存储数据&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">INSERT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">INTO&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">VALUES&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;abc&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>查询数据：应用向数据库发送以下SQL语句，从表中查询数据&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h2 id="12-数据库基本架构">1.2 数据库基本架构&lt;/h2>
&lt;p>数据库架构较复杂，此处先将数据库架构简单划分为以下3个部分：&lt;/p>
&lt;ul>
&lt;li>数据库驱动：集成到应用内部，向应用提供编程接口，常见接口有：连接数据库、执行SQL语句等&lt;/li>
&lt;li>计算模块：解析SQL语句，并按合理地执行流程处理SQL语句中的请求，调用存储模块接口实现数据存储与读取&lt;/li>
&lt;li>存储模块：合理组织数据，调用IO接口，实现磁盘读写操作。向计算模块提供接口&lt;/li>
&lt;/ul>
&lt;h2 id="13-数据库安全威胁">1.3 数据库安全威胁&lt;/h2>
&lt;p>在应用使用数据库的过程中，攻击者可能对整个系统造成恶意攻击，攻击的最终目标是：&lt;/p>
&lt;ul>
&lt;li>破坏业务数据：窃取、伪造、篡改、损坏等&lt;/li>
&lt;li>破坏业务系统：拒绝服务等&lt;/li>
&lt;/ul>
&lt;p>攻击者针对多个系统薄弱点进行功能：&lt;/p>
&lt;ul>
&lt;li>数据库网络：协议等&lt;/li>
&lt;li>数据库应用：身份认证机制等&lt;/li>
&lt;li>数据库主机：操作系统、软件（除数据库外的其他软件）、硬件等&lt;/li>
&lt;/ul>
&lt;p>假设应用与数据库部署在不同主机，分为是下图中的主机c和主机z，常见安全威胁的架构图如下：&lt;/p>
&lt;p>&lt;img alt="risk" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/4-0-database-security/risk.png">&lt;/p>
&lt;h2 id="14-数据安全架构">1.4 数据安全架构&lt;/h2>
&lt;p>针对各类威胁，数据库提供多种安全机制，保护数据与数据库安全，常见的安全机制如下：&lt;/p>
&lt;ol>
&lt;li>身份认证：阻止非法用户与数据库建立网络连接&lt;/li>
&lt;li>安全传输：阻止非法用户窃取、篡改、伪造、..传输数据&lt;/li>
&lt;li>安全审计：记录非法/合法用户对数据库的操作&lt;/li>
&lt;li>访问控制：缩小非法用户对数据库的访问范围&lt;/li>
&lt;li>数据发现：协助合法用户识别敏感数据&lt;/li>
&lt;li>数据防篡改：识别非法用户篡改、伪造、..存储数据&lt;/li>
&lt;li>加密函数：协助合法用户加密存储数据&lt;/li>
&lt;li>透明加密：阻止非法用户窃取、篡改、伪造、..存储数据&lt;/li>
&lt;li>数据脱敏：缩小非法用户对数据内容的访问范围&lt;/li>
&lt;li>全密态加密：阻止非法用户窃取、篡改、伪造、..传输、计算、存储数据&lt;/li>
&lt;li>机密计算：阻止非法用户窃取、篡改、伪造计算数据&lt;/li>
&lt;/ol>
&lt;p>按对数据处理的顺序，各安全机制的架构如下图所示：&lt;/p></description></item><item><title>数据库安全 1 身份认证</title><link>https://my-blog.j8465383071.workers.dev/posts/security/4-1-authentication/</link><pubDate>Fri, 24 Jan 2025 18:46:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/4-1-authentication/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>摘要&lt;/strong>：从5个方面，介绍PostgreSQL身份认证特性：背景、原理、使用、设计、实现&lt;/p>&lt;/blockquote>
&lt;h1 id="1-身份认证概述">1 身份认证概述&lt;/h1>
&lt;h2 id="11-非法访问风险">1.1 非法访问风险&lt;/h2>
&lt;ul>
&lt;li>数据库进程&lt;br>
数据库运行时，本质是一个服务器进程，在特定的主机上，监听特定端口。应用如果知道IP和端口，都可与数据库进程建立TCP连接，并进行数据交互，包括发送SQL语句、接收查询结果等。&lt;/li>
&lt;li>数据泄露风险&lt;br>
为避免非法用户访问数据库，构造特殊数据，造成数据损坏、数据泄露等问题，数据库接收应用建立TCP的请求，并成功建立TCP连接后，需先确认应用的身份是否合法，再接收应用的其他数据，比如接收SQL语句等。&lt;/li>
&lt;/ul>
&lt;h2 id="12-身份认证机制">1.2 身份认证机制&lt;/h2>
&lt;p>在信息系统中，身份认证是一种常见的机制，身份认证的概念较成熟，本文不详细介绍相关概念。身份认证分为标识与鉴别两个部分：&lt;/p>
&lt;ul>
&lt;li>标识：用户向系统声明自己的身份，系统标识用户&lt;/li>
&lt;li>鉴别：系统验证用户提供的信息，确认用户是否是已标识的用户&lt;/li>
&lt;/ul>
&lt;p>按照认证因素，可将身份认证划分为3类：&lt;/p>
&lt;ul>
&lt;li>知识因素：用户知道某些秘密，比如口令、密码等&lt;/li>
&lt;li>拥有因素：用户拥有某些实物，比如钥匙、证书、令牌等&lt;/li>
&lt;li>生物因素：用户拥有某些特征，比如指纹、面部、虹膜、签名等&lt;/li>
&lt;/ul>
&lt;h2 id="13-postgrsql的身份认证">1.3 PostgrSQL的身份认证&lt;/h2>
&lt;p>PostgreSQL的认证方式有很多种，包括：密码认证、Ident认证、Peer认证、证书认证、LDAP认证等。本文仅介绍最常见的方案。&lt;/p>
&lt;p>在大部分场景中，PostgreSQL采用以下2层认证机制：&lt;/p>
&lt;ul>
&lt;li>主机认证：
&lt;ul>
&lt;li>标识：在PostgreSQL的配置文件中，配置IP白名单&lt;/li>
&lt;li>鉴别：PostgreSQL与应用建立连接后，检查应用的IP是否在白名单内，判断应用是否合法&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>口令认证：
&lt;ul>
&lt;li>标识：PostgreSQL已存在的用户，创建新用户，为其设置用户信息，以及口令
&lt;ul>
&lt;li>备注：第一次安装PostgreSQL时，PostgreSQL要求用户创建初始用户&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>鉴别：在主机认证后，PostgreSQL先要求应用提供用户信息，再要求应用提供对应的口令，判断应用是否合法&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h1 id="2-身份认证的使用流程">2 身份认证的使用流程&lt;/h1>
&lt;h2 id="21-基本流程">2.1 基本流程&lt;/h2>
&lt;p>PostgreSQL中，从用户的角度观察，使用身份认证的流程可简单理解为：&lt;/p>
&lt;ol>
&lt;li>用户：已存在的用户使用&lt;code>CRATE USER {username} .. PASSWORD {password} ..&lt;/code>语法，创建新用户并设置口令&lt;/li>
&lt;li>数据库：数据库先对口令进行哈希，再存储口令的哈希值，目前的版本中，默认哈希算法为sha256算法，用户可通过GUC参数配置哈希算法类型&lt;/li>
&lt;li>用户：用户与数据建立连接，将&lt;code>{username}&lt;/code>与&lt;code>{password}&lt;/code>的哈希值发送给数据库，数据库比较用户发送的哈希值与系统表中的哈希值，判断&lt;code>{password}&lt;/code>是否合法&lt;/li>
&lt;/ol>
&lt;p>具体实现中，第3步的验证过程较为复杂，RFC5 802协议提供了一套安全的交互流程。后文介绍内部实现的详细流程。&lt;/p>
&lt;h1 id="3-身份认证的实现">3 身份认证的实现&lt;/h1>
&lt;h2 id="31-基于ip的身份认证">3.1 基于IP的身份认证&lt;/h2>
&lt;p>标识：访问者的IP&lt;br>
鉴别：数据库遍历IP白名单，判断访问者IP是否在白名单中，如果在，则认为访问者合法，允许与数据建立TCP连接。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-c" data-lang="c">&lt;span class="line">&lt;span class="cl">&lt;span class="n">PostmasterMain&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ServerLoop&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ConnCreate&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">StreamConnection&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">BackendStartup&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">BackendRun&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PostgresMain&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">InitPostgres&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PerformAuthentication&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ClientAuthentication&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">hba_getauthmethod&lt;/span> &lt;span class="cm">/* 从hba文件中，获取指定ip的认证方式 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">check_hba&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">check_hostname&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">check_ip&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="cm">/* 如果指定ip未获取到认证方式，则返回空 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">switch&lt;/span> &lt;span class="n">hba&lt;/span>&lt;span class="o">-&amp;gt;&lt;/span>&lt;span class="nl">auth_method&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="cm">/* 根据ip采用不同的认证方式 */&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaReject&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaImplicitReject&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaGSS&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaSSPI&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaPeer&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaMD5&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaPassword&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaCert&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="nl">uaTrust&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">...&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="32-基于证书的身份认证">3.2 基于证书的身份认证&lt;/h2>
&lt;p>创建主体的语法示例如下：&lt;/p></description></item><item><title>数据库安全 3 安全审计</title><link>https://my-blog.j8465383071.workers.dev/posts/security/4-3-audit/</link><pubDate>Wed, 22 Jan 2025 14:22:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/4-3-audit/</guid><description>&lt;blockquote>
&lt;p>&lt;strong>摘要&lt;/strong>：从5个方面，介绍openGauss审计特性：背景、原理、使用、设计、实现&lt;/p>&lt;/blockquote>
&lt;h1 id="1-审计的背景">1 审计的背景&lt;/h1>
&lt;h2 id="11-审计的原理">1.1 审计的原理&lt;/h2>
&lt;p>在使用数据库存取数据的大部分场景中，数据库具有以下特点：&lt;/p>
&lt;ol>
&lt;li>对象多：一个数据库集群中有多个database对象，1个database对象中有多个schema对象，1个schema对象中有多个table、index等对象&lt;/li>
&lt;li>用户多：一个数据库中，有多个用户，每个用户可访问的数据库对象不同&lt;/li>
&lt;li>应用多：多个应用将数据存储在同一数据库集群中，并同时访问数据库集群&lt;/li>
&lt;li>操作多：数据库提供丰富的功能，包括DDL、DML、DCL、运维等&lt;/li>
&lt;li>运行久：一个数据库集群，可能会保持数十年运行&lt;/li>
&lt;/ol>
&lt;p>审计的主要目的，使记录数据运行过程中发生了哪些事件。审计的3要素是：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>主体&lt;/strong>：一般指数据库用户&lt;/li>
&lt;li>&lt;strong>客体&lt;/strong>：一般指数据库对象，包括：集群、用户、连接、数据对象（database、schema、table、index、function等）&lt;/li>
&lt;li>&lt;strong>操作&lt;/strong>：主体对客体的操作，比如某个用户访问了某个表&lt;/li>
&lt;/ul>
&lt;h2 id="12-审计的目的">1.2 审计的目的&lt;/h2>
&lt;p>审计具有以下重要意义：&lt;/p>
&lt;ol>
&lt;li>攻击检测：通过检查审计日志，可判断是否发生网络安全攻击事件&lt;/li>
&lt;li>例行维护：通过检查审计日志，可跟踪对某个对象的访问信息&lt;/li>
&lt;li>故障检测：当数据库出现故障是，协助快速定位问题&lt;/li>
&lt;li>合法合规：《网络安全法》等法律法规与表中中，要求应用具备审计功能&lt;/li>
&lt;li>…&lt;/li>
&lt;/ol>
&lt;h2 id="13-审计的功能">1.3 审计的功能&lt;/h2>
&lt;p>审计功能包含以下3个部分：&lt;/p>
&lt;ol>
&lt;li>设置审计范围：通过数据库配置参数，或者数据库语法，定义哪些对象需要被审计&lt;/li>
&lt;li>设置审计存储：通过数据库配置参数，定义审计日志如何存储&lt;/li>
&lt;li>生成审计日志：数据库运行过程中，访问某个对象时，记录访问信息&lt;/li>
&lt;li>管理审计日志：查询，删除，归档审计日志&lt;/li>
&lt;/ol>
&lt;h2 id="14-oracle审计">1.4 oracle审计&lt;/h2>
&lt;p>oracle审计的发展：&lt;br>
- oracle 8i及更早：支持传统审计&lt;br>
- oracle 12c：新增支持统一审计&lt;br>
- oracle 23ai：不支持传统审计，仅支持统一审计&lt;/p>
&lt;p>oracle统一审计的使用：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- 1 创建审计策略
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">AUDIT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ap1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">PRIVILEGES&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ALTER&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">USER&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- privilege 子句，记录所有使用CreateTable, AlterUser权限的操作
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ACTIONS&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="k">INSERT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- aciton 子句，记录所有对表t1执行SELECT,INSERT,UPDATE的操作
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ROLES&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">r1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- role 子句，记录所有使用r1角色的操作
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 2 启用审计策略
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="n">AUDIT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ap1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 3 查看审计日志
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">UNIFIED_AUDIT_TRAIL&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- DBA_COMMON_AUDIT_TRAIL, DBA_AUDIT_SESSION, DBA_AUDIT_OBJECT, DBA_FGA_AUDIT_TRAIL
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">DBA_AUDIT_TRAIL&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">os_username&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">username&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">userhost&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">terminal&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">timestamp&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">owner&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">obj_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">action&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">action_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">------------+----------+----------+----------+-----------+-------+----------+--------+-------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">new_owner&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">new_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">obj_privilege&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sys_privilege&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">admin_option&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">grantee&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">audit_option&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ses_actions&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">----------+----------+---------------+---------------+--------------+---------+--------------+-------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">logoff_time&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">logoff_lread&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">logoff_pwrite&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">logoff_dlock&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">comment_text&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sessionid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">entryid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">statementid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">returncode&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">-----------+--------------+---------------+--------------+--------------+-----------+---------+-------------+------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">priv_used&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">client_id&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">econtext_id&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">session_cpu&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">extended_timestamp&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">proxy_sessionid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">global_uid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">instance_number&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">-----------+-----------+-------------+-------------+--------------------+-----------------+------------+-----------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">os_process&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">transactionid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">scn&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sql_bind&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sql_text&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">obj_edition_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">dbid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">rls_info&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">current_user&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">----------+---------------+-----+----------+----------+------------------+------+----------+--------------+
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>其中，可设置的权限、操作等范围如下：&lt;/p></description></item><item><title>数据库安全 4 访问控制</title><link>https://my-blog.j8465383071.workers.dev/posts/security/4-4-access-control/</link><pubDate>Wed, 05 Feb 2025 16:57:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/4-4-access-control/</guid><description>&lt;h1 id="1-访问控制的背景">1 访问控制的背景&lt;/h1>
&lt;p>在使用数据库存取数据的大部分场景中，数据库具有以下特点：&lt;/p>
&lt;ol>
&lt;li>对象多：一个数据库集群中有多个database对象，1个database对象中有多个schema对象，1个schema对象中有多个table、index等对象&lt;/li>
&lt;li>用户多：一个数据库中，有多个用户，每个用户可访问的数据库对象不同&lt;/li>
&lt;/ol>
&lt;p>在该场景中，通过访问控制机制，可限制某个对象访问数据库对象的范围&lt;/p>
&lt;h1 id="2-访问控制的原理">2 访问控制的原理&lt;/h1>
&lt;p>访问控制的模型是：主体、客体、操作。本文不解释基本概念。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>主体&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>USER&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>角色：&lt;/p>
&lt;ul>
&lt;li>SYSADMIN 系统管理员&lt;/li>
&lt;li>CREATEROLE 安全管理员&lt;/li>
&lt;li>AUDITADMIN 审计管理员&lt;/li>
&lt;li>MONADMIN 监控管理员&lt;/li>
&lt;li>OPRADMIN 运维管理员&lt;/li>
&lt;li>POLADMIN 安全策略管理员&lt;/li>
&lt;/ul>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>客体&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>DATABASE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SCHEMA&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TABLESPACE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TABLE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>COLUMN&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>FUNCTION&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PROCEDURE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SEQUENCE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>FOREIGN SERVER&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LANGUAGE&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>操作&lt;/th>
&lt;th>客体&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>CREATE&lt;/td>
&lt;td>DATABASE, SCHEMA, TABLESPACE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ALTER&lt;/td>
&lt;td>DATABASE, SCHEMA, TABLESPACE, TABLE, FUNCTION, PRODUCE, FOREIGN SERVER, DIRECOTRY, PACKAGE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>DROP&lt;/td>
&lt;td>DATABASE, SCHEMA, TABLESPACE, TABLE, FUNCTION, PRODUCE, FOREIGN SERVER, DIRECOTRY, PACKAGE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TRUNCATE&lt;/td>
&lt;td>TABLE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>VACUUM&lt;/td>
&lt;td>TABLE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>INDEX&lt;/td>
&lt;td>TABLE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TRIGGER&lt;/td>
&lt;td>TABLE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SELECT&lt;/td>
&lt;td>TABLE, COLUMN, SEQUENCE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>INSERT&lt;/td>
&lt;td>TABLE, COLUMN&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>UPDATE&lt;/td>
&lt;td>TTABLE, COLUMN, SEQUENCE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>DELETE&lt;/td>
&lt;td>TABLE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>TEMPORARY&lt;/td>
&lt;td>DATABASE&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>EXECUTE&lt;/td>
&lt;td>FUNCTION, PROCEDURE, PACKAGE&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>语法：&lt;/p></description></item><item><title>数据库安全 5 全密态</title><link>https://my-blog.j8465383071.workers.dev/posts/security/4-5-fully-encrypted-database/</link><pubDate>Wed, 24 Jun 2026 14:47:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/4-5-fully-encrypted-database/</guid><description>&lt;ol>
&lt;li>&lt;a href="#0-%E5%9F%BA%E7%A1%80%E8%B0%83%E7%A0%94">0 基础调研&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E4%B8%80%E3%80%81%E8%BF%90%E7%AE%97%E7%AC%A6">一、运算符&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BA%8C%E3%80%81%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B">二、数据类型&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#1-%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1">1 架构设计&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E5%B7%A5%E4%BD%9C%E8%AE%A1%E5%88%92">工作计划&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#Table-1-Scan-Nodes">Table 1: Scan Nodes&lt;/a>&lt;/li>
&lt;li>&lt;a href="#Table-2-Join-Nodes">Table 2: Join Nodes&lt;/a>&lt;/li>
&lt;li>&lt;a href="#Table-3-Processing-Nodes">Table 3: Processing Nodes&lt;/a>&lt;/li>
&lt;li>&lt;a href="#Table-4-Set-amp-Control-Nodes">Table 4: Set &amp;amp; Control Nodes&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E5%8D%95%E7%8B%AC%E8%AF%B4%E6%98%8E%EF%BC%9ATable-Function-Materialization%EF%BC%88%E8%A1%A8%E5%87%BD%E6%95%B0%E7%89%A9%E5%8C%96%E8%AE%A1%E7%AE%97%EF%BC%89">单独说明：Table Function Materialization（表函数物化计算）&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#2-%E9%A9%B1%E5%8A%A8%E5%8A%A0%E5%AF%86-%E5%AE%9E%E7%8E%B0">2 驱动加密 - 实现&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#2-1-%E6%96%B0%E5%A2%9E%E7%B1%BB%E5%9E%8Bciphera">2.1 新增类型ciphera&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-2-%E6%96%B0%E5%A2%9E%E7%B3%BB%E7%BB%9F%E8%A1%A8pg-key">2.2 新增系统表pg_key&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-3-%E6%96%B0%E5%A2%9E%E8%AF%AD%E6%B3%95DATA-KEY">2.3 新增语法DATA KEY&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-4-%E6%96%B0%E5%A2%9E%E7%B3%BB%E7%BB%9F%E8%A1%A8pg-sec-class">2.4 新增系统表pg_sec_class&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-4-%E6%96%B0%E5%A2%9E%E8%AF%AD%E6%B3%95ENCRYPT">2.4 新增语法ENCRYPT&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-5-%E6%96%B0%E5%A2%9E%E5%85%AC%E5%85%B1%E8%AF%AD%E6%B3%95%E8%A7%A3%E6%9E%90libgram">2.5 新增公共语法解析libgram&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-6-libpq%E9%87%8D%E5%86%99INSERT">2.6 libpq重写INSERT&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-7-libpq%E9%87%8D%E5%86%99SELECT%E7%BB%93%E6%9E%9C">2.7 libpq重写SELECT结果&lt;/a>&lt;/li>
&lt;li>&lt;a href="#2-8-%E6%96%B0%E5%A2%9E%E6%94%AF%E6%8C%81int%E7%B1%BB%E5%9E%8B">2.8 新增支持int类型&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#3-%E6%9C%BA%E5%AF%86%E8%AE%A1%E7%AE%97-%E5%AE%9E%E7%8E%B0">3 机密计算 - 实现&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#3-1-%E7%AE%80%E5%8D%95%E8%AE%A1%E5%88%92">3.1 简单计划&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-2-%E6%94%AF%E6%8C%81%E8%8C%83%E5%9B%B4">3.2 支持范围&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E4%B8%80%E3%80%81%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B">一、数据类型&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BA%8C%E3%80%81%E6%93%8D%E4%BD%9C%E7%AC%A6%E4%B8%8E%E5%87%BD%E6%95%B0">二、操作符与函数&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#3-2-%E6%96%B0%E5%A2%9Elibcalc">3.2 新增libcalc&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-2-%E6%96%B0%E5%A2%9Eta-calc-x2F-ca-calc">3.2 新增ta_calc/ca_calc&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-3-%E5%86%85%E6%A0%B8%E6%96%B0%E5%A2%9Eciphera%E5%87%BD%E6%95%B0">3.3 内核新增ciphera函数&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-4-%E5%86%85%E6%A0%B8%E6%96%B0%E5%A2%9Eciphera%E8%BF%90%E7%AE%97%E7%AC%A6">3.4 内核新增ciphera运算符&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-5-%E5%86%85%E6%A0%B8make-op%E8%AF%86%E5%88%AB%E6%9C%BA%E5%AF%86%E8%AE%A1%E7%AE%97">3.5 内核make_op识别机密计算&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-6-index-scan%E7%AE%97%E5%AD%90">3.6 index_scan算子&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-6-%E4%BC%98%E5%8C%96">3.6 优化&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#ca-x2F-ta%E9%80%9A%E4%BF%A1">ca/ta通信&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#4-%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B">4 测试用例&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E7%AD%89%E5%80%BC%E6%9F%A5%E8%AF%A2">等值查询&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E8%8C%83%E5%9B%B4%E6%9F%A5%E8%AF%A2">范围查询&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E6%A8%A1%E7%B3%8A%E6%9F%A5%E8%AF%A2">模糊查询&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#%E9%99%84%E5%BD%95%EF%BC%9A%E4%B8%93%E5%88%A9">附录：专利&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E9%99%84%E5%BD%95%EF%BC%9AAI">附录：AI&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E4%BB%A3%E7%A0%81%E8%A6%81%E6%B1%82%EF%BC%9A">代码要求：&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#%E9%99%84%E5%BD%95%EF%BC%9A%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE">附录：参考文献&lt;/a>&lt;/li>
&lt;/ol>
&lt;h1 id="0-基础调研">0 基础调研&lt;/h1>
&lt;h2 id="一运算符">一、运算符&lt;/h2>
&lt;ul>
&lt;li>运算符&lt;br>
以int4为例：&lt;code>select proname from pg_catalog.pg_proc where proname like '%int4%' order by proname;&lt;/code>
&lt;ul>
&lt;li>
&lt;p>一、比较运算符函数&lt;/p></description></item><item><title>数据库安全 9 透明加密</title><link>https://my-blog.j8465383071.workers.dev/posts/security/4-9-tde/</link><pubDate>Tue, 21 Jan 2025 13:55:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/4-9-tde/</guid><description>&lt;h1 id="1-透明加密背景">1 透明加密背景&lt;/h1>
&lt;p>在另一篇博客中，已经讨论了几个话题：&lt;/p>
&lt;ul>
&lt;li>数据泄露风险&lt;/li>
&lt;li>加密方案对比&lt;/li>
&lt;li>透明加密基本原理&lt;/li>
&lt;/ul>
&lt;p>因此，本篇博客直接进入主题，介绍openGauss透明加密特性。&lt;/p>
&lt;h1 id="2-透明加密使用">2 透明加密使用&lt;/h1>
&lt;h2 id="21-开启透明加密">2.1 开启透明加密&lt;/h2>
&lt;h2 id="22-定义加密表">2.2 定义加密表&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">INT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">c2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WITH&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">enable_tde&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">on&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="23-验证数据加密">2.3 验证数据加密&lt;/h2>
&lt;h1 id="3-透明加密设计">3 透明加密设计&lt;/h1>
&lt;h1 id="4-透明加密原理">4 透明加密原理&lt;/h1>
&lt;h1 id="1-概述">1 概述&lt;/h1>
&lt;h2 id="11-模块">1.1 模块&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">heapam -&amp;gt; buffer -&amp;gt; smgr -&amp;gt; page
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="1-概述-1">1 概述&lt;/h1>
&lt;h2 id="11-功能">1.1 功能&lt;/h2>
&lt;p>用户创建表时，通过SQL语句指定表是否加密&lt;br>
数据库将数据页写入磁盘时，判断如果数据页属于加密表，对数据先加密在存储&lt;br>
数据库从磁盘读取数据页时，判断如果数据页已被加密，读取后马上解密&lt;/p>
&lt;h2 id="12-适配点">1.2 适配点&lt;/h2>
&lt;ul>
&lt;li>初始化page&lt;/li>
&lt;li>存储page&lt;/li>
&lt;li>读取page&lt;/li>
&lt;li>生成xlog记录：考虑初始化pagee&lt;/li>
&lt;li>重放xlog记录：考虑初始化page&lt;/li>
&lt;/ul>
&lt;h2 id="13-kun-tde">1.3 kun tde&lt;/h2>
&lt;h1 id="2-调用关系">2 调用关系&lt;/h1>
&lt;h2 id="21-初始化数据页">2.1 初始化数据页&lt;/h2>
&lt;h3 id="pageinit">PageInit&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-c" data-lang="c">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">PageInit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Page&lt;/span> &lt;span class="n">page&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Size&lt;/span> &lt;span class="n">pageSize&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">Size&lt;/span> &lt;span class="n">specialSize&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">heap_xlog_insert&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">heap_xlog_multi_insert&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">heap_xlog_update&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">heap_xlog_visible&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">raw_heap_insert&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">PageGetTempPageCopySpecial&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">fill_seq_with_data&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">seq_redo&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">brin_page_init&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">lazy_scan_heap&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">GinInitPage&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">GISTInitBuffer&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">_hash_pageinit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">_bt_pageinit&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">SpGistInitPage&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">vm_readbuf&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">vm_extend&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">XLogRecordPageWithFreeSpace&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">fsm_readbuf&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nf">fsm_extend&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="image">image&lt;/h3>
&lt;h2 id="22-写入数据页">2.2 写入数据页&lt;/h2>
&lt;h3 id="smgrextend">smgrextend&lt;/h3>
&lt;p>调用栈：&lt;/p></description></item><item><title>数据库安全 统一管理</title><link>https://my-blog.j8465383071.workers.dev/posts/security/5-unified-management/</link><pubDate>Sat, 25 Jan 2025 21:10:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/5-unified-management/</guid><description>&lt;h1 id="2-使用方法">2 使用方法&lt;/h1>
&lt;h2 id="21-设置安全策略">2.1 设置安全策略&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>表级&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">INT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">c2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 1 身份认证
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 2 安全传输
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 3 安全审计
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SECURITY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ad1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">USE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;security audit&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">scope&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;create, insert, update&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 4 访问控制
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SECURITY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ac1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">USE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;access control&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">group&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;user1, user2, user3&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 5 数据发现
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 6 数据防篡改
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SECURITY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">lga&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">USE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;ledger&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 7 加密函数
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 8 透明加密
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SECURITY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">se1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">USE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;storage encrypt&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">key&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;key1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 9 数据脱敏
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SECURITY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ms1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">USE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;mask&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;money&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 10 全密态加密
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SECURITY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ce1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">USE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="k">type&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;client encrypt&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">key&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;key1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 11 机密计算
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>列级&lt;/p></description></item><item><title>WAL 加密模块设计</title><link>https://my-blog.j8465383071.workers.dev/posts/security/wal-encryption-design/</link><pubDate>Mon, 07 Sep 2026 15:30:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/wal-encryption-design/</guid><description>&lt;p>假设集群里已经存在表级透明加密模块，在此基础上设计一个高性能、高易用性的 WAL 加密模块。&lt;/p>
&lt;p>WAL 加密的难点几乎不在&amp;quot;加密&amp;quot;本身，而在两件事：&lt;strong>同一个 8KB 页会被反复重写&lt;/strong>，以及&lt;strong>恢复路径要在拿不到 catalog 的时候就能解密&lt;/strong>。下面按设计决策的顺序展开。&lt;/p>
&lt;h2 id="1-威胁模型">1 威胁模型&lt;/h2>
&lt;p>先划清边界，因为它直接决定后面几个取舍。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>要防的&lt;/strong>：磁盘 / 备份 / 归档介质被拖走；DBA 之外的运维人员直接读 &lt;code>pg_wal/&lt;/code>；WAL 归档到对象存储。&lt;/li>
&lt;li>&lt;strong>不防的&lt;/strong>：有 root 权限的在线攻击者（内存里必然有明文）、旁路攻击。&lt;/li>
&lt;/ul>
&lt;h3 id="11-为什么不用-dm-crypt-了事">1.1 为什么不用 dm-crypt 了事&lt;/h3>
&lt;p>如果只是防&amp;quot;介质丢失&amp;quot;，块设备加密（LUKS/dm-crypt）性价比高得多。在数据库内核里做 WAL 加密，真正的理由只有三个：&lt;/p>
&lt;ol>
&lt;li>密钥要由数据库自己管，不能落在 OS 层（密评 / 国测要求）；&lt;/li>
&lt;li>归档件要天然带密；&lt;/li>
&lt;li>和已有的表级 TDE 共用一套密钥体系。&lt;/li>
&lt;/ol>
&lt;p>设计要始终对齐这三个理由，否则很容易做成一个又慢、又没多大意义的模块。&lt;/p>
&lt;h3 id="12-fpi-是必须堵的洞">1.2 FPI 是必须堵的洞&lt;/h3>
&lt;p>既然表级 TDE 已经存在，那么 &lt;strong>FPI（full page image）就是个必堵的泄漏点&lt;/strong>。&lt;/p>
&lt;p>如果 TDE 是在 smgr 层做的（缓冲区里是明文、写盘时加密），那么 WAL 里的 FPI 记录的是&lt;strong>明文页&lt;/strong> —— 加密表的数据会原封不动地漏进 WAL。&lt;/p>
&lt;blockquote>
&lt;p>只要集群里存在任何一张加密表，WAL 加密就必须强制开启，不能是两个独立开关。&lt;/p>&lt;/blockquote>
&lt;p>实现上做成一个集群级的 &lt;code>data_encryption = on&lt;/code>，或者至少让 &lt;code>CREATE ENCRYPTION POLICY&lt;/code> 在 WAL 加密未开启时直接报错。这是易用性设计里最重要的一条：&lt;strong>不要把一个&amp;quot;配错了就静默泄密&amp;quot;的组合留给用户&lt;/strong>。&lt;/p></description></item><item><title>数据库安全 防篡改</title><link>https://my-blog.j8465383071.workers.dev/posts/security/blockchain-tamper-proof/</link><pubDate>Wed, 29 Jul 2026 10:04:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/blockchain-tamper-proof/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SCHEMA&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WITH&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">BLOCKCHAIN&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">INT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">c2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="err">\&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">blockchain&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">s1_t1_hist&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">INSERT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">INTO&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">VALUES&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;aa&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;bb&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;cc&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;dd&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">hash&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">blockchain&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">s1_t1_hist&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">#&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">hahs_ins&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">hash_del&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">pre_hash&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">gs_global_chain&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">#&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">relnsp&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">relname&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">relhash&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">globalhash&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">txcommand&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist_check&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain_check&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="分布式">分布式&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SCHEMA&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WITH&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">BLOCKCHAIN&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">INT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">c2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">create_distributed_table&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1.t1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;c1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">INSERT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">INTO&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">VALUES&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;aa&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;bb&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;cc&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;dd&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;ee&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">hash&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">blockchain&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">s1_t1_hist&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- hahs_ins,hash_del,pre_hash, 其中，pre_hash没用上，无作用
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">gs_global_chain&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- relnsp,relname,relhash,globalhash,txcommand
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist_check&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist_archive&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist_repair&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain_check&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain_archive&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain_repair&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="集中式">集中式&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SCHEMA&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">WITH&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">BLOCKCHAIN&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">c1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">INT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">c2&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="nb">TEXT&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">INSERT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">INTO&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">VALUES&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;aa&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;bb&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;cc&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">7&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;dd&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;ee&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">hash&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">s1&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">blockchain&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">s1_t1_hist&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">gs_global_chain&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist_check&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist_archive&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_hist_repair&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain_check&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain_archive&lt;/span>&lt;span class="p">();&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ledger_gchain_repair&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;s1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;t1&amp;#39;&lt;/span>&lt;span class="p">);&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 下面2个函数，不用适配，别动代码，告诉我当前表现
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- SELECT * FROM ledger_hist(&amp;#39;s1&amp;#39;, &amp;#39;t1&amp;#39;);
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- SELECT * FROM ledger_gchain();
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>CREATE SCHEMA s1 WITH BLOCKCHAIN;&lt;br>
CREATE TABLE s1.t1(c1 INT, c2 TEXT);&lt;/p></description></item><item><title>高质量专项 全密态机密计算</title><link>https://my-blog.j8465383071.workers.dev/posts/security/confidential-computing/</link><pubDate>Mon, 19 Jan 2026 18:37:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/confidential-computing/</guid><description>&lt;h1 id="目录">目录&lt;/h1>
&lt;ol>
&lt;li>&lt;a href="#%E7%9B%AE%E5%BD%95">目录&lt;/a>&lt;/li>
&lt;li>&lt;a href="#1-%E6%9E%B6%E6%9E%84">1 架构&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#1-1-%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84">1.1 整体架构&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#2-%E6%B5%81%E7%A8%8B">2 流程&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#2-1-%E6%95%B4%E4%BD%93%E6%B5%81%E7%A8%8B">2.1 整体流程&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#3-%E8%AE%BE%E8%AE%A1">3 设计&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#3-1-%E9%A9%B1%E5%8A%A8%E5%8A%A0%E5%AF%86">3.1 驱动加密&lt;/a>&lt;/li>
&lt;li>&lt;a href="#3-2-%E6%9C%BA%E5%AF%86%E8%AE%A1%E7%AE%97">3.2 机密计算&lt;/a>
&lt;ol>
&lt;li>&lt;a href="#%E4%B8%80%E3%80%81%E6%8A%80%E6%9C%AF%E8%B0%83%E7%A0%94">一、技术调研&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%E4%BA%8C%E3%80%81%E6%96%B9%E6%A1%88%E5%AF%B9%E6%AF%94">二、方案对比&lt;/a>&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ol>
&lt;/li>
&lt;li>&lt;a href="#4-%E6%8E%A5%E5%8F%A3">4 接口&lt;/a>&lt;/li>
&lt;li>&lt;a href="#5-%E5%AE%9E%E7%8E%B0">5 实现&lt;/a>&lt;/li>
&lt;/ol>
&lt;h1 id="1-架构">1 架构&lt;/h1>
&lt;h2 id="11-整体架构">1.1 整体架构&lt;/h2>
&lt;p>&lt;strong>全密态数据库&lt;/strong>是一种由数据库提供的安全特性，指数据库在处理数据的过程中，确保数据在传输、计算、存储等全生命周期阶段，于任何不可信的介质或环境中，始终处于加密状态。不可信环境包括：网络、内存、磁盘等。以常见的拓扑模型为例，在使用数据库的过程中，威胁面较广：&lt;/p>
&lt;p>&lt;img alt="risk" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/confidential-computing/risk.png">&lt;/p>
&lt;p>全密态数据库中，对于传输、存储安全，采用驱动加密方案。应用向数据库发送数据时，先在驱动中加密数据，再发送数据密文。应用从数据库接收数据时，先接收数据密文，再在驱动中解密数据。数据在网络、磁盘、服务端内存中，均处于加密状态。基本架构如下图所示：&lt;/p>
&lt;p>&lt;img alt="driver" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/confidential-computing/driver.png">&lt;/p>
&lt;p>全密态数据库中，对于计算安全，采用机密计算方案。驱动加密方案，解决传输、存储安全，但是，数据库端无法在密文上计算。为解决计算问题，业界有两种方案：&lt;/p>
&lt;ul>
&lt;li>基于密码学算法的密文计算方案：通过密码学算法，让数据库在直接在密文上进行计算，例如保序加密、可搜索加密、同态加密等&lt;/li>
&lt;li>基于硬件隔离的机密计算方案：在CPU、内存中，划分逻辑独立的可信执行环境，让数据库在可信执行环境中解密数据密文，进行计算。&lt;/li>
&lt;/ul>
&lt;p>在充分对比安全性、功能完备性、性能、实现难度等特点，选择机密计算方案。结合驱动加密方案、机密计算方案，全密态数据库整体架构如下图所示：&lt;/p>
&lt;p>&lt;img alt="all" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/confidential-computing/all.png">&lt;/p>
&lt;p>全密态数据库中，对于加密模型，采用多级密钥方案。数据由数据密钥加密，密钥由主密钥加密，主密钥由根密钥加密。在驱动加密模块中，只能获取数据密钥，无法获取主密钥。在更安全的加密方案中，驱动加密模块无法获取数据密钥，由硬件加密机加密。在数据库端，仅存储密钥信息，无法获取密钥。全密态数据库加密模型如下图所示：&lt;/p>
&lt;p>&lt;img alt="crypt" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/confidential-computing/crypt.png">&lt;/p>
&lt;h1 id="2-流程">2 流程&lt;/h1>
&lt;h2 id="21-整体流程">2.1 整体流程&lt;/h2>
&lt;p>使用全密态数据库时，用户需定义主密钥、数据密钥、加密表，在执行存储、查询数据时，全密态数据库自动完成加密、解密、计算等操作。完整的使用流程如图所示：&lt;/p>
&lt;p>&lt;img alt="flow" loading="lazy" src="https://my-blog.j8465383071.workers.dev/images/Security/confidential-computing/flow.png">&lt;/p>
&lt;h1 id="3-设计">3 设计&lt;/h1>
&lt;h2 id="31-驱动加密">3.1 驱动加密&lt;/h2>
&lt;h2 id="32-机密计算">3.2 机密计算&lt;/h2>
&lt;h3 id="一技术调研">一、技术调研&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>纯软路线&lt;/p>
&lt;ul>
&lt;li>同态加密&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>软硬路线&lt;/p>
&lt;ul>
&lt;li>x86
&lt;ul>
&lt;li>cpu
&lt;ul>
&lt;li>sgx：硬件&lt;/li>
&lt;li>tdx：硬件&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>固件
&lt;ul>
&lt;li>me：出厂自带&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>软件
&lt;ul>
&lt;li>sgx driver&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>amd
&lt;ul>
&lt;li>cpu
&lt;ul>
&lt;li>sev：Secure Encrypted Virtualization，CPU扩展电路，为每台虚拟机分配内存密钥，运行时加密整段内存。需BIOS开启。&lt;/li>
&lt;li>sev-snp/sev-es&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>固件
&lt;ul>
&lt;li>psp&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>软件
&lt;ul>
&lt;li>kvm sev&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>arm
&lt;ul>
&lt;li>cpu
&lt;ul>
&lt;li>trust-zone：每个核新增总线，&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>固件
&lt;ul>
&lt;li>arm trusted fimware&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>软件
&lt;ul>
&lt;li>op-tee&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>tee: &lt;a href="https://github.com/OP-TEE/build">https://github.com/OP-TEE/build&lt;/a>&lt;/p></description></item><item><title>数据库安全 传输加密</title><link>https://my-blog.j8465383071.workers.dev/posts/security/transport-encryption/</link><pubDate>Wed, 21 May 2025 09:37:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/transport-encryption/</guid><description>&lt;h1 id="非国密">非国密&lt;/h1>
&lt;ol>
&lt;li>生成证书&lt;/li>
&lt;li>数据库服务端：配置证书、配置传输加密算法&lt;/li>
&lt;li>数据库客户端：配置证书&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 检查openssl版本&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">which openssl
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 确保使用的是vastbase发布包中的openssl，而非操作系统中的openssl&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp &lt;span class="nv">$GAUSSHOME&lt;/span>/share/sslcert/gsql/openssl.cnf ./
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">OPENSSL_CONF&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>&lt;span class="nb">pwd&lt;/span>&lt;span class="sb">`&lt;/span>/openssl.cnf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 创建文件&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir cert
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> cert
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir ./demoCA ./demoCA/newcerts ./demoCA/private
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">700&lt;/span> ./demoCA/private
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;01&amp;#39;&lt;/span>&amp;gt;./demoCA/serial
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">touch ./demoCA/index.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ca&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl genrsa -out ./demoCA/private/cakey.pem &lt;span class="m">2048&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -new -key ./demoCA/private/cakey.pem -out ./demoCA/private/ca_cert_req.pem -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=root&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -in ./demoCA/private/ca_cert_req.pem -days &lt;span class="m">7300&lt;/span> -signkey ./demoCA/private/cakey.pem -out ./demoCA/cacert.pem
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># server&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl genrsa -out server.key &lt;span class="m">2048&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -new -key server.key -out server.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=server&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -in server.csr -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -CAcreateserial -out server.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># client&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl genrsa -out client.key &lt;span class="m">2048&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -new -key client.key -out client.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=client&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -in client.csr -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -CAcreateserial -out client.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 查看内容&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -in client.crt -text
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 设置权限&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">600&lt;/span> client.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">600&lt;/span> client.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">600&lt;/span> server.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">600&lt;/span> server.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">600&lt;/span> ./demoCA/cacert.pem
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">CERT&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>&lt;span class="nb">pwd&lt;/span>&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export CERT=`pwd`
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLMODE=verify-ca
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLROOTCERT=$CERT/demoCA/cacert.pem
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLKEY=$CERT/client.key
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLCERT=$CERT/client.crt
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span> &amp;gt; client_env
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">source&lt;/span> client_env
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 设置服务端参数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data -c &lt;span class="s2">&amp;#34;ssl=on&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data -c &lt;span class="s2">&amp;#34;ssl_ciphers = &amp;#39;ALL&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data -c &lt;span class="s2">&amp;#34;ssl_ca_file = &amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/demoCA/cacert.pem&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data -c &lt;span class="s2">&amp;#34;ssl_key_file=&amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/server.key&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data -c &lt;span class="s2">&amp;#34;ssl_cert_file=&amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/server.crt&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重启数据库&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">vsql -d postgres -c &lt;span class="s2">&amp;#34; CREATE USER u1 PASSWORD &amp;#39;u1.password&amp;#39; &amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 连接数据库：需加-h参数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">vsql -h localhost -d postgres -U u1 -W &lt;span class="s1">&amp;#39;u1.password&amp;#39;&lt;/span> -r
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">rm -f client.* server.*
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data -c &lt;span class="s2">&amp;#34;ssl_ciphers = &amp;#39;ECDHE-ECDSA-SM4-CBC-SM3&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out ./demoCA/private/cakey.pem
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -new -key ./demoCA/private/cakey.pem -out ./demoCA/private/ca_cert_req.pem -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=root&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -in ./demoCA/private/ca_cert_req.pem -days &lt;span class="m">7300&lt;/span> -signkey ./demoCA/private/cakey.pem -out ./demoCA/cacert.pem
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># server&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out server.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -new -key server.key -out server.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=server&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -in server.csr -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -CAcreateserial -out server.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># client&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out client.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -new -key client.key -out client.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=client&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -in client.csr -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -CAcreateserial -out client.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">600&lt;/span> client.key client.crt server.key server.crt ./demoCA/cacert.pem
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -in client.crt -text
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="国密">国密&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">mkdir cert
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> cert
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl version
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># OpenSSL 1.1.1s Tassl 2.1.2 1 Nov 2022&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">cp ../tassl/install/openssl.cnf ./
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod +w ./openssl.cnf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">[ gm_ca_cert ]
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">subjectKeyIdentifier=hash
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">authorityKeyIdentifier=keyid:always,issuer
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">basicConstraints = critical,CA:true
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">keyUsage = critical, cRLSign, keyCertSign
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">[ gm_sign_cert ]
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">basicConstraints = CA:FALSE
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">keyUsage = critical, digitalSignature, nonRepudiation
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">[ gm_enc_cert ]
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">basicConstraints = CA:FALSE
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">keyUsage = critical, keyEncipherment, dataEncipherment, keyAgreement&amp;#39;&lt;/span> &amp;gt;&amp;gt; ./openssl.cnf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">mkdir ./demoCA ./demoCA/newcerts ./demoCA/private
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">chmod &lt;span class="m">700&lt;/span> ./demoCA/private
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;01&amp;#39;&lt;/span>&amp;gt;./demoCA/serial
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">touch ./demoCA/index.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ca&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out ./demoCA/private/cakey.pem
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -config openssl.cnf -new -key ./demoCA/private/cakey.pem -sm3 -out ./demoCA/private/ca_cert_req.pem -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=root&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -extfile openssl.cnf -extensions gm_ca_cert -in ./demoCA/private/ca_cert_req.pem -sm3 -days &lt;span class="m">7300&lt;/span> -signkey ./demoCA/private/cakey.pem -out ./demoCA/cacert.pem
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># server&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out server.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ec -in server.key -passout pass:gauss@123 -sm4 -out server.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -config openssl.cnf -new -key server.key -passin pass:gauss@123 -sm3 -out server.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=server&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -extfile openssl.cnf -extensions gm_sign_cert -in server.csr -sm3 -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -passin pass:gauss@123 -CAcreateserial -out server.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># server.enc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out server_enc.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ec -in server_enc.key -passout pass:gauss@123 -sm4 -out server_enc.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -config openssl.cnf -new -key server_enc.key -passin pass:gauss@123 -sm3 -out server_enc.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=server&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -extfile openssl.cnf -extensions gm_enc_cert -in server_enc.csr -sm3 -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -passin pass:gauss@123 -CAcreateserial -out server_enc.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc encrypt -M server -D ./ -K gauss@123
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># client&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out client.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ec -in client.key -passout pass:gauss@123 -sm4 -out client.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -config openssl.cnf -new -key client.key -passin pass:gauss@123 -sm3 -out client.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=client&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -extfile openssl.cnf -extensions gm_sign_cert -in client.csr -sm3 -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -passin pass:gauss@123 -CAcreateserial -out client.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># client.enc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ecparam -name SM2 -genkey -out client_enc.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl ec -in client_enc.key -passout pass:gauss@123 -sm4 -out client_enc.key
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl req -config openssl.cnf -new -key client_enc.key -passin pass:gauss@123 -sm3 -out client_enc.csr -subj &lt;span class="s2">&amp;#34;/C=CN/ST=Beijing/O=huawei/OU=gauss/CN=client&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">openssl x509 -req -extfile openssl.cnf -extensions gm_enc_cert -in client_enc.csr -sm3 -days &lt;span class="m">3650&lt;/span> -CA ./demoCA/cacert.pem -CAkey ./demoCA/private/cakey.pem -passin pass:gauss@123 -CAcreateserial -out client_enc.crt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc encrypt -M client -D ./ -K gauss@123
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># openssl x509 -in client.crt -text&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">CERT&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="sb">`&lt;/span>&lt;span class="nb">pwd&lt;/span>&lt;span class="sb">`&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s1">&amp;#39;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export CERT=`pwd`
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLMODE=verify-ca
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLTLCP=1
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLROOTCERT=$CERT/demoCA/cacert.pem
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLKEY=$CERT/client.key
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLCERT=$CERT/client.crt
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLENCKEY=$CERT/client_enc.key
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">export PGSSLENCCERT=$CERT/client_enc.crt
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1">&amp;#39;&lt;/span> &amp;gt; client_env
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">source&lt;/span> client_env
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 设置服务端参数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl=on&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl_ciphers = &amp;#39;ALL&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl_use_tlcp=on&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl_ca_file = &amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/demoCA/cacert.pem&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl_key_file=&amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/server.key&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl_cert_file=&amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/server.crt&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl_enc_key_file=&amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/server_enc.key&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">gs_guc &lt;span class="nb">set&lt;/span> -D &lt;span class="nv">$GAUSSHOME&lt;/span>/data/single_node -c &lt;span class="s2">&amp;#34;ssl_enc_cert_file=&amp;#39;&lt;/span>&lt;span class="nv">$CERT&lt;/span>&lt;span class="s2">/server_enc.crt&amp;#39;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 重启数据库&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>数据库安全 全密态</title><link>https://my-blog.j8465383071.workers.dev/posts/security/fully-encrypted-overview/</link><pubDate>Tue, 20 May 2025 18:22:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/fully-encrypted-overview/</guid><description>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">PQconnectStart&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">makeEmptyPGconn&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">connectOptions1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">parse_connection_string&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">fillPGconn&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">conninfo_getval&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;enable_ce&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># 解析 &amp;#39;enable_ce&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">connectDBStart&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQconnectPoll&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">CONNECTION_NEEDED&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="c1"># 建立TCP连接&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">connect&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">CONNECTION_MADE&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="c1"># 发送连接参数&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqBuildStartupPacket3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">build_startup_packet&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqPacketSend&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">CONNECTION_AWAITING_RESPONSE&lt;/span> &lt;span class="c1"># 进行身份认证&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pg_fe_sendauth&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">PQexec&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQexecStart&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQsendQuery&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Processor&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">run_pre_query&lt;/span> &lt;span class="c1"># 加密SQL语句中的数据&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Parser&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">Parse&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">run_pre_statement&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">run_pre_insert_statement&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">CachedColumnManager&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">get_cached_columns&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">RawValues&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">get_raw_values_from_insert_statement&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ValuesProcessor&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">process_values&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">process_inside_value&lt;/span> &lt;span class="c1"># 加密&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">StatementData&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">replace_raw_values&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqPutMsgStart&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqPuts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqPutMsgEnd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqFlush&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQexecFinish&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">PQgetResult&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">parseInput&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqParseInput3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqGetc&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqGetInt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="s1">&amp;#39;D&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">getAnotherTuple&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqRowProcessor&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ValuesProcessor&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">deprocess_value&lt;/span> &lt;span class="c1"># 解密服务端返回的数据&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqGets&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">case&lt;/span> &lt;span class="s1">&amp;#39;Z&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">Processor&lt;/span>&lt;span class="p">::&lt;/span>&lt;span class="n">run_post_query&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pqReadData&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>数据库安全 重构审计</title><link>https://my-blog.j8465383071.workers.dev/posts/security/vastbase-audit-refactor/</link><pubDate>Mon, 31 Mar 2025 19:24:00 +0800</pubDate><guid>https://my-blog.j8465383071.workers.dev/posts/security/vastbase-audit-refactor/</guid><description>&lt;h1 id="1-审计的背景">1 审计的背景&lt;/h1>
&lt;h2 id="11-审计的原理">1.1 审计的原理&lt;/h2>
&lt;p>在使用数据库存取数据的大部分场景中，数据库具有以下特点：&lt;/p>
&lt;ul>
&lt;li>对象多：一个数据库集群中有多个database对象，1个database对象中有多个schema对象，1个schema对象中有多个table、index等对象&lt;/li>
&lt;li>用户多：一个数据库中，有多个用户，每个用户可访问的数据库对象不同&lt;/li>
&lt;li>应用多：多个应用将数据存储在同一数据库集群中，并同时访问数据库集群&lt;/li>
&lt;li>操作多：数据库提供丰富的功能，包括DDL、DML、DCL、运维等&lt;/li>
&lt;li>运行久：一个数据库集群，可能会保持数十年运行&lt;/li>
&lt;/ul>
&lt;p>审计的主要目的，使记录数据运行过程中发生了哪些事件。审计的3要素是：&lt;/p>
&lt;ul>
&lt;li>主体：一般指数据库用户&lt;/li>
&lt;li>客体：一般指数据库对象，包括：集群、数据对象（database、schema、table、index、function等）、用户等&lt;/li>
&lt;li>操作：主体对客体的操作，比如某个用户访问了某个表&lt;/li>
&lt;/ul>
&lt;h2 id="12-审计的目的">1.2 审计的目的&lt;/h2>
&lt;p>审计具有以下重要意义：&lt;/p>
&lt;ul>
&lt;li>合法合规：《网络安全法》等法律法规与表中中，要求应用通过《等保测评》等标准，标准中要求应用具备审计功能&lt;/li>
&lt;li>故障检测：当数据库出现故障时，协助快速定位问题&lt;/li>
&lt;li>攻击检测：通过检查审计日志，可判断是否发生网络安全攻击事件&lt;/li>
&lt;li>例行维护：通过检查审计日志，可跟踪对某个对象的访问信息&lt;/li>
&lt;li>…&lt;/li>
&lt;/ul>
&lt;p>等保测评要求标准（GB/T 28448）中，对审计的要求如下：&lt;/p>
&lt;ul>
&lt;li>审计范围
&lt;ul>
&lt;li>全面性&lt;/li>
&lt;li>细粒度：登录、访问、修改、删除等&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>审计内容
&lt;ul>
&lt;li>用户行为：登录、登出、权限变更&lt;/li>
&lt;li>数据访问：敏感数据查询、插入、更新、删除等&lt;/li>
&lt;li>异常行为：登录失败、非法访问&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>审计记录
&lt;ul>
&lt;li>详细性：时间戳、用户标识、操作类型、操作结果、IP地址等&lt;/li>
&lt;li>不可篡改：真实性、完整性&lt;/li>
&lt;li>存储安全：未经授权的访问和修改&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>审计管理
&lt;ul>
&lt;li>审计策略：审计的目标、范围、内容和频率&lt;/li>
&lt;li>审计分析：定期分析审计记录&lt;/li>
&lt;li>审计报告&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="13-审计的功能">1.3 审计的功能&lt;/h2>
&lt;p>审计功能包含以下3个部分：&lt;/p>
&lt;ol>
&lt;li>配置审计功能：日志存储策略等&lt;/li>
&lt;li>设置审计范围：设置哪类操作、哪类对象、..需要给设计&lt;/li>
&lt;li>生成审计日志：运行时，生成审计日志&lt;/li>
&lt;li>管理审计日志：查询，删除，归档审计日志&lt;/li>
&lt;/ol>
&lt;h2 id="14-oracle审计">1.4 oracle审计&lt;/h2>
&lt;p>oracle审计的发展：&lt;/p>
&lt;ul>
&lt;li>oracle 8i及更早：支持传统审计&lt;/li>
&lt;li>oracle 12c：新增支持统一审计&lt;/li>
&lt;li>oracle 23ai：不支持传统审计，仅支持统一审计&lt;/li>
&lt;/ul>
&lt;p>oracle统一审计的使用：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">-- 1 设置审计范围：创建审计策略
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">AUDIT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ap1&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="k">PRIVILEGES&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">CREATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">TABLE&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ALTER&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">USER&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- privilege 子句，记录所有使用CreateTable, AlterUser权限的操作，oracle 12c中，支持256种权限
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ACTIONS&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="k">INSERT&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="k">UPDATE&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">ON&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">t1&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- aciton 子句，记录所有对表t1执行SELECT,INSERT,UPDATE的操作
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ROLES&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">r1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- role 子句，记录所有使用r1角色的操作
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 2 启用审计策略
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="n">AUDIT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">POLICY&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ap1&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 3 查看审计日志（完整日志）
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">UNIFIED_AUDIT_TRAIL&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">-- 查看关键日志
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="k">SELECT&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">*&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">FROM&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">DBA_AUDIT_TRAIL&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c1">-- 其他：DBA_COMMON_AUDIT_TRAIL, DBA_AUDIT_SESSION, DBA_AUDIT_OBJECT, DBA_FGA_AUDIT_TRAIL
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">os_username&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">username&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">userhost&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">terminal&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">timestamp&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">owner&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">obj_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">action&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">action_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c1">------------+----------+----------+----------+-----------+-------+----------+--------+-------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">new_owner&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">new_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">obj_privilege&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sys_privilege&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">admin_option&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">grantee&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">audit_option&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">ses_actions&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">----------+----------+---------------+---------------+--------------+---------+--------------+-------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">logoff_time&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">logoff_lread&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">logoff_pwrite&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">logoff_dlock&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">comment_text&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sessionid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">entryid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">statementid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">returncode&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">-----------+--------------+---------------+--------------+--------------+-----------+---------+-------------+------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">priv_used&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">client_id&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">econtext_id&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">session_cpu&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">extended_timestamp&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">proxy_sessionid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">global_uid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">instance_number&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">-----------+-----------+-------------+-------------+--------------------+-----------------+------------+-----------------+
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="n">os_process&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">transactionid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">scn&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sql_bind&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">sql_text&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">obj_edition_name&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">dbid&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="n">rls_info&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="k">current_user&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="o">|&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="c1">----------+---------------+-----+----------+----------+------------------+------+----------+--------------+
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>其中，可设置的权限、操作等范围如下：&lt;/p></description></item></channel></rss>