想知道离下次苹果发布会还有多久,可以去 AppleTimer 这个倒计时网站 http://www.appletimer.com。选择你关注的发布会,就会看到下图所示的倒计时了。

AppleTimer

嫌每次都要开网页不方便的话,可以看以前这篇教程:《用 Web Clip 功能把网页的指定部分放入苹果电脑 Dashboard 或者桌面,方便不开浏览器随时查看

首先是一则「旧闻」:8月8日凌晨5时,前后历经15个月,经过多轮严苛的技术测试和评审(资源池网络的可用性达到99.99%/月,云存储服务的可用性达到99.9%,数据的可用性达到99.99999999999%),苹果公司开始将iCloud中国用户数据生产流量割接至中国电信云存储服务。

和以前去地球对面的苹果美国数据中心相比,迁移到中国电信以后,中国大陆用户应该能感受到苹果 iCloud 服务的速度有了巨大提升(还记得此前 App Store 数据入华后应用下载速度的飞跃吗)。

但肯定有人担心:我们的数据还安全吗?尤其是面对一个我们并不喜欢的、有过糟糕信用记录的政府的情况下。转载一篇《苹果 iCloud 进入国内就不安全了吗?从密码学算法与应用安全谈 iCloud》吧:


苹果对于其云服务有很高的安全标准,笔者在这篇文章中会重点介绍 iCloud 使用的数据加密算法与算法安全性,让各位读者对 iCloud 的安全性有简单的认识。在本文中涉及到的密码学概念,笔者会以最简单的方式介绍,忽略复杂的定义、算法细节和数学原理。

1.  引言

苹果的众多服务中都有密码学的身影,例如可信引导链(也就是开机的过程)、系统升级授权、Touch ID 和 Secure Enclave(A7 处理器中存储指纹信息的可信计算模块)、应用安全、网络通信安全、互联网服务安全、设备控制等等,信息安全是每个服务的重中之重。虽然你在日常使用中可能感觉不到,但在顺畅、可靠服务的背后,信息安全尤其是密码学是这一切的后盾。

本文对 iCloud 云服务中使用的密码学算法进行简单介绍,希望通过本文,能让读者对 iCloud 的安全性有简单的认识,不要被一些言论所误导。

2. 什么是 iCloud?

iCloud 是苹果公司所提供的云端服务,用户能在 iCloud 中存储音乐、照片、应用数据、联系人、日历、备忘录、iCloud KeyChain、备份和恢复信息等等,并将这些数据无线推送到用户所有支持 iCloud 同步的设备上。iCloud 还可以备份 iOS 设备,帮助用户查找丢失的设备,并简化照片共享。

用户通过 Apple ID 和密码来对自己的 iCloud 进行设置,这一切数据都存储在云端,因此云端的数据安全至关重要。云端的数据安全包括文件元数据(Metadata,包括文件名、扩展名、权限等等)和文件内容的安全。

3.  iCloud 的文件安全

用户在 iCloud 存储的每个文件都被分成若干个块,每一块使用 128 位密钥的 AES 加密算法进行加密,每个 128 位的密钥根据文件块的内容生成。这些内容都与 Apple ID 有关,存储在第三方的存储服务上,例如 Amazon S3 和 Windows Azure。

AES(Advanced Encryption Standard) 是美国国家标准技术研究所(NIST)在 2001 年发布的高级加密标准,用来取代密钥短、安全性差的 DES(Data Encryption Standard,数据加密算法)。AES 是一种对称密码,在加密和解密时使用相同的密钥,与公钥密码相比,要求双方取得相同的密钥是对称密钥加密的主要缺点之一。由于对称加密的速度比公钥加密快很多,因此对于文件加密,对称密码是最佳选择。AES 在 GF(2^8) 有限域上进行计算,包括众多的数学概念和推导,故不展开详述。AES 具有很高的安全性,2003 年 6 月,美国政府宣布 AES 可以用于加密机密文件。AES 的密钥长度有 128 位、192 位、256 位,对于加密一般文件,128 位的 AES 足以保证其安全性。

AES 加密算法简化流程

▲ AES 加密算法简化流程

我们在认知上的一个误区是:密钥长度越长,安全性越高,所以应该密钥越长越好。从理论上来说没有问题,但过高安全性带来的一个问题便是计算资源的过度消耗和计算时间的增长。这便是密码学和系统设计实现中需要考虑的安全性和损耗的平衡问题。

