2019年5月5日星期日

博客新站已开通

新站已开。 本站可能不再更新。 欢迎访问新站。
新站地址 https://blog.wangxuan.name

2014年2月22日星期六

云计算时代的个人网络安全保护

 

云计算时代的个人网络安全保护

2014222

22:48

中国人似乎总是对钱看得最重,支付宝安全不安全,在网上能吵翻天。但是在云计算时代,毁掉一个人的数字生活也足够损失惨重的。以前盗个QQ号最多去好友那里骗钱,现在可以删光你微云网盘里的文件,或者利用里面的私密文档对其它人进行攻击;从你QQ通讯录和微信里找到好友的联系方式,对他们进行下一步社工攻击。

仅此而已吗?其实还可以做更多

 

最近看了两个例子

http://www.wired.com/gadgetlab/2012/08/apple-amazon-mat-honan-hacking/

https://medium.com/cyber-security/24eb09e026dd

我简要叙述一下被黑的哥们的遭遇:

第一个哥们的后果:损失了AppleID Google twitter amazon等几乎全部网络帐户。iphoneMac被攻击者远程使用Find my phone抹去了所有资料。这算得上非常惨了――幸而黑客并不是为钱来打劫的,不然黑客可以做更多。第二个哥们同样丢了一串帐户。

我再简单说下黑客的路径:

在第一个故事中,黑客首先打电话给amazon,提供了姓名 email地址和帐单址之后,声称要添加一张新的信用卡。amazon不校验密码就通过了。然后,黑客再打电话给amazon声称email丢了,于是amazon要求提供信用卡号码以证明身份,就这样重置了amazon帐户的email地址。再用新的email地址重置密码,登录之后看到了原信用卡号后四位。再打电话给AppleApple不校验安全问题,仅仅通过信用卡号后四位和帐单地址,就允许黑客重置密码。然后黑客登进Apple帐户,抹了失主的所有资料。接着,因为失主的GMail绑定的安全邮箱是苹果的me.comGMail也沦陷了,然后是其它帐户。所有这一切,仅仅通过打电话就搞定了。

第二个故事中,黑客给Paypal打电话,虽然没骗到paypal帐户,但是paypal接线员直接告诉了黑客信用卡号后四位。接着GoDaddy允许黑客仅通过信用卡号后六位就重置帐户密码。拿到GoDaddy帐户之后,修改了失主的域名的DNSwhois信息。而失主几乎所有的网站帐户都用自己的域名邮箱绑定,自然一并沦陷。

 

现在,Win8使用微软帐户登录,Android使用Google帐户登录,iphone/Mac使用AppleID登录。你的个人文件放在各种网盘里,手机上的各种流氓软件读取了你的通讯录。如果你遭到了攻击,最坏的可能性是什么?损失你所有的网站帐户,互联网上再没有你这个人;用你的敏感文件和照片对你要胁;甚至黑客直接获取你系统的最高权限,植入木马攻破网银支付宝轻而易举。用你这里获得的其它人的信息去给别人打电话,或者骗取别人的网络帐号。这非常可怕。

 

在上面两个故事中,被害人都没有丢失自己的密码。黑客并没有进攻防护严密的地方,而是从整个安全链条中最薄弱的一环切入。从他们的故事中,我们能得到什么教训呢?我试图按重要性的先后来谈谈

第一,注意保护好自己的个人信息,不仅仅是那些常用在密保问题里的信息(以上两个故事中,密保问题根本就没有发挥作用!),还包括你的姓名、email、住址、信用卡号(哪怕是部分)、手机号、身份证号等。

如果可能的话,在不同的网站使用不同的信用卡号、手机号、email,可以减少被攻击得手的可能性。

需要身份证号的网站,能不注册就不要注册。(比如说,一些需要身份证号预约领票的博物馆)

付款时,除常用的可信任服务外,能用支付宝/Paypal就不要用信用卡直接付,能用网银就别走VISA/MasterCard通道。

