数据隐私:为何重要以及如何保护自己
当谈到互联网隐私时,最安全的方法是拔掉网线或关闭设备电源。但是,由于您无法真正做到这一点并保持一定的生产力,因此您需要其他选择。本文概述了总体情况,您可以采取的降低风险的步骤,并以有关设置虚拟专用网络的教程结束。
有时,当您不太小心时,您会增加泄露超出应有信息量的风险,而且通常会泄露给错误的接收者——Facebook 就是一个典型的例子。这家提供同名社交媒体产品的公司最近一直受到审查,而且理由充分。重点不是 Facebook 直接犯下了暴行,而是与之前美国总统选举有关联的公司能够访问并以不当方式存储来自该社交媒体网站的大量用户数据。然后,这些数据被用来针对特定个人。但这究竟是如何发生的?这对 Facebook(和其他社交媒体)用户意味着什么?
在 Facebook 的案例中,一家名为剑桥分析 (Cambridge Analytica) 的数据分析公司获得了该社交媒体网站的许可,可以从下载的应用程序中收集用户数据。这些数据包括用户的位置、朋友,甚至用户“喜欢”的内容。据称,该应用程序的开发目的是作为性格测试,尽管它从用户那里挖掘的数据被用于更多用途,并且以可以被认为是非法的方式使用。
从更高的层面来看,这一切意味着什么?用户允许第三方访问他们的数据,而没有完全理解其含义。反过来,这些数据被出售给其他机构或竞选活动,并在那里被用来针对这些用户及其同侪网络。由于无知,变得越来越容易“分享”数据,并且在没有完全理解后果的情况下这样做。
问题的根源对于某些人来说,删除您的社交媒体帐户可能不是一个选项。想想看。例如,通过删除您的 Facebook 帐户,您可能实际上是在删除您的家人和朋友选择分享他们生活中最重要事件的平台。尽管我不断将 Facebook 推到聚光灯下,但这并不是真正的问题。Facebook 仅仅是在利用一个对用户隐私应如何处理没有或几乎没有监管的系统。老实说,作为一个社会,我们正在一边走一边制定这些规则。
最近在这个领域的进步推动了对网络用户的额外保护,并特别强调隐私。以通用数据保护条例 (GDPR) 为例。GDPR 由欧盟 (EU) 制定,是一项直接影响欧盟境内所有个人的数据保护和隐私的法律。它还涉及欧盟境外此类个人数据的导出或使用,迫使其他地区和国家重新定义,并在某些情况下重新实施其服务或产品。这很可能是您看到更新的隐私政策充斥您的收件箱的原因。
现在,GDPR 究竟强制执行什么?再次强调,GDPR 的主要目标是将个人数据的控制权还给欧盟公民。合规截止日期定为 2018 年 5 月 25 日。对于个人而言,GDPR 确保基本身份信息(姓名、地址等)、位置、IP 地址、Cookie 数据、健康/基因数据、种族/民族数据、性取向和政治观点始终受到保护。一旦官方截止日期到来,它最初将影响在欧盟国家设有分支机构或向居住在欧盟国家的个人提供服务的公司。除了限制公司对您的私人数据的控制外,GDPR 还将负担放在同一家公司身上,要求他们对可能导致相同数据被不当访问的任何类型的数据泄露更加公开和诚实。
尽管最近的头条新闻更多地关注社交媒体网站,但它们并不是唯一收集您数据的实体。数据收集和共享的相同概念甚至适用于安装在您移动设备上的应用程序。家庭助手,例如 Google Home 或 Amazon Alexa,一直在监听。这些设备或应用程序背后的公司坚持声称这一切都是为了丰富您的体验,但迄今为止,没有任何东西可以阻止他们滥用这些数据——也就是说,除非其他地区和国家效仿欧盟的做法。
即使那些收集您数据的公司永远不会滥用它,仍然存在安全漏洞(一种太常见的事件)的风险,这会将关于您的相同(并且可能被认为是私人的)信息放入坏人之手。这可能会导致更灾难性的后果,包括身份盗窃。
从哪里开始?知道从哪里开始通常是最困难的任务。显然,使用包含大小写字符、数字和标点符号的强密码,并且不要为您拥有的每个在线帐户使用相同的密码。如果应用程序提供双因素身份验证,请使用它。
下一步涉及查看您所有社交媒体帐户的设置。限制您用户个人资料中的信息,并限制您决定在帖子中分享的信息,包括公开和私人的。即使您将帖子标记为私有,这并不意味着没有人会将其重新分享给更公开的受众。即使您认为自己没事,这些数据最终也可能会泄露出去。因此,下次当您决定发布有关大麻合法化的信息或“喜欢”有关极端政治或两极分化内容的帖子时,该决定可能会在您申请新工作或在法庭上提起诉讼时对您产生影响——也就是说,任何需要背景调查的事情。
您决定在用户个人资料或帖子中分享的信息并不仅限于背景调查。它还可以被用来让不必要的入侵者访问各种不相关的帐户。例如,您的第一只宠物的名字、高中或您与配偶相遇的地方很容易从您的社交媒体帐户中挖掘出来,而这些东西通常被用作重要银行和电子商务帐户的安全问题。
社交媒体连接的应用程序如今,使用您的社交媒体帐户登录新应用程序很容易。在某些情况下,您会被胁迫或欺骗以将您的帐户与这些应用程序连接起来。大多数(如果不是全部)社交媒体平台都提供一个摘要,其中包含您的帐户登录的所有应用程序。以 Facebook 为例,导航到您的“设置”页面,然后单击“应用程序设置”页面。在那里您会找到这样的列表(图 1)。

