系统架构笔记-4-信息安全技术基础知识

知识要点

计算机信息系统安全主要包括以下四个方面:

  1. 实体安全。保护计算机设备、设施和其他媒体免遭地震、水灾、火灾、有害气体和其他环境事故(例如,电磁辐射等)破坏的措施和过程。实体安全又可分为环境安全、设备安全和媒体安全三个方面。

  2. 运行安全 。运行安全包括系统风险管理、审计追踪、备份与恢复、应急等四个方面的内容。运行安全是计算机信息系统安全的重要环节,其实质是保证系统的正常运行,不因偶然的或恶意的原因而遭到破坏,使系统可靠、连续地运行,服务不受中断。

  3. 信息安全 。信息安全是指防止系统中的信息被故意或偶然的非法授权访问、更改、破坏或使信息被非法系统识别和控制等。

  4. 人员安全。主要包括计算机使用人员的安全意识、法律意识和安全技能等。

对称加密算法也称为私钥加密算法,是指加密密钥和解密密钥相同,或者虽然不同,但从其中的任意一个可以很容易地推导出另一个。

常见的对称密钥算法有:DES、3DES、IDEA、RC5、AES。

非对称加密算法也称为公钥加密算法,是指加密密钥和解密密钥完全不同,其中一个为公钥,另一个为私钥,并且不可能从任何一个推导出另一个。 (公钥加密,私钥解密)

常见的非对称加密算法有:RSA、EIGamal、背包算法、Rabin、D-H。

报文摘要 用于为发送的报文生成一个非常小的摘要信息,这个摘要信息保证原报文的完整性。即原报文只要有一位被改变,则摘要信息就会不匹配,所以是用于防止篡改。

数字签名 用发送方的私钥对摘要做加密不仅保证了摘要的私密性,还可以防止抵赖,因为只有匹配的公钥能够解开。也就是说,如果用某人的公钥能够解开报文,说明就是某人做的。

CA (Certificate Authority) 是发放和管理数字证书的权威机构。证书的颁发者需要用自己的私钥对证书内容进行签名,防止对证书内容的篡改,因此用 CA 的公钥可验证数字证书的有效性。

数字证书的内容包含 CA 的信息、用户信息、用户公钥、CA 签发时间和有效期等。其他用户使用数字证书中包含的该用户公钥来加密文件以保密。

案例分析

试题五(25 分)

阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答问题 1 - 3。 【说明】 某公司自主研发的网络教学平台因业务扩展,导致系统访问量不断增大,现有系统访问速度缓慢,有时甚至出现系统故障瘫痪等现象。面对这一情况,公司召开项目组讨论会议,寻求该商务平台的改进方案。讨论会上,王工提出可以利用镜像站点、CDN 内容分发等方式解决并发访问量带来的问题。而李工认为,仅仅依靠上述外网加速技术不能完全解决系统现有问题,如果访问量持续增加,系统仍存在崩溃的可能。李工提出应同时结合 Web 内网加速技术优化系统改进方案,如综合应用负载均衡、缓存服务器、Web 应用服务器、分布式文件系统、分布式数据库等。经过讨论,公司最终决定采用李工的思路,完成改进系统的设计方案。

【问题 3】(5 分) 针对 B2C 商务购物平台的网络威胁始终存在,鉴别的基本目的是防止其他实体占用和独立操作被鉴别实体的身份。鉴别的方式主要有哪些?

参考答案:

鉴别的方式主要基于以下 5 种。

(1)已知的:如一个秘密的口令。

(2)拥有的,如 IC 卡、令牌等。

(3)不改变的特性:如生物特征。

(4)相信可靠的第三方建立的鉴别(递推)。

(5)环境(如主机地址等)。

试题五(25 分)

请详细阅读有关 Web 架构设计方面的叙述,在答题纸上回答问题 1 至问题 3。

【说明】 某公司拟开发一个物流车辆管理系统,该系统可支持各车辆实时位置监控、车辆历史轨迹管理、违规违章记录管理、车辆固定资产管理、随车备品及配件更换记录管理、车辆寿命管理等功能需求。其非功能性需求如下:

(1)系统应支持大于 50 个终端设备的并发请求;

(2)系统应能够实时识别车牌,识别时间应小于 1s;

(3)系统应 7×24 小时工作;

(4)具有友好的用户界面;

(5)可抵御常见 SQL 注入攻击;

(6)独立事务操作响应时间应小于 3s;

(7)系统在故障情况下,应在 1 小时内恢复;

(8)新用户学习使用系统的时间少于 1 小时。

面对系统需求,公司召开项目组讨论会议,制订系统设计方案,最终决定基于分布式架构设计实现该物流车辆管理系统,应用 Kafka、Redis 数据缓存等技术实现对物流车辆自身数据、业务数据进行快速、高效的处理。

【问题 3】(7 分)该物流车辆管理系统需抵御常见的 SQL 注入攻击,请用 200 字以内的文字说明什么是 SQL 注入攻击,并列出两种抵御 SQL 注入攻击的方式。

参考答案:

SQL 注入攻击,就是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。

抵御 SQL 注入攻击:

1、使用 PreparedStatement;

2、使用存储过程;

3、验证/过滤输入;

4、专业的安全产品。

解析:

SQL 注入即是指应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

SQL 注入的主要防范措施包括:

分级管理:对用户进行分级管理,严格控制用户的权限;

参数校验:编写 SQL 时禁止直接传值入 SQL,必须通过设置参数传递变量值;

参数过滤:对参数值预过滤敏感内容,如 and,or,select,分号,双引号等;

安全参数:使用编程语言中提供的数据库操作安全参数的强制执行检查特性;

漏洞扫描:利用 SQL 漏洞扫描工具及时扫描系统存在的相应漏洞;

多层验证:数据输入必须经过严格的验证才能进入系统,拒绝未通过验证的输入直接被访问数据库;

数据库加密:对数据库敏感信息进行加密,传统加密方法包括对称加密、非对称加密和不可逆加密。

相关推荐
幼儿园老大*1 小时前
【系统架构】如何设计一个秒杀系统?
java·经验分享·后端·微服务·系统架构
m0_674031432 天前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
2401_897592642 天前
系统架构演进:从单体到微服务的智能转型
前端·微服务·架构·系统架构
敲上瘾2 天前
深入理解Linux系统内存中文件结构以及缓冲区,模拟实现c语言库文件接口
linux·服务器·c语言·c++·系统架构
犬余4 天前
漫话架构师|什么是系统架构设计师(开篇)
架构·软件工程·软考·系统架构设计师
huaqianzkh4 天前
了解效率及其子特性:软件性能优化的关键
性能优化·系统架构
小哈里4 天前
【架构设计】现代软件交付中的灵活性与可靠性———云原生与不可变基础设施(微服务/容器化/持续交付,计算/存储/网络)
网络·微服务·云原生·系统架构·云计算
huaqianzkh4 天前
了解MyBatis:一个灵活高效的O/R Mapping解决方案
系统架构·mybatis
huaqianzkh5 天前
数据持久层:构建应用程序与数据源的桥梁
java·数据库·系统架构
winin20245 天前
软考高级5个资格、中级常考4个资格简介及难易程度排序
软考