第二,不能给人攻破一个帐户就拿下全部帐户的机会。用A帐户做B帐户的密保,B帐户做C帐户的密保是极不可取的。更不可取的是用一个帐户做所有帐户的密保邮箱。(同样,也绝不能令所有服务仅凭手机就可以进入)

第三,最重要的服务(比如说你的微软帐户和AppleID)之间尽可能减少交叉。除了不能用它们互相做密保之外,最好密保邮箱都各不相同。

第四,最重要的服务,及它们的密保服务,一定要开启两步验证安全措施,不能允许仅凭手机或密保邮箱就重置帐户。(举例,这两个失主如果开启了Google的两步验证,就不会丢Google帐户了)

第五,安全性高的服务可以做安全性低的服务的密保,反之不允许。(举例,不能用域名邮箱做密保邮箱。因为GoDaddy帐户安全性低于GMail,用域名邮箱保GMail是本末倒置)

第六,访问重要服务时必须使用https等加密连接,证书验证出现问题时最好不要继续。

 

哪些是"最重要的服务"呢?我想,至少有以下几类:

可获取你设备控制权的服务:Google Microsoft Apple Amazon Motorola HTC等服务

存储大量个人资料的帐户:网盘(如果放有个人文档)、有通讯录读取权限的软件、可获取你位置的软件

涉及金钱的服务:支付宝、京东、amazonPaypal

涉及业务的服务:域名注册商、公司/单位邮箱、服务器托管商

特别是,如果一个帐户具有以上前三方面的所有特征(比如Google Microsoft Apple Amazon)(国内的话,一些企业也在试图用一个帐户做所有事情),要给予能想到的最好的安全措施。

(不知道苹果的安全措施改善没有,如果仍然像故事中这样不堪一击,我建议大家都不要用苹果的东西。苹果不是互联网企业,iCloud显然也不具有企业级安全性。)

 

云计算时代是巨头挤压个人自由、隐私和安全的时代。这其中最用心不良的公司之一就是Google。浪潮已经来了,很难像RMS一样独善其身,完全不用这些服务。愿大家都能注意自己的安全――虽然我们在NAS面前都是裸的,但是总归增加一点虚妄的安全感吧。

2013年3月16日星期六

Win下的Unix子环境――SUA,从安装到设置入门

Win下的Unix子环境――SUA,从安装到设置入门

Windows往往被很多Linux爱好者鄙视。然而WinNT内核是一个强大的内核。完全可以用Unix的工作方式来玩Windows。早年的Win2k支持三个子系统:WindowsOS/2UNIX。现今OS/2已经没人用了,但UNIX子系统仍然保留在Win7Windows Server 2012当中,这就是SUASubsystem for UNIX based Applications

由于SUA的存在,Windows已是一个POSIX兼容系统。这给我们带来很多好处:讨厌cmd的糟糕语法,想用Bash来控制windows?没有问题!在WindowsUnix-like系统之间互相SSH登录?没有问题!习惯了grepsedawkviwcUnix实用程序?更没有问题!

归根到底,UNIX模式是一种操作方式,一种较为高效的工作方式,一种在许多领域根深蒂固的使用习惯。只要符合POSIX标准,下面的内核到底是 LinuxGNU hurdBSD还是WinNT,又有什么所谓呢?(注:这句话的说法其实不严谨,POSIX标准包含很多方面。Windows至少实现了在源代码和Shell等工具软件层面的POSIX兼容,对于一般用户已经足够。)

SUA适合以下这些用户:喜欢或被迫使用Unix-like工作环境,同时又有在Win平台下无法割舍的软件,觉得Wine和虚拟机都不尽如人意。或者仅仅是被Linux对自己笔记本糟糕的驱动支持搞毛了,不想风扇嗡嗡机身发烫。其实,SUA之外还是有些工具可选的,但可能你并不喜欢它们:玩过cygwin但讨厌它的效率低下和时不时出bugMingWXmanagerputty都只是某个领域的专门工具而不能提供完整的Unix操作体验。

