SharedCourses/docs/courses/软件工程学院/计算机安全/2024-2025学年下学期期末.md

396 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 2024-2025学年下学期期末
author:
- name: KirisameVanilla
url: https://vanillaaaa.org/
- name: psycho Lee
url: https://github.com/psycho0816
email: 10235101500@stu.ecnu.edu.cn
---
## 2024-2025学年下学期期末试卷(不全)
### 分析题
1. 计算机安全 CIA 三元组指的是哪三个方面(3分) , 并简述对称加密和非对称加密如何实现这三个方面的(7分) ?
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
2. 基于口令的认证中, 使用 256位哈希值 和 16位盐值。用户的口令长度为8个字符, 每个字符可能是:
- 26个小写字母(az)
- 26个大写字母(AZ)
- 10个数字(09)
1. 给出哈希值的总数量以及盐值的总数量;(4分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
2. 给出口令的总数量;(2分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
3. 攻击者需要进行多少次攻击? 请简述具体的攻击过程。(4分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
3. 为了实施 DNS 放大攻击, 攻击者必须触发中间服务器产生足够大的 DNS 响应数据包, 以超过目标组织网络链路的容量。目标系统的链路带宽是 8 Mbps
1. 每个 DNS 响应数据包大小为 1000 字节(忽略封装开销) , 攻击者每秒必须触发多少个这样的数据包才能淹没该链路? (3分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
2. 攻击者发送的请求数据包为60字节, 请问占据了链路中多少带宽? (3分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
3. 给出检测DNS放大攻击的两种方法。(4分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
4. 回答下列问题
1. 恶意软件的三种传播机制? (3分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
2. 恶意软件的四种有效载荷? (2分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
3. 为了防止恶意软件攻击, 如何加固操作系统? (5分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
5. 以下是一段 PHP 登录验证代码
``` php
// 获得用户输入的ID和passwd
$username = ...;
$password = ...;
// SQL查询
SELECT username, password FROM users WHERE username = '$username' AND password = '$password';
// 验证逻辑
if ($user && password_verify($password, $user['password'])) {
// 登录成功
echo "登录成功!欢迎访问系统。";
} else {
// 登录失败
echo "登录失败无效的ID或密码。";
}
```
SQL中, mysql_real_escape_string()函数可以转义特殊字符, 使其不能发挥作用
1. 上述代码存在什么攻击漏洞? 攻击者如何绕过安全检查利用该漏洞? (5分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
2. 除了 SQL 注入攻击漏洞, 还可以利用哪些攻击方法? 并解释原因。(5分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
3. 如何检测和过滤用户输入? 请修改代码以修复漏洞。(5分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***
4. 给出检测用户输入的一种方法。(5分)
<details>
<summary>答案:</summary>
CIA 三元组是
- 机密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability
对称加密:
- 机密性: 使用单一密钥对数据进行加密和解密
- 完整性: 使用消息验证码来确保消息的完整性, 而消息验证码基于对称加密
- 可用性: 不提供
非对称加密:
- 机密性: 使用接收方的公钥加密, 只有私钥持有者可以解密
- 完整性: 使用数字签名确保完整性, 发送方用私钥对消息摘要签名, 接收方用其公钥验证
- 可用性: 不提供
</details>
***