专利名称:信息处理装置及其控制方法和图像处理装置及其控制方法
技术领域:
本发明涉及一种信息处理装置、图像处理装置、信息处理方法、图像处理装置的控制方法、计算机程序、以及存储介质。特别地,本发明涉及一种当打印作业通过网络从例如个人计算机的信息处理装置发送到例如打印机的图像处理装置时,适合用来防止打印作业的数据被篡改的技术。
背景技术:
传统上,在打印数据是通过网络从例如客户端个人计算机的信息处理装置发送到例如打印机的图像处理装置而打印的系统中,存在着打印数据在发送路径中被篡改的潜在威胁。图1示出了存在该威胁的网络打印系统的概念。如图1所示,当打印数据从打印客户端101通过网络104例如局域网(LAN)发送到网络打印机102时,攻击者103(例如,安装了打印机驱动器的个人计算机)可以通过使用一种技术,例如伪造网络打印机102的网络地址、篡改打印数据、并将篡改后的打印数据发送到网络打印机102,在数据发送的中途截取打印数据,从而篡改打印结果。
传统上,为了克服上述威胁,关于不仅防止打印作业、也防止数据被篡改,通常通过如下方法检查数据是否被篡改在数据生成端使用哈希(hash)函数计算出整个数据的哈希值之后,数据生成器将电子签名添加到哈希值中,数据校验端校验电子签名。关于防止网络104上的打印作业的篡改,已经公开了使用类似技术的校验方法(参见,例如日本专利公报第2003-084962号)。
图2是示出哈希值的计算的示意图。首先,在生成了打印数据201后,计算其哈希值202,通过将哈希值202添加到打印数据201中,生成发送数据(d1)203。可以通过将打印数据201输入到已知的哈希函数,例如单向函数SHA-1(SecureHash Algorithm 1,安全哈希算法1)或MD5(Message Digest5,消息摘要5)中,得到哈希值202。
当接收发送数据(d1)203时,网络打印机102从接收到的数据中的打印数据201中计算哈希值,并确认计算出的哈希值是否与包含在发送数据(d1)203中的哈希值202一致。这样,可以判断打印数据201在网络104上是否被篡改。
然而,在使用上述方法来校验打印数据是否正确的情况下,客户端PC在生成了全部打印数据之后,计算哈希值,然后将打印数据发送到网络打印机。此外,网络打印机在接收了全部打印数据之后,校验哈希值,然后开始打印操作。这引起了打印启动的问题,即所谓“首次打印”被延迟。该问题在打印数据具有几百页的数据量时尤为显著。
发明内容
本发明是鉴于上述情况而作出的。本发明能立即执行首次打印,且有效防止打印数据的篡改。
本发明提供一种信息处理装置,包括数据分割单元,被配置为将打印数据分割为多个数据片(piece);哈希值生成单元,被配置为生成由所述数据分割单元获得的每个数据片的哈希值;哈希值添加单元,被配置为通过将由所述哈希值生成单元生成的哈希值添加到与生成哈希值的数据片不同的预定数据片,来生成一个单位的发送数据;以及数据发送单元,被配置为将由所述哈希值添加单元生成的所述一个单位的发送数据发送到图像处理装置。
该信息处理装置可进一步包括哈希值存储单元,被配置为临时存储由所述哈希值生成单元生成的哈希值。该哈希值添加单元通过将所存储的哈希值添加到与生成哈希值的数据片不同的预定数据片,来生成所述一个单位的发送数据。
该哈希值添加单元通过将所存储的哈希值添加到生成哈希值的数据片后面的数据片,来生成所述一个单位的发送数据。
该信息处理装置可进一步包括电子签名添加单元,用来将电子签名添加到由所述数据发送单元最初发送的一个单位的发送数据。
此外,本发明还提供一种图像处理装置,用来根据从信息处理装置接收到的打印数据来执行打印,该打印数据包含多个数据块。该图像处理装置包括哈希值生成单元,被配置为从由信息处理装置接收的打印数据的每个数据块中生成哈希值;头信息抽取单元,被配置为从与生成哈希值的、接收到的打印数据的数据块不同的预定数据块中,抽取头信息;以及确定单元,被配置为确定由所述头信息抽取单元抽取的头信息是否与由所述哈希值生成单元生成的哈希值一致。
该头信息抽取单元能从生成哈希值的、接收到的打印数据的数据块后面的数据块中,抽取头信息。
该图像处理装置可进一步包括控制器,在该控制器中,当所述确定单元确定所抽取的头信息与所生成的哈希值一致时,所述控制器继续执行所述图像处理装置的打印;当所述确定单元确定所抽取的头信息与所生成的哈希值不一致时,所述图像处理装置停止打印。
此外,本发明还提供一种信息处理方法,包括将打印数据分割为多个数据片;生成每个所获得的数据片的哈希值;通过将所生成的哈希值添加到与生成哈希值的数据片不同的预定数据片,来生成一个单位的发送数据;以及将所述一个单位的发送数据发送到图像处理装置。
该信息处理方法可进一步包括临时存储所生成的哈希值。该所生成的一个单位的发送数据是通过将所存储的哈希值添加到与生成哈希值的数据片不同的预定数据片中而生成的。
该所生成的一个单位的发送数据是通过将所存储的哈希值添加到生成哈希值的数据片后面的数据片中而生成的。
该信息处理方法可进一步包括将电子签名添加到最初发送的发送数据中。
此外,本发明还提供一种图像处理装置的控制方法,用来根据从信息处理装置接收的打印数据来执行打印,该打印数据包括多个数据块。该控制方法包括从由信息处理装置接收的打印数据的每个数据块生成哈希值;从与生成哈希值的、接收到的打印数据的数据块不同的预定数据块中,抽取头信息;以及确定所抽取的头信息是否与所生成的哈希值一致。
该头信息是从接收到的打印数据的数据块中抽取的,该数据块位于生成哈希值的、接收到的打印数据的数据块的后面。
此外,本发明还提供一种计算机程序,用来使计算机执行信息处理方法。该计算机程序包括将打印数据分割为多个数据片;生成该多个数据片的每个的哈希值;通过将所生成的哈希值添加到与生成哈希值的数据片不同的预定数据片中,来生成一个单位的发送数据;以及将所生成的一个单位的发送数据发送到图像处理装置。
此外,本发明还提供一种计算机程序,用来执行图像处理装置的控制方法,该图像处理装置根据从信息处理装置接收到的打印数据来执行打印,该打印数据包括多个数据块。该程序包括从每个由信息处理装置接收到的打印数据的数据块中生成哈希值;从与生成哈希值的、接收到的打印数据的数据块不同的预定数据块中,抽取头信息;以及确定所抽取的头信息是否与所生成的哈希值一致。
而且,本发明还提供一种存储上述计算机程序的计算机可读存储介质。
通过参考附图对实施例所做的下述说明,本发明的其它特征和优点将变得显而易见。
图1是示出在网络路径上数据篡改威胁的概念的框图。
图2示出了哈希值的添加。
图3是示出根据本发明第一实施例的打印客户端或打印机的内部结构的例子的框图。
图4示出了根据本发明第一实施例的哈希值添加方法。
图5示出了仍具有篡改威胁的哈希值添加方法。
图6是示出根据本发明第一实施例的打印客户端的流程图。
图7是示出根据本发明第一实施例的打印机的操作的流程图。
图8示出了根据本发明第二实施例的哈希值添加方法。
图9示出了在根据本发明第二实施例的软件的存储介质中,存储器映射的例子。
具体实施例方式
第一实施例图1是示出执行本发明的网络打印系统的概念的框图。图2是哈希计算的示意图。图3示出了通常使用的计算机的内部结构。在本发明第一实施例中,打印客户端101和网络打印机102中的每一个的控制器与计算机的结构相似。
参考图3,计算机300包括中央处理单元(CPU)301,用来执行存储在只读存储器(ROM)302、或例如由磁盘控制器(DKC)307控制的硬盘单元(HD)311等的大容量存储装置中的软件。此外,通常,CPU301控制连接到系统总线304的设备。
随机存取存储器(RAM)303用作CPU301的主存储器、工作区等。外部输入控制器(图3中以“KBD C”来表示)305控制来自计算机300或键盘(KBD)309的各种按钮的指令的输入。显示控制器(图3中以“DISP C”来表示)306通过显示模块(DISPLAY)310来控制显示。网络接口卡(NIC)308通过局域网(LAN)104与其它网络装置或文件服务器双向交换数据。计算机300还包括定时器312。
图4示出了在第一实施例中从打印数据计算哈希值和发送哈希值的方法。此外,图6是示出该方法的处理的流程图。对该添加从打印数据计算出的哈希值、并将计算出的哈希值发送到网络打印机102的方法,参考图4和图6中的处理在下面进行说明。
图6中的处理是由打印客户端101上的CPU301执行的。此外,有一个先决条件,即,将要打印的文档或图像的数据转换为网络打印机102通过使用打印机驱动模块能解释的形式,即页描述语言(page description language,PDL)数据,然后,PDL数据被顺序发送到执行图6中的处理的模块。然而,在使用打印机驱动器创建了要打印的图像数据之后,可以执行图6中的处理。
为了发送打印数据,首先,在步骤S601,执行生成随机数(RND)410的计算。在步骤S602,计算在步骤S601生成的随机数410的哈希值(h0)420。在步骤S603,将电子签名440添加到在步骤S602计算出的哈希值(h0)420中,以生成头(head)N。头N被临时存储到RAM303中。
进入步骤S604,从顺序生成的PDL数据中,分割并接收具有适当长度的第一部分,作为PDL数据片(d1)411,PDL数据片(d1)411被存储在RAM303的临时缓冲区中。在步骤S605,抽取在步骤S603临时存储到RAM303中的头N。通过将头N添加到在步骤S604存储在临时缓冲区的PDL数据片(d1)411,形成一个单位的发送数据430。
在步骤S606,通过控制NIC308,发送数据430通过LAN104被发送到网络打印机102。在步骤S 607,计算存储在临时缓冲区的PDL数据片(d1)411的哈希值,计算出的哈希值被临时存储为头N,以添加到RAM303中的随后的PDL数据块中。此外,释放结合存储PDL数据片(d1)411和头N、以作为发送数据430的临时缓冲区。
在步骤S608,确定从打印机驱动器接收的打印数据是否已结束。如果在步骤S608确定打印数据已经结束,则在步骤S609,抽取在步骤S607临时存储的头信息,通过控制NIC308将最后的头N通过LAN104发送到网络打印机102。
如果在步骤S608确定打印数据尚未结束,该处理返回到步骤S604。随后的PDL数据片(d2)412和PDL数据片(d3)413被顺序接收,并连续生成PDL数据的哈希值(h1)421、PDL数据的哈希值(h2)422、以及PDL数据的哈希值(h3)423。
PDL数据的哈希值(h1)421和PDL数据片(d2)412被结合在一起,以生成发送数据431。类似地,PDL数据的哈希值(h2)422和PDL数据片(d3)413被结合在一起,以生成发送数据432。此外,如果已无要结合的PDL数据,则PDL数据的哈希值(h3)423和PDL数据的无意义片(图4中以“NULL”来表示)结合在一起,以生成发送数据433。在上述处理中,通过在生成PDL数据的哈希值的处理定时和接收PDL数据片的定时之间建立同步,可以省略哈希值在缓冲区的临时存储。
通过执行上述处理,如图4所示,通过将前一PDL数据块的哈希值添加到随后的PDL数据块,形成了发送数据,该发送数据被顺序发送。签名只被添加到第一个发送数据的原因是防止发送数据被切换。如果能防止第一个发送数据被切换,则能确保防止其后的全部PDL数据被切换或篡改。
将哈希值添加到随后的数据块是基于以下原因。例如,如图5所示,当将计算出的哈希值添加到原始PDL数据片(d1)511、(d2)512和(d3)513时,从试图篡改数据的攻击者的角度来看,通过拦截添加有哈希值的数据片(图5中的531、532和533),攻击者可以添加哈希值(521、522、523)来篡改数据片。如果发送数据被切换,则接收端将无法注意到该切换。
尽管为了防止切换,存在这样一个解决方案,即客户端将电子签名添加到发送数据的全部数据片的每个片中,但在该方案中,电子签名是个耗时的操作,以致在性能上出现相反的效果。和上面的解决方案相比,在第一实施例中,只需进行一次电子签名即可,因而更具优势。
图7是示出在第一实施例中的网络打印机102的数据接收操作的处理的流程图。图7所示的处理是由网络打印机102中的CPU301执行的。
在数据接收操作中,在步骤S701,通过操作NIC308,从LAN104接收第一个数据片。在步骤S702,校验包括在所接收的数据中的电子签名。
如果在步骤S702的确定表示签名被校验,则该处理进入步骤S703。在步骤S703,从接收到的数据中抽取PDL数据,并将其发送到打印引擎(未示出)。由打印引擎打印PDL数据。在步骤S704,确定所接收的数据是否结束。如果确定所接收的数据尚未结束,则该处理进入S705。
步骤S705到S708形成顺序确认所接收的数据未被篡改的处理。在步骤S705,计算在步骤S703打印的PDL数据的哈希值,并将其存储在临时缓冲区中。在步骤S706,通过操作NIC308,从LAN104接收随后的数据片。
在步骤S707,从在步骤S706接收的数据中,即从随后的数据片中,抽取头部分。头部分必须有在客户端计算的PDL数据的哈希值。在步骤S708,通过确认在步骤S705计算出的哈希值是否与在步骤S707抽取出的哈希值一致,来确定数据是否正确。
如果在步骤S708确定数据是正确的,则该处理返回到步骤S703,并继续打印。如果在步骤S708确定数据是不正确的,则该处理结束,以便立即停止打印。如果在步骤S702确定签名是不正确的,此外,如果在步骤S704确定数据已经结束,则终止接收数据的打印。
根据第一实施例的打印客户端或网络打印机程序,可以被外部安装的程序、或打印客户端101和网络打印机102中的每个所执行。在上述情况下,本发明甚至适用于如下情况通过将信息加载到打印客户端101或网络打印机102,来向打印客户端101或网络打印机102提供程序,所述信息包括来自存储介质例如CD-ROM、快闪(flash)存储器、或软盘,或者通过网络例如电子邮件或个人计算机通信的程序。
图9示出了存储介质的一个例子,CD-ROM的存储器映射。参考图9,区域9999存储目录信息,并表示存储另一要安装的程序的区域9998的位置,或者表示存储用于打印客户端或网络打印机102的控制程序的区域9997。
区域9998存储要安装的程序。区域9997存储打印客户端或网络打印机102的控制程序。当在第一实施例中将控制程序安装到打印客户端101或网络打印机102时,存储在区域9998中的要安装的程序被加载到系统,并由CPU301执行。
接下来,由CPU301执行的程序从存储有装置控制程序的区域9997中,读取打印客户端或网络打印机的控制程序,并由读取程序重写ROM302的内容,或将读取程序安装到HD311。在这种情况下,ROM302不是一个简单的掩模(mask)ROM,而需要是可重写ROM,例如快闪ROM。
本发明可用于由多个装置(例如,主计算机、接口装置、读取器等)形成的系统或集成装置,或者用于单个装置。
此外,本发明的实施例以如下方式实现向系统或装置提供存储有实现第一实施例的功能的软件程序代码的存储介质,该系统或装置的计算机(或CPU或MPU)读取并执行所存储的程序代码。
在这种情况下,从存储介质读取的程序代码本身实现了本发明的新功能,并且存储程序代码的存储介质包含在本发明中。
提供程序代码的存储介质包括,例如软盘,硬盘,光盘,磁光盘,CD-ROM,CD-R,磁带,非易失性存储卡,以及ROM。
第一实施例的功能是通过计算机执行所读取的程序代码来实现的。此外,基于程序代码的指令,在计算机上运行的操作系统执行全部或部分实际处理,第一实施例的功能可以由该处理来实现。
此外,在从存储介质读取的程序代码被写入到插入计算机的附加(add-in)板或连接到计算机的附加单元的存储器之后,基于程序代码的指令,在附加板或附加单元上的CPU等执行全部或部分实际处理,第一实施例的功能也可以由该处理来实现。
本发明适用于如下情况通过存储有实现第一实施例的功能的软件程序代码的存储介质,经由通信线路例如个人计算机通信,将程序代码分发给需要该程序代码的人。
第二实施例尽管在第一实施例中,如图8所示,PDL数据片(d1)811、(d2)812、和(d3)813被用作执行哈希计算的原始数据,可以计算包含头N的整个发送数据830的哈希值(h1)821,并将其作为头添加到随后的发送数据中。
类似地,可以计算包含哈希值(h1)和数据片(d2)的整个发送数据831的哈希值(h2)822,并将其作为头添加到随后的发送数据。此外,可以计算包含哈希值(h2)和数据片(d3)的整个发送数据832的哈希值(h3),并将其作为头添加到随后的发送数据。而且,可以计算包含哈希值(h3)和数据片(NULL)的整个发送数据833的哈希值。
第三实施例尽管在第一实施例中,哈希值被添加到“随后的”数据片,然而,添加哈希值的位置并不局限于“随后的”数据片。例如,哈希值可以被添加到随后的第二个数据片。换句话说,重要的是将数据片的哈希值添加到除计算该哈希值的原始数据片之外的数据片。
根据本发明,即使打印数据的量非常大,也能立即执行首次打印,而不延迟数据的发送,此外,还可有效防止打印数据的篡改。
尽管参考典型实施例说明了本发明,但应该理解,本发明并不局限于所公开的实施例。相反,本发明意在覆盖在所附权利要求的精神和范围内的各种修改和等同配置。下述权利要求的范围应作最宽的解释,以便包含所有这些修改、等同结构和功能。
权利要求
1.一种信息处理装置,包括数据分割单元,被配置为将打印数据分割为多个数据片;哈希值生成单元,被配置为生成由所述数据分割单元获得的每个数据片的哈希值;哈希值添加单元,被配置为通过将由所述哈希值生成单元生成的哈希值添加到与生成哈希值的数据片不同的预定数据片,来生成一个单位的发送数据;以及数据发送单元,被配置为将由所述哈希值添加单元生成的所述一个单位的发送数据发送到图像处理装置。
2.根据权利要求书1所述的信息处理装置,其特征在于,进一步包括哈希值存储单元,被配置为临时存储由所述哈希值生成单元生成的哈希值,其中,所述哈希值添加单元通过将所存储的哈希值添加到与生成哈希值的数据片不同的预定数据片,来生成所述一个单位的发送数据。
3.根据权利要求书2所述的信息处理装置,其特征在于所述哈希值添加单元通过将所存储的哈希值添加到生成哈希值的数据片后面的数据片,来生成所述一个单位的发送数据。
4.根据权利要求书1所述的信息处理装置,其特征在于,进一步包括电子签名添加单元,被配置为将电子签名添加到由所述数据发送单元最初发送的一个单位的发送数据。
5.一种图像处理装置,用来根据从信息处理装置接收到的打印数据来执行打印,该打印数据包含多个数据块,该图像处理装置包括哈希值生成单元,被配置为从由信息处理装置接收的打印数据的每个数据块中生成哈希值;头信息抽取单元,被配置为从与生成哈希值的、接收到的打印数据的数据块不同的预定数据块中,抽取头信息;以及确定单元,被配置为确定由所述头信息抽取单元抽取的头信息是否与由所述哈希值生成单元生成的哈希值一致。
6.根据权利要求书5所述的图像处理装置,其特征在于所述头信息抽取单元从生成哈希值的、接收到的打印数据的数据块后面的数据块中,抽取头信息。
7.根据权利要求书5所述的图像处理装置,其特征在于,进一步包括控制器,在该控制器中,当所述确定单元确定所抽取的头信息与所生成的哈希值一致时,所述控制器继续执行所述图像处理装置的打印;当所述确定单元确定所抽取的头信息与所生成的哈希值不一致时,所述图像处理装置停止打印。
8.一种信息处理方法,包括将打印数据分割为多个数据片;生成每个所获得的数据片的哈希值;通过将所生成的哈希值添加到与生成哈希值的数据片不同的预定数据片,来生成一个单位的发送数据;以及将所述一个单位的发送数据发送到图像处理装置。
9.根据权利要求书8所述的信息处理方法,其特征在于,进一步包括临时存储所生成的哈希值,其中,所述所生成的一个单位的发送数据是通过将所存储的哈希值添加到与生成哈希值的数据片不同的预定数据片中而生成的。
10.根据权利要求书9所述的信息处理方法,其特征在于所述所生成的一个单位的发送数据是通过将所存储的哈希值添加到生成哈希值的数据片后面的数据片中而生成的。
11.根据权利要求书8所述的信息处理方法,其特征在于,进一步包括将电子签名添加到最初发送的发送数据中。
12.一种图像处理装置的控制方法,用来根据从信息处理装置接收的打印数据来执行打印,该打印数据包括多个数据块,该控制方法包括从由信息处理装置接收的打印数据的每个数据块生成哈希值;从与生成哈希值的、接收到的打印数据的数据块不同的预定数据块中,抽取头信息;以及确定所抽取的头信息是否与所生成的哈希值一致。
13.根据权利要求书12所述的图像处理装置的控制方法,其特征在于所抽取的头信息是从接收到的打印数据的数据块中抽取的,该数据块位于生成哈希值的、接收到的打印数据的数据块的后面。
全文摘要
本发明提供一种信息处理装置及其控制方法和图像处理装置及其控制方法。该信息处理装置,将打印数据分割为数据片,并生成每个数据片的哈希值。该信息处理装置通过将所生成的哈希值添加到与生成哈希值的数据片不同的数据片中来生成一个单位的发送数据,并将该发送数据发送到图像处理装置。
文档编号H04L9/28GK1713569SQ20051007972
公开日2005年12月28日 申请日期2005年6月24日 优先权日2004年6月25日
发明者浜田升 申请人:佳能株式会社