下面本文将简单介绍SUA的一些入门知识。由于我使用SUA的时间也不长,本文仅仅能起到一个简单介绍的作用,更多地是给自己的一份参考笔记,如果能引起读者的兴趣和让读者在尝试时少走些弯路,那就很好了。

SUA的优缺点:

相对于cygwin这样的第三方工具,SUA是官方原生子系统,高效稳定,与系统结合紧密。可以直接调用Windows下的程序,Win下的cmd也可以直接启动SUA下的程序(无需exe扩展名,只看是否有x权限)。然而SUA不能显示非ASCII字符是一个讨厌的问题(也许有办法,但我没找到)。由于挂载文件系统不归子系统层面,要支持EXT文件系统当然还得另想办法。也不直接支持Win的反斜杠路径格式,需要转换一下。

SUA的安装

 

打开系统功能

打开或关闭Windows功能

基于UNIX的应用程序子系统

重启

下载最新的SUA基本安装包

直接从开始菜单中给出的地址下载即可

不一定需要下64位的, 不过即使下64位的, 大部分程序也是32位的

必须以Administrator安装(否则无法使用su功能)

先在lusrmgr.msc里启用Administrator

再更改Administrator和自己用户的主文件夹(所有用户全改了更好)

属性-配置文件-主文件夹

不要改配置文件路径!

最好改成自己真正的home目录 C:\user\username, 否则ssh密钥什么的都会因为目录权限不够安全而拒绝创建。

不用此路径,则需要自己设置目录权限

安装的时候除了base, 其它的原则上都不大需要, 因为都可以升级。全装也没坏处

有三个可选选项:SuToRootseuid必须要允许, 是否文件名区分大小写看情况

SuToRoot允许你使用susudo命令

文件名区分大小写之后,Windows下也会受影响,不喜欢就不用开

安装之后:

默认只提供Korn ShellC Shell,没有Bash(会是因为GPL么?)UNIX基本工具软件一般都有,但版本较为古老。如果需要升级或者安装新的软件,请往下看。

提供gcc,但默认的CC则是Visual C++cl.exe的一个ksh包装。使用CC之前需要安装VC。如果是VC678(2005)这三个版本,CC会自动从注册表中找到cl.exe的位置。如果用的更新一点的VC,则需要配置SUA下的PATH变量。使用上述老版VC,还可以安装VC上的SUA debug插件。

 

预编译软件包的安装

安装其它软件(分两种情况讨论)

一、仅仅自己手工安装几个需要用的软件:

安装包管理器

http://www.suacommunity.com/pkg_install.htm

下载bootstrap,在Administrator下安装(也可以su安装)

安装需要的软件

su或者直接进Administrator

pkg_update -L 包名称 #例如openssh

会自动分析依赖关系并下载所有安装包。

没有断点续传, 一断就挂, 断了只能ctrl c重来,网络环境不好的话让人想杀人

如果网络太差,可以考虑自己下载安装包,然后通过pkg_add命令来安装。

二、直接安装大而全的软件包:

http://www.suacommunity.com/bundles.aspx

一般来说PowerUsers bundles就够了,sudo等少数程序可以再自己装。

su或者Administrator安装

Xming可以用它提供的, 亦可以自己下载安装

装完之后再装sudo

pkg_update -L sudo

32还是64?

64bundles里面只有纯64位软件, 有部分软件没有提供纯64位版本, 故而没有包含在64bundles中。这些需要自己手工编译或者安装32bundles或者pkg_update来安装

 

 

任务管理,及对Win程序的兼容性

由于SUA是一个子系统,和cygwin不同。cygwin是运行于Windows子系统上的一个程序,通过dllcygwin环境中exe文件对Unix API的呼叫转化为对Win API的呼叫。所以很多地方和cygwin有较大差别。比如说,在Windows的任务管理器中,无法看到SUA下的各进程。SUA下的进程可以在SUA下通过 ps -A -X unix 来查看。

