加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

粟栗:业务安全粟论(七)——第三步:实施加固

(2012-09-26 13:36:04)
标签:

业务安全

杂谈

独家供稿:移动Labs

双节临近,祝粟论的各位读者双节快乐!

上一期通过实例的方式,说明了在进行安全工作的第二步是制定安全解决方案。在安全解决方案制定后,还有一个非常重要的环节,就是解决方案的实施。简单来说,解决方案做得再好,如果在实施的时候存在失误,不仅不能达到效果,而且可能产生新的安全问题。

举个例子,在某业务中,为了保护用户登录机制的安全性,拟采用一个浏览器插件的方式增强安全性,通过浏览器插件实施用户传输的信息(用户名、口令)进行加密保护。但是,在浏览器插件中存在漏洞,攻击者反而能够通过浏览器插件的漏洞控制用户的主机。这样的一个加固措施,虽然解决了传输中的小危害,但反而给用户埋下了一个大隐患。这里依据我的经验,需要提2个要求:

1)严格实施安全解决方案,确保既定的安全方案能正确实施,弥补上已发现的漏洞;

2)在实施解决方案的时候,应该通过选用成熟技术、实施难度等方面来规避实施过程中产生的风险。

当然,在实施中面临的困难同样也会影响方案的设计,这也是必须要考虑的一个方面。

在这里还是通过一个例子来说明,由于不方便举出太具体的实例,还是通过一个虚拟的例子进行说明。

假定需要通过主机A(例如客户端)向主机B(例如服务器端)传输一些机密数据(如账单信息),需要通过一些安全的机制进行防护。从目前的主流方向来考虑有两种模式:(1)先加密形成密文,然后在通过普通方式传输密文;(2)在传输时进行加密(从微观上看也是先加密后传输,但一体了)。

 粟栗:业务安全粟论(七)——第三步:实施加固

我们不妨结合设计与实现来综合考虑如何进行实施这个简单的过程。

 

模式

技术方案

带来的新风险

实施难度/限制

先加密后传输

1.      自行编写程序,对原始数据进行加密,如javax.crypto.cipher的一些加密方式对数据进行加密;

2.      通过http方式传输加密数据;

3.      收到数据后进行完整性校验并解密。

1.密钥可能泄露或遗失;

2. 如果使用浏览器插件,插件中可能存在新的安全漏洞。

1.需要建立密钥管理机制;

2. 如果是B/S模式,需要安装浏览器插件来执行加密过程;

3. 需要自己编码。

1.使用Openssl提供的加密库(openssl enc)进行加密;

2.通过http方式传输加密数据;

3.收到数据后进行完整性校验并解密。

客户端或插件存在安全问题(不考虑Openssl库可能存在的缺陷)

1.      由于需要Openssl库支持;

2.      B/S模式需要客户端包含Openssl能力且可能存在插件安全问题。

传输时加密

1.配置证书,并通过https传输。

无(不考虑协议缺陷)

1.      比较适合web方式,但不太适合纯客户端模式。

2.      需要配置证书。

1.通过SFTP方式进行传输。

无(不考虑协议缺陷)

1.适合客户端非实时方式,如果在批上送可以考虑。

 

通过上面的分析,如果我们在B/S模式下,而且信息量不大的情况下,应该采用https是比较好的方式,虽然可能需要花一些钱购买证书,但实施比较方便和安全。如果不具备购买证书的条件,那么用包含openssl库(或部分功能)的插件也可以实现。具体如何应用,需要依据业务需求确定,在银行业一般采用httpsqq等客户端则采用自己编码实现加密功能。

通过上面的分析,我们很容易看到在实施安全加固措施时,一般会新引入一些安全风险,这些风险一般都因为实现与设计不一致或编码引起。应用成熟技术时,能避免一些简单的错误,因此应尽量使用成熟的技术。

但无论如何,安全问题可能都不可避免,要发现这些安全问题,就必须通过一个全新的课题——安全测评来解决。只有系统化的测试才能尽量发现安全问题,并进而解决这些问题。这个课题的讨论将是后面几期的重点。

 

 

好了,今天就先到这里,下期再见。

祝各位中秋、国庆双节快乐!

粟栗



本博文发表在移动Labs的文链是:http://labs.chinamobile.com/mblog/2295/184411

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有