2014年4月11日星期五

购买4K电视时机未到

  近日,在传统家电企业纷纷推出4K电视之后,国内的互联网电视企业也推出了4K电视机产品,而对于4K电视这个话题,想必也有不少网友在质疑:4K电视到底值不值得购买?

  什么是4K电视

  在2012年8月ITU-R国际电信联盟无线电部门颁布的4K分辨率标准,定义3840(水平分辨率)×2160(垂直分辨率)为4K超高清分辨率。4K分辨率水平具有3840个像素点,垂直有2160个像素点,整块屏幕具有八百万之多像素点,其像素点数量四倍于1920×1080分辨率的两百万个像素点。

  4K电视机的优点很明显,四倍全高清,让画面的每一处细节都分毫毕现。普通全高清电视机,尺寸越大,在较近距离观看节目时,人眼会看到像素点,也就是俗说的颗粒感;4K电视机则能基本解决该问题,在同样距离下看4K电视,其超高清的分辨率让人眼根本看不到像素点,提供给消费者无比细腻的画面效果。

购买4K电视毫无意义

  目前4K电视机的起跳尺寸一般都在65英寸以上,比较常见的尺寸在65英寸~110英寸之间,其中65英寸~80英寸左右的产品比较集中,也是目前市场上主流的产品。

  4K电视值得买吗?

  虽然4K电视有种种优点,但我这里还是要给4K电视泼泼冷水:

  1、看电视?浪费。

  电视机主要用来看电视的,但目前国内电视台基本都是标清节目,分辨率大概在400线左右,少数电视台提供的高清节目,也仅仅达到720P(1280×720);电视台连高清都还没普及的情况下,4K电视节目源更还在“概念”阶段。

  2、看网络视频?带宽不够。

  4K电视需要的带宽是1080P的四倍,至少需要20M以上者能顺利实时传输节目,大部分电信运营商提供的ADSL宽带无法支持4K所需带宽;即使用户升级到100M光纤线路,还要遇到网站服务器的带宽限制,视频网站本身的带宽是有限的,往往难以向大量用户提供20M以上的带宽,即使用户有足够的带宽,观看视频网站的内容往往会被限制到10M以下,难以达到4K所需带宽。

  3、看硬盘视频?容量不够。

  一部4K电影容量轻松超过100G,目前存储条件难以适应,一个1T的硬盘连10部电影都放不下,显然4K电影已经超越了目前存储设备的发展速度,或许未来几年,当硬盘能达到数百T之后,4K电影才能在硬盘里有用武之地。

  4、玩游戏?看蓝光?多余。

  目前大部分游戏机输出最多1080P,而蓝光高清视频也只有1080P;这样的分辨率使用4K电视实在多余,用价廉物美的1080P的电视完全可以达到一模一样的显示效果。

  结论:购买4K电视的时机未到

  根据上面的分析,目前4K电视基本没有什么可观看的资源,外部的设备也少有支持4K电视的,这种环境下,4K跟普通1080P的观看效果差不多,而且电视和电脑屏幕不同,电视的观看距离比较远,远距离观看的时候,人眼就无法分辨出2K和4K,而对于65寸以下的电视,更没有必要购买4K电视。

  可见,目前4K还处于概念期,购买4K电视的时机未到,目前用户购买4K电视毫无意义,等4K普及的时候再来购买更为理智。

2014年4月9日星期三

