2016年4月

双因子认证 Two-Factor Authentication (2FA)是一种生物识别技术,是保护用户在线数据的最强大的方法之一。两位阿姆斯特丹大学的研究人员最新发现了一种新的攻击方式,可以利用这种认证方式的设计缺陷让用户暴露在攻击风险之中。

两位研究人员 Radhesh Krishnan Konoth 和 Victor van der Even 说他们在 2014 年就发现了这个缺陷,已经警告了 Google 和其它的在线服务商,甚至还将他们的发现展示给了一些银行,但是没有人在意。

这两位研究人员解释说,因为到现在为止他们还没有公开具体细节,所以许多人认为这个漏洞并不危险,不值得注意。但是他们有不同的看法。

设备间的应用同步是 2FA 的阿喀琉斯之踵

如他们所解释,攻击并不是由于软件开发缺陷导致,而是由于 2FA 的设计缺陷导致的。现在有个概念叫做“计算无处不在”,让应用和内容在设备之间可以同步,而如果攻击者可以访问受害者的 PC 就会让 2FA 的保护失效。

由此,各种在线服务中的 2FA 认证机制的设计缺陷会让攻击者可以使用诸如 iTunes 或 Google Play 商店来将恶意应用推送到用户的手机上,而不会触发 2FA 认证系统,甚至可以在用户手机的首屏上展示图标。

当然,攻击者首先得能将他的恶意应用通过 Google 和 Apple 的审查放到他们的应用商店,不过最近看起来这种情况已经比较常见了。

此外,这也需要攻击者能够完全访问你的 PC,无论是可以直接接触访问,还是通过恶意软件控制你的设备,以及偷窃了你的账户。

跨设备的应用同步本身并不是问题,问题是实现方式不对

无论如何,风险依然是存在的。研究人员称,使用 2FA 的服务应该要非常注意在不同设备间的应用同步的实现方式。

在问及如何在 2FA 服务中修复这个问题,特别是对于使用这种服务的 Google 而言,研究人员说,最好的办法是“将应用安装过程(即提示用户该应用的所需权限的地方)放到手机上去,而不是将它们放到浏览器中”。

更多的细节,可以看看下述视频:

以及可以参考两位研究人员的论文:“计算无处不在如何干掉了你的基于手机的双因子认证”。

ubuntuBSD 的开发者 Jon Boden 现在正在尝试将他的操作系统贡献给 Ubuntu 社区,以及更进一步地变成一个官方的 Ubuntu 分支。

在两周前,我们报道ubuntuBSD 项目,该项目的主要目标是将 FreeBSD 内核移植到 Ubuntu Linux 系统中。

当前 ubuntuBSD 项目正处于前期开发中。就在前两天,4月7日,刚刚发布了它的第四个 Beta 版本,而且看起来已经得到了官方的关注。目前该开发者准备将其全部的工作贡献到 Ubuntu 社区。

“我想将我的这些工作全都贡献给 Ubuntu 社区,如果可以的话,我希望 ubuntuBSD 可以成为一个类似 Xubuntu 和 Edubuntu 的 Ubunut 官方项目,” Jon Boden 说,“如果你感兴趣的话,请让我知道该怎么做。”

我们认为 ubuntuBSD 是一个非常有趣的项目,这是为什么我们在网站上推荐它的原因,但是成为一个官方的 Ubuntu 分支,也许还不太可行,因为到现在为止还没有一个最终发布的版本。

在本文发表时,尚未得到 Canonical 的官方回应。如果有任何消息,我们会第一时间披露给大家。

Linux AIO 团队的 Željko Popivoda 在4月6日宣布,Linux AIO Ubuntu 14.04.4 LTS Live DVD 发布了。

如果你还不知道 Linux AIO 是什么,这里是一个简单的介绍:

