CN102938034B - 一种转换装置的工作方法 - Google Patents
一种转换装置的工作方法 Download PDFInfo
- Publication number
- CN102938034B CN102938034B CN201210417421.5A CN201210417421A CN102938034B CN 102938034 B CN102938034 B CN 102938034B CN 201210417421 A CN201210417421 A CN 201210417421A CN 102938034 B CN102938034 B CN 102938034B
- Authority
- CN
- China
- Prior art keywords
- generation key
- described device
- data
- key
- signed
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 38
- 238000012790 confirmation Methods 0.000 claims abstract description 30
- 239000000284 extract Substances 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 6
- 208000033748 Device issues Diseases 0.000 claims description 4
- 230000001131 transforming effect Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开一种转换装置的工作方法,包括:上电初始化;当接收到USB中断时检测中断类型,如是setup则从与其连接的一代Key中获取设备信息并将其存储到缓存中,等待USB中断;如是in则将缓存中的数据返回给主机,等待USB中断;如是Out则检测指令的类型,如是签名指令,则将签名指令中的关键信息输出并等待用户确认;当接收到确认信息时,将签名指令中的待签名数据发送给一代Key,接收一代Key返回的签名结果并对其进行处理,将处理结果存储到缓存中,等待USB中断。本发明的装置,与现有的无显示功能的Key结合使用,在进行交易过程中可将关键信息显示出来供用户确认,增加无显示功能Key使用过程的安全性。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种转换装置的工作方法。
背景技术
USB电子签名Key(简称Key)是一种可以完成数字加解密和电子签名及验证运算,并可保存一定数量的数字证书和证书私钥等数据的智能电子设备。随着计算机技术的发展和人们对数据安全性的重视,电子签名Key可采用USB接口与其他设备相连来实现其签名功能。由于电子签名Key用于保护数据安全,在安全性上要求较高,在需要使用时才插在计算机上,使用完毕后就应该拔下来,以确保安全。但是现有的无显示功能的Key(即一代Key)都存在致命的缺点,即有黑客劫持并篡改用户提交交易信息的可能性,由于无显示功能,使用户不能确认发给银行服务器的信息是否为正确的信息,使交易过程存在安全隐患。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种转换装置的工作方法。
本发明提供一种转换装置的工作方法,包括:
步骤s1:装置上电初始化;
步骤s2:所述装置等待接收USB中断,当接收到USB中断时检测中断类型,如是setup则执行步骤s3,如是in则执行步骤s4,如是Out则执行步骤s5;
步骤s3:所述装置将自身设备信息存储到缓存中,返回步骤s2;
步骤s4:所述装置将缓存中的数据返回给主机,返回步骤s2;
步骤s5:所述装置检测指令的种类,如是一代Key的指令,则执行步骤s11;如是二代Key的指令,则执行步骤s6,如是其他种类的指令,则输出错误信息,结束本次操作,返回步骤s2;
步骤s6:所述装置判断接收到的指令是否为签名指令,是则执行步骤s7,否则根据指令进行相应操作,并将操作结果存储到缓存中,返回步骤s2;
步骤s7:所述装置对所述签名指令解析得到待签名数据,并对所述待签名数据进行签名得到第二签名结果;
步骤s8:所述装置从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s9:所述装置判断是否接收到用户的确认信息,是则执行步骤s10,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s10:所述装置将所述第二签名结果存储到缓存中,返回步骤s2;
步骤s11:所述装置判断是否有一代Key与其连接,是则执行步骤s12,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s12:所述装置判断所述一代Key的枚举标志是否置位,是则执行步骤s14,否则执行步骤s13;
步骤s13:所述装置打开与所述一代Key连接的端口,从所述一代Key中获取设备信息并将其存储到缓存中,将所述一代Key的枚举标志置位,执行步骤s14;
步骤s14:所述装置判断接收到的指令是否为签名指令,是则执行步骤s15,否则根据指令进行相应操作,并将操作结果存储到所述缓存中,返回步骤s2;
步骤s15:所述装置对所述签名指令解析得到待签名数据,将所述待签名数据转化为符合一代Key格式的数据并将其发送给所述一代Key;
步骤s16:所述装置判断是否接收到所述一代Key返回的第一签名结果,是则执行步骤s17,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s17:所述装置从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s18:所述装置判断是否接收到用户的确认信息,是则执行步骤s19,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s19:所述装置对所述第一签名结果进行处理,并将处理结果转换为符合二代Key的格式存储到所述缓存中,返回步骤s2。
其中,所述步骤s7-步骤s10替换为步骤s7’-步骤s10’;
步骤s7’:所述装置对所述签名指令解析得到待签名数据;
步骤s8’:所述装置从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s9’:所述装置判断是否接收到用户的确认信息,是则执行步骤s10’,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s10’:所述装置对所述待签名数据进行签名生成第二签名结果并存储到所述缓存中,返回步骤s2;
相应的,步骤s15-步骤s18替换为步骤s15’-步骤s18’;
步骤s15’:所述装置对所述签名指令解析得到待签名数据,从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s16’:所述装置判断是否接收到用户的确认信息,是则执行步骤s17’,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s17’:所述装置将所述待签名数据转换为符合一代Key格式的数据并发送给所述一代Key;
步骤s18’:所述装置判断是否接收到所述一代Key返回的第一签名结果,是则执行步骤s19,否则输出错误信息,结束本次操作,返回步骤s2。
其中,所述装置判断是否接收到用户的确认信息,具体为:所述装置判断在预设时间内是否接收到用户的确认信息。
其中,所述检测中断类型具体包括:所述装置通过读取所述缓存中的标志位判断中断类型。
其中,所述装置判断是否有一代Key与其连接,具体包括:
当所述装置通过外部电信号或所述缓存中的标志位判断有设备与其连接时,判断所述设备的PID是否与一代Key的PID相同,是则有一代Key与其连接,否则没有一代Key与其连接。
其中,所述装置从所述一代Key中获取设备信息,包括:
所述装置调整其与所述一代Key的通信速度,并将设备已连接标志置位;
所述装置向所述一代Key下发枚举命令,获取所述一代Key的设备信息。
其中,所述装置将所述待签名数据转换为符合一代Key的格式并发送给所述一代Key,具体包括:
步骤p11:所述装置判断转化后的数据长度是否大于端点的最大包长度,是则执行步骤p12,否则执行步骤p14;
步骤p12:所述装置以所述最大包长度向所述一代Key发送部分转化后的数据;
步骤p13:所述装置判断未发送的转换后的数据的长度是否大于所述端点的最大包长度,是则返回步骤p12,否则执行步骤p14;
步骤p14:所述装置判断未发送的转换后的数据的长度是否小于所述端点最大包长度,是则执行步骤p15,否则执行步骤p16;
步骤p15:所述装置向所述一代Key发送所述未发送的转换后的数据;
步骤p16:所述装置向所述一代Key发送所述未发送的转换后的数据,然后再向所述一代Key发送空包。
其中,所述装置判断是否接收到所述一代Key返回的第一签名结果,包括:
步骤p21:所述装置判断是否接收到所述一代Key返回的数据,是则执行步骤p22,否则输出错误信息,结束本次操作,返回步骤s2;
步骤p22:所述装置接收数据,并存储在缓存中;
步骤p23:所述装置判断所述缓存中的数据是否正确,是则所述装置接收到所述一代Key返回的第一签名结果,否则返回步骤p21。
其中,所述装置对所述第一签名结果进行处理,具体包括:
所述装置对所述第一签名结果进行加密或在所述第一签名结果中添加标识或在所述第一签名结果中增加校验码。
其中,在所述装置将转化后的数据发送给所述一代Key之前,包括:
步骤a1:所述装置输出提示用户输入所述一代Key的PIN码的信息,等待用户输入PIN码;
步骤a2:所述装置判断在预设时间内是否接收到正确的PIN码,是则将所述转化后的数据发送给所述一代Key,否则输出错误信息,结束本次操作,返回步骤s2。
其中,所述步骤a2具体包括:
步骤a21:装置判断在预设时间内是否接收到用户输入的PIN码,是则执行步骤a22,否则输出超时提示信息,结束操作,返回步骤s2;
步骤a22:所述装置判断接收到的所述PIN码是否与内部存储的PIN码相同,是则将所述转化后的数据发送给所述一代Key,否则输出错误信息,结束本次操作,返回步骤s2。
其中,在所述步骤a22判断为否时,还包括:
步骤a23:所述装置判断输入次数是否达到预设值,是则输出错误信息,结束本次操作,返回步骤s2,否则返回步骤a1。
本发明与现有技术相比,具有以下优点:
本发明提供的转换装置,与现有的无显示功能的Key结合使用,即在进行交易过程中可将关键信息显示出来让用户进行确认,增加无显示功能Key使用过程的安全性,操作简单方便。
附图说明
图1为本发明实施例一提供的一种转换装置的工作方法流程图;
图2为本发明实施例二提供的一种转换装置的工作方法流程图;
图3为本发明实施例三提供的一种转换装置的工作方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种转换装置的工作方法,与一代Key和主机连接进行工作,如图1所示,包括:
步骤101:装置上电,进行初始化;
本实施例中,对所述装置的IO/RAM/LCD/SPI/USB/USB host等进行初始化;
步骤102:装置等待接收USB中断,当接收到USB中断时检测中断类型,如是setup则执行步骤103,如是in则执行步骤108,如是Out则执行步骤109;
具体的,本实施例中,装置通过读取缓存中的标志位来判断中断类型;如缓存的第0位上的数据为1则表示中断类型为setup,缓存的第1位上的数据为1则表示中断类型为in;缓存的第2位上的数据为1则表示中断类型为Out;
步骤103:装置判断是否有一代Key与其连接,是则执行步骤105,否则执行步骤104;
具体的,本实施例中,装置判断是否有一代Key与其连接具体为:通过外部电信号或者通过读取缓存的标志位判断是否有设备与其连接,当有设备与其连接时,再判断该设备的PID是否与一代Key的PID相同,是则有一代Key与其连接,否则没有;
具体的,在本发明的转换装置端,USB Host数据线D+和D-都有一个阻值在14.25k到24.8k的下拉电阻Rpd,而在一代Key端,D+(全速,高速)和D-(低速)上有一个1.5k的上拉电阻Rpu。当一代Key插入到转换装置端口时,有上拉电阻的一根数据线被拉高到幅值的90%的电压(大致是3V);装置检测到它的一根数据线是高电平,就认为是有设备插入,并能根据是D+还是D-被拉高来判断到底是什么设备(全速/低速);判断有设备插入后再判断该设备的PID是否与一代Key的PID一致,是则有一代Key与其连接,否则没有;
在本实施例中,如装置读取缓存的第4位上的数据为1时表示有设备插入,判断该设备的PID是否与预设的一代Key的PID码相同,是则有一代Key与其连接;
步骤104:装置等待一代Key的插入,当有一代Key插入时从所述一代Key中获取设备信息并将其存储到缓存中,返回步骤102;
步骤105:装置打开与所述一代Key连接的端口,调整其与一代Key的通信速度,并将设备已连接标志置位;
本实施例中,装置通过一代Key的设备类型(全速/低速)来调整与一代Key的通信速度;
步骤106:装置向一代Key下发枚举命令,获取一代Key的设备信息;
本实施例中的步骤106的具体步骤包括:
①装置向一代Key发送Get_Descriptor请求,获取设备描述符、配置描述符、接口描述符和端口描述符;
具体的,本实施例中的Get_Descriptor请求为:80 06 00 00 40 00、80 06 01 0040 00、80 06 02 00 40 00、80 06 03 00 40 00,获取的信息包括:产品的VID(VendorID,由USB-IF分配)、PID(Product ID,由厂商自己定制)、支持的协议类型(如HID协议、CCID协议等)、接口个数、端点个数、端点的最大包长度、序列号、支持的语言等等;
②装置向一代Key发送Set_Address请求向设备分配一个唯一的新地址;
③装置在向一代Key发送Get_Descriptor请求到新地址获取设备描述符、配置描述符、接口描述符和端口描述符;
④装置判断①和③中获取的信息是否一致,是则枚举完成,否则继续枚举;
当本实施例中的一代Key使用特定厂家的设备时,则在④之后还包括:装置判断获取的PID或VID是否与预设字符串相同,是则继续,否则返回错误信息,结束;
步骤107:装置将一代Key的设备信息存储到缓存中,返回步骤102;
本实施例中,装置通过下发每条枚举指令,将从一代Key中获取到的对应设备信息存储中缓存中;
步骤108:装置将缓存中的数据返回给主机,返回步骤102;
步骤109:装置检测指令的类型,如是签名指令,则执行步骤110,如是其他指令,则根据指令进行相应操作,并将操作结果存储到缓存中,返回步骤102;
具体的,本实施例中的签名指令为:00 22 90 80;
如本实施例中接收到的指令为查询指令,则装置根据查询指令查找对应内容,并将查找到的内容存储到缓存中;
步骤110:装置对签名指令解析得到待签名数据,从待签名数据中提取关键信息,并输出等待用户确认;
本实施例中的待签名数据包括用户名、帐号和交易金额;关键信息优选的为帐号和交易金额;
步骤111:装置判断是否接收到用户的确认信息,是则执行步骤112,否则输出错误信息,结束本次操作,返回步骤102;
优选的,本实施例中装置判断在预设时间内是否接收到用户的确认信息,是则执行步骤112,否则输出错误信息,结束本次操作,返回步骤102;用户的确认信息具体为按键确认信息;
步骤112:装置将待签名数据发送给一代Key;
本实施例中,步骤112具体包括:
步骤112-1:装置判断待签名数据的长度是否大于端点的最大包长度,是则执行步骤112-2,否则执行步骤112-4;
步骤112-2:装置以最大包长度向一代Key发送部分待签名数据;
步骤112-3:装置判断未发送的待签名数据的长度是否大于端点的最大包长度,是则返回步骤112-2,否则执行步骤112-4;
步骤112-4:装置判断未发送的待签名数据的长度是否小于端点最大包长度,是则执行步骤112-5,否则执行步骤112-6;
步骤112-5:装置向一代Key发送未发送的待签名数据;
步骤112-6:装置向一代Key发送未发送的代签名数据,然后再向一代Key发送空包;
具体的,本实施例中的一代Key的格式为128或256字节数据;
本实施例中一代Key接收到完整的待签名数据时对其进行签名操作;
步骤113:装置判断是否接收到一代Key返回的第一签名结果,是则执行步骤114,否则输出错误信息,结束本次操作,返回步骤102;
本实施例中,如返回的第一签名结果大于端点的最大包长度,装置也分包接收一代Key返回的数据,并将接收到的数据后存储到缓存中,当接收完成后继续后续步骤,具体接收过程包括:
步骤113-1:装置判断是否接收到一代Key返回的数据,是则执行步骤113-2,否则输出错误信息,结束本次操作,返回步骤102;
步骤113-2:装置接收数据,并存储在缓存中;
步骤113-3:装置判断缓存中的数据是否正确,是则装置接收到一代Key返回的第一签名结果,否则返回步骤113-1;
步骤114:装置对第一签名结果进行处理,将处理结果存储到缓存中,返回步骤102;
本实施例中装置对第一签名结果进行处理包括:对第一签名结果进行加密或在第一签名结果中添加标识或在第一签名结果中增加校验码等操作,用来标识该签名结果是一代Key返回的。
本实施例中的步骤110-113可替换为:
步骤110’:装置对签名指令解析得到待签名数据并将其发送给一代Key;
步骤111’:装置判断是否接收到一代Key返回的第一签名结果,是则执行步骤112’,否则输出错误信息,结束本次操作,返回步骤102;
步骤112’:装置从待签名数据中提取关键信息,输出关键信息并等待用户确认;
步骤113’:装置判断是否接收到用户的确认信息,是则执行步骤114,否则输出错误信息,结束本次操作,返回步骤102。
为了安全操作,在步骤112中装置将待签名数据发送给一代Key之前,需要对操作用户的身份进行验证,验证过程具体包括:
步骤112-1:装置输出提示用户输入一代Key的PIN码的信息,等待用户输入PIN码;
本实施例中,输出方式具体为:液晶显示器输出;用户在看到装置输出的信息后,通过按键输入PIN码;
步骤112-2:装置判断在预设时间内是否接收到正确的PIN码,是则将待签名数据发送给一代Key,否则输出错误信息,结束本次操作,返回步骤102;
本实施例中,步骤112-2具体包括:
步骤112-2-1:装置判断在预设时间内是否接收到用户输入的PIN码,是则执行步骤112-2-2,否则输出超时提示信息,结束操作,返回步骤102;
步骤112-2-2:装置判断接收到的PIN码是否与内部存储的PIN码相同,是则继续,否则输出错误提示信息,结束操作,返回步骤102;
本实施例中,装置内部存储的PIN码为向一代Key下发枚举命令时从一代Key中获取的;
当预先设置可多次输入PIN码时,在步骤112-2判断为否时,则执行步骤112-3,
步骤112-3:装置判断输入次数是否达到预设值,是则输出错误信息,结束本次操作,返回步骤102,否则返回步骤112-1。
实施例二
本发明实施例二提供一种转换装置的工作方法,既可以与一代Key连接工作,又可作为一个独立的二代Key进行工作,如图2所示,包括:
步骤201:装置上电,进行初始化;
本实施例中,对所述装置的IO/RAM/LCD/SPI/USB/USB host等进行初始化;
步骤202:装置等待接收USB中断,当接收到USB中断时检测中断类型,如是setup则执行步骤203,如是in则执行步骤204,如是Out则执行步骤205;
具体的,本实施例中,装置通过读取缓存中的标志位来判断中断类型;如缓存的第0位上的数据为1则表示中断类型为setup,缓存的第1位上的数据为1则表示中断类型为in;缓存的第2位上的数据为1则表示中断类型为Out;
步骤203:装置将自身设备信息存储到缓存中,返回步骤202;
步骤204:装置将缓存中的数据返回给主机,返回步骤202;
步骤205:装置检测指令的种类,如是一代Key的指令,则执行步骤211;如是二代Key的指令,则执行步骤206,如是其他种类的指令,则输出错误信息,结束本次操作,返回步骤202;
具体的,本实施例,如装置接收到00 84 00 00 08,则为一代Key的指令,如接收到00 22 90 80 XX,则为二代Key的指令;
步骤206:装置判断接收到的指令是否为签名指令,是则执行步骤207,否则根据指令进行相应操作,并将结果存储到缓存中,返回步骤202;
如本实施例中接收到的指令为查询指令,则装置根据查询指令查找对应内容,并将查找到的内容返回给主机;
步骤207:装置对签名指令解析得到待签名数据,并对待签名数据进行签名得到第二签名结果;
步骤208:装置从待签名数据中提取关键信息,输出关键信息并等待用户确认;
步骤209:装置判断是否接收到用户的确认信息,是则执行步骤210,否则输出错误信息,结束本次操作,返回步骤202;
优选的,本实施例中装置判断在预设时间内是否接收到用户的确认信息,是则执行步骤210,否则输出错误信息,结束本次操作,返回步骤202;本实施例中的用户的确认信息具体为按键确认信息;
步骤210:装置将第二签名结果存储到缓存中,返回步骤202;
步骤211:装置判断是否有一代Key与其连接,是则执行步骤212,否则输出错误信息,结束本次操作,返回步骤202;
具体的,本实施例中,装置判断是否有一代Key与其连接具体为:通过外部电信号或者通过读取缓存的标志位判断是否有设备与其连接,当有设备与其连接时,再判断该设备的PID是否与一代Key的PID相同,是则有一代Key与其连接,否则没有;
具体的,在本发明的转换装置端,USB Host数据线D+和D-都有一个阻值在14.25k到24.8k的下拉电阻Rpd,而在一代Key端,D+(全速,高速)和D-(低速)上有一个1.5k的上拉电阻Rpu。当一代Key插入到转换装置端口时,有上拉电阻的一根数据线被拉高到幅值的90%的电压(大致是3V);装置检测到它的一根数据线是高电平,就认为是有设备插入,并能根据是D+还是D-被拉高来判断到底是什么设备(全速/低速);判断有设备插入后在判断该设备的PID是否与一代Key的PID一致,是则有一代Key与其连接,否则没有;
在本实施例中,如装置读取缓存的第4位上的数据为1时表示有设备插入,判断该设备的PID是否与预设的一代Key的PID码相同,是则有一代Key与其连接;
步骤212:装置判断一代Key的枚举标志是否置位,是则执行步骤216,否则执行步骤213;
步骤213:装置打开与所述一代Key连接的端口,调整其与一代Key的通信速度,并将设备已连接标志置位;
本实施例中,装置通过一代Key的设备类型(全速/低速)来调整与一代Key的通信速度;
步骤214:装置向一代Key下发枚举命令,获取一代Key的设备信息;
本实施例中的步骤214的具体步骤包括:
①装置向一代Key发送Get_Descriptor请求,获取设备描述符、配置描述符、接口描述符和端口描述符;
具体的,本实施例中的Get_Descriptor请求为:80 06 00 00 40 00、80 06 01 0040 00、80 06 02 00 40 00、80 06 03 00 40 00,获取的信息包括:产品的VID(VendorID,由USB-IF分配)、PID(Product ID,由厂商自己定制)、支持的协议类型(如HID协议、CCID协议等)、接口个数、端点个数、端点的最大包长度、序列号、支持的语言等等;
②装置向一代Key发送Set_Address请求向设备分配一个唯一的新地址;
③装置在向一代Key发送Get_Descriptor请求到新地址获取设备描述符、配置描述符、接口描述符和端口描述符;
④装置判断①和③中获取的信息是否一致,是则枚举完成,否则继续枚举;
当本实施例中的一代Key使用特定厂家的设备时,则在④之后还包括:装置判断获取的PID或VID是否与预设字符串相同,是则继续,否则返回错误信息,结束;
步骤215:装置将一代Key的设备信息存储到缓存中,将一代Key的枚举标志置位,执行步骤216;
本实施例中,装置将每次从一代Key中获取的设备信息存储到缓存中;
步骤216:装置判断接收到的指令是否为签名指令,是则执行步骤217,否则根据指令进行相应操作,并将结果存储到缓存中,返回步骤202;
步骤217:装置对签名指令解析得到待签名数据,将待签名数据转化为符合一代Key格式的数据并将其发送给一代Key;
本实施例中,步骤217具体包括:
步骤217-1:装置判断转化后的数据长度是否大于端点的最大包长度,是则执行步骤217-2,否则执行步骤217-4;
步骤217-2:装置以最大包长度向一代Key发送部分转化后的数据;
步骤217-3:装置判断未发送的转换后的数据的长度是否大于端点的最大包长度,是则返回步骤217-2,否则执行步骤217-4;
步骤217-4:装置判断未发送的转换后的数据的长度是否小于端点最大包长度,是则执行步骤217-5,否则执行步骤217-6;
步骤217-5:装置向一代Key发送未发送的转换后的数据;
步骤217-6:装置向一代Key发送未发送的转换后的数据,然后再向一代Key发送空包;
具体的,本实施例中的一代Key的格式为128或256字节数据;
本实施例中,一代Key接收到数据后进行签名得到第一签名结果,并将其返回给装置;
步骤218:装置判断是否接收到一代Key返回的第一签名结果,是则执行步骤219,否则输出错误信息,结束本次操作,返回步骤202;
本实施例中,如返回的第一签名结果大于端点的最大包长度,装置也分包接收一代Key返回的第一签名结果,并将接收到数据包后存储到缓存中,当接收完成后继续后续步骤,具体接收过程包括:
步骤218-1:装置判断是否接收到一代Key返回的数据,是则执行步骤218-2,否则输出错误信息,结束本次操作,返回步骤202;
步骤218-2:装置接收数据包,并存储在缓存区中;
步骤218-3:装置判断缓存中的数据是否正确,是则装置接收到一代Key返回的第一签名结果,否则返回步骤218-1;
步骤219:装置从待签名数据中提取关键信息,输出关键信息并等待用户确认;
步骤220:装置判断是否接收到用户的确认信息,是则执行步骤221,否则输出错误信息,结束本次操作,返回步骤202;
步骤221:装置对第一签名结果进行处理,并将处理结果转换为符合二代Key的格式并存储到缓存中,返回步骤202;
本实施例中装置对第一签名结果进行处理包括:对第一签名结果进行加密或在第一签名结果中添加标识或在第一签名结果中增加校验码等操作,用来标识该签名结果是一代Key返回的;
加密操作可以使用对称密钥或非对称密钥,对称密钥和非对称密钥为预先存储的或者随机生成的,具体的,本实施例中使用装置序列号对签名结果进行加密操作;
当主机接收到处理结果时,能识别出处理结果是一代Key通过本发明提供的装置发送来的。
为了安全操作,在步骤217中装置将转化后的待签名数据发送给一代Key之前,需要对操作用户的身份进行验证,验证过程具体包括:
步骤217-1:装置输出提示用户输入一代Key的PIN码的信息,等待用户输入PIN码;
本实施例中,输出方式具体为:液晶显示器输出;用户在看到装置输出的信息后,通过按键输入PIN码;
步骤217-2:装置判断在预设时间是否接收到正确的PIN码,是则将转化后的数据发送给一代Key,否则结束;
本实施例中,步骤217-2具体包括:
步骤217-2-1:装置判断在预设时间内是否接收到用户输入的PIN码,是则执行步骤217-2-2,否则输出超时提示信息,结束操作,返回步骤202;
步骤217-2-2:装置判断接收到的PIN码是否与内部存储的PIN码相同,是则继续,否则输出错误提示信息,结束操作,返回步骤202;
本实施例中,装置内部存储的PIN码为向一代Key下发枚举命令时从一代Key中获取的;
当预先设置可多次输入PIN码时,在步骤217-2判断为否时,则执行步骤217-3,
步骤217-3:装置判断输入次数是否达到预设值,是则结束,否则返回步骤217-1。
本实施例中的装置也可在接收到主机下发的签名指令时从中提取关键信息输出等待用户确认,实现方式可参照实施例一,具体为:
本实施例中的步骤207-步骤210替换为步骤207’-步骤210’;
步骤207’:装置对签名指令解析得到待签名数据;
步骤208’:装置从待签名数据中提取关键信息,输出关键信息并等待用户确认;
步骤209’:装置判断是否接收到用户的确认信息,是则执行步骤210’,否则输出错误信息,结束本次操作,返回步骤202;
步骤210’:装置对待签名数据进行签名生成第二签名结果并将其存储到缓存中,返回步骤202;
相应的,步骤217-步骤220替换为步骤217’-步骤220’;
步骤217’:装置对签名指令解析得到待签名数据,从待签名数据中提取关键信息,输出关键信息并等待用户确认;
步骤218’:装置判断是否接收到用户的确认信息,是则执行步骤219’,否则输出错误信息,结束本次操作,返回步骤202;
步骤219’:装置将待签名数据转换为符合一代Key格式的数据并发送给一代Key;
步骤220’:装置判断是否接收到一代Key返回的第一签名结果,是则执行步骤221,否则输出错误信息,结束本次操作,返回步骤202。
实施例三
本发明实施例三提供一种转换装置的工作方法,作为一个独立的二代Key进行工作,如图3所示,包括:
步骤301:装置上电,进行初始化;
本实施例中,对所述装置的IO/RAM/LCD/SPI/USB/USB host等进行初始化;
步骤302:装置等待接收USB中断,当接收到USB中断时检测中断类型,如是setup则执行步骤303,如是in则执行步骤304,如是Out则执行步骤305;
步骤303:装置将自身设备信息存储到缓存中,返回步骤302;
步骤304:装置将缓存中的数据返回给主机,返回步骤302;
步骤305:装置判断接收到的指令是否合法,是则执行步骤306,否则给主机返回错误信息,返回步骤302;
具体的,在本实施例中,装置判断接收到的指令是否符合预先设置的二代Key可处理的指令格式,是则合法,否则不合法;
步骤306:装置判断接收到的指令是否为签名指令,是则执行步骤307,否则根据指令进行相应操作,并将结果存储到缓存中,返回步骤302;
如本实施例中接收到的指令为查询指令,则装置根据查询指令查找对应内容,并将查找到的内容存储到缓存中;因其他指令不再详述;
步骤307:装置对签名指令解析得到待签名数据,从待签名数据中提取关键信息,并输出等待用户确认;
步骤308:装置判断是否接收到用户的确认信息,是则执行步骤309,否则输出错误信息,结束本次操作,返回步骤302;
步骤309:装置对待签名数据进行签名,并将签名结果存储到缓存中,返回步骤302。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种转换装置的工作方法,其特征在于,包括:
步骤s1:装置上电初始化;
步骤s2:所述装置等待接收USB中断,当接收到USB中断时检测中断类型,如是setup则执行步骤s3,如是in则执行步骤s4,如是Out则执行步骤s5;
步骤s3:所述装置将自身设备信息存储到缓存中,返回步骤s2;
步骤s4:所述装置将缓存中的数据返回给主机,返回步骤s2;
步骤s5:所述装置检测指令的种类,如是一代Key的指令,则执行步骤s11;如是二代Key的指令,则执行步骤s6,如是其他种类的指令,则输出错误信息,结束本次操作,返回步骤s2;
步骤s6:所述装置判断接收到的指令是否为签名指令,是则执行步骤s7,否则根据指令进行相应操作,并将操作结果存储到缓存中,返回步骤s2;
步骤s7:所述装置对所述签名指令解析得到待签名数据,并对所述待签名数据进行签名得到第二签名结果;
步骤s8:所述装置从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s9:所述装置判断是否接收到用户的确认信息,是则执行步骤s10,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s10:所述装置将所述第二签名结果存储到缓存中,返回步骤s2;
步骤s11:所述装置判断是否有一代Key与其连接,是则执行步骤s12,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s12:所述装置判断所述一代Key的枚举标志是否置位,是则执行步骤s14,否则执行步骤s13;
步骤s13:所述装置打开与所述一代Key连接的端口,从所述一代Key中获取设备信息并将其存储到缓存中,将所述一代Key的枚举标志置位,执行步骤s14;
步骤s14:所述装置判断接收到的指令是否为签名指令,是则执行步骤s15,否则根据指令进行相应操作,并将操作结果存储到所述缓存中,返回步骤s2;
步骤s15:所述装置对所述签名指令解析得到待签名数据,将所述待签名数据转化为符合一代Key格式的数据并将其发送给所述一代Key;
步骤s16:所述装置判断是否接收到所述一代Key返回的第一签名结果,是则执行步骤s17,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s17:所述装置从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s18:所述装置判断是否接收到用户的确认信息,是则执行步骤s19,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s19:所述装置对所述第一签名结果进行处理,并将处理结果转换为符合二代Key的格式存储到所述缓存中,返回步骤s2。
2.如权利要求1所述的方法,其特征在于,所述步骤s7-步骤s10替换为步骤s7’-步骤s10’;
步骤s7’:所述装置对所述签名指令解析得到待签名数据;
步骤s8’:所述装置从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s9’:所述装置判断是否接收到用户的确认信息,是则执行步骤s10’,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s10’:所述装置对所述待签名数据进行签名生成第二签名结果并存储到所述缓存中,返回步骤s2;
相应的,步骤s15-步骤s18替换为步骤s15’-步骤s18’;
步骤s15’:所述装置对所述签名指令解析得到待签名数据,从所述待签名数据中提取关键信息,输出所述关键信息并等待用户确认;
步骤s16’:所述装置判断是否接收到用户的确认信息,是则执行步骤s17’,否则输出错误信息,结束本次操作,返回步骤s2;
步骤s17’:所述装置将所述待签名数据转换为符合一代Key格式的数据并发送给所述一代Key;
步骤s18’:所述装置判断是否接收到所述一代Key返回的第一签名结果,是则执行步骤s19,否则输出错误信息,结束本次操作,返回步骤s2。
3.如权利要求1或2所述的方法,其特征在于,所述装置判断是否接收到用户的确认信息,具体为:所述装置判断在预设时间内是否接收到用户的确认信息。
4.如权利要求1或2所述的方法,其特征在于,所述检测中断类型具体包括:所述装置通过读取所述缓存中的标志位判断中断类型。
5.如权利要求1或2所述的方法,其特征在于,所述装置判断是否有一代Key与其连接,具体包括:
当所述装置通过外部电信号或所述缓存中的标志位判断有设备与其连接时,判断所述设备的PID是否与一代Key的PID相同,是则有一代Key与其连接,否则没有一代Key与其连接。
6.如权利要求1或2所述的方法,其特征在于,所述装置从所述一代Key中获取设备信息,包括:
所述装置调整其与所述一代Key的通信速度,并将设备已连接标志置位;
所述装置向所述一代Key下发枚举命令,获取所述一代Key的设备信息。
7.如权利要求1或2所述的方法,其特征在于,所述装置将所述待签名数据转换为符合一代Key的格式并发送给所述一代Key,具体包括:
步骤p11:所述装置判断转化后的数据长度是否大于端点的最大包长度,是则执行步骤p12,否则执行步骤p14;
步骤p12:所述装置以所述最大包长度向所述一代Key发送部分转化后的数据;
步骤p13:所述装置判断未发送的转换后的数据的长度是否大于所述端点的最大包长度,是则返回步骤p12,否则执行步骤p14;
步骤p14:所述装置判断未发送的转换后的数据的长度是否小于所述端点最大包长度,是则执行步骤p15,否则执行步骤p16;
步骤p15:所述装置向所述一代Key发送所述未发送的转换后的数据;
步骤p16:所述装置向所述一代Key发送所述未发送的转换后的数据,然后再向所述一代Key发送空包。
8.如权利要求7所述的方法,其特征在于,所述装置判断是否接收到所述一代Key返回的第一签名结果,包括:
步骤p21:所述装置判断是否接收到所述一代Key返回的数据,是则执行步骤p22,否则输出错误信息,结束本次操作,返回步骤s2;
步骤p22:所述装置接收数据,并存储在缓存中;
步骤p23:所述装置判断所述缓存中的数据是否正确,是则所述装置接收到所述一代Key返回的第一签名结果,否则返回步骤p21。
9.如权利要求1或2所述的方法,其特征在于,所述装置对所述第一签名结果进行处理,具体包括:
所述装置对所述第一签名结果进行加密或在所述第一签名结果中添加标识或在所述第一签名结果中增加校验码。
10.如权利要求1或2所述的方法,其特征在于,在所述装置将转化后的数据发送给所述一代Key之前,包括:
步骤a1:所述装置输出提示用户输入所述一代Key的PIN码的信息,等待用户输入PIN码;
步骤a2:所述装置判断在预设时间内是否接收到正确的PIN码,是则将所述转化后的数据发送给所述一代Key,否则输出错误信息,结束本次操作,返回步骤s2。
11.如权利要求10所述的方法,其特征在于,所述步骤a2具体包括:
步骤a21:装置判断在预设时间内是否接收到用户输入的PIN码,是则执行步骤a22,否则输出超时提示信息,结束操作,返回步骤s2;
步骤a22:所述装置判断接收到的所述PIN码是否与内部存储的PIN码相同,是则将所述转化后的数据发送给所述一代Key,否则输出错误信息,结束本次操作,返回步骤s2。
12.如权利要求11所述的方法,其特征在于,在所述步骤a22判断为否时,还包括:
步骤a23:所述装置判断输入次数是否达到预设值,是则输出错误信息,结束本次操作,返回步骤s2,否则返回步骤a1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210417421.5A CN102938034B (zh) | 2012-10-26 | 2012-10-26 | 一种转换装置的工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210417421.5A CN102938034B (zh) | 2012-10-26 | 2012-10-26 | 一种转换装置的工作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102938034A CN102938034A (zh) | 2013-02-20 |
CN102938034B true CN102938034B (zh) | 2015-03-04 |
Family
ID=47696930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210417421.5A Expired - Fee Related CN102938034B (zh) | 2012-10-26 | 2012-10-26 | 一种转换装置的工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102938034B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103207964B (zh) * | 2013-03-15 | 2016-05-25 | 飞天诚信科技股份有限公司 | 一种多功能智能密钥设备及其工作方法 |
CN111193690B (zh) * | 2018-11-15 | 2023-08-22 | 中兴通讯股份有限公司 | 一种请求消息的处理方法、装置及计算机可读存储介质 |
CN112579500A (zh) * | 2020-12-08 | 2021-03-30 | 深圳市道通科技股份有限公司 | 一种防插错usb接口的提示方法、装置和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540738A (zh) * | 2008-12-31 | 2009-09-23 | 北京飞天诚信科技有限公司 | 信息安全中间设备及其使用方法 |
CN101650700A (zh) * | 2009-09-17 | 2010-02-17 | 北京飞天诚信科技有限公司 | 一种支持多逻辑通道通信的方法和设备 |
CN101820346A (zh) * | 2010-05-04 | 2010-09-01 | 北京飞天诚信科技有限公司 | 一种安全数字签名方法 |
CN101876959A (zh) * | 2009-11-10 | 2010-11-03 | 神州付(北京)软件技术有限公司 | 数据传输设备及方法 |
CN101996332A (zh) * | 2009-08-26 | 2011-03-30 | 深圳市文鼎创数据科技有限公司 | 智能安全装置 |
CN102013981A (zh) * | 2010-07-23 | 2011-04-13 | 杭州每日科技有限公司 | 一种应用于移动通讯终端的网上银行数据认证装置及方法 |
CN102412968A (zh) * | 2011-10-17 | 2012-04-11 | 中金金融认证中心有限公司 | 一种通过音频接口转接usb协议设备实现pki应用的系统及方法 |
CN102685121A (zh) * | 2012-05-03 | 2012-09-19 | 飞天诚信科技股份有限公司 | 一种数字签名方法和装置 |
-
2012
- 2012-10-26 CN CN201210417421.5A patent/CN102938034B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540738A (zh) * | 2008-12-31 | 2009-09-23 | 北京飞天诚信科技有限公司 | 信息安全中间设备及其使用方法 |
CN101996332A (zh) * | 2009-08-26 | 2011-03-30 | 深圳市文鼎创数据科技有限公司 | 智能安全装置 |
CN101650700A (zh) * | 2009-09-17 | 2010-02-17 | 北京飞天诚信科技有限公司 | 一种支持多逻辑通道通信的方法和设备 |
CN101876959A (zh) * | 2009-11-10 | 2010-11-03 | 神州付(北京)软件技术有限公司 | 数据传输设备及方法 |
CN101820346A (zh) * | 2010-05-04 | 2010-09-01 | 北京飞天诚信科技有限公司 | 一种安全数字签名方法 |
CN102013981A (zh) * | 2010-07-23 | 2011-04-13 | 杭州每日科技有限公司 | 一种应用于移动通讯终端的网上银行数据认证装置及方法 |
CN102412968A (zh) * | 2011-10-17 | 2012-04-11 | 中金金融认证中心有限公司 | 一种通过音频接口转接usb协议设备实现pki应用的系统及方法 |
CN102685121A (zh) * | 2012-05-03 | 2012-09-19 | 飞天诚信科技股份有限公司 | 一种数字签名方法和装置 |
Non-Patent Citations (1)
Title |
---|
应用于网上银行增强型USB Key的设计探讨;何永福;《计算机安全》;20100629(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102938034A (zh) | 2013-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169276B2 (en) | Detecting a communication mode via interruptions | |
US8255930B2 (en) | Method and system for dynamically switching between different device configurations | |
CN106687985B (zh) | 用于基于特权模式的安全输入机构的方法 | |
KR102459318B1 (ko) | 블록체인에 기반한 정보 처리 방법 및 디바이스 및 컴퓨터 판독가능 저장 매체 | |
CN101834946A (zh) | 一种进行安全手机支付的方法和进行安全支付的手机 | |
TW559695B (en) | A system and method for verifying the integrity of stored information within an electronic device | |
CN204374963U (zh) | 一种基于tcm芯片的服务器加密模块 | |
CN104008351A (zh) | Windows应用程序完整性校验系统、方法及装置 | |
EP2690840A1 (en) | Internet based security information interaction apparatus and method | |
CN102938034B (zh) | 一种转换装置的工作方法 | |
WO2014017761A1 (ko) | 보안 기능을 갖는 저장 장치 리더기 및 이를 이용한 보안 방법 | |
CN104468106A (zh) | 一种云计算终端认证方法 | |
KR20210024070A (ko) | 저장된 데이터의 안전한 운행 방법 및 시스템 | |
CN101408970A (zh) | 实现批量电子交易的方法、系统和装置以及电子签名工具 | |
CN103326863A (zh) | 一种电子签名工具的签名方法 | |
CN105162605A (zh) | 一种数字签名及认证方法 | |
CN111447210A (zh) | 一种基于rk3399主控芯片的usb安全通信方法及通信系统 | |
CN104102870B (zh) | 电子签名认证扩展设备及信息处理方法 | |
CN102012978A (zh) | Iso文件安全升级的方法及系统 | |
CN105405010B (zh) | 交易装置、使用其的交易系统与交易方法 | |
CN201583939U (zh) | 串行外设接口除错卡装置 | |
CN206115612U (zh) | 互联网金融安全识别金融交易终端 | |
CN101639883B (zh) | 一种校验pin码的方法和智能密钥设备 | |
CN205229976U (zh) | 一种兼容多种鼠标类型的kvm系统 | |
WO2019174417A1 (zh) | Java卡外设访问方法及Java卡虚拟机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150304 |
|
CF01 | Termination of patent right due to non-payment of annual fee |