密码传输问题
上文讲了密码在系统中的存储问题,接下来就简单说说密码在进入系统之前的传输问题。
一般在线系统,密码的传输要经过下面几个步骤:
- 用户在网络浏览器上输入原始密码:人 ——> 键盘 ——> 浏览器内存
- 原始密码做一定的转换:内存中的原始密码 ——> 内存中的转换后的密码
- 转换后的密码在线上传输:内存中转换后的密码 ——> 网络 ——> 系统nnn
这其中的每一步都有可能导致原始密码的泄露,也有相应的应对之法应对。
1 输入原始密码
在一个存储和传输每个环节都很安全的环境下,最危险的就是用户输入原始密码这第一步。常用的攻击方法包括:
- 偷看输入密码值
在公共场合输入密码很容易被人故意偷看,例如使用 ATM 机取款的时候。一般输入密码的字符明文用 * 号代替,这种做法就是为了保证密码明文不被肉眼偷窥。不过这样以来,用户也不能直接看到自己输入的密码是否正确。iPhone 在这点上做了小改进,在输入一个密码字符时先显示明文,过大约 0.5 秒再转成 * 显示,鉴于使用 iPhone 虚拟键盘输入时,按错字母的概率还是比较高的,这个折中也是在可用性和安全性上做了妥协。有些系统,为了最大限度的防偷窥,在输入密码的时候屏幕不输出任何东西,比如 Unix/Linux 的 Console 登录。这样一来,就连输入的密码长度都看不出来。当然,在设置新密码的时候,相应的,一般也要通过输入两遍密码来保证没有任何输入错误。
- 用木马程序记录键盘输入
现在比较流行的 QQ 或 网络游戏的盗号就常用这种方式进行。安装杀毒软件来防盗号自不必说,还可以做的是用屏幕软键盘输入密码,这样木马就记录不到键盘事件,只能通过分析鼠标点击和当时屏幕图象来破解密码。如果再进一步,软键盘的字符布局每次都随计产生,那就更加重了分析破解的难度。
- 模仿或感染应用程序,直接得到内存中的密码值
不管如何防范输入的过程,一旦密码到程序里, 就会以明文的形式呈现在内存中,只要恶意软件模仿安全程序(或模仿网站的外观)直接套取密码就轻而易举。现在出现的假 ATM 机也是这种手法的衍生。还有一种,不是替换或模仿程序,而是用病毒感染原程序,将原程序内存中的值读到。要防范这种攻击,必须要对原程序的完整性和合法性进行验证,在验证通过后,才能进行正常的登录交互操作。这个验证可以用数字签名来实现。比如 Windows 7 中所有微软的可执行文件都带有微软的数字签名。在网站上则是 HTTPS 的验证。当然,这个验证过程还牵扯到人的判断,在社会工程学上,软件要配合一些强制的措施,才能保证人不会麻痹大意中招。比如浏览器在访问非信任机构签发的数字签名的 HTTPS 站点时,会阻止用户进行访问。Windows 7 现在所有的 Driver 也都必须要有微软的数字签名才能运行。
2 原始密码的转换
原始密码会经过一些转换,才能在线上传输。这跟密码的存储类似。直接传输明文密码肯定是最不安全的。而用简单的可逆变换,或者固定密钥加密也只是增加了破解难度。最好是每次 Server 随机产生一个密钥,送给 Client 端进行密码加密。
如果使用 HTTPS,那所有的通过 SSL 通道的信息都是经过随机密钥加密的。自然也包括了密码。当然,使用 HTTPS 最大的问题是性能。连接初始时密钥的协商是通过非对称加密的体系进行的,这会造成连接较慢(密钥协商好后的数据加密是纯耗 CPU 的工作,在现在的硬件条件下,并不是瓶颈)。一般金融在线系统是肯定要使用 HTTPS 的。而大部分在线应用,出于性能的考虑,会选择在 HTTP 层的简单交换随机密码的方式。
随机密钥由 Server 端生成,并发送给 Client。Client 用密钥将密码加密,送给 Server。这里并不要求加密方法是可逆的。一个比较安全的做法是 Client 使用 MD5 或 SHA-1 等非对称变换,对密钥进行不可逆转换,再加密送到 Server。现在已经有很多 Javascript 的加密库可以在浏览器端进行这样的转换工作。
3 转换后的密码的在线传输
一般来说,为了保证安全传输,必须要用随机密钥对传输的明文进行加密转换后再传输。如果不使用 HTTPS,那就算密码不被攻破,还是有可能发生重放攻击。传输的中间人截获了转换后的密码后,就有可能用转换后的密码进行认证和攻击。
现在最新的研究是利用量子力学所揭示的粒子对的超距相关性来进行“量子加密传输”。这有点类似于古时候传送密信时在信的封口上用火漆封口,一旦信件被中间人拆开偷看,火漆肯定被破坏。收信人就会知道。量子加密很耗资源,通常是作为给绝密级别信息传输准备的技术。用于“量子加密传输”的信息一般也只有密钥。一旦双方通过“量子加密传输”确认了彼此的密钥,就可以使用平常的通道来传输加密后的密文了。看上去量子加密传输很象终极解决方案,可最近也传出了针对量子加密的成功攻击的案例。
4 常用服务的密码传输方法
这里用抓包的方式分析一下常用的一些网络服务的密码传输,看看它们在安全性方面做的如何
网站
密码传输方式
安全性
bitbucket.org |
HTTPS 加密传输 |
高 |
微软 live.com |
HTTPS 加密传输 |
高 |
Google.com |
HTTPS 加密传输 |
高 |
开心网 kaixin001.com |
HTTP 客户端 Javascript 加密传输 |
中 |
西祠 xici.com |
HTTP 客户端 Javascript 加密传输 |
中 |
csdn.net |
HTTP 客户端 Javascript 加密传输 |
中 |
人人网 renren.com |
HTTP 明文传输 |
低 |
javaeye.com |
HTTP 明文传输 |
低 |
天涯 tianya.cn |
HTTP 明文传输 |
低 |
强烈建议对那些既不支持 HTTPS 登录,而且又不经过客户端加密,直接使用 HTTP POST 明文传送密码的网站,不要使用自己的关键密码来注册,避免泄露。
5 小结
密码的传输比密码的存储更加敏感和不安全,一般的应用大致有三个层次的传输策略:
- 使用 HTTPS 加密传输,非常安全,但对 Server 性能要求很高。也影响登录速度。一般用在高安全性的登录上面。Google 和微软的登录都强制使用 HTTPS 确保安全第一。
- 使用随即密钥对密码进行加密变换后传输,相对安全,密码明文很安全,但仍可能发生重放攻击。这种方式是性能和安全性的折中。一般的服务使用足亦。国内的开心网就使用这种方式进行登录认证。
-
不做任何修饰,直接将密码明文通过 HTTP POST 传输。这种方式漠视了用户密码的安全。实现起来非常简单,但却是对用户隐私和资料的不负责任。很可惜,国内几个著名网站都是采用这种简单方式。用户的应对之道就是不要在这些网站上使用有价值的密码,例如你银行卡的密码。
6 其它
密码在传输过程中的泄露的途径很多,你很可能完全没有意识到密码正在传输中被听。比如最近的一个新闻,骗子利用音频分析软件对用户在电话上输入密码的按键音进行分析,进而得到用户的密码。大概我们在用电话按键输入密码时都没有想到,按键的声音居然也是我们密码传输的一种载体吧。
7 2010年8月6号更新
最近在使用浦发银行的 400 电话服务时,惊奇的发现,当系统提示输入密码时,除了听到自己的按键音外,听筒里还有其它的按键音随机的响起。因为这些背景音的干扰,居然让人输入密码时有点手足无措。
略一思考,这不正是防范输入密码的声音被有心者录下,通过音频分析软件盗取银行密码的安全措施吗。浦发连这点都想到了,不知道其它的电话系统是否现在也都采用了这种措施加强安全。
其实,声音也是种 UI 界面,当输入密码时声音的反馈被混淆和加噪后,确实有些不适应。原来一直忽略的声音 UI,对人的重要性一点也不比图形 UI 来的低。
分享到:
相关推荐
DiskAid(iPhone数据传输软件)是一款iPhone数据传输辅助软件,能够在iPhone通过数据线或Wifi连接到PC端时完成一系列强大的文件传输操作,能够实现音乐与视频在iPhone与PC间任意位置的转换与传输。同时DiskAid还支持...
适合人群: 通信专家、密码学爱好者、爱好历史和密码学的人 ...2. 电报通信:在模拟或数字化电报通信中,摩斯密码仍有一定的应用,而ASCII表可以帮助我们将电文转换为可传输的数字格式。 欢迎喜欢密码学的你下载~
进行数据的传输. 为了让使用者更方便直观的进行密码输入操作,增 加一个发出按键提示音的蜂鸣器. 触摸屏采用HSD TFT 真彩液晶再 加上AD7843 的电阻式触摸屏,而密码锁采用显示在触摸屏上的3 × 4 的矩阵键盘,密码...
一组用于安全地将密码传输到浏览器的工具。 您可以通过集成了和台式机和手机传输密码。 转让网站: : 演示版 桌面 网络应用 移动 产品特点 将密码和其他凭据从任何地方传输到浏览器 使用AES和ECC对所有凭据进行...
第一个实用的公钥密码系统之一,广泛用于安全数据传输。 在 RSA 中,这种不对称性基于对两个大素数的乘积进行因式分解的实际困难,即因式分解问题。 转换加密 - 转换加密使用三个数学上相关的密钥:一个用于将明文...
密码学研究进行保密通信和如何实现信息保密的问题,具体指通信保密传输和信息存储加密等。它以认识密码变换的本质、研究密码保密与破译的基本规律为对象,主要以可靠的数学方法和理论为基础,对解决信息安全中的机密...
为了 解决这个问题,在设计电源管理模块时加入了自动切换电路的方案,使电池组供电和外 接直流电源供电这两种方式能够根据实际需要迅速自动切换,从而保证电子密码锁可以 长时间不间断工作。电源自动切换电路选用LTC...
按键输入信号传输电路密码校验电路开锁电路开锁显示15s复位自动复位执行电路 按键输入 信号传输电路 密码校验电路 开锁电路 开锁 显示15s复位 自动复位 执行电路 2电子锁工作原理 密码锁的开锁信号有一系列宽脉冲和...
第5章 单片机实现电子密码锁 第6章 单片机实现简单间乐发生器 第7章 单片机实现语音录放 第二篇 数据采集系统 第8章 基于MAX197的并行A/D转换 第9章 基于TLC549的串行A/D转换 第10章 基于MAX527的并行D/A转换...
3. 记住密码 (`checkBox`, 如果记住报存到`config.json`, 下次直接转入登录, 设置为默认) 4. 两大堡垒 (客户端与服务端两次堡垒, 防止更改客户端数据直接发送的[`不符合规范的json数据包`], 所以在服务端在识别[`...
软件利用SFTP通过加密,支持FTP、SFTP 和 FTP over SSH2三种文件传输协议,可以提供安全文件传输,同时提供强大的自动化能力,可以实现自动化的安全文件传输。软件界面美观简洁、使用方便,转换速度快,质量高,对于...
1. 串口转以太网:可以将串口数据通过以太网传输,实现远程监控、数据上传等功能。 2. 支持多种接口和协议:例如TCP/IP、UDP、HTTP等,可以方便地与其他设备集成使用。 3. 高性能芯片:采用了高性能的STM32F107...
消除在Qt里,部分PNG图片在加载时控制台会报警告的问题,使用本工具可以将PNG图片进行转换,使用转换后的图片不会在报错 * Q_PROPERTY代码生成 可以根据Q_PROPERTY的内容,生成代码 * CPP文件生成 生成CPP...
在网络通信中,常常采用密码技术对信息加密处 理后传输,若加密信息在传输过程中被窃取,攻击者也难以获得原始信息内容,从而保 证信息在传输过程中的保密性。 2.1 密码系统的安全策略 密码系统安全策略主要分为基于...
•客户端与服务端通讯之前需要在服务端配置用户名密码。 •每次建立连接需要发送登录信息,用于确定消息与客户端关系。 •通讯链路需考虑心跳保持,心跳间隔4分钟。 •通讯消息中的字符采用UTF-8字符集转换为字节流...
aXmag PDF2SWF(aXmag PDF to Flash converter)的功能就是把整个PDF文件的内容转成一页一页的Flash电子书,跟一般印象中的Flash电子书一样,我们可以用鼠标点选或用键盘的“上一页”与“下一页”上下翻页,翻页时除了...
密码体制 密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题的。 一个密码体制由明文、密文、密钥、加密和解密运算这四个基本要素构成。 网络安全...
90年代逐步出现椭圆曲线等其他公钥算法 主要特点:公钥密码使得发送端和接收端无密钥传输的保密通信成为可能。 计算机网络安全培训课程全文共43页,当前为第8页。 密码学与信息安全 信息的私密性(Privacy) 对称加密 ...
1计算机网络技术的计算机网络信息安全面临的问题 计算机网络信息安全,主要是指在网络状态下通过运用科学合理的技术手段来提升网络安全管理,以此有效保障计算机网络信息数据能够在当代网络系统当中进行完整的数据,...
同FTP传输中的OpenPGP和SSL相配合,Advanced Encryption Standard (AES)密码加长至256位。同使用128位或192位密码的系统相比,WS_FTP Professional 2006能够自动可靠的为数据提供最大限度的安全性。Workspace允许...