255 评论

扫盲 dm-crypt——多功能 Linux 磁盘加密工具(兼容 TrueCrypt 和 VeraCrypt)

  很抱歉,又拖了好几天才更新博文。最近实在太忙了 :( 而且这篇博文的内容比较杂,整理起来也有点费时。
  (本文发出后,俺顺便清理了博客管理界面的“留言垃圾箱”,里面有30多条“被 Google 误判为垃圾广告的留言”,刚才都已经恢复了)

★引子


  9月底,TrueCrypt 曝光了高危安全漏洞。于是俺在10月初写了一篇教程,介绍 VeraCrypt 这个替代品——它可以完全覆盖 TrueCrypt 原有的功能,并且在安全方面还所有增强(比如用 PIM 来对抗“抗暴力破解”)。
  那篇博文发出后,有些读者担心这个 VeraCrypt 本身是否可靠,是否会有后门。从目前 VeraCrypt 的口碑来看,这款工具应该还是比较靠谱滴!当然,俺无法向你担保 VeraCrypt 一定没有后门(谁都没法打这个包票)。
  为了照顾那些“对安全性要求【特别高】的同学”,今天来介绍另一款磁盘加密工具——Linux 内核自带的“dm-crypt”。
  另外,在本文的结尾部分,俺还会聊到:如何在【不使用】TrueCrypt/VeraCrypt 软件的情况下,挂载它们的加密盘。


★本文的目标读者


  既然是“扫盲”,本文主要面向那些不太懂技术的读者(技术菜鸟)。如今 Linux 已经比较普及了,有些技术菜鸟也开始玩 Linux。
  如果你属于此类用户,并且你还比较关注隐私保护,希望用上磁盘加密工具。那么 Linux 内核自带的 dm-crypt 是一个不错的选择。
  本文的主题,就是向技术菜鸟介绍 dm-crypt 的基本用法。


★“dm-crypt/cryptsetup”是啥玩意儿?


  在某些技术文章中,“dm-crypt”和“cryptsetup”经常被混用或并用。或者说,这两者常常被用来指代同一个东西。如果要细说的话,“dm-crypt”是 Linux 内核提供的一个磁盘加密功能,而“cryptsetup”是一个命令行的前端(通过它来操作“dm-crypt”)。
  “dm-crypt”在 Linux Kernel 2.6 的早期版本就被整合到内核中,距今已经10多年了。经过这么多年发展,至少能说明如下几点:
1. 它的开源代码足够成熟
2. 它提供的功能足够通用
3. 它在安全方面足够靠谱


★“dm-crypt”的功能和特色


  先大致描述一下 dm-crypt 支持的功能以及相关特色。

◇支持多种加密格式


  目前 dm-crypt 支持如下几种加密格式(模式)。
  1. LUKS(Linux Unified Key Setup)
  这是 dm-crypt 最常用的一种模式。在本文后续章节,俺会详细介绍。

  2. Plain
  Plain 模式是提供给技术老手用的。如果你是技术菜鸟,就不用关心这个模式了;如果你是技术老鸟,请自己去查 dm-crypt 相关手册。

  3. loop-AES
  loop-AES 是一款比较陈旧的 Linux 磁盘加密工具。dm-crypt 提供了对它的支持。
  通常情况下,大伙儿【不需要】用到该模式。

  4. TCRYPT
  在 cryptsetup 的【1.6.0】版本之后,开始提供对 TrueCrypt 加密盘的支持。“TCRYPT”就是“TrueCrypt”的缩写。
  在该模式下,可以打开 TrueCrypt 和 VeraCrypt 的加密盘,并对盘中的文件进行读写。
  请注意:这个模式并【没有】实现 TrueCrypt 和 VeraCrypt 的所有功能。比如修改密码和 keyfiles 的功能就没有。具体欠缺哪些功能,参见下一章节的对照表。

◇【无需】额外安装软件


  由于 dm-crypt 早已被整合到 Linux Kernel 中。因此,你无需额外安装它。
  至于它的命令行前端(cryptsetup),大部分主流的发行版都会内置 cryptsetup 的软件包。

◇可以跟 LVM 无缝整合


  LVM(Logical Volume Manager)是 Linux 内核提供的另一个很有用的工具。比如用它来创建分区,将来可以随时调整分区大小;比如现有的硬盘空间用完了,可以另外加一块硬盘并且新加硬盘可以用来扩展现有分区。
  LVM 和 dm-crypt 都是基于 Linux 内核的 device mapper 机制。因此两者可以很好地整合。比如你既可以玩“LVM over LUKS”;也可以玩“LUKS over LVM”。
  有空的话,俺再单独写一篇关于 LVM 的扫盲(又是一个坑)


★dm-crypt VS TrueCrypt/VeraCrypt


  为了让大伙儿有个直观的认识,俺整理了如下的对照表。通过对比,你可以大致了解 dm-crypt 相对于“TrueCrypt和VeraCrypt”的优缺点。
  再次提醒:dm-crypt 的 TCRYPT 模式,需要 cryptsetup 的版本号大于等于【1.6.0】才行。

LUKS 加密盘格式TC 加密盘格式
功能特性dm-crypt 的 LUKS 模式dm-crypt 的 TCRYPT 模式TrueCryptVeraCrypt
支持的操作系统LinuxLinuxWindows
Linux
Mac OS
Windows
Linux
Mac OS
支持的加密算法类型(内核 Crypto API)AES
Twofish
Serpent
AES
Twofish
Serpent
AES
Twofish
Serpent
Camellia
Kuznyechik
支持多重加密算法(多算法级联)NOAES–Twofish
Serpent–AES
Twofish–Serpent
AES–Twofish–Serpent
Serpent–Twofish–AES
AES–Twofish
Serpent–AES
Twofish–Serpent
AES–Twofish–Serpent
Serpent–Twofish–AES
AES–Twofish
AES–Twofish–Serpent
Camellia–Kuznyechik
Camellia–Serpent
Kuznyechik–AES
Kuznyechik–Serpent–Camellia
Kuznyechik–Twofish
Serpent–AES
Serpent–Twofish–AES
Twofish–Serpent
支持的哈希算法RIPEMD-160
SHA1
SHA256
SHA512
RIPEMD-160
SHA-512
Whirlpool
RIPEMD-160
SHA-512
Whirlpool
RIPEMD-160
SHA-256
SHA-512
Whirlpool
Streebog
【创建】加密的物理分区YESNOYESYES
【挂载】加密的物理分区YESYESYESYES
【创建】虚拟加密盘(virtual volume)YESNOYESYES
【挂载】虚拟加密盘(virtual volume)YESYESYESYES
加密系统分区(引导时自解密)YES(仅 Linux 系统分区)NOYES(仅 Windows 系统分区)YES(仅 Windows 系统分区)
支持“密码”的认证方式YESYESYESYES
支持“Keyfiles”的认证方式YESYESYESYES
加密系统分区支持 KeyfilesYES(仅 Linux 系统分区)NONONO
修改密码或 KeyfilesYESNOYESYES
【创建】隐藏卷(hidden volume)NONOYESYES
【挂载】隐藏卷(hidden volume)NOYESYESYES
操作外层卷时,对隐藏卷写保护NONOYESYES
自定义“生成密钥的迭代次数”YESYES(cryptsetup ≥ 2.0.0)NOYES(PIM 功能,版本 ≥ 1.12)
加密格式的模糊性NOYESYESYES


★预备知识


  在使用 cryptsetup 命令行进行操作之前,建议你先掌握如下的技能:
如何对硬盘分区(相关的命令行是 fdisk
如何创建文件系统(相关的命令行是 mkfs.ext4 等)
如何挂载/卸载文件系统(相关的命令行是 mount umount
如何显示已挂载的文件系统(相关的命令行是 df

  上述这几个命令都比较简单,可以自己用 man 命令查一下帮助。会洋文的话,应该能看懂;就算你不懂洋文,Google 一下也可以查到这几个常用命令的语法。


★cryptsetup 命令行概述


  说完预备知识,开始来介绍 cryptsetup 的基本用法。
  提醒一下:需要使用管理员权限(比如 root)来运行 cryptsetup 相关命令。

◇查看版本号


  使用如下命令行查看版本号。
cryptsetup --version
  因为 dm-crypt/cryptsetup 的某些新功能,只有新版本才提供。比如 cryptsetup 的版本号必须大于等于【1.6.0】才能支持 TrueCrypt 的加密盘格式。
  如果你要用到这些新功能,先看一下版本号,以确保已经支持。

◇查看性能指标


  使用如下命令查看 dm-crypt/cryptsetup 针对不同“加密算法”和“散列算法”的性能指标。
cryptsetup benchmark

◇创建加密盘


  前面提到 dm-crypt/cryptsetup 支持的几种加密盘格式。作为扫盲教程,本文只介绍如何创建 LUKS 格式加密盘。
  另外,dm-crypt/cryptsetup 只能用来打开 TrueCrypt 或 VeraCrypt 的加密盘,但是【无法】创建。

  创建(格式化) LUKS 加密盘的命令,大致写法如下:
cryptsetup 命令参数 luksFormat 物理设备或逻辑设备
  运行该命令之后,首先警告你,格式化会导致原有数据被覆盖。如果你确实要格式化,需要输入【大写】的 YES 进行确认。
  然后会提示你输入两次密码(passphrase)。
  输入完密码,还要再稍等片刻(创建加密盘需要时间,具体的时长取决于加密盘的大小以及相关的加密参数)。

  上述写法中的【相关参数】是可以不写的。如果不写,则 cryptsetup 会采用相应的默认值。对于安全性要求较高的同学,【不要】使用默认值,要根据自己的需求指定相关的参数。
  当你使用 luksFormat 进行格式化的时候,下面是几个常用参数以及俺推荐的参数值:
参数名称含义推荐值备注
--cipher加密方式aes-xts-plain64AES 加密算法搭配 XTS 模式
关于 XTS 模式,可以参见之前的博文:
TrueCrypt 使用经验[1]:关于加密算法和加密盘的类型
--key-size密钥长度512因为 XTS 模式需要两对密钥,每个的长度是256
--hash散列算法sha512N/A
--iter-time迭代时间最好大于10000单位是毫秒。该值越大,暴力破解越难;但是你在打开加密盘时也要等待更久

  下面给一个具体的例子——用 LUKS 方式创建(格式化)加密盘,该加密盘位于 /dev/sda2 分区
cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 10000 luksFormat /dev/sda2

◇打开加密盘


  dm-crypt/cryptsetup 可以打开前面提及的各种格式的加密(只要是它支持的格式,就可以打开)。
  命令行大致的写法如下:
cryptsetup open --type 类型名 已加密的物理设备或逻辑设备 映射名
  上述命令行中的 open --type 类型名,也可以改用某种简写形式。
  比如下面这个命令:
cryptsetup open --type luks 已加密的物理设备或逻辑设备 映射名
  其实等价于如下:
cryptsetup luksOpen 物理设备或逻辑设备 映射名
  下面举个具体的例子:
  假设物理分区 /dev/sda2 采用 LUKS 加密,那么你可以用如下命令打开(命令中的 xxx 是映射名,你可以换成其它单词)
cryptsetup luksOpen /dev/sda2 xxx
  执行上述命令后,原有的加密分区 /dev/sda2 就被解密并映射到 /dev/mapper/xxx
  打开加密盘之后,你就【不要】再去操作 /dev/sda2 了,而应该去操作 /dev/mapper/xxx

◇查看加密盘状态


  当你已经打开某个加密盘之后,可以用如下命令查看该加密盘的状态。
cryptsetup status 映射名

◇关闭加密盘


  当你已经打开某个加密盘之后,可以用如下命令关闭该加密盘。
cryptsetup close 映射名

  与 open 类似,cryptsetup 也对 close 提供了相应的别名(比如:luksClose 和 tcryptClose
  实际上 cryptsetup 是根据已经打开的加密盘的 header 来判断该加密盘的类型。所以上述别名的意义不大。比如说,你对某个 TrueCrypt 的加密盘使用 luksClose,依然可以正确关闭,不会出错。


★用 cryptsetup 创建 LUKS 的物理加密盘(加密物理分区)


◇准备一个物理分区


  首先,你要准备一个物理分区,用来加密。
  【你必须确保该分区上的数据是没用的】。因为待会儿要对该分区进行格式化操作,该分区上原有的数据会被破坏掉。
  在下面的介绍中,俺以 /dev/sda2 来进行举例。你实际使用的分区,可能会有所差异(具体取决于你的分区情况)。

◇用 LUKS 方式加密(格式化)物理分区


  使用前面章节提及的参数,对上述物理分区进行加密。得到一个加密分区。
cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 10000 luksFormat /dev/sda2

◇打开加密之后的文件容器


  使用如下命令打开上述的加密分区,使用的映射名是 xxx(你也可以改用其它单词)。
cryptsetup luksOpen /dev/sda2 xxx
  打开之后,该虚拟盘会被映射到 /dev/mapper/xxx
  你可以用如下命令看到:
ls /dev/mapper/

◇创建文件系统


  由于加密分区已经打开并映射到 /dev/mapper/xxx 你可以在 /dev/mapper/xxx 之上创建文件系统。命令如下(文件系统类型以 ext4 为例)
mkfs.ext4 /dev/mapper/xxx

◇挂载文件系统


  创建完文件系统之后,你还需要挂载该文件系统,才能使用它。挂载的步骤如下。
  首先,你要先创建一个目录,作为【挂载点】。俺把“挂载点”的目录设定为 /mnt/xxx(当然,你可以用其它目录作为挂载点)。
mkdir /mnt/xxx
  创建好“挂载点”对应的目录,下面就可以进行文件系统的挂载。
mount /dev/mapper/xxx /mnt/xxx
  挂载好文件系统,用如下命令查看,就可以看到你刚才挂载的文件系统。
df -hT
  接下来,你就可以通过 /mnt/xxx 目录去访问该文件系统。当你往 /mnt/xxx 下面创建下级目录或下级文件,这些东东将被存储到加密分区上。

◇退出


  当你使用完,要记得退出。包括下面两步:
  卸载文件系统
umount /mnt/xxx
  关闭加密盘
cryptsetup close xxx


★用 cryptsetup 创建 LUKS 的虚拟加密盘(逻辑卷)


  在前一个章节,已经介绍了“对物理分区的加密”。其实 cryptsetup 也可以支持虚拟加密盘(逻辑加密盘)——类似于 TrueCrypt 那样。

◇何为“虚拟加密盘”?


  考虑到某些读者没有看过《TrueCrypt 使用经验[1]:关于加密算法和加密盘的类型》,俺再次唠叨一下:所谓的“虚拟加密盘”,就是说这个盘并【不是】对应物理分区,而是对应一个虚拟分区(逻辑卷)。这个虚拟分区,说白了就是一个大文件。虚拟分区有多大,这个文件就有多大。
  “虚拟加密盘”的一个主要好处在于——可以拷贝复制。比如你可以在不同的机器之间复制这个虚假分区对应的大文件。甚至可以把这个大文件上传到云端(网盘)进行备份——这么干的好处参见《文件备份技巧:组合“虚拟加密盘”与“网盘”》。

◇创建一个文件作为容器


  下面用 dd 命令创建 1GB(1024MB)的大文件,该文件位于 /root/luks.vol 路径。当然,你也可以指定其它的文件大小或其它的文件路径。
dd if=/dev/zero of=/root/luks.vol bs=1M count=1024
  (dd 命令是一个牛逼命令,之前在《如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)》介绍过该命令)

  经某个热心读者提醒,还可以使用 fallocate 命令创建容器文件。对于特别大的容器文件,性能【高于】dd 命令。
  以下示例通过 fallocate 【瞬间】创建一个 64GB 的大文件。
fallocate -l 64G /root/luks.vol

◇用 LUKS 方式加密(格式化)该文件容器


  使用前面章节提及的参数,对上述文件容器进行加密。得到一个虚拟的加密盘。
cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 10000 luksFormat /root/luks.vol

◇打开加密之后的文件容器


  使用如下命令打开上述的文件容器,使用的映射名是 xxx(你也可以改用其它单词)。
cryptsetup luksOpen /root/luks.vol xxx
  打开之后,该虚拟盘会被映射到 /dev/mapper/xxx
  你可以用如下命令看到:
ls /dev/mapper/

◇创建文件系统


  由于加密盘已经打开并映射到 /dev/mapper/xxx 你可以在 /dev/mapper/xxx 之上创建文件系统。命令如下(文件系统类型以 ext4 为例)
mkfs.ext4 /dev/mapper/xxx

◇挂载文件系统


  创建完文件系统之后,你还需要挂载该文件系统,才能使用它。挂载的步骤如下。
  首先,你要先创建一个目录,作为【挂载点】。俺把“挂载点”的目录设定为 /mnt/xxx(当然,你可以用其它目录作为挂载点)。
mkdir /mnt/xxx
  创建好“挂载点”对应的目录,下面就可以进行文件系统的挂载。
mount /dev/mapper/xxx /mnt/xxx
  挂载好文件系统,用如下命令查看,就可以看到你刚才挂载的文件系统。
df -hT
  接下来,你就可以通过 /mnt/xxx 目录去访问该文件系统。当你往 /mnt/xxx 下面创建下级目录或下级文件,这些东东将被存储到该虚拟加密盘上。

◇退出


  当你使用完,要记得退出。包括下面两步:
  卸载文件系统
umount /mnt/xxx
  关闭加密盘
cryptsetup close xxx


★LUKS 加密盘使用 keyfile 作为认证因素


◇啥是“keyfile 认证因素”?


  其实这个概念,在当年扫盲 TrueCrypt 的教程中(《TrueCrypt——文件加密的法宝》)已经有提及。今天俺再重复罗嗦一下。
  传统的“密码认证”用的是一串密不示人的字符串作为认证因素。密码的缺点:
1. 当你密码设置得比较短,容易被暴力破解。
2. 不好记。尤其当你为了防范暴力破解,把密码设置得很复杂,于是就更不好记了。
  而“keyfile 认证”就是用一个文件来替代密码,可以解决密码的上述两个缺点。

◇什么文件作“keyfile”比较合适?


  用信息学的术语来讲就是:文件内容的“熵值”越大,越适合作 keyfile。换用通俗的人话来讲就是:文件内容越紊乱越随机,就越适合。
  通常而言,二进制可执行文件(比如 exe)、图片文件(比如 JPG、PNG、GIF)、视频文件,都可以用来作 keyfile。
  对于 Linux 的用户,可以用如下命令生产一个【内容完全随机】的文件,作为 keyfile 使用。
dd if=/dev/urandom of=放置keyfile的文件路径 bs=1k count=64
  (上述命令生产的文件大小是 64KB,你可以自行设定其它尺寸,但是【不要小于】 1KB)
  另外,【不建议】用纯文本文件作 keyfile——因为纯文本文件的“熵值”通常都不够大。

◇预备知识——关于“Key Slot”


  在继续介绍 keyfile 之前,稍微聊点预备知识。
  LUKS 格式的加密盘,默认会提供8个“Key Slot”(编号从0到7)。每个“Key Slot”好比是一个独立的钥匙——都可以用来打开这个 LUKS 加密盘。
  你可以用如下命令,查看某个 LUKS 加密盘的“Key Slot”。
cryptsetup luksDump 已加密的物理设备或逻辑设备
  如果你刚才已经尝试过创建一个 LUKS 加密盘,用了这个命令之后,你会发现8个“Key Slot”中,头一个(编号为0的那个)已经被用掉了(显示为“ENABLED”),其它7个还没用(显示为“DISABLED”)。因为你刚才创建加密盘的时候,已经设置过一次密码,所以用掉了一个“Key Slot”。

◇如何给 LUKS 加密盘增加 keyfile 认证?


  明白了“Key Slot”之后,咱们可以开始给 LUKS 加密盘增加新的“Key Slot”。
  采用如下命令,可以指定某个文件作为 keyfile,并指派为某个 LUKS 加密盘的认证因素。
cryptsetup luksAddKey 已加密的物理分区或虚拟盘 所用keyfile的路径
  再次使用前一小节提及的 luksDump 查看一下,你会发现:又有一个“Key Slot”被用掉了。

◇如何用 keyfile 打开 LUKS 加密盘?


  如果你执行完前一个小节的步骤(设定了 keyfile),接下来就可以用如下命令打开该 LUKS 加密盘。
cryptsetup --key-file 所用keyfile的路径 luksOpen 已加密的物理分区或虚拟盘 映射名
  (此时,你既可以用密码打开,也可以用 keyfile 打开)

◇如何删除“Key Slot”?


  采用如下命令,可以删除某个 LUKS 加密盘的“Key Slot”。
cryptsetup luksKillSlot 已加密的物理分区或虚拟盘 Slot的编号
  (再次提醒:编号是从0到7,头一个 Slot 的编号是0)
  再次使用前一小节提及的 luksDump 查看一下,你会发现:某个“Key Slot”被删除了。


★用 cryptsetup 操作 TrueCrypt/VeraCrypt 的加密盘


◇基本命令


  在前面的“功能概述”中提及:dm-crypt 软件的 cryptsetup 命令可以用来打开 TrueCrypt/VeraCrypt 加密盘。
  命令行的大致写法如下:
cryptsetup open --type tcrypt 已加密的物理分区或虚拟盘 映射名
  也可以使用简写的方式如下:
cryptsetup tcryptOpen 已加密的物理分区或虚拟盘 映射名

  (再次唠叨一下:cryptsetup 的版本号必须——大于等于【1.6.0】才能兼容 TrueCrypt/VeraCrypt 加密盘)

◇相关的命令行参数


  在 TCRYPT 模式下,有一些相关的参数,简要说明如下:
参数名参数值说明
--tcrypt-hidden打开隐藏卷,需要追加该参数
--tcrypt-system打开加密的系统分区,需要追加该参数
--readonly以“只读”方式打开加密分区,需要追加该参数
--key-filekey file 路径如果该加密盘用到了“keyfiles”认证,需要追加该参数
--veracrypt对 VeraCrypt 格式的加密盘,必须追加该参数
(cryptsetup 版本号 ≥ 1.6.7 才支持该参数)
--veracrypt-pimPIM 值如果 VeraCrypt 格式的加密盘设定了 PIM 值,必须追加该参数
(cryptsetup 版本号 ≥ 2.0.0 才支持该参数)

  关于 VeraCrypt 的补充说明:
  cryptsetup 命令的版本号必须【≥ 1.6.7】才能打开 VeraCrypt 的加密盘。截止俺写这篇博文时,还【不】支持 VeraCrypt 的 PIM 功能。
  本文发出之后又过了4年(2019年8月),cryptsetup 命令升级到【2.0.0】版本终于支持 VeraCrypt 加密盘的 PIM 功能啦!
  (关于 PIM 功能的详细介绍,请参见《扫盲 VeraCrypt——跨平台的 TrueCrypt 替代品》)


★用 cryptsetup 加密系统分区(root filesystem)或全盘加密


◇配置方法


  在本文开头,俺已经说了——这篇教程面向技术菜鸟。而“加密系统分区”对技术菜鸟来讲,有一定难度。万一没搞好,可能会把系统搞坏掉(导致 Linux 系统无法启动)。
  咋办捏?俺帮大伙儿想了一招比较简单的玩法——在安装系统的时候,就配置好“加密的系统分区”(甚至直接配置为“全盘加密”)。
  能否使用这招,要看具体的 Linux 发行版,在安装过程中是否提供相应的配置界面。如果俺没记错的话,如下几个主流的发行版,是可以在安装过程中加密系统分区或全盘加密的。(如果你觉得俺列举的发行版,有遗漏,欢迎到博客留言进行补充)
Debian
Fedora
Ubuntu
Linux Mint
CentOS
RedHat Enterprise Linux(RHEL)
  由于不同的发行版,安装界面各不相同,所以俺就偷懒一下,不提供截图了。
  大体上,这些发行版的安装过程,都有一个步骤是“硬盘分区”。在这个步骤,会提供相关的“加密选项”。
  对于想要进行全盘加密的同学,装系统过程中进行分区的时候,要把 /boot 单独分一个区。并且这个分区是【不能】加密的——因为 /boot 要用来放置引导管理器与内核。

◇“全盘加密”的【弱点】


  从理论上讲:任何一种磁盘加密工具,(在不借助外部机制的情况下)都【不可能】实现真正的“自启动全盘加密”。
  为啥捏?因为要想【自启动】,必须要有一个引导程序,至少这个引导程序不能加密(引导程序如果被加密了,就无法引导了)。所以,凡是能够实现“自启动全盘加密”的,其【引导程序】都是明文的(无加密的)
  比如 TrueCrypt 和 VeraCrypt 进行全盘加密,都会替换原有的主引导扇区的内容,在里面放入一段代码。这段代码会在开机启动的时候,提示你输入密码,然后用你输入的密码进行解密。
  对于 dm-crypt 的全盘加密,除了“主引导扇区”【没有】加密,还包括 /boot 分区也【没有】加密(因为启动管理器放置在 /boot 分区)。
  如前所述,这些【没有加密】的部分,会成为攻击者瞄准的弱点

  攻击举例:
  如果某个攻击者可以物理接触你的电脑,此人完全可以把你硬盘上的引导程序替换为一个假的引导程序。当你开机启动的时候,这个【假的】引导程序照样会提示你输入解密的密码。如此一来,你的密码就泄漏了。

◇如何防范“全盘加密的【弱点】”


  常规的防范措施有如下几种:

  方法1——采用 BIOS 提供的“硬盘口令”功能
  一般而言,台式机没有这个功能;大部分商用笔记本有这个功能。
  这个功能的安全性如何,要看具体的笔记本品牌(不同厂商的实现,可能不一样,因此安全性也不一样)。如果这个功能比较靠谱,就可以防止攻击者在你不知情的情况下,替换你硬盘上的引导程序。

  方法2——采用外部存储介质进行引导
  简而言之,就是把引导程序放到【可引导的】外部介质(比如 U盘、SD卡、MMC卡)。先用外部介质进行引导,然后通过外部介质中的引导程序,提示你输入密码,然后解密硬盘,最后再启动硬盘上的操作系统。
  对于“U盘/SD卡/MMC卡”而言,因为可以随身携带或隐藏在某处,被攻击者物理接触的风险会降低。
  对于 TrueCrypt/VeraCrypt【没法】用这招。而对于 dm-crypt,可以用这招。这种玩法略显复杂,不适合菜鸟。考虑到本文是“扫盲性质”的教程,暂且不提。

  方法3——把【整个系统】安装到外部存储介质
  这种玩法就是把【整个操作系统】都安装到外部存储介质(比如 U盘、SD卡、MMC卡)。开机时,需要先插入外部存储介质,启动整个操作系统。然后在这个操作系统中内置的 dm-crypt 挂载加密的硬盘。
  对于“U盘/SD卡/MMC卡”而言,因为可以随身携带或隐藏在某处,被攻击者物理接触的风险会降低。
  很多主流的 Linux 发行版,默认提供了 Live CD 的功能(也就是用光盘直接启动出一个【可用】的 Linux 环境)
  对这类发行版,你可以用工具把 Live CD 的 ISO 镜像文件“烧制”到 U盘/SD卡/MMC卡。然后就可以用来启动电脑。具体的教程参见《如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)》。


★混用 dm-crypt 和 TrueCrypt/VeraCrypt


  在本文结束前,俺最后聊一下如何混用 dm-crypt 和 TrueCrypt/VeraCrypt。

◇为啥要混用?


  在本文开头部分给出了一个“功能对比”的清单,从中可以看出 dm-crypt 和 TrueCrypt/VeraCrypt 各有独到之处
  比如 dm-crypt 可以用来加密 Linux 的系统分区(root filesystem),而 TrueCrypt 和 VeraCrypt 都做不到;
  反之,TrueCrypt 和 VeraCrypt 提供了“隐藏卷”的功能。可以用该功能来实现“Plausible Deniability”(介绍参见“这里”),而 dm-crypt 做不到这点。
  因此,有必要组合这两者。

◇“dm-crypt + TrueCrypt” VS “dm-crypt + VeraCrypt”


  截止俺写本文的时候,TrueCrypt 的 Linux 版本【尚未发现】高危漏洞,所以你如果要继续使用 Linux 下的 TrueCrypt,也是可以的。
  但是考虑到 TrueCrypt 已经停止维护,长远来讲,还是建议用“dm-crypt + VeraCrypt”这个组合进行混用。
  另外,VeraCrypt 增加了 PIM 功能来对抗暴力破解。对那些安全要求非常高的同学,这个“PIM 功能”也是有吸引力的。(关于 PIM 功能,参见《扫盲 VeraCrypt——跨平台的 TrueCrypt 替代品》)

◇混用的思路


  首先用 dm-crypt/cryptsetup 对系统分区(root filesystem)进行加密 或者 实现全盘加密。(具体玩法参见前面的章节)
  然后在已经加密的分区中,创建 TrueCrypt/VeraCrypt 的虚拟加密盘,并使用隐藏卷的功能。(如何使用隐藏卷,参见《TrueCrypt 使用经验[4]:关于隐藏卷的使用和注意事项》)
  把你最敏感最重要的数据,存储在【隐藏卷】中。
  假设将来有一天,你受到胁迫,你可以交出 dm-crypt 的加密密码。然后利用隐藏卷这个功能,来施展【Plausible Deniability】这个技巧,迷惑胁迫你的人。关于该技巧的使用场景,参见这篇博文里面的◇Plausible Deniability章节。


★如果你对 TrueCrypt/VeraCrypt 不放心,该咋办?


  本来这个话题应该是放到之前那篇博文来聊的。但是在写前面那篇博文的时候,俺还没有扫盲“dm-crypt/cryptsetup”。于是就把这个话题留到今天这篇。

◇某些用户的担心


  从俺博客的读者留言中,可以看出某些人对这两款工具都不太放心。
  TrueCrypt
  虽然历史悠久,口碑极好。但是官网已经宣布“停止维护”。而且上个月底(9月底)刚曝光了 Windows 版本的高危漏洞。
  VeraCrypt
  因为这个开源项目的历史比较短,有些同学担心这个项目会不会是一个蜜罐项目。

◇俺的分析


  先不管这两个软件在【代码层面】是否有后门,咱们先来说【加密盘的格式】。
  “加密盘格式”与“程序代码”不同。“加密盘格式”是很少变化的(基本是静态的),而“程序代码”会随着软件版本的升级,而不断发生变化——有可能这个版本没有后门,但是下一个版本就被植入后门。
  “TrueCrypt 的加密盘格式”已经被很多安全专家研究过。包括这两年安全界发起了对 TrueCrypt 的安全审计,其中一项工作就是:评估加密盘的格式。
  到目前为止,至少【没有】发现该格式有明显的后门或弱点。
  综上所述,俺认为 TrueCrypt 的加密盘格式是可靠的(可信的)

  而 VeraCrypt 的加密盘格式,跟 TrueCrypt 的格式【几乎完全一样】——俺专门看过这两者的技术规范文档,加密盘头部(header)的结构【完全一样】,仅有的差异在于某个标志位(从 TrueCrypt 的标志改为 VeraCrypt 的标志)。
  因此,VeraCrypt 的加密盘格式,也是可靠的(可信的)

◇防范措施


  基于上述分析,有一个策略可以帮你规避 TrueCrypt/VeraCrypt【软件本身】潜在的后门。具体步骤如下:

  1.
  你在某个操作系统虚拟机中,安装好 TrueCrypt 或 VeraCrypt。
  2.
  使用虚拟机中的 TrueCrypt 或 VeraCrypt 帮你创建【虚拟】加密盘。
  3.
  把创建好的【虚拟】加密盘 copy 到你的 Linux 环境中,用 dm-crypt 打开加密盘进行使用。
  4.
  如果需要修改加密盘的密码或 keyfile,再把【虚拟】加密盘 copy 回操作系统虚拟机中,用 TrueCrypt 或 VeraCrypt 修改密码或 keyfile。

  基于上述步骤,你的 Linux 系统中完全不会运行 TrueCrypt 或 VeraCrypt,但是又可以享受这两款软件的强大功能(比如“隐藏卷”、比如“多重加密算法”)。
  代价就是:操作步骤稍嫌繁琐(需要 copy 虚拟加密盘)。这也是没办法滴——“安全性”和“易用性”通常都是矛盾的。


俺博客上,和本文相关的帖子(需翻墙)
如何用“磁盘加密”对抗警方的【取证软件】和【刑讯逼供】,兼谈数据删除技巧
扫盲 VeraCrypt——跨平台的 TrueCrypt 替代品
TrueCrypt——文件加密的法宝
TrueCrypt 使用经验[1]:关于加密算法和加密盘的类型
TrueCrypt 使用经验[2]:关于加密盘的密码认证和 KeyFiles 认证
TrueCrypt 使用经验[3]:关于加密盘的破解和防范措施
TrueCrypt 使用经验[4]:关于隐藏卷的使用和注意事项
扫盲 Linux 逻辑卷管理(LVM)——兼谈 RAID 以及“磁盘加密工具的整合”
文件加密的扫盲介绍
文件备份技巧:组合“虚拟加密盘”与“网盘”
扫盲 Linux&UNIX 命令行——从“电传打字机”聊到“shell 脚本编程”
如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2015/10/dm-crypt-cryptsetup.html

255 条评论

  1. 回复
    1. 今天发帖时间不一般,中午发的0 0

      删除
    2. 趁在前排想问博主一个问题,我的linux虚拟机操作起来很不流畅,这和我主机没有装显卡驱动有关系吗?(主机WIN7很流畅,但是昨天临时装了下360,他说我没有显卡驱动),另外,WIN7虚拟机运行起来也不是特别流畅(运行浏览器时,不知道是不是装了挺多软件的缘故),XP虚拟机挺流畅。

      删除
    3. TO 花花世界
      这篇是今天凌晨才写完。
      那个时候发,没几个人看到,所以就等到中午再发出来。

      删除
    4. TO Stanley Lao
      参见《[url=https://program-think.blogspot.com/2012/10/system-vm-0.html]扫盲操作系统虚拟机[/url]》系列,其中有一篇专门讲“性能优化”

      删除
    5. TO Stanley Lao
      如果你 Win7 的 Guest OS 比较卡,但是 XP 的 Guest OS 流畅。
      先检查一下是不是 Win7 的内存设置不合理,导致频繁的磁盘IO(读写虚存文件)

      删除
    6. 說道虛擬機優化,不知博主有沒有優化顯卡的方式?或者說,如何調用獨立顯卡(我需要拿來玩天朝產的遊戲)

      删除
    7. 推特五毛图@oiax
      https://i.imgur.com/phuyBwS.jpg

      删除
    8. 麻痹,我女神波多野洁衣什么时候是五毛了?

      删除
    9. TO Zhaofeng Yang
      俺平时不玩游戏,所以不关注显卡的优化。
      记得有读者曾经提到过虚拟机(Guest OS)显卡的优化,你搜索历史评论,或许能找到。

      删除
    10. 理科实验班2个月的体验:当你想通过理科摆脱讨厌的政史时,党国就用题目来压垮你的思维,在分数前,做题而不是学习是最重要的,压力不是问题,不自由、没有选择十分恐怖

      删除
    11. 博主貌似没时间看上一篇博文的留言了,你上维基百科了,你造吗?
      https://zh.wikipedia.org/wiki/编程随想的博客
      上一篇博文的相关讨论:
      https://program-think.blogspot.com/2015/10/What-is-Science.html?comment=1445583889786

      删除
    12. 留言里发链接含中文不行吗?中文前面我没加空格啊。是不是bug啊?
      只能复制地址栏的? https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E9%9A%8F%E6%83%B3%E7%9A%84%E5%8D%9A%E5%AE%A2

      删除
    13. [url=https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E9%9A%8F%E6%83%B3%E7%9A%84%E5%8D%9A%E5%AE%A2]编程随想的博客[/url]

      删除
    14. 格式:[url=網址]中文標題[/url]

      删除
    15. TO 楼上两位,
      我想实现的效果是把【zh.wikipedia.org/wiki/编程随想的博客】变成链接直接显示在留言区,而不是你俩给出的那种(其缺点是不直观,要鼠标放上去才知道是什么链接,现在大多数人都不敢随便点链接了吧)。

      删除
    16. Well, you're being advanced, man...

      删除
    17. 居然不行 : (

      删除
    18. [url=https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E9%9A%8F%E6%83%B3%E7%9A%84%E5%8D%9A%E5%AE%A2]http://����������������.����.ws[/url]

      删除
    19. zh.wikipedia.org/wiki/编程随想的博客

      删除
    20. https://zh.wikipedia.org/wiki/编程随想的博客

      删除
    21. [url=https://zh.wikipedia.org/wiki/编程随想的博客]https://zh.wikipedia.org/wiki/编程随想的博客[/url]

      删除
    22. [url="https://zh.wikipedia.org/wiki/编程随想的博客"]https://zh.wikipedia.org/wiki/编程随想的博客[/url]

      删除
    23. [url=https://zh.wikipedia.org/wiki/编程随想的博客]zh.wikipedia.org/wiki/编程随想的博客[/url]

      删除
    24. [url=https://zh.wikipedia.org/wiki/]编程随想[/url]

      删除
    25. [url]https://zh.wikipedia.org/wiki/编程随想的博客[/url]

      删除
    26. [url=https://zh.wikipedia.org/]编程随想的博客[/url]

      删除
    27. [url=https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E9%9A%8F%E6%83%B3%E7%9A%84%E5%8D%9A%E5%AE%A2]https://zh.wikipedia.org/wiki/编程随想的博客[/url]

      删除
    28. [url=https://zh.wikipedia.org/wiki/%E7%BC%96%E7%A8%8B%E9%9A%8F%E6%83%B3%E7%9A%84%E5%8D%9A%E5%AE%A2]zh.wikipedia.org/wiki/编程随想的博客[/url]

      删除
    29. 博主貌似没时间看上一篇博文的留言了,你上维基百科了,知道么?(造什么造,一堆垃圾流行语)

      删除
    30. “造”这个用法主要是用来卖萌。“知道”用在较严肃的地方。

      删除
    31. TO 10单元的网友
      多谢分享你在学校的体验。
      要尽量避免被“体制化”。参见:
      [url=https://program-think.blogspot.com/2010/11/institutionalize.html]谈谈体制化,并推荐《肖申克的救赎》[/url]

      删除
    32. 还烦请编程兄修一下网址粘贴系统,可以让那些带有汉字的网址被完整的贴出来,而不会在中文交界处被腰斩。

      删除
    33. TO 11单元的网友
      多谢告知喜讯 :)
      待会儿俺也去前一篇博文回复一下

      删除
    34. TO 12单元 和 Zeroth Posclegomer
      目前评论中放置超链接,有三种形式——(简单形式,带标题的[url]形式、不带标题的[url]形式)

      对于第一种
      所谓的“简单形式”,是把网址直接粘贴在评论的正文当中。
      此时,网址前后都可能出现中文(评论的文字)
      因此,网址的结尾处【不能】含有中文。
      如果含有中文,中文部分会被认为是网址之后的评论文本。

      对于第二种和第三种
      应该可以在网址部分支持中文,俺想办法完善一下 JS 代码中的正则式

      删除
  2. 博主发你邮件没回,是只在博客里回复的吗,不过这样子如果有些隐密的问题可能不太方便问

    回复删除
    回复
    1. TO 2楼的网友
      最近一两年,读者来信非常多,博客留言也非常多。
      因为留言能让很多读者看到,所以俺优先回复留言。
      这就导致无法及时回邮件,实在抱歉 :(
      鉴于读者邮件堆积如山,俺只能从邮件中随机抽出一些来回复,还望谅解。

      删除
    2. TO 2楼的网友
      顺便说一下:
      如果不涉及个人隐私或个人信息,建议还是直接在博客评论中提问。
      在俺博客潜水的读者,有不少高手。
      有些人回答问题的质量,比俺更好。

      如果你要问的问题涉及个人信息或隐私,考虑一下是否有可能把个人信息模糊化,然后再留言。

      删除
    3. 我只是担心公开的在你博客里问一些敏感问题会不会被查水表,因为有时候只是问几个问题的话也不太想开虚拟机和tor来问。如果是私信的话相信你的帐号是不会被盗的。

      删除
    4. [url=http://cn.nytimes.com/technology/20151027/c27zuckerberg/zh-hant/]扎克伯格清華中文演講引經據典讚揚中國[/url]

      难道中国市场有那么大诱惑力吗,不惜牺牲原则来献媚?

      删除
    5. TO 3单元的网友
      哦,原来是这样。
      那你需要在这三种情况中权衡一下啦。
      1、通过邮件,俺的回复很慢
      2、开虚拟机和 TOR,你嫌太麻烦
      3、不这么干,你担心被查水表

      删除
    6. 之前百度贴吧曾经有可以看发帖者ip的漏洞,请问博主blog有没有这样的漏洞,如果是御用骇客能否通过网页找到发言者的ip,哪怕只是代理ip

      删除
    7. 还有我试过,如果用tor登录谷歌账户倒是成功了,但是进入你博客想留言却不行,貌似是因为ip经常变化,账户又自动退出,我进入谷歌搜索都不行,填完一个验证码又是另一个验证码。用了虚拟机会有变化吗

      删除
    8. 博主提到“博客潜水的读者里有不少高手”,是指哪方面的高手呢?
      信息安全、操作系统、编程、翻墙
      思维提升、政治科普、人生追求……?

      删除
    9. TO 6单元
      现在仍然能查到贴吧ID的登陆IP,这里应该有人发言的时候嫌速度慢不用Tor,同问blogspot有类似漏洞吗?再次建议发言的时候走Tor。

      删除
    10. 一人超生,全村结扎。
      该扎不扎,见了就抓。
      能引的引出来,能流的流出来,坚决不能生下来。
      普及一胎,控制二胎、消灭三胎。
      宁添十座坟,不添一个人。
      宁可血流成河,不准超生一个。
      谁不实行计划生育,就叫他家破人亡。
      一胎生、二胎扎、三胎四胎——刮!刮!刮!(你他妈以为这是刮刮乐么?)
      该扎不扎,房倒屋塌;该流不流,扒房牵牛。
      喝药不夺瓶,上吊就给绳。
      ……

      怀上来生出来养起来,就是不能打下来。
      二胎奖,一胎罚,丁克不育都该抓。
      该生不生,后悔一生。该养不养,老无所养。
      生男生女都一样,不然儿子没对象。
      一人拒绝多生,全村人工受精。
      421阵型变成422阵型,中场球员要累趴下了。意指此前一对夫妇需要赡养双方父母四个老人加一个孩子,实行二胎后,一对夫妇负担加重,需要赡养双方父母四个老人加两个孩子。

      删除
    11. BBC电视节目《广角镜》(Panorama)在习近平访英前播出纪录片The Xi Factor《习近平因素》。
      BBC中国编辑凯瑞(Carr-ie Gracie)从习近平的家庭背景说到他集权于一身的经过。

      BBC纪录片官方中文版《解读习近平 The Xi Factor》

      https://www.youtube.com/watch?v=Oc2uuziqPM8
      https://www.youtube.com/watch?v=HW6chb_La14

      删除
    12. 博主更新了,但没注意回复吗?6,7,9单元的问题还没回复

      删除
  3. 回复
    1. 《习总日记》军委紧急会议商讨美入侵我领海

      http://ww1.sinaimg.cn/large/a15b4afegw1exi034yqiyj20hg1cmqdw
      原文:
      http://xizongriji.blogspot.jp/2015/10/blog-post_27.html

      删除
    2. 〖微博谈〗洗脑的害处

      http://ww1.sinaimg.cn/large/a15b4afegw1exi1patkv0j20jg526x6p
      原文:
      https://botanwang.com/articles/201510/〖微博谈〗洗脑的害处.html

      删除
    3. 新时代农村计生标语

      http://ww1.sinaimg.cn/large/a15b4afegw1exj79k1k7fj20ed1r6dq7

      删除
  4. 发帖时间这么奇怪,规避社会工程风险?

    回复删除
    回复
    1. TO 4楼的网友
      参见俺在 1楼3单元 的解释。

      另外,俺也会尽量让发博文的时间【不】显示出规律性。

      删除
    2. 大陆SIM卡要实名制了,不实名的话是不是无法打电话、发短信呢?

      是不是只能买港澳台的SIM卡才能躲过实名制限制呢?(可是漫游费会不会很贵啊)
      已经很急切了,博主就不能谈谈怎么应对吗?

      删除
    3. 1、搞到一套假的身份,专门用于敏感的操作,包括SIM卡。具体可以到Tor地下暗网上的黑市看看有没有国内SIM卡出售。
      2、放弃普通电话,全面转向网络电话。

      删除
  5. 你好博主,之前你也推荐过很多国外软件,不过我用下来感觉这些国外软件的用户体验真的都不太好。火狐,谷歌是很早前就使用过一段时间的浏览器,但后来还是换成360极速浏览器里,就是网页加载速度不够快,下载速度太慢,用了FDM还是没把带宽用完。当然如果要发表敏感言论肯定不会用360有关的软件的。只是我很奇怪为什么这些国外软件用户体验都不怎么好。

    回复删除
    回复
    1. 我觉得火狐谷歌非常好啊,你是不是没有用一些有用的扩展呢

      删除
    2. TO 5楼的网友
      (你的这条留言被 Google 误判为垃圾广告,刚才被俺恢复出来了)

      这要看具体的软件类型,不能一概而论。
      就浏览器而言,俺个人觉得 Firefox 就挺好。而且 Firefox 大概是最早引入扩展机制的。
      有了扩展机制,可以把浏览器定制地比较趁手。

      360浏览器,俺在别人的电脑上见过。当时没觉得它有啥明显优点
      (因为俺没用过,也就不过多评论了)

      删除
    3. 火狐,谷歌的下载据说是单线程的,下载速度往往只占到宽带的一半都不到,用了别人推荐的FDM和其他扩展也没提高速度。不过为了安全只能忍了。谷歌上有一个好的翻译扩展,但在火狐上找不到好的翻译扩展,有字数限制要么不能翻译整个网页。顺便问一下,在这博客里怎么给别人的回复进行回复呀,我只看见了回复X楼这样的选项,别人回复我,我怎么回复

      删除
    4. TO 3單元
      用 Bookmarklet 就行了,不用裝專門的翻譯擴展,拖慢速度。

      删除
    5. 习惯国产流氓软件全家桶和包办式App以后,自然觉得国外软件用户体验不好。什么360,搜狗浏览器集成一堆乱七八糟功能要什么有什么,firefox,chrome需要什么功能还得装什么扩展!然而360搜狗的用户,你不需要某项功能你能卸载吗?你觉得某项功能不够好能够替换成别的吗?

      删除
    6. 不对啊。
      FireFox的DownloadThemAll插件还是很有用的。甚至有人为了使用该插件而安装Firefox的。

      删除
    7. TO 3单元的网友
      Blogspot 的评论功能,最多只能实现【两层】。
      也就是说,都是针对某层楼楼主的回复。
      如果你要针对某个单元的回复,可以像俺这样,写上“TO xx单元”

      删除
    8. TO 3单元的网友
      宽带普及之后,“多线程下载”的迫切性好像不明显了。

      删除
    9. TO 5单元的网友
      这两种人的差异,也就是“喜欢折腾”和“懒得折腾”的差异。
      俺属于喜欢折腾的,折腾的过程能学到很多东西 :)
      对比折腾消耗的时间,感觉还是值得

      删除
    10. 写上“TO xx单元”他能收到回复提醒吗?还是只有重新来看了才知道。

      删除
  6. 此评论已被作者删除。

    回复删除
  7. 我觉得 dm-crypt 比起 TrueCrypt/VeraCrypt 还有一个优点,就是 dm-crypt 只负责加密文件(和块设备),给出来还是一个块设备。也就是说这样可以使用所有的文件系统,甚至是作为一个“硬盘”而非“分区”来使用。而 TrueCrypt/VeraCrypt 只能选择 ext4/NTFS/FAT32 中的一个。

    回复删除
    回复
    1. TO 7楼的网友
      多谢你的补充 :)

      你提到 dm-crypt 的这个优点,确实很重要。因为不依赖文件系统,灵活性大大提高。
      这是“正交性设计”的范例。

      删除
  8. 随想老师,您好
    您能否把一些非政治类文章(特别是上一篇科学是什么?)转发到墙内 http://blog.csdn.net/program_think 博客上?
    这样便于小弟转发,谢谢!

    回复删除
    回复
    1. 你既然能出墙外,为什么不自己去转载到墙内呢?博主的版权声明已经说的很清楚了, 只要注明原出处都可以进行转载。

      另外: 你要求博主到国内网站进行发表,难道你不清楚会增加博主身份泄露的风险。 既然不涉及政治,你转载朝廷也懒得追究你, 而博主就不一样了,shadowsocks的作者就是很好的例子。

      删除
    2. 你可以把博主的文章做个网页截图,然后上传图床,再把图片网址转发到墙内的论坛或博客上,不就行了嘛。这等小事何必麻烦博主,传播需要靠各位网友,博主出于安全考虑肯定不会自己去转发的。

      删除
    3. 博主博文的墙内镜像地址 https://github.com/program-think/blog

      删除
    4. https://github.com/greatfire/wiki/wiki/programthink
      https://github.com/XL2014/suixiang
      https://github.com/program-think/blog
      都是墙内

      删除
    5. TO 8单元的网友
      俺在 CSDN 上的帐号,已经很久没有使用了。
      当年启用 CSDN 帐号,一个主要原因是方便不懂翻墙的读者。
      如今翻墙姿势已经很普及了,所以 CSDN 这个镜像的重要性下降了。
      另外,
      CSDN 博客的界面定制功能很弱,这点也是不爽之处。

      删除
    6. TO 1单元的网友
      多谢对俺的关心 :)

      删除
    7. TO 2单元的网友
      俺除了考虑安全的因素,还有另一个因素就是时间太少。

      删除
    8. TO 3单元 和 4单元
      多谢分享俺博客的【免翻墙】镜像 :)

      删除
  9. 可以在安装过程中加密系统分区或全盘加密的:
    加个Fedora吧...

    另外最近学校要学SQL...
    简直就是痛苦..
    博主、各位对此有没有甚么经验??
    唉学校迫我们选修数据库...只能说networking是我比较擅长的唯一一门..

    回复删除
    回复
    1. TO v499
      多谢老熟人补充,已经把 Fedora 加入到那个列表中

      删除
    2. TO v499
      作为评论区的常客,看你的留言质量挺高的,感觉你的能力应该不错。
      怎么会给 SQL 难住呢?
      你认为“学习 SQL”的难点在哪?

      删除
  10. 我不是匿名的2015年10月27日 19:19:00

    随想君能不能谈谈TPP呢?

    回复删除
    回复
    1. 又想让编程兄挨骂了不是。。。?

      删除
    2. TO 我不是匿名的
      俺在想,是否等到美国国会投票通过 TPP 之后,再来聊。

      删除
    3. 哪要等多久呢?

      删除
  11. Linux菜鸟用户路过,学习了。

    回复删除
  12. 博主,你好!请问一下为什么http://www.linuxmint.com/edition.php?id=188
    里面有(MATE)Qiming College of Huazhong University of Science and Technology和University of Science and Technology of China Linux User Group两种呢?菜鸟应该选择哪个?在安全性能上有什么区别?(顺便给Cinnamon也回复一下!)请详细告知,谢谢!!!

    回复删除
    回复
    1. TO 12楼的网友
      一些国内高校提供了开源软件的镜像,其中也包括一些主流的 Linux 发行版。
      如果你从国内高校的镜像网站下载,下载之后记得检查 哈希散列值。
      如果散列值与官方公布的一致,通常就 OK

      但是你给出的这个 Linux Mint 下载页面,上面的散列值竟然是 MD5 的。
      MD5 散列值早就不可靠了(可以构造“人为碰撞”)。
      具体参见《[url=https://program-think.blogspot.com/2013/02/file-integrity-check.html]扫盲文件完整性校验——关于散列值和数字签名[/url]》

      作为对比
      很多知名的发行版,早就提供光盘镜像的 SHA256 或 SHA512 散列值

      删除
    2. 这个问题我特意查了一下,非常奇怪,其他linuxmint版本在下载页面点击Announcement,就会跳到相关博文,里面有Signed sha256 signatures(比如 http://blog.linuxmint.com/?p=2864 ),但偏偏本楼楼主给出的那个版本没有Signed sha256 signatures。你换个版本吧。建议你向linuxmint官方反映这个问题,同时呼吁他们淘汰md5吧。
      另外补充一下,如果没有HTTPS,就算给出SHA512也不能确保可靠。如果没有HTTPS,就得像linuxmint那样用GPG来签名SHA256/SHA512,用户体验不好。向linuxmint官方反馈时,也应呼吁他们上HTTPS。

      删除
    3. TO meek
      多谢老熟人补充 :)
      另外,
      同意你所说——给出校验值的页面,必须是 HTTPS 加密的,才比较靠谱。
      否则的话,攻击者可以中途篡改页面,给出【假的】校验值。

      删除
  13. 习包子与金三胖2015年10月28日 00:10:00

    全盘加密很重要,学习中。几大主流操作系统(Windows、Android、苹果、Linux)应该都支持了,有个疑问:
    从理论上讲:任何一种磁盘加密工具,(在不借助外部机制的情况下)都【不可能】实现真正的“自启动全盘加密”。
    ——————————
    是不是指“操作系统无法自己给自己输入开机密匙”?那么Android5.0加密算真正的全盘加密吗?

    回复删除
    回复
    1. 1.从理论上讲:任何一种磁盘加密工具,(在不借助外部机制的情况下)都【不可能】实现真正的“自启动全盘加密”。
      2.Android5.0全盘加密需要使用某种磁盘加密工具。
      3.Android5.0不算真正的全盘加密。

      删除
    2. TO 习包子与金三胖 和 1单元
      据俺所知,手机的全盘加密,应该是依靠硬件内(芯片)的密钥和解密算法。
      这种情况下,硬件相对于磁盘而言,就是【外部机制】

      删除
  14. 对不起随想兄的扫盲啊。。。

    在Chromebook 里面装Linux 已经到了让人恼火到忍无可忍的地步。竟然连iso 烧录、usb 识别、打印机安装都做不到,着实让人恼火。。。已弃疗,暂时都是公司里使用的windows而已。

    虽然说Linux 定制功能高,上述问题应该都能解决。
    但自己摸索成本太高,看书的话又一大本(比较系统的入门书我就知道《鸟哥私房菜》),实在像啃冰山,无从下口。而且试过书的方法,没用,恼火。而且不知道解决完上述问题,不知道又会不会又碰上什么无厘头的问题,恼火。 而且chomebook 空间太少,难免重装,然后发现竟然不能卸载软件,我勒个去!最最让我恼火的是,不知道是不是因为使用chromebook 造成的,我碰到的问题,中文社区里竟然都没人碰过。我怀疑使用win 或 mac 用虚拟机装linux ,就根本不会碰到我的问题。。。

    自己动手解决时间成本太高,如果睡眠不足,工作效率下降,给公司解雇就丢大发了。。。还是等圣诞时再买台 8G 的windows装虚拟机看看。。。

    回复删除
    回复
    1. 然后想借同事的windows 时发现, 全公司使用 windows 的人不够10% !使用的都是mac。。。用windows 的都tm 全是中国移民我勒个去。。。怎么回事。。。?

      mac 跟 win 价格都差不多啊,除了装X 之外,发现不了mac 的任何优越性。

      删除
    2. 习包子与金三胖2015年10月28日 02:23:00

      全世界一统计就不一样了,小众份额有Linux, 大众份额有Android。win可以配合使用。果粉心理难理解。

      删除
    3. 在大学里碰到的本地学生,接近100% 都是用的mac。在比较高端的街道,别人都是夹着个mac或者iPad 走。。。

      全世界怎么回事我不知道,欧洲怎样我不知道,反正美国、加拿大这边是挺疯狂,MD 连乞丐都用mac蹭wifi...

      没用过mac ,不好评价,不知道是不是版权原因,也不在乎价格,本地人用mac 的居多。。。移民的话,中东也是喜欢用mac... 暂时碰见印、巴、马、越、中的移民,用的都是windows....

      说它装吧,乞丐都用;说它不装吧,用 win的都是二、三世界移民。。

      删除
    4. 2010 的调查了,
      美国大学用mac的倾向很明显 。
      在2015 年,情况只有加强并没减弱。

      [url=http://www.zhihu.com/question/24847816]在美国大学Mac占有率真的很高吗[/url]

      删除
    5. 这有啥难以理解的,硬件设计优秀颜值高,续航给力,最为易用的*nix。

      删除
    6. 如果移动设备用的是iOS,用Mac还有额外加分项。

      删除
    7. 主要没用过,当然想是想不明白的。暂时连女朋友都不在乎颜值,手机当然更没要求了。。。而且跟国内比反差是太大,一时想重装系统还找不到人借电脑了,我勒个去。

      删除
    8. 习包子与金三胖2015年10月28日 09:07:00

      回复知乎小胖子:
      高不高端只是果粉自我感觉,统计数据也会会撒谎,部分学生群体的选择也不代表财力雄厚的大众市场。全世界Mac、iOS份额估计10%左右
      参考
      http://bbs.feng.com/mobile-news-read-0-578826.html

      删除
    9. 习包子与金三胖2015年10月28日 09:19:00

      全世界Android份额80%,iOS 仅仅15%左右
      参考
      http://news.hiapk.com/android/1592098.html

      删除
    10. mac仅仅是用来炫耀的吗?
      只能说盲目跟风的心态往往掩盖了事物其本身的价值意义和真正的需求。

      删除
    11. 习包子与金三胖2015年10月28日 09:45:00

      即使美国市场
      mac在美国市场达到新高,一看居然是13%
      http://bbs.feng.com/mobile-news-read-0-599347.html

      删除
    12. 现在买笔记本的话,也只有MacBook和surface能看得入眼了,其他那些OEM,我不是针对谁,统统都是垃圾。

      删除
    13. 在周围都是Mac的环境中,用win才是比较酷的那边吧。

      删除
    14. 习包子与金三胖2015年10月28日 10:50:00

      全世界代工市场主要就台湾那几家,以移动设备为例,不同品牌的代工出自同一家工厂的可能性非常高,即使不同代工厂,由于现代工业流水线作业同质化,也并无实质区别。

      删除
    15. 习包子与金三胖2015年10月28日 10:59:00

      因此“用户隐私保护、新技术的应用、软件的兼容性”等核心需求才是最重要的。苹果喜欢创新应用新技术,因此满足一部分需求,占有一定份额。技术别的厂家可以快速模仿的,但是封闭模式是隐私保护、软件兼容性的天敌。

      删除
    16. Mac一机完美解决Windows,Mac OS,Linux三大系统,别的得借助虚拟机(黑苹果排除)。

      删除
    17. 开放和封闭只是相对而言,苹果是硬件公司所以硬件实行封闭策略,OS X以FreeBSD源码和Mach微核心为基础,而FreeBSD开放源代码。微软是软件公司所以Windows授权给OEM厂商,Windows源代码是闭源的。商业公司都是一个鸟样,开放还是封闭是由自己利益决定的。

      删除
    18. 还有谷歌,Android不过是Linux的耻辱。

      删除
    19. 如今这个时代,追求绝对的隐私是很难的,软件可以全部选开源,但硬件你要怎么防?另外,新技术和兼容性是彼此矛盾的要求。

      删除
    20. MAC 在国外又不贵(当然是以外国人的工资标准来衡量的)。
      系统简单,软件易用,硬件设计优良,UI漂亮。
      图简单的国外用户自然会入选了。

      删除
    21. 在不考虑价格的情况下,如果实在小白或其它什么原因无法使用Linux。那么Mac或OS X系统也就是黑苹果是一个很好的选择。至于Windows就不说了。

      删除
    22. To 17单元
      哪个时代也没有绝对的隐私,像你说的这种随处可见的普遍言论格式其实毫无意义。
      比如没有绝对的隐私,没有绝对的自由,没有绝对的公正,没有绝对的公平等等等。
      就如博主上篇说到日本“绝对”无法战胜美帝一样,如果非要较真那肯定是没有绝对。
      但这不影响日本无法战胜美国的客观事实,
      但这完全不影响去追寻隐私,自由,公正,公平。
      博主就做到了完全的隐私,反对吗?

      删除
    23. 习包子与金三胖2015年10月28日 14:21:00

      1、世上有没有绝对的隐私?如果换一个问题“世界有没有绝对的突破隐私防范方法?”,就可能觉得这是一个错误的提问。
      隐私与否取决于你的态度,隐私是一个态度问题。
      2、实际上人们往往把隐私与审查联系起来。就好理解了,于是换一个提问:
      审查技术能否打败隐私保护技术?
      答:审查也好,隐私防范也罢,源于技术的较量,从根本上来说,技术就等于智慧,而智慧无法被审查(比如加密)。所以可以从理论上宣告这个世界上存在绝对的隐私。
      3、现实如何呢?
      相对来说,隐私防范措施越好,攻破成本就越高,有更好的开源、开放系统就不会选择封闭、垄断的系统。
      4、硬件无法彻底防范隐私侵犯吗?
      如果想防,肯定有办法,换一个思路,偷窥隐私必需联网是前提,而网络防火墙是一个重要方法。

      删除
    24. 习包子与金三胖2015年10月28日 14:41:00

      (Android)绝对隐私防范方案一
      1、启用全盘系统加密,扔掉外置存储卡,买一个新的,然后存储卡加密
      2、启用网络防火墙,开启白名单,禁用系统及后台可疑流量。
      3、白名单流量必需经过“Tor”
      试问:如何攻破该Android 设备?

      删除
    25. 与别的电脑那千篇一律臃肿、呆笨的外观相比,
      mac除了实用性之外更注重简洁【浑然一体】的美学设计让人倍感亲切。

      附上一句苹果公司1997年「不同凡响」的广告:
      【只有那些疯狂到以为自己能够改变世界的人,才能真正的改变世界。】

      删除
    26. 如果后门在modem上呢?如果后门工作在ip层以下呢?你打算手工焊一个防火墙还是选择商业公司的产品?加解密流程能绕过cpu吗?你是否要信任商业公司生产的cpu呢?

      删除
    27. 习包子与金三胖2015年10月28日 22:00:00

      1、攻击需要成本
      我就随便分析一下简单、可行、实用的方案,全世界那么多产品,你都不知道别人用什么,大费周章搞什么没听过的CPU后门,亏本生意啊。
      2、难度非常大,可以忽略
      首先要攻破tor,然后才能找到设备破解加密,每一步难度都不小啊。

      删除
    28. 习包子与金三胖2015年10月28日 22:07:00

      说到外观审美,我以前就是不理解果粉一点
      抱一个小屏幕很有优越感,后来苹果老板开发一款大屏幕,什么新功能没有,换机速度那个快。

      删除
    29. 我可没有强迫症,问题是那些开源原教旨主义者和被害妄想症患者们不这么想,他们无时无刻不在妄想全世界的老大哥都在盯着他们,然后不是声称要拒绝一切商业公司吗?至于你那个android方案,扔掉gms,扔掉闭源驱动,扔掉闭源app之后,与功能机何异?然后你还是必须要先信任第三方rom的提供者,所以你最终还是要信任某人,事情并不完全在你自己控制之下。

      删除
    30. Apple haters贫瘠的大脑永远也想不明白Apple为什么能拿走数字音乐播放器市场,个人电脑市场,手机市场的绝大部分利润,他们除了能在语言上贬低攻击Apple产品用户时极尽所能之外,还会什么?

      删除
    31. 共产 haters贫瘠的大脑永远也想不明白共党为什么能拿走中国市场,个人大脑市场,人肉市场的绝大部分利润,他们除了能在语言上贬低攻击共产产品用户时极尽所能之外,还会什么?
      【doge】【doge】

      删除
    32. 习包子与金三胖2015年10月29日 10:13:00

      1、一家公司控制整个生态链,一个政党控制宣传部(报纸、电视、书籍,网络审查),垄断与利润的关系需要想吗?
      2、做的就是打破垄断、信息封锁。

      删除
    33. 习包子与金三胖2015年10月29日 11:27:00

      1、垄断与利润的关系,信息审查封锁与思想的关系,还需要细说吗?
      2、扔掉GMs与闭源软体方案可行,,Android市场开源软件实在不少,如果实在需要闭源软件,可以进行关键权限(比如联网、短信、设备识别码等等)控制。
      选择实在太多。
      3、比起商业公司臃肿的设计,各种后门、流氓行为,开源是一种境界,如果打开电脑与移动设备,清一色开源软件,给人眼前一亮的感觉。

      删除
  15. 为何突然https连不上了?显示connection untrusted,而且不好添加永久信任了。用的是firefox。

    回复删除
    回复
    1. TO 15楼的网友
      你是指“访问俺博客”吗?
      请问你用的是哪种翻墙方式?

      删除
    2. https://www.program-think.blogspot.com/打开时提示this connection is untrusted。只有get me out of here的选项。博客刚支持https的时候我已经添加进入永久信任了,最近突然不行了。用的是shadowsocks。

      删除
    3. 回复匿名网友:
      博客地址前面不要加www

      删除
  16. 邮件订阅真不错哦,只要更新了就能收到邮件。不过抢一楼哈哈哈有难度。等有空去Ubuntu试试~~

    回复删除
    回复
    1. TO Benny Think.
      多谢反馈 :)

      不过“邮件订阅”也有一个缺点——如果俺修改了博文,订阅者感觉不到。

      删除
    2. To 随想,
      其实我只是想抢一楼,顺便还不想刷pv哈哈哈,是不是虚荣心作怪。这三四点发文,要注意身体健康呀。(莫非outlook显示的是GMT-5,其实北京应该是四五点的?)

      删除
  17. TPP刚订TTIP又来,中国必须选择最后出路

    江南樵夫

    网友:达成TPP后不久,美欧在跨大西洋贸易和投资伙伴关系协定(TTIP)谈判中也取得重要进展。美欧谈判官员透露,双方在一周内交换免除97%对方商品进口关税方案。

    TPP只占4成,还有6成,这回又丢了几成?拒绝世界,也就被世界拒绝。

    樵夫:很多思维还停留在丛林法则中的中国人始终坚信,西方人的一切商业行为都是为了经济利益,当我告诉他们新的ISO企业质量管理认证标准已将人权内容(比如工资福利、劳动保护、环境保护等……)写进正式版本时他们愕然了,这就是说,西方企业不再唯利是图,如果你没有达标ISO包括人权在内的一切标准,哪怕再有钱赚西方企业都将不再和你做生意。

    这就是文明世界和丛林世界的区别。

    理解了这一点,你就会理解TPP和TTIP中有关普世价值观的门槛并不是为中国而设,而是为整个野蛮的丛林世界而设,它们是设在现代文明和野蛮丛林之间的两道界墙。

    无论你如何到处撒钱,无论你如何投资一带一路,也无论你如何拼凑亚投行,你都无法再肆无忌惮的侵入文明社会。

    别再相信一切的经济改革,也别再相信一切的“摸着石头过河”,摆在眼前的道路,除了民主变革已经别无选择。

    因为,只有自由、民主和人权才是突出重围通向文明世界的唯一通行证。

    回复删除
    回复
    1. TO 爱自由爱翻墙
      多谢分享 TPP 相关网文 :)

      删除
  18. 此评论已被作者删除。

    回复删除
  19. 我发现删除评论功能不好用,删除了还是显示有这个用户发过言

    回复删除
    回复
    1. TO 19楼的网友
      这个俺没法改 :(
      Blogspot 的评论系统就是这样设计的

      删除
  20. 楼主想请教一下双虚拟机的问题:
    就是双虚拟机翻墙它的网速跟不跟电脑的配置有关系。给虚拟机分配的内存和CPU是不是跟网速是成正比的?
    我原来用单虚拟机和双虚拟机试了了一下,(电脑的配置为i3)发现单虚拟机的网速比双虚拟机的网速快了很多。双虚拟机它们之间的数据传输是不是跟给虚拟机分配的内存和CPU大小有关系?

    回复删除
  21. 楼主,关于经济类书籍的重分类,还有我发给你的社会学书籍以及民权运动的事情,在这里提醒一下,以免下次你更新电子书时忘记

    回复删除
    回复
    1. 刚发给博主一本《自由的进化》

      删除
    2. TO angleandlove.2011
      多谢老熟人大力支持 :)
      近期俺开始在补充一些电子书到网盘,到时候也把你发来的这几本传上去

      删除
    3. to 楼主:我是angleandlove.2011,这里说明一下,这楼一单元不是我,那位说的那个《自由的进化》我没看过,你自己审核一下。

      删除
    4. To 3单元
      奇怪,如果你确实是楼主,那为什么不用angleandlove.2011账号登录发言呢?这样不更能证明身份且省却说明?

      删除
  22. 问一下,如果用tor不连网桥直接用前置代理,反正用了网桥也是替换掉入口节点,直接用前置代理也是4重代理。这样子连接是不是也是混淆了流量,认不出来?

    回复删除
    回复
    1. TO 24楼的网友
      有了前置代理,可以不用设置网桥了
      如果你用了前置代理,并且这个前置代理本身是加密的(比如 VPN),那 TOR 的流量特征(对于嗅探者)是看不出了。

      删除
  23. 请问下:优盘、手机怎么连接电脑才安全,还有优盘中压缩文件,有些压缩文件损坏,有些没有损坏,每次要用都是用解压后的文件,压缩文件本身从来动过啊,怎么会有些损坏呢?哪些大侠指教下怎么恢复?

    回复删除
    回复
    1. TO 25楼的网友
      有可能你的 U盘 已经有物理损坏了。
      所以,之前存储的文件,如果正好存储在物理损坏的地方,再次读出该文件,该文件的内容也坏了

      删除
    2. TO 编程随想
      怎么修复优盘物理损坏呢?另损坏资料有办法吗?

      删除
  24. 楼主啥时候有空能用通俗的语言介绍下相对论?时间能变慢尺子能缩短,真是难以理解,不知道理论描述的是不是我们所感知的那种意义,还是数学上意义。楼主的那个有关科学的帖子的评论打不开,就发这里了

    回复删除
    回复
    1. TO 26楼的网友
      多谢提建议 :) 俺考虑一下。
      如果你对“相对论”感兴趣,或许可以先看一本科普读物《物理世界奇遇记》。
      俺小时候看过,还算是比较通俗,比较深入浅出的。
      其作者是伽莫夫,一个很有名的物理学家,参与创立“宇宙大爆炸理论”。
      顺便说一下,此人从苏联逃到美国

      删除
  25. 上一则文章,我在77楼有好几个留言显示不出来,请博主恢复一下。

    回复删除
    回复
    1. TO 27楼的网友
      刚才俺已经把所有被 Google 误判的留言,都恢复出来了。

      删除
  26. dd创建比较大的稀疏文件很慢,可以用fallocate -l 10G filename代替

    回复删除
    回复
    1. TO 28楼的网友
      多谢补充 :)
      已经把你的方法加入本文中。

      删除
  27. 请问大家都是用什么方法翻墙的,现在可用的翻墙方少了,请给点建议谢谢

    回复删除
    回复
    1. http://www.gochrome.info/

      删除
    2. TO 29楼的网友
      可以试试看俺前不久推荐的 蓝灯。教程如下:
      《[url=https://program-think.blogspot.com/2015/08/gfw-lantern.html]“如何翻墙”系列:Lantern(蓝灯)——开源且跨平台的翻墙代理[/url]》

      删除
  28. 能否在不卸载360的前提下保障安全呢?因为360卫士有网购先赔功能,如果网购真的中了木马损失了是可以赔偿的,这点国外杀软还真没法弥补。虽然360会泄露隐私,但我不觉得它会在这个问题上赖账,个人客户赔偿金额是有上限的,如果是符合标准的客户就算赔偿了也没多少钱,对它名声还有好处,并不吃亏。想了下是不是要把360安装在虚拟机里,然后在虚拟机里登录网银操作不会影响到其他虚拟机和主机的隐私?

    回复删除
    回复
    1. TO 30楼的网友
      如果你确实要用“360卫士”,但是又怕它耍流氓,那么用虚拟机隔离是一个办法。
      把它装到某个 Guest OS 里面,对该 Guest OS 的共享目录,只共享那些不敏感的目录。

      删除
  29. 博主!你好,俺是12楼滴楼主,看到你滴回复之后,俺想追问一下在哪个网站可以下载linuxmint?俺好不容易找到那个网站滴,但是听你滴意思,似乎不安全,请你告诉俺个链接,谢谢啊!!!

    回复删除
    回复
    1. 这是官方网站http://www.linuxmint.com/

      删除
    2. 你在12楼发的链接是官方网站,博主的意思是你下载后记得检查一下哈希散列值,但是他们给的是MD5,而MD5早就不可靠了。所以即使检查结果一致也不一定绝对安全,linuxmint开发者安全意识差,没办法的,觉得不安全换个发行版。
      http://www.linuxmint.com/edition.php?id=185镜像地址下载方式是HTTP,另外还提供种子下载。根据Whonix官网https://www.whonix.org/wiki/VirtualBox#Landing,比较了几种下载方式的难易和安全程度。HTTP和Torrent Download验证情况下安全都是"High",不验证时HTTP是"Very Low",Torrent Download是"Medium"。所以你可以先用种子下载,然后再检查MD5,会稍微好点。

      删除
    3. 30楼1单元说滴这个网站,所下滴这个镜像不安全!因为博主说"校验码md5值可以人为伪造滴! "

      删除
    4. 官方网站上的东西不安全………………
      你在官网上下载到了恶意文件,要么是官网被黑了,要么文件传输过程中被人修改了。

      删除
    5. 其实官网有SHA256的,就是比较隐蔽,参见我在12楼的留言。GPG签名验证方法自己google一下。

      删除
    6. TO 31楼的网友
      可以参见 meek 在 12楼的补充说明。

      删除
  30. 编程兄,请问你是怎么学会这么多的技术呢?能不能讲下你的技术学习方法。

    回复删除
    回复
    1. TO Linas Wang
      承蒙夸奖 :)
      俺要声明一下:
      首先,俺的知识面【不能】算广。尤其和那些真正的牛人(如“本杰明·富兰克林”)比起来,肯定不值一提。
      其次,俺了解的领域中,有很大一部分仅仅是粗浅的了解,算不上深入。

      如果你非要让俺分享心得或方法。
      最重要的一条,大概是【兴趣】。
      俺开博客之后写的第一个系列是《[url=https://program-think.blogspot.com/2009/01/0.html]如何成为优秀开发人员[/url]》。
      在那个系列中,俺首先聊的话题就是【兴趣】

      删除
    2. (接上一单元)
      除了【兴趣】这个因素之外,当然还有其它一些因素。
      比如俺曾经写过如下几篇,有兴趣的话,可以去参考一下。这几篇都可以算是俺个人的心得体会。
      《[url=https://program-think.blogspot.com/2013/09/knowledge-structure.html]如何完善自己的知识结构[/url]》
      《[url=https://program-think.blogspot.com/2013/04/how-to-read-book.html]《如何阅读一本书》——书评及内容纲要[/url]》
      《[url=https://program-think.blogspot.com/2009/02/study-technology-in-three-steps.html]学习技术的三部曲:WHAT、HOW、WHY[/url]》
      《[url=https://program-think.blogspot.com/2013/03/internet-resource-discovery-0.html]如何挖掘网络资源[/url]》

      删除
  31. 请问能整个视频吗???或者至少想以前那样有图文教程,一步一步那种,隔行如隔山啊。。。
    另外
    我从来不把安逸和快乐看作是生活目的本身, 对这种伦理基础, 我称之为'猪栏的理想'。
    ——爱因斯坦
    Well being and happiness never appeared to me as an absolute aim. I am even inclined to compare such moral aims to the ambitions of a pig

    猪栏的理想是谁翻译的。。。。。。。

    回复删除
    回复
    1. TO tomgeniewang
      本文关于 dm-crypt 的教程,主要都是命令行操作。
      所以俺就没有贴图了。
      但是俺把相关的命令,全都给出了。

      删除
    2. 关于爱因斯坦那句名言的中文,俺不清楚是谁翻译的。
      如果俺没记错的话,那个名言来自小爱的一场很著名的演讲。

      删除
  32. 请教~~~~~
    博主之前说过博客顶上那些名人名言类的全部内容在哪里看。可是我不记得了。
    我记得看到过一句大概意思是:如果一个国家的人民想要保持长久的民主自由,那么就应该把政治作为副职业。我想问问原话在哪里,出自哪里。谢谢大家。

    回复删除
    回复
    1. [url=https://program-think.blogspot.com/2014/08/maxim.html]分享各个领域的一些格言[/url]

      删除
    2. TO tomgeniewang
      关于博客副标题的“动态格言”,俺曾经汇总在一篇博文中(参见 1单元)。
      不过那篇博文中的,已经不是最新了。
      因为俺定期会补充这些格言。
      如果你熟悉 HTML 语法,直接查看博客页面的源代码,就可以看到。

      删除
    3. TO 1单元的网友
      多谢替俺回答读者提问 :)

      删除
  33. 锤镰帮昨天开放了全民二胎,又让我想起了罗马尼亚的月经警察。
    看来习二逼这是要布齐奥塞斯库的后尘啊。

    回复删除
    回复
    1. 习包子与金三胖2015年10月30日 18:25:00

      中共继续指导人们的生育自由,实行计划生育政策。生存成本重要还是什么全会公报重要?
      性别失衡、生活压力、户籍制度等现实问题拉回视线倒不是很意外。

      删除
    2. 习包子与金三胖2015年10月30日 21:33:00

      1、生存压力:养子还是养老?
      表面看是一个悖论,实际上是社会根本上出现问题了,养子与养老都有很大的压力。人群整体人口增加从理论上并不能提高平均个体的生活质量,提高生育率不过是一个恶性循环吧了。
      2、有一个段子说的好:
      二胎:别想多了,和人权无关,跟猪仔儿一样一样的,生多了就结扎,生少了就催产,反正地主家过年的肉要保证供应。所以什么养老,看病,食品安全,住房只字未提。穷其一生的做着奴隶,而又穷其一生的制造着奴隶。不过是徒增一个奴隶罢了。

      删除
    3. 习包子与金三胖2015年10月30日 21:50:00

      1、生存压力:养子还是养老?
      表面看是一个悖论,实际上是社会根本上出现问题了,养子与养老都有很大的压力。人群整体人口增加从理论上并不能提高平均个体的生活质量,提高生育率不过是一个恶性循环吧了。
      2、有一个段子说的好:
      二胎:别想多了,和人权无关,跟猪仔儿一样一样的,生多了就结扎,生少了就催产,反正地主家过年的肉要保证供应。所以什么养老,看病,食品安全,住房只字未提。穷其一生的做着奴隶,而又穷其一生的制造着奴隶。不过是徒增一个奴隶罢了。
      3、与其说制造劳动力,不如说提高贫困人口,最终会自食其果。

      删除
    4. TO 35楼的网友
      你提到了“罗马尼亚的月经警察”,俺补充一下:
      除了“月经警察”,罗共的另一个特色发明是“打字机执照”。

      罗马尼亚的独裁者齐奥塞斯库,搞了太多奇葩的玩意儿。
      结果下场很不堪——死得很难看。
      罗马尼亚也是当年“东欧巨变”中,唯一以“暴力革命”实现民主化转型的国家。

      习包子会吸取这个前车之鉴吗?俺很怀疑

      删除
    5. TO 习包子与金三胖
      看了你的几条留言,俺又想起谢国忠的名言:
      [b]“中国模式”的核心竞争力就是压榨劳动力[/b]

      删除
    6. 习包子与金三胖2015年10月31日 01:13:00

      御用学者的思维范式,智商堪忧:
      提高生育率,增加一批劳动力,该批劳动力变老后,以更高的生育率增加一批青年人口。癌细胞恶性循环。

      删除
  34. Freedom on the Net 2015
    https://freedomhouse.org/report/freedom-net/freedom-net-2015
    中国以88的高分排名第一(倒数)

    回复删除
    回复
    1. 奇怪的是为啥冰岛、挪威、爱沙尼亚一直都比美英老牌民主国家排名靠前几位呢,从哪观察得出的?

      删除
    2. 这是关于“自由”的排名,不是关于民主的排名。
      北欧的各项排名一向都很好的,人类发展指数、性别平等指数、言论自由指数……

      删除
    3. TO 36楼的网友
      多谢分享新闻 :)
      好像没看到北朝鲜。
      要是北朝鲜参与排名,咱们堂堂天朝也不至于垫底啊。

      删除
  35. 博主你好,非常抱歉在这里问一个不相关的问题:
    我虚拟机用的是unbuntu系统,也按博主说的,配置好了网卡,也ping的通,但是打开虚拟机里的浏览器上网却写代理服务器拒绝连接,可能是为什么?
    补充一下,我用的是lantern作为代理,nat过0.0.0.0:8787收监听在0.0.0.0上的

    回复删除
    回复
    1. TO 37楼的网友
      你还需更详细地描述你的部署。
      比如:
      你采用的是“单虚拟机”还是“双虚拟机”?
      你在虚拟机中的浏览器,代理配置的界面,是如何填写的?(如果填写的是【0.0.0.0:8787】,那就错了)

      删除
  36. 好消息!linux 版 vpn gate 应该有人在做了
    http://www.vpnusers.com/viewtopic.php?f=7&t=2790

    回复删除
  37. 博主更新了,但没注意回复吗?2楼的6,7,9单元的问题还没回复

    回复删除