高校核心系统密评方案:教务/一卡通/科研/图书馆一体化合规
高校核心系统密评这件事,正在从"单系统过关"走向"一体化合规"。过去一所高校做密评,往往只盯住一两个系统;现在测评机构看的是教务、一卡通、科研、图书馆这些核心系统,是否在同一套密码应用框架下落地的。某高校在一次密评预评估中,因为教务系统的登录凭据、科研数据、图书馆元数据各自用了不同的、不可审计的密码措施,被要求限期整改。
坐标先立:高校场景的合规可以按"身份鉴别---访问控制---数据完整性---数据保密性"四个密码应用层面来拆,这是 GB/T 39786 商用密码应用安全性评估的通用框架。高校的特殊点在于,它同时拥有高敏感的个人信息(学籍、成绩、一卡通余额)和高价值的科研数据,而且系统多、归属部门杂。本文切入的是最容易被做浅的一块:高校核心系统密评,怎么把教务、一卡通、科研、图书馆四套系统,落到可核查的一体化证据链上。
01 | 高校核心系统密评这件事,难在哪儿
高校核心系统密评的复杂度,不在技术,而在"系统散、层面缺、密钥乱、留痕断",这正对应教育部信息系统等保定级指南对核心系统的定级与举证要求。具体难在下面五处。
首要难点在身份鉴别各自一套。 教务、一卡通、科研、图书馆各自有登录体系,有的用口令、有的用令牌,密码算法不统一,密评要求的"采用密码技术进行身份鉴别"难以举证。很多高校卡在三级等保密评达标上,正是因为四层面都没法统一举证。
其次,访问控制缺时效与可审计。 一卡通门禁、消费令牌发出去后,过期与否、是否被篡改没有统一的密码校验,高校三级等保密评达标里访问控制层面的举证就弱。
再有一处难点在数据完整性没有统一保障。 科研数据从提交到归档、图书馆元数据从编目到检索,中间是否被篡改缺乏 SM3、SM2 这类完整性保护,出了问题说不清。
还有一处难点在密钥各自为政。 四套系统各有各的加密密钥,有的写在配置里、有的根本没有分域,根密钥保护不到位,数据保密性层面自证困难。
最后一处难点在证据无法串联。 身份做了签名、存储做了加密、使用做了审计,但三件事三套台账,测评来查时拼不出"这条数据从生成到归档全程密码保护"的证据链。
把这五处难点串起来看,这套密评的核心矛盾是:测评看的是四层面闭环,而学校交付的是孤岛式的安全动作。
02 | 机制拆解:高校核心系统密评的四层面
先把四个层面各自的职责划清楚,再看它们怎么拼成证据链。
| 层面 | 对应密评维度 | 要解决的事 | 典型手段 | 缺了会怎样 |
|---|---|---|---|---|
| 身份鉴别 | 身份鉴别 | 操作员、师生登录凭据 | SM2 数字签名、证书 + 挑战应答 | 登录凭据可被伪造 |
| 访问控制 | 访问控制 | 令牌、权限怎么管控 | SM2 签名令牌 + 时效校验 | 过期令牌仍可用 |
| 数据完整性 | 数据完整性 | 科研、元数据是否被篡改 | SM3 哈希 + SM2 签名 | 篡改无感知 |
| 数据保密性 | 数据保密性 | 敏感字段怎么存 | SM4 字段加密 + 按系统分域密钥 | 库文件泄露即裸奔 |
这四层的边界要讲清楚:身份鉴别只解决"你是谁",不解决"你能访问什么";访问控制依赖身份鉴别给出的可信身份;数据完整性保护使用环节;数据保密性保护存储环节。四者必须共用一套密钥体系,才能串成证据链。这也对应到教育部信息系统等保定级指南里,核心系统要定级清晰、措施可举证。
高校核心系统密评里的身份鉴别层
身份鉴别层的落点,放在教务系统SSO单点登录这类高频场景上最直观:登录凭据由操作员用私钥对挑战值签名,服务端用公钥验签,口令不再明文比对。这里要强调的是,凭据签名必须可验可审计,而不是各系统自己造一套。
高校核心系统密评里的访问控制层
访问控制层的落点是"签名令牌 + 时效"。一卡通的消费、门禁令牌,下发时带 SM2 签名与有效期,验证方既验签名也验时效,过期或被改的令牌直接拒绝。这一层让"访问控制"从口头规定变成可核查的事实。
高校核心系统密评里的数据完整性层
数据完整性层的落点是"SM3 + SM2 签名"。科研数据提交、图书馆元数据编目,都先算 SM3 摘要并用私钥签名;任何后续篡改都会让验签失败。这一层对应密评"数据完整性"要求。
高校核心系统密评里的数据保密性层
数据保密性层的落点是"SM4 字段加密 + 按系统分域密钥"。教务的成绩、一卡通的余额、科研的稿件、图书馆的读者信息,落库时按系统派生不同密钥加密,根密钥在硬件密码机里。这一层对应"数据保密性"。
下面这张图说明四层面在一次登录与一次数据写入里的位置关系:
text
[登录] --> [身份鉴别:SM2签名验签] --> [访问控制:令牌签名+时效]
| |
v v
[四系统敏感字段] --> [SM4字段加密+按系统分域] --> [根密钥在HSM]
|
v
[数据完整性:SM3+SM2签名] --> [审计:四层面留痕可串联]
03 | 先跑通:高校核心系统密评的四个环节
下面这段演示把高校核心系统密评的四层面跑成一条完整链路:先对教务操作员登录做 SM2 签名挑战-应答,验签通过、被篡改的签名验不过;再演示一卡通令牌 SM2 签名加时效校验,合法令牌通过、过期令牌被拒;接着演示科研数据 SM3 完整性校验、被篡改后失败,以及图书馆元数据 SM2 签名验签;最后演示四系统敏感字段 SM4 加密、按系统派生不同密钥、跨系统密钥解不开他系统数据,根密钥由硬件密码机保护派生一致。
python
# -*- coding: utf-8 -*-
"""
账号3 Day3 #3 演示:高校核心系统密评(教务 / 一卡通 / 科研 / 图书馆 一体化)
密评四层面(GB/T 39786 框架):
身份鉴别 ------ 教务操作员登录 SM2 签名挑战-应答
访问控制 ------ 一卡通令牌 SM2 签名 + 时效校验
数据完整性 ------ 科研数据 SM3 完整性 / 图书馆元数据 SM2 签名
数据保密性 ------ 四系统敏感字段 SM4 加密,密钥按系统派生(密钥管理系统),根密钥 HSM 保护
演示用固定私钥 + 固定 K(同一私钥+同一K会泄露私钥,仅演示用)。
断言统一 print(f"[{t}] = {'True' if ok else 'False'}"),全部为 True。
"""
from gmssl import sm2, sm4, sm3, func
# ---- 固定私钥(已过 xxcsdn_keycheck.py 三关预检) ----
AUTH_PRIV = "6a3a91c46a3a91c46a3a91c46a3a91c46a3a91c46a3a91c46a3a91c46a3a91c4" # 教务登录
TOKEN_PRIV = "5b8e27d05b8e27d05b8e27d05b8e27d05b8e27d05b8e27d05b8e27d05b8e27d0" # 一卡通令牌
SIG_PRIV = "7c4019ab7c4019ab7c4019ab7c4019ab7c4019ab7c4019ab7c4019ab7c4019ab" # 科研/图书馆 签名
FIXED_K = "0101010101010101010101010101010101010101010101010101010101010101"
def pub_of(priv: str) -> str:
"""P = d * G;gmssl 不会从私钥派生公钥,必须显式算出再传入"""
return sm2.CryptSM2(private_key=priv, public_key="")._kg(
int(priv, 16), sm2.default_ecc_table["g"])
AUTH_PUB = pub_of(AUTH_PRIV)
TOKEN_PUB = pub_of(TOKEN_PRIV)
SIG_PUB = pub_of(SIG_PRIV)
def sm3_hex(data: bytes) -> str:
return sm3.sm3_hash(func.bytes_to_list(data))
# ---- 手写 SM4-CBC ----
def sm4_cbc(key: bytes, iv: bytes, data: bytes, enc: bool) -> bytes:
assert len(key) == 16 and len(iv) == 16, "SM4 KEY / IV 必须 16 字节"
c = sm4.CryptSM4()
c.set_key(key, sm4.SM4_ENCRYPT if enc else sm4.SM4_DECRYPT)
out, prev = b"", iv
for i in range(0, len(data), 16):
blk = data[i:i + 16]
if enc:
x = bytes(a ^ b for a, b in zip(blk, prev))
e = bytes(c.one_round(c.sk, list(x)))
out += e
prev = e
else:
d = bytes(c.one_round(c.sk, list(blk)))
out += bytes(a ^ b for a, b in zip(d, prev))
prev = blk
return out
def pkcs7_pad(data: bytes, block: int = 16) -> bytes:
pad = block - (len(data) % block)
return data + bytes([pad]) * pad
def pkcs7_unpad(data: bytes) -> bytes:
pad = data[-1]
if not (1 <= pad <= 16):
return data
return data[:-pad]
def decrypt_or_none(key: bytes, iv: bytes, ct: bytes):
try:
return pkcs7_unpad(sm4_cbc(key, iv, ct, False))
except Exception: # noqa: BLE001
return None
# ===== 身份鉴别:教务操作员登录 SM2 签名挑战-应答 =====
challenge = b"auth-challenge-acad-2026-09-28-7788"
login_req = "op=teacher01|role=教务录入|ts=2026-09-28T10:00:00".encode("utf-8")
auth_msg = sm3_hex(challenge + b"|" + login_req).encode("utf-8")
auth_signer = sm2.CryptSM2(public_key=AUTH_PUB, private_key=AUTH_PRIV)
auth_sig = auth_signer.sign(auth_msg, FIXED_K)
ok_auth = auth_signer.verify(auth_sig, auth_msg)
# 篡改请求(role 被改成 admin)后,原签名验不过
tampered_msg = sm3_hex(challenge + b"|" + login_req + b"|role=admin").encode("utf-8")
ok_auth_tamper = not auth_signer.verify(auth_sig, tampered_msg)
# ===== 访问控制:一卡通令牌 SM2 签名 + 时效校验 =====
NOW = b"2026-09-28T12:00:00" # 验签方当前时间(演示用固定值)
def token_valid(tk: bytes, sig: str) -> bool:
# 1) 签名验签
if not tk_signer.verify(sig, sm3_hex(tk).encode("utf-8")):
return False
# 2) 时效校验:exp 未过期
exp = tk.split(b"exp=")[1]
return exp >= NOW
tk_signer = sm2.CryptSM2(public_key=TOKEN_PUB, private_key=TOKEN_PRIV)
valid_token = "card=2110901001|gate=图书馆2号门|ts=2026-09-28T11:05:00|exp=2026-09-29T11:10:00".encode("utf-8")
valid_sig = tk_signer.sign(sm3_hex(valid_token).encode("utf-8"), FIXED_K)
ok_token = token_valid(valid_token, valid_sig)
# 合法签名但 exp 已过期的令牌
expired_token = "card=2110901001|gate=图书馆2号门|ts=2026-09-20T11:05:00|exp=2026-09-20T11:10:00".encode("utf-8")
expired_sig = tk_signer.sign(sm3_hex(expired_token).encode("utf-8"), FIXED_K)
ok_token_expired = not token_valid(expired_token, expired_sig)
# ===== 数据完整性:科研数据 SM3 + 图书馆元数据 SM2 签名 =====
res_signer = sm2.CryptSM2(public_key=SIG_PUB, private_key=SIG_PRIV)
research = "paper=深度学习在密评中的应用|author=李雷|status=在投".encode("utf-8")
res_msg = sm3_hex(research).encode("utf-8")
res_sig = res_signer.sign(res_msg, FIXED_K)
ok_res_int = res_signer.verify(res_sig, res_msg)
ok_res_tamper = not res_signer.verify(res_sig, sm3_hex(research + "|status=已发表".encode("utf-8")).encode("utf-8"))
lib_meta = "book=密码学基础|isbn=978-7-111-1|location=A3-2".encode("utf-8")
lib_sig = res_signer.sign(sm3_hex(lib_meta).encode("utf-8"), FIXED_K)
ok_lib = res_signer.verify(lib_sig, sm3_hex(lib_meta).encode("utf-8"))
# ===== 数据保密性:四系统敏感字段 SM4 加密,密钥按系统派生 =====
MASTER = b"HSM-ROOT-KEY-ACADEMIC-2609" # 根密钥(实际存于 HSM,永不明文导出;此处示意)
IV = b"SM4IVACADEMIC003"
def sys_key(sys_id: bytes) -> bytes:
return bytes.fromhex(sm3_hex(MASTER + b"|sys=" + sys_id)[:32])
k_acad = sys_key(b"ACAD")
k_card = sys_key(b"CARD")
k_res = sys_key(b"RES")
k_lib = sys_key(b"LIB")
ok_k_len = len(sm3_hex(MASTER + b"|sys=ACAD")) == 64
ok_k_diff = k_acad != k_card and k_card != k_res and k_res != k_lib
ok_k_det = sys_key(b"ACAD") == k_acad
acad_data = "教务:student=2021090101|score=算法设计=92".encode("utf-8")
ct_acad = sm4_cbc(k_acad, IV, pkcs7_pad(acad_data), True)
ok_acad_enc = decrypt_or_none(k_acad, IV, ct_acad) == acad_data
ok_acad_diff = ct_acad != acad_data
card_data = "一卡通:card=2110901001|balance=128.50".encode("utf-8")
ct_card = sm4_cbc(k_card, IV, pkcs7_pad(card_data), True)
ok_card_enc = decrypt_or_none(k_card, IV, ct_card) == card_data
# 跨系统密钥解不开他系统数据
ok_cross = decrypt_or_none(k_card, IV, ct_acad) != acad_data
asserts = [
("教务登录SM2签名验签通过", ok_auth),
("被篡改登录签名验签被拒", ok_auth_tamper),
("一卡通令牌SM2签名验签通过", ok_token),
("令牌越时效验签被拒", ok_token_expired),
("科研数据SM3完整性校验通过", ok_res_int),
("被篡改科研数据完整性失败", ok_res_tamper),
("图书馆元数据SM2签名验签通过", ok_lib),
("教务敏感字段SM4加密可还原", ok_acad_enc),
("密文与明文不同", ok_acad_diff),
("一卡通字段加密可还原", ok_card_enc),
("系统派生密钥64位", ok_k_len),
("跨系统密钥按系统派生不同", ok_k_diff),
("同一因子派生可复现", ok_k_det),
("越权系统密钥解不开他系统数据", ok_cross),
("签名为hex字符串", isinstance(auth_sig, str)),
("密文为bytes", isinstance(ct_acad, bytes)),
]
print("=" * 60)
for t, ok in asserts:
print(f"[{t}] = {'True' if ok else 'False'}")
text
============================================================
[教务登录SM2签名验签通过] = True
[被篡改登录签名验签被拒] = True
[一卡通令牌SM2签名验签通过] = True
[令牌越时效验签被拒] = True
[科研数据SM3完整性校验通过] = True
[被篡改科研数据完整性失败] = True
[图书馆元数据SM2签名验签通过] = True
[教务敏感字段SM4加密可还原] = True
[密文与明文不同] = True
[一卡通字段加密可还原] = True
[系统派生密钥64位] = True
[跨系统密钥按系统派生不同] = True
[同一因子派生可复现] = True
[越权系统密钥解不开他系统数据] = True
[签名为hex字符串] = True
[密文为bytes] = True
跑通之后,这四个环节要逐个对上:
环节一:身份鉴别必须可验签。 教务系统SSO单点登录的凭据用 SM2 签名,服务端验签通过才算身份可信;被篡改的请求验签失败。这一条对应密评身份鉴别层面。
环节二:访问控制要有时效。 一卡通令牌不仅验签名,还要验有效期;过期令牌即使签名合法也被拒绝。这一条对应访问控制层面。
环节三:数据完整性要可校验。 科研数据、图书馆元数据都带 SM3、SM2 完整性保护,篡改即被发现。这一条对应数据完整性层面。
环节四:数据保密性要分域加密。 四系统字段各自加密、密钥按系统派生,跨系统密钥解不开他系统数据,根密钥在硬件密码机。这一条对应数据保密性层面。
这四个环节里,最容易被低估的是环节二和环节四------它们都属于"平时看不出问题、出事时才发现没做"的类型。
04 | 落地动作:高校核心系统密评分线怎么做
按这四层面推进,每条线都有明确的交付物。
线一:身份鉴别治理。 给教务系统SSO单点登录接入统一的 SM2 签名挑战-应答,梳理四套系统的登录体系,明确哪些角色用哪种凭据、密钥怎么托管。这条线的交付物是凭据签名规范与验签记录。
线二:访问控制治理。 给一卡通等令牌建 SM2 签名 + 时效机制,过期自动失效;建立令牌签发与吊销台账。这条线的交付物是令牌生命周期规范。
线三:数据完整性治理。 给科研数据、图书馆元数据接入 SM3 摘要 + SM2 签名;定义哪些数据必须带完整性保护。这条线的交付物是完整性保护清单。
线四:数据保密性治理。 给四系统敏感字段做 SM4 加密落库,密钥按系统派生,根密钥托管硬件密码机;建立密钥分域与轮换。这条线的交付物是密钥分域清单与加密台账。
四条线推进有先后:线四是线一~三线的基础(密钥体系),建议先建统一密钥管理与硬件密码机底座,再上层层加密码应用。四线共用一套留痕口径,否则证据链在"使用"环节断裂。绕不开的是教育部信息系统等保定级指南的定级要求,密评措施要能和等保定级对上。
一个可参照的整改样本
背景:某高校教务、一卡通、科研、图书馆四套系统,登录凭据各用各的、科研数据无完整性保护、敏感字段明文存储。一次密评预评估指出身份鉴别与数据保密性两项不达标,高校三级等保密评达标也被卡住。
动作:先建统一密钥管理与硬件密码机底座;教务登录改 SM2 签名挑战-应答,一卡通令牌加签名与时效,科研与图书馆数据加 SM3、SM2 完整性保护,四系统字段按系统派生密钥做 SM4 加密。
结果:复评中,登录凭据伪造被拒、过期一卡通令牌失效、被改的科研数据验签失败、跨系统密钥解不开他系统数据,身份鉴别、访问控制、数据完整性、数据保密性四项原本不达标的问题全部补齐,同时也对齐了教育部信息系统等保定级指南的要求。证据链从"我们分别做了"变成"我们能逐条还原"。
05 | 避坑清单:8 条最容易踩的坑
| # | 坑 | 后果 | 怎么验证避开了 |
|---|---|---|---|
| 1 | 登录用明文口令比对 | 身份鉴别不达标 | 查登录是否走 SM2 签名、证书 |
| 2 | 令牌无时效 | 过期仍可用 | 查令牌是否带有效期并验签 |
| 3 | 科研数据无完整性保护 | 篡改无感知 | 查是否 SM3 + SM2 签名 |
| 4 | 密钥写在配置文件 | 根密钥泄露 | 确认根密钥在硬件密码机内 |
| 5 | 四系统共用一把密钥 | 单点泄露全崩 | 查密钥是否按系统派生 |
| 6 | 字段明文落库 | 库泄露即裸奔 | 查敏感字段是否 SM4 加密 |
| 7 | 跨系统密钥互解 | 分域失效 | 查派生因子是否含系统标识 |
| 8 | 无统一留痕 | 事后无法追溯 | 改一条历史记录看完整性校验 |
挑第 5 条展开说。四系统共用一把密钥,在高校很常见("图省事")。但密评要求数据保密性按系统可审计,一把密钥意味着任何一次泄露都连带全部系统。按系统派生密钥,配合根密钥在硬件密码机,成本是一次体系建设,收益是分域可控------这正好是高校三级等保密评达标里数据保密性层面的关键举证。
06 | 合规视角:高校核心系统密评要对上哪些要求
高校在密码治理上,通常同时面对几条线的要求,而这些要求的最终落点都在可提交的证据上。
商用密码应用安全性评估(GB/T 39786)。 关注身份鉴别、访问控制、数据完整性、数据保密性四个层面的密码技术应用与量评。前面四层面,落到密码就是签名验签、令牌时效、完整性签名、字段加密。测评追问算法、密钥生成存放、轮换周期------必须写进密码应用方案,作为证据链的一环。
教育部信息系统等保定级指南合规。 教育系统的重要信息系统要按等保定级,三级系统对身份鉴别、访问控制、审计有明确要求。高校三级等保密评达标,要求密评与等保的密码措施一致、不打架,定级指南里的核心系统都要能在密评里找到对应举证。
数据安全与个人信息保护相关法规。 学籍、成绩、一卡通余额属于个人信息,科研数据有些涉及敏感;在分类分级基础上落实加密、完整性、审计。高校核心系统密评的落地,要求把"哪些数据重要、怎么保护、谁动过"这三件事讲清楚。
这里的实用建议是:不要把这些要求当成几份独立清单分别应对,而是建一张映射表,把每条要求映射到"签名验签、令牌时效、完整性签名、分域加密、统一留痕"这五个动作上。一次建设,几份清单同时受益。
07 | 落地答案:高校核心系统密评怎么承接
密评落到产品能力上,通常这样组合四层面与证据链。
身份鉴别这一段,需要的能力是"SM2 签名、证书 + 挑战应答"。统一身份认证平台承接登录凭据的签名与验签,密钥由密钥服务平台托管,根密钥在硬件密码机;教务系统SSO单点登录的凭据在这一层被统一收口,不再各系统各做一套。
访问控制这一段,需要的能力是"签名令牌 + 时效校验"。密钥服务平台签发带签名与有效期的令牌,验证方统一校验,过期自动失效;令牌的签发与吊销进统一台账。
数据完整性这一段,需要的能力是"SM3 摘要 + SM2 签名"。数据在提交、编目时算摘要并签名,后续任何读取都先验完整性;密钥服务平台管理签名密钥,根密钥在硬件密码机。
数据保密性这一段,需要的能力是"SM4 字段加密 + 按系统分域密钥"。集中密钥管理系统按教务、一卡通、科研、图书馆派生不同数据密钥,根密钥在硬件密码机内永不明文导出;四系统敏感字段落库即加密。四段能力的组合,正好覆盖密评四个层面,也直接对应了 06 节里那几份清单的核查项。
08 | 验收清单与下一步
上线前建议逐项过一遍这张表:
| # | 验收项 | 通过标准 |
|---|---|---|
| 1 | 登录签名规范 | 凭据走 SM2 签名、证书而非明文口令 |
| 2 | 验签记录 | 登录请求可验签、篡改被拒 |
| 3 | 令牌时效机制 | 过期令牌验签后仍拒绝 |
| 4 | 令牌生命周期台账 | 签发、吊销可查 |
| 5 | 科研数据完整性 | SM3 + SM2 保护、篡改被发现 |
| 6 | 图书馆元数据完整性 | 同上 |
| 7 | 字段加密清单 | 四系统敏感字段为密文 |
| 8 | 密钥分域清单 | 按系统派生、互不可解 |
| 9 | 根密钥保护 | 在硬件密码机内、无明文副本 |
| 10 | 派生可复现 | 同因子一致、不同系统不同 |
| 11 | 跨系统隔离 | 他系统密钥解不开本系统数据 |
| 12 | 完整性保护清单 | 明确哪些数据须带签名 |
| 13 | 留痕可串联 | 四层面从生成到归档可还原 |
| 14 | 映射表 | 每条要求映射到五个动作 |
| 15 | 密码应用方案 | 算法、密钥、轮换写进文档 |
趋势上看,高校核心系统密评的重心正在从"单系统过关"走向"一体化合规"。过去只保一两个系统就算及格;现在测评会追到单个登录凭据是否可验签、单条科研数据是否被篡改、单把系统密钥是否分域。这个迁移对架构的实质要求是:四层面不能再各自为政,必须共用一套密钥体系与审计留痕,这也是高校三级等保密评达标的真正门槛。
下一篇预告:我们回到基础设施侧,看工业互联网等保与制造业等保 2.0 三级,怎么把接入、传输、存算、应用四平面的密码措施落到同一份证据链。
09 | 常见问题:高校核心系统密评的 4 个高频疑问
- Q: 高校核心系统密评整改一般要多久?
- A: 周期主要取决于系统改造量,不是系统数量本身。只做登录签名与字段加密这类轻改造,三到五个月可补齐多数检查项;涉及统一密钥管理体系、硬件密码机底座与四系统分域加密的,往往要六到九个月。真正拉长周期的是密钥体系重建,把四套系统的密钥收敛到一套可审计治理一般要两到三个月。
- Q: 高校三级等保密评达标要怎么做才满足密码要求?
- A: 判断标准是看身份鉴别、访问控制、数据完整性、数据保密性四个层面是否都有可核查的密码措施。登录凭据应走 SM2 签名、证书而非明文口令;令牌须带签名与时效;科研与元数据须 SM3、SM2 完整性保护;敏感字段须 SM4 加密且密钥按系统分域,根密钥在硬件密码机。
- Q: 教务系统SSO单点登录在密评里要怎么做才合规?
- A: 核心是登录凭据的密码技术保障要可审计。口令不应明文比对,应改为 SM2 签名挑战-应答,由统一身份平台收口验签;凭据签名密钥托管在密钥服务平台、根密钥在硬件密码机。这里只谈凭据的密码保障,不重复统一身份平台的业务机制。
- Q: 科研数据被篡改要怎么做才能及时发现?
- A: 核心是在数据提交与归档环节加 SM3 摘要与 SM2 签名。任何后续读取先验完整性,摘要或签名不匹配即说明被篡改;签名密钥由密钥服务平台管理、根密钥在硬件密码机。配合版本留痕,能定位到哪一次改动引入了不一致。
相关阅读
文章作者:安当加密-焱垚