在将密码从机器发送到网络之前,我在网络浏览器中输入密码时会发生什么?

时间:2011-12-09 18:47:30

标签: passwords password-protection

当我在网页的表单(例如Gmail的密码字段)中输入密码到密码输入字段然后按回车键时,会发生什么。我希望在浏览器将其从本地计算机发送到网络之前了解该过程。例如:在本地计算机上,Web浏览器首先进行系统调用,然后本地计算机对密码进行一些处理,然后通过网络发送。我在Google上搜索了很多,但找不到任何有用的东西。

2 个答案:

答案 0 :(得分:2)

一般来说,没有什么特别的事情发生。

密码只是一个HTML <input>元素。这只是一个文本框。

答案 1 :(得分:-1)

在大多数情况下,需要表单提交密码的网站使用HTTPS来加密发布的数据(包括用户名和密码)备份到服务器(如果网站不使用SSL,那么密码将以明文形式发送。)

修改 According to wiki,SSL / TLS在OSI的表示层工作,尽管此SSL article表示SSL位于TCP应用程序层中。 AFAIK https只是在SSL连接之上工作的http。

根据@ John的帖子,提交密码的传统方式是向用户提供带有用户名和密码的表单。 (完整参考here

<form name="input" action="https://somesite/login.asp" method="post">
Username: <input type="text" name="user" />
Password: <input type="password" name="password" />
<input type="submit" value="Submit" />
</form> 

此表单数据将被发回服务器,服务器应在检查用户名和密码的身份验证之前验证输入(通常通过单向散列传递一个或两个字段以确保密码未以明文形式存储数据库)。

从安全角度来看

  • 虽然浏览器会在密码控件上显示“星号”,但浏览器仍然知道明文密码。
  • 安全表单方法应该是POST(方法= GET会出现在查询字符串中)
  • 表单页面本身应该通过https提供(因为除了加密之外,浏览器还会根据域验证服务器的证书,以及证书链本身的到期日期)
  • 并且表单操作本身应使用https:// url,以确保用户名和密码在返回服务器的途中在传输过程中加密。

需要做的一个概念是浏览器没有“散列”或者在连接的“客户端”进行某些身份验证检查的原因是因为服务器不能信任浏览器/远程计算机 - 必须由远程客户端计算机发送原始完整密码。

Re:我可以破解密码吗?

常见攻击

  • 键盘记录 - 记录用户按键的软件,包括用户名和密码
  • 网络钓鱼 - 攻击者向用户显示一个类似于目标登录页面的站点登录页面,用户可能会被输入用户名和密码。如果用户配置的DNS或LMHosts文件遭到破坏,则可以使登录URL显示为真实的,即使它是由攻击者的网络钓鱼服务器提供的。
  • XSS攻击(例如,如果登录页面在同一页面上显示未经验证的用户评论帖子)将允许攻击者注入javascript以挂钩到页面上的任意数量的事件以获取用户名和密码
  • 由于弱客户端验证和有关服务器设计的一些信息,SQL注入攻击可用于完全绕过登录,从服务器数据库读取数据(例如,如果它们以明文形式存储,则获取所有用户和密码),或者损坏或删除服务器上的数据(但这会攻击服务器,而不是浏览器)