图 1. Facebook 应用程序设置页面
正如您在图 1 中看到的,我目前连接到几个帐户,包括 Linux 基金会和超级马里奥跑酷。这些应用程序可以直接访问我的帐户信息、我的时间线、我的联系人等等。
这些应用程序不会自动使用您的社交媒体帐户对您进行身份验证。您需要专门授权应用程序通过该帐户对您进行身份验证。即使您可能在某个时候同意了,也请务必定期访问您各种帐户的这些部分,并查看其中的内容。
因此,下次当您从该社交媒体网站重定向并决定参加性格测验或调查以确定您会被哪种类型的人吸引,甚至您作为异性会是什么样子时,请三思而后行,不要使用您的帐户登录。通过这样做,您实际上是在同意让该平台访问您帐户中存储的所有内容。
这基本上就是像剑桥分析这样的公司获取用户信息的方式。您永远无法确定这些信息将如何被使用或滥用。
基于跟踪的广告搜索引擎和社交媒体平台轻松赚钱的最快方法是跟踪您的兴趣并专门向您定向投放相关广告。您在 Google 上搜索某些内容或浏览 Facebook 或 Twitter 动态的频率有多高,并且发现您前几天正在研究的产品或服务的广告?这些平台会跟踪您的位置、您的搜索历史记录和您的总体活动。听起来可怕,不是吗?在某些情况下,您的朋友网络甚至可能会看到您搜索的产品或服务。
为了避免这种定向投放,您需要重新思考您在互联网上的搜索方式。与其使用 Google,不如选择 DuckDuckGo 之类的搜索引擎。对于像亚马逊这样的在线商店,请将您的愿望清单和注册表设为私有,或与少数选定的人分享。在社交媒体的情况下,您可能应该更新您的广告偏好设置。

图 2. Facebook 广告偏好设置页面
在某些情况下,您可以完全禁用基于您的搜索或活动历史记录的定向广告。您还可以限制您的同侪网络可以看到的内容。
了解风险人们通常不会考虑隐私问题,直到某些事情直接影响到他们。了解您面临风险的个人数据的好方法是从服务提供商处请求相同的数据。正是这些数据服务提供商可能会出售给第三方,甚至允许外部应用程序访问。
您可以从 Facebook 请求此数据,通过“常规帐户设置”页面。在您的常规帐户详细信息的底部,有一个标记为“下载 Facebook 数据副本”的链接。