Linux AIO 由一群熟练的 GNU/Linux 开发者组成,他们将各种流行的 GNU/Linux 操作系统的几个主要分支打包到一个单一的 Live ISO 镜像中,支持 Ubuntu、Debian Live、Fedora、Linux Mint、Linux Mint Debian Edition (LMDE)、 Zorin OS、 ROSA、 PCLinuxOS、 Korora、 Porteus 等等发行版。

最近 Ubuntu LTS 14.04 已经更新其第四个维护版本,这次发布的 Linux AIO Ubuntu 14.04.4 LTS 也相应更新到了最新的版本。

在 Linux AIO Ubuntu 14.04.4 Live DVD 中,包含了 Ubuntu 14.04.4 LTS、Kubuntu 14.04.4 LTS、Xubuntu 14.04.4 LTS、Lubuntu 14.04.4 LTS 和 Ubuntu GNOME 14.04.4 LTS 等几个分支。

“你可以看到这里并没有 Ubuntu MATE ,而在 Linux AIO Ubuntu 14.04.2 中却有”,Željko Popivoda 说,“那是因为 Ubuntu MATE 并没有发布对应的版本,也许将来的 AIO 版本会包含它。”

Linux AIO Ubuntu 14.04.4 LTS 分为三个 DVD 镜像,支持两种不同架构:

  • 32-bit (x86):Ubuntu 14.04.4 LTS desktop i386, Kubuntu 14.04.4 LTS desktop i386, Ubuntu GNOME 14.04.4 LTS desktop i386, Xubuntu 14.04.4 LTS desktop i386, Lubuntu 14.04.4 LTS desktop i386
  • 64-bit (x86\_64):Ubuntu 14.04.4 LTS desktop amd64, Kubuntu 14.04.4 LTS desktop amd64, Ubuntu GNOME 14.04.4 LTS desktop amd64, Xubuntu 14.04.4 LTS desktop amd64, Lubuntu 14.04.4 LTS desktop amd64
  • 混合版:Ubuntu 14.04.4 LTS desktop amd64, Kubuntu 14.04.4 LTS desktop amd64, Ubuntu GNOME 14.04.4 LTS desktop amd64, Xubuntu 14.04.4 LTS desktop i386, Lubuntu 14.04.4 LTS desktop i386

你可以到其官网下载 ISO 后写入到 USB 存储器或 DVD 光盘中。不过要注意,还不支持 UEFI。

Learn to live with Apache Hive in 12 easy steps

Hive 可以让你在 Hadoop 上使用 SQL,但是在分布式系统上优化 SQL 则有所不同。这里是让你可以轻松驾驭 Hive 的12个技巧。

Hive 并不是关系型数据库(RDBMS),但是它大多数时候都表现得像是一个关系型数据库一样,它有表、可以运行 SQL、也支持 JDBC 和 ODBC。

这种表现既有好的一面,也有不好的一面:Hive 并不像关系型数据库那样执行 SQL 查询。我在 Hive 上花费了大量时间,光是我自己在工作中就为了优化它花费了超过80个小时。不说你也知道,我就像呆在蜂巢(Hive)旁边一样脑袋嗡嗡作响。所以,为了让你免受这种痛苦,我决定将它们写出来,以便让你在你的下一个 Hive 项目中逃离这种折磨。

1、不要使用 MapReduce

不管你是不是觉得 Tez、Spark 或 Impala 能行,但是不要指望 MapReduce。它本身就很慢,比 Hive 还慢。如果你用的是 Hortonwork 的版本,你可以在脚本前面写上 set hive.execution.engine=tez ;用 Cloudera 的话,使用 Impala。如果 Impala 不适用的话,我希望到时候可以使用 hive.execution.engine=spark

2、不要在 SQL 中做字符串匹配

绝不要,特别是在 Hive 中!如果你坚持要在 WHERE 语句中使用 LIKE 匹配,就会产生一个跨产品的警告。本来你的查询可能只用几秒钟,但是使用字符串匹配的话就会变成几分钟。最好的办法是使用那些可以在 Hadoop 中进行搜索的工具,可以试试 Elasticsearch 的 Hive 集成版本Lucidwork 的 Solr,以及 Cloudera Search。关系型数据库这方面表现并不好,但是 Hive 则更糟糕。

