关闭 More 保存 重做 撤销 预览

   
关闭   当前为简洁模式,您可以更新模块,修改模块属性和数据,要使用完整的拖拽功能,请点击进入高级模式
OD体育 OD体育 黑豹-最强API供应商

上一主題 下一主題
»
奈奈生
LV2 无名的过客
帖子    14
新博币    0 提现
提现    0
TA的勋章:勋章中心
     
    3396 0 | 显示全部楼层 |倒序浏览
    本帖最后由 奈奈生 于 2019-4-16 17:43 编辑

    关于“身份的隐匿”,俺补充说一下:即便你的肉身位于【墙外】,确保身份隐匿依然是必要滴!      -转载至编程随想


    ★如何选择网络平台?
    ◇首先,【绝对不要】使用【国内】的网络服务

      (此处所说的“国内”,指的是:伟光正具备【司法管辖权】的范围,含香港/澳门,不含台湾)
      如果你想要在网络上进行敏感的活动,这个原则一定要牢记。因为用国内的网络服务进行活动,会大大增加你暴露的风险。
      以俺自己来举例:
      刚开博的时候(2009年初),俺同时也注册了 CSDN 的帐号,并在 CSDN 上架设了一个镜像博客(详情参见《开博十周年大事记》)等到后来,俺越来越放肆地抹黑党国,那个 CSDN 帐号也就用得越来越少了。
      虽然俺全程使用 TOR 访问 CSDN(也就是说,CSDN 的服务器无法知道俺的公网 IP)。但是它还是会知道俺的在线活动时间。请注意:“时间线”也会构成某种信息量。关于这方面的详细介绍,请看《如何隐藏你的踪迹,避免跨省追捕》系列教程的第9篇:
    如何隐藏你的踪迹,避免跨省追捕[9]:从【时间角度】谈谈社会工程学的防范
      除了“在线时间信息”。考虑到如今很多网站都重度依赖 JavaScript 脚本(禁用 JS 脚本,网站就没法用)。所以,你如果用了墙内的网络服务,其网站上的 JS 脚本【有可能】收集到你本机的一些系统信息。

      如果说“时间信息”和“系统信息”还不足以吓唬你,俺再提一个事情:当你使用墙内的网络服务,你所有的【用户行为】都有可能被有关部门收集和监控。
      啥是“用户行为”捏?假如你用的是聊天服务(IM),你的用户行为就是——“你写过和看过的全部内容”;假如你使用的是邮件服务(Email),你的用户行为就是——“你发送和接收的所有邮件”。
      请注意:“用户行为”所包含的信息量实在太大了。只要你一不小心,在其中涉及到与你真实身份相关的信息,这个信息就有可能成为日后追溯你身份的线索。(不信的话,请看本文末尾的其中一个反面案例)
    ◇为啥【不要】注册“独立域名”?

      俺已经不止一次被问到:为啥博客没有用“独立域名”?老实说,俺一直觉得:只要博客内容足够好,有没有独立域名其实无所谓。
      另外,如果从“信息安全”的角度来讲,独立域名还会增加额外的风险。
      因为域名是稀缺资源,凡是要注册独立域名,自然涉及到【购买】(也就是【付费】)的问题。不管你是支付现金还是比特币,都会暴露“与你身份相关的信息量”。(通俗地说:增加了身份暴露的风险)
    ◇为啥【不要】搭建“自己的 Server”?

      (注:本小节说的 Server 是广义滴,包括“物理主机、VPS”)

      1. 考虑到【付费】的风险
      (跟“域名”的情况类似)一旦你要搭建自己的 Server,也要涉及到【付费】的环节。如上一节所说,“付费的环节”会增加身份暴露的风险。

      2. 考虑到【安全加固】的专业性
      一般来说,用来提供网络服务的 server 通常会安装 Linux;还有极少数装 Server 版 Windows 或某种 UNIX(BSD 是 UNIX 的一种)。不管你的 Server 用哪种操作系统,都需要进行【安全加固】。
      本来,“安全加固”已经是个很专业的领域,懂行的人就相对较少。然后,你还要考虑到——。也就是说,你的安全加固,【不仅仅】是防“普通骇客”,还要防【御用骇客】。显然,“御用骇客”要比“普通骇客”牛逼得多。不妨稍微透露一下:由于工作关系,俺曾经跟御用骇客打过交道,知道他们的份量。(更多的细节,俺不便多说)
      除非你自己是一个非常资深的信息安全从业人员,并且你对“服务器安全加固”这个细分领域非常熟悉,并且你对 Server 所用的操作系统的安全特点非常熟悉。请扪心自问一下:上述这3条,你都能达到吗?
      达不到的话,还是死了这条心——不要自己去装 server。

      3. 考虑到【时间和精力】
      还有一个原因,也顺便说说——自己维护 server,需要消耗【很多】时间和精力。
      请注意:“安全加固”并【不】是一劳永逸滴,而是个【动态过程】。如果你自己维护 server,需要时刻关注各种安全新闻,掌握你使用的操作系统和软件是否曝光新的安全漏洞,了解最新出现的入侵手法,诸如此类。一旦出现安全漏洞,你需要第一时间进行升级/维护。另外,你还要定期进行安全检查/安全审计......
      凡此种种,都非常消耗时间与精力!
    ◇是否用【暗网】?

      这个问题分两种情况:
    1. 如果需要你自己搭建服务器,那么答案是“否定”滴。(原因参见前一个小节)
    2. 如果无需你自己搭建服务器,由靠谱的第三方提供服务器,那么答案是“肯定”滴。

      说到“暗网”,补充说一点:
      很多人过度迷信“暗网”的能耐。俺要提醒一下:“暗网”只是帮你完成【网络层面】的隐匿性。要想彻底地隐身,你要在【多个层面】进行防范。(其它层面的防范,下面章节会聊到)
    ◇【国外】商业公司之间的权衡

      简单说几个参考点:
      1. 公司的口碑
      不要用那些口碑差(历史上有污点)的平台。这个道理很显然,就不举例了。

      2. 在华业务的规模
      如果某个商业公司在天朝有庞大的商业利益,那么,一旦有关部门找这家公司索取用户私密信息,这家公司为了顾及在华商业利益,就【有可能】屈服于朝廷。
      说到这里,已经猜到有同学会反驳俺——既然这样,为啥还用“微软网盘”分享电子书?
      (对这类反驳,请看下一条的解答)

      3. 网络服务的种类
      不同类型的网络服务,对安全性的要求也不同。
      比如说,俺会使用微软的网盘,但俺肯定【不】考虑微软的邮箱。
      为啥捏?
      因为俺的网盘本来就是用来进行【公开分享】,对保密性没啥要求。而电子邮箱对保密性的要求(相比“网盘”)要高得多。
      所以在选择电子邮箱方面,Google 的 Gmail 显然比微软的 Hotmail/Outlook 更好(Google “在华业务”相比其“全球业务”,可忽略不计)
      同样的道理也适用于 Github。虽然 Github 已经被微软收购了,但俺无所谓。因为俺的 Github 帐号也是用来进行【公开分享】滴。又没啥私密性的东西。最坏情况下,也就是帐号被封掉。真有那么一天,俺再转移战场继续战斗嘛。


    ★如何注册【隔离的】虚拟身份?
    ◇选择一个【全然不同】的网名

      你要选择一个【完全不同】的网名。这个网名与你之前使用过的【任何一个】网名都【不】能有相似之处。
      说到这儿,顺便分享一下俺起网名的经验。
      老读者应该知道:俺刚开博的时候,只是想写点编程方面的博文,算是某种经验分享。当时想过用“喜欢软件开发的极客”,但这个名称太长;改成“喜欢编程的极客”,还是太长;后来又改了几次,才想到如今这个“编程随想”。这个名称比较短,而且还能搭配罗丹那个“思考者的雕像”。
      俺的经验是:
      网名太长就不好记(从传播学角度而言是不利滴),太短又容易跟其它名称混淆(导致“识别度”降低),所以要找一个长度较短同时还具有一定识别度的名称。
    ◇注册时,【不要】填写真实的个人信息

      比如说,注册电子邮箱时,会让你填写生日,你可不要写真实的哦,瞎掰一个就行啦。
      至于像【手机号】、【身份证号】之类的,更加【不】能据实填写。
      (注:“短信验证”的问题,下面会聊到,别急)
    ◇注册的【全过程】都要走【匿名网络】

      “注册帐号”是这个敏感虚拟身份的【起点】。如果注册的过程中暴露了身份信息,那么今后再怎么隐匿都【没用】啦!
      所以,你要确保——注册的全过程都通过【匿名网络】来进行。这样才可以【彻底避免】“公网 IP 暴露”的风险。换句话说,即使在你注册的过程中,网站服务器记录了你的“访问者 IP”,这个 IP 也【不是】你真实的公网 IP。
    ◇啥是【匿名网络】?

      “匿名网络”,洋文叫做“anonymity network”。顾名思义,是用来帮助你实现【匿名化】的手段之一。通过匿名网络进行各种操作(比如在网上发布言论),可以让【网络层面】的【逆向追溯】变得极端困难。
      注:很多人把“匿名网络”与“暗网”混为一谈,其实这是两个不同维度的概念。之所以会有这种混淆,是因为几个知名的工具(Tor、I2P)既是“暗网”,也是“匿名网络”。
    ◇为啥“只用翻墙代理”还【不够】可靠?

      因为翻墙工具的设计初衷是为了“突破 GFW”,而【不是】为了“匿名化”。
      如果你非常在意“匿名化”(比如:想在网上发表敏感的政治言论),那么你就必须使用专门的【匿名网络】。
    ◇如何使用“匿名网络”?

      名气最大的匿名网络有两个,分别是 Tor 和 I2P。俺个人推荐 Tor,但如果你想用 I2P,俺也不反对。
      关于这两款,俺都写了教程(如下)。

    Tor 的教程:
    “如何翻墙”系列:扫盲 Tor Browser 7.5——关于 meek 插件的配置、优化、原理》(这篇讲“Tor Browser 套件”的使用,比较傻瓜化,支持各种桌面系统)
    扫盲 Arm——Tor 的界面前端(替代已死亡的 Vidalia)》(这篇讲 Linux 下如何使用“裸 Tor”,技术门槛比上一篇高)
    “如何翻墙”系列:关于 Tor 的常见问题解答》(这篇是 FAQ)

    I2P 的教程:
    “如何翻墙”系列:简单扫盲 I2P 的使用》(这篇是 I2P 入门教程)
    ◇如何解决【短信验证】的问题?

      先声明一下:
      由于俺开博比较早(2009年初),那时候移动互联网尚未普及,很多网络帐号【无需】绑定手机。于是就便宜了俺这种懒汉——省去了很多麻烦。
      如今,越来越多的帐号需要绑定手机(注册帐号时,需要【短信验证】)。这时候,你【千万不要】用真实手机进行绑定操作!!!
      很多同学要问了:那咋整啊?大致有两种【通用】的招数可以搞定(如下):

      招数1:虚拟号码
      你上网搜索一下:虚拟号码 短信验证,应该能找到很多【免费】的“虚拟号码服务”。这种服务可以用来帮你接收验证短信。
      用这个招数的时候,有一点请注意——使用“虚拟号码服务”的【全过程】,也要基于【匿名网络】哦!

      招数2:【不记名】的手机卡
      如今天朝的手机卡,全都已经【实名制】了。要找这种【不记名】的手机卡,需要去【境外】。据说香港就有。(至于还有哪些地方可以买到,欢迎列位看官补充)
      当然啦,你没必要为了搞个手机卡专程跑一趟;可以利用某次境外旅游的时候,顺便买一个。
      用这个招数的时候,有几点请注意:
    1. 在使用“不记名手机卡”的过程中,要确保你的手机本身是【纯洁】滴(可以考虑去搞一个“功能机/非智能机”来干这事儿)
    2. 通过【境外】的手机网络接收“验证短信”。
    3. 一旦接收完验证短信,这张“不记名手卡”就拔下来,【别】再用了。
    4. 注册的操作过程应该在【PC 端】进行。
    5. 不光是注册过程,以后也【不要】在任何手机上操作“你注册的敏感帐号”(手机的危险性,后续章节还会单独谈)


    ★【硬件】层面的防范
    ◇总是启用“开机密码”和“硬盘锁”

      一些比较大牌的笔记本电脑,都有这两项功能。当你入手了一台笔记本电脑,首先把这两项开启。
      启用了这两项之后,每次你开机(冷启动),都需要先输入两个密码,分别是“开机密码”和“硬盘密码”。可能某些同学会嫌麻烦,俺要强调一下:想提升安全就不要怕麻烦
      当然啦,这两个玩意儿的【可靠性】到底有多高,是很难讲滴——因为不同品牌(厂商)的笔记本电脑,在实现这俩密码的机制方面,差别很大。但“启用”总归比“不启用”要好。
      另外,正是因为笔记本自带的硬盘锁不一定靠得住,所以你需要在“操作系统级别”进行【全盘加密】(下面的章节会聊到这个)。
    ◇把一些多余且危险的 BIOS 选项禁掉

      考虑到不同年代、不同品牌的笔记本,BIOS 选项差异较大。俺在这里只举几个例子。大伙儿要举一反三。
      比如说:对于英特尔(Intel)架构,要把 ME(Management Engine)禁掉——这玩意儿有安全风险。另,AMD 架构也有类似的玩意儿,叫 PSP(Platform Security Processor),也要禁掉。(注:有些 BIOS 无法禁用 ME 或 PSP)
      比如说:当你装好系统之后,应该到 BIOS 的启动配置界面中,把其它的启动项都禁掉,只保留“硬盘启动”这一项。
      比如说:“网络唤醒”的功能就没啥必要,而且有风险。
      ......
      (还有很多,就不逐一列举了。再次提醒大伙儿:举一反三)


    ★【操作系统】层面的防范
    ◇如何选择操作系统?

      如果你用的操作系统,其本身就有很多安全问题,那当然不行。所以第一步是:选择某种靠谱的操作系统。

      1. 【不要】使用预装的操作系统
      俺【从不】使用笔记本内置的操作系统。俺的习惯是——只使用自己亲手装出来的系统。
      为啥捏?因为你无法判断预装的系统是否【纯洁】,如果操作系统本身有安全隐患,后面聊的所有安全加固措施都是白搭!
      可能有些同学认为俺故意耸人听闻,建议这些同学去搜一下前几年的新闻。
      随手举个例子——2015年,联想 PC 因【预装】流氓软件,在美国遭遇集体诉讼,赔了好多银子。

      2. 强烈建议【不】用 Windows
      这个已经是老生常谈,具体就不展开了,参见下面这篇:
    吐槽一下 Windows 的安全漏洞——严重性超乎想象

      3. Linux 比 Mac OS 更好
      说到这个话题,很多读者以为俺担心 Mac OS 是【闭源】。其实这只是一个方面。甚至都【不是】最主要的方面。
      俺重点想说的是——【攻击面的确定性】。Linux 的特点是——【发行版非常多】。不同的发行版,内置软件的种类和版本不同,内核(kernel)的版本不同,内核的编译参数不同......而且 Linux 还支持多种 CPU 芯片,既有 x86 系列(Intel/AMD),也有【非】x86 系列(比如 ARM)。
      一言以蔽之——Linux 由于发行版之间【巨大的差异】,会导致攻击面【非常不确定】。因此,在不了解你系统配置的情况下,入侵者的难度会急剧变大。
      再来看苹果的桌面系统。因为 Mac OS【没有】“发行版”这个概念。或者换种说法,Mac OS 只有一个发行版(就是苹果官方维护的那个)。所以跟 Linux 一对比,Mac OS 的系统环境就显得非常确定了。
      另外,还有很多其它因素导致了——Linux 比 Mac OS 更有利于安全加固。具体请看下面这篇:
    为什么桌面系统装 Linux 可以做到更好的安全性(相比 Windows & macOS 而言)

      4. 如何选 Linux 发行版?
      Linux 的发行版,大概有上百种之多。经常会让新手困惑。
      如果你是 Linux 的新手,先看《扫盲 Linux:如何选择发行版》,了解一些基本概念。
      “如何选择 Linux 发行版”这个问题,【没有】放之四海皆准的标准答案。不同的场景,不同的使用者,自然会有不同的择。以本文这个话题,俺的建议是:【保守型】、【社区维护】、【口碑好】
      你在符合这几个条件的发行版中,挑个你觉得最顺手的。

      5. 善于折腾的同学,也可以考虑 BSD 社区
      BSD 社区比较有影响力的发行版包括如下几个:
      FreeBSD
      这是 BSD 社区最知名的一款,也是该社区最多人用滴。
      OpenBSD
      这款是以【安全性】著称滴。它的社区采用了很多机制(代码审计、最小化权限、最小化安装 ...)来提升系统的安全性。
      而且 OpenBSD 社区非常强调【默认安装的安全性】。也就是说,默认装好,不作任何配置,其安全性就已经足够好。根据历史记录,从1997年到俺写本文之时(2019年初),OpenBSD 在默认安装下只曝光了2个【远程】漏洞(时间分别在2002年、2007年)。这种水平,其它操作系统望尘莫及。
      值得一提的是:有很多知名的软件(比如:OpenSSH、tmux、LibreSSL、PacketFilter)就源于 OpenBSD 社区。
      NetBSD
      这款是以【可移植性】著称滴。号称支持的硬件平台超过任何一款 Linux 发行版。
      (不过捏,这个优势对个人用户而言,意义不大)

      小结
      综上所述,用 Linux 或 BSD。本文后续的讨论,也在这两者基础上展开。
    ◇强烈建议使用【虚拟机】来强化安全

      刚才提到的“操作系统防范”,主要是针对你的【物理系统】(也称作“Host OS”)。接下来要谈的是——你【一定要】在 Host OS 之上,用【虚拟化软件】来搭建若干个“虚拟系统”(也称为“Guest OS”或“VM”)。这种玩法可以大大提升你防御入侵的能力;在某些特定情况下,还可以避免你暴露公网 IP(本文末尾的某个反面案例会提及这点)

      1. 虚拟化软件的选择
      如果你对技术方面【不太懂】,优先考虑的虚拟化软件是 VirtualBox(VBox)或 VMware。这两款的知名最大,用的人也最多;你如果碰到问题,比较容易找到相关的文档/教程。
      俺当年写的《扫盲操作系统虚拟机》系列教程,主要是也是拿这两款来举例。
      至于那些善于折腾的同学,当然还可以考虑别的软件,比如:KVMXenQEMU......
      因为虚拟化软件的很多功能是相通滴。所以捏,如果你用了别的虚拟化软件,依然可以参考俺上述的系列教程,然后自己举一反三。

      2. Guest OS 的选择
      关于“Guest OS 的选择”,可以参考“Host OS 的选择”。不过俺要提醒一下:Guest OS 最好与 Host OS【有所差别】。
      为啥捏?因为要规避【单点故障】的风险。关于这个话题,可以参考如下博文:
    聊聊【单点故障】——关于“德国空难”和“李光耀”的随想

      3. 设定“安全基线”,并做到【定期回退快照】
      关于这个话题,请看俺那个“虚拟机系列教程”的第7篇:
    扫盲操作系统虚拟机[7]:如何用“快照”辅助安全加固、强化隐私保护?

      4. 虚拟系统的【颗粒度】
      最起码你得有【两个】Guest OS(VM),一个用于你的日常身份,另一个用于你的敏感虚拟身份。这种做法的“颗粒度”【最大】,也是安全性【最差】滴。
      【更好的做法】是——把你敏感的虚拟身份操作的 N 个网络帐号拆分到 N 个 VM 里。以俺为例:有一个 VM 是专门用于“编程随想的 BT Sync”(Resilio Sync);有一个是专门用于“编程随想的 OneDrive”(微软网盘);有一个是专门用于“编程随想的 Twitter” ......另外,还有若干个虚拟机用于俺的真实身份。所以,俺的笔记本电脑里有很多虚拟机。
      拆分的颗粒度变小之后,即使某个 Guest OS(VM)被入侵,最坏也只是损失一个帐号。
      说到“颗粒度”,还有一个需要讨论的问题是:翻墙软件应该装在哪个虚拟机?关于这个问题,在下面讨论【网络】的章节中再细聊。

      5. 如何防止【虚拟机穿透】?
      在这个小节的最后,俺来聊一下“虚拟机穿透”这事儿。所谓的“穿透”就是指:入侵者先攻占 Guest OS,然后利用“虚拟化软件”本身的漏洞进行“穿透”,渗透到 Host OS 中。
      这么干,从技术上讲是可行滴,而且也有安全研究人员演示过这个招数。但这个招数的实现难度非常非常大(需要【同时】具备很多条件,才能做成),一般人其实不用担心这个风险。不过俺在本文开头也说了,本教程是要应付【御用骇客】滴。所以,这种情况的概率虽然小,还是值得考虑滴。
      那么,如何防范捏?比较好也比较彻底的做法是【物理隔离】。比如说:在多台【物理主机】上配置不同网络帐号的操作环境。即使某个物理主机被入侵了,其它物理主机上的网络帐号【不】受影响。
      最近这些年,笔记本电脑都已经白菜价了。所以,多买几台笔记本电脑来进行物理隔离,钞票的压力应该不大吧?
      刚才只是介绍了“物理隔离”的其中一种玩法。其它几种玩法请参见《如何防止黑客入侵》系列教程的第8篇:
    如何防止黑客入侵[8]:物理隔离的几种玩法
    ◇确保 Host OS【极简】

      使用了“虚拟化软件”之后,你应该把【所有的】日常操作都放到 VM 中进行。普通身份的操作放到“普通 VM”,敏感身份的操作放到“敏感 VM”。
      于是捏,你的 Host OS 几乎就不需要啥软件了(除了虚拟化软件和系统自带的软件)。
      通过把 Host OS 简化到极致,也就把 Host OS 的攻击面降低到最小。你始终要记住:Host OS 非常重要!!!Host OS 如果沦陷,运行在它之上的所有 Guest OS 也将沦陷。


    ★【应用软件】层面的防范
    ◇选择软件的几个原则

      1. 【不要】使用国产软件
      这其中的道理就类似于——不要使用国内的网络服务。
      如果你由于某些原因不得不用某个国产软件(比如说:QQ、迅雷......),应该把这个国产软件单独隔离在某个虚拟机(Guest OS)中,【千万不要】装到 Host OS 中,也【不要】安装到那些用于敏感身份的虚拟机。

      2. 安装的软件【越少越好】
      安装的软件越多,你所暴露出的【攻击面】就越大。
      因为每个软件都无法做到尽善尽美,每个都有可能存在潜在的(未曝光的)漏洞。

      3. 尽量使用【成熟度比较高】的软件
      举个【反例】来说事儿。在浏览器方面 IE 就是个典型的反例。最近这20年,IE 曝光的【高危】安全漏洞(远程执行类、提权类)那真是一坨又一坨,简直惨不忍睹。像 IE 这么烂的浏览器,如果你用它去上网,简直找死。

      

    点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 淡定 生气 回帖 路过 感动 感恩
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表