公司新闻

从开发到运维:风里雨里,Micro Focus测试解决方案始终等你

2020-01-13 15:27:14 191

加密技术通常包括算法和密钥两个元素

算法是将普通的文本,或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤。这一过程通常涉及对千位值执行极其复杂的计算,并对其中一些计算使用随机数。密钥则是用来对数据进行编码和解码的一种算法。

例如,在生成加密密钥时,需要生成大量随机位——实际上是伪随机。如果密钥与随机位不完全匹配,那么别有用心的人就有可能更容易地猜出密码。如果是这样的情况,那么为了通过加密实现安全性所做的工作基本上就没有意义了。

●灵活:它是一款灵活的命令行静态代码分析器,可通过脚本、插件和GUI工具集成到任何环境,便于开发人员快速轻松地启动运行。

●高效可扩展:Fortify SCA支持业内大部分编程语言,能够识别所有类型应用程序中的风险,并可根据不断增长的企业需求进行扩展。

●多种交付模式:能够以内部部署和按照需部署等交付模式运行,适应企业不断变化的需求和要求。

二、魔法还是代码?

如今,有数百万行代码的应用程序其实很常见,硬件也变得越来越复杂。福特汽车公司在2016年国际消费电子展上就曾指出,福特公司生产的F-150皮卡车有1.5亿多行代码。高端汽车的代码数量会超过2亿条甚至更多。

现在,集成电路由数百亿个晶体管组成。如果仔细想想,就会发现这是相当不可思议的——数百亿的组件都在正常工作。科幻作家Arthur C.Clarke曾告诉我们,这是一种好似魔法的先进技术。

三、软件测试VS硬件测试

在某些方面,软件比硬件更容易测试。在调试模式下编译代码使测试变得更加容易;完成调试后,在发布模式下进行编译也相对容易。

但是,要确保正确实施加密仍然非常困难。加密算法的中间结果和输出通常看起来像数百甚至数千个随机位,这使得实现它们的调试代码很棘手。

例如,在密码算法中,你永远不会得到诸如“此字符串已损坏”之类的中间结果,相反,你会得:“0x7649abac8119b246cee98e9b12e9197d8964e0b149c10b7b682e6e39aaeb731c。”

四、如何简化测

其实,有一个简单的解决方案可以解决此问题:不要编写自己的加密软件。

如果您上过类似大学Crypto 101的课程,就会对密码算法有所了解,知道为什么它是安全的。但是你会被告知不要自己尝试,因为犯错的可能性实在太大了。

相反,使用已通过标准验证的加密库,比如美国政府的FIPS 140-2,就可以满足加密模块的安全要求。这并不麻烦,也不昂贵,OpenSSL的一个版本就已经获得FIPS 140-2验证。不过,许多人没有达到Crypto 101的水平,却试图实现自己的加密算法版本。这要执行成功非常困难,不是一个好主意。

总之,要留心加密硬件,因为测试需求可能会使它永远存在后门。如果有更好的测试解决方案,不要轻易实施加密技术。这时,如果拥有一个自动化测试解决方案,您的企业将会事半功倍: