总第 667 期
【作 者】
崔 伟 缑延军(博士)
【作者单位】
(山东青年政治学院工商管理学院 济南 250014 山东省国家税务局 济南 250002)
【摘 要】
【摘要】为解决网络发票系统在网络中断或系统故障情况下发票无法开具的问题,山东省国税局开发了网络发票离线开具系统,实现离线环境下普通发票的开具。本文对系统作了详细介绍,可见其具有广阔的应用前景和推广价值。
【关键词】网络发票 离线开票 智能Ukey 接口定义
近几年网络发票在国内税收征管工作中成为热点话题,国家税务总局在修订后的《发票管理办法》第二十三条明确写出“国家推广使用网络发票管理系统开具发票”,为网络发票的推行做好了制度保障。从实际使用情况看,网络发票系统要有极高的稳定性和安全性,一旦出现系统升级或系统故障,又或者纳税人端出现网络故障时,都会导致纳税人无法开具发票。对于某些特定行业如酒店、饭店或者大商场、超市,很多外地纳税人如果无法获得发票,将造成极大的不便。
网络发票离线开具系统可作为网络中断或系统故障时的应急开票方案,且当网络或系统恢复后,能在第一时间上传开票数据,是在线系统的有益补充。本文以山东省国税局网络发票离线开具系统为例,简要介绍离线开具系统的功能与实现。
一、离线开具系统体系结构
网络发票离线开具系统包括四个组成部分:远程网络发票系统、离线开具软件、离线开具硬件以及智能“身份认证电子密码钥匙”(简称Ukey)。远程网络发票系统部署在山东省国税局,主要负责在线、离线系统网络发票数据的接收、存储和发票数据查询,同时提供离线开具软件的在线升级。离线开具软件指的是离线开具客户端软件,部署在纳税人的计算机上,实现网络发票的离线开具、打印、作废以及发票充红,当网络连通时实现网络发票离线数据的自动上传。离线开具硬件包括计算机、掌上电脑、打印机等客户端硬件。
二、离线开具系统的载体
网络发票离线开具系统需要通过身份认证Ukey确定纳税人的身份。同时系统还需要存储纳税人开票的信息,但由于普通的Ukey仅能实现简单的身份认证功能不能满足离线开具系统的要求,所以经调研我们在普通Ukey的基础上,创新地提出了智能Ukey的概念,将智能Ukey作为离线开具系统的载体。智能Ukey较普通Ukey新增了以下功能:
1. 集成了安全时钟功能。在智能Ukey中集成了安全时钟,安全时钟日误差在3秒以内,使用寿命在3年以上。安全时钟在智能Ukey内部,其信息在税务局发行Ukey时进行设定,Ukey使用者无法对时钟时间进行修改,这样在离线开票时读取安全时钟中的时间作为开票时间,能够防止发票时间信息被篡改,保证开票时间的准确性。
2. 增加了安全存储。智能Ukey应具有128MB以上非易失性存储介质。该介质存储单元要求可擦写次数在10万次,数据存储时间应超过5年,并具有数据滚存功能、防掉电设计,采用ECC校验、CRC校验以及双备份等机制来确保存储于介质上的数据可靠性和稳定性。安全存储介质采用户数据加密逻辑保护的方式,如果使用者不慎将Ukey丢失,他人也无法获得或者修改Ukey数据,保证了用户数据的安全。
3. 具有认证与加密功能。智能Ukey支持国家税务总局CA证书身份认证及其他标准证书下载,且支持证书签名功能。省局为保持离线系统开具的发票与在线系统的一致性,在智能Ukey中还灌装国密办SSF44税控算法及相关密钥,能够正确生成并保存符合国标(GB 18240)要求的税控码。算法采用严格的生命周期管理,只能在Ukey初始化阶段进行算法下载,外界既无法得到也无法替换Ukey中的算法,确保算法的安全性。
4. 具有税控功能。考虑到离线系统安全使用,在UKey中必须加入相应的税控功能。税控功能主要包括:发票开具信息检查、开具信息存取、开具状态修改、开具时间限制、开具限额的限制、开具比例限制等。这些功能的实现必须在Ukey的片内操作系统(COS系统)中进行二次开发。
三、主要流程
1. 主要流程。离线开票的主要流程包括:首先纳税人在税务局领购发票。领购完发票以后,纳税人可以在办税服务厅或者通过网络登录在线开票系统同步发票信息到智能Ukey中。当网络出现故障时,纳税人可登录电脑中的离线开票客户端,同步离线库存数据、开票限额信息、开具限制信息,同步完成后进行发票开具或者直接通过发票补录进行开具。当网络恢复以后,纳税人登录在线系统,系统会自动上传离线开票的数据,上传数据结束以后才可以在在线系统进行开票。2. 发票信息写入Ukey流程。纳税人在离线系统填写完开票信息后,需要与智能Ukey进行交互才能保存与打印。离线系统通过Ukey开票时写入Ukey数据流程如下图所示:
发票开具的具体流程包括: 首先判断纳税人识别号、登录账号、机器编号是否与开具明细中的一致,然后检查身份证书状态,检查发票领购状态,判断离线开票有效期限、在线离线标志状态、有效天数、离线开具比例等信息,再判断是否有未上传的记录,如果检查的信息符合要求则要判断发票金额合计是否在开具限额范围内,然后通过存在智能Ukey中的税控算法生成税控码,生成数字签名,并保存发票明细信息。最后修改Ukey中的发票代码、发票起号相同的领购信息,完成发票的开具和写入操作。
四、用户接口定义
为了保证离线开票系统的正常使用,省局重新定义了智能Ukey的外部接口与涉税信息存储模式。接口定义包括接口名称、接口功能、接口返回值、接口参数、函数名称,调用方式等。接口的范围包括:设备调用、设备设置、认证函数、税控函数、错误代码信息等。其中新定义税控函数接口16个,错误代码信息27条,这些接口的定义能够满足离线开具系统的具体要求。同时省局还对涉税信息的存储模式进行了定义,包括:纳税人登记信息、发票票种信息、发票领购信息、发票开具信息,并确定这些涉税信息的存储位置、存储长度、专用指令以及各字节的含义。智能Ukey接口定义、错误信息代码以及存储模式举例如下所示:
1. 接口定义。
名称:获取纳税人登记信息(纳税人端)。
功能:获取纳税人登记信息(纳税人端)。
返回值:0 成功,>0 失败,值为错误码。
参数:HANDLE Handle 设备句柄;PBYTEpbData数据;DWORD dwPassWordLen数据长度。
函数名:
DWORD WINAPI UKEY_GetNsrdjxxqy(IN HANDLE Handle, IN OUT PBYTE pbData, IN OUT PDWORD pdwDataLen)。
2. 错误代码信息定义。
#define TYUEKY_DEVICE_BAD_CERT TYUEKY_ BASE+17
//存在未上传数据
#define TYUEKY_DEVICE_HAVE_NOTRANCE_DA-TA TYUEKY_BASE+18
//指定数据不存在
3. 发票票种信息存储模式定义。
五、安全设计的主要措施
1. 双重密码保护。离线开票系统登录时必须插入智能Ukey,系统使用既要输入系统密码还要输入智能Ukey密码,采用双重密码保护来保证用户信息安全。
2. 利用数字证书和智能Ukey保证离线开具安全。在离线状态下,开票数据先写入智能Ukey保密存储区,然后写入纳税人本地数据库,待网络连通后,再将Ukey保密存储区的数据上传的税务局数据库中。不管网络处在哪种状态,只有数据写入Ukey保密存储区成功后,才能打印发票。智能Ukey的安全存储区不能被普通用户读取,且不可修改。
3. 利用Ukey内置时钟保证发票开具时间准确性。利用Ukey本身的离线时钟功能控制纳税人发票开具时间,防止了离线状态下纳税人开票时间的随意性。
4. 采用税控方式控制开票量。采用单户纳税人离线开票数量、离线开票比例和离线开票时间(系统默认为3天)三种方式控制离线发票开具量,最大限度地减少离线开具的风险。
5. 通过国密办认可的税控加密算法生成税控码,并打印在发票上,实现发票的真伪查询,有效防止假发票。
6. 将发票数据生成数字签名并保存在发票数据中,能够通过验签确定数据真伪,防止发票票面数据被篡改。
主要参考文献
廖传书,韩屏.基于USB 的无源身份认证的实现.微机发展,2004;14