OpenSSL曝重大安全漏洞

  安全协议OpenSSL今日爆出本年度最严重的安全漏洞。此漏洞在黑客社区中被命名为“心脏出血”,利用该漏洞,黑客坐在自己家里电脑前,就可以实时获取到用户登录账号密码,或欺骗用户访问钓鱼网站。

  OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,目前正在各大网银、在线支付、电商网站、门户网站、电子邮件等重要网站上广泛使用。美国新闻网站Vox撰文,对当天公布的OpenSSL“心脏流血”漏洞进行了全面解读。以下为文章全文:

  什么是SSL?

  SSL是一种流行的加密技术,可以保护用户通过互联网传输的隐私信息。当用户访问Gmail.com等安全网站时,就会在URL地址旁看到一个“锁”,表明你在该网站上的通讯信息都被加密。

  这个“锁”表明,第三方无法读取你与该网站之间的任何通讯信息。在后台,通过SSL加密的数据只有接收者才能解密。如果不法分子监听了用户的对话,也只能看到一串随机字符串,而无法了解电子邮件、Facebook帖子、信用卡账号或其他隐私信息的具体内容。

  SSL最早在1994年由网景推出,1990年代以来已经被所有主流浏览器采纳。最近几年,很多大型网络服务都已经默认利用这项技术加密数据。如今,谷歌、雅虎和Facebook都在使用SSL默认对其网站和网络服务进行加密。

  什么是“心脏出血”漏洞?

  多数SSL加密的网站都使用名为OpenSSL的开源软件包。本周一,研究人员宣布这款软件存在严重漏洞,可能导致用户的通讯信息暴露给监听者。OpenSSL大约两年前就已经存在这一缺陷。

  工作原理:SSL标准包含一个心跳选项,允许SSL连接一端的电脑发出一条简短的信息,确认另一端的电脑仍然在线,并获取反馈。研究人员发现,可以通过巧妙的手段发出恶意心跳信息,欺骗另一端的电脑泄露机密信息。受影响的电脑可能会因此而被骗,并发送服务器内存中的信息。

  该漏洞的影响大不大?

  很大,因为有很多隐私信息都存储在服务器内存中。普林斯顿大学计算机科学家艾德·菲尔腾(Ed Felten)表示,使用这项技术的攻击者可以通过模式匹配对信息进行分类整理,从而找出密钥、密码,以及信用卡号等个人信息。

  丢失了信用卡号和密码的危害有多大,相信已经不言而喻。但密钥被盗的后果可能更加严重。这是是信息服务器用于整理加密信息的一组代码。如果攻击者获取了服务器的私钥,便可读取其收到的任何信息,甚至能够利用密钥假冒服务器,欺骗用户泄露密码和其他敏感信息。

  谁发现的这个问题?

  该漏洞是由Codenomicon和谷歌安全部门的研究人员独立发现的。为了将影响降到最低,研究人员已经与OpenSSL团队和其他关键的内部人士展开了合作,在公布该问题前就已经准备好修复方案。

  谁能利用“心脏流血”漏洞?

  “对于了解这项漏洞的人,要对其加以利用并不困难。”菲尔腾说。利用这项漏洞的软件在网上有很多,虽然这些软件并不像iPad应用那么容易使用,但任何拥有基本编程技能的人都能学会它的使用方法。

  当然,这项漏洞对情报机构的价值或许最大,他们拥有足够的基础设施来对用户流量展开大规模拦截。我们知道,美国国家安全局(以下简称“NSA”)已经与美国电信运营商签订了秘密协议,可以进入到互联网的骨干网中。用户或许认为,Gmail和Facebook等网站上的SSL加密技术可以保护他们不受监听,但NSA 却可以借助“心脏流血”漏洞获取解密通讯信息的私钥。

  虽然现在还不能确定,但如果NSA在“心脏流血”漏洞公之于众前就已经发现这一漏洞,也并不出人意料。OpenSSL是当今应用最广泛的加密软件之一,所以可以肯定的是,NSA的安全专家已经非常细致地研究过它的源代码。

  有多少网站受到影响?

  目前还没有具体的统计数据,但发现该漏洞的研究人员指出,当今最热门的两大网络服务器Apache和nginx都使用OpenSSL。总体来看,这两种服务器约占全球网站总数的三分之二。SSL还被用在其他互联网软件中,比如桌面电子邮件客户端和聊天软件。

  发现该漏洞的研究人员几天前就已经通知OpenSSL团队和重要的利益相关者。这让OpenSSL得以在漏洞公布当天就发布了修复版本。为了解决该问题,各大网站需要尽快安装最新版OpenSSL。

  雅虎发言人表示:“我们的团队已经在雅虎的主要资产中(包括雅虎主页、雅虎搜索、雅虎电邮、雅虎财经、雅虎体育、雅虎美食、雅虎科技、Flickr和Tumblr)成功部署了适当的修复措施,我们目前正在努力为旗下的其他网站部署修复措施。”

  谷歌表示:“我们已经评估了SSL漏洞,并且给谷歌的关键服务打上了补丁。”Facebook称,在该漏洞公开时,该公司已经解决了这一问题。

  微软发言人也表示:“我们正在关注OpenSSL问题的报道。如果确实对我们的设备和服务有影响,我们会采取必要措施保护用户。”

  用户应当如何应对该问题?

  不幸的是,如果访问了受影响的网站,用户无法采取任何自保措施。受影响的网站的管理员需要升级软件,才能为用户提供适当的保护。

  不过,一旦受影响的网站修复了这一问题,用户便可以通过修改密码来保护自己。攻击者或许已经拦截了用户的密码,但用户无法知道自己的密码是否已被他人窃取。

微软Windows XP为什么不免费

  摘要:Windows XP退役后,微软为什么不采取流行的“免费增值服务”策略,推出一个“免费版Windows”?这个免费版Windows功能受到一些限制,有广告显示,如果用户想要去除广告并使用完整版Windows需付费购买。估计微软觉得,免费策略对于个人用户来说效果明显,但对于企业用户来说并没有太大的意义,难以带来大量装机量,吸引用户购买付费版本。

  微软从今天起将正式停止对Windows XP操作系统的技术支持,这意味着在此日期之后,XP操作系统出现任何漏洞,微软将不会再提供任何系统更新修补漏洞,这意味着继续使用XP的用户,将面临前所未有的安全威胁。

  为什么微软要结束对Windows XP的支持?微软表示,2002年,微软根据客户反馈引入了生命周期策略。根据此策略,微软开发的产品受支持的服务级别获得至少10年的支持 (5年主流支持和5年扩展支持)。“诞生于2001年的Windows XP至今有13年的时间,她是有史以来服务最长的操作系统,但随着科技的发展,云计算、移动、社交、大数据等新信息技术的快速发展,XP已经很难满足现代办公和娱乐的需求,也不足以应对当前的安全威胁。”

  因此,Windows XP在2014年4月8日后会结束支持,不再提供新的安全更新、非安全性修复程序、免费或付费辅助支持选项或在线技术内容更新。

  而据CNNIC(中国互联网信息中心)调查显示,在中国办公电脑中,55.5%的在使用XP系统,26.25%在使用Win7系统,只有5.57%的用户在使用其他系统;而在家庭个人电脑中,48.68%的用户在使用XP系统,40.58%用户使用Win7系统,5.33%用户使用其他系统。

微软Windows XP为什么不免费

  可见,已经退役的Windows XP依然有大量用户在使用,既然如此,微软为什么不采取流行的“免费增值服务”策略,推出一个“免费版Windows”?这个免费版Windows具有家庭版的大部分功能,默认捆绑Windows应用商店,微软将大部分软件通过应用商店分发,利用商店里的软件销售获得分成收入。免费版Windows的功能受到一些限制,有广告显示,如果用户想要去除广告并使用完整版Windows,则需要付费购买。

  我相信这个想法微软并不是没有想过,目前Office for iPad正是使用了这样的策略,提供了免费下载和免费浏览功能,如果用户想编辑的话则需要付费,在上架短短一周后,iPad版Office获得了巨大的成功,下载量超过1200万次,并迅速霸占了App Store免费应用排行榜前四名的位置。

  然而,微软的Windows却难以采取这样的免费模式,虽然其竞争对手Linux和Mac OS都是免费的,但Windows依然在桌面操作系统市场占有绝对的优势,虽然很多中国的个人用户“免费”使用着盗版Windows,但企业用户使用的正版Windows依然给微软带来巨大的收益,如果这些企业正版Windows XP用户升级到正版Windows 8,那无疑又会给微软带来大量收入,如果提供免费版Windows的话,反而会对微软的正常收益造成冲击。微软也做过实验,曾经提供过免费的Office 2010入门版(Office Starter 2010),但这却是一次失败的尝试,Office Starter没有获得大量的装机量,也没有吸引用户购买付费版本,推动销量提升,因此微软不得不中止了这个版本的免费版Office,想必微软已经发现,免费策略对于个人用户来说效果明显,但对于企业用户来说并没有太大的意义。

  即使针对个人用户来说,微软提供免费的Windows也困难重重。

  苹果可以将Mac OS免费,但苹果依靠卖硬件的收入来补贴软件,而微软自己并不销售桌面电脑硬件,没有收入进行补贴。谷歌也可以免费,因为谷歌可以通过广告收入来补贴软件,谷歌Adwords具有成熟的生态系统、精准的广告定位和强大的数据跟踪功能,可以给用户提供最佳的投资回报率,而微软并没有一个成熟的广告系统,难以和谷歌的系统进行竞争。

  Windows要免费,就必须在市场占有率不高的时候免费,例如4月3日微软宣布将对9寸以下设备免收Windows授权费,这不过是将免费当成了一种手段。根据IDC提供的数据,2013年的智能手机市场,谷歌Android市场占有率为78.1%,苹果iOS的市场占有率为17.6%,排名第三的Windows Phone市场占有率为3%。免费减少不了多少收益,却可能带来用户。而大部分Windows笔记本和平板电脑都是10寸以上,这些就不适合免费。

  无法从硬件上赚取利润,也难以从广告上获得收入,那么软件就很难免费,这会是一个不可持续的商业模式。因此,对于退役的Windows XP来说,虽然其海量的用户资源流失对于微软来说很可惜,但微软也不可能采取“杀鸡取卵”的免费模式来留住这些用户。
 

2014年4月8日星期二

谷歌将推出智能电视Android TV

  导语:美国科技博客The Verge周末刊文称,谷歌最新的智能电视平台Android TV已经曝光。与此前遭遇失败的Google TV不同,谷歌此次将专注于简单的电视界面、应用和游戏。

  以下为文章全文:

  一些企业计算公司常常会宣称,已经解决了电视机产品存在的问题。这些公司会说,它们已将枯燥的电视终端变成了智能计算平台,将你的工作和游戏转移至尺寸更大的屏幕。然而,这样的产品往往难以获得成功。这要么是因为缺乏内容,要么是因为带来的体验令人迷惑。这就是Google TV的故事。谷歌原本希望Google TV成为新的电视机平台,但最终却沦为行业笑柄。

  这些公司从失败中获得的经验似乎是,目前没有必要去“解决”电视机存在的问题。而正确的做法是以与过去一样的方式向用户提供他们想要的内容。

  因此,Android TV应运而生。

谷歌将推出智能电视Android TV

  更加简洁

  根据The Verge获得的文件,谷歌即将推出新的智能电视平台Android TV。目前,主流视频应用开发商正在这一平台上进行开发。Android TV听起来仅仅是用词不同,毕竟Google TV也基于Android系统。但实际上,Android TV与此前的产品有很大差别,不再尝试将用户的电视机变成大尺寸智能手机。谷歌表示:“Android TV是一个娱乐界面,而非计算平台。其目的是帮助用户无障碍地寻找并享受内容。”这款产品“能带来电影的感受,充满乐趣,流畅且速度很快”。

  那么这意味着什么?这意味着,Android TV的界面和用户体验将类似于市场上的其他机顶盒产品,包括苹果公司的Apple TV、亚马逊的Fire TV和Roku。

  谷歌对Android TV的目标不再像以往一样远大,因此更容易被用户理解。在一个极简的机顶盒界面中,谷歌正吸引开发者开发简单的电视应用。这一界面仍采用Android系统,包含了一系列滚动“卡片”,代表电影、电视剧、应用和游戏。用户可以使用遥控器四方向键的左右按键选择不同建议,或使用上下按键选择不同类型的内容。与其他机顶盒类似,每个条目都像是缩小的电影海报或图书封面,用户可以在其中选择。遥控器还提供了“确定”、“主页”和“后退”按钮,帮助用户导航。此外,Android TV还将提供“可选”的游戏手柄。

  Android TV还将支持语音输入和通知功能。不过,谷歌希望开发者只在有限的场景中使用通知。整体而言,Android TV非常类似亚马逊刚刚发布的、同样基于Android系统的Fire TV。

  专注于内容

  Android TV的不同之处在于,这一平台将在主页屏幕上推荐内容。尽管用户可以在不同的应用和游戏进行选择,但Android TV的目的并不是让用户打开Hulu等应用,并在应用中寻找想要的内容。在用户打开Android TV后,谷歌希望更积极地向用户推荐内容,甚至包括继续观看此前在Android手机和平板电脑上没有看完的视频。

  谷歌的一份文件显示:“内容的获取应当简单而具有魔力。”而从打开主页屏幕到开始播放内容不应当超过3次点击。对于直观地理解操作以及尽快地获得内容而言,搜索也不是最好的方式。不过,搜索仍将是Android TV的主要工具。除了通用搜索之外,点击遥控器上的“搜索”按钮也可以实现单独应用中的搜索。

  如果这些文件中的信息是准确的,那么谷歌正在与多家应用开发商合作,为Android TV开发应用和游戏,并鼓励开发者采用更具一致性的界面。我们获得的屏幕截图显示了谷歌的自主应用,例如Play Movies、YouTube和Hangouts,以及多款第三方应用,包括Vevo、Netflix、Hulu、Pandora,以及一些游戏。

  谷歌表示:“Android TV就是针对客厅电视观看体验而优化的Android。”但目前的关注重点在于简洁性。谷歌移除了Android系统中一些不必要的功能,包括电话、摄像头、对触摸屏的支持,以及近场通信,向开发者提供了一个准备好的界面,帮助他们在其上提供电视剧、游戏、照片、音乐和电影服务。或许仍有一些创新方式去利用大尺寸屏幕,不过出发点仍是用户躺在沙发上看电视。

  与Chromecast共存

  不过,Android TV奇怪的一点是,谷歌已拥有了一款类似的产品,即售价35美元的Chromecast电视棒。谷歌曾传达了这样的信息:开发者没有必要专门为电视机开发应用,特殊的电视版网页将可以接收来自手机的指令。The Verge认为,Chromecast电视棒不会就此消失,这意味着开发者可能需要同时开发两个界面,分别针对Chromecast和Android TV。

  Android TV或许也向谷歌的硬件合作伙伴传达了消息,例如目前正使用webOS系统开发智能电视的LG。早些时候有报道称,谷歌将自主开发Android TV,这意味着该公司将直接与硬件合作伙伴竞争。因此,谷歌的合作伙伴将需要选择是继续与谷歌合作,还是尝试自己的客厅解决方案。

  目前,Android TV听起来似乎并没有胜过Roku、Apple TV和Fire TV,以及Xbox One和PS 4。在Google TV遭遇失败之后,许多人都开始对谷歌提出质疑。不过正如亚马逊所证明的,市场对能提供优秀内容的简单机顶盒仍有巨大的需求。谷歌仍希望开拓客厅市场,而Android TV将是又一次尝试。

DD-WRT刷机完整教程

DD-WRT(简称DD)是一个Linux开源操作系统,实质它是第三方的路由器固件。路由和网管功能非常强大,通常我们使用的路由器设备,都具有一个独立的操作系统(英文简称OS),用于对路由器设备进行各种功能设置和管理。其实我们通常所说的升级路由器固件,也就是指升级刷新路由设备里面的操作系统,以使得路由器设备的功能更加强大。常见的第三方路由器固件还有番茄(Tomato)等。

DD-WRT固件刷机流程如下。

一、为什么要刷DD-WRT?

DD-WRT固件可以实现中继、AP、VPN、VOIP、UPNP、DHCP、端口映射、DDNS、IPv6、SNMP、SSH、计费功能、封杀BT、VLAN划分、调整无线信号发射功率等扩展功能。

二、DD-WRT收费吗?

常规版本都不用收费,但也是特别版需要付费。付费版功能更加强大。如:PPPoE验证、ARP欺骗等。

三、哪些路由器可以刷DD-WRT固件

1、支持刷DD-WRT的路由器种类很多,可以参考官方的硬件支持列表。主要是Broadcom芯片方案的路由器,其他的的也有支持,但是并不是很多。

2、首先要了解自己的路由器是否支持DD-WRT、支持那种版本的DD-WRT。其次刷固件方式,如有特殊说明,一般都会有提示。如有一些路由器就提到只能使用TFTP方法刷,否则有可能不成功!

3、DD-WRT的MINI(迷你版)和STD(标准版)固件大小差不多,Flash(闪存)通常在4M或8M就可以刷标准版或增强版的固件。如果你FLASH(闪存)有8MB的话当然是刷MEGA(完整版)好。对于新手你可以先刷好MINI(迷你版)再升级到其他版本,STD(标准版)固件支持的功能要比MINI(迷你版)的多。

版本介绍:
Micro(最小版) 需要 2MB FLASH
Mini(迷你版) 需要 4MB FLASH
Standard(STD标准版) 需要 4MB FLASH
VOIP(VOIP功能版) 需要4MB FLASH
Mega(完整版) 需要 8MB FLASH

四、需要哪些设备或工具

刷路由器通常不需要特殊设备,电脑一台、网线一根、路由器一台即可。而且大部分路由器刷固件都可以在Web界面进行。

五、固件刷新方法种类

1、路由器自带的Web配置界面刷固件。

2、使用TFTP方法刷。

具体使用那种方法新,请参照DD-WRT硬件支持列表的方法。不过一旦升级到了DD-WRT,以后更新的时候可以通过Web界面进行。

六、采用Web方法刷

确认自己的路由器可否使用Web方式刷新,当然大部分路由器都可以这样做。Web方式刷新其实就是路由器设置菜单里面的“更新路由器固件”功能。虽然不是更新同厂的固件,但是也是可以用的,这种升级方式最为方便。

1、确认路由器支持DD、没有特别刷新方法的说明。本教程是以Linksys WRT150N V1 无线路由器为例。

2、下载适合路由器的固件版本。通常都会支持中文或其他网友发布的汉化。最好准备一份路由器的原厂固件,以备恢复时使用。

注意:如果想要下载最新版本,可以进入Feko目录下载,不过这个目录里的固件不是最终版,属于SVN(Subversion)。如果不是为了尝新或者路由器有兼容问题,建议还是不要这么做了。

3、登录Linksys的管理界面→固件升级,点击“浏览”找到下载的DD-WRT固件。这款路由器提供两种升级方式,一种是常规的“升级”,一种是“安全升级”。

4、后者将进入Boot模式将新的固件加载到路由器上,优点是可以避免内存不足而造成的失败。

5、如果提示刷新失败,建议重启路由器再进行刷新。如果重启后还是失败,那么就得分析具体原因了,看看是不是版本不合适引起的。例如是不是固件太大了,超过路由器的容量等。

七、采用TFTP方法刷

TFTP是Windows内置的一个命令。在命令提示符下进行操作。使用TFTP刷新请用网线把电脑和路由器的LAN口相连接。

1、确认路由器支持DD,且只能用TFTP的刷新方法。然后根据路由器型号、下载对应的DD固件版本。某些路由器刷DD使用TFTP有特别说明,一定要看仔细。

2、在开始菜单中选运行然后输入CMD并回车进入命令提示符。输入ipconfig /all了解当前的路由器的IP地址,一般默认都是192.168.1.1。建议手动分配一个地址。防止重启后IP发生变化。请设置电脑和路由器在同一个网段,例如192.168.1.2。然来将dd-wrt.bin固件文件放到C盘的根目录。

3、假设路由器IP是192.168.1.1,输入命令ping 192.168.1.1 -t并回车看通不通得了,通了就OK。然后重启路由器(通过Web界面)。

4、因为需要在启动的时候刷新,所以先输入tftp -i 192.168.1.1 put dd-wrt.bin,但是先不要敲下回车键。

5、重启路由器(有的路由器非要使用Reset按钮才能进入TFTP模式),按下回车。也有一种说法是看路由器指示灯,当所有指示灯一闪而灭的瞬间,按下回车输入命令。成功之后会出现successful的提示,如果失败就再来一次。出现successful之后,还需要你耐心等待几分钟,不要进行任何操作。

八、刷新失败怎么办?

先断开电源重启、按复位(Reset)键等操作看有没有变化。如果没有变化,试试看用TFTP法刷新。如果还不行,可以去买一条路由器相配套的JTAG线,通过它可以把路由器救活。淘宝有些卖家在质保期内也会提供免费救活服务。

PS: DD-WRT里不要盲目加大功率,毕竟信号太强会对身体有伤害。如果信号够用还可以适当降低标准信号功率,从而减少无线信号对人体的辐射。对有些路由器作用并不大,反而是增加无线干扰或导致无线网卡损坏导致经常断线和无信号,而且这种损害是不可逆的和不能修复的,坏了就成砖头,有可能导致路由报废。请大家切记。

OpenVPN的配置和使用

  OpenVPN是一个用于创建虚拟专用网络加密通道的软件包,允许创建的VPN使用公开密钥、数字证书、或者用户名/密码来进行身份验证。OpenVPN能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Windows 2000/XP/Vista/7以及Android和iOS上运行,并包含了许多安全性的功能。

  配置OpenVPN 2.0的第一步是建立一个PKI(public key infrastructure 公钥基础设施)。PKI包括:

  • 服务端和每个客户端都有一个证书(也称做公钥)和私钥
  • 一个认证机构(CA)的证书和私钥,用来为每一个服务端和客户端颁发证书(sign each of the server and client certificates)。

  OpenVPN 支持基于证书的双向认证,也就是说客户端需认证服务端,服务端也要认证客户端,

  服务端和客户端验证对方的第一步是验证对方提供的证书是由认证机构(CA)颁发的。然后测试第一步认证通过的证书的头部信息,如:证书的common name,证书的类型(客户端还是服务端)。

  从VPN的观点来看,这一安全模式满足一系列要求:

  • 服务端仅仅需要它自己的证书/私钥对 -- 它不需要知道客户端的证书。
  • 服务端仅仅接受拥有CA颁发的证书的客户端。因为服务端检查证书是否由CA颁发时并不需要访问 CA的私钥,这样就可以将CA的私钥(整个PKI中最重要的私钥)放在另一台机子上。
  • 如果一个私钥(is compromised),通过将它的证书加入CRL(证书吊销列表)可以禁止这一私钥。 CRL允许有选择地拒绝compromised 证书而不需要重建整个PKI。
  • 基于嵌入的证书域比如Vommon Name,服务端能够加强客户端待定(client-specific)访问权限 (access fights)。

生成认证机构(master Certificate Authority(CA))证书 & 私钥

  在这一节我们生成一个认证机构(master CA)证书/私钥,一个服务端证书/私钥,两个客户端的证书/私钥。

  我们使用OpenVPN捆绑的一组脚本。

  在Linux下打开一个Sehll,进入OpenVPN下的easy-rsa目录。如果OpenVPN是从RPM包安装的,easy-rsa目录通常在/usr/share/doc/packages/openvpn或/usr/share/doc/openvpn-2.0目录下(最好在改动之前将这一目录拷到别的地方,比如/etc/openvpn,以免以后OpenVPN的升级覆盖所做的改动)。

  在Windows下,打开一个命令行窗口进入\Program Files\OpenVPN\easy-rsa目录,运行下面的批处理文件将配置文件拷到正确的位置(这一命令会覆盖先前存在的vars.bat和openssl.cnf文件)。

init-config

  编辑vars文件(在Windows下是vars.bat)设置KEY_COUNTRY、KEY_PROVINCE、 KEY_CITY, KEY_ORG和KEY_EMAIL参数,这些参数不能有一个是空白。

  下一步,初始化PKI,Linux下:

. ./vars
./clean-all
./build-ca

  Windows下:

vars
clean-all
build-ca

  最后命令(build-ca)通过调用交互地openssl命令生成认证机构(CA)的证书和私钥。

ai:easy-rsa # ./build-ca
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to ''ca.key''
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ''.'', the field will be left blank.
-----
Country Name (2 letter code) [KG]:
State or Province Name (full name) [NA]:
Locality Name (eg, city) [BISHKEK]:
Organization Name (eg, company) [OpenVPN-TEST]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server''s hostname) []:OpenVPN-CA
Email Address [me@myhost.mydomain]:

  上面的序列中,大多数询问参数的默认值是在vars或vars.bat文件中设定的值。唯一一个需要明确输入的参数是Common Name,上面的例子中输入的是"OpenVPN-CA"。

为服务端生成证书&私钥

  为服务端生成证书和私钥。Linux/BSD/Unix:

./build-key-server server

  Windows:

build-key-server server

  和前面的一步类似,大多数参数可以保持默认值。当询问Common Name时,输入"server" 。另外两个回答"y"的问题,"Sign the certificate? [y/n]"和"1 out of 1 certificate requests certified, commit? [y/n]"。
Two other queries require positive responses, "Sign the certificate? [y/n]" and "1 out of 1 certificate requests certified, commit? [y/n]".

为3个客户端生成证书&私钥

  生成客户端证书和前一步类似。Linux/BSD/Unix:

./build-key client1
./build-key client2
./build-key client3

  Windows:

build-key client1
build-key client2
build-key client3

  如果你想使用口令保护你的客户端私钥,则使用build-key-pass脚本而不是build-key。

  为每个客户端输入适合的Common Name,也就是"client1", "client2", "client3"。总是为每个客户端指定一个独一无二的名字。

生成 Diffie Hellman 参数

  必须为OpenVPN服务端生成 Diffie Hellman 参数。Linux/BSD/Unix:

./build-dh

  Windows:

build-dh

  输出:

ai:easy-rsa # ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.................+...........................................
...................+.............+.................+.........
......................................

密钥文件

  在keys目录下生成的私钥和证书。下面是这些文件的解释:

  

文件名 需要者
Needed By
说明
Purpose
秘密
Secret
ca.crt 服务端和所有客户端
server + all clients
根证书
Root CA certificate

NO
ca.key 签发私钥的机器 
key signing machine only
根私钥 
Root CA key

YES
dh{n}.pem 服务器
server only
Diffie Hellman parameters
NO
server.crt 服务器
server only
服务器证书
Server Certificate

NO
server.key 服务器
server only
服务器私钥
Server Key

YES
client1.crt client1 only Clinet1的证书
Client1 Certificate

NO
client1.key client1 only Clinet1的私钥
Client1 Key

YES
client2.crt client2 only Client2的证书
Client2 Certificate

NO
client2.key client2 only Client2的私钥
Client2 Key

YES
client3.crt client3 only Client3的证书
Client3 Certificate

NO
client3.key client3 only Client3的私钥
Client3 Key

YES

  生成密钥的最后一步是将密钥文件拷到需要它们的机器上。


为服务端和客户端创建配置文件

得到例子配置文件 Getting the sample config files

  最好用OpenVPN的例子配置文件作为你自己配置文件的起点。 这些文件在以下目录

  • OpenVPN源代码包的sample-config-files目录
  • 如果从RPM安装,/usr/share/doc/packages/openvpn 或 /usr/share/doc/openvpn-2.0目录下的 sample-config-files目录
  • Windows,Start Menu -> All Programs -> OpenVPN -> OpenVPN Sample Configuration Files

  在Linux, BSD, or unix操作系统中,样例配置文件是server.conf和client.conf。 在Windows下是server.ovpn and client.ovpn。

编写服务端配置文件

  样例配置文件使用虚拟TUN网络接口(路由模式for routing)创建一个VPN,它在 UDP端口1194(OpenVPN的官方端口)上监听客户端连接请求,并且从10.8.0.0/24 子网为连接的客户端分配虚拟地址。

  使用样例配置文件之前,首先要编辑ca、cert、key 和dh 参数,使之指向你在上一节PKI中生成的文件。

  这时服务端配置文件就可以使用了,也可以进一步修改它:

  • 如果你使用以太网桥,则必须使用 server-bridge和dev tap而不是 server和dev tun。
  • 如果想让OpenVPN服务端监听一个TCP端口而不是UDP端口, 使用proto tcp而不是proto udp
  • 如果你想使用不同于10.8.0.0/24的一个虚拟IP地址范围,则修改 server项。记住这一虚拟IP地址范围必须是在你的网络上没有使用的。
  • 如果想让连接的客户端可以通过VPN互相访问,将client-to-client的注释去掉。 默认情况下客户端只能访问服务端。
  • 如果你使用的是Linux、BSD或Unix,则可以将user nobody和group nobody 的注释去掉以增强安全性。

  如果想在同一台机器上运行多个OpenVPN,每个VPN使用一个不同的配置文件, 是可以做到的:

  • 每个VPN实例使用一个不同的port号(UDP和TCP使用不同的端口空间,所以 可以让一个VPN监听UDP-1194,另一个监听TCP-1194)。
  • 如果在Windows下运行,则每一个OpenVPN配置都需要有一个自己的TAP-Win32虚拟网卡。可以使用Start Menu -> All Programs -> OpenVPN -> Add a new TAP-Win32 virtual ethernet adapter来增加TAP-Win32虚拟网卡。
  • 如果你运行了多个OpenVPN,记住编辑指定输出文件的指令,避免一个VPN覆盖另一个VPN 的输出文件。这些指令包括log、log-append、 status和ifconfig-pool-persist。

编写客户端配置文件

  客户端配置文件的例子(client.conf Linux/BSD/Unix或client.ovpn Windows) 和服务端配置文件的例子相对应。

  •   象服务端配置文件一样,首先编辑ca、cert和key 参数使之指向你在上一节PKI生成的文件。每一个客户端有自己的cert/key对。只有ca文件在服务端和所有客户端之间是通用的。

  •   下一步,编辑remote指令使之指向服务端的主机名/IP地址和端口号。 (如果OpenVPN服务端运行在firewall/NAT-gateway之后的一台单网卡机子上,则使用网关的公用IP地址,和你在网关上配置的向OpenVPN服务端转发的端口)。

  •   最后,确保客户端配置文件和服务端配置文件中指令的的一致性。主要检查的是 dev(tun/tap)和proto(udp/tcp)。还有comp-lzo和 fragment(如果使用了)则在客户端和服务端的配置文件中都必须提供。


启动并测试VPN的初始连接

启动服务端

  首先,确保OpenVPN服务端能从internet访问。这意味着:

  • 防火墙打开UDP端口1194(或者你配置的任意TCP/UDP端口)。
  • 设置一个端口转发规则,将UDP端口1194从防火墙/网关转发到运行OpenVPN服务端的机子。 
     

  下一步,确保TUN/TAP虚拟网卡没有被屏蔽。 

  为了减少错误,最好从命令行启动OpenVPN服务端(或者在Windows下,右击.ovpn文件), 不要将其作为后台或服务运行。 

一个服务端的启动过程:
Sun Feb  6 20:46:38 2005 OpenVPN 2.0_rc12 i686-suse-linux [SSL] [LZO] [EPOLL] built on Feb  5 2005
Sun Feb 6 20:46:38 2005 Diffie-Hellman initialized with 1024 bit key
Sun Feb 6 20:46:38 2005 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sun Feb 6 20:46:38 2005 TUN/TAP device tun1 opened
Sun Feb 6 20:46:38 2005 /sbin/ifconfig tun1 10.8.0.1 pointopoint 10.8.0.2 mtu 1500
Sun Feb 6 20:46:38 2005 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2
Sun Feb 6 20:46:38 2005 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:23 ET:0 EL:0 AF:3/1 ]
Sun Feb 6 20:46:38 2005 UDPv4 link local (bound): [undef]:1194
Sun Feb 6 20:46:38 2005 UDPv4 link remote: [undef]
Sun Feb 6 20:46:38 2005 MULTI: multi_init called, r=256 v=256
Sun Feb 6 20:46:38 2005 IFCONFIG POOL: base=10.8.0.4 size=62
Sun Feb 6 20:46:38 2005 IFCONFIG POOL LIST
Sun Feb 6 20:46:38 2005 Initialization Sequence Completed

