黄玮
根据 中国电子技术标准化研究院
发布的 智能终端白皮书(2014年修订版)
智能终端主要表现形式有:智能电视、智能机顶盒、智能手机、平板电脑等
智能终端包含的主要要素:高性能中央处理器、存储器、 操作系统 、应用程序和网络接入
根据 IDC 中国在 2020 年 12 月 10 日发布的 《“颠覆”,IDC发布2021年中国智能终端市场10大预测》
连接、交互、屏幕等一系列新兴技术正逐渐应用于智能终端设备
Wi-Fi 6
, 蓝牙等本课程要深入展开讲解的智能终端设备为智能手机平台。
像素点数
)。例如, 与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域的像素较少。
横屏
还是 竖屏
,分别表示屏幕的纵横比是宽还是高。请注意, 不仅不同的设备默认以不同的方向操作,而且 方向在运行时可随着用户旋转设备而改变KitKat
为例,发布于 2013 年 10 月,截止 2017 年 11 月,全球范围内仍然有 13.8% 的设备还在运行着 4 年前的“旧”系统Nougat
为例,发布于 2016 年 8 月,截止 2021 年 2 月,全球范围内仍然有 11.2% 的设备还在运行着 4 年前的“旧”系统
11.2% = 84.9% - 73.7%
新版本系统更新部署到终端设备周期较长
Codename
从 2014 年 Android 5 (Lollipop)
开始,每年一个新版本代号发布Version
API level
Android Compatibility Program
用于不同厂商生产的设备可以兼容 Android 应用程序的一个认证标准,只有认证设备才可以使用 Android
商标Android 兼容计划
认证的设备才能向 Google 申请使用 Google Play
服务和随设备分发 Google Mobile Services
Google Play
和 Google Mobile Services
均是 Google 的 私有闭源软件GMS
: Google Mobile Services
Google Play Services
(也被称为 GmsCore
), Google Play Store
(应用商店), Google Search
, Chrome
等 Google
预置应用GMS
的 Android
系统才可以使用以上基础设施服务
AOSP
授权协议可以制造所有类型设备Android 兼容性认证
,则需要对照认证标准配备必要硬件Android
操作系统为核心的全面多行业发展iPhone OS
正式重命名为 iOS
AppleTV
的系统被正式命名为 tvOS
iPad
的 iOS
被重命名为 iPadOS
Cocoa –> Cocoa Touch
Core OS
FreeBSD
和 Mach
所改写的 Darwin
,是开源、符合 POSIX
标准的一个 Unix
核心iOS
的一些基础功能
POSIX
),文件系统,网络(BSD Socket
),以及标准输入输出等等C
语言的 API
来提供。Core OS
层的驱动也提供了硬件和系统框架之间的接口。然而,由于安全的考虑,只有有限的系统框架类能访问内核和驱动Apple
官方授权允许汽车、智能家居领域厂商Apple
官方唯一维护
HomeKit
只定义通信接口标准Apple
官方未授权允许任何第三方应用商店,仅允许企业级应用的自行分发和授权模式Apple
强势主导的有限开放生态圈Android
生态圈
过期警告 ⚠️ 本课件使用的 CVE 统计数据服务提供商 https://www.cvedetails.com/ 自从 2019 年下半年后就停止了和上游 CVE 数据源的同步更新。
由于
iOS
底层的Core OS
是基于FreeBSD
和Mach
所改写的Darwin
,所以FreeBSD
的相关漏洞在某些条件下也会影响到iOS
黑产利用新增的 iOS日历邀请 功能群发垃圾信息,这种日历弹窗小广告,不显示来源,仅仅显示广告内容、发送人和一个时段。我们往往会下意识地点击「拒绝」,但没想到这个小动作就能把自己的个人名字泄露了给对方。保留iCloud日历同步功能的同时,防止垃圾邀请充斥日历的操作方法如下:
EvilTwin
类攻击对于iOS手机用户将有更多机会得手,因为用户手机的Wi-Fi功能将会随着用户位置的变化、系统时间的变化而自动被系统强制开启Sign in with Apple
)」功能,苹果会为用户随机生成一个「中转邮箱账号」来规避应用服务提供商对用户数据进行收集和追踪Sign in with Apple
更注重用户的隐私保护
私密电子邮件中转服务
帮助用户的「匿名电邮地址」依然可以正确接收到通知邮件“通过 Apple 登录”功能既不会跟踪您,也不会分析您的特征。Apple 只会保留必要的信息,以确保您能够登录和管理自己的帐户。
“通过 Apple 登录”功能内建了具有双重认证的安全保护机制。如果您在使用 Apple 设备,则可以随时通过面容 ID 或触控 ID 进行登录和重新认证。
只要知道你在第三方网站登录使用的 邮箱账号名 即可通过「Sign in with Apple」功能登录进入你在第三方网站的账号。
JWT
又是加密又是签名
根据上述 数据校验 缺陷:收到的请求数据中的 email 字段和前一步身份认证时使用的 email 未进行匹配验证 ,攻击者只需要篡改「交换 JWT」步骤中的请求数据中的 email 字段为任意目标邮箱,苹果服务器均会签发一个「合法 JWT」给攻击者。
// (伪造电邮地址)请求消息示例
POST /XXXX/XXXX HTTP/1.1
Host: appleid.apple.com
{"email":"contact@bhavukjain.com"}
// 响应消息示例
{
"authorization" : {
"id_token" : "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.XXXXX.XXXXX",
"grant_code" : "XXX.0.nzr.XXXX",
"scope" : [ "name", "email" ]
},
"authorizedData" : {
"userId" : "XXX.XXXXX.XXXX"
},
"consentRequired" : false
}
第七章 Web 安全
—— 1. 未验证的用户输入JWT
为代表的第三方授权协议本身设计是安全的,但在 实现 阶段依然可能引入 安全漏洞
单点登录
和 开放授权登录
从功能设计上就是典型的「牺牲安全性」(风险集中在一个账号上)「换取便利性」
截止 2021 年 2 月 2 日,CVE 数据库中可检索到 53 个锁屏相关漏洞 —— 手机物理安全的保障措施之一
iOS 目前还存在哪些厂商故意设计的「以牺牲安全性」为代价换来「用户体验提升」的设计?
日历邀请
功能依然存在 垃圾邀请
风险删除照片进入垃圾箱并保留 30 天
功能存在敏感信息残留风险控制中心软关闭 Wi-Fi 功能
WifiInfo.getMacAddress()
方法和 BluetoothAdapter.getAddress()
方法现在会返回常量值 02:00:00:00:00:00
。当运行 Android 6.0(API 级别 23)的设备发起后台 WLAN 或蓝牙扫描时,在外部设备看来,该操作的发起来源是一个 随机化 MAC 地址。0700
)。
0750
file:// URI
。SECCOMP
) 过滤器来过滤所有应用。允许的系统调用列表仅限于通过 bionic
公开的系统调用。WebView
对象将在多进程模式下运行。网页内容在独立的进程中处理,此进程与包含应用的进程相隔离,以提高安全性。ANDROID_ID
的值在软件包卸载或重新安装时就不会发生变化。即使系统更新导致软件包签署密钥发生变化,ANDROID_ID
的值也不会变化。net.hostname
系统属性返回的结果为空,系统属性 net.dns1
、net.dns2
、net.dns3
和 net.dns4
不再可用。READ_CONTACTS
权限,查询联系人的使用情况数据得到的是 近似值 而不是精确值。中文翻译版滞后 2 个月!!!
Fixes listed in the public bulletin come from various different sources: the Android Open Source Project (AOSP), the upstream Linux kernel, and system-on-chip (SOC) manufacturers. For device manufacturers:
iOS | Android | FreeBSD | Linux 内核 | |
---|---|---|---|---|
高危漏洞占比 | 17.3% | 32.3% | 7.2% | 5.7% |
CVSS 平均分 | 6.7 | 7.4 | 6.3 | 5.9 |
3年前CVSS平均分 | 6.8 | 8 | 6.2 | 5.9 |
近3年CVSS平均分 | 6.5 | 6.6 | 7.2 | 6 |
价格从 短期 来看是由 供需 决定, 长期 来看是围绕 价值 上下波动的。
iOS 和 Android 总体安全性「不相上下」,目前 iOS 稍占上风。
威胁 | iOS | Android |
---|---|---|
钓鱼及鱼叉式(定向)钓鱼,(邮件、网页、文件) | √ | √ |
短信欺诈 (钓鱼) | √ | √ |
应用欺诈 (钓鱼) | √ | √ |
盗取上传通讯录 | √ | √ |
越狱、root、越狱伪装 | √ | √ |
SSL漏洞利用 | √ | √ |
恶意配置文件 | √ | - |
邮件附件未加密 | √ | √ |
勒索软件 | √ | √ |
备份(数据)劫持 | √ | √ |
系统(设备)碎片化 | - | √ |
非官方应用(恶意捆绑) | √* | √ |
通话和短信记录上传 | - | √ |
App Store
审核通过后允许消费者下载安装使用App Store
审核,消费者可以直接下载安装使用通过钓鱼邮件「诱骗」用户安装恶意配置文件。
iOS
的安全机制
root
权限代码执行权限
SDK 管理器
Android SDK
目录├── build-tools // 构建 Android 应用所需要的工具,建议总是使用最新版构建工具
├── emulator // 模拟器运行时环境相关工具
├── extras // 扩展开发包,如高版本的API在低版本中开发使用用到的兼容包v4、v7、v13等。也会存放Google提供的USB驱动,Intel提供的硬件加速附件工具包
├── fonts
├── licenses
├── patcher
├── platform-tools // 平台工具,包含 adb 等基本工具。每次更新都向后兼容旧的平台版本
├── platforms // 平台工具资源文件,配套 build-tools 版本
├── skins
├── sources
├── system-images // 已下载模拟器镜像
└── tools // 命令行工具,包括 ProGuard, avdmanager 等基本工具
Android SDK Manager
相结合,可在启用英特尔虚拟机的系统上更快地模拟 Android OS
$SDK_ROOT/platform-tools/
adb
的子命令提前在对应系统中新建系统环境变量 ANDROID_HOME
设置为 Android SDK
的根路径
# macOS && Linux
$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/emulator
# Windows
%ANDROID_HOME%/platform-tools:%ANDROID_HOME%/tools/bin:%ANDROID_HOME%/emulator
AVD Manager
先创建 Android
模拟器环境
Google Play
标志的硬件 Profile
表示支持 Google Play
相关 API 虚拟硬件特性支持Android 5.1
系统镜像android dl.google.com 国内镜像
Android SDK
安装路径 $ANDROID_HOME
API 版本号
的系统镜像压缩包文件
x86-27_r11.zip
为例x86
的目录$ANDROID_HOME/system-images/android-27
下包含 同名 x86
的子目录,形成如下目录层次结构android-27
└── google_apis
└── x86
AVD Manager
的镜像列表页面点击「刷新」按钮即可看到镜像已可用