写点什么

Dan Guido:现代化 iOS 应用的安全性

  • 2016-06-22
  • 本文字数:1211 字

    阅读完需:约 4 分钟

移动应用的流行迎程度与日俱增,越来越多的交易开始通过移动设备完成,安全的重要性日益凸显。在 QCon New York 2016 活动名为“现代化iOS 应用的安全性”的演讲中,Dan Guido 详细探讨了有关iOS 的安全问题。

Guido 首先介绍了 iOS 应用程序中现已采用的安全机制。iOS 的安全模型包含下延至基于硬件和具体设备的加密在内的多层面安全通信机制:

  • 传输层安全:iOS 可支持安全的网络连接。
  • 数据保护:iOS 能够为应用程序使用的几乎所有文件提供强大的加密保护。
  • 代码签名:Apple 要求代码的每个片段必须包含签名,内存中的所有内容能够以每 4KB 页为一个“颗粒”追溯至开发者。
  • 运行时进程安全:iOS 会通过强大的沙箱技术隔离进程,一个进程无法访问另一个进程的内存。
  • 安全飞地(Secure Enclave):带有指纹传感器的新款 iOS 设备可将加密密钥存储在硬件中,这些密钥是在每款设备生产过程中,独立于操作系统专门为该设备生成的。

虽然这些机制为应用提供了安全的运行环境,Guido 进一步展示了一系列需要引起我们重视的威胁。

传输层安全技术并非所有网络连接必须使用的,如果不进行相应的数据加密和证书检查,信息很容易受到中间人攻击。通过对网络连接进行配置即可激活必要的安全机制,或者更简单的做法可以直接在应用中嵌入诸如 TrustKit 这样的库,借此在后台处理安全事宜。

数据保护机制非常强大,以至于最近在 Apple 和 FBI 之间造成了不小的纷争。如果使用内置的硬件密钥对数据进行加密,这些数据将无法在设备之外解密。因此敏感数据应始终使用密码和设备 ID 进行加密。然而开发者依然需要尽量避免数据泄露。有很多应用和工具会尝试从安全性不够高的位置,例如剪贴板、应用偏好设置,以及 Cookie 中查找有用的数据。另外敏感数据应尽量维持最小化痕迹,开发者应当避免备份或同步此类数据,应当从背景屏幕截图和日志中排除敏感数据,键盘缓存也需要及时停用。

根据 Guido 的介绍,遵守相关准则可进一步提高应用安全性,但还有一个问题是开发者不容忽视的:越狱。设备一旦越狱,无论用户主动越狱或在不知情的情况下“被”越狱,上述所有安全机制都会失去作用。如果开发者需要更高的安全性,应当确保设备未被越狱:

  • 越狱检测 – 开发者可以检测越狱操作留下的痕迹,例如某些特殊的文件和进程。
  • 反调试保护 – 开发者需要确保自己的应用程序不能在调试模式下运行,因为任何越狱检测操作在调试模式下都是可见的。
  • 反逆向 – 开发者需要确保自己的代码无法通过再造工程被利用。通常可通过人为增加代码体积或复杂性的方式实现。

最后 Guido 通过一些事实暗示大家,LLVM 只能生成 Bitcode 代码而非机器代码。Apple 使用这种技术的目的在于改进或优化为不同平台提供代码的方法,开发者可以借助这一概念增添 IDE 中已经具备的自动化的安全加固机制。但这一过程中也可以使用其他一些工具,例如 MAST

请注意,Qcon 大会结束后一周内,大部分演讲将免费发布至 InfoQ。

查看英文原文 Dan Guido: Modern iOS Application Security

2016-06-22 19:001710
用户头像

发布了 283 篇内容, 共 108.9 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

深入理解 Flutter 图片加载原理 | 京东云技术团队

京东科技开发者

flutter 移动开发 图片懒加载 企业号 8 月 PK 榜

食品包装MES系统解决方案

万界星空科技

MES系统

小白都会的数据可视化大屏搭建,速来学习

华为云开发者联盟

开发 开发工具 华为云 华为云开发者联盟 企业号 8 月 PK 榜

利用CI机制管控jar依赖树 | 京东云技术团队

京东科技开发者

ci CI/CD jar包 企业号 8 月 PK 榜

RPA+智能问答实现微信端智能客服 | 京东云技术团队

京东科技开发者

微信 RPA 智能客服 企业号 8 月 PK 榜

电商小程序微服务架构

艾瑾行

架构训练营

前端合成海报并保存到本地

南城FE

JavaScript 小程序 前端 图片合成

ARM64是什么意思?与x86有什么区别?

行云管家

arm64

OTP令牌是什么?有什么作用?是怎么实现的?

行云管家

运维 堡垒机 双因子认证 OTP令牌

08.25北京站|阿里云Serverless 技术实践营( AI 专场)开放报名

Serverless Devs

阿里云 Serverless 云原生

函数性能探测:更简单高效的 Serverless 规格选型方案

阿里巴巴云原生

阿里云 Serverless 云原生

如何用树莓派Pico针对IoT编程?

高端章鱼哥

树莓派 物联网 树莓派 Pico MCU

大容量文件传输的高速传输协议解决方案评估与比较

镭速

大文件传输 大容量文件传输

融入数据浪潮,KaiwuDB 期待与您共赴 DTCC 2023

KaiwuDB

KaiwuDB DTCC2023

透彻理解 Axios Blob 的使用与优化

Apifox

性能优化 后端 HTTP API web开发

开源XL-LightHouse与Flink、ClickHouse之类技术相比有什么优势

feng

大数据 flink Clickhouse 流式计算 流式统计

Parallels Desktop 18 for Mac(Pd虚拟机) 18.3.2激活版

mac

Parallels Desktop 18 pd 18 pd虚拟机 苹果mac Windows软件

AI 自动开发软件并部署到云服务器,DevOpsGPT实现从自然语言需求到可运行的软件!

booboosui

AI Codec AI开发软件 ChatGPT

晋级名单公布!“域见杯”复赛今日火热开启

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

2023中国高校计算机大赛热度再刷新:2100+参赛队伍,获超480所国内知名高校关注!

云智慧AIOps社区

编程 算法 模型 中国大学生计算机设计大赛 计算机大赛

数仓备份经验分享丨详解roach备份原理及问题处理套路

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

你可以信任由编译器优化的代码吗?

互联网工科生

编译器 simd 数据流

关于跨国文件传输需要了解的5点

镭速

跨国文件传输

快手光合大会公开全模态大模型AIGC解决方案 人机协同助力创作全流程提效

Geek老T

AI 短视频

火山引擎ByteHouse:一套方案,让OLAP引擎在精准投放场景更高效

字节跳动数据平台

大数据 云原生 Clickhouse 企业号 8 月 PK 榜

低代码实现探索(五十九)SAP底层技术研究

零道云-混合式低代码平台

chatglm2-6b模型在9n-triton中部署并集成至langchain实践 | 京东云技术团队

京东科技开发者

人工智能 #LangChain langchain 企业号 8 月 PK 榜 ChatGLM2-6B

LED小间距屏幕的COB封装技术应用和优势

Dylan

技术 封装 PCB LED显示屏

Dan Guido:现代化iOS应用的安全性_安全_Ralph Winzinger_InfoQ精选文章