SUA兼容Win下的程序,可以直接启动它们。在cmd中也可以直接执行SUA中的二进制可执行文件(脚本文件不行)。

SUA不支持中文,不支持Windows路径(但可以通过 winpath2unix 或者chgpath来转换)

特别需要注意的是:但凡在Windows下没有特别设置过权限的文件,在SUA下权限都是777!这就意味着很容易误执行一个非可执行文件――后果是不可预料的。

openssh的安装配置

如果在前面已经安装过软件bundles,自然已经包含openssh

如果需要将Windows作为ssh server的话,则需要设置Windows防火墙或其它防火墙。允许 %SystemRoot%\system32\psxss.exe 侦听22端口的TCP连接。

安全问题:

无密码的guest用户被禁止ssh登录――也许需要设置一下就可以?我不清楚具体该怎么操作,但是不管怎么说,这么不安全的事情不要干

X转发

执行X client程序首先需要安装一个X Server,常用的是Xming(安装软件bundles的时候会问你要不要装Xming,也可以自行下载安装),也可以用其它的。

其次,SUAssh似乎有bug,在于――本地的所有hosts设置有时对ssh这个程序不生效!所以如果你默认的displaylocalhost:0.0的话,由于hosts文件不生效,无法解析localhost这个名称,将导致错误的结果。所以在执行ssh -X之前,请先export DISPLAY=127.0.0.1:0.0

SUA提供xterm,也可以在xterm里执行ssh

编码问题

SUA自己既然不能显示中文,SSH上自然也不能

但,如果远程主机使用GB2312编码,则SSH可以显示中文。

当然,用X转发的gnome terminal总是可以显示中文的,这是废话。

其它操作

注册表

lsreg命令可以查看注册表

 

 

2012年11月14日星期三

如何解决R不能安装package的问题


Win7/Vista下如果使用标准用户来执行R,常常在试图安装package的时候提示无法写入,从而导致安装失败。

