Horo
Horo

目前是 LikeCoin Chain 验证人 Yoitsu 背后的家伙,以及 CDC/CFC 划水组成员(笑)。偶尔会变身成狐狸。( @foobarz )

译文:当汝看到加密(encryption)时应该想到什么

原文来自 https://ssd.eff.org/en/module/what-should-i-know-about-encryption


汝大概已经从别的地方听说过“加密”这个词了呗,有时还和其他的单词组合在一起。 一般的,加密是指把一段数据转化为除了持有可以用来解密的密钥的人以外无法读取的形式 的一种数学过程。(这啥?)

放眼历史(嗯?)人们一直在用不同的方法加密消息,希望它们不会被除了接收者的其他人读到。 今天,借助计算机的力量,咱们不止可以用加密的方式传送消息。还可以达成其他的目的,例如 验证消息的发送者。

加密是在坏人,政府和服务提供商之间保护自己的信息的最加手段。 而且只要运用得当,几乎可以做到无懈可击(然而往往做不到完美的运用得当啦~)。

这篇指南里咱们会讨论到加密的两种主要应用方式:加密静态数据和流。

太长不看版小结

(来自 https://twitter.com/sissisiisi/status/1070522944298893312
  1. 全盘加密要小心冷启动攻击(Cold Boot Attack) ,全盘加密但是 RAM 没有加密, 因此解密的 master key 在 RAM 里面是明文出现.解决的办法嘛,用 Tails. 还有别在开机状态下被敌人物理的接触到电脑.
  2. 全盘加密的主要作用是为了防止 有能力物理接触 你的电脑的人, 比如你的家人,同事,商业间谍,FBI等等
  3. 传输加密 这块,这里要分清楚两个概念: 传输层加密,**端对端加密** 区别在于中间的服务器能不能看到加密内容
  4. 传输加密 不能加密元数据(metadata)比如发送端对端的信息的时候,对方的ID, 发送的时间,密文的长度等等
  5. 所以高度敏感的人,应该想办法匿名.还有就是网络代理,比如你的敌人主要是本地 ISP 以及政府, 可以想办法比如利用 tor 的加密,然后发送端对端的加密邮件而不是直接发送. 这样本地的 ISP 只会看到链接 tor 的事实,而不会知道你发送了邮件.

加密静态数据

静态数据 就是存储在各种地方的数据啦。例如汝的电脑、手机、移动硬盘上的那些。 (因为上面的数据不会移动到别的介质上?)

全盘加密 (“full-disk”encryption,有时也被称作“设备加密”)是一种保护 这种静态数据的常见方法。当汝设置完成以后,就要使用密码(或其它的验证手段)解锁 来读取上面的数据。

一个输入密码的例子


在手机之类的移动设备上,它可能表现的就和普通的锁定屏幕一样。但锁定汝的设备不一定 表示汝启用了全盘加密……

记得检查汝操作系统中关于加密的设置来确认它有没有启用(因为不是所有的操作系统 在所有的情况下都会启用)。如果汝的设备没有加密的话,只要能解开汝设备上的锁定, 就能拿到上面的数据。
以及有些系统会把明文的数据保存在内存上,虽然内存是只要关机一会儿就会让上面的数据消失 的易失介质,但是高明的攻击者可能会尝试通过 冷启动攻击 获取内存上的数据。

全盘加密可以保护汝的数据不被能物理接触到汝设备的人获取,例如汝的室友啦、同事和雇员啦、 家人啦、各种官员(不管他们是来自学校政府还是法院)啦等等。对了还有当汝不小心弄丢了它的 时候。

除了全盘加密以外,还有诸如文件加密(加密指定的文件)和分区(磁盘?)加密(加密设备上指定的 一块区域)这样的加密方法。汝当然可以把它们组合起来使用。

除了 Surveillance Self-Defense 以外,汝还可以在其它地方找到各种有关加密设备的指南,不过要记得 检查它们是不是最新的哦~

加密传输中的数据

如果数据没有加密的话,把数据送到目标的全过程中间的环节都能看到,例如基站和服务商。


传输中的数据 是指通过网络从一处移动到另一处的数据。例如即时通讯应用中,汝编写的消息 从汝的设备中到达服务商的服务器再到接收者的设备上。又或者例如浏览网页,网站的服务器把网站 发送到汝的设备上。

有些流行的应用会提供一些诸如阅后即焚这样的看起来能保护消息的功能。然而只是给汝一种安全的 感觉 ,并不会意味着 安全的。毕竟传输过程中的设备还是能看到的不是?

有两种方式可以用来加密传输中的数据,传输层加密和端到端加密。验证汝的消息是用哪种方法加密的和验证汝的消息是否被加密一样重要 😂 。服务提供商支持的加密类型可能 是决定哪些服务适合汝自己的重要因素,是呗~

传输层加密

一个传输层加密的例子,左侧的手机加密一条消息并将它发送到服务商的服务器。服务商(能够)解密消息, 再加密、发送到右侧的目标。最后目标手机解密消息。


传输层加密,有时也叫做传输层安全(TLS),保护你的数据不被汝和汝连接到的服务器中间的谁和 汝连接到的服务器到目标之间的谁读取。不过在中间,汝所使用的应用的服务商还是能看到(和保存)汝未加密的 明文消息,于是就有可能因为强制要求或被入侵而泄露……

传输层加密的一个例子:HTTPS


现在,抬起头来,看看汝浏览器上的地址栏,有没有看到 https:// 和一个绿色的锁啊 😂 HTTPS 就是传输层加密的一个汝经常能碰到的例子。为啥它比没加密的 HTTP 更安全呢? 因为 它使网络上的窃听者不能看到汝从服务器接收或向服务器发送的数据。

如果有窃听者视图获得用户正在访问的网站的数据,HTTP 连接不能提供保护,但 HTTPS 可以, 甚至能保护汝正在浏览的网站的路径。(例如这个时候窃听者就只能看到汝正在访问 https://ssd.eff.org

因为 HTTP 的问题太多了(例如可能会被注入、cookie / 用户名和密码被窃取、被针对性审查等等),所以现在 越来越多的网站都开始用 HTTPS 了。我们推荐使用电子前哨基金会制作的 HTTPS Everywhere 扩展,它可以在确定一个网站同时支持 HTTP 和 HTTPS 时强制使用 HTTPS 连接。

不过一个服务商提供了 HTTPS 网站不代表它会保护访问它网站的用户的隐私。例如心术不正的服务商 还是可以通过 cookies 在 HTTPS 网站上追踪用户,或是安装恶意软件。

传输层加密的一个例子:VPN

VPN(虚拟专用网络)是传输层加密的另一个例子,在使用 VPN 的情况下,汝的网络流量会以加密的形式经过汝的 ISP (互联网服务提供商)到达 VPN 服务商的服务器。如果有人(例如汝的 ISP?)想窃听汝的网络来了解汝访问了 些什么网站的话,它们会发现除了汝在用 VPN 这个事实以外并不会知道更多。

不过虽然使用 VPN 可以让汝对 ISP 隐藏汝的浏览历史,但是这些还是会被汝的 VPN 服务商看到(以及存储或修改, 如果它有这个打算的话)。所以信任汝的 VPN 服务商是一件要事。

SSD 也有一篇关于如何选择 VPN 的文章

端到端加密

一个端到端加密的例子,左侧的手机加密一条消息并将它发送到服务商的服务器、再发送到右侧的目标。 最后目标手机解密消息。和传输层加密不同,只有终端(编写和接收消息的手机)持有解密消息的密钥, 因此剩下的地方(不管是基站还是服务商)都无法解密这条消息。


端到端加密在汝的消息从发件人到收件人之间全程保护。它可以保证汝的信息离开汝时会被加密而且只能被 汝的目标解密,包括汝正在使用的应用和中间的窃听者都不行。

汝自己读取端到端加密消息实际上意味着运营汝所使用的应用的公司也不能读取它们。 这是良好加密的核心特征:就算是设计和部署它们的家伙也不能破坏它,是呗。

Surveillance Self-Defense 中的 Communicating With Others 一节提供了一些支持端到端加密的聊天工具。

传输层加密还是端到端加密?

在汝考虑是选择传输层加密还是端到端加密时的问题只有三个:

  • 汝信任汝正在使用的应用和服务嘛?
  • 汝信任它的基础结构嘛?
  • (汝正在使用的服务)有没有政策防止执法请求,如果有的话,又是怎样做的?

只要汝有一个答案是“不”,那么汝就需要端到端加密,就是这样。


我们制作了一个动画来演示端到端加密和传输层加密是如何保护汝传输中的消息的。 左侧是一个支持端到端加密(通过不留记录(OTR)实现)的聊天工具,右侧是支持传输层 加密的聊天对话框(Google Hangouts 支持 HTTPS)

在这个 GIF 中,用户首先通过 Google Hangouts 发送了一条消息:

“Hi! This is not end-to-end encrypted. Google can see our conversation.”
“嗨!这不是端到端加密, Gooole 能看到我们的对话。”

然后用户通过左侧的窗口启动了 OTR 聊天:

“Attempting to start a private conversation with [gmail account]. Private conversation with [gmail account] has started. However, their identity has not been verified.”
“正在尝试和 [gmail account] 进行私密聊天。 和 [gmail account] 的私密聊天已启动,但未验证对方的身份。”

同时, Google Hangouts 的对话框上出现了一些看起来像胡言乱语一样的消息。 表明了现在的消息都通过端到端加密来传输。

“Now the conversation is end-to-end encrypted, Google can see that we are chatting, but is unable to read what we'are actually saying.”
“现在这是个端到端加密的对话了, Google 能看到我们在聊天,却看不到我们到底在聊什么。”
“It looks like gibberish to anyone else.”
“对其他人来说就像胡言乱语一样”
“Yup, it looks like nonsense.”
“嗯,对它们丝毫没有用处。”
😃

加密传输中的数据不能做什么

加密不是万能药,汝加密的数据最终还是需要被和汝交谈的人解密并读取。 如果汝的目标被攻击(例如被威胁/被收买)或者汝的目标的设备被入侵, 这个加密通讯还是被破坏了。以及他/她/它还是可以通过一些手段(例如屏幕截图)来保存汝等的记录。

如果汝有把加密的对话备份到其他的地方的话,最好也加密那些备份。


传输中进行加密可以保护汝的消息,却不会加密汝消息的元数据。例如汝和汝的朋友虽然可以通过加密 保护聊天记录,但是加密不会隐藏:

  • 汝等在通过加密进行交流的事实
  • 和交流有关的其它数据,例如位置,时间和长度。
如果因为担心加剧的监控(例如主动的监视)而只在敏感时期或特定情况使用加密却会让汝陷入危险之中, 为啥?因为只是一段时间内使用加密的话,就有可能把元数据和一些重要的日期和时间关联起来。
所以就算是普通的日常活动也要记得使用加密来保护自己哦~

以及要是只有汝自己在使用加密的话,汝所产生的元数据可能会被认为是可疑的(?)。 这就是鼓励大家都尽可能的使用加密工具的原因:为真正需要加密的人泛化加密的使用。

放在一起?

把静态数据和传输中的数据一起加密可以为汝提供更全面的安全性,就是那些信息安全专家所说的 “深度防御”啦~ 通过利用多种方法来保护汝的数据,就可以实现更深层次的保护,是呗。

例如,要是汝通过加密的设备发送未加密的消息(只加密了静态数据),虽然这些消息没有汝设备的密码 就不能在汝的设备上存取,但是政府,服务提供商或高明的攻击者可以在网络上窃听和拦截它们。

反过来说,要是汝没加密的设备发送通过端到端加密的消息(只加密了传输中的数据),虽然消息不会被网络上 的谁窃听和拦截,但是能接触到汝的设备的家伙就能打开汝的设备读取这些消息。

在看完这两个例子以后,汝大概能明白加密传输中的数据和静态数据是保护汝自己免于广泛的潜在风险的理想方法 了吧……

汝想更深入的了解如何使用加密?请继续阅读 关于加密的关键概念

CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论