由于 AES 的密钥被加密存储在用户的 iCloud 账户中,服务商无法得到,并且 AES 本身具有很高的安全性,笔者认为用户在 iCloud 的文件很安全,与服务商没有任何关系。

4.  iCloud 备份

iCloud 备份包括设备的设置、应用数据、照片、铃声、iMessage 和短信等等,在发送至互联网进行传输前已经被 iOS 设备加密,iCloud 云端接收到数据后直接存储,因此存储的也是加密后的数据。iCloud 还使用安全令牌来验证用户的访问。

iCloud 备份加密使用公开密钥算法中的椭圆曲线算法中的 Curve25519 曲线生成密钥。Curve25519 曲线在Cryptocat、Open SSH、Tor(你懂得)、Apple Homekit 等服务中广泛使用,遵循 Diffie–Hellman 椭圆曲线密钥交换规则。

椭圆曲线密码学是基于椭圆曲线数学的一种公钥密码的方法,主要优势是在某些情况下它比其他的方法使用更小的密钥——比如 RSA 加密算法——提供相当的或更高等级的安全。不过椭圆曲线一个缺点是加密和解密操作的实现比其他机制花费的时间长。

密钥交换是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥,这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。具有如此优良性质(在不安全信道上建立起安全通信)的协议有极为广阔的应用。

Diffie-Hellman 密钥交换协议流程

▲ Diffie-Hellman 密钥交换协议流程

iCloud 备份存储在用户的 iCloud 账户中,并被一个随机的密钥加密后保护。用户的 iCloud 密码不被用于加密,因此服务商无法对加密后的数据做手脚。在备份到云端后,iCloud 还保存着一个与用户 Apple ID 关联的密钥,当用户在不同设备上登陆自己的 Apple ID 时,这些备份才可以被推送至已登录的设备上。苹果制定了这些算法,但无法根据用户的 Apple ID 来重复得到这些密钥。密钥都是每次新生成的,无法重放得到。

5.  iCloud Keychain

iCloud Keychain 允许用户在 iOS 和 Mac 设备间安全的同步这些密码,在同步过程中,密码不会暴露给苹果,都通过密码算法和密码协议传输并计算。在以下被攻击的情况下,仍能保证用户的密码不被泄露:

  • 用户的 iCloud 账户被攻破
  • iCloud 被外部攻击者或内部员工攻击
  • 第三方对用户账户的访问

iCloud Keychain 同步同样使用了公开密钥中的椭圆曲线算法(P256)、AES-256 等加密算法。椭圆曲线算法的公私钥对的生成和存储于用户的 iCloud 密码相关。虽然生成和存储与用户的 iCloud 密码相关,但不是直接读取用户的密码再进行生成。在经过加盐和迭代操作后,同步密钥被生成。在经过若干复杂的步骤,完成密钥的同步。在整个过程中,服务商或苹果都无法查看到用户的密码和同步密钥,有效保证了安全性。

此外,iCloud 还提供了安全设施,保证同步过程只能在被授权的设备上进行。根据苹果的安全白皮书,笔者发现 iCloud Keychain 同步是 iCloud 服务中最为复杂的过程,包括了 10 次以上的密钥生成、交换、销毁等过程,每一步都是用了最可靠的加密算法来保证安全性。此外,通信过程也是用标准的安全协议完成。这些都有效保证了 iCloud Keychain 服务的安全性。

小结

信息安全有三个核心目标:保密性、完整性、可用性。其中,保密性和完整性是密码学研究的重要问题之一,也是密码学的重要应用方向。密码学是研究如何隐密地传递信息的学科,也是信息安全等相关议题,如认证、访问控制的核心。密码学是要隐藏信息的含义,而不是隐藏信息的存在。密码学算法、安全协议、安全策略等等在各项云服务中被大范围使用,iCloud 也不例外。

iCloud 是目前安全性最高的云服务之一,普通用户不用担心其安全性,也无需知道什么样的密码学内容被使用来保证数据的安全性,放心使用即可。

原文 http://sspai.com/26497