原因:
R默认安装在C:\Program Files 目录,安装的package也存放在 C:\Program Files\R\R-2.15.1\library 目录下。在Win7/Vista中,C:\Program Files 目录是一个受系统保护的目录,Users组只有读取和执行的权限,没有写入权限。为了使旧程序正常运作,Windows会将尝试写入此目录的操作重定向到C:\Users\User\AppData\Local 目录下。但是R不支持此重定向(反正它在尝试写入Program Files失败之后,确实问过我要不要把package放到My Documents里,成功写入到My Documents却未成功加载package,后者可能是因为――Win7对注册表也有保护,普通用户下禁止写入HKLM,而重定向到HKCU

解决方法:
方法一:对于不嫌麻烦的人来说,可以每次启动R的时候都使用管理员权限,这样想干啥就干啥。可以右键R,属性-兼容性 选项卡,勾选使用管理员权限运行。
方法二:上述方法有两个讨厌之处:第一,对一个像R这样的普通应用程序赋予管理员权限是不安全的;第二,每次启动R还必须同意授予管理员权限(如果你没有把UAC关掉的话)。第二个方法相对来说一劳永逸:更改library目录的权限。
右键C:\Program Files\R\R-2.15.1\library 目录,属性-安全-编辑,对Users组添加"写入"权限,从此就不用担心R无法安装package了。

已使用 Microsoft OneNote 2010 创建
一个用于存放所有笔记和信息的位置

2012年9月12日星期三

Python下跨平台操作文件路径



Python下跨平台操作文件路径
2012912
11:22

众所周知,Windows下的路径分隔符为反斜杠 "\", UNIX-like系统下的路径分隔符为正斜杠 "/",这常导致代码跨平台移植时的问题。
Python设计为一门跨平台的语言,当然可以轻松解决此问题。

首先,Python在不同平台下都可以正确识别以正斜杠为分隔符的路径。如果在程序中只用到程序中预置的路径字符串(比如说指定库的位置),而不涉及从系统获取文件路径,则只要将路径写为正斜杠分隔路径,代码即可跨平台。

但是如果需要使用os.path.abspath() os.walk() 等函数获取路径,Python返回的路径字符串会是操作系统默认格式的路径字符串。这时的解决方法主要有:
在需要拼接、查找路径分隔符的地方,使用 os.path.sep 来代替显式的 '/' '\\' ,该变量依平台不同而不同。
当然这样写会比较�嗦,本来只需要 a+'/'+b+'/'+c 就可以的地方,现在就需要写成 a+os.path.sep+b+os.path.sep+c了。本来直接 filename.split('/')就可以,现在就得写成 filename.split(os.path.sep)
所以,对于这些操作,使用 os.path 的各种内置函数来操作,会简洁一些,同时也增加代码的可阅读性。比如说,前面的 a+'/'+b+'/'+c 就可以写成 os.path.join(a,b,c) 。类似的操作还有:os.path.split()

已使用 Microsoft OneNote 2010 创建
一个用于存放所有笔记和信息的位置

2012年7月17日星期二

F3507G折腾记


新地址 
F3507G折腾记 但排版没有细调,还是这里的排版好看一些

F3507G折腾记



淘宝上搞了一个Ericsson F3507g,于是我的小黑现在有 WCDMA GPS 支持了

开门见山,对于同样使用F3507G正在寻求解决方案的同学,本文可能冗长,包含的最有用的信息均已总结在文章末尾,可以直接跳到倒数第二段。

拿到之后,立刻动手开拆。之前已经打印了一份X200 Hardware Maintenance Manual备查。

轻车熟路地拆去键盘、掌托,便露出mini PCIE插槽。很久没拆开,已经落满灰。小心吹了吹灰,插上数据卡,拧上螺丝,插上天线。
合上掌托,插SIM卡,装电池开机,居然找不到硬件!安装驱动程序,依然找不到。大�。于是问店家,建议重置BIOS试试。虽然在BIOS里一点都没找到关于WWAN的选项(仅有一个WLANWiMaX的选项),但重置BIOS之后再开机,神奇地出现了找到新硬件。

安装ThinkVantage GPS Enabler,上窗口试了一下,能搜到星。升级Access Connection,能正常连接联通WCDMA,信号很好,速度快,便心满心足地睡觉去了。(唯一不好的是流量跑得太快了!!!!)

第二天,开始折腾如何收发短信――真是漫长的历程。
首先查看Access Connection,竟然没有收发短信的选项。网上网友说,据传说5.02版是可以收发短信的,而我的Access Connection5.95最新版。总不要为这个把我的Access Connection降级吧?鬼知道降级之后会不会和Hotkey之类的程序冲突。而Access ConnectionHelp里面明明白白地说:不支持对F3507G收发短信。
OK,那就另想办法吧。没有短信还是很糟糕的――毕竟流量花了多少,Access Connection说的不算,联通下发的短信才算数。
网上有人说,可以安装EricssonEricsson Wireless Manager,即可使用短信功能,而且比Access Connection功能强大得多――至少GPS地图是Google Maps而不是坑爹的Bing Maps。但据网友说,Ericsson Wireless Manager是不能和Access Connection共存的,必须卸载载Access Connection才能使用Ericsson Wireless Manager,否则Ericsson Wireless Manager无法找到WWAN卡。而且Ericsson Wireless Manager也有Bug,比如说,如果关闭了它,就会自动给WWAN硬件断电――直到下次开机才能重新使用WWAN,而且ThinkPadFn+F5控制将无效。那这也太坑爹了吧?
不过又有网友声称,他发现了一个完美的共存办法:使用Access Connection调用Ericsson Wireless Manager。只需要在Access Connection的概要文件里设置,不使用Access Connection本身来连接网络,而使用其它程序连接网络即可。由Access Connection调用Ericsson Wireless Manager时,Ericsson Wireless Manager将可以找到WWAN卡。而Access Connection仍然可以照常 Fn+F5 打开和关闭WWAN卡电源。
看上去不错,于是去找Ericsson Wireless Manager的下载。糟糕的是,原始地址是sonyericsson.com,而我们都知道,这家公司现在已经改名叫Sony Mobile了――于是在sonymobile.com上根本找不到此软件的下载。
最后去其它网站找到了这软件。装上之后,一连串悲剧开始了……
Access Connection的情况下Ericsson Wireless Manager当然找不到网卡,这已经是公认的结论。在Access Connection里尝试调用Ericsson Wireless Manager来连接网络,可是Ericsson Wireless Manager还是报告找不到网卡。更糟糕的是,Access Connection现在也无法控制网卡了,总是报告:其它客户端程序正在使用WWAN卡……于是竟然怎么都没法上网了!
卸载Ericsson Wireless Manager,问题依旧。卸载Access Connection,卸载F3507G驱动,再重装驱动和Access ConnectionAccess Connection仍然死活无法控制WWAN卡。反反复复尝试用各种顺序卸载重装了包括hotkeyAccess Connection、驱动、GPS在内的各种软件,结果不仅Access Connection无法找到WWAN卡,连Fn+F5里也显示不出WWAN了。甚至一度连WLAN图标和Access Connection中的其它概要文件都挂掉,各种诡异问题。
(之前网上还有网友声称Ericsson Wireless Manager是准绿色软件,无须安装直接拷贝即可使用。你妹的绿色软件!)

在彻底卸了所有能找到的相关软件并重装后还是不行,于是我一怒之下――系统还原了。

系统还原之后,终于一切正常了……不过仔细看了一下,这次提示找到新硬件并安装驱动程序的界面明显和之前不一样:之前每次重装驱动程序,都只提示为两个硬件找到了驱动程序;而现在是提示为六七个硬件安装了驱动程序。

所以目前我认为:Ericsson Wireless Manager显然留了一些设置没卸载干净,导致其它程序无法使用WWAN。同时,Ericsson的驱动也很糟糕,也没有卸载干净。

于是继续尝试别的办法收发短信。
先装了一个ThinkPad Lenovo Mobile Broadband (旧版叫ThinkPad Lenovo Mobile Broadband Connect),据说可以用于收发短信。装了之后发现,它主要用途是向移动运营商激活WWAN卡。也许是在米帝的一些TP机型是包含运营商套餐的吧。支持AT&TVerizon,不支持大陆的任何运营商。于是卸掉。

接着,在lenovo GB网站上搜索Ericsson,竟然找到了一个看起来像有用的东西:
Ericsson Mobile Broadband Manager
试着装上去之后,果然能用这个软件收发短信了!
但是在ThinkVantage GPS的说明页面,提示ThinkVantage GPSEricsson Mobile Broadband Manager不兼容,可能会导致报错,不过目前我还没有遇到过问题。
 


对于同样使用F3507G正在寻求解决方案的同学,本文包含的信息如下:
Access Connection无法收发短信
收短信可以使用Ericsson Mobile Broadband ManagerLenovo US 网站下载),据官网说法和ThinkVantage GPS有冲突,但我没遇到。
Access ConnectionEricsson Wireless Manager不兼容。同时安装会导致两者都不能使用且很难恢复。所以一定不要重复安装!(可能和我使用的版本有关,版本见下)
Lenovo Mobile Broadband (Connect) 在中国大陆没有用处。

本人使用的软硬件版本(所有软件均已更新到能找到的最新版本,有些比ThinkVantage System Update提供的还新):
ThinkPad X200
BIOS 3.21.1.06
Windows 7 Ultimate SP1 X64 OEM
Ericsson F3507g Wireless WAN Windows 7 驱动程序 6.3.3.6
ThinkVantage Access Connection 5.95
ThinkVantage GPS 2.80
Hotkey 3.80
Ericsson Wireless Manager 5.3.2076.12 (不能用!)
Ericsson Mobile Broadband Manager 版本 CXP 901 4396/216.1.6.2
ThinkPad Lenovo Mobile Broadband (Connect) 3.5.0011 (没用)(X200最新只能用3.5X201以上可以用4.1