启动客户端

  和服务端一样,最好从命令行(或在Windows下右击client.ovpn文件)启动OpenVPN。

Windows下客户端的启动和上面的服务端启动类似,并且最后以 Initialization Sequence Completed 消息结束。

  现在,从客户端通过VPN发送ping包,如果你使用路由模式(服务端配置文件里是dev tun),输入下面命令: 

  如果使用桥接模式(服务端配置文件是dev tap),尝试ping服务端所在子网的某台机子的IP地址。 

  如果ping成功,祝贺你!你已经有了一个能正常工作的VPN。  

常见问题

  如果ping失败,或者OpenVPN客户端初始化失败,请检查下列现象和解决办法:  

  •   错误信息: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity). 这个错误表示客户端不能和服务端建立网络连接。

      解决方法:

    • 保证客户端使用允许其访问到OpenVPN服务端的主机名/IP地址和端口号。
    • 如果OpenVPN服务端是受保护的LAN内的单网卡机子,确保在服务端网关防火墙上使用了正确的端口转发规则。假如你的OpenVPN的IP地址是防火墙内的192.168.4.4,在UDP端口1194上监听客户端连接。服务于192.168.4.x子网上的NAT网关应该有一条端口转发规则: forward UDP port 1194 from my public IP address to 192.168.4.4。 
       
    • 打开服务端的防火墙允许到UDP端口1194(或者别的你在服务端配置文件中指定的TCP/UDP端口)的连接。 
       
  •   错误信息: Initialization Sequence Completed with errors -- 这一错误可能出现在windows 下,(a)DHCP客户端服务没有运行,(b)在XP SP2上使用了第三方的个人防火墙。  

      解决办法: 启动DHCP客户端服务,确保使用的个人防火墙和XP SP2能正常工作。  

  •   得到了Initialization Sequence Completed消息,但是ping失败了 -- 这通常是服务端或客户端上的防火墙过滤了TUN/TAP网络接口从而阻止了VPN网络的流量。  

      解决办法: 禁止客户端的防火墙(如果有的话)过滤TUN/TAP网络接口。例如在Windows下,你可以到Windows Security Center -> Windows Firewall -> Advanced取消对应于TAP-Win32网卡的选择(禁止客户端防火墙过滤TUN/TAP网卡从安全角度来看通常是合理的,因为你本来已经告诉防火墙不要阻止授权的VPN流量)。同样确保服务端TUN/TAP接口没有被防火墙过滤,  

  •   当使用proto udp时,连接在启动时停止,服务端的日志文件中有如下一行:  

    TLS: Initial packet from x.x.x.x:x, sid=xxxxxxxx xxxxxxxx

      但是在客户端的日志中却并没有等价的一行。   

      解决办法: 你有客户端到服务端的单向连接。服务端到客户端的连接被防火墙(通常是在客户端一侧)阻止了。防火墙可能是(a)客户端上运行个人软件防火墙,或者(b)是对客户端的NAT路由网关。修改防火墙设置允许服务端返回的UDP包到达客户端。 

  来源:guest_server投稿。

2014年4月6日星期日

