安全测试的一点思考

发表于:2010-5-05 16:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:8596991    来源:51Testing软件测试博客

  1.1.2 数据加密以及数据签名

  记得在做139邮箱的时候,我们所有的通讯数据,都用了base64编码进行了处理。不过这种数据,能够很容易的被解析出来,欺骗的只是一些网络小毛毛虫而已,稍微有点编程基础的,就能很快的解析出来,毕竟走的是标准的base64嘛。

  现在做安全产品了,原来保证数据的安全就有很多方式哦。

  在信息通信过程中,有四个基本的安全要素:一是机密性,通信是否机密的,是否能被拦截,通信的机密性无法保障,则对于个人的通信隐私无法保障;二是完整性,通信中的信息是否被篡改了?无法保障完整性,就无法保障通信过程的准确和有效;三是身份认证,通信的基本前提是我得知道是在和谁通信,在信息传输的开放互联环境中,身份认证能否被伪造,无法确认身份,则无法实现信息交流和交互;四是不可抵赖,即交易的过程不被抵赖,特别是在电子商务、电子政务等过程中,通信的抗抵赖显得尤其迫切。

  第一种场景:首先女朋友和我约定一个共享密钥,女朋友使用该密钥进行信息的加密,然后通过公开环境进行传输,而我收到信息后,利用共享密钥解密,得到“明晚西单见”的信息,就算被其他人截获,没有该共享密钥,无法解密,也就无法知道信息的确切内容,保障了信息传输过程中的机密性。但是,该场景忽略了一个问题:女朋友和我的如何约定这个共享密钥?需要一位红娘通过线下的方式传递消息,在实际的 Internet通信中,没有红娘怎么办?我们可以引入另一类算法,非对称算法,非对称加密算法则很好的解决了这个问题。

  第二种场景:我和女朋友利用非对称密码算法。即通信的双方女朋友和我都各有一对密钥,其中,对社会公布一个密钥,称公钥;自己私自保护好另一个密钥,称为私钥,通过公钥加密的信息,可以通过私钥来进行解密,通过私钥加密的信息,可以通过公钥来解密。女朋友要发送这个信息,可以通过公开途径,得到我的公钥,然后将信息通过我公钥进行加密后得到密文,然后将信息传给我,因为只有我有私钥,所以只有我才能解开密文,得到明文信息,其他人得到密文,没有私钥,无法解密密文。这种通信方式也很好的保证了信息的机密性,而且相比较对称密钥的密钥分发困难,非对称密钥对的公钥可以通过公开途径就能得到,不用担心密钥分发的问题。当然非对称密钥还有另外一种应用场景:我们看这个场景,也有个问题,那就是我如何能确切知道这个信息就是女朋友发送的呢,因为公钥是通过公开途径就能得到,有可能是其他人使用我的公钥做的恶作剧呢?或者说女朋友将来抵赖,说根本没传送过这个信息呢?

  第三种场景:女朋友为了让我确信该信息就是她发送的,可以使用她自己的私钥对信息进行加密,得到密文,发送给我,我通过公开途径得到女朋友的公钥,利用女朋友的公钥对密文进行解密,如果能解密开,则证明了信息确实是女朋友发送的,如果解不开,则说明信息不是女朋友发送的,这样就解决了女朋友的身份确认问题。实现了抗抵赖功能。总结非对称密钥的两个用法,很好的解决了信息通信的机密性、身份认证、抗抵赖等问题,但实际在实现过程中,我们会发现非对称密钥也有个问题,就是非对称算法复杂,对长信息进行加密,比非对称算法慢100倍甚至上千倍,会慢的无法接受。针对该问题,在通信系统中,又引入了一种新的算法,信息摘要算法。

  数字摘要算法和现实生活中的指纹识别或者虹膜识别一样,具有三个典型的特征:一是原实体信息量大,而摘要后的信息量要小很多;二是实体与摘要一一对应,不同的实体不可能生成一样的摘要,不同的摘要肯定对应不同的实体;三是算法不可逆,通过摘要无法还原或推导出信息实体。这样的一个算法过程就称为摘要算法。目前采用的摘要算法主要有 MD5和SHA1,其中信息编码中的一个字节的改变,都将导致输出摘要的改变。目前三种算法都介绍完了,实际通信过程中,往往综合利用三种算法,进行安全通信。

  数字签名的过程。首先将发送方A要发送的明文,通过摘要算法生成信息摘要,然后用发送发A的私钥对摘要进行加密,形成摘要的密文,我们称该密文为数字签名。将数字签名和明文一起打包发送给接收方。接收方B用户收到信息后将数字签名,使用用户A的公钥进行解密,得到签名前的信息摘要。另外接收方B将与数字签名一起发送的明文进行与A用户相同的摘要算法得到信息摘要,与解密数字签名后的信息摘要进行对比,如果一致,就说明信息没有被篡改,同时也表示信息确实是用户A发出的,有效解决了信息传输过程中的数据完整性、身份认证、和抗抵赖等问题,同时由于信息摘要数据短,有效避免了非对称算法加密长数据慢的问题,同时信息摘要与原明文信息一一对应,对摘要进行签名,与对原明文进行签名所获得的效果一样,一般签名就是对原明文信息摘要用私钥进行加密,完成一个数字签名的过程。

  刚解释完了数字签名,我们再来来看看数字信封的过程。数字信封过程是:发送发用户A要发送一个信息给接收方用户B明文信息,通过对称密钥对明文信息进行加密,形成密文,然后通过公开途径获取接收方用户B的公钥,用该公钥对对称密钥进行加密,形成数字信封,将对称密钥加密后的密文和数字信封一起传送给接收方。接收方B获取密文和数字信封后,通过独有的私钥对数字信封进行解密得到对称密钥,然后使用对称密钥对密文进行解密得到明文。这就完成了一个数字信封的通信过程。数字信封综合利用对称密钥加密运算速度快和非对称密钥加密强度高、密钥分发容易的特点,使用非对称密钥来分发对称密钥,用对称密钥对明文进行加密,保障了通信过程中,信息传输的机密性问题。

  数字信封的一个典型应用过程,清晰地表示了发送方用户A要发送明文给接收方用户B,通过综合利用数字签名、数字信封等技术,确保整个通信过程的机密性、完整性、身份认证和抗抵赖。首先:发送方A将需要发送的明文通过摘要算法形成数字摘要,然后使用A的私钥进行加密形成数字签名,然后将要发送的明文和数字签名及发送方A的公钥打包使用对称密钥进行加密形成密文,然后用接收方的公钥对该对称密钥进行加密形成数字信封,将密文和数字信封一起发送给接收方B用户。接收方用户B收到信息后,使用接收方B的私钥对数字信封进行解密,得到对称密钥,然后用该对称密钥对密文进行解密,还原出加密前的明文、发送方的数字签名、发送方的公开密钥。将明文通过与发送方同样的算法进行摘要算法得到摘要,另外利用发送方的公开密钥对数字签名进行解密得到发送消息明文的数字摘要,比较两摘要,如果相同则表示信息确实是发送方用户A发送的,且传输过程中没有被篡改,因为有发送方对信息摘要进行私钥加密,私钥只有发送方用户A所有和保管,表明了信息发送方的确是A用户,有效防止以后A用户对所发信息的抵赖。由于在网络上传输的都是密文,有效降低了信息泄露的风险。所有综合使用,最终,有效解决了信息通信过程中面临的四个问题:机密性,完整性、身份认证和抗抵赖的需求,是信息安全的有效解决方案。

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • lyt20
    2010-5-06 17:02:05

    不错

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号