看了 GeekPark 的这篇关于演讲工具的报道,终于知道乔布斯、Tim Cook 等人在苹果发布会上用的是什么 Keynote 幻灯片遥控器了:Perfect Cue Mini。上百米的遥控距离,强干扰极限恶劣环境下也能保持几乎 100% 可靠,遥控器操作简单,不受朝向限制 …… 但是价格昂贵。下面这张图片来自 Perfect Cue Mini 的官网,不仅设备外形很复古像个军用电台,他们的网站也好像是上个世纪做完了就没改过的样子。

Perfect Cue Mini 遥控器

至于为什么不用苹果自家的 iPhone App「Keynote Remote」,一方面和 Perfect Cue Mini 的遥控器相比 iPhone 稍微大了些,滑动触摸屏操作也不如直接按按钮方便;另一方面,几千个带着笔记本电脑、iPad 和 iPhone 的 Geek 聚在一个会场,你可以想象无线信号干扰有多强。Perfect Cue Mini 更靠谱。

乔布斯 用Perfect Cue Mini 遥控器

周末了,推荐大家读一篇文章:著名苹果博客 Daring Fireball 的这篇《Only Apple》。它不仅被我放在了 RSS 阅读器收藏列表和浏览器收藏夹里,甚至被我还单独存了份 PDF 出来。因为写得太好了。

苹果、微软、三星、亚马逊、Google …… 这几家巨头分别在哪些领域拥有优势,为什么很多事情只有苹果能做到?作者用简单且极有条例的语言分析了个透彻明白。强烈建议大家读一下。

地址 http://daringfireball.net/2014/06/only_apple,那博客的默认字体很小,你可以到网页底部的「Display Preferences」那里设置,或者直接开 Safari 浏览器的阅读器功能阅读。

苹果在 OS X Yosemite 和 iOS 8 系统里引入了 Extension 功能。发现了一篇对此讲得挺透彻的博客,以下内容转载自 http://imtx.me/archives/1898.html


看完了 WWDC 14 的视频之《Creating Extensions for iOS and OS X》,差不多可以谈谈 Extensions 了。

我个人认为这是 iOS 和 OS X 发展至今非常具有里程碑意义的一处改进,甚至比 UI 上的改变重要的多。我想简单地谈一下为何 Extensions 这么重要。

Extension 是什么?

首先我们得问,Extension 是什么?这里可能会有很多不同的解释。

一个很明显的例子是便是使用了相同术语的 Firefox 和 Chrome 的 Extension,这两大浏览器提供了非常丰富的 Extension 用于游览器本身以及增强 Web 浏览体验。确切地说,这里的 Exension 是一种 Plugin。

还有一个是 Android 的 Intent,Intent 使 App 可以实现相关 Intent,在系统或者一个 App 里,用户可以自由的选择另一个 App 去完成特定的任务。所以,Android 的 Intent 是一种 IPC(应用程序间的通讯)。

这里的分类有点极端,毕竟浏览器有真正的 Plugin,如 Flash 插件;Android 也有提供 Widget,也更接近系统的 Plugin。在这点上,我可以说 iOS/OS X 的 Extension 也是混合了上面提到的一切:既有 Plugin 的部分(如 Today),也有 IPC 的部分(如 Share、Photo Editing)。

于是让我们就 Extension 简单地理解为:增强系统默认功能,能让 App 之间的协同工作成为可能。

没有 Extension 的日子…

没有现在的 Extenion 之前,iOS 和 OS X 都分别有相似的技术去实现系统的增强以及 App 之前的协作。

对 OS X 来说,它是 Services 和 Scripting,这是 OS X 从一开始就具备的一项特性,通过在应用程序开发框架级别支持 Scripting(默认语言是 AppleScript),让 OS X 支持图形脚本化,从而让这个操作系统具备了无限扩展的能力。

得益于 Scripting 作为技术后端,直接影响了 Alfred 这类 Power Tools 在 OS X 上的流行。然而不管 AppleScript 多么简单,它依然是一门语言,与命令行脚本在本质上属于同一类事物,从而注定了 Scripting/AppleScript 是作为 Power Users 的一项工具,离普通用户比较远。

得益于 Scripting 作为技术后端,直接影响了 Alfred 这类 Power Tools 在 OS X 上的流行。然而不管 AppleScript 多么简单,它依然是一门语言,与命令行脚本在本质上属于同一类事物,从而注定了 Scripting/AppleScript 是作为 Power Users 的一项工具,离普通用户比较远。

然而,Extensions 的支持将改变这一现象,OS X 的扩展能力相比以前得到进一步增强,与此同时,保持了对普通用户的友好。

