身份认证称为"身份验证"或"身份鉴别",是指在实际应用中确认操作者身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限,防止攻击者假冒合法用户获得资源的访问权限,保证系统和数据的安全,以及授权访问者的合法利益。
本文提出的方案是基于这样一个假设:用户想要登录某台计算机,那么服务器必须认证用户身份,而在用户向服务器表明身份的同时也需要认证服务器的身份,只有在双方身份都确认无误时才能满足用户的要求。
下面是服务器和客户端的程序流程图:(DES运算使用的KEY1密钥提前预置到客户端与服务器端)
智能卡(Smart Card)是指内嵌有微芯片的塑料卡(通常是一张信用卡的大小)的通称。智能卡可以有效防止硬件克隆,而且能使解密者对软件端代码的跟踪、调试、侦听数据的手段失效,从而在极大程度上保证了整个软件系统的安全性。
首先,在使用智能卡加解密的方案中,PC端应用软件的关键代码和数据不见了,被安全地移植到智能卡的硬件中保护起来。在需要使用时,应用软件可以通过功能调用引擎来指令智能卡运行硬件中的关键代码和数据并返回结果,从而依然可以完成整个软件全部的功能。由于这些代码和数据在PC端没有副本存在,因此解密者无从猜测算法或窃取数据,从而极大程度上保证了整个软件系统的安全性。智能卡最多可提供总计高达32~64K字节的程序和数据空间,可容纳近万行的C语言代码,从而依然可以完成整个软件全部的功能。
再次,智能卡芯片具有很高的集成度,与普通低档的单片机不同,只有已通过国际安全机构检测和认证(EAL 4+)的专业安全芯片制造商才能提供智能卡芯片(LKT系列的加密芯片安全级别达到EAL4+,EAL5+安全级别)。而且具有如下优点:
1、 私钥不可读:智能卡的软硬件设计严格控制用户私钥的使用权限,只能在满足条件时方可使用,保护私钥的安全性。
2、 卡内签名、验证:私钥的签名、验证功能一律在卡内实现,不存在传输中私钥泄漏的可能性。
3、卡内生成RSA密钥对:RSA密钥对能直接在卡内产生,从而从源头上杜绝私钥泄露的可能性。
4、 使用方便:智能卡小巧易携,使用上不受地域限制。用户只要在安装有相应驱动程序的计算机上就能激活使用载有私钥数字证书的智能卡,方便安全地在网络上实现电子交易。
总之,将用户密钥对、CA公钥、数字证书等存储在智能卡上能为用户提供更高级别的安全保障。智能卡使用多种加密算法技术,用更安全的方式存储私钥,而不是存储在易于受到攻击的计算机中。另外,智能卡的PIN码可以确保智能卡抵御非授权访问和暴力攻击。具有非对称密钥算法的智能卡可以满足人们对私钥的安全要求、移动式存储要求和防伪要求等,是目前最理想的PKI 私钥的安全载体。