系统架构笔记-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 天前
进程与线程以及如何查看
linux·系统架构
oioihoii1 天前
桌面图形界面生成原理:从流水灯到电脑屏幕
系统架构
颯沓如流星2 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构
柔弱女子爱java2 天前
spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间
java·笔记·后端·spring·架构·系统架构
云空2 天前
《 QT 5.14.1 类库模块列表详述》
开发语言·qt·系统架构
星原飞火3 天前
2-2-18-16 QNX系统架构之自适应分区
车载系统·系统架构·qnx·blackberry
重生之我是数学王子4 天前
ARM原理
arm开发·系统架构
silver6874 天前
中间件介绍
系统架构
亭墨4 天前
linux0.11源码分析第二弹——setup.s内容
linux·驱动开发·学习·系统架构
田超凡6 天前
M4Pro内核MacOS brew安装docker爬坑
微服务·云原生·java-ee·系统架构