DNS攻击原理与防范

  随着网络的逐步普及,网络安全已成为INTERNET路上事实上的焦点,它关系着INTERNET的进一步发展和普及,甚至关系着INTERNET的生存。可喜的是我们那些互联网专家们并没有令广大INTERNET用户失望,网络安全技术也不断出现,使广大网民和企业有了更多的放心,下面就网络安全中的主要技术作一简介,希望能为网民和企业在网络安全方面提供一个网络安全方案参考。

  DNS的工作原理

  DNS分为Client和Server,Client扮演发问的角色,也就是问Server一个Domain Name,而Server必须要回答此Domain Name的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的DNS询问,依此得到答案之后,将收到的答案存起来,并回答客户。

  DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。

  在每一个名称服务器中都有一个快取缓存区(Cache),这个快取缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录在快取缓存区中,这样当下一次还有另外一个客户端到次服务器上去查询相同的名称 时,服务器就不用在到别台主机上去寻找,而直接可以从缓存区中找到该笔名称记录资料,传回给客户端,加速客户端对名称查询的速度。例如:

  当DNS客户端向指定的DNS服务器查询网际网路上的某一台主机名称 DNS服务器会在该资料库中找寻用户所指定的名称 如果没有,该服务器会先在自己的快取缓存区中查询有无该笔纪录,如果找到该笔名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端 ,如果名称服务器在资料记录查不到且快取缓存区中也没有时,服务器首先会才会向别的名称服务器查询所要的名称。例如:

  DNS客户端向指定的DNS服务器查询网际网路上某台主机名称,当DNS服务器在该资料记录找不到用户所指定的名称时,会转向该服务器的快取缓存区找寻是否有该资料 ,当快取缓存区也找不到时,会向最接近的名称服务器去要求帮忙找寻该名称的IP地址 ,在另一台服务器上也有相同的动作的查询,当查询到后会回复原本要求查询的服务器,该DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机名称及对应IP地址记录到快取缓存区中 ,最后在将所查询到的结果回复给客户端

  常见的DNS攻击包括:

  1) 域名劫持

  通过采用黑客手段控制了域名管理密码和域名管理邮箱,然后将该域名的NS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容。

  这显然是DNS服务提供商的责任,用户束手无策。

  2) 缓存投毒

  利用控制DNS缓存服务器,把原本准备访问某网站的用户在不知不觉中带到黑客指向的其他网站上。其实现方式有多种,比如可以通过利用网民ISP端的DNS缓存服务器的漏洞进行攻击或控制,从而改变该ISP内的用户访问域名的响应结果;或者,黑客通过利用用户权威域名服务器上的漏洞,如当用户权威域名服务器同时可以被当作缓存服务器使用,黑客可以实现缓存投毒,将错误的域名纪录存入缓存中,从而使所有使用该缓存服务器的用户得到错误的DNS解析结果。

  最近发现的DNS重大缺陷,就是这种方式的。只所以说是“重大”缺陷,据报道是因为是协议自身的设计实现问题造成的,几乎所有的DNS软件都存在这样的问题。

  3)DDOS攻击

  一种攻击针对DNS服务器软件本身,通常利用BIND软件程序中的漏洞,导致DNS服务器崩溃或拒绝服务;另一种攻击的目标不是DNS服务器,而是利用DNS服务器作为中间的“攻击放大器”,去攻击其它互联网上的主机,导致被攻击主机拒绝服务。

  4) DNS欺骗

  DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。

  原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。

  现在的Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,就是BIND会缓存(Cache)所有已经查询过的结果,这个问题就引起了下面的几个问题的存在.

  DNS欺骗

  在DNS的缓存还没有过期之前,如果在DNS的缓存中已经存在的记录,一旦有客户查询,DNS服务器将会直接返回缓存中的记录

  防止DNS被攻击的若干防范性措施

  互联网上的DNS放大攻击(DNS amplification attacks)急剧增长。这种攻击是一种数据包的大量变体能够产生针对一个目标的大量的虚假的通讯。这种虚假通讯的数量有多大?每秒钟达数GB,足以阻止任何人进入互联网。

  与老式的“smurf attacks”攻击非常相似,DNS放大攻击使用针对无辜的第三方的欺骗性的数据包来放大通讯量,其目的是耗尽受害者的全部带宽。但是,“smurf attacks”攻击是向一个网络广播地址发送数据包以达到放大通讯的目的。DNS放大攻击不包括广播地址。相反,这种攻击向互联网上的一系列无辜的第三方DNS服务器发送小的和欺骗性的询问信息。这些DNS服务器随后将向表面上是提出查询的那台服务器发回大量的回复,导致通讯量的放大并且最终把攻击目标淹没。因为DNS是以无状态的UDP数据包为基础的,采取这种欺骗方式是司空见惯的。

  这种攻击主要依靠对DNS实施60个字节左右的查询,回复最多可达512个字节,从而使通讯量放大8.5倍。这对于攻击者来说是不错的,但是,仍没有达到攻击者希望得到了淹没的水平。最近,攻击者采用了一些更新的技术把目前的DNS放大攻击提高了好几倍。

  当前许多DNS服务器支持EDNS。EDNS是DNS的一套扩大机制,RFC 2671对次有介绍。一些选择能够让DNS回复超过512字节并且仍然使用UDP,如果要求者指出它能够处理这样大的DNS查询的话。攻击者已经利用这种方法产生了大量的通讯。通过发送一个60个字节的查询来获取一个大约4000个字节的记录,攻击者能够把通讯量放大66倍。一些这种性质的攻击已经产生了每秒钟许多GB的通讯量,对于某些目标的攻击甚至超过了每秒钟10GB的通讯量。

  要实现这种攻击,攻击者首先要找到几台代表互联网上的某个人实施循环查询工作的第三方DNS服务器(大多数DNS服务器都有这种设置)。由于支持循环查询,攻击者可以向一台DNS服务器发送一个查询,这台DNS服务器随后把这个查询(以循环的方式)发送给攻击者选择的一台DNS服务器。接下来,攻击者向这些服务器发送一个DNS记录查询,这个记录是攻击者在自己的DNS服务器上控制的。由于这些服务器被设置为循环查询,这些第三方服务器就向攻击者发回这些请求。攻击者在DNS服务器上存储了一个4000个字节的文本用于进行这种DNS放大攻击。

  现在,由于攻击者已经向第三方DNS服务器的缓存中加入了大量的记录,攻击者接下来向这些服务器发送DNS查询信息(带有启用大量回复的EDNS选项),并采取欺骗手段让那些DNS服务器认为这个查询信息是从攻击者希望攻击的那个IP地址发出来的。这些第三方DNS服务器于是就用这个4000个字节的文本记录进行回复,用大量的UDP数据包淹没受害者。攻击者向第三方DNS服务器发出数百万小的和欺骗性的查询信息,这些DNS服务器将用大量的DNS回复数据包淹没那个受害者。

  如何防御这种大规模攻击呢?首先,保证你拥有足够的带宽承受小规模的洪水般的攻击。一个单一的T1线路对于重要的互联网连接是不够的,因为任何恶意的脚本少年都可以消耗掉你的带宽。如果你的连接不是执行重要任务的,一条T1线路就够了。否则,你就需要更多的带宽以便承受小规模的洪水般的攻击。不过,几乎任何人都无法承受每秒钟数GB的DNS放大攻击。

  因此,你要保证手边有能够与你的ISP随时取得联系的应急电话号码。这样,一旦发生这种攻击,你可以马上与ISP联系,让他们在上游过滤掉这种攻击。要识别这种攻击,你要查看包含DNS回复的大量通讯(源UDP端口53),特别是要查看那些拥有大量DNS记录的端口。一些ISP已经在其整个网络上部署了传感器以便检测各种类型的早期大量通讯。这样,你的ISP很可能在你发现这种攻击之前就发现和避免了这种攻击。你要问一下你的ISP是否拥有这个能力。

  最后,为了帮助阻止恶意人员使用你的DNS服务器作为一个实施这种DNS放大攻击的代理,你要保证你的可以从外部访问的DNS服务器仅为你自己的网络执行循环查询,不为任何互联网上的地址进行这种查询。大多数主要DNS服务器拥有限制循环查询的能力,因此,它们仅接受某些网络的查询,比如你自己的网络。通过阻止利用循环查询装载大型有害的DNS记录,你就可以防止你的DNS服务器成为这个问题的一部分。

  结束语:网络攻击越来越猖獗,对网络安全造成了很大的威胁。对于任何黑客的恶意攻击,都有办法来防御,只要了解了他们的攻击手段,具有丰富的网络知识,就可以抵御黑客们的疯狂攻击。一些初学网络的朋友也不必担心,因为目前市场上也已推出许多网络安全方案,以及各式防火墙,相信在不久的将来,网络一定会是一个安全的信息传输媒体。特别需要强调的是,在任何时候都应将网络安全教育放在整个安全体系的首位,努力提高所有网络用户的安全意识和基本防范技术。这对提高整个网络的安全性有着十分重要的意义。

  来源:投稿,作者:鲨鱼加速器