« The New C Standard | 返回首页 | 出在 recv 上的一个 bug »

在不安全的网络环境下安全上网

偶尔,我会在公众场合上网。但是不敢以自己的身份登陆任何网站。这年头,自己家的机器都不安全了(使用非 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

风云因何而抵制笔记本呢?我很想知道
啊,我之前上家公司也是用的rsa 的那个。我用过2种版本的,一种需要手动输入密码的,一种根据时间自己跳的
使用Linux。他安全,速度快!!
OTP密码不错哈,可以在手机上做个算号器,保证手机是安全的就好了。 其他的方法都不够BT,在网吧这样子的环境,传输再加密也没用:要是旁边专门有人偷看你输入密码,或者摄像头监控,或者他的键盘是硬件监控的…… OTP密码好啊
https://www.grc.com/ppp.htm 刚看到了OTP(一次一密)的一个实现,挺有趣的,google code上有了linux下面ssh 认证的模块。 这样你就可以打印若干一次性密码,随身携带。理论上和RSA SecureID有同样的效果。
博主的方法未免太小众,太技术了。 我的做法是,买一个跑Linux的netbook,随身携带,web尽量都用https的方式访问,如果有可能的话。还有个iPhone 3g能用WCDMA访问网络,不知道这种情况的安全性如何。 平时自己都是用OS X和GNU/Linux,习惯和意识算是很好的,所以不怎么担心。 没有什么太重要的隐私数据,就不纠结了,否则人活着太累:) 况且我等小人物,别人都懒得看一眼^_^
很不安全吗 我怎么一点感觉都没有
@fancy, 病毒和 bug 是两回事。 你能写段程序让显示器烧掉么?如果可以,那么就是显示器设计的疏忽。 如果 CPU 没有保护模式,病毒很难避免其存在;但是,良好的操作系统设计加上配套的硬件机制的支持,病毒就可以被避免了。 哦,早期的 IBM PC 的显示器是可以通过一段恶意代码烧掉的。因为早期的 I/O 控制的设计问题,提供了这种可能性。 Windows 就是这样一种设计(而不是实现)的有 bug 的系统;而开源系统如果存在这种设计 bug ,是可以被纠正的。正如那些被代码烧掉的显示器,现在已经不存在了(即使你再怎么去研究显示器的控制接口)。
但是linux仍然是有病毒的啊,任何系统只要有人去研究,就不可能搞不出病毒来,这和程序不可能没有bug是一样的道理。
来看看~~~~赞~~~觉得不用本本的人好神奇哦^_^
test
这就是所谓的ssl-vpn了 https://sslvpn.demo.sonicwall.com/cgi-bin/welcome 支持实时OTP,通过email或手机短讯发送,也支持其他的2factor auth,像RSA或Vasco token
要那么变态干嘛? 我们的要求就是不要只想到用什么高科技。 实现需求的方法就是好方法,参见产线上电风扇吹纸箱的故事。 我的想法就是 租个Dreamhost空间,用ssh做个tunnel就好了,传输都是加密的。而这个Dreamhost空间又不重要。 一切都搞定了。 有什么想法欢迎讨论。
最简单的方法是在自己家里放台主机,用一个动态域名绑上去。 -------------------- 我是在想 如果要做一个给很多人用的网站,该怎么保存各方的 机密信息。 这些东西可能是网银的密码或者email密码,等等。 不确定有没有best practice
似乎关键还是在密码部分。 红色警戒同志,有“VPN加本地验证加一个security card的算号器”更详细的做法吗? 本地验证是USB KEY?SECURITY CARD是如何跟用户交互?www.rassecurity.com好像上不了...
To snnn, 我们用的算号器是RSA Security Inc.的卡。网址是:www.rassecurity.com 每次generate出来的密码只有60秒的有效期。 这个应该足够强壮了
https, 可以使用数字证书,
rdesktop 或其它远程桌面行吗?
方案对浏览器应用倒是不错,但是类似QQ(记得云风应该不用这玩意)这样的客户端,该如何应用这套东西呢?难不成要在proxy端实现QQ客户端的转发服务器?……太恐怖,对这个有没有解决方案?。不过说实话,云风在文章中提到的这个问题大家应该都遇到过,我都是迫不得已不使用,一旦使用回去了立马更改密码。
红色警戒说的security card的算号器是那种?网易将军令那样的那是魔兽的密报卡那样的?
我们公司用的是VPN加本地验证加一个security card的算号器,这样我们每次登陆的密码都是不一样的 另外云风应该听说过哥德尔定理:任何一个足够强的一致公设系统,必定是不完备的。 也就是说,任何一个系统,无论多强壮,都有被攻破的可能。
"如何构建一个让大家都放心存放 关键信息 的地方" ? 最简单的方法是在自己家里放台主机,用一个动态域名绑上去。 比如我用的 LinkStation Pro 才 21w ,可以 24 小时开机,非常环保。 http://blog.codingnow.com/2008/09/linkstation_pro.html
好像国外已经有了这样的应用了。不太确定。 国内主要问题是如何构建一个让大家都放心存放 关键信息 的地方。 所以这个东西目前只限于黑客们自己自娱自乐。
ziproxy+ssh. or http://code.google.com/p/mirrorrr/ + GAE dev enviroment
看不懂啊 什么时候我才能有这种水平啊 期待啊
感觉在看美国的大片,geek
我一直都用 ssh tunnel 到任何地方都只要下个简单的 ssh 客户端就可以了~~ noshell
@hacker47, 我自己用的机器,装 Windows 系统的那台,从来不装杀毒软件。历史上我也没有用过任何杀毒软件。 我也不认为,在对系统的安全机制有一定认知的前提下,使用 Linux / *Bsd 系统有感染木马病毒的风险。 流传的最广的谬论就是,Linux 之所以不担心病毒,是因为用的人少,没人开发。这不过是无知的 Windows 用户的自我安慰而已。
不过这也说明网站在不安全情况下登陆的设计还大有作为,登陆界面可以分不同情况来使用不同的登陆步骤,不安全情况下可以借助辅助设备(如手机)来完成登陆。
牛人都是这么练成的吗?
恩..我觉得proxy安全登录的问题,可以用服务器往自己的手机上发送一个一次性的登录密码,然后登录....什么?手机也丢了,那我没招了
太夸张了吧。感觉像机器猫遇到了老鼠。
太偏执了…… 实在不喜欢笔记本,也有很多替代的办法,比如touche上网效果就很不错了。
我汗, 一直挺崇拜你, 想不到这么偏执, 呵呵~~
足够BT,老大,难道你不知道过犹不及吗?
建议你开发自己的操作系统+网络协议 并且采用与已知所有系统都不同的可执行文件格式,那么病毒就很难感染了。 :-)
what a geek~
太复杂,只适用于Geek~
有点偏执了,难道真的是“只有偏执狂才能生存”?:)。自己的Windows机器平时都是用Sudown,基本上不需要杀毒和其他防火墙。在外面的机器上网时一般会登录Google的服务,Https+软键盘就可以了。我一直设想一套系统,用家里的ADSL和Linux平台做网关+服务器。用XAMPP协议做机器人,连接一个家具控制设备,比如X10协议的收发器,同时串口上联一个手机,无月租那种,基本上可以满足大多数要求。
惊奇,云风居然抵制使用笔记本
这么多年过去了,云风你还是那么bt,哈哈

Post a comment

非这个主题相关的留言请到:留言本