CN101567034A - 防止用户输入密码动作被窃听的*** - Google Patents
防止用户输入密码动作被窃听的*** Download PDFInfo
- Publication number
- CN101567034A CN101567034A CNA2009100516372A CN200910051637A CN101567034A CN 101567034 A CN101567034 A CN 101567034A CN A2009100516372 A CNA2009100516372 A CN A2009100516372A CN 200910051637 A CN200910051637 A CN 200910051637A CN 101567034 A CN101567034 A CN 101567034A
- Authority
- CN
- China
- Prior art keywords
- module
- user
- state
- password
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Input From Keyboards Or The Like (AREA)
Abstract
一种信息安全技术领域的防止用户输入密码动作被窃听的***,本发明包括***调用模块、中断处理模块和加密模块,***调用模块接收应用程序传递的参数,接收加密模块输出的密文,并将密文写到密文(Cipher text)所要输出的内存地址;中断处理模块接收用户的键盘输入,将键盘信息传递给加密模块;加密模块接收***调用模块输出的密文(Cipher text)所要输出的内存地址、加密算法(或其内存地址)和中断处理模块输出的键盘信息,将产生的密文输出至***调用模块。本发明从根本上阻止了用户输入密码时键盘消息的发布,从而彻底解决了无操作***特权的恶意软件对用户输入密码窃听的问题。
Description
技术领域
本发明涉及的是一种信息安全技术领域的***,特别是一种防止用户输入密码动作被窃听的***。
背景技术
近几十年来,个人电脑的大多数操作***(Operation System)都能够提供多任务处理功能。这种功能依赖于计算机***结构提供中断(Interrupt)技术和现代操作***的支持。操作***会将外部输入设备的输入包装成消息(Message)发布,运行在操作***上的进程(Process)可以收到并处理。当用户输入密码给某个进程时,可能被同样运行在本地操作***的其他进程窃听。
窃听密码的程序按可获得的权限级别分为两种。一种叫做Rootkit,是植入操作***中的恶意代码,拥有操作***的权限。对于Rootkit的防护除依赖于杀毒软件的识别之外,还依赖于操作***对自身的保护,例如Windows操作***中的***文件检查器(Sfc.exe)可以验证***文件完整性并修复***文件。另一种窃听密码的程序和普通的进程有同样的权限,可以窃听到用户在设备上输入的信息。对于这种恶意程序的防护主要依赖于杀毒软件的识别。此外,不同操作***(或不同的***设置)对普通进程提供不同的权限,有些设置使得进程能够看到其他进程内存空间的数据。因此,有些恶意程序也通过这种方式获得密码明文。
软键盘技术可以在一定程度上防止窃听,它在屏幕上提供一个软件模拟键盘辅助用户输入密码,用户只需要用鼠标在软件盘上点击。但是恶意程序同样可以通过监控屏幕的方式来窃听密码。
经对现有技术文献的检索发现,中国专利公开号CN101079088,公开日为2007.11.28,专利名称为:一种密码保护***和方法,公开了一种密码保护***,该***包括用户界面UI显示单元、存储有密码信息的存储单元和比较单元,所述密码保护***还包括鼠标操作处理模块,用于感应鼠标在所述UI显示单元的密码输入框中的操作信息,并对所述操作信息进行分析,得到鼠标按键类型信息并输出;所述比较单元用于将所述鼠标操作处理模块的输出信息与所述存储单元中存储的密码信息进行比较,如果相同,输出密码正确信号,否则输出密码错误信号。该发明防止了用户的操作被直接翻译成密码,把原本需要的键盘输入动作换成了鼠标在一些UI上的操作。但是,该发明无法阻止窃听软件对屏幕的监控,窃听者仍然可以通过监控屏幕来得到用户的密码。
发明内容
本发明的目的是克服现有技术中的不足,提出一种防止用户输入密码动作被窃听的***,能有效防止恶意软件窃听用户输入密码的动作,达到无操作***特权的普通进程无法窃听用户使用键盘输入密码的目的。
本发明是通过以下技术方案实现的,本发明包括:***调用模块、中断处理模块和加密模块,其中:
***调用模块接收应用程序传递的参数,包括:密文(Cipher text)所要输出的内存地址、加密函数法(或加密函数的内存地址)、用户自定义消息类型;将密文(Cipher text)所要输出的内存地址、加密函数(或加密函数的内存地址)传递给加密模块,发送用户自定义消息类型的消息以通知应用程序,接收加密模块输出的密文,并将密文写到密文(Cipher text)所要输出的内存地址。
中断处理模块接收用户的键盘输入,将键盘信息传递给加密模块,
加密模块接收***调用模块输出的密文(Cipher text)所要输出的内存地址、加密函数(或加密函数的内存地址)和中断处理模块输出的键盘信息,将产生的密文输出至***调用模块。
所述的***调用模块利用***调用(System call)对用户在普通软件中的密码输入进行保护,包括:询问密码函数(Request Password Function)模块、参数保存模块和返回模块,其中:
询问密码函数模块向普通进程提供***调用接口,接收应用程序传递的参数,并将参数输出至参数保存模块;
参数保存模块接收询问密码函数模块所接收到的参数,并将加密函数(或加密函数的内存地址)输出至加密模块,将密文所要输出的内存地址、用户自定义消息类型输出至返回模块;
返回模块接收加密模块输出的密文,将密文写到密文所要输出的内存地址,并且发送用户自定义消息类型的消息以通知应用程序。
所述的中断处理模块,即通过内核中的模块,对密码输入做特殊处理,从根本上阻止了普通进程对密码的窃听,包括:状态维护模块、状态决策模块和记录明文(Plain text)模块,其中,状态维护模块维护一个状态变量,提供当前状态给询问密码函数模块、状态决策模块、返回模块;状态决策模块接收用户的键盘输入和状态维护模块中传来的当前状态,将明文传递给记录明文模块;记录明文模块,用于将明文保存在内核中,将明文传输给加密模块。
所述的询问密码函数模块在进程做***调用时,把参数保存在参数保存模块中,再调用状态维护模块将状态调整为密码输入状态,然后返回。
所述的中断处理模块的工作过程如下:在设备输入事件包装成消息发布之前,如果当前状态是密码输入状态时,状态维护模块针对用户的输入做决策,当用户通过其他输入设备做出非法输入(比如点击鼠标)时,状态决策模块调用状态维护模块,调整状态为错误状态,并调用返回模块;当用户输入除特殊按键之外的按键时,将按键值通知记录明文模块,并阻止按键消息发布;当用户输入确认密码返回键时,调用状态维护模块调整状态为正常状态,通知返回模块。
与现有技术相比,本发明设计了一个适合于现代操作***的***调用、一组存在于操作***内核中且能够对密码输入动作做特殊处理的模块,从根本上阻止了用户输入密码时键盘消息的发布,从而彻底解决了无操作***特权的恶意软件对用户输入密码窃听的问题。
附图说明
图1是本发明模块关系示意图
具体实施方式
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,本实施例***调用模块,中断处理模块和加密模块170,其中,***调用模块接收应用程序传递的参数,接受加密模块170输出的密文;中断处理模块接收用户的键盘输入,将键盘信息传递给加密模块170;加密模块170接收***调用模块输出的参数信息,将产生的密文输出至***调用模块。
所述的***调用模块包括询问密码函数模块110、参数保存模块120和返回模块160,其中询问密码函数模块110,用于向普通进程提供***调用接口;参数保存模块120,用于保存调用询问密码函数的参数,在用户输入密码的过程中以及结果返回时,提供给其他模块使用;返回模块160,用于在用户输入密码正常或者异常结束后,发布一个消息。
所述的中断处理模块,即通过内核中的模块,对密码输入的做特殊处理,从根本上阻止了普通进程对密码的窃听,包括:状态维护模块130、状态决策模块140和记录明文模块150,其中状态维护模块130,维护一个状态变量,其他模块通过访问它来获得当前状态;状态决策模块140,是输入设备中断处理函数的一部分,针对当前状态、用户的输入做不同的决策;记录明文模块150,用于将明文保存在内核中。
本实施例的询问密码函数110是一个操作***的***调用,其输入参数包括:密文(Cipher text)所要输出的内存地址、加密函数(或加密函数的内存地址)、用户自定义消息类型。当进程做***调用时,询问密码函数110把参数保存在参数保存模块120中,再调用状态维护模块130将状态调整为密码输入状态,然后返回。
本实施例的参数保存模块120存在于操作***内核(Kernel)中,可以是内核中一块的内存或是一个维护内核中一块内存的代码块。参数保存模块120中要存储用户调用询问密码函数110时提供的参数,在用户输入密码的过程中以及结果返回时,提供给其他模块使用。
状态维护模块130存在于操作***内核中,可以是内核中一块的内存或是一个维护内核中一块内存的代码块。状态维护模块130中要存储一个状态变量。状态包括:密码输入状态、正常状态、错误状态,其中,针对不同的错误,错误状态可以有多个。
状态决策模块140运行在操作***对计算机输入设备的中断处理中,位置在设备输入事件包装成消息发布之前。如果当前状态是密码输入状态时,状态维护模块130针对用户的输入做决策,否则本模块不会做任何操作。当用户通过其他输入设备做出非法输入(比如点击鼠标)时,调用状态维护模块130调整状态为错误状态,并调用返回模块160;当用户输入除特殊按键之外的按键时,将按键值通知记录明文模块150,并阻止按键消息发布;当用户输入确认密码返回键时,调用状态维护模块130调整状态为正常状态,通知返回模块160。
记录明文模块150负责记录键盘输入的明文到内存中,存在于操作***内核中,可以是一块内核内存空间,也可以是一个维护一块内核内存空间的代码块。
返回模块160运行于操作***内核中。根据状态维护模块130中的结果状态做不同动作。如果当前状态是正常状态,使用询问密码函数的参数中的加密算法,调用加密模块170对记录明文模块中的明文进行加密,并将加密后的密文放到进行***调用的进程指定的密文所要输出的内存地址,然后将正确状态包装成消息发布,消息的类型为询问密码函数参数中的用户自定义消息类型;如果当前状态是错误状态,则将错误状态包装成消息发布,消息的类型为询问密码函数参数中的用户自定义消息类型;如果当前状态是密码输入状态,则进行通常操作***的错误处理(比如记录***日志)。
加密模块170运行于操作***内核中,是一个虚拟机(Virtual Machine),能够提供一种隔离于操作***内核的环境,仅提供必要的存储空间和运算功能,能够满足运行加密算法的要求,但对于操作***内核不能产生任何破坏。
本实施例约定两个特殊按键:约定键盘的某一按键(或按键组合)为确认密码返回键,以及约定另一按键(或按键组合)为取消密码输入按键。一个可以的选择是:Enter键作确认密码返回键,Esc键作取消密码输入按键。
图1中所示的实线加箭头表示一个模块对另一个模块的操作以及读取动作,虚线加箭头表示一个模块对另一个模块的读取访问动作。询问密码函数模块110是需要用户提供密码的进程调用的。输入设备的中断响应会调用状态决策模块140。返回模块160会发布一个获取密码结束的消息,消息类型是用户自定义消息类型。
本实施例能够对密码输入动作做特殊处理,从根本上阻止了用户输入密码时键盘消息的发布,从而彻底解决了无操作***特权的恶意软件对用户输入密码窃听的问题。
Claims (5)
1、一种防止用户输入密码动作被窃听的***,其特征在于,包括***调用模块、中断处理模块和加密模块,其中:
***调用模块接收应用程序传递的参数,将密文所要输出的内存地址、加密函数或加密函数的内存地址传递给加密模块,接收加密模块输出的密文,并将密文写到密文所要输出的内存地址;
中断处理模块接收用户的键盘输入,将键盘信息传递给加密模块;
加密模块接收***调用模块输出的密文所要输出的内存地址、加密函数或加密函数的内存地址和中断处理模块输出的键盘信息,将产生的密文输出至***调用模块。
2、根据权利要求1所述的防止用户输入密码动作被窃听的***,其特征是,所述的***调用模块,包括询问密码函数模块、参数保存模块和返回模块,其中:
询问密码函数模块将接收的应用程序传递的参数输出至参数保存模块;
参数保存模块接收询问密码函数模块输出的参数,并将加密函数或加密函数的内存地址输出至加密模块,将密文所要输出的内存地址、用户自定义消息类型输出至返回模块;
返回模块接收加密模块输出的密文,将密文写到密文所要输出的内存地址,并且发送用户自定义消息类型的消息以通知应用程序。
3、根据权利要求1所述的防止用户输入密码动作被窃听的***,其特征是,所述的中断处理模块,包括状态维护模块、状态决策模块和记录明文模块,其中:状态维护模块提供当前状态给询问密码函数模块、状态决策模块和返回模块;状态决策模块接收用户的键盘输入和状态维护模块中传来的当前状态,将明文传递给记录明文模块;记录明文模块,将明文保存在内核中,并传输给加密模块。
4、根据权利要求1或3所述的防止用户输入密码动作被窃听的***,其特征是,所述的中断处理模块,在设备输入事件包装成消息发布之前,如果状态维护模块中的当前状态是密码输入状态,状态维护模块针对用户的输入做决策:当用户做出非法输入时,状态决策模块调用状态维护模块,调整状态为错误状态,并调用返回模块;当用户输入除特殊按键之外的按键时,将按键值通知记录明文模块,并阻止按键消息发布;当用户输入确认密码返回键时,调用状态维护模块调整状态为正常状态,通知返回模块。
5、根据权利要求4所述的防止用户输入密码动作被窃听的***,其特征是,所述的特殊按键,是指设置键盘的某一按键或按键组合为确认密码返回键,另一按键或按键组合为取消密码输入按键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100516372A CN101567034A (zh) | 2009-05-21 | 2009-05-21 | 防止用户输入密码动作被窃听的*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100516372A CN101567034A (zh) | 2009-05-21 | 2009-05-21 | 防止用户输入密码动作被窃听的*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101567034A true CN101567034A (zh) | 2009-10-28 |
Family
ID=41283183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100516372A Pending CN101567034A (zh) | 2009-05-21 | 2009-05-21 | 防止用户输入密码动作被窃听的*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101567034A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141631A (zh) * | 2015-09-21 | 2015-12-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端、服务器及账户安全登录的方法、装置和*** |
-
2009
- 2009-05-21 CN CNA2009100516372A patent/CN101567034A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141631A (zh) * | 2015-09-21 | 2015-12-09 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端、服务器及账户安全登录的方法、装置和*** |
CN105141631B (zh) * | 2015-09-21 | 2019-06-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端、服务器及账户安全登录的方法、装置和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494754B2 (en) | Methods for locating an antenna within an electronic device | |
KR100774013B1 (ko) | 데이터 처리 장치, 원격 통신 단말 장치 및 데이터 처리장치에 의한 데이터 처리 방법 | |
AU2006203768B2 (en) | Device authentication using a unidirectional protocol | |
CN103930899B (zh) | 用于管理在设备处输入的公用数据和私人数据的方法 | |
CN110378097B (zh) | 保障传感器数据安全 | |
US20100023750A1 (en) | System and Method for Controllably Concealing Data from Spying Application | |
US20100275265A1 (en) | System for securing transactions across insecure networks | |
JP2010092485A6 (ja) | データ処理装置、通信端末機器、および、データ処理装置を用いたデータ処理方法 | |
AU2009294201A1 (en) | Authorization of server operations | |
Yoo et al. | Case study of the vulnerability of OTP implemented in internet banking systems of South Korea | |
CN101364187A (zh) | 可对抗木马程式的双操作***计算机 | |
CN105761066A (zh) | 银行卡密码保护方法及*** | |
EP2973182B1 (en) | Methods and apparatus for securing user input in a mobile device | |
EP3852334B1 (en) | A system and a method for secure data transfer using air gapping hardware protocol | |
KR100998214B1 (ko) | 스니핑 방지를 위한 키보드 보안 장치 및 방법 | |
KR20040072044A (ko) | 보안 입력 디바이스 드라이버를 이용한 컴퓨터 보안 시스템 | |
CN101567034A (zh) | 防止用户输入密码动作被窃听的*** | |
US8826028B1 (en) | Cryptography secure input device | |
CN101751522A (zh) | 防止键盘按键被侧录的方法、装置及*** | |
Azhar et al. | E-banking frauds: The current scenario and security techniques | |
Novakovic et al. | Detection of URL-based Phishing Attacks Using Neural Networks | |
CN2906756Y (zh) | 一种数据安全传输设备 | |
Divya et al. | Visual authentication using QR code to prevent keylogging | |
Park et al. | Secure Message Transmission against Remote Control System | |
KR101296402B1 (ko) | 암호화된 시드를 이용한 모바일 오티피 장치의 등록 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091028 |