图 3. Facebook 常规帐户设置页面
收集所有内容并将其压缩为单个 .zip 文件需要几分钟时间,但完成后,您将收到一封电子邮件,其中包含检索此存档的直接链接。
解压缩后,您将看到一个组织良好的所有各种活动的集合
$ ls -l
total 24
drwxrwxr-x 2 petros petros 4096 Mar 24 07:11 html
-rw-r--r-- 1 petros petros 6403 Mar 24 07:01 index.htm
drwxrwxr-x 8 petros petros 4096 Mar 24 07:11 messages
drwxrwxr-x 6 petros petros 4096 Mar 24 07:11 photos
drwxrwxr-x 3 petros petros 4096 Mar 24 07:11 videos
打开目录根目录下的文件 index.html(图 4)。

图 4. Facebook 存档个人资料页面
您使用此帐户所做的一切,我的意思是一切,都会被存储并且永远不会被删除。您的所有朋友历史记录,包括被阻止和删除的个人,都会被保留。上传的每张照片和视频以及通过 Messenger 发送的每条私人消息都将永久保留。您点击的每个广告(以及反过来拥有您的联系信息的每个广告商)以及可能更多的内容都会被记录下来。我什至不认识我的列表中出现的 90% 的广告商,我也从未同意与他们分享信息。我还可以看出,他们中的许多人甚至不是来自这个国家。例如,当我使用美国版本的 eBay 并且自 1999 年以来一直如此时,为什么 eBay 的德国分部会通过 Facebook 获得我的信息?为什么 Sally Beauty 关心我是谁?上次我检查时,我没有通过该公司购买任何东西(我对化妆品或护发产品不太感兴趣)。
甚至有报道称,当 Facebook 安装在您的移动设备上时,它可以并且将会记录有关您的电话和短信的所有详细信息(姓名、电话号码、通话时长等)。
移动设备我已经花了很多时间关注社交媒体,但数据隐私并不止于此。另一个令人担忧的领域是移动计算。您运行哪个移动操作系统(Android 或 iOS)或您使用哪个移动硬件(三星、华为、苹果等)都无关紧要。最终结果是相同的。安装后,一些移动应用程序被允许无限制地访问超出必要范围的数据。
考虑到这一点,我去了 Google Play 商店并查找了流行的 Snapchat 应用程序。图 5 显示了 Snapchat 需要访问的所有内容的摘要。

