软件设计师考试属于全国计算机技术与软件专业技术资格(水平)考试中的中级资格,由人力资源和社会保障部、工业和信息化部共同组织实施。2026年软件设计师考试大纲和教材未改版,仍沿用《软件设计师考试大纲》(2018年审定通过版),因此“软件安全性”相关内容继续作为科目一《计算机与软件工程知识》中的稳定考点出现。该模块通常以单项选择题形式考查,分值约5分,占比约6%—7%,虽然不属于最高分值模块,但考点集中、重复率较高,适合通过系统梳理稳定拿分。
一、软件安全性在考试大纲中的位置
软件安全性相关内容主要分布在“网络与信息安全知识”模块,同时也与“系统开发和运行知识”中的软件质量、容错机制、安全测试等内容存在交叉。其核心目标是考查考生是否理解软件系统在运行环境中可能面临的安全威胁,是否能够选择合适的加密、认证、访问控制、审计和防护机制,并具备基本的合规意识。
在科目一中,信息安全通常与计算机网络、数据库、操作系统、软件工程等模块共同出现。例如,考查HTTPS时会涉及加密协议;考查数据库时会涉及权限管理和SQL注入防范;考查软件测试时会涉及安全测试;考查软件质量模型时会涉及安全性、可靠性等质量特性。
二、信息安全基础概念
信息安全的基本属性通常包括保密性、完整性、可用性、抗抵赖性和可控性。保密性强调信息不被未授权主体获取;完整性强调信息在传输、存储和处理过程中不被篡改;可用性强调授权用户在需要时能够正常使用系统资源;抗抵赖性强调行为发生后不能被否认;可控性强调对信息传播和使用过程可进行有效管理。
考试中常出现“某攻击破坏了哪种安全属性”的题目。例如,拒绝服务攻击主要破坏可用性;数据被篡改主要破坏完整性;信息被窃听主要破坏保密性;数字签名则主要用于实现完整性保护和抗抵赖性。
三、加密与解密技术
加密技术是软件安全性的高频考点,重点掌握对称加密、非对称加密和信息摘要算法的区别。
对称加密使用相同密钥进行加密和解密,典型算法包括DES、3DES和AES。其优点是运算速度快,适合大量数据加密;缺点是密钥分发和管理较困难。
非对称加密使用公钥和私钥配对,典型算法是RSA。其优点是密钥管理相对方便,适合密钥交换、数字签名和身份认证;缺点是运算速度较慢,通常不直接用于大规模数据加密。
信息摘要算法用于生成固定长度的消息摘要,典型算法包括MD5和SHA系列。摘要算法本身不可逆,主要用于校验数据完整性,不能称为“加密解密”。
考试常考判断:对称加密强调效率,非对称加密强调安全性和密钥管理,数字签名通常采用“信息摘要+非对称加密”的组合方式。
四、数字签名、数字证书与CA认证
数字签名的基本原理是发送方先对消息生成摘要,再使用自己的私钥对摘要进行加密,接收方使用发送方公钥验证签名。它可以确认消息来源、保证消息完整性,并提供抗抵赖性。
数字证书由认证中心签发,用于证明公钥与持有者身份之间的绑定关系。CA是可信第三方机构,负责证书的申请审核、签发、更新、吊销和管理。PKI即公钥基础设施,是支撑数字证书、密钥管理和信任体系的重要框架。
常见考点包括:数字证书中包含持有者身份信息、公钥、证书有效期、签发机构信息等;证书被吊销后不能继续使用;浏览器访问HTTPS网站时会验证服务器证书。
五、常见网络威胁与攻击类型
软件设计师考试中的网络威胁考点通常不要求深入实现细节,但要求能够识别攻击类型并理解其危害。
常见攻击包括:
- 拒绝服务攻击/分布式拒绝服务攻击:通过大量请求耗尽系统资源,破坏可用性。
- SQL注入:攻击者向数据库查询中插入恶意语句,可能导致数据泄露、篡改或删除。
- 跨站脚本攻击:攻击者在网页中注入恶意脚本,窃取用户Cookie或会话信息。
- 跨站请求伪造:诱导用户在已登录状态下执行非预期操作。
- 木马、病毒、蠕虫:分别体现为伪装传播、寄生复制和自我扩散等特征。
- 网络嗅探:截获网络流量,威胁保密性。
- 中间人攻击:在通信双方之间拦截、篡改或伪造数据。
- 端口扫描、口令破解、缓冲区溢出:属于常见的入侵前探测或利用手段。
备考时要特别注意区分:SQL注入主要威胁数据库安全;XSS主要威胁客户端浏览器和用户会话;CSRF主要利用用户已认证状态;DDoS主要影响系统可用性。
六、网络安全控制方式与防范体系
网络安全控制通常分为预防、检测、响应和恢复几个层次。
防火墙主要用于访问控制,根据源地址、目的地址、端口和协议等规则过滤流量。入侵检测系统用于发现可疑行为,入侵防御系统则可在检测基础上进行阻断。漏洞扫描用于发现系统和应用中的已知漏洞,安全审计用于记录和分析用户行为。
其他常见安全机制包括:
- VPN:通过加密通道实现远程安全访问。
- SSL/TLS:用于保护Web通信,HTTPS即HTTP over SSL/TLS。
- 访问控制:包括基于角色的访问控制、最小权限原则等。
- 身份认证:包括口令认证、多因素认证、数字证书认证等。
- 日志审计:记录登录、操作、异常事件,用于追溯和责任认定。
需要注意的是,软件设计师考试对安全设备原理的考查深度低于信息安全工程师考试,通常只要求掌握基本概念、适用场景和主要作用。
七、安全等级与相关法律法规
我国网络安全合规体系主要包括《网络安全法》《数据安全法》《个人信息保护法》以及网络安全等级保护制度。等级保护2.0要求对信息系统进行定级、备案、安全建设整改、等级测评和监督检查。
软件设计师考试中,这一部分通常以记忆性考点出现,例如:个人信息处理应遵循合法、正当、必要原则;重要数据和核心数据需要加强保护;网络运营者应当履行安全保护义务;发生安全事件应及时处置并报告。考生不需要像信息安全工程师那样深入掌握测评流程,但应理解“合规”“最小权限”“数据保护”“日志留存”“安全审计”等基本概念。
八、软件质量模型中的安全性
在软件质量方面,ISO/IEC 9126质量模型中的安全性属于重要特性之一,主要指软件保护信息和数据的能力,包括防止未授权访问、保证数据完整性、提供身份认证和授权控制等。
此外,软件容错机制也与安全性密切相关,例如输入校验、异常处理、事务回滚、冗余设计、备份恢复、权限分离等。考试中可能通过案例考查:某系统未对用户输入进行校验,导致SQL注入;某系统未记录操作日志,导致无法追溯责任;某系统权限设计不当,导致越权访问。
九、备考建议与易错点
备考软件安全性模块,建议按“概念—算法—攻击—防护—法规—质量特性”六条主线整理笔记。重点区分对称加密与非对称加密、数字签名与数字证书、防火墙与入侵检测、保密性与完整性、可用性与抗抵赖性。
典型易错点包括:
- MD5、SHA属于摘要算法,不是加密算法;
- 数字签名使用私钥签名、公钥验证;
- HTTPS的安全基础是SSL/TLS协议;
- DDoS主要破坏可用性,而不是保密性;
- 防火墙侧重访问控制,入侵检测侧重发现异常;
- 等级保护制度强调定级、备案、测评和整改。
整体来看,软件安全性模块分值不高,但题型稳定、范围明确。只要掌握加密算法分类、数字签名流程、常见攻击类型、主要安全设备作用以及基本法律法规,即可在科目一中较稳定地获得这部分分数。