在不安全的网络环境下安全上网
偶尔,我会在公众场合上网。但是不敢以自己的身份登陆任何网站。这年头,自己家的机器都不安全了(使用非 Windows 平台的除外),哪敢信任不知底细的机器啊。
话说,我是没买过没用过笔记本的,对这个东西比较抵触。之前已经极大的挖掘了 Palm 手机的功能,比如可以用 ssh 登陆远程自己的机器。可以用浏览器访问一些简单的控制界面等等。只要在自己放在公网上的服务器配置好了,问题都不大。记得有一天,我想看一个网站上的图片,但是手机浏览器对那个网站的页面罢工。我是先 ssh 登陆到自己服务器,用 wget 下载下页面,再用 grep 分析 html ,然后 wget 下图片。并用 ImageMagick 缩小,压缩转换格式。最后放到自己的 web server 上,让手机浏览器可以顺利观看的。(顺便节约了许多 GRPS 流量)
这套方案用起来过于繁琐,也有很大的局限性。
昨天睡觉的时候胡思乱想。如果能弄一套通用的东西,或许就可以让我放心的去用别人的机器了。比如出差的时候突然需要上网,光靠手机又不够的时候,可以冲到网吧里暂时用一下。
当然一切技术方案都不是完美的,只能尽可能的做到安全了。另外需要使用方便,不需要安装额外的软件。在大多数可以连接互联网的桌面系统上,最低软件配置应该至少有个浏览器吧,只能打这个的主意了。
为了防止被人在本机之外截走网络包(例如网吧的网关被动了手脚),应该做一个 https 连接的 proxy 。我想会有现成的软件的。
通过 https 的 proxy 访问自己想访问的网站,大多数线路上的安全问题可以放心了。这个 proxy 应该可以帮我保存所有的 cookie 在 proxy server 端,保证不泄露隐私。
第二步,我不能在非自己的机器上输入任何的用户名、密码。因为无法确认键盘是否被监听。不光是键盘输入,其实,无论以任何方式的输入,都不应该让密码存在于陌生的机器内存中。使用 usb key 或许是一个好办法,但是不是所有的机器都有 usb 接口,有的话也不一定允许插入。
所以我想,最好的办法是,把自己的各组密码全部事先在安全的环境放在 proxy server 上。通过 proxy server 转发提交就可以了。如果需要管理的密码太多(比如我,每个地方用的密码全部不一样),就可以为每组密码设置一个自己明白的字符串标识,下拉选择。
第三,这个 https 的 web proxy 系统如何安全登陆呢?
最简单的方法是事先生成一组一次性密码(OTP),用掉一个就销毁一个。出门前抄在本子上,或放在手机里。
btw, OTP 其实是个很廉价且安全的方案,建议游戏里用 :D 比如允许用户在安全环境下索取一组 OTP 自己打印出来放着。然后在自己不放心的环境下使用。这里面会有些设计上的细节,不展开分析了。
嗯,不知道做上面这样一套东西麻不麻烦。是不是有开源的东西改吧改吧,拼拼凑凑就能做出来。 :D
Comments
风云因何而抵制笔记本呢?我很想知道
Posted by: jimmy | (41) April 19, 2009 04:18 PM
啊,我之前上家公司也是用的rsa 的那个。我用过2种版本的,一种需要手动输入密码的,一种根据时间自己跳的
Posted by: snnn | (40) April 14, 2009 12:13 AM
使用Linux。他安全,速度快!!
Posted by: wanfuwu | (39) February 26, 2009 11:31 AM
OTP密码不错哈,可以在手机上做个算号器,保证手机是安全的就好了。
其他的方法都不够BT,在网吧这样子的环境,传输再加密也没用:要是旁边专门有人偷看你输入密码,或者摄像头监控,或者他的键盘是硬件监控的……
OTP密码好啊
Posted by: icer1 | (38) February 26, 2009 09:32 AM
https://www.grc.com/ppp.htm
刚看到了OTP(一次一密)的一个实现,挺有趣的,google code上有了linux下面ssh 认证的模块。
这样你就可以打印若干一次性密码,随身携带。理论上和RSA SecureID有同样的效果。
Posted by: 雷勇 | (37) February 10, 2009 09:08 AM
博主的方法未免太小众,太技术了。
我的做法是,买一个跑Linux的netbook,随身携带,web尽量都用https的方式访问,如果有可能的话。还有个iPhone 3g能用WCDMA访问网络,不知道这种情况的安全性如何。
平时自己都是用OS X和GNU/Linux,习惯和意识算是很好的,所以不怎么担心。
没有什么太重要的隐私数据,就不纠结了,否则人活着太累:)
况且我等小人物,别人都懒得看一眼^_^
Posted by: Terry Wang | (36) February 6, 2009 08:02 PM
很不安全吗
我怎么一点感觉都没有
Posted by: qdk0901 | (35) February 1, 2009 02:25 AM
@fancy,
病毒和 bug 是两回事。
你能写段程序让显示器烧掉么?如果可以,那么就是显示器设计的疏忽。
如果 CPU 没有保护模式,病毒很难避免其存在;但是,良好的操作系统设计加上配套的硬件机制的支持,病毒就可以被避免了。
哦,早期的 IBM PC 的显示器是可以通过一段恶意代码烧掉的。因为早期的 I/O 控制的设计问题,提供了这种可能性。
Windows 就是这样一种设计(而不是实现)的有 bug 的系统;而开源系统如果存在这种设计 bug ,是可以被纠正的。正如那些被代码烧掉的显示器,现在已经不存在了(即使你再怎么去研究显示器的控制接口)。
Posted by: Cloud | (34) January 31, 2009 09:12 PM
但是linux仍然是有病毒的啊,任何系统只要有人去研究,就不可能搞不出病毒来,这和程序不可能没有bug是一样的道理。
Posted by: fancy | (33) January 31, 2009 02:53 AM
来看看~~~~赞~~~觉得不用本本的人好神奇哦^_^
Posted by: 燕仰 | (32) January 22, 2009 11:13 AM
test
Posted by: 5 | (31) January 17, 2009 06:20 PM
这就是所谓的ssl-vpn了
https://sslvpn.demo.sonicwall.com/cgi-bin/welcome
支持实时OTP,通过email或手机短讯发送,也支持其他的2factor auth,像RSA或Vasco token
Posted by: leesoft | (30) January 17, 2009 03:34 AM
要那么变态干嘛?
我们的要求就是不要只想到用什么高科技。
实现需求的方法就是好方法,参见产线上电风扇吹纸箱的故事。
我的想法就是 租个Dreamhost空间,用ssh做个tunnel就好了,传输都是加密的。而这个Dreamhost空间又不重要。
一切都搞定了。
有什么想法欢迎讨论。
Posted by: xLight | (29) January 17, 2009 12:09 AM
最简单的方法是在自己家里放台主机,用一个动态域名绑上去。
--------------------
我是在想 如果要做一个给很多人用的网站,该怎么保存各方的 机密信息。 这些东西可能是网银的密码或者email密码,等等。
不确定有没有best practice
Posted by: 又见小飞鱼 | (28) January 16, 2009 09:29 AM
似乎关键还是在密码部分。
红色警戒同志,有“VPN加本地验证加一个security card的算号器”更详细的做法吗?
本地验证是USB KEY?SECURITY CARD是如何跟用户交互?www.rassecurity.com好像上不了...
Posted by: jason | (27) January 15, 2009 10:44 AM
To snnn,
我们用的算号器是RSA Security Inc.的卡。网址是:www.rassecurity.com
每次generate出来的密码只有60秒的有效期。
这个应该足够强壮了
Posted by: 红色警戒 | (26) January 15, 2009 10:23 AM
https,
可以使用数字证书,
Posted by: jimmy | (25) January 15, 2009 09:58 AM
rdesktop 或其它远程桌面行吗?
Posted by: Victor | (24) January 14, 2009 06:46 PM
方案对浏览器应用倒是不错,但是类似QQ(记得云风应该不用这玩意)这样的客户端,该如何应用这套东西呢?难不成要在proxy端实现QQ客户端的转发服务器?……太恐怖,对这个有没有解决方案?。不过说实话,云风在文章中提到的这个问题大家应该都遇到过,我都是迫不得已不使用,一旦使用回去了立马更改密码。
Posted by: 大刘 | (23) January 14, 2009 05:47 PM
红色警戒说的security card的算号器是那种?网易将军令那样的那是魔兽的密报卡那样的?
Posted by: snnn | (22) January 14, 2009 05:36 PM
我们公司用的是VPN加本地验证加一个security card的算号器,这样我们每次登陆的密码都是不一样的
另外云风应该听说过哥德尔定理:任何一个足够强的一致公设系统,必定是不完备的。
也就是说,任何一个系统,无论多强壮,都有被攻破的可能。
Posted by: 红色警戒 | (21) January 14, 2009 04:52 PM
"如何构建一个让大家都放心存放 关键信息 的地方" ?
最简单的方法是在自己家里放台主机,用一个动态域名绑上去。
比如我用的 LinkStation Pro 才 21w ,可以 24 小时开机,非常环保。
http://blog.codingnow.com/2008/09/linkstation_pro.html
Posted by: Cloud | (20) January 14, 2009 03:19 PM
好像国外已经有了这样的应用了。不太确定。
国内主要问题是如何构建一个让大家都放心存放 关键信息 的地方。 所以这个东西目前只限于黑客们自己自娱自乐。
Posted by: 又见小飞鱼 | (19) January 14, 2009 01:53 PM
ziproxy+ssh.
or http://code.google.com/p/mirrorrr/ + GAE dev enviroment
Posted by: fcicq | (18) January 13, 2009 06:18 PM
看不懂啊 什么时候我才能有这种水平啊 期待啊
Posted by: aa | (17) January 13, 2009 05:50 PM
感觉在看美国的大片,geek
Posted by: zuhd | (16) January 13, 2009 05:50 PM
我一直都用 ssh tunnel
到任何地方都只要下个简单的 ssh 客户端就可以了~~
noshell
Posted by: sbilly | (15) January 13, 2009 02:06 PM
@hacker47,
我自己用的机器,装 Windows 系统的那台,从来不装杀毒软件。历史上我也没有用过任何杀毒软件。
我也不认为,在对系统的安全机制有一定认知的前提下,使用 Linux / *Bsd 系统有感染木马病毒的风险。
流传的最广的谬论就是,Linux 之所以不担心病毒,是因为用的人少,没人开发。这不过是无知的 Windows 用户的自我安慰而已。
Posted by: Cloud | (14) January 13, 2009 02:03 PM
不过这也说明网站在不安全情况下登陆的设计还大有作为,登陆界面可以分不同情况来使用不同的登陆步骤,不安全情况下可以借助辅助设备(如手机)来完成登陆。
Posted by: bennie | (13) January 13, 2009 01:15 PM
牛人都是这么练成的吗?
Posted by: macro | (12) January 13, 2009 12:38 PM
恩..我觉得proxy安全登录的问题,可以用服务器往自己的手机上发送一个一次性的登录密码,然后登录....什么?手机也丢了,那我没招了
Posted by: sirius | (11) January 13, 2009 11:38 AM
太夸张了吧。感觉像机器猫遇到了老鼠。
Posted by: blacktear | (10) January 13, 2009 11:19 AM
太偏执了……
实在不喜欢笔记本,也有很多替代的办法,比如touche上网效果就很不错了。
Posted by: peter | (9) January 13, 2009 11:06 AM
我汗, 一直挺崇拜你, 想不到这么偏执, 呵呵~~
Posted by: www | (8) January 13, 2009 10:25 AM
足够BT,老大,难道你不知道过犹不及吗?
Posted by: 刘鑫 | (7) January 13, 2009 09:50 AM
建议你开发自己的操作系统+网络协议 并且采用与已知所有系统都不同的可执行文件格式,那么病毒就很难感染了。
:-)
Posted by: hacker47 | (6) January 13, 2009 09:40 AM
what a geek~
Posted by: ithink | (5) January 13, 2009 09:19 AM
太复杂,只适用于Geek~
Posted by: wangyingqi | (4) January 13, 2009 09:06 AM
有点偏执了,难道真的是“只有偏执狂才能生存”?:)。自己的Windows机器平时都是用Sudown,基本上不需要杀毒和其他防火墙。在外面的机器上网时一般会登录Google的服务,Https+软键盘就可以了。我一直设想一套系统,用家里的ADSL和Linux平台做网关+服务器。用XAMPP协议做机器人,连接一个家具控制设备,比如X10协议的收发器,同时串口上联一个手机,无月租那种,基本上可以满足大多数要求。
Posted by: bennie | (3) January 13, 2009 08:59 AM
惊奇,云风居然抵制使用笔记本
Posted by: charlie | (2) January 13, 2009 08:15 AM
这么多年过去了,云风你还是那么bt,哈哈
Posted by: flyhorse | (1) January 13, 2009 12:42 AM