另外,对于 iOS 来说,在 Extension 之前,iOS 平台实际上早已实现应用程序间的相互通讯。举个最简单的例子,大家可能用过「知乎日报」,也用过「Evernote」,知乎日报就支持把一篇文章保存到 Evernote 里去。当你点了「保存到 Evernote」里后,知乎日报会调用 Evernote,把文章保存好之后,又返回知乎日报。这就是一个完全的 IPC 过程。

Extensions 于 IPC 的不同在于,它是一个系统级而非 App 级的特性。对上面提到的一个例子来说,知乎日报需要明确知道 Evernote,才能把文章保存到它那里去;而通过 Extension,知乎日报不再需要知道 Evernote,也能保存文章了。这个改变是巨大的…

iOS/OS X Extension 的特点:开放,并且安全

对于这项迟来的特性,iOS/OS X 的 Extension 有何特点,Apple 真的允许开发者做各种他们能在其他平台做的事情,而不再限制的非常死吗?

对于这点,我可以说,是的。Apple 不仅开放了足够多的可以开放、供开发者发挥的地方,并且也做到了和用户利益至关重要的一点:保证安全。也就说,在你使用各种 Extensions 操作照片或其他文档的同时,iOS/OS X 会有设计优良的安全机制将 Extension 与对应的文档(或 App 专有的文档)隔离起来,第三方 Extension 只能被访问授权的对象,而对其他与此对象处于同一目录(或 App)下的将无法得到访问。

对于这点安全性上的考虑,Ars Technica 写了一篇很详细的文章《Explaining iOS 8’s extensions: Opening the platform while keeping it secure》来分析,并且与 Android 提供的不是很安全的 Extension 机制作对比(期望能在月末的 Google I/O 得到改进吧~)。强烈推荐对 iOS/Android 安全性感兴趣的同学去读一读。

所以可以说,iOS/OS X 的 Extension 可以说是既完善又安全。当然,现在刚刚推出,还没有太多的 Extension 来证明这一点,就让我们拭目以待吧!

关于 iOS 的输入法

iOS 的输入法也算是一个特殊的 Extension,它和其他 Extension 一样,需要有一个标准的 App Container,需要用户明确去启用它才能使用。

对于输入法来说,安全性有着特别的设计,因为不像其他 Extension 是针对文件进行的安全防护,输入法可是掌握着你输入的那些内容。对此,Apple 提供的输入法模板中,默认是没有网络的支持的,但是如果一款输入法确实需要用到网络(如云词库),那么开发者需要启用它,用户也会得到提示。在这之后,就是用户与开发者的信任关系了:我用你的输入法,我相信你你只用我的输入内容改善词库而不会用做其他用途。

此外,iOS 的输入法还有两个硬性规定:

  • 输入法必须提供切换到其他输入法的按钮:这点很重要。我可以在一些我觉得特别的地方不使用你的输入法,而能方便地切换到我想要的输入法。
  • 如果一个文本框要求为 secure(如密码框),那么系统会强制使用系统默认的输入法来进行输入,而不是第三方输入法。

有这两点很重要,因为用户总能方便地切换到其他输入法,那么第三方输入法就不能霸占这个系统,与此同时,用户不必担心密码类的会被输入法记住。

关于 Safari 的 Action

Safari 和 Chrome 及 Firefox 一样,在这之前也提供了 Extension 的支持。然而,通过 iOS/OS X 新增的这个系统级 Extension,Safari 可以走的更远了。这部分的 Extension,叫 Safari Action。

简单的说,现在你可以通过你的 App 来分发一个扩展,首先你的 App 是一个完整的 App,其次你的 App 还可以提供一个扩展,用于辅助或增强 App 原有的功能。

比如说,1Password,用过 Mac 版(或 Windows 版)的同学都知道,你可以在浏览器里通过扩展来为你的网站填密码,但是这一功能因为此前 iOS 系统的限制而无法做到。但是在 iOS 8 里面,1Password 将完全有能力像桌面版一样,为你的 Safari 自动填写密码、用户信息等等。这个 Safari Action 的支持可以说是非常实用的。iOS 上浏览 Web 的体验将因此得到增强。

一个鲜活的例子

由于 iOS 8 的测试版本刚刚发布两周,现在还没有什么可用的第三方 Extension 可供演示的,那么我来挑一个非常有用的 OS X 的内置 Extension 来演示吧。

