在HTTPS安全模型中,最薄弱的部分是浏览器中的可信CA列表。有许多方法可以让用户信任错误的人,从而将附加CA注入到列表中。
例如,一台公共计算机或您公司中的PC。管理员可以强制您信任他自己颁发的CA,这对于具有HTTPS中继的HTTPS代理服务器来说是非常不安全的。因此,他们将能够窥探您的消息,登录和密码,即使浏览器告诉您,您是在可信的SSL连接。
在这种情况下,web应用程序开发人员可以做些什么来保护用户和系统?
发布于 2010-07-22 08:21:20
作为一名web应用程序开发人员,您对此几乎无能为力。
这个问题需要在堆栈中进一步处理。
如果地球另一端的人想这样做:
a.在某人的计算机上放置一个虚假的根CA
b.在该CA下为您的域颁发证书
c.模拟你的网站
d.将某人的域名本地DNS条目指向不同的ip
在上述步骤中,都没有涉及或咨询您的应用程序,所以这就是良好的网络管理和安全性非常重要的地方。
除此之外,也许有人会有合法的理由在他们的个人网络上本地做这件事。我有什么资格阻止他们?
这本质上是公司web代理筛选器所做的,他们有权这样做。
就阻止恶意用户采取上述步骤而言,这是需要您的客户计算机的管理员承担的任务。
发布于 2010-07-22 08:27:08
从理论上讲,如果用户的终端归对手所有,你已经输了,对此你无能为力 --如果到了紧要关头,他们可以过滤掉你的对策,甚至抓取和欺骗整个网站。
在实践中,你可以做一些事情来使对手的工作变得更加困难,但这是一场军备竞赛。您可能必须使用恶意软件用来对付扫描程序的所有相同类型的对策--因为从对手的角度来看,您的站点通过试图防止自身被覆盖而表现出恶意!--并且知道,如果您的对手足够关心,您所做的任何事情都可以而且将很快被反击。
例如,你可以打开套接字,或者使用JavaScript或小程序中的XmlHttpRequest,但是你不能阻止你的对手更新他们的过滤器来剥离你添加的任何东西。
您可以通过发出多态输出或使用其他反逆向工程技术来获得更多里程,因此似乎没有两次对站点的访问会产生类似的代码/资源发送到浏览器。这是一项过多的工作,但如果你的对手想要扮演中间人的角色,那就给他们一个可以思考的难题。
https://stackoverflow.com/questions/3078677
复制相似问题