一種溯源應(yīng)用系統(tǒng)與溯源電子秤的通訊方法
【專利摘要】本發(fā)明公開了一種溯源應(yīng)用系統(tǒng)與溯源電子秤的通訊方法。本方法為:溯源應(yīng)用系統(tǒng)為每一溯源秤生成一安全碼,且分別與每一溯源電子秤同步維護(hù)一請求序號;溯源應(yīng)用系統(tǒng)分別向溯源電子秤發(fā)出配置信息請求、業(yè)務(wù)服務(wù)請;請求的頭部域中包含服務(wù)接口版本號、請求序號、認(rèn)證碼、內(nèi)容校驗(yàn)碼;溯源電子秤利用自己的安全碼對收到的請求進(jìn)行認(rèn)證;如果認(rèn)證未通過,則拒絕該請求;如果認(rèn)證通過,溯源電子秤對請求的頭部域信息進(jìn)行檢查,如果檢查不通過則返回驗(yàn)證異常信息給溯源應(yīng)用系統(tǒng);如果通過則根據(jù)該請求的內(nèi)容進(jìn)行處理并將處理結(jié)果反饋給溯源應(yīng)用系統(tǒng)。本發(fā)明實(shí)現(xiàn)了溯源秤與溯源應(yīng)用系統(tǒng)的快速適配,有效防止惡意攻擊、信息竊聽和篡改等不安全因素。
【專利說明】一種溯源應(yīng)用系統(tǒng)與溯源電子秤的通訊方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及食品溯源項(xiàng)目中溯源應(yīng)用系統(tǒng)與溯源電子秤之間的通訊方法,是針對國家商務(wù)部肉類蔬菜流通追溯體系建設(shè)項(xiàng)目,建立溯源電子秤與應(yīng)用系統(tǒng)之間標(biāo)準(zhǔn)安全通訊方法。
【背景技術(shù)】
[0002]目前國家商務(wù)部肉類蔬菜流通追溯體系建設(shè)項(xiàng)目已在多個(gè)城市試點(diǎn)建設(shè)運(yùn)行,該項(xiàng)目各個(gè)試點(diǎn)城市采用的應(yīng)用系統(tǒng)承建商及硬件設(shè)備(溯源電子秤)供應(yīng)商不同,而目前各家應(yīng)用系統(tǒng)開發(fā)商與各品牌溯源電子秤都定義了不同的通訊協(xié)議,導(dǎo)致溯源應(yīng)用系統(tǒng)與溯源電子秤的接口需隨著溯源電子秤品牌的不同而變化,同時(shí),每個(gè)試點(diǎn)城市建設(shè)運(yùn)行時(shí),溯源電子秤和溯源應(yīng)用系統(tǒng)都需要重新定義接口、聯(lián)調(diào)測試,資源和時(shí)間都產(chǎn)生了浪費(fèi)。
[0003]同時(shí),目前各地對于溯源電子秤和溯源應(yīng)用系統(tǒng)之間通信的安全性考慮較少,且溯源電子秤制造廠商的嵌入程序技術(shù)參差不齊,協(xié)議所采用的安全技術(shù)既要保證其廣泛的支持性又不能過于復(fù)雜,需要進(jìn)行綜合平衡考慮。目前考慮溯源不安全因素主要有:
[0004]I)惡意攻擊。黑客通過溯源電子秤提供的服務(wù),破壞溯源電子秤內(nèi)部信息和參數(shù)設(shè)置,導(dǎo)致溯源電子秤內(nèi)部信息混亂或不可用,從而影響追溯功能的正常運(yùn)行;
[0005]2)信息竊聽及篡改。黑客通過竊聽及篡改溯源電子秤與溯源應(yīng)用系統(tǒng)之間通信信息,擾亂正常溯源信息和參數(shù)信息的傳輸,從而影響追溯功能的正常運(yùn)行。
[0006]在食品溯源過程中,會涉及溯源業(yè)務(wù)中一些特殊問題,如商品分割、溯源電子秤批零兼營、溯源電子秤刷卡進(jìn)場等問題。針對這些特殊問題,溯源應(yīng)用系統(tǒng)與溯源電子秤需要配合,并進(jìn)行特殊的實(shí)現(xiàn)考慮,目前,通訊協(xié)議中暫無對此特殊問題的考慮和解決辦法。而本發(fā)明對這些特殊問題進(jìn)行了`充分的考慮,并提出較好解決辦法。
[0007]本發(fā)明建立了食品溯源項(xiàng)目中溯源應(yīng)用系統(tǒng)與溯源電子秤進(jìn)行交互通信方法,充分考慮各種不安全因素,防止惡意攻擊、防止竊聽、防止信息篡改等,并針對食品溯源項(xiàng)目中特殊業(yè)務(wù)問題,進(jìn)行充分考慮和實(shí)現(xiàn)。
【發(fā)明內(nèi)容】
[0008]針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的在于提供一個(gè)標(biāo)準(zhǔn)、通用、安全的溯源應(yīng)用系統(tǒng)與溯源電子秤通訊方法。本發(fā)明采用多種安全控制機(jī)制,以及靈活、易擴(kuò)展的Web服務(wù)方式,提供統(tǒng)一標(biāo)準(zhǔn)的溯源應(yīng)用系統(tǒng)和溯源電子秤之間的通訊,實(shí)現(xiàn)溯源應(yīng)用系統(tǒng)與溯源電子秤之間有效的信息交互,并有效避免溯源應(yīng)用系統(tǒng)與溯源電子秤之間通訊安全隱
串
[0009]本發(fā)明的具體技術(shù)方案:
[0010]一種溯源應(yīng)用系統(tǒng)與溯源電子秤的通訊方法,其步驟為:
[0011]I)溯源應(yīng)用系統(tǒng)為每一溯源電子秤生成一安全碼,并分配給溯源電子秤;溯源應(yīng)用系統(tǒng)分別與每一溯源電子秤同步維護(hù)一請求序號;[0012]2)溯源應(yīng)用系統(tǒng)向溯源電子秤發(fā)出配置信息請求;所述配置信息請求的頭部域中包含服務(wù)接口版本號、請求序號、認(rèn)證碼、內(nèi)容校驗(yàn)碼;
[0013]3)溯源電子秤利用自己的安全碼對收到的配置信息請求進(jìn)行認(rèn)證;如果認(rèn)證未通過,則拒絕該配置信息請求;如果認(rèn)證通過,溯源電子秤對配置信息請求的頭部域信息進(jìn)行檢查,如果檢查不通過則返回驗(yàn)證異常信息給溯源應(yīng)用系統(tǒng);如果通過則根據(jù)該配置信息請求的內(nèi)容進(jìn)行處理并將處理結(jié)果反饋給溯源應(yīng)用系統(tǒng),進(jìn)行步驟4);
[0014]4)溯源應(yīng)用系統(tǒng)向溯源電子秤發(fā)送業(yè)務(wù)服務(wù)請求;所述業(yè)務(wù)服務(wù)請求的頭部域中包含服務(wù)接口版本號、請求序號、認(rèn)證碼、內(nèi)容校驗(yàn)碼;
[0015]5)溯源電子秤利用自己的安全碼對收到的業(yè)務(wù)服務(wù)請求進(jìn)行認(rèn)證;如果認(rèn)證未通過,則拒絕該業(yè)務(wù)服務(wù)請求;如果認(rèn)證通過,則溯源電子秤對該業(yè)務(wù)服務(wù)請求的頭部域信息進(jìn)行檢查,如果檢查通過則根據(jù)該業(yè)務(wù)服務(wù)請求的內(nèi)容進(jìn)行處理并將處理結(jié)果反饋給溯源應(yīng)用系統(tǒng);如果檢查不通過則返回驗(yàn)證異常信息給溯源應(yīng)用系統(tǒng)。
[0016]進(jìn)一步的,所述配置信息請求為一 HTTP請求;所述HTTP請求的頭域包括以下域信息:版本號X-Version, HTTP協(xié)議標(biāo)準(zhǔn)頭部域Content-Type,指定目標(biāo)溯源電子秤IP地址域X-ScalesAddr,目標(biāo)溯源電子秤所在流通節(jié)點(diǎn)的流通節(jié)點(diǎn)編號域X-RmNodeId,請求序號域 X-RequestNo,認(rèn)證碼域 X-AuthToken,內(nèi)容校驗(yàn)碼域 X-ContentCheckcode。
[0017]進(jìn)一步的,所述溯源電子秤對配置信息請求的頭部域信息進(jìn)行檢查的方法為:溯源應(yīng)用系統(tǒng)發(fā)送所述配置信息請求時(shí),在請求頭部域標(biāo)記本次請求序號;溯源秤服務(wù)對該請求頭部域中的請求序號進(jìn)行核對,若請求序號不匹配,溯源電子秤返回正確的請求序號給溯源應(yīng)用系統(tǒng),溯源應(yīng)用系統(tǒng)調(diào)準(zhǔn)請求序號再次發(fā)送配置信息請求;若請求序號匹配,則溯源電子稱對配置信息請求頭部域中的其他信息進(jìn)行檢查。
[0018]進(jìn)一步的,所述請求序號為十進(jìn)制數(shù)字,溯源應(yīng)用系統(tǒng)每次發(fā)送配置信息請求或業(yè)務(wù)服務(wù)請求時(shí),溯源應(yīng)用系統(tǒng)和接收該請求的溯源電子稱同步維護(hù)的請求序號順序加I。
[0019]進(jìn)一步的,所述認(rèn)證碼的生成方法為:所述溯源應(yīng)用系統(tǒng)首先利用秤安全碼和請求序號產(chǎn)生一認(rèn)證明文;然后利用加密算法對該認(rèn)證明文進(jìn)行加密,得到認(rèn)證密文;溯源應(yīng)用系統(tǒng)對認(rèn)證密文進(jìn)行編碼,產(chǎn)生認(rèn)證碼。
[0020]進(jìn)一步的,所述秤安全碼選自O(shè)?9十個(gè)十進(jìn)制數(shù)字,秤安全碼長度8個(gè)字節(jié);所述秤安全碼為ASCII碼。
[0021]進(jìn)一步的,所述認(rèn)證明文為一認(rèn)證明文字符串,其具體格式為:認(rèn)證明文字符串=請求方法+ “#” +秤安全碼+ +X-RequestNo ;其中,請求方法是指HTTP協(xié)議中規(guī)定的請求方法,秤安全碼為ASCII碼值;X_RequeStN0為請求序號的十進(jìn)制數(shù)字ASCII字符串。
[0022]進(jìn)一步的,所述內(nèi)容校驗(yàn)碼的生成方法為:首先溯源應(yīng)用系統(tǒng)對配置信息請求或業(yè)務(wù)服務(wù)請求所承載的內(nèi)容實(shí)體生成信息摘要;然后溯源應(yīng)用系統(tǒng)將信息摘要用秤安全碼進(jìn)行加密,生成信息摘要密文;最后溯源應(yīng)用系統(tǒng)對信息摘要密文進(jìn)行編碼,得到所述內(nèi)容驗(yàn)證碼。
[0023]進(jìn)一步的,所述配置信息請求包括獲取溯源秤規(guī)格信息,設(shè)置溯源電子秤所屬經(jīng)營者,設(shè)置溯源電子秤參數(shù),獲取溯源電子秤配置和狀態(tài)信息;所述配置信息請求、所述業(yè)務(wù)服務(wù)請求、所述溯源電子稱的應(yīng)答信息均采用XML格式。
[0024]進(jìn)一步的,所述溯源電子秤通過溯源電子秤服務(wù)接口與所述溯源應(yīng)用系統(tǒng)通訊;所述溯源電子秤服務(wù)接口包括配置服務(wù)接口和業(yè)務(wù)服務(wù)接口 ;所述電子秤服務(wù)接口采用Http協(xié)議與XML格式實(shí)現(xiàn)。
[0025]下面對本發(fā)明的主要內(nèi)容進(jìn)行描述:
[0026]I)定義協(xié)議實(shí)現(xiàn)方式和服務(wù)接口。
[0027]>基于HTTP協(xié)議和XML格式實(shí)現(xiàn)服務(wù)。
[0028]HTTP請求頭域包括以下域信息:
[0029]X-Version域標(biāo)明溯源秤服務(wù)接口的版本號,溯源電子秤服務(wù)接口收到請求后,首先確定是否支持服務(wù)版本號,若不支持客戶端版本號,返回“版本不支持”異常;X-Version域是必選域。
[0030]Content-Type域是HTTP協(xié)議標(biāo)準(zhǔn)頭部域,用于說明HTTP請求或應(yīng)答傳輸實(shí)體的MIME類型及字符集;
[0031]X-ScalesAddr域指定目標(biāo)溯源電子秤IP地址;
[0032]X-RmNodeId域表示目標(biāo)溯源電子秤所在流通節(jié)點(diǎn)的流通節(jié)點(diǎn)編號,流通節(jié)點(diǎn)編號必須符合商務(wù)部關(guān)于肉類蔬菜流通追溯體系的規(guī)范。[0033]X-RequestNo域標(biāo)記本次請求序號,溯源電子秤服務(wù)接口收到請求序號后進(jìn)行核對;
[0034]X-AuthToken域?yàn)檎J(rèn)證碼,溯源應(yīng)用系統(tǒng)每次發(fā)送請求時(shí),需要攜帶認(rèn)證碼,溯源電子秤收到請求后,通過X-AuthToken域值對請求方進(jìn)行認(rèn)證;配置信息請求和業(yè)務(wù)服務(wù)請求都利用安全碼進(jìn)行驗(yàn)證。
[0035]X-ContentCheckcode域?yàn)閮?nèi)容校驗(yàn)碼,請求所承載內(nèi)容實(shí)體的驗(yàn)證碼,用于防止請求內(nèi)容被篡改。
[0036]HTTP應(yīng)答頭域包括Content-Type域,在每次HTTP應(yīng)答中,必須提供Content-Type域,用以指明所承載的應(yīng)答實(shí)體和應(yīng)答頭部信息的實(shí)體類型和字符集。
[0037]溯源秤服務(wù)請求和應(yīng)答信息(內(nèi)容實(shí)體)采用XML格式。本發(fā)明的信息格式以中文名作為元素內(nèi)容或?qū)傩灾档姆绞竭M(jìn)行說明。溯源秤服務(wù)請求和應(yīng)答主要包括以下信息:
[0038]?溯源秤規(guī)格信息
[0039]?溯源秤網(wǎng)絡(luò)信息
[0040]?溯源秤流通節(jié)點(diǎn)信息
[0041]?溯源秤經(jīng)營者信息
[0042]?溯源秤參數(shù)設(shè)置信息
[0043]?溯源秤狀態(tài)信息
[0044].PLU 信息
[0045]?溯源秤時(shí)間信息
[0046]?行政區(qū)域信息
[0047]?可銷售商品信息
[0048]?溯源秤進(jìn)場信息
[0049]?溯源秤交易信息
[0050]>定義針對溯源應(yīng)用系統(tǒng)和溯源電子秤間通訊協(xié)議的請求和應(yīng)答機(jī)制;
[0051]>定義特定的HTTP應(yīng)答碼、異常信息和溯源電子秤狀態(tài)碼;[0052]當(dāng)溯源秤服務(wù)出現(xiàn)異常時(shí),用599作為HTTP應(yīng)答碼(599碼在HTTP/1.1協(xié)議中沒有被使用)。溯源應(yīng)用系統(tǒng)針對特定HTTP應(yīng)答碼進(jìn)行HTTP協(xié)議層面的錯誤處理。應(yīng)答碼599,即溯源秤服務(wù)應(yīng)用出現(xiàn)的異常,應(yīng)答的內(nèi)容實(shí)體是一個(gè)表示異常對象的XML文檔,其中包含異常碼、異常說明信息、調(diào)試信息或者其它相關(guān)信息。異常信息分為基本異常信息、請求序號異常和溯源秤狀態(tài)異常3種類型。異常碼小于O的異常屬于普通異常;大于O的異常碼屬于協(xié)議規(guī)定的異常。
[0053]下表是協(xié)議預(yù)定義的異常碼:
[0055]
【權(quán)利要求】
1.一種溯源應(yīng)用系統(tǒng)與溯源電子秤的通訊方法,其步驟為: 1)溯源應(yīng)用系統(tǒng)為每一溯源電子秤生成一安全碼,并分配給溯源電子秤;溯源應(yīng)用系統(tǒng)分別與每一溯源電子秤同步維護(hù)一請求序號; 2)溯源應(yīng)用系統(tǒng)向溯源電子秤發(fā)出配置信息請求;所述配置信息請求的頭部域中包含服務(wù)接口版本號、請求序號、認(rèn)證碼、內(nèi)容校驗(yàn)碼; 3)溯源電子秤利用自己的安全碼對收到的配置信息請求進(jìn)行認(rèn)證;如果認(rèn)證未通過,則拒絕該配置信息請求;如果認(rèn)證通過,溯源電子秤對配置信息請求的頭部域信息進(jìn)行檢查,如果檢查不通過則返回驗(yàn)證異常信息給溯源應(yīng)用系統(tǒng);如果通過則根據(jù)該配置信息請求的內(nèi)容進(jìn)行處理并將處理結(jié)果反饋給溯源應(yīng)用系統(tǒng),進(jìn)行步驟4); 4)溯源應(yīng)用系統(tǒng)向溯源電子秤發(fā)送業(yè)務(wù)服務(wù)請求;所述業(yè)務(wù)服務(wù)請求的頭部域中包含服務(wù)接口版本號、請求序號、認(rèn)證碼、內(nèi)容校驗(yàn)碼; 5)溯源電子秤利用自己的安全碼對收到的業(yè)務(wù)服務(wù)請求進(jìn)行認(rèn)證;如果認(rèn)證未通過,則拒絕該業(yè)務(wù)服務(wù)請求;如果認(rèn)證通過,則溯源電子秤對該業(yè)務(wù)服務(wù)請求的頭部域信息進(jìn)行檢查,如果檢查通過則根據(jù)該業(yè)務(wù)服務(wù)請求的內(nèi)容進(jìn)行處理并將處理結(jié)果反饋給溯源應(yīng)用系統(tǒng);如果檢查不通過則返回驗(yàn)證異常信息給溯源應(yīng)用系統(tǒng)。
2.如權(quán)利要求1所述的通訊方法,其特征在于所述配置信息請求為一HTTP請求;所述HTTP請求的頭域包括以下域信息:版本號X-Version,HTTP協(xié)議標(biāo)準(zhǔn)頭部域Content-Type,指定目標(biāo)溯源電子秤IP地址域X-ScalesAddr,目標(biāo)溯源電子秤所在流通節(jié)點(diǎn)的流通節(jié)點(diǎn)編號域X-RmNodeId,請求序號域X-RequestNo,認(rèn)證碼域X-AuthToken,內(nèi)容校驗(yàn)碼域X-ContentCheckcode。
3.如權(quán)利要求1或2`所述的通訊方法,其特征在于所述溯源電子秤對配置信息請求的頭部域信息進(jìn)行檢查的方法為:溯源應(yīng)用系統(tǒng)發(fā)送所述配置信息請求時(shí),在請求頭部域標(biāo)記本次請求序號;溯源秤服務(wù)對該請求頭部域中的請求序號進(jìn)行核對,若請求序號不匹配,溯源電子秤返回正確的請求序號給溯源應(yīng)用系統(tǒng),溯源應(yīng)用系統(tǒng)調(diào)準(zhǔn)請求序號再次發(fā)送配置信息請求;若請求序號匹配,則溯源電子稱對配置信息請求頭部域中的其他信息進(jìn)行檢查。
4.如權(quán)利要求3所述的通訊方法,其特征在于所述請求序號為十進(jìn)制數(shù)字,溯源應(yīng)用系統(tǒng)每次發(fā)送配置信息請求或業(yè)務(wù)服務(wù)請求時(shí),溯源應(yīng)用系統(tǒng)和接收該請求的溯源電子稱同步維護(hù)的請求序號順序加I。
5.如權(quán)利要求1所述的通訊方法,其特征在于所述認(rèn)證碼的生成方法為:所述溯源應(yīng)用系統(tǒng)首先利用秤安全碼和請求序號產(chǎn)生一認(rèn)證明文;然后利用加密算法對該認(rèn)證明文進(jìn)行加密,得到認(rèn)證密文;溯源應(yīng)用系統(tǒng)對認(rèn)證密文進(jìn)行編碼,產(chǎn)生認(rèn)證碼。
6.如權(quán)利要求1或5所述的通訊方法,其特征在于所述秤安全碼選自O(shè)~9十個(gè)十進(jìn)制數(shù)字,秤安全碼長度8個(gè)字節(jié);所述秤安全碼為ASCII碼。
7.如權(quán)利要求6所述的通訊方法,其特征在于所述認(rèn)證明文為一認(rèn)證明文字符串,其具體格式為:認(rèn)證明文字符串=請求方法+ “#” +秤安全碼+ +X-RequestNo ;其中,請求方法是指HTTP協(xié)議中規(guī)定的請求方法,秤安全碼為ASCII碼值;X_RequeStN0為請求序號的十進(jìn)制數(shù)字ASCII字符串。
8.如權(quán)利要求1所述的通訊方法,其特征在于所述內(nèi)容校驗(yàn)碼的生成方法為:首先溯源應(yīng)用系統(tǒng)對配置信息請求或業(yè)務(wù)服務(wù)請求所承載的內(nèi)容實(shí)體生成信息摘要;然后溯源應(yīng)用系統(tǒng)將信息摘要用秤安全碼進(jìn)行加密,生成信息摘要密文;最后溯源應(yīng)用系統(tǒng)對信息摘要密文進(jìn)行編碼,得到所述內(nèi)容驗(yàn)證碼。
9.如權(quán)利要求1所述的通訊方法,其特征在于所述配置信息請求包括獲取溯源秤規(guī)格信息,設(shè)置溯源電子秤所屬經(jīng)營者,設(shè)置溯源電子秤參數(shù),獲取溯源電子秤配置和狀態(tài)信息;所述配置信息請求、所述業(yè)務(wù)服務(wù)請求、所述溯源電子稱的應(yīng)答信息均采用XML格式。
10.如權(quán)利要求1所述的通訊方法,其特征在于所述溯源電子秤通過溯源電子秤服務(wù)接口與所述溯源應(yīng)用系統(tǒng)通訊 ;所述溯源電子秤服務(wù)接口包括配置服務(wù)接口和業(yè)務(wù)服務(wù)接口 ;所述電子秤服務(wù)接口采用Http協(xié)議與XML格式實(shí)現(xiàn)。
【文檔編號】H04L29/06GK103685152SQ201210322353
【公開日】2014年3月26日 申請日期:2012年9月3日 優(yōu)先權(quán)日:2012年9月3日
【發(fā)明者】何梅, 吳德有, 宿穎, 杜栓柱, 江波 申請人:無錫中科方德軟件有限公司