70e368e235
Deploy Examination / deploy (push) Successful in 7s
New topic group: 网络安全专题 (cybersecurity) Subtopics: - web-security: Web 安全基础 (34 questions) - crypto-basics: 密码学基础 (34 questions) - buffer-overflow: 缓冲区溢出与漏洞利用 (34 questions) - os-security: 操作系统安全 (34 questions) - network-attack: 网络攻防 (34 questions) - secure-coding: 安全编程实践 (34 questions) Question types per subtopic: - single_choice × 20 - true_false × 10 - short_answer × 3 - code_reading × 1 Difficulty range: 1-3 (基础)
412 lines
18 KiB
JSON
412 lines
18 KiB
JSON
{
|
||
"topic": "crypto-basics",
|
||
"type": "single_choice",
|
||
"schema_version": "1.0.0",
|
||
"generated": "2026-09-17T00:00:00+08:00",
|
||
"questions": [
|
||
{
|
||
"id": "sc-001",
|
||
"type": "single_choice",
|
||
"difficulty": 1,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "以下哪种加密算法属于对称加密?",
|
||
"options": {
|
||
"A": "AES",
|
||
"B": "RSA",
|
||
"C": "ECC",
|
||
"D": "Diffie-Hellman"
|
||
},
|
||
"answer": "A",
|
||
"explanation": "AES(Advanced Encryption Standard)是对称加密算法,加密和解密使用相同的密钥。RSA 和 ECC 都是非对称加密算法,使用公钥/私钥对。Diffie-Hellman 是密钥交换协议,本身不是加密算法,但属于非对称密码学范畴。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-002",
|
||
"type": "single_choice",
|
||
"difficulty": 1,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "AES 支持的密钥长度不包括以下哪一项?",
|
||
"options": {
|
||
"A": "128 位",
|
||
"B": "192 位",
|
||
"C": "256 位",
|
||
"D": "512 位"
|
||
},
|
||
"answer": "D",
|
||
"explanation": "AES 标准支持三种密钥长度:128 位、192 位和 256 位,分别对应 AES-128、AES-192 和 AES-256。512 位不是 AES 标准定义的密钥长度。更长的密钥通常意味着更高的安全性,但 AES 最高只定义到 256 位。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-003",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "关于 DES 和 3DES,以下说法正确的是?",
|
||
"options": {
|
||
"A": "DES 使用 128 位密钥,安全性很高",
|
||
"B": "3DES 通过对数据执行三次 DES 加密来提升安全性",
|
||
"C": "DES 目前仍被认为是最安全的对称加密标准",
|
||
"D": "3DES 的密钥有效长度为 168 位,不存在任何已知弱点"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "3DES(Triple DES)通过对数据执行三次 DES 加密(通常使用加密-解密-加密 EDE 模式)来提升安全性。DES 实际使用 56 位密钥(加 8 位校验),已被证明不够安全。3DES 的有效密钥长度为 112 位(两密钥模式)或 168 位(三密钥模式),但存在中间相遇攻击等弱点,NIST 已在 2023 年正式废弃 3DES。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-004",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "RSA 算法的安全性基于以下哪个数学难题?",
|
||
"options": {
|
||
"A": "离散对数问题",
|
||
"B": "大整数质因数分解问题",
|
||
"C": "背包问题",
|
||
"D": "椭圆曲线离散对数问题"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "RSA 的安全性基于大整数质因数分解的困难性:将两个大素数相乘很容易,但将乘积分解回原来的两个素数在计算上极其困难。离散对数问题对应的是 Diffie-Hellman 和 DSA 等算法的基础。椭圆曲线离散对数问题(ECDLP)是 ECC 算法的安全性基础。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-005",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "与 RSA 相比,ECC(椭圆曲线密码学)的主要优势是什么?",
|
||
"options": {
|
||
"A": "加解密速度更快,但需要更长的密钥",
|
||
"B": "在相同安全强度下,所需密钥长度更短",
|
||
"C": "ECC 不依赖任何数学难题,因此绝对安全",
|
||
"D": "ECC 只能用于签名,不能用于加密"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "ECC 最大的优势是在提供相同安全强度的情况下,所需的密钥长度远小于 RSA。例如 256 位 ECC 密钥的安全强度约等于 3072 位 RSA 密钥,这意味着更小的存储空间、更快的计算和更低的带宽消耗。ECC 的安全性基于椭圆曲线离散对数问题,并非绝对安全,且 ECC 既可用于密钥交换和加密,也可用于数字签名。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-006",
|
||
"type": "single_choice",
|
||
"difficulty": 1,
|
||
"tags": [
|
||
"密码学",
|
||
"哈希"
|
||
],
|
||
"question": "以下关于哈希函数的描述,正确的是?",
|
||
"options": {
|
||
"A": "哈希函数是可逆的,可以从哈希值恢复原始数据",
|
||
"B": "哈希函数将任意长度的输入映射为固定长度的输出",
|
||
"C": "哈希函数的输出长度随输入长度线性增长",
|
||
"D": "不同的输入一定产生不同的哈希值"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "哈希函数的核心特性是将任意长度的输入映射为固定长度的输出,例如 SHA-256 始终输出 256 位。哈希函数是单向函数,不可从哈希值逆向恢复原始数据。由于输出空间有限而输入空间无限,理论上不同的输入可能产生相同的哈希值(碰撞),所以\"不同输入一定产生不同哈希值\"是错误的。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-007",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"哈希"
|
||
],
|
||
"question": "MD5 算法目前被认为不安全的主要原因是什么?",
|
||
"options": {
|
||
"A": "MD5 的输出长度只有 32 位,太短",
|
||
"B": "MD5 已被发现存在实际可行的碰撞攻击",
|
||
"C": "MD5 是对称加密算法,密钥太短",
|
||
"D": "MD5 的计算速度太慢,不适合实际应用"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "MD5 的输出长度实际是 128 位(通常以 32 位十六进制字符串表示),不是 32 位。MD5 不是加密算法而是哈希函数,不存在密钥的概念。MD5 的计算速度其实很快,但这反而有利于碰撞攻击。MD5 不安全的根本原因是 2004 年王小云教授等人展示了实际可行的碰撞攻击,此后碰撞实例不断被构造出来,因此不应再用于安全场景。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-008",
|
||
"type": "single_choice",
|
||
"difficulty": 1,
|
||
"tags": [
|
||
"密码学",
|
||
"哈希"
|
||
],
|
||
"question": "SHA-256 产生的哈希值长度是多少位?",
|
||
"options": {
|
||
"A": "128 位",
|
||
"B": "160 位",
|
||
"C": "256 位",
|
||
"D": "512 位"
|
||
},
|
||
"answer": "C",
|
||
"explanation": "SHA-256 是 SHA-2 家族的成员,顾名思义,它产生 256 位(32 字节)的哈希值,通常用 64 个十六进制字符表示。SHA-1 产生 160 位输出,SHA-512 产生 512 位输出。128 位是 MD5 的输出长度。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-009",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"数字签名"
|
||
],
|
||
"question": "数字签名的主要功能不包括以下哪一项?",
|
||
"options": {
|
||
"A": "身份认证",
|
||
"B": "数据完整性保护",
|
||
"C": "数据加密",
|
||
"D": "不可否认性"
|
||
},
|
||
"answer": "C",
|
||
"explanation": "数字签名的三大核心功能是:身份认证(确认签名者身份)、数据完整性(确保数据未被篡改)和不可否认性(签名者不能否认签名行为)。数字签名本身不提供数据加密功能,虽然签名过程中会用到非对称加密技术,但签名结果并不对原始数据进行保密处理。若需同时加密,通常需要将数字签名与加密机制结合使用。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-010",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"数字签名"
|
||
],
|
||
"question": "在数字签名过程中,发送方用什么密钥对消息摘要进行签名?",
|
||
"options": {
|
||
"A": "接收方的公钥",
|
||
"B": "接收方的私钥",
|
||
"C": "发送方的公钥",
|
||
"D": "发送方的私钥"
|
||
},
|
||
"answer": "D",
|
||
"explanation": "数字签名的基本流程是:发送方先对消息计算哈希得到消息摘要,然后用自己的私钥对摘要进行加密(签名)。接收方收到后用发送方的公钥解密(验签),再与自己计算的摘要比对。使用发送方的私钥签名可以确保只有持有私钥的人才能生成该签名,从而实现身份认证和不可否认性。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-011",
|
||
"type": "single_choice",
|
||
"difficulty": 1,
|
||
"tags": [
|
||
"密码学",
|
||
"PKI",
|
||
"证书"
|
||
],
|
||
"question": "PKI(公钥基础设施)中,CA 的主要职责是什么?",
|
||
"options": {
|
||
"A": "生成对称加密密钥",
|
||
"B": "颁发和管理数字证书",
|
||
"C": "对所有网络流量进行加密",
|
||
"D": "存储用户的私钥"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "CA(Certificate Authority,证书颁发机构)是 PKI 的核心组件,主要负责颁发、续期、吊销和管理数字证书。CA 通过验证实体(个人、组织、服务器等)的身份后,将其公钥与身份信息绑定在数字证书中。CA 不负责生成对称密钥或加密所有网络流量,而用户的私钥应由用户自己安全保管,不应存储在 CA 端。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-012",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"PKI",
|
||
"证书"
|
||
],
|
||
"question": "X.509 数字证书中通常不包含以下哪项信息?",
|
||
"options": {
|
||
"A": "证书持有者的公钥",
|
||
"B": "证书持有者的私钥",
|
||
"C": "颁发该证书的 CA 信息",
|
||
"D": "证书的有效期"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "X.509 证书包含持有者的公钥、持有者的身份信息(如域名、组织名)、颁发机构(CA)的信息、有效期、序列号以及 CA 的数字签名等内容。证书中绝对不包含持有者的私钥,私钥必须由持有者自行秘密保管。证书的本质是将公钥与身份信息绑定的可信声明,如果包含私钥就会导致严重的安全问题。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-013",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"PKI",
|
||
"证书"
|
||
],
|
||
"question": "当浏览器访问 HTTPS 网站时发现证书已过期,这违反了以下哪项证书检查?",
|
||
"options": {
|
||
"A": "证书链验证",
|
||
"B": "有效期检查",
|
||
"C": "证书吊销检查",
|
||
"D": "域名匹配检查"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "证书包含一个明确的有效期(notBefore 和 notAfter 字段),浏览器在验证证书时会检查当前时间是否在有效期内。如果证书已过期,说明有效期检查失败。证书链验证是检查证书是否由受信任的 CA 签发;吊销检查是通过 CRL 或 OCSP 确认证书是否被提前撤销;域名匹配检查是确认证书中的域名与实际访问的域名一致。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-014",
|
||
"type": "single_choice",
|
||
"difficulty": 3,
|
||
"tags": [
|
||
"密码学",
|
||
"PKI"
|
||
],
|
||
"question": "以下哪种机制用于实时查询证书是否已被吊销?",
|
||
"options": {
|
||
"A": "CRL(证书吊销列表)",
|
||
"B": "OCSP(在线证书状态协议)",
|
||
"C": "TLS 握手",
|
||
"D": "DNS 解析"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "OCSP(Online Certificate Status Protocol,在线证书状态协议)允许客户端实时向 OCSP 响应器查询单个证书的吊销状态,相比 CRL 更加即时和高效。CRL 虽然也用于检查证书吊销状态,但它是周期性发布的完整列表,实时性较差。TLS 握手是建立加密连接的过程,DNS 解析是域名到 IP 的映射,两者都不是证书吊销检查机制。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-015",
|
||
"type": "single_choice",
|
||
"difficulty": 2,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "关于分组密码的工作模式,以下哪项说法正确?",
|
||
"options": {
|
||
"A": "ECB 模式对相同明文块总是产生相同的密文块,因此模式安全性较差",
|
||
"B": "所有工作模式都能完全防止重放攻击",
|
||
"C": "CBC 模式不需要初始化向量(IV)",
|
||
"D": "CTR 模式将分组密码转换为流密码,因此不需要密钥"
|
||
},
|
||
"answer": "A",
|
||
"explanation": "ECB(Electronic Codebook)模式对每个明文块独立加密,相同明文块总是产生相同密文块,这会泄露数据模式,因此安全性较差,不适合加密大量数据。CBC 模式需要一个随机的初始化向量(IV)来确保相同明文产生不同密文。CTR 模式虽然将分组密码转换为类似流密码的模式,但仍需要密钥来驱动分组加密运算。工作模式本身并不能防止重放攻击。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-016",
|
||
"type": "single_choice",
|
||
"difficulty": 3,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "Diffie-Hellman 密钥交换协议容易受到以下哪种攻击?",
|
||
"options": {
|
||
"A": "已知明文攻击",
|
||
"B": "中间人攻击",
|
||
"C": "差分密码分析",
|
||
"D": "线性密码分析"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "原始的 Diffie-Hellman 密钥交换协议不包含身份认证机制,因此容易受到中间人攻击(MITM)。攻击者可以分别与通信双方建立独立的密钥交换,从而拦截和篡改所有通信内容。已知明文攻击、差分密码分析和线性密码分析主要针对分组密码,不是 DH 密钥交换的主要威胁。实际应用中通常结合数字证书或数字签名来抵御中间人攻击。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-017",
|
||
"type": "single_choice",
|
||
"difficulty": 3,
|
||
"tags": [
|
||
"密码学",
|
||
"哈希"
|
||
],
|
||
"question": "HMAC(基于哈希的消息认证码)相比普通哈希函数多了什么安全特性?",
|
||
"options": {
|
||
"A": "更快的计算速度",
|
||
"B": "更长的输出长度",
|
||
"C": "消息认证,能验证消息来源和完整性",
|
||
"D": "数据加密能力"
|
||
},
|
||
"answer": "C",
|
||
"explanation": "HMAC 将密钥与哈希函数结合使用,能够同时验证消息的完整性和来源真实性(消息认证)。只有持有正确密钥的人才能生成有效的 HMAC 值,而普通哈希函数不涉及密钥,任何人计算同一消息的哈希值都相同,因此无法验证消息来源。HMAC 并不提供加密能力,其输出长度与所使用的哈希函数相同,计算速度也与底层哈希函数相当。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-018",
|
||
"type": "single_choice",
|
||
"difficulty": 3,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "以下哪种攻击方式针对的是密钥交换过程而非加密算法本身?",
|
||
"options": {
|
||
"A": "暴力破解",
|
||
"B": "生日攻击",
|
||
"C": "中间人攻击",
|
||
"D": "彩虹表攻击"
|
||
},
|
||
"answer": "C",
|
||
"explanation": "中间人攻击针对的是密钥交换或通信建立过程,攻击者在通信双方之间插入自己,分别与双方建立独立连接。暴力破解是尝试所有可能的密钥来破解加密算法;生日攻击是针对哈希函数碰撞的攻击方法;彩虹表攻击是针对密码哈希的预计算表攻击。这三种攻击都不是直接针对密钥交换过程的。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-019",
|
||
"type": "single_choice",
|
||
"difficulty": 3,
|
||
"tags": [
|
||
"密码学",
|
||
"加密",
|
||
"密钥管理"
|
||
],
|
||
"question": "在密钥管理的最佳实践中,以下哪项做法是正确的?",
|
||
"options": {
|
||
"A": "将加密密钥硬编码在源代码中以便于使用",
|
||
"B": "所有系统共享同一个密钥以简化管理",
|
||
"C": "定期轮换密钥,并安全销毁不再使用的旧密钥",
|
||
"D": "将密钥与加密数据存储在同一个数据库中"
|
||
},
|
||
"answer": "C",
|
||
"explanation": "定期轮换密钥是密钥管理的核心最佳实践,可以限制单个密钥泄露造成的影响范围。旧密钥不再使用时应安全销毁,防止被攻击者获取。将密钥硬编码在源代码中会导致密钥随代码泄露;所有系统共享同一密钥违反最小权限原则,且一旦泄露影响范围巨大;密钥与加密数据存储在同一位置违反了密钥分离原则,攻击者获取数据的同时也会获取解密密钥。",
|
||
"source": null,
|
||
"related": []
|
||
},
|
||
{
|
||
"id": "sc-020",
|
||
"type": "single_choice",
|
||
"difficulty": 1,
|
||
"tags": [
|
||
"密码学",
|
||
"加密"
|
||
],
|
||
"question": "对称加密和非对称加密的根本区别是什么?",
|
||
"options": {
|
||
"A": "对称加密速度慢,非对称加密速度快",
|
||
"B": "对称加密使用同一密钥加密和解密,非对称加密使用不同的密钥",
|
||
"C": "对称加密不安全,非对称加密绝对安全",
|
||
"D": "对称加密只能加密文本,非对称加密可以加密任何数据"
|
||
},
|
||
"answer": "B",
|
||
"explanation": "对称加密和非对称加密的根本区别在于密钥的使用方式:对称加密使用同一个密钥进行加密和解密,通信双方必须安全地共享该密钥;非对称加密使用一对密钥(公钥和私钥),公钥加密的数据只有对应私钥才能解密。实际上对称加密通常比非对称加密速度更快,两者都能加密各种类型的数据,且两者都不是绝对安全的。",
|
||
"source": null,
|
||
"related": []
|
||
}
|
||
]
|
||
} |