可能大家还记得 WWDC 14 上演示的 Mail.app 支持直接编辑邮件附件的一个功能吧。当时我看了这个就觉得 OS X Yosemite 正式发布后,我一定要开始用 Mail.app。后来我了解到,这项功能实际上是独立于 Mail.app 的,没错,它就是 Extension —— Markup(标记)。

比如,我在 TextEditor 里面写文章,我插入了一张图片。

这时我想给这张图片加一行文字标记,而不是回到源文件用其他 App 去编辑它。完成这项任务很简单:把鼠标移到图片上,会冒出一个下拉点击区域,点击它,就会出来:标记。这就是和 Mail.app 一样的功能。

谈谈 iOS 8 和 OS X 10.10 的 Extension

点击它以后,就会有一个漂亮的动画直接在 TextEditor 里面进入编辑状态了,编辑完点完成图片就能立马得到更新。

谈谈 iOS 8 和 OS X 10.10 的 Extension

这就是系统级 Extension 的威力。一个 Extension 就可以使整个系统的 App 得到增强,并且它的使用是那么的无缝,让你觉得这个功能就像是这个 App 的一部分一样。

可以想像,等到 iOS/OS X 上 Extension 多起来的时候,整个系统会像这个例子一样更好的协调工作,App 们各尽其责,生态圈会比现在更好。

将于今年秋季正式推出的苹果 iOS 8 系统里将加入 Widget 功能(Widget,小工具),OS X Yosemite 系统里的 Widget 也将迎来大变更:整合入通知中心。在 TheVerge 看到一篇介绍苹果电脑 Dashboard Widget 历史的文章,简单翻译一下吧:

苹果电脑 desk accessories

一位名叫 Bud Tribble 的前苹果员工提出了 Widget 的最初想法。1984 年,苹果公司 Mac 团队成员 Andy Hertzfeld 根据该想法开发出了「desk ornaments」,后来改名为「desk ornaments」,一键调出计算器、记事便签、小游戏等单一用途的常用小工具。在那个还只能单线程运行的 Mac OS 时代,方便性非常明显。

你可以到这个网页 http://jamesfriend.com.au/pce-js/ 在浏览器里模拟当年的 Macintosh 运行效果,点击左上角的苹果 Logo 就能调出那些小工具列表。注意,当时的 Mac 操作和现在不一样,在菜单上按住鼠标弹出菜单,松开鼠标=点击。

题外话:Mac OS 和现在的 Mac OS X 是不同的系统,不是简写关系。

Konfabulator

在 2005 年苹果正式推出 Dashboard Widget 功能之前,有个小插曲。一款名叫 Konfabulator  的软件能实现「调出小工具」的功能,如上图所示。苹果后来被喷抄袭他的创意,不过,创意这东西,最没门槛了(想到了手机发布会上显摆创意的某情怀大师)。

苹果电脑 Mac OS X 10.4 Tiger 系统里的 Dashboard Widget 功能

2005 年发布的苹果电脑 Mac OS X 10.4 Tiger 系统里,集成了 Dashboard 功能,可以一键调出各种 Widget 小工具。最初只有 14 款 Widget 小工具,后来当然多到数不清了(向第三方开发者开放的)。

Dashboard 一直被设计成把一键调出的  Widgets 小工具浮动显示在当前屏幕上方的一个新图层里,直到 2011 年发布的 OS X Lion 系统,默认在新桌面里显示 Dashboard Widgets。当然你也可以设置让它们像以前一样浮现在当前桌面。

苹果 iOS 8 和 OS X Yosemite 系统里的 Widget

在 OS X Yosemite 系统里,Dashboard 被移到了通知中心,同样一键调出,而且可以从 Mac App Store 下载你想要的 Widgets 了。此外,Dashboard Widget 功能还首次来到 iOS 系统。和 Android 系统上那种固定在桌面上的的 Widgets(桌面小工具)不同,苹果把它们放在了通知中心。而且和 OS X Yosemite 系统的通知中心 Dashboard 也不同,它们在 iOS 8 系统里看上去更像 Siri 的信息卡片式设计。

TheVerge 英语原文

分页: 8/46 第一页 上页 3 4 5 6 7 8 9 10 11 12 下页 最后页 [ 显示模式: 摘要 | 列表 ]