在"传输中与存储时的密码没有加密-安全性测试初步接触"这篇文档中,我们探讨了网络安全中的一个重要议题——数据在传输过程和存储时的加密措施。首先,文章强调了使用SSL/TLS(Secure Sockets Layer/Transport Layer Security)协议的重要性,这是一种在HTTP层和TCP层之间提供加密通信的协议。当用户访问一个SSL站点时,浏览器会显示警告信息并转换URL前缀,从http变为https,这是SSL加密连接的明显特征。
SSL/TLS的工作原理涉及以下几个关键步骤:
1. 证书认证:服务器向客户端发送证书,客户端通过预装的受信任的证书颁发机构(CA)验证服务器的身份,确保连接的安全性。
2. 会话密钥交换:客户端生成随机信息并使用服务器的公钥加密,服务器解密后得到相同的会话密钥,用于后续的加密通信,通常使用RSA公钥算法。
3. 消息加密与完整性保障:通信双方使用私有会话密钥进行加密,并使用消息认证码确保消息不被篡改。
然而,文档也指出在安全测试中,可能存在的一些问题和漏洞,如:
- 初步分类:包括权限管理(黑盒测试,可能涉及SQL注入、目录遍历等)、加密(如网络传输、cookie、源文件和认证/会话安全)以及各种类型的攻击(如缓冲区溢出、SQL注入、跨站脚本攻击等)。
- 理论篇:虽然测试方法可能粗糙,但强调了团队间的交流和学习。安全测试关注用户管理、权限管理等模块,以及工具的使用,如AppScan、AcunetixWebVulnerabilityScanner等。
木桶原理表明,系统的安全性取决于最脆弱的部分,因此需要整体提升。此外,文档还提到了不同的安全层次模型,如物理层、网络层、传输层、应用层和表示层的安全考虑,涉及访问控制、数据机密性、完整性、用户认证、防抵赖性、安全审计等多个方面。
最后,文档特别提到了输入验证的重要性,即确保用户输入的数据经过有效控制,以防止恶意操作。这通常是在应用层实现用户安全目标的一个关键步骤,无论是手动还是借助工具进行。
总结来说,本文深入剖析了密码在传输和存储时加密的必要性,以及在实际安全测试中需要关注的环节和漏洞检测策略,旨在提升网络安全意识和实践能力。