3、不要用表连接子查询

你最好创建一个临时表,然后对这个临时表进行连接,而不是让 Hive 自己智能处理子查询。即不要这样做:

select a.* from something a inner join 
  (select ... from somethingelse union b select ... from anotherthing c) d 
  on a.key1 = d.key1 and a.key2 = b.key2 where a.condition=1

而是应该这样:

create var_temp as select ... from somethingelse b 
  union select ... from anotherthing c 
and then 
select a.* from something a inner join from var_temp b 
  where a.key1=b.key1 and a.key2=b.key2 where a.condition=1

一般来说,这会比 Hive 自己处理子查询要快许多。

4、使用 Parquet 或 ORC,但是不要转换使用

也就是说,使用 Parquet 或 ORC 而不要用 TEXTFILE。然而,如果你要把文本数据中导入到更具结构性的数据中,应该做一些转换再导入到目标表中。你不应该用 LOAD DATA 将文本文件加载到 ORC 中,而是应该将其加载到一个文本中。

如果你要创建另外一个表,并最终大多数分析都是对它进行的,那么你就该对该表进行 ORC 化,因为转换到 ORC 或 Parquet 要花费很多时间,并不值得将其放到你的 ETL 处理中。如果你有一个简单的普通文本要导入,也没做过任何优化,你应该将其加载到一个临时表并通过 select create 放到 ORC 或 Parquet 中。不过,这有点慢。

5、开关矢量化试试

在你的脚本前面加上 set hive.vectorized.execution.enabled = trueset hive.vectorized.execution.reduce.enabled = true ,然后试着打开或关闭它们看看。因为最近版本的 Hive 的矢量化有点问题。

6、不要在表连接中使用 structs

我必须承认我大脑里面的 SQL 格式还是 SQL-92 时代的,所以我无论如何都不会想到去用 structs。但是如果你做一些超级复杂的操作,比如在联合主键上使用 ON 语句,那么 structs 就很方便。不幸的是,Hive 对它们很不适应,特别是在 ON 语句上。当然,大多数情况下,在较小的数据集和 yields 下是没错误的。在 Tez 里面,你会得到一个有趣的矢量错误。这个限制并未见于我所知的任何文档,也许这是一个探索你的执行引擎内部的好办法。

7、检查你的容器大小

你也许需要为 ImpalaTez 增加你的容器大小。如果有你的节点大小比较大,“推荐的”容器大小可能就不适用于你的系统。你也许需要确保你的 YARN 队列和常规的 YARN 内存大小合适。你也许应该注意默认的队列并不适合所有的常规使用。

8、启用统计

Hive 在表连接时会做一些蠢事,除非启用了统计。你也可以在 Impala 中使用查询提示

9、考虑 MapJoin 优化

如果你分析你的查询,你可能发现最新的 Hive 已经可以足够智能地进行自动优化了。但是你也许需要再调整一下。

10、如果可以,将大表放到最后

如标题。

11、分区总会帮到你,不管多少

如果你有一个出现在许多地方的东西,比如语句中的日期(但不是日期范围)或重复的地点,你也许应该做分区。分区的基本意思是“拆分到它自己的目录里面”,而不是到一个大的文件中去查找。当你在你的 join/where 语句中仅检索 location=’NC’这样一个小数据集时,Hive 就可以在一个文件中查找。此外,和列值不同,你可以在你的 LOAD DATA 语句中加上分区。另外,要记住,HDFS 并不喜欢小文件

12、使用哈希进行列比较

如果你要在每个查询中比较同样的10个字段,可以考虑使用 hash() 来比较它们的校验值。在一个输出表中展示它们也许很有用。注意,在 Hive 0.12 中,哈希功能比较差,0.13中的哈希更好一些。

以上就是我的12点经验,我希望这些能够帮到你,让你从 Hive 的嗡嗡声中逃离出来。

