一、引言
在系统架构设计师考试中,信息安全是一个非常重要的考点,也是实际软件架构设计中必须重点考虑的内容。随着企业信息化、云计算、大数据、移动互联网、物联网等技术的发展,系统面临的安全风险越来越复杂。对于架构师而言,信息安全并不是单纯依靠某一种安全产品或某一项技术就能解决的问题,而是需要从业务、架构、网络、主机、应用、数据、运维和管理等多个层面进行系统性设计。
软考架构师中的信息安全知识,通常涉及安全基本概念、安全体系结构、密码技术、身份认证与访问控制、网络安全、应用安全、数据库安全、安全协议、安全管理、风险评估、等级保护以及安全架构设计等内容。考生不仅要掌握理论概念,还要能够结合实际系统建设场景,分析安全需求、识别安全威胁,并提出合理的安全措施。
本文将围绕软考架构师考试要求,对信息安全知识进行较为具体和系统的总结,帮助理解和复习。
二、信息安全的基本目标
信息安全的核心目标通常概括为“CIA”三要素,即机密性、完整性和可用性。此外,在系统架构设计中,还需要关注真实性、不可否认性、可控性和可审计性等要求。
1. 机密性
机密性是指信息只能被授权用户访问,不能被未授权人员获取。常见实现手段包括数据加密、访问控制、身份认证、网络隔离、权限管理等。
例如,用户密码、身份证号、银行卡信息、商业合同等敏感数据都需要保证机密性。系统在传输和存储这些数据时,应采用加密措施,防止被窃听或泄露。
2. 完整性
完整性是指信息在存储、传输和处理过程中不被非法篡改、破坏或伪造。常见实现手段包括消息摘要、数字签名、校验码、访问控制、日志审计等。
例如,电子合同、交易订单、支付金额等数据一旦被篡改,会造成严重后果。因此系统需要通过哈希算法、数字签名等方式验证数据是否被修改。
3. 可用性
可用性是指授权用户在需要时能够正常访问和使用信息系统。常见保障措施包括冗余设计、负载均衡、容灾备份、抗拒绝服务攻击、防火墙、入侵防御等。
例如,银行系统、电商平台和政务系统都要求较高的可用性,不能因为攻击、故障或灾难导致长时间不可访问。
4. 真实性
真实性是指通信双方或操作主体的身份是真实可信的。通常通过身份认证、数字证书、口令、多因素认证等方式实现。
5. 不可否认性
不可否认性是指用户完成某项操作后不能否认该行为。常见技术包括数字签名、时间戳、日志审计等。
例如,在电子交易中,用户提交订单或签署电子合同后,应能够证明该操作确实由该用户发起。
6. 可审计性
可审计性是指系统能够记录用户行为、安全事件和系统操作,并支持事后追踪和分析。日志管理、审计系统和安全信息事件管理平台是常见手段。
三、信息安全常见威胁
在软考架构师考试中,经常会考查安全威胁与防护措施的对应关系。常见威胁包括以下几类。
1. 窃听
攻击者通过网络抓包、监听通信链路等方式获取敏感信息。防护措施主要是加密传输,例如使用 HTTPS、TLS、VPN 等。
2. 篡改
攻击者修改传输或存储的数据,例如修改订单金额、账户余额等。防护措施包括消息摘要、数字签名、完整性校验和访问控制。
3. 伪造
攻击者伪造身份、伪造数据或伪造网站。例如钓鱼网站、伪造登录请求等。防护措施包括身份认证、数字证书、双向认证等。
4. 重放攻击
攻击者截获合法请求后重复发送,从而达到非法目的。常见防护措施包括时间戳、随机数、一次性令牌、序列号等。
5. 拒绝服务攻击
拒绝服务攻击包括 DoS 和 DDoS,攻击者通过大量请求消耗系统资源,使正常用户无法访问。防护措施包括流量清洗、限流、黑白名单、负载均衡、弹性扩容等。
6. 恶意代码
包括病毒、木马、蠕虫、勒索软件等。防护措施包括杀毒软件、主机加固、补丁管理、最小权限、安全隔离等。
7. SQL 注入
攻击者通过构造恶意 SQL 语句获取或破坏数据库数据。防护措施包括参数化查询、预编译语句、输入校验、最小数据库权限等。
8. 跨站脚本攻击
跨站脚本攻击即 XSS,攻击者向网页注入恶意脚本,窃取用户 Cookie 或执行非法操作。防护措施包括输入过滤、输出编码、设置 HttpOnly、内容安全策略等。
9. 跨站请求伪造
CSRF 是利用用户已登录身份诱导用户发送非预期请求。防护措施包括 CSRF Token、SameSite Cookie、验证码、Referer 校验等。
10. 越权访问
越权访问包括水平越权和垂直越权。水平越权是普通用户访问其他普通用户数据,垂直越权是低权限用户访问高权限功能。防护措施包括统一权限控制、服务端鉴权、接口级权限校验等。
四、密码技术总结
密码技术是信息安全的重要基础,在考试中属于高频考点。常见内容包括对称加密、非对称加密、消息摘要、数字签名、数字证书和 PKI。
1. 对称加密
对称加密是指加密和解密使用同一把密钥。其特点是速度快、效率高,适合加密大量数据。常见算法包括 DES、3DES、AES、SM4 等。
对称加密的主要问题是密钥分发困难。如果通信双方如何安全地共享密钥无法解决,则可能导致密钥泄露。
典型应用场景包括文件加密、数据库字段加密、HTTPS 会话数据加密等。
2. 非对称加密
非对称加密使用一对密钥,即公钥和私钥。公钥可以公开,私钥由用户自己保存。用公钥加密的数据只能用对应私钥解密,用私钥签名的数据可以用对应公钥验证。
常见算法包括 RSA、ECC、SM2 等。非对称加密的优点是便于密钥分发,缺点是运算速度较慢,因此通常不用于大量数据加密。
在实际应用中,常采用“非对称加密交换对称密钥,对称加密传输业务数据”的方式,例如 HTTPS/TLS 协议。
3. 消息摘要
消息摘要也称哈希算法,是将任意长度的数据转换成固定长度摘要值的算法。常见算法包括 MD5、SHA-1、SHA-256、SM3 等。
消息摘要具有单向性、抗碰撞性和雪崩效应。它主要用于完整性校验,但不能单独用于加密,因为摘要无法还原原文。
例如,下载软件时提供的哈希值可以用于验证文件是否被篡改。
4. 数字签名
数字签名用于保证数据的完整性、身份真实性和不可否认性。其基本过程是:发送方先对原文计算摘要,再使用自己的私钥对摘要进行加密形成数字签名;接收方使用发送方公钥验证签名,并对原文重新计算摘要进行比较。
数字签名可以证明数据确实来自某个主体,并且传输过程中没有被篡改。
5. 数字证书
数字证书用于证明公钥与主体身份之间的绑定关系。证书通常由权威 CA 机构签发,内容包括主体名称、公钥、证书有效期、签发机构、签名算法等。
数字证书解决了“公钥是否可信”的问题。例如访问 HTTPS 网站时,浏览器会检查服务器证书是否合法、是否过期、是否由可信 CA 签发以及域名是否匹配。
6. PKI 公钥基础设施
PKI 是基于公钥密码技术建立的一套安全基础设施,主要组成包括 CA、RA、证书库、证书撤销列表、密钥管理系统等。PKI 主要用于身份认证、数字签名、加密通信和不可否认性保障。
五、身份认证与访问控制
身份认证和访问控制是系统安全架构设计中的基础能力。身份认证解决“你是谁”的问题,访问控制解决“你能做什么”的问题。
1. 身份认证方式
常见身份认证方式包括:
第一,基于用户知道的信息,例如用户名和密码、PIN 码。
第二,基于用户拥有的物品,例如短信验证码、动态令牌、USB Key、智能卡。
第三,基于用户自身特征,例如指纹、人脸、虹膜、声纹等生物特征。
第四,多因素认证,即组合两种或两种以上认证方式,提高安全性。例如登录网银时同时使用密码和短信验证码。
2. 口令安全
口令是最常见的认证方式,但也是安全薄弱环节。架构设计时应考虑以下措施:
用户密码不能明文存储,应使用加盐哈希方式保存;登录失败应设置次数限制和锁定策略;密码应有复杂度要求;重要操作应进行二次验证;默认密码应强制修改;密码传输必须使用加密通道。
3. 单点登录
单点登录即 SSO,是指用户一次登录后,可以访问多个相互信任的系统。常见协议和技术包括 CAS、OAuth 2.0、OpenID Connect、SAML 等。
在架构设计中,单点登录可以提升用户体验和统一认证管理能力,但也需要保护认证中心的高可用和安全性。
4. 访问控制模型
常见访问控制模型包括 DAC、MAC、RBAC 和 ABAC。
DAC 是自主访问控制,由资源所有者决定访问权限,灵活但安全性相对较弱。
MAC 是强制访问控制,由系统根据安全级别统一控制,常用于高安全场景。
RBAC 是基于角色的访问控制,通过角色关联用户和权限,是企业系统中最常见的权限模型。
ABAC 是基于属性的访问控制,依据用户属性、资源属性、环境属性和操作属性进行动态授权,适合复杂业务场景。
5. 最小权限原则
最小权限原则是指用户、进程或系统组件只被授予完成任务所必需的最小权限。该原则可以减少越权访问和攻击扩散风险。例如,应用连接数据库的账号不应拥有 DBA 权限,只应拥有必要的增删改查权限。
六、网络安全架构
网络安全是信息系统安全的重要组成部分。架构师需要熟悉网络分区、边界防护、安全设备和安全协议。
1. 网络区域划分
常见网络区域包括互联网区、DMZ 区、应用区、数据库区、管理区和办公区。
DMZ 区通常用于部署对外服务,如 Web 服务器、反向代理、API 网关等。数据库服务器一般不直接暴露在互联网,而应部署在内网或数据区,并通过防火墙限制访问。
合理的网络分区可以降低攻击面,防止攻击者一旦突破边界就直接访问核心系统。
2. 防火墙
防火墙用于控制网络访问流量,可以根据源地址、目的地址、端口、协议等规则允许或拒绝通信。防火墙主要用于边界防护和区域隔离。
在架构设计中,应遵循“默认拒绝、按需开放”的原则,只开放必要端口和访问路径。
3. 入侵检测与入侵防御
IDS 是入侵检测系统,主要用于发现攻击行为并告警。IPS 是入侵防御系统,可以在发现攻击时主动阻断流量。
IDS 偏重检测和审计,IPS 偏重实时防御。两者都常用于网络边界和关键区域。
4. VPN
VPN 用于在不安全的公共网络上建立安全通信隧道,常用于远程办公、分支机构互联和管理访问。VPN 可以提供身份认证、数据加密和完整性保护。
5. 安全协议
常见安全协议包括:
HTTPS:基于 HTTP 和 TLS,用于 Web 安全通信。
TLS/SSL:提供加密传输、身份认证和完整性保护。
IPSec:工作在网络层,常用于 VPN。
SSH:用于安全远程登录和文件传输。
SFTP:基于 SSH 的安全文件传输协议。
七、应用安全设计
应用层是攻击最频繁的层面之一。架构师在设计系统时,应将安全能力嵌入软件生命周期,而不是上线后再补救。
1. 输入校验
所有来自用户、第三方系统、前端页面、接口调用的数据都应被视为不可信。系统应对输入进行类型、长度、格式、范围和合法性校验。
输入校验可以防止 SQL 注入、命令注入、XSS 等多类攻击。
2. 输出编码
对于展示到页面、写入脚本、返回 JSON 或拼接 HTML 的内容,需要根据上下文进行输出编码,防止恶意脚本执行。
3. 参数化查询
数据库访问应使用参数化查询或预编译语句,禁止直接拼接 SQL。参数化查询是防止 SQL 注入的核心措施。
4. 会话管理
会话标识应具有足够随机性,不能出现在 URL 中;Cookie 应设置 HttpOnly、Secure 和 SameSite 属性;用户退出后应清除会话;长时间未操作应自动超时;重要操作应重新认证。
5. 接口安全
接口安全需要考虑身份认证、访问控制、签名验签、防重放、限流、日志审计等。对外开放 API 应使用 API 网关统一管理,并配置流量控制、黑白名单、鉴权和监控。
6. 文件上传安全
文件上传功能风险较高,应限制文件类型、大小和扩展名;对文件内容进行检测;上传文件应存储在非 Web 可执行目录;文件名应随机化;禁止上传脚本文件直接执行。
7. 安全开发生命周期
安全开发生命周期要求在需求、设计、编码、测试、部署和运维各阶段都考虑安全。典型措施包括安全需求分析、威胁建模、安全设计评审、代码审计、漏洞扫描、渗透测试和安全培训。
八、数据安全与数据库安全
数据是信息系统的核心资产。信息安全的最终目标之一就是保护数据在采集、传输、存储、使用、共享和销毁全生命周期中的安全。
1. 数据分类分级
应根据数据的重要性和敏感程度进行分类分级。例如可分为公开数据、内部数据、敏感数据和核心数据。不同级别的数据采用不同保护措施。
例如,个人身份信息、手机号、银行卡号、健康信息、交易记录等通常属于敏感数据,需要严格保护。
2. 数据加密
数据加密包括传输加密和存储加密。传输加密常用 HTTPS、TLS、VPN;存储加密包括数据库透明加密、字段级加密、文件加密和磁盘加密。
对于特别敏感的数据,如身份证号、银行卡号、密钥等,应考虑字段级加密或脱敏存储。
3. 数据脱敏
数据脱敏是指在不影响业务使用的前提下,对敏感数据进行变形处理。常见方式包括遮盖、替换、扰动、泛化等。
例如手机号显示为 138****1234,身份证号只显示部分位数。生产数据用于测试环境时,必须先进行脱敏。
4. 数据备份与恢复
备份是保障可用性和灾难恢复的重要手段。应制定完整备份、增量备份、差异备份等策略,并定期进行恢复演练。
只备份不验证恢复能力是不完整的。架构师需要关注 RPO 和 RTO。RPO 表示可接受的数据丢失时间,RTO 表示业务恢复所需时间。
5. 数据库权限控制
数据库账号应遵循最小权限原则。不同应用、不同环境、不同人员应使用不同账号。禁止应用系统使用超级管理员账号连接数据库。
6. 数据库审计
数据库审计可以记录用户对数据库的访问行为,包括登录、查询、修改、删除、授权等操作。对于核心业务数据,应开启审计并定期分析异常行为。
九、安全审计与日志管理
日志是安全分析和事故追踪的重要依据。在架构设计中,应统一规划日志采集、存储、分析、告警和留存策略。
1. 日志内容
安全日志通常包括用户登录日志、操作日志、接口访问日志、权限变更日志、系统异常日志、数据库操作日志和安全设备日志。
重要日志应记录操作主体、操作时间、源 IP、操作对象、操作结果和失败原因等信息。
2. 日志安全
日志本身也需要保护。应防止日志被篡改、删除或伪造。关键日志可以集中存储,采用只追加写入、权限隔离和完整性校验等措施。
3. 日志审计
通过日志审计,可以发现暴力破解、异常登录、越权访问、批量下载、接口攻击等安全事件。对于重要系统,应建立实时告警机制。
十、等级保护与安全管理
在我国信息安全建设中,网络安全等级保护是重要制度要求。软考架构师考试也经常涉及等级保护相关知识。
1. 等级保护基本概念
等级保护是指根据信息系统受到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织合法权益的影响程度,将系统划分为不同安全保护等级,并采取相应保护措施。
一般分为五级:
第一级:受到破坏后对相关权益造成一般损害。
第二级:受到破坏后对相关权益造成严重损害,或对社会秩序和公共利益造成一般损害。
第三级:受到破坏后对社会秩序和公共利益造成严重损害,或对国家安全造成一般损害。
第四级:受到破坏后对社会秩序和公共利益造成特别严重损害,或对国家安全造成严重损害。
第五级:受到破坏后对国家安全造成特别严重损害。
很多重要企业系统、政务系统、金融系统通常需要达到等保二级或三级要求。
2. 等保建设内容
等级保护通常包括定级、备案、建设整改、等级测评和监督检查等过程。
安全建设内容包括安全物理环境、安全通信网络、安全区域边界、安全计算环境、安全管理中心和安全管理制度等方面。
3. 安全管理制度
信息安全不仅是技术问题,也是管理问题。应建立账号管理、权限管理、资产管理、变更管理、漏洞管理、备份管理、应急响应和人员安全管理制度。
十一、常见安全架构设计思路
在软考架构师案例分析和论文写作中,常要求考生结合具体项目说明安全设计。可以从以下几个层次展开。
1. 安全需求分析
首先识别系统中的重要资产和安全需求。例如用户隐私数据、交易数据、业务接口、管理后台、数据库等。然后分析可能面临的威胁,如数据泄露、越权访问、接口攻击、SQL 注入、DDoS 等。
2. 分层防护设计
安全架构通常采用纵深防御思想。不能依赖单一防线,而应在网络层、主机层、应用层、数据层和管理层分别设置安全措施。
例如,网络层部署防火墙和 WAF,应用层进行身份认证和权限控制,数据层进行加密和备份,运维层进行日志审计和漏洞扫描。
3. 边界防护设计
对外服务应通过负载均衡、反向代理、WAF 或 API 网关统一入口。核心数据库不应直接暴露,管理后台应限制访问来源,并使用多因素认证。
4. 认证授权设计
系统应建立统一身份认证中心,支持单点登录、密码策略、多因素认证和会话管理。权限模型可采用 RBAC,将用户、角色、权限和资源进行统一管理。
5. 数据保护设计
敏感数据传输使用 HTTPS,存储时进行加密或脱敏。生产数据导出应审批,测试环境不得直接使用未脱敏生产数据。数据库应定期备份并进行恢复演练。
6. 接口安全设计
对于开放接口,应采用 Token、签名、时间戳、随机数等机制防止伪造和重放。接口应进行限流和熔断,防止恶意调用导致系统不可用。
7. 安全审计设计
系统应记录用户登录、关键操作、权限变更、数据导出、异常访问等日志。日志集中存储,并设置告警规则,便于发现和追踪安全事件。
8. 高可用与容灾设计
为了保障可用性,应采用集群部署、负载均衡、主备切换、数据备份、异地灾备等措施。对核心系统应明确 RTO 和 RPO 指标。
十二、考试中常见知识点速记
第一,机密性靠加密,完整性靠摘要和签名,可用性靠冗余和容灾。
第二,对称加密速度快,适合大数据量;非对称加密便于密钥交换和数字签名。
第三,数字签名用发送方私钥签名,接收方用发送方公钥验证。
第四,数字证书用于证明公钥和身份的对应关系,由 CA 签发。
第五,防重放攻击常用时间戳、随机数和序列号。
第六,防 SQL 注入主要用参数化查询和输入校验。
第七,RBAC 是企业系统最常用的权限模型。
第八,最小权限原则是安全设计的基本原则。
第九,HTTPS 提供传输加密、身份认证和完整性保护。
第十,日志审计用于事后追踪和安全分析。
第十一,等保建设包括定级、备案、整改、测评和监督检查。
第十二,安全架构设计应体现纵深防御、分区分域、最小权限、安全审计和持续改进。
十三、结论
信息安全是软考系统架构设计师考试中的重要内容,也是架构师在实际项目中必须具备的核心能力。信息安全建设不能停留在单点技术层面,而应从体系化、工程化和持续化角度进行设计。一个合格的安全架构应同时关注机密性、完整性、可用性、真实性、不可否认性和可审计性,并在网络、主机、应用、数据、运维和管理等多个层面形成纵深防御。
在备考软考架构师时,应重点掌握密码技术、身份认证、访问控制、网络安全、应用安全、数据库安全、日志审计、等级保护和安全架构设计方法。对于案例分析和论文题目,建议按照“安全需求分析—威胁识别—分层防护—关键技术措施—安全管理与审计—效果总结”的思路展开,这样既能体现理论基础,也能体现架构设计能力。
总体而言,信息安全不是一次性建设任务,而是贯穿系统全生命周期的持续过程。架构师只有将安全思想融入需求分析、系统设计、开发测试、部署运维和运营管理全过程,才能构建真正可靠、可信、可控的信息系统。