阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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:001559
用户头像

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

关注

评论

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

offset新探索:双管齐下,加速大数据量查询

IT科技苏辞

2023年值得学习的云计算技术有哪些?

wljslmz

云计算 11月月更

OneFlow-ONNX v0.6.0正式发布

OneFlow

人工智能 深度学习

使用 Bytebase 管理 Rainbond 上的应用数据库

北京好雨科技有限公司

华为云GaussDB打造金融行业坚实数据底座,共创数字金融新未来

清欢科技

5G+云渲染,助力虚拟仿真医学实训

Finovy Cloud

云渲染

Nginx负载均衡配置、限流配置、Https配置详解

C++后台开发

nginx 负载均衡 HTTP 后端开发 C++开发

全面焕新|详解 Grafana v9.0.x 新增功能特性

阿里巴巴云原生

阿里云 云原生 Grafana 新功能

Baklib帮助中心:自助服务指南

Baklib

客户服务 帮助中心

大厂数据开发老司机送给数据工程师的10条建议,建议先收藏再细品!

雨果

数据开发

如何在 Rocky Linux 上安装 Apache Kafka?

wljslmz

Apache kafka 11月月更

集世界杯+GameFi元素的MetaElfLand,推出世界杯专场活动

EOSdreamer111

NFT盲盒链游DAPP系统开发搭建技术

薇電13242772558

web3

刘强东给京东高管降薪:2千多位总监兄弟工资打8折,并拿出100亿保障”兄弟“基础住房

小小怪下士

程序员 京东 刘强东

集世界杯+GameFi元素的MetaElfLand,为何将在世界杯期间爆发?

股市老人

Java岗位必备技能SpringBoot的9道面试题集锦

钟奕礼

Java java程序员 java面试 java编程

华为云安全亮相世界互联网大会

科技怪授

华为云

全球6位IT负责人解读数字化转型不断失败的原因

雨果

数字化转型

【论文复现】Panoptic Deeplab(全景分割PyTorch)

华为云开发者联盟

人工智能 华为云 论文复现

万恶的strpos函数

J.Smile

自学php

集世界杯+GameFi元素的MetaElfLand,推出世界杯专场活动

西柚子

Zebec开启多链布局,流支付生态持续扩张

西柚子

MemArts :高效解决存算分离架构中数据访问的组件

华为云开发者联盟

云计算 后端 华为云

大规模 Spring Cloud 微服务无损上下线探索与实践

阿里巴巴云原生

阿里云 微服务 云原生 Spring Cloud

kafka实战】分区重分配可能出现的问题和排查问题思路

石臻臻的杂货铺

kafka Kafka实战 11月月更

集世界杯+GameFi元素的MetaElfLand,为何将在世界杯期间爆发?

鳄鱼视界

温州有等保测评机构吗?听说没有是吗?

行云管家

等保 等保测评

华为再次入选2022年Gartner® SIEM魔力象限

科技怪授

华为云

不懂“数据服务”,聊什么“数据中台”

雨果

数据中台 数据服务

一文详解GaussDB(DWS) 的并发管控和内存管控

华为云开发者联盟

大数据 后端 华为云

二面被RocketMQ虐后,狂刷这套实战到源码手册,再战阿里

钟奕礼

Java Java 面试 java程序员 java编程

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