试题三(15分)
阅读下列说明,回答问题1至问题4。
【说明】
某银行开发了一套手机银行App,需要对用户敏感数据进行保护。安全架构师在设计中采用了以下加密方案:
1. 用户在App端输入账户密码后,App使用SM4对密码进行加密(密钥为K1,K1以明文形式预置在App程序内部)。
2. 加密后的密码通过HTTPS协议传输到银行后台服务器。
3. 银行后台服务器接收到密文后,使用SM4密钥K1解密得到原始密码,然后与数据库中的密码Hash值进行比对验证。
4. 同时,App对用户的每一笔交易记录生成一个MD5哈希值,用于完整性校验。
【问题4】(4分)结合HTTPS的SSL/TLS握手过程与口令验证流程,回答下列问题:
(1)SSL/TLS握手中,客户端确认服务器数字证书合法后,生成预主密钥,并使用服务器数字证书中的____对预主密钥加密后发送给服务器;随后双方基于客户端随机数、服务器随机数和预主密钥生成____,用于后续通信数据的加密。(每空1分,共2分)
(2)密钥不应以____方式存储保管,应采取严格的安全防护措施,防止密钥被非授权的访问或篡改。(1分)
(3)按本方案流程,服务器解密得到密码明文后,应先对密码明文执行____运算,再与数据库中存储的口令哈希值进行比对。(1分)
参考答案(1)第一空:**公钥(服务器公钥)**;第二空:**会话密钥(对称加密密钥)**。
(2)**明文(硬编码/明文硬编码)**。密钥不能明文存储在App中,应通过安全密钥管理方式保护。
(3)**Hash(散列/哈希)**运算。服务器对密码明文做Hash后,与数据库中存储的哈希值比对,而不是存储明文密码。