关于软件安全
应用云计算的,高度网络化的现代计算机世界,安全是软件工程最重要的一个方面。
了解安全最重要的一点是它不是一个重点项目。你不能开发过程的最后才考虑他它。你必须从一开始就意识地设计安全到你的应用程序或服务中,并把它作为从设计到实现,测试,发布的整个过程的一部分。
概述
在应用程序层,安全意味着你的代码如何使用信息并且确保它的安全可靠。例如,以下都是你的责任:
保证用户的个人数据安全不被窥视。使用一个安全的方式存储数据,并且确保您的软件只收集需要的信息。
小心对待不可信赖的文件和数据。如果你的软件访问互联网或读取也许是之前在互联网上发送给某人的文件,你的软件必须正确验证这些数据。如果不,它可能在不经意间为攻击者提供一个向量来访问其他可能存储在用户的计算机或其他移动设备上的个人数据。
在传输过程中保护数据。如果你的软件在互联网上传输个人信息,在传输过程中,你必须用一个安全可靠的方式来防止未经授权的访问或者修改这些数据。
验证数据的真实性。如果你的软件可以访问或使用签名数据,它应该验证这些签名,以确保数据没有被篡改。如果你的软件可以访问或使用签名数据,应该验证这些签名,以确保数据没有被篡改。
威胁模型帮助您识别风险领域
在规划阶段,你必须确定软件的威胁性质和最安全的架构方式。要做到这一点,你应该建立一个威胁模型显示您的软件的那些部分可能被攻击。
相关章节:iOS安全概要-1-风险评估和威胁建模
安全编码技术和操作系统安全功能帮助你减轻风险
在开发过程的每个阶段,你必须采取措施降低风险:
避免利用编码缺陷。在实现阶段,你必须避免使用不安全的编码技术,可以导致任意代码注入,拒绝服务或其他不正确的行为。
不断更新风险模型。在整个开发过程中, 随着软件的发展您应该继续执行定期的风险评估和更新你的威胁模型,那么它就能准确地反映出你的风险。
不要重新发明轮子。确保您的软件和数据的时候,你应该利用内置的安全功能,而不是编写自己的。特别是,您可能需要确定用户是否合法与否,将消息安全的发送到服务器保护在运输过程中数据的完整性和保密性,或在本地磁盘存储数据保护数据安全。
相关章节:
iOS安全概要-1-风险评估和威胁建模
iOS安全概要-2-代码安全
iOS安全概要-3-验证与授权
iOS安全概要-4-加密服务