图 5. 流行的移动应用程序的访问要求
其中一些类别是有道理的,但其他一些类别会让您感到困惑。例如,为什么 Snapchat 需要了解我的“设备 ID 和通话信息”或我的 WiFi 和蓝牙连接信息?为什么它需要访问我的 SMS 短信?像 Snapchat 这样的应用程序如何处理这些收集到的数据?他们是否找到根据您的历史记录定向投放特定产品和功能的方法,还是将其出售给第三方?
移动设备通常预装了软件或预配置为将您的个人数据与后端云存储服务同步或存储。此软件可能由您的蜂窝服务提供商、硬件产品制造商甚至操作系统开发商提供。查看这些设置并禁用任何不符合您标准的内容。即使您依赖 Google 将您的照片和视频同步到您的 Google Drive 或 Photos 帐户,也要限制同步哪些文件夹或子目录。
想更进一步吗?三思而后行是否启用指纹身份验证。隐藏锁定屏幕上的所有通知。禁用位置跟踪活动。加密您的手机。
本地隐私呢?还有更多。您还需要考虑本地隐私。您应该始终遵循一定的原则。
密码
使用强密码。不要启用自动登录,并禁用 SSH 的 root 登录。在系统空闲一段时间并且屏幕保护程序接管时启用屏幕锁定。
加密
加密您的主目录甚至整个磁盘驱动器可以限制未经授权的个人在物理处理设备时访问您的个人数据的可能性。大多数现代 Linux 发行版都提供在安装过程中启用此功能的选项。仍然可以加密现有系统,但在您决定进行这项通常有风险的工作之前,请确保您首先备份任何被认为是重要的内容。
应用程序
查看您安装的应用程序。尽量保持最少。如果您不使用它,请卸载它。这至少可以在三个方面帮助您
- 它将减少整体混乱并释放本地硬盘驱动器上的存储空间。
- 您将减少托管具有错误或安全漏洞的软件的风险,从而降低您的系统以某种形式或另一种形式被破坏的可能性。
- 相同的软件应用程序收集不应收集的数据的可能性更小。
系统更新
始终保持您的操作系统更新。主要的 Linux 发行版不断推送现有软件包的更新,以解决软件缺陷和安全漏洞。
HTTP 与 HTTPS
在浏览互联网时建立安全连接。传输数据时请注意。是通过 HTTP 还是 HTTPS 完成的?(后者是安全的方法。)您最不需要的就是您的登录凭据以纯文本形式传输到不安全的网站。这就是为什么如此多的服务提供商正在使用 HTTPS 保护您的平台,其中所有发出的请求都已加密。
网络浏览器
使用正确的网络浏览器。太多网络浏览器不太关心您的隐私,而更关心您的体验。花时间查看您的浏览要求,如果您需要在私密或“隐身”模式下运行,或者只是采用更注重隐私的新浏览器,请采取适当的步骤。
附加组件
在网络浏览器的主题上,查看已安装和配置的任何附加组件的列表。如果附加组件未使用或听起来可疑,则可以安全地禁用或完全删除它。
脚本阻止程序
脚本阻止程序(NoScript、AdBlock 等)可以通过阻止网站上嵌入的脚本跟踪您来提供帮助。一点警告:这些相同的程序可能会破坏您访问的大量网站的体验。
端口安全
查看并改进您的防火墙规则。确保删除任何不应该首先入侵的传入内容。这甚至可能是发现哪些本地服务正在外部端口上侦听(通过 netstat -lt
)的绝佳机会。如果您发现这些服务不是必需的,请关闭它们。
连接到较大网络的每个设备都与一个唯一地址相关联。设备从其连接的网络路由器或网关获取此唯一地址。此地址通常称为该设备的 IP(互联网协议)地址。此 IP 地址对您访问的任何网站和任何服务器都可见。在使用此设备时,您始终会被此地址识别。
正是通过这个相同的地址,您会在各种网站和各种搜索引擎上找到以您居住国家/地区的母语发布的广告。即使您导航到外国网站,这种定向方法也能确保在该网站上发布的广告迎合您当前的位置。
依靠 IP 地址还允许一些网站或服务限制对来自特定国家/地区的访问者的访问。地址的特定范围将指向您在世界地图上的确切国家/地区。
虚拟专用网络避免这种跟踪方法的简单方法是依靠虚拟专用网络 (VPN) 的使用。直接隐藏您的 IP 地址是不可能的。没有它,您将无法访问互联网。但是,您可以假装您正在使用不同的 IP 地址,这就是 VPN 的作用。
VPN 通过使其用户能够跨公共网络发送/接收数据,就好像他们的设备直接连接到专用网络一样,从而扩展了跨公共网络的专用网络。全球有数百家 VPN 提供商。选择合适的提供商可能具有挑战性,但提供商提供他们自己的一组功能和限制,这应该有助于缩小潜在候选者的范围。
假设您不想选择 VPN 提供商,而是想配置自己的 VPN 服务器。也许该 VPN 服务器位于数据中心中的某个位置,而不是靠近您的个人计算设备。对于此示例,我使用 Ubuntu Server 16.04 安装 OpenVPN 并将其配置为服务器。同样,此服务器可以托管在任何地方:另一个州或省的虚拟机中,甚至在云中(例如 AWS EC2)。如果您确实将其托管在云实例上,请确保将该实例的安全组设置为接受端口 1194(您的 VPN 端口)上的传入/传出 UDP 数据包。
服务器
登录到您已经运行的服务器,并确保所有本地软件包都已更新
$ sudo apt-get update && sudo apt-get upgrade
安装 openvpn
和 easy-rsa
软件包
$ sudo apt-get install openvpn easy-rsa
创建一个目录来设置您的证书颁发机构 (CA) 证书。OpenVPN 将使用这些证书来加密服务器和客户端之间的流量。创建目录后,更改到该目录
$ make-cadir ~/openvpn-ca
$ cd ~/openvpn-ca/
打开 vars 文件进行编辑,并找到包含以下参数的部分
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
# X509 Subject Field
export KEY_NAME="EasyRSA"
相应地修改字段,对于 KEY_NAME
,让我们定义一些更通用的名称,例如“server”。这是一个示例
# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="IL"
export KEY_CITY="Chicago"
export KEY_ORG="Linux Journal"
export KEY_EMAIL="localadmin@example.com"
export KEY_OU="Community"
# X509 Subject Field
export KEY_NAME="server"
导出变量
$ source vars
NOTE: If you run ./clean-all, I will be doing a rm -rf
↪on /home/ubuntu/openvpn-ca/keys
清除您环境中旧的密钥
$ ./clean-all
构建一个新的私有根密钥,为每个字段选择默认选项
$ ./build-ca
接下来构建一个新的私有服务器密钥,也为每个字段选择默认选项(当提示输入质询密码时,对于当前示例,您将不输入任何内容)
$ ./build-key-server server
最后,系统会要求您签名并提交证书。键入“y”表示是
Certificate is to be certified until Mar 29 22:27:51 2028
↪GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
您还将生成强大的 Diffie-Hellman 密钥
$ ./build-dh
为了帮助加强服务器的 TLS 完整性验证,生成 HMAC 签名
$ openvpn --genkey --secret keys/ta.key
因此,您已经完成了生成所有适当的服务器密钥,但现在您需要为您的个人计算机生成客户端密钥以连接到服务器。为了简化此任务,请从您生成服务器密钥的同一服务器创建此客户端密钥。
如果您尚未进入该目录,请更改到相同的 ~/openvpn-ca 目录并从更早的版本中获取相同的 vars
文件
$ cd ~/openvpn-ca
$ source vars
生成客户端证书和密钥对,再次选择默认选项,并且为了本示例的目的,避免设置质询密码
$ ./build-key client-example
与服务器证书/密钥一样,同样,在最后,系统会要求您签名并提交证书。键入“y”表示是
Certificate is to be certified until Mar 29 22:32:37 2028
↪GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
更改到 keys 子目录,并将您之前生成的密钥复制到 /etc/openvpn 目录
$ cd keys/
$ sudo cp ca.crt server.crt server.key ta.key
↪dh2048.pem /etc/openvpn/
将 OpenVPN 示例服务器配置文件提取到 /etc/openvpn 目录
$ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/
↪server.conf.gz |sudo tee /etc/openvpn/server.conf
让我们使用此模板作为起点,并应用运行 VPN 服务器应用程序所需的任何修改。使用编辑器,打开 /etc/openvpn/server.conf 文件。您最关心的字段列在下面
;tls-auth ta.key 0 # This file is secret
[ ... ]
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
[ ... ]
;user nobody
;group nogroup
取消注释并添加以下行
tls-auth ta.key 0 # This file is secret
key-direction 0
[ ... ]
;cipher BF-CBC # Blowfish (default)
cipher AES-128-CBC # AES
auth SHA256
;cipher DES-EDE3-CBC # Triple-DES
[ ... ]
user nobody
group nogroup
您需要通过 sysctl
启用 IPv4 数据包转发。取消注释 /etc/sysctl.conf 中的字段 net.ipv4.ip_forward=1
并重新加载配置文件
$ sudo sysctl -p
net.ipv4.ip_forward = 1
如果您正在运行防火墙,则端口 1194 上的 UDP 至少需要对客户端计算机的公共 IP 地址开放。完成此操作后,启动服务器应用程序
$ sudo systemctl start openvpn@server
如果您愿意,可以将其配置为在系统每次重启时自动启动
$ sudo systemctl enable openvpn@server
最后,创建客户端配置文件。这将是客户端每次需要连接到 VPN 服务器计算机时将使用的文件。为此,创建一个暂存目录,相应地设置其权限,并将客户端模板文件复制到其中
$ mkdir -p ~/client-configs/files
$ chmod 700 ~/client-configs/files/
$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf
↪~/client-configs/base.conf
在编辑器中打开 ~/client-configs/base.conf 文件,并找到以下区域
remote my-server-1 1194
;remote my-server-2 1194
[ ... ]
ca ca.crt
cert client.crt
key client.key
[ ... ]
;cipher x
变量应如下所示
remote <public IP of server> 1194
;remote my-server-2 1194
[ ... ]
#ca ca.crt
#cert client.crt
#key client.key
[ ... ]
cipher AES-128-CBC
auth SHA256
key-direction 1
# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
需要调整远程服务器 IP 以反映 VPN 服务器的公共 IP 地址。确保在添加 auth
和 key-direction
变量的同时调整密码。还要附加注释掉的 script-security
和 update-resolv-conf
行。现在,生成 OVPN 文件
cat ~/client-configs/base.conf \
<(echo -e '<ca>') \
~/openvpn-ca/keys/ca.crt \
<(echo -e '</ca>\n<cert>') \
~/openvpn-ca/keys/client-example.crt \
<(echo -e '</cert>\n<key>') \
~/openvpn-ca/keys/client-example.key \
<(echo -e '</key>\n<tls-auth>') \
~/openvpn-ca/keys/ta.key \
<(echo -e '</tls-auth>') \
> ~/client-configs/files/client-example.ovpn
您应该会在 ~/client-configs/files 子目录中看到新创建的文件
$ ls ~/client-configs/files/
client-example.ovpn
客户端
将 OVPN 文件复制到客户端计算机(您的个人计算设备)。在下面的示例中,我已连接到我的客户端计算机并使用 SCP,将文件传输到我的主目录
$ scp petros@openvpn-server:~/client-configs/files/
↪client-example.ovpn ~/
client-example.ovpn 100% 13KB 12.9KB/s 00:00
安装 OpenVPN 软件包
$ sudo apt-get install openvpn
如果 /etc/openvpn/update-resolv-conf 文件存在,请打开您的 OVPN 文件(当前在您的主目录中)并取消注释以下行
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
通过指向客户端配置文件连接到 VPN 服务器
$ sudo openvpn --config client-example.ovpn
当您连接时,您将使用 VPN 服务器使用的公共 IP 地址浏览互联网,该地址不是由您的互联网服务提供商 (ISP) 分配的。
总结当您的位置、购买习惯、首选阅读内容、搜索历史记录(包括健康和疾病)、政治观点等与互联网上数量不明的接收者共享时,感觉如何?感觉可能不太舒服。这可能是我们通常不希望我们最亲近的家人和朋友知道的信息,那么我们为什么要希望陌生人知道呢?太容易自满,并允许此类个人数据挖掘发生。在保持真正匿名性的同时享受现代网络的体验绝对是一个挑战。虽然,这并非不可能。
我已经重点介绍了一些您可以采取的适当步骤来减少您在互联网上的数字足迹,但这远非完整的列表。不要止步于此。尽职调查,让自己放心,当您使用现代技术时,您正在以安全可靠的方式访问它。