Fedora 工作站附带了一个虽然简单,然而做截图却足够的工具。允许用户快速地对桌面、特定的窗口、或屏幕的任意部分进行截图。屏幕截图工具 (gnome-screenshot) 这个应用程序专门设计用于在桌面系统中快速捕获并保存截图。

启动 Screenshot

在 Fedora 工作站中, 通过在 activities overview 中搜索 screenshot 来启动 Screenshot 。也可以在 applications 视图中找到(在 Utilities 文件夹)。

Screenshot 模式

Screenshot 有三种主要截图模式:

  • 截取整个屏幕
  • 截取当前窗口
  • 截取选定区域

注意,如果你有多个显示器,抓取整个屏幕是将整个屏幕截图,不仅仅是当前的显示器。

这些操作模式也有一些额外的选项。

  • 延迟截取:允许您指定要等多少秒才进行截图。它用于截取稍后才显示的内容。 延迟抓取只能用于“截取整个屏幕”和“截取当前窗口”两种模式。
  • 截取当前窗口模式的额外选项最多。它允许你在截图后自动加上效果,比如阴影。当截取窗口时,您还可以指定是否让窗口边框和鼠标显示在截屏里面。

进行截图

在设置了模式和选项后,按下截屏程序窗口右上角的“截屏”按钮。当你按下截图按钮后,该窗口就会隐藏, 所以它不会显示在你的屏幕截图中。

如果使用“截取选定区域”模式,按下“截屏”按钮后,你的鼠标指针将会变成十字光标型指针。只需单击并拖动选择截图区域即可。

保存截图

截取后,截屏程序会显示一个保存对话框。它会生成一个基于时间的文件名。按你的需要简单地修改文件名,并单击保存。截图还提供一个旁边的按钮,可以将截图复制到剪贴板。如果你想快速粘贴到另一个应用程序如 GIMP 或 Inkscape 进一步编辑的话,这很方便。

键盘快捷键

如果你只想进行截取而不想设置,Fedora 工作站还提供了几个不同方式的截取快捷键:

  • Printscreen – 截取整个桌面的屏幕截图并保存你的照片文件夹
  • Alt + Printscreen – 截取目前获得焦点的窗口截图并保存你的照片文件夹
  • Shift + Printscreen – 选定区域截取并将其保存到你的照片文件夹
  • Ctrl + Printscreen – 截取整个桌面的屏幕截图并将其复制到剪贴板
  • Ctrl + Alt + Printscreen – 截取目前获得焦点的窗口截图并将其复制到剪贴板
  • Ctrl + Shift + Printscreen – 选定区域截取并将其复制到剪贴板

如果你的键盘没有一个 Printscreen 键,您可以在Fedora 工作站应用程序设置的键盘偏好里面更改这些快捷键。

Ubuntu MATE 项目负责人 Martin Wimpress 昨天宣布,Ubuntu MATE 16.04 的第二个 beta 测试版本已经移植到了树莓派3和树莓派2上了。

没错,用于树莓派的 Ubuntu MATE 已经更新到了即将发布的 Ubuntu MATE 16.04 LTS(Xenial Xerus)分支。本次更新带来了新的欢迎屏,为树莓派特有的功能进行了优化,此外更新了很多部件。

其中,Ubuntu MATE 16.04 树莓派版通过 BlueZ 5.37 组件支持了板载 Wi-Fi 和蓝牙。系统采用 Linux 内核 4.1.19 LTS,包含了 raspberrypi-firmware 1.20160315-1、wiringpi 2.32、nuscratch 20160115、sonic-pi 2.9.0 和 omx-player 0.3.7~git20160206~cb91001 等组件。

另外,在该版本中,用户也能够启用实验性的 OpenGL 硬件加速功能。

如果你希望提前体验,你可从其官方网站下载 Ubuntu MATE 16.04 树莓派版 beta 2,当然,你也可以在官网找到前一个稳定版本 15.10.3。