本发明属于图像形成的技术领域,尤其涉及一种成像装置与驱动程序之间的安全认证方法。
背景技术:
在现有技术中,将多个控制终端以及成像装置通过网络连接成一个成像系统,并且通常是多个控制终端可以共同使用一个以上的成像装置,在控制终端上安装能够控制成像装置执行成像操作的驱动程序。
但是发明人在实现本发明的过程中发现,现有技术中的驱动程序与成像装置之间并不设立安全认证机制,即成像装置不认证打印数据的来源是否为自己认可的驱动程序,只要接收到了可以识别的打印数据就进行输出,这样就容易造成监听者可以通过窃取成像装置接收打印数据的端口信息,在控制终端上通过第三方装置或者程序向成像装置发送打印数据;或者监听者窃取了成像装置传送扫描数据的端口信息,在控制终端上通过第三方装置或者程序接收成像装置向控制终端上传的扫描数据,因此监听者可能通过第三方装置或者程序向成像装置传送不允许打印的机密数据,或者从成像装置获取扫描到的机密数据,造成机密数据的泄漏。
技术实现要素:
本发明要解决的技术问题是提出一种成像装置与驱动程序之间的安全认证方法,可以使成像装置安全认证与成像装置相互通信的控制终端上的驱动程序,防止监听者通过第三方装置或者程序传送打印数据或者接收扫描数据,造成机密数据的泄漏。
本发明还提供一种成像装置与驱动程序之间的安全认证方法,使驱动程序有效安全认证成像装置,防止非法改造的成像装置接收驱动程序下发的打印数据,造成机密数据的泄露。
本发明还提供一种成像装置与驱动程序之间的安全认证方法,通过成像装置对控制终端的驱动程序的安全认证以及控制终端的驱动程序对成像装置的安全认证,更有效的保证成像装置与驱动程序之间成像数据的安全传输。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为一种成像装置与驱动程序之间的安全认证方法的流程图;
图2为另一种成像装置与驱动程序之间的安全认证方法的流程图;
图3为另一种成像装置与驱动程序之间的安全认证方法的流程图;
图4为另一种成像装置与驱动程序之间的安全认证方法的流程图;
图5为驱动程序的安全模块组成的结构框图;
图6为成像装置的安全模块组成的结构框图;
图7为另一种成像装置与驱动程序之间的安全认证方法的流程图;
图8为另一种成像装置与驱动程序之间的安全认证方法的流程图;
图9为另一种成像装置与驱动程序之间的安全认证方法的流程图;
图10为另一种成像装置与驱动程序之间的安全认证方法的流程图。
图11为另一种成像装置与驱动程序之间的安全认证方法的流程图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在成像系统中,成像装置可以通过网络或者本地接口(如USB接口、蓝牙接口等)接收控制终端传送的打印数据,或者通过网络或者本地接口向控制终端传送扫描数据。这里的成像装置可以为打印机、复印机、扫描仪或者具有打印、扫描、复印、传真等功能的多功能一体机。为了防止监听者通过第三方装置或者程序非法传送打印数据或者接收扫描数据,造成机密数据的泄漏,成像装置与成像装置相互通信的控制终端上的驱动程序之间进行安全认证,判断该驱动程序是成像装置认可的驱动程序还是没有授权认证的第三方装置或者程序,安全认证通过后成像装置才会从驱动程序接收打印数据或者向驱动程序传送扫描数据。
第一种实施方式
一种成像装置与驱动程序之间的安全认证方法,包括:
步骤S1,成像装置向驱动程序发送认证请求;
步骤S2,驱动程序产生认证数据,向成像装置发送认证数据;
步骤S3,成像装置依据认证数据判断对驱动程序进行的安全认证是否通过。
其中,成像装置包括第一认证信息,认证数据包括第二认证信息;并且成像装置根据第一认证信息和第二认证信息是否满足预定的运算规则,判断对驱动程序进行的安全认证是否通过。
具体的,成像装置响应于成像装置首次连接至安装有驱动程序的控制终端和/或者响应于驱动程序需要与成像装置需要交互成像作业时,向驱动程序发送认证请求。
在驱动程序与成像装置之间相互传输成像数据之前,即驱动程序下发打印数据之前,或者成像装置向驱动程序上传扫描数据之前,进行上述的安全认证,能够使成像装置安全认证驱动程序通过后,才开始传输成像数据,防止不授权认证的第三方装置或者软件程序与成像装置之间进行数据交互,造成机密数据的泄露。
上述的安全认证方法的具体流程如图1所示:
步骤1101,成像装置产生认证信息A,依据第一密钥K1和认证信息A产生第一加密数据M1,向驱动程序发送第一加密数据M1;步骤1101实现了步骤S1中成像装置向驱动程序发送认证请求的作用;
步骤1201,驱动程序依据第二密钥K2对接收的第一加密数据M1解密获取认证信息A’,并向成像装置返回验证信息A’;
步骤1102,成像装置比较认证信息A和A’是否一致;
如果认证信息A和A’一致,表示安全认证成功(步骤1013),如果不一致表示安全认证失败(步骤1014)。
通过成像装置安全认证的驱动程序就是能够被成像装置认可的驱动程序或应用程序,如与成像装置同一生产厂家开发的用于控制成像装置的驱动程序或应用程序,一般通过安全认证的驱动程序或应用程序都与成像装置配套生产开发。
本实施例中,第一认证信息包括认证信息A,认证信息A可以为一个随机数,或者预先设定的成像指令,该成像指令可以为打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数等。在控制终端下发打印数据之前,或者成像装置向控制终端上传扫描数据之前,在驱动程序上都会产生需要处理成像数据的成像指令,如打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数、浓度信息、逆序打印、逐份打印、合并扫描等,可以利用现有成像装置的驱动程序上能够执行的成像指令作为认证信息A。本实施例中,第二认证信息包括认证信息A’,成像装置根据认证信息A与A’是否相等,判断对驱动程序进行的安全认证是否通过。
当认证信息A为一个随机数a时,驱动程序把对第一加密数据M1解密获取的随机数a’返回到成像装置,成像装置对随机数a与a’进行比较,当随机数a’与随机数a一致时,则表示控制终端的驱动程序为成像装置认可的驱动程序,安全认证通过;随机数a’与随机数a不一致时,表示控制终端的驱动程序不是授权的驱动程序,不接收驱动程序下发的打印数据或者不向驱动程序传送扫描数据。
当成像装置对控制终端的驱动程序安全认证(无论成功与否)后,随机数a会改变,比如增加1或者减少1,保存在成像装置中,每次用户使用控制终端的驱动程序进行成像操作时,成像装置都会对驱动程序进行安全认证,因此随机数a都会一直改变,保证安全认证的可靠性。
当认证信息A为一个成像指令Z时,驱动程序对第一加密数据M1解密获取成像指令Z’并返回成像指令Z’到成像装置,成像装置比较成像指令Z’与Z,当一致时,则表示控制终端的驱动程序为成像装置认可的驱动程序;不一致时,表示控制终端的驱动程序不是授权的驱动程序,不接收驱动程序下发的打印数据或者不向驱动程序传送扫描数据。
另外,安全认证方法的具体流程还可以如图2所示:
步骤2101,成像装置产生认证信息A,向驱动程序发送认证信息A;
步骤2201,驱动程序依据第二密钥K2对认证信息A进行加密成第二加密数据M2,并向成像装置返回第二加密数据M2,这里第二加密数据M2属于认证数据;
步骤2102,成像装置使用第一密钥K1对第二加密数据M2解密获取认证信息A’;
步骤2103,成像装置比较认证信息A和A’是否一致;
如果一致,表示安全认证成功(步骤2014);如果不一致,表示安全认证失败(步骤2015)。
当认证信息A为随机数a时,驱动程序依据第二密钥K2对随机数a进行加密成第二加密数据M2,并返回第二加密数据M2到成像装置,成像装置使用第一密钥K1对第二加密数据解密获取随机数a’,成像装置对随机数a与a’进行比较,当随机数a’与随机数a一致时,则表示控制终端的驱动程序为成像装置认可的驱动程序,安全认证通过;随机数a’与随机数a不一致时,表示控制终端的驱动程序不是授权的驱动程序,不接收驱动程序下发的打印数据或者不向驱动程序传送扫描数据。
当认证信息A为成像指令Z时,驱动程序使用第二密钥K2对成像指令Z进行加密成第二加密数据M2,并返回第二加密数据M2到成像装置,成像装置使用第一密钥K1对第二加密数据解密获取成像指令Z’,成像装置对成像指令Z’与Z进行比较,当成像指令Z’与Z一致时,则表示控制终端的驱动程序为成像装置认可的驱动程序,安全认证通过;成像指令Z’与Z不一致时,表示控制终端的驱动程序不是授权的驱动程序,不接收驱动程序下发的打印数据或者不向驱动程序传送扫描数据。
其中,本实施例的第一密钥K1和第二密钥K2属于相同的密钥,都是私钥,使用私钥依据对称加密算法(如DES、3DES、TDEA)进行加密或者解密处理。第一密钥K1预先存储在成像装置内部的存储单元中,同理第二密钥K2预先存储在驱动程序的存储组件中。
第二种实施方式
上述的实施例在成像装置对控制终端的驱动程序执行安全认证后,还需要执行控制终端的驱动程序对成像装置的安全认证,达到相互安全认证,能够避免控制终端中的与正规成像装置对应的驱动程序下发的打印数据传送到非法改造的成像装置,造成机密数据的泄露。
因此,在第一实施例的基础上,当成像装置对控制终端的驱动程序安全认证后,或者在成像装置对驱动程序安全认证之前,安全认证方法还包括控制终端的驱动程序对成像装置的合法性的安全认证,验证成像装置是否为驱动程序认可的正规装置。
本实施例的安全认证方法在上述步骤S1之前,或者步骤S3之后还包括:
步骤S4,驱动程序向成像装置发送验证请求;
步骤S5,成像装置产生验证数据,向驱动程序发送所述验证数据;
步骤S6,驱动程序依据所述验证数据来判断对成像装置进行的安全认证是否通过。
其中,驱动程序包括第一验证信息,验证数据包括第二验证信息;并且驱动程序根据第一验证信息和第二验证信息是否满足预定的运算规则,判断对成像装置进行的安全认证是否通过。
本实施例的安全认证方法为成像装置和驱动程序之间相互安全认证的方法,具体如图3所示,相互安全认证方法的具体步骤包括:
与图1所示的步骤1101-1104、1201一致,当成像装置安全认证驱动程序通过后,即安全认证成功(步骤1103)后返回安全认证成功的消息到控制终端的驱动程序,则控制终端的驱动程序发起安全认证成像装置的流程,进入步骤3201;
步骤3201,驱动程序产生验证信息B,依据第二密钥K2和验证信息B产生第三加密数据M3,向成像装置发送第三加密数据M3;步骤3201实现了步骤S4中控制终端的驱动程序向成像装置发送验证请求的作用;
步骤3101,成像装置依据述第一密钥K1对第三加密数据M3进行解密获取到验证信息B’,向驱动程序发送验证信息B’;
步骤3202,控制终端的驱动程序比较验证信息B和验证信息B’是否一致;
步骤3203,如果验证信息B和验证信息B’是一致的,则安全认证成功;
步骤3204,验证信息B和验证信息B’不一致,则安全认证失败。
验证信息B可以为一个随机数b,或者预先设定的成像指令,该成像指令可以为打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数等。在控制终端下发打印数据之前,或者成像装置向控制终端上传扫描数据之前,在驱动程序上都会产生需要处理成像数据的成像指令,如打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数、浓度信息、逆序打印、逐份打印、合并扫描等,可以利用现有成像装置的驱动程序上能够执行的成像指令作为验证信息B。
本实施例中,第一验证信息包括验证信息B,第二验证信息包括认证信息B’,驱动程序根据认证信息B与B’是否相等,判断对成像装置进行安全认证是否通过。
当验证信息B为一个随机数b时,成像装置依据第一密钥K1对第三加密数据M3解密获取随机数b’,返回随机数b’到驱动程序,驱动程序比较随机数b与b’,当b与b’一致时,则表示成像装置属于正规的成像装置,安全认证通过;b与b’不一致时,表示成像装置不属于授权的成像装置,不向成像装置发送打印数据或者不接收成像装置发送的扫描数据。
当控制终端的驱动程序对成像装置安全认证(无论成功与否)后,随机数b会改变,比如增加1或者减少1,保存在驱动程序中,每次用户使用控制终端的驱动程序进行打印或其他成像操作时,驱动程序都会对成像装置进行是否属于正规装置的安全认证,因此随机数b都会一直改变,保证安全认证的可靠性。
当验证信息B为一个成像指令Z时,成像装置依据第一密钥K1对第三加密数据M3解密获取的成像指令Z’,返回成像指令Z’到驱动程序,驱动程序比较成像指令Z’与Z’,当成像指令Z’与Z’一致时,则表示成像装置属于正规的成像装置,安全认证通过;成像指令Z’与Z’不一致时,表示成像装置不属于授权的成像装置,不向成像装置发送打印数据或者不接收成像装置发送的扫描数据。
另外,相互安全认证方法的具体步骤还可以如图4所示,与图2的所有步骤一致,当成像装置安全认证驱动程序后,即安全认证成功(步骤2104)后返回安全认证成功的消息到控制终端的驱动程序,则控制终端的驱动程序发起安全认证成像装置的流程,进入步骤4201;
步骤4201,驱动程序产生验证信息B,向成像装置发送验证信息B,步骤4201实现了控制终端的驱动程序向成像装置发送验证请求的作用;
步骤4101,成像装置依据第一密钥K1对验证信息B进行加密生成第四加密数据M4,向驱动程序发送第四加密数据M4;上述的验证数据包括第四加密数据M4;
步骤4202,驱动程序依据第二密钥K2对第四加密数据M4解密获取验证信息B’;
步骤4203,驱动程序比较验证信息B和B’是否一致;
步骤4204,如果步骤4203的判断结果是一致的,则安全认证成功;
步骤4205,如果步骤4203的判断结果是不一致,则安全认证失败。
当验证信息B为一个随机数b时,成像装置依据第一密钥K1对随机数b进行加密成第四加密数据M4,返回第四加密数据M4到驱动程序,驱动程序依据第二加密密钥K2对第四加密密钥解密获取随机数b’,驱动程序比较随机数b与b’,当b与b’一致时,则表示成像装置属于正规的成像装置,安全认证通过;b与b’不一致时,表示成像装置不属于授权的成像装置,不向成像装置发送打印数据或者不接收成像装置发送的扫描数据。
当验证信息B为一个成像指令Z时,成像装置使用第一密钥K1对成像指令C进行加密成第四加密数据M4,返回第四加密数据M4到驱动程序,驱动程序依据第二加密密钥K2对第四加密密钥解密获取成像指令Z’,驱动程序比较成像指令Z’与Z,当成像指令Z’与Z一致时,则表示成像装置属于正规的成像装置,安全认证通过;成像指令Z’与Z不一致时,表示成像装置不属于授权的成像装置,不向成像装置发送打印数据或者不接收成像装置发送的扫描数据。
其中,第一密钥K1和第二密钥K2属于属于相同的密钥,都是私钥,使用私钥依据对称加密算法(如DES、3DES、TDEA)进行加密或者解密处理。
从图3至图4可以看出,通过成像装置对控制终端的驱动程序的安全认证以及控制终端的驱动程序对成像装置的安全认证,更有效的保证成像装置与驱动程序之间成像数据的安全传输,由于有了成像装置对控制终端的驱动程序的安全认证,防止第三方装置或程序能够执行打印数据的下发或者接收成像装置发送的扫描数据,因为第三方装置或软件无法通过成像装置的安全认证,同时对于改造后的非法成像装置,由于其无法得到控制终端的驱动程序的安全认证,也无法接收驱动程序下发的打印数据,因此双向的安全认证通过后,成像装置与驱动程序之间才开始成像数据的传输,更符合安全数据传输的需求。
对于本实施例的方法步骤,相互安全认证方法还可以为包括图1中的所有步骤以及图4中的步骤4201、4101、4202、4203、4204、4205,即,首先成像装置启动对控制终端的驱动程序的安全认证,执行步骤1101-1201-1102-1103-1104,安全认证成功后,即步骤1103后返回安全认证成功的消息到驱动程序,则按照步骤4201-4101-4202-4203-420-4205进行控制终端的驱动程序对成像装置的安全认证。或者相互安全认证方法还可以包括图2中的所有步骤和图3中的步骤3201-3204和步骤3101,即首先成像装置启动对控制终端的驱动程序的安全认证,执行步骤2101-2201-2102-2103-2104-2105,安全认证通过后(即步骤2104后)执行步骤3201-3101-3202-3203-3204进行控制终端的驱动程序对成像装置的安全认证。
对于相互安全认证方法,还可以先由控制终端的驱动程序安全认证成像装置后再由成像装置安全认证控制终端的驱动程序,这里的图3、4给出的顺序是不限定的,可以先执行由控制终端的驱动程序安全认证成像装置的步骤后再执行由成像装置安全认证控制终端的驱动程序的步骤,或者先执行成像装置安全认证控制终端的驱动程序的步骤后再执行由控制终端的驱动程序安全认证成像装置的步骤。以图3为例,可以变换相互安全认证的顺序,首先按照步骤3201-3101-3202-3203-3204进行控制终端的驱动程序对成像装置的安全认证,如果安全认证成功(即步骤3203)后,返回安全认证成功的消息到成像装置,则成像装置启动对控制终端的驱动程序的安全认证,执行步骤1101-1201-1102-1103-1104。以图4为例,相互安全认证的方法还可以为:首先按照步骤4201-4101-4202-4203-420-4205进行控制终端的驱动程序对成像装置的安全认证,如果安全认证成功(即步骤4204)后,返回安全认证成功的消息到成像装置,则成像装置启动对控制终端的驱动程序的安全认证,执行步骤2101-2201-2102-2103-2104-2105。
另外,相互安全认证方法还可以包括:首先按照步骤3201-3101-3202-3203-3204进行控制终端的驱动程序对成像装置的安全认证,如果安全认证成功(即步骤3203)后,返回安全认证成功的消息到成像装置,则成像装置启动对控制终端的驱动程序的安全认证,执行步骤2101-2201-2102-2103-2104-2105。
另外,相互安全认证方法还可以包括:首先按照步骤4201-4101-4202-4203-420-4205进行控制终端的驱动程序对成像装置的安全认证,如果安全认证成功(即步骤4204)后,返回安全认证成功的消息到成像装置,则成像装置启动对控制终端的驱动程序的安全认证,执行步骤1101-1201-1102-1103-1104。
第三实施例
成像系统中,为了实现成像数据的安全传输,在控制终端安装的驱动程序中增加了安全模块,如图5所示,安全模块500包括加密组件501、解密组件502、密钥存储组件503、安全存储组件504。驱动程序中的安全模块500可以实现对成像装置的安全认证,同时可以和成像装置进行通信,被成像装置进行安全认证。密钥存储组件503存储第二密钥K2。安全存储组件504存储验证信息B。驱动程序对需要打印的文档数据进行处理,将其转换成成像装置可以识别的打印描述语言,如PCL、PS、GDI等,或者接收成像装置上传的扫描数据,将扫描数据转换成用户指定的文档,如word、PDF等。
同时,如图6所示,在成像装置的系统芯片SOC中加入一个安全模块600,安全模块600包括加密单元601、解密单元602、密钥存储单元603、安全存储单元604,通过安全模块600成像装置可以对与其通信的驱动程序进行安全认证,和/或被控制终端的驱动程序安全认证。密钥存储单元603存储第一密钥K1,安全存储单元604存储认证信息A。
成像装置与控制终端的驱动程序的安全认证过程如下:
成像装置的安全模块600向控制终端发送认证请求,驱动程序的安全模块500产生认证数据,向成像装置发送认证数据;
成像装置的安全模块600依据认证数据判断对驱动程序进行的安全认证是否通过。
具体为:
成像装置的安全模块600产生认证信息A存储在安全存储单元604,加密单元601依据密钥存储单元603中的第一密钥K1和安全存储单元604中的认证信息A产生第一加密数据M1,向驱动程序发送第一加密数据M1;
驱动程序的安全模块500接收第一加密数据M1存储在安全存储组件504,解密组件502使用密钥存储组件503存储的第二密钥K2对安全存储组件504中的第一加密数据M1解密获取认证信息A’;
安全模块500向成像装置发送认证信息A’;
成像装置的安全模块600接收认证信息A’存储在安全存储单元604中,比较存储在安全存储单元604中的认证信息A和A’;如果认证信息A和A’一致,表示成像装置对驱动程序的安全认证通过。
另外,成像装置的安全模块600产生认证信息A,向驱动程序发送认证信息A;
驱动程序的安全模块500接收认证信息A存储在安全存储组件504中,加密组件501依据密钥存储组件503中的第二密钥K2对安全存储组件504中的认证信息A进行加密生成第二加密数据M2,向成像装置发送第二加密数据M2;
成像装置的安全模块600把第二密钥数据M2存储在安全存储单元604中,解密单元602使用密钥存储单元603中的第一密钥K1对安全存储单元604中的第二加密数据M2解密获取认证信息A’存储在安全存储单元604中;安全模块600比较存储在安全存储单元604中的认证信息A和A’是否一致,当一致时,成像装置对驱动程序进行的安全认证通过。
第一密钥K1在成像装置出厂前存储在密钥存储单元603中。
通过上述的安全认证操作,能够通过成像装置的安全模块对驱动程序进行安全认证,确保成像装置与合法的驱动程序相互往来数据,当控制终端上的驱动程序不是图5中的授权的驱动程序,无法通过成像装置的安全认证,因此防止了监听者使用成像装置的第三方装置和程序使用成像装置泄露机密数据。
当认证信息A为随机数时,则安全存储组件504存储该随机数,并在成像装置对驱动程序的安全认证后(无论认证通过与否),安全模块500使安全存储组件504中的随机数改变,增加1或者减1。
认证信息A为一个成像指令时,则安全存储组件504存储该成像指令。
另外,当成像装置的安全模块成功认证驱动程序后,驱动程序的安全模块也会对成像装置进行安全认证,当成像装置的SOC被更换时,则成像装置的安全模块将会被替换。此时驱动程序将无法认证成像装置为正规的装置,因此不会向当前的成像装置发送打印数据,防止非法改造的成像装置泄露打印数据。
具体的安全认证还包括以下实施过程:
驱动程序的安全模块500向成像装置发送验证请求;
成像装置的安全模块600产生验证数据,向驱动程序发送验证数据;
驱动程序的安全模块500依据验证数据来判断对成像装置进行的安全认证是否通过。
具体为:驱动程序的安全模块500产生验证信息B存储在安全存储组件504中,加密组件501依据存储在密钥存储组件503中的第二密钥K2和存储在安全存储组件504中的验证信息B产生第三加密数据M3,向成像装置发送第三加密数据M3;成像装置的安全模块600接收第三加密数据M3存储在安全存储单元604中,解密单元602使用密钥存储单元603存储的第一密钥K1对安全存储单元604存储的第三加密数据M3进行解密获取验证信息B’,向驱动程序发送验证信息B’;
安全模块500把接收的验证信息B’存储在安全存储单元504中,安全模块500比较存储在安全存储单元504中的验证信息B和B’是否一致,如果一致,则对成像装置的安全认证通过。
或者,
驱动程序的安全模块500产生验证信息B存储在安全存储组件504中,向成像装置发送验证信息B;
成像装置的安全模块600存储接收的验证信息B在安全存储单元604中,加密单元601依据密钥存储单元603中的第一密钥K1对安全存储单元604中的验证信息B进行加密生成第四加密数据M4,向驱动程序发送第四加密数据M4;
驱动程序的安全模块500接收第四加密数据存储在安全存储组件504中,解密组件502依据密钥存储组件503中的第二密钥K2对安全存储组件504中的第四加密数据M4解密获取验证信息B’存储在安全存储组件504中;驱动程序的安全模块500比较存储在安全存储组件504中的验证信息B和B’是否一致,当一致时,驱动程序对成像装置进行的安全认证通过。
当验证信息B为随机数时,则安全存储组件504存储该随机数,并在驱动程序对成像装置的安全认证后(无论通过与否),安全模块500使安全存储组件504中的随机数改变,增加1或者减1。
验证信息B为一个成像指令时,则安全存储组件504存储该成像指令。
通过在成像装置和驱动程序内部设置安全模块,能够互相认证对方是否合法正规,保证成像装置和驱动程序之间的成像数据的安全传输,防止机密数据被来源不明的第三方装置或软件传送到成像装置,同时也防止需要打印的机密数据传送到非法的成像装置。
本实施例的驱动程序的安全模块与成像装置的安全模块之间执行的安全认证方法如上述第一实施例和第二实施例的安全认证方法,因此这里不再赘述。
第四实施例
为了能够进一步保证成像装置与驱动程序之间的安全认证的有效性,在安全装置和驱动程序中都存储安全认证所需的认证信息C,认证信息C可以为成像指令,该成像指令可以为打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数等。在控制终端下发打印数据之前,或者成像装置向控制终端上传扫描数据之前,在驱动程序上都会产生需要处理成像数据的成像指令,如打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数、浓度信息、逆序打印、逐份打印、合并扫描等,可以利用现有成像装置的驱动程序上能够执行的成像指令作为认证信息C。或者认证信息C还可以为成像装置的生产厂家内部设定的安全数字。本实施例的安全认证方法如图7所示:
步骤7101,成像装置向驱动程序发送认证请求,认证请求中包括公钥Pb;
具体是,成像装置的安全模块600向驱动程序发送认证请求;安全模块600把存储在密钥存储单元603中的公钥Pb发送到驱动程序;
步骤7201,驱动程序使用公钥Pb加密认证信息C生成加密数据Pb(C),向成像装置发送加密数据Pb(C);;
具体为,驱动程序的安全模块500把获取的公钥Pb存储在密钥存储组件503中,加密组件501使用公钥Pb对存储在安全存储组件504中的验证信息C进行加密生成加密数据Pb(C),安全模块500向成像装置发送加密数据Pb(C);
步骤7102,成像装置依据私钥Ps对加密数据Pb(C)解密获取认证信息C’;
具体为,成像装置的安全模块600接收加密数据Pb(C)存储安全存储单元604中,解密单元602依据密钥存储单元603中的私钥Ps对加密数据Pb(C)解密获取验证数据C’存储在安全存储单元604中;
步骤7103,成像装置判断认证信息C和C’是否一致;
具体为,成像装置的安全模块600判断存储在安全存储单元604中的认证信息C和C’是否一致;
当步骤7103判断结果为一致时,则成像装置对驱动程序安全认证成功(步骤7104);否则,成像装置对驱动程序安全认证不成功(步骤7105)。
通过上述的安全认证方法,使用非对称加密的方法对成像装置与驱动之间的认证信息C进行加密防护,防止第三方装置或者程序获取到安全认证所需的认证信息。
上述的私钥Ps与公钥Pb在成像装置出厂前存储在安全模块600的密钥存储单元603中。每一个打印机都具有不同的私钥Ps与公钥Pb对。当每次驱动程序需要使用成像装置执行成像操作,如要进行打印或者开始扫描时,则需要对驱动程序执行安全认证,向驱动程序发送公钥Pb,依据非对称加密算法(如RSA)对认证信息C进行加密传输,保证成像装置与驱动程序的安全认证的可靠性。
另外,成像装置对与成像装置相互通信的控制终端上的驱动程序进行安全认证,还可以为如图8所示,
步骤8101,成像装置向驱动程序发送认证请求,认证请求中包括公钥Pb;
具体是,成像装置的安全模块600向驱动程序发送认证请求;安全模块600把存储在密钥存储单元603中的公钥Pb发送到驱动程序;
步骤8201,驱动程序产生对称加密密钥S;驱动程序依据对称加密密钥S对认证信息C进行加密产生加密数据S(C);驱动程序使用公钥Pb加密对称加密密钥S生成加密数据Pb(S);驱动程序向成像装置发送加密数据S(C)和Pb(S);
具体为,驱动程序的安全模块500把获取的公钥Pb存储在密钥存储组件503中,加密组件501产生对称加密密钥S存储在密钥存储组件503中;
加密组件501使用存储在密钥存储组件503中的对称加密密钥S对存储在安全存储组件504中的认证信息C加密生成加密数据S(C);然后,加密组件501使用存储在密钥存储组件503中的公钥Pb对存储在密钥存储组件503中的对称加密密钥S加密生成加密数据Pb(S);安全模块500把生成的加密数据S(C)和Pb(S)传送到成像装置;
步骤8102,成像装置依据私钥Ps对加密数据Pb(S)解密获取对称加密密钥S’,并使用对称加密密钥S’解密加密数据S(C)获取认证信息C’;
具体为,成像装置的安全模块600接收加密数据S(C)、Pb(S)存储在安全存储单元604中;
解密单元602使用密钥存储单元603中的私钥Ps对安全存储单元604中的加密数据Pb(S)解密获取对称加密密钥S’,并使用对称加密密钥S’对安全存储单元604中的加密数据S(C)解密获取认证信息C’;
在步骤8103中,安全模块600判断认证信息C’与C是否一致,当一致时,成像装置对驱动程序进行安全认证通过(步骤8104),当不一致时,表示安全认证失败(步骤8105)。
通过上述的安全认证方法,使用非对称加密算法和对称加密算法的结合对成像装置与驱动之间的认证信息C进行加密防护,防止第三方装置或者程序获取到安全认证所需的认证信息。
当使用图7或图8表示的安全认证方法使成像装置对驱动程序进行安全认证成功后,驱动程序的安全模块500也可以使用图7或图8的方法对成像装置进行安全认证,判定成像装置是否符合驱动程序要求的正规装置。
驱动程序的安全模块500对成像装置安全认证所用的验证信息为验证信息D,验证信息D可以为成像指令,该成像指令可以为打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数等。在控制终端下发打印数据之前,或者成像装置向控制终端上传扫描数据之前,在驱动程序上都会产生需要处理成像数据的成像指令,如打印开始指令、打印时间、打印数量、扫描时间、扫描开始指令、扫描页数、浓度信息、逆序打印、逐份打印、合并扫描等,可以利用现有成像装置的驱动程序上能够执行的成像指令作为验证信息D。或者验证信息D还可以为驱动程序的开发商内部设定的安全数字。
认证信息C与验证信息D可以为相同的内容也可以为不同的内容。
如图9所示,相互安全认证方法包括成像装置对与成像装置相互通信的控制终端上的驱动程序进行安全认证,即步骤7101-7105和步骤7201,还包括控制终端上的驱动程序对成像装置进行安全认证,即当在步骤7104后,成像装置的安全模块600向驱动程序返回安全认证成功的消息,进入步骤9201;
步骤9201,驱动程序向成像装置发送验证请求和公钥pu;
具体为,安全模块500向成像装置发送验证请求,安全模块500向成像装置发送存储在密钥存储组件503中的公钥Pu;
步骤9101,成像装置使用公钥Pu加密验证信息D生成加密数据Pu(D),向驱动程序发送加密数据Pu(D);
具体为,安全模块600把接受的公钥Pu存储在密钥存储单元603中;加密单元601使用公钥Pu对存储在安全存储单元604的验证信息D加密生成加密数据加密数据Pu(D),向驱动程序发送加密数据Pu(D);
步骤9202,驱动程序依据私钥Py对加密数据Pu(D)解密获取验证信息D’;
具体为,安全模块500接收加密数据Pu(D)存储在安全存储组件504中,解密组件502使用存储在密钥存储组件503中的私钥Py对加密数据Pu(D)解密获取验证信息D’存储在安全存储组件504中;
步骤9203,驱动程序判断验证信息D和D’是否一致;
具体为,安全模块500判断存储在安全存储组件504中的验证信息D和D’是否一致;
当验证信息D和D’一致时,安全认证成功(步骤9204);当验证信息D和D’不一致时,安全认证失败(步骤9205)。
通过上述的相互安全认证方法,在成像装置与驱动程序之间使用相同或不同的认证信息C和验证信息D,并使用非对称加密的算法对认证信息C和验证信息D进行加密防护后进行安全认证,保证了安全认证的可靠性。
图9中的相互安全认证方法还可以为先执行驱动程序对成像装置的安全认证,即执行步骤9201-9101-9202-9203-9204-9205,当驱动程序对成像装置的安全认证通过后(即步骤9204),执行成像装置对驱动程序的安全认证,即执行步骤7101-7201-7102-7103-7104-7105,当双向的安全认证通过后,成像装置与驱动程序之间才开始成像数据的交互传输。
另外,相互安全认证方法还可以如图10所示,包括图8中的操作步骤,当成像装置对驱动程序认证成功后,即步骤8104后,驱动程序执行对成像装置的安全认证,进入步骤10201;
步骤10201,驱动程序向成像装置发送验证请求和公钥pu;
具体为,安全模块500向成像装置发送验证请求,安全模块500向成像装置发送存储在密钥存储组件503中的公钥Pu;
步骤10101,成像装置产生对称加密密钥Se;成像装置依据对称加密密钥Se对验证信息D进行加密产生加密数据Se(D);成像装置使用公钥Pu加密对称加密密钥Se生成加密数据Pu(Se);向驱动程序发送加密数据Se(D)和Pu(Se);
具体为成像装置的安全模块600接收公钥Pu存储在密钥存储单元603中,加密单元601产生对称加密密钥Se存储在密钥存储单元603中,加密单元601使用存储在密钥存储单元603中的对称加密密钥Se对存储在安全存储单元604中的验证信息D加密生成加密数据Se(D);然后加密单元601使用存储在密钥存储单元603中公钥Pu对存储在密钥存储单元603中的对称加密密钥Se加密生成加密数据Pu(Se);安全模块600把生成的加密数据Se(D)和Pu(Se)传送到驱动程序;
步骤10202,动程序依据私钥Py对加密数据Pu(Se)解密获取对称加密密钥Se’,并使用对称加密密钥Se’解密加密数据Se(D)获取验证信息D’;
具体为,驱动程序的安全模块500接收加密数据Se(D)和Ps(Se)存储在安全存储组件504中,解密组件502使用密钥存储组件503中的私钥Py对安全存储组件504中的加密数据Ps(Se)解密获取对称加密密钥Se’,并使用对称加密密钥Se’对安全存储组件504中的加密数据Se(D)解密获取验证信息D’存储在安全存储组件504中;
步骤10203,驱动程序判断验证信息D’与D是否一致;
具体为,安全模块500判定安全存储组件504中的验证信息D’与D是否一致;
当步骤10203判断结果为一致时,则驱动程序对成像装置安全认证成功(步骤10204);否则,驱动程序对成像装置安全认证失败(步骤10205)。
上述的私钥Pu与公钥Py在驱动程序出厂发布前存储在安全模块500的密钥存储组件503中。每个驱动程序都有不同的私钥Pu与公钥Py对。
当每次驱动程序需要使用成像装置执行成像操作,如要进行打印或者开始扫描时,则需要对成像装置执行安全认证,向成像装置发送公钥Py。
通过上述相互安全认证的方法,通过使用对称加密算法和非对称加密算法的结合对验证信息和认证信息进行传输,防止第三方装置或软件截获验证信息和认证信息。
图10中的相互安全认证方法还可以先执行驱动程序对成像装置的安全认证,即执行步骤10201-10101-10202-10203-10204-10205,当驱动程序对成像装置的安全认证通过后(即步骤10204)执行成像装置对驱动程序的安全认证,即执行步骤8101-8201-8102-8103-8104-8105,当双向的安全认证通过后,成像装置与驱动程序之间才开始成像数据的交互传输。
本发明的实施例的相互安全认证的方法还可以为图7中的步骤7101-7105和7201和图10中的步骤10201-10205和10101,可以先执行成像装置对驱动程序的安全认证,即执行步骤7101-7201-7102-7103-7104-7105,当成像装置对驱动程序的安全认证通过后(即步骤7104后),执行驱动程序对成像装置的安全认证,即执行步骤10201-10101-10202-10203-10204-10205,或者可以先执行驱动程序对成像装置的安全认证,即执行步骤10201-10101-10202-10203-10204-10205,当驱动程序对成像装置的安全认证通过后(即步骤10204)执行成像装置对驱动程序的安全认证,即执行步骤7101-7201-7102-7103-7104-7105,当双向的安全认证通过后,成像装置与驱动程序之间才开始成像数据的交互传输。
本发明的实施例的相互安全认证的方法还可以为图8中的步骤8101-8105和8201和图9中的步骤9201-9205和9101,可以先执行成像装置对驱动程序的安全认证,即执行步骤8101-8201-8102-8103-8104-8105,当成像装置对驱动程序的安全认证通过后(即步骤8104后),执行驱动程序对成像装置的安全认证,即执行步骤9201-9101-9202-9203-9204-9205,或者先执行驱动程序对成像装置的安全认证,即执行步骤9201-9101-9202-9203-9204-9205,当驱动程序对成像装置的安全认证通过后(即步骤9204),执行步骤8101-8201-8102-8103-8104-8105,当双向的安全认证通过后,成像装置与驱动程序之间才开始成像数据的交互传输。
第五实施例
如图11所示,本发明的安全认证方法还可以为:
步骤11101,成像装置向驱动程序发送认证请求,具体为成像装置的安全模块600向驱动程序发送认证请求;
步骤11201,驱动程序向成像装置发送公钥PI;具体为驱动程序的安全模块500接收到认证请求后,安全模块500把存储在密钥存储组件503中的公钥PI发送到成像装置;
步骤11102,成像装置产生认证信息E,使用公钥PI对认证信息E加密成加密数据PI(E),并向驱动程序发送加密数据PI(E);
具体为,成像装置的安全模块600把接收的公钥PI存储在密钥存储单元603中,安全模块600产生认证信息E存储在安全存储单元604中,加密单元601使用存储在密钥存储单元603中的公钥PI对安全存储单元604中的认证信息E加密生成加密数据PI(E),安全模块600向驱动程序发送加密数据PI(E);
步骤11202,驱动程序使用私钥PsI对加密数据PI(E)解密获取认证信息E’,并返回到成像装置;
具体是,安全模块500接收加密数据PI(E)存储在安全存储组件504中,解密组件502使用存储在密钥存储组件503中的私钥PsI对存储在安全存储组件504中的加密数据PI(E)解密获取认证信息E’,安全模块500向成像装置发送认证信息E’;
步骤11103,成像装置比较认证信息E’与E是否一致;
具体为,安全模块600接收认证信息E’存储在安全存储单元604中,并比较在安全存储单元604中的认证信息E’与E是否一致。
如果认证信息E’与E一致,表示成像装置安全认证驱动程序通过(步骤11104),否者安全验证失败(步骤11105):当成像装置安全认证驱动程序通过后,驱动程序也对成像装置执行安全认证,进入步骤11203;
步骤11203,驱动程序向成像装置发送验证请求,
具体为,安全模块500向成像装置发送验证请求;
步骤11106,成像装置向驱动程序发送公钥Ph;
成像装置的安全模块600接收到验证请求,则向驱动程序发送密钥存储单元603中的公钥Ph;
步骤11204,驱动程序产生验证信息F,使用公钥Ph对验证信息F进行加密生成加密数据Ph(F)并返回到成像装置;
具体为,安全模块500把接收的公钥Ph存储在密钥存储组件503中,安全模块500产生认证信息F存储在安全存储组件504中,加密组件501使用存储在密钥存储组件503中的公钥Ph对安全存储组件504中的认证信息F加密生成加密数据Ph(F),安全模块500向成像装置发送加密数据Ph(F);
步骤11107,成像装置依据私钥Psh对加密数据Ph(F)进行解密获取验证信息F’,返回验证信息F’到驱动程序;
具体是,安全模块600接收加密数据Ph(F)存储在安全存储单元604中,解密单元602使用存储在密钥存储单元603中的私钥Psh对存储在安全存储单元604中的加密数据Ph(F)解密获取验证信息F’,安全模块600向驱动程序发送验证信息F’;
步骤11205,驱动程序判断验证信息F’与F是否一致,具体是,安全模块500接收验证信息F’存储在安全存储组件504中,并比较在安全存储组件504中的验证信息F’与F是否一致。
如果验证信息F’与F一致,则驱动程序安全认证成像装置通过(步骤11206),当双向的安全认证通过后,成像装置与驱动程序之间的成像数据才开始传输。这里的公钥PI和私钥PsI属于驱动程序预先存储在密钥存储组件503中的公私钥对,公钥Ph和私钥Psh属于成像装置预先存储在密钥存储组件603中的公私钥对。认证信息E属于随机数据,当成像装置对驱动程序执行安全认证后,认证信息E会改变;验证信息F属于随机数据,当驱动程序对成像装置执行安全认证后,验证信息F会改变,因此验证信息和认证信息每一次执行安全认证后都会进一步改变,可以保证安全认证的可靠性。
另外,图11中的安全认证方法还可以先执行驱动程序对成像装置的认证,执行步骤11203-11106-11204-11107-11205-11206-11207,驱动程序对成像装置的安全认证通过后(即步骤11206)执行成像装置对驱动程序的安全认证,执行步骤11101-11201-11102-11202-11103-11105。
另外,在步骤11102中,成像装置的安全模块600产生对称加密密钥S1存储在密钥存储单元603中,加密单元601使用对称加密密钥S1对认证信息E加密产生加密数据S1(E),并使用公钥PI对对称加密密钥S1加密产生加密数据PI(S1),向驱动程序发送加密数据S1(E)和PI(S1),在步骤11202中,安全模块500接收加密数据S1(E)和PI(S1)存储在安全存储组件504中,解密组件502使用私钥PsI对加密数据PI(S1)解密获取对称加密密钥S1’,并使用对称加密密钥S1’对加密数据S1(E)解密获取认证信息E’,向成像装置返回认证信息E’;
另外,在步骤11204中,驱动程序的安全模块500产生对称加密密钥S2存储在密钥存储组件503中,加密组件501使用对称加密密钥S2对验证信息F加密产生加密数据S2(F),并使用公钥Ph对对称加密密钥S2加密产生加密数据Ph(S2),向成像装置发送加密数据S2(F)和Ph(S2),在步骤11107中,安全模块600接收加密数据S2(F)和Ph(S2)存储在安全存储单元604中,解密单元602使用私钥Psh对加密数据Ph(S2)解密获取对称加密密钥S2’,并使用对称加密密钥S2’对加密数据S2(F)解密获取验证信息F’,向驱动程序返回验证信息F’。
第六实施例
本发明的安全认证方法,包括单向的安全认证方法,即只执行成像装置对驱动程序的安全认证,当成像装置响应于成像装置首次连接至安装有驱动程序的控制终端和/或者响应于驱动程序需要与成像装置需要交互成像作业时,向驱动程序发送认证请求,安全认证通过后,成像装置与驱动程序之间可以传输成像数据,具体的安全认证方法包括图1或图2或图7或图8所示的具体步骤或图11中的步骤11101-11105和步骤11201-11202,这里不再累述。
本发明实施例提供的安全认证方法还可以为,只执行驱动程序对成像装置的单向安全认证,当驱动程序要向成像装置发送打印数据之前,或者驱动程序接收扫描数据之前,驱动程序向成像装置发送验证请求,安全认证通过后,成像装置与驱动程序之间可以传输成像数据,具体的安全认证方法包括图3中的步骤3201-3101-3202-3203-3204或图4中的步骤4201-4101-4202-4203-4204-4205或图9中的步骤9201-9101-9202-9203-9204-9205或图10中的步骤10201-10101-10202-10203-10204-10205或图11中的步骤11203-11207和步骤11106-11107,具体的操作步骤与上述实施例一样,这里不再累述。
另外,对于本发明中的相互安全认证方法,如图3或图4或图9或图10或图11的相互安全认证的操作步骤,只有双方的安全认证通过后,成像装置与驱动程序之间才可以传输成像数据,本发明的实施例保证了成像装置与驱动程序之间的安全认证机制的可靠性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。