專利名稱:數(shù)字簽名和驗簽方法
技術領域:
本發(fā)明涉及安全認證技術,具體而言,涉及一種數(shù)字簽名和驗簽方法。
背景技術:
CA安全認證技術為核實鑒別電子單據(jù)(尤其涉及金融交易類)真?zhèn)翁峁┝酥匾?術保障,既可以防止他人惡意破壞導致產(chǎn)生重大事故,又可以追究相關責任人。但是目前在 各種應用系統(tǒng)中對于CA安全認證技術應用方式存在一些缺陷和不足。由于當前CA專業(yè)提供廠商的缺陷和不足,只提供原子性的簽名/驗簽API,無法簡 化在業(yè)務中的應用。不能根據(jù)客戶的業(yè)務需求動態(tài)配置“簽名/驗簽”的內(nèi)容規(guī)則。由于 只提供底層服務,在實際業(yè)務應用場景中不具有與用戶良好的操作交互性。當前應用系統(tǒng)的業(yè)務開發(fā)中應用CA認證的缺陷和不足,涉及CA認證的業(yè)務模塊 各自實現(xiàn)簽名字段拼裝排序,代碼重復冗余度大。對于簽名后的單據(jù)密文存儲沒有統(tǒng)一的 標準處理方式,大多數(shù)業(yè)務單據(jù)處理方式是在單據(jù)表命名一個列用于存儲,這樣做的另一 個問題是無法追溯該單據(jù)的所有經(jīng)辦人的簽名記錄,只能記住最新的簽名密文。因此,需求一種CA安全認證方式,能夠由用戶動態(tài)配置“簽名/驗簽”字段規(guī)則, 實現(xiàn)業(yè)務需求與認證功能的相對獨立,并為認證操作提供統(tǒng)一的日志記錄,以保證所有簽 名記錄都有據(jù)可查。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題在于,提供一種CA安全認證方式,能夠由用戶動態(tài)配 置“簽名/驗簽”字段規(guī)則,實現(xiàn)業(yè)務需求與認證功能的相對獨立,并為認證操作提供統(tǒng)一 的日志記錄,以保證所有簽名記錄都有據(jù)可查。有鑒于此,本發(fā)明提供一種數(shù)字簽名和驗簽方法,包括步驟102,接收業(yè)務單據(jù); 步驟104,讀取所述業(yè)務單據(jù)對應的簽名規(guī)則契約;步驟106,根據(jù)所述業(yè)務單據(jù)對應的簽 名規(guī)則契約,從所述業(yè)務單據(jù)中解析出單據(jù)字段,并組成簽名明文;步驟108,發(fā)送方對所 述簽名明文進行數(shù)字簽名后,將所述業(yè)務單據(jù)發(fā)送至接收方;步驟110,所述接收方接收所 述業(yè)務單據(jù)并進行驗簽。通過該技術方案,簽名明文的內(nèi)容可根據(jù)業(yè)務需求進行配置,與簽 名認證之間相對獨立。在上述技術方案中,優(yōu)選地,還包括步驟101,為每種類型業(yè)務單據(jù)設置簽名規(guī) 則契約,所述簽名規(guī)則簽約用于定義所述每種類型業(yè)務單據(jù)的單據(jù)字段的名稱、位置、優(yōu)先 級順序、數(shù)據(jù)類型和轉換類型。在上述技術方案中,優(yōu)選地,所述簽名規(guī)則契約通過類模板方式存儲,或通過基于 元數(shù)據(jù)結構的數(shù)據(jù)庫持久化方式存儲。在上述技術方案中,優(yōu)選地,還包括步驟112,所述接收方驗簽成功后,生成一條 簽名日志記錄并存儲。通過該技術方案,將認證操作的記錄統(tǒng)一存儲,利于日后進行查詢。在上述技術方案中,優(yōu)選地,所述步驟110中,根據(jù)所述業(yè)務單據(jù)的對應簽名日志記錄,取得對所述業(yè)務單據(jù)的上一次簽名,以供所述接收方驗簽。本發(fā)明還提供一種數(shù)字簽名和驗簽裝置,包括業(yè)務單據(jù)錄入模塊,接收業(yè)務單 據(jù);簽名規(guī)則契約讀取模塊,讀取所述業(yè)務單據(jù)對應的簽名規(guī)則契約;簽名明文組合模塊, 根據(jù)所述業(yè)務單據(jù)對應的簽名規(guī)則契約,從所述業(yè)務單據(jù)中解析出單據(jù)字段,并組成簽名 明文;簽名模塊,供發(fā)送方對所述簽名明文進行數(shù)字簽名;驗簽模塊,供接收方對所述發(fā)送 方發(fā)送來的所述業(yè)務單據(jù)進行驗簽。通過該技術方案,簽名明文的內(nèi)容可根據(jù)業(yè)務需求進 行配置,與簽名認證之間相對獨立。在上述技術方案中,優(yōu)選地, 還包括簽名規(guī)則契約設置模塊,為每種類型業(yè)務單 據(jù)設置簽名規(guī)則契約,所述簽名規(guī)則簽約用于定義所述每種類型業(yè)務單據(jù)的單據(jù)字段的名 稱、位置、優(yōu)先級順序、數(shù)據(jù)類型和轉換類型。在上述技術方案中,優(yōu)選地,還包括簽名規(guī)則契約存儲模塊,將所述簽名規(guī)則契 約通過類模板方式存儲,或通過基于元數(shù)據(jù)結構的數(shù)據(jù)庫持久化方式存儲。在上述技術方案中,優(yōu)選地,還包括簽名日志記錄存儲模塊,所述接收方驗簽成 功后,生成一條簽名日志記錄并存儲。通過該技術方案,將認證操作的記錄統(tǒng)一存儲,利于 日后進行查詢。在上述技術方案中,優(yōu)選地,所述驗簽模塊還根據(jù)所述業(yè)務單據(jù)的對應簽名日志 記錄,取得對所述業(yè)務單據(jù)的上一次簽名,以供所述接收方驗簽。通過上述技術方案,可以實現(xiàn)一種數(shù)字簽名和驗簽方法和裝置,可通過動態(tài)配置 簽名規(guī)則契約,來生成符合業(yè)務需求的簽名明文,并對簽名驗簽操作進行統(tǒng)一記錄,有利于 日后進行查詢。
圖1是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的流程圖;圖2是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽裝置的框圖;圖3是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的操作流程圖;圖4是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的簽名規(guī)則契約的存儲 結構示意圖;圖5是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的驗簽操作的示意圖;圖6是紙質單據(jù)的流通示意圖;圖7是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的保證紙質單據(jù)正確性 的流程圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結合附圖和具體實 施方式對本發(fā)明進行進一步的詳細描述。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實 施例的限制。圖1是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的流程圖。
如圖1所示,本發(fā)明提供了一種數(shù)字簽名和驗簽方法,包括步驟102,接收業(yè)務單 據(jù);步驟104,讀取所述業(yè)務單據(jù)對應的簽名規(guī)則契約;步驟106,根據(jù)所述業(yè)務單據(jù)對應的 簽名規(guī)則契約,從所述業(yè)務單據(jù)中解析出單據(jù)字段,并組成簽名明文;步驟108,發(fā)送方對 所述簽名明文進行數(shù)字簽名后,將所述業(yè)務單據(jù)發(fā)送至接收方;步驟110,所述接收方接收 所述業(yè)務單據(jù)并進行驗簽。通過該技術方案,簽名明文的內(nèi)容可根據(jù)業(yè)務需求進行配置,與 簽名認證之間相對獨立。在上述技術方案中,還包括步驟101,為每種類型業(yè)務單據(jù)設置簽名規(guī)則契約, 所述簽名規(guī)則簽約用于定義所述每種類型業(yè)務單據(jù)的單據(jù)字段的名稱、位置、優(yōu)先級順序、 數(shù)據(jù)類型和轉換類型。在上述技術方案中,所述簽名規(guī)則契約通過類模板方式存儲,或通過基于元數(shù)據(jù) 結構的數(shù)據(jù)庫持久化方式存儲。在上述技術方案中 ,還包括步驟112,所述接收方驗簽成功后,生成一條簽名日 志記錄并存儲。通過該技術方案,將認證操作的記錄統(tǒng)一存儲,利于日后進行查詢。在上述技術方案中,所述步驟110中,根據(jù)所述業(yè)務單據(jù)的對應簽名日志記錄,取 得對所述業(yè)務單據(jù)的上一次簽名,以供所述接收方驗簽。圖2是根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽裝置的框圖。如圖2所示,本發(fā)明提供了一種數(shù)字簽名和驗簽裝置200,包括業(yè)務單據(jù)錄入模 塊202,接收業(yè)務單據(jù);簽名規(guī)則契約讀取模塊204,讀取所述業(yè)務單據(jù)對應的簽名規(guī)則契 約;簽名明文組合模塊206,根據(jù)所述業(yè)務單據(jù)對應的簽名規(guī)則契約,從所述業(yè)務單據(jù)中解 析出單據(jù)字段,并組成簽名明文;簽名模塊208,供發(fā)送方對所述簽名明文進行數(shù)字簽名; 驗簽模塊210,供接收方對所述發(fā)送方發(fā)送來的所述業(yè)務單據(jù)進行驗簽。通過該技術方案, 簽名明文的內(nèi)容可根據(jù)業(yè)務需求進行配置,與簽名認證之間相對獨立。在上述技術方案中,還包括簽名規(guī)則契約設置模塊,為每種類型業(yè)務單據(jù)設置簽 名規(guī)則契約,所述簽名規(guī)則簽約用于定義所述每種類型業(yè)務單據(jù)的單據(jù)字段的名稱、位置、 優(yōu)先級順序、數(shù)據(jù)類型和轉換類型。在上述技術方案中,還包括簽名規(guī)則契約存儲模塊,將所述簽名規(guī)則契約通過類 模板方式存儲,或通過基于元數(shù)據(jù)結構的數(shù)據(jù)庫持久化方式存儲。在上述技術方案中,還包括簽名日志記錄存儲模塊,所述接收方驗簽成功后,生 成一條簽名日志記錄并存儲。通過該技術方案,將認證操作的記錄統(tǒng)一存儲,利于日后進行 查詢。在上述技術方案中,所述驗簽模塊210還根據(jù)所述業(yè)務單據(jù)的對應簽名日志記 錄,取得對所述業(yè)務單據(jù)的上一次簽名,以供所述接收方驗簽。圖3至圖5是采用根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的進行單據(jù)簽 名驗簽的示意圖。如圖3所示,對電子單據(jù)進行數(shù)字簽名和驗簽的過程如下步驟302,用戶錄入業(yè)務數(shù)據(jù)。步驟304,配置單據(jù)“簽名/驗簽”字段項。首先需要闡述兩個名詞“簽名明文”,“簽名規(guī)則契約”。簽名明文也就是需要用私鑰簽名的一段內(nèi)容信息,內(nèi)容長度不限,一般是由單據(jù)上一些重要的敏感信息組成,也可以是單據(jù)上的任何內(nèi)容信息。簽名規(guī)則契約針對其一類單據(jù)的“簽名明文”組成結構,是一種預先約定好的協(xié) 議規(guī)則,“簽名規(guī)則契約”主要說明了規(guī)則結構中所包含的單據(jù)字段名稱,字段在單據(jù)上所 處位置,優(yōu)先級順序,以及數(shù)據(jù)類型,轉換類型等等。單據(jù)字段名稱單據(jù)上字段的唯一標識,名稱具有一定業(yè)務含義。
字段在單據(jù)上所處位置單據(jù)字段是在單據(jù)表頭,還是表體,或者在表尾,根據(jù)不 同類型單據(jù)可以定義具體的位置。優(yōu)先級順序組成“簽名明文”時,各個單據(jù)字段的拼接順序,默認優(yōu)先順序為從左 向右遞減。數(shù)據(jù)類型單據(jù)字段是日期格式,還是金額數(shù)字格式,或者其它格式等等。轉換類型在取得指定單據(jù)字段的值后,經(jīng)過特定業(yè)務規(guī)則的數(shù)據(jù)轉換,轉換為其 他具有特定含義的數(shù)值(例如單據(jù)上填寫的是銀行賬戶編碼,經(jīng)過特定數(shù)據(jù)轉換,最終得 到的是銀行賬戶名稱)。簽名規(guī)則契約的配置存儲方式支持兩種存儲模式,第一種存儲方式為類模板方 式,第二種存儲方式是基于元數(shù)據(jù)結構的數(shù)據(jù)庫持久化方式。配置存儲與單據(jù)匹配規(guī)則每一種類型的單據(jù)對應一條或者多條不同版本的“簽 名規(guī)則契約”?!邦惸0宸绞健笔亲詈唵蔚拇鎯Ψ绞?,一般由開發(fā)技術人員預先定義,不支持 客戶根據(jù)需求動態(tài)配置,沒有版本記錄。“基于元數(shù)據(jù)結構的數(shù)據(jù)庫持久化方式”支持客戶 根據(jù)需求動態(tài)配置,可以隨時變更“簽名規(guī)則契約”組成結構,每次變更會產(chǎn)生一個新的版 本,沒有業(yè)務完結的單據(jù)將繼續(xù)遵守老的版本執(zhí)行,如圖4所示。步驟306,讀取單據(jù)“簽名/驗簽”字段項配置。步驟308,組裝簽名明文。根據(jù)當前單據(jù)的業(yè)務類型讀取與之對應的“簽名規(guī)則契 約”,通過內(nèi)置的解析器翻譯配置好的“簽名規(guī)則契約”,然后從當前單據(jù)信息中取出所需內(nèi) 容摘要,組成“簽名明文”用于CA私鑰簽名使用。步驟310,前臺或后臺對單據(jù)進行簽名。步驟312,經(jīng)網(wǎng)絡發(fā)送單據(jù)。步驟314,對當前單據(jù)進行數(shù)據(jù)庫驗簽。步驟316,確認數(shù)據(jù)庫驗簽是否成功。步驟318,數(shù)據(jù)庫驗簽不成功時,提示驗簽失敗。步驟320,數(shù)據(jù)庫驗簽成功后,對接收的單據(jù)進行網(wǎng)絡驗簽。步驟322,確認網(wǎng)絡驗簽是否成功,不成功進入步驟318。步驟324,驗簽成功,記錄本次操作的簽名記錄。簽名日志記錄自動產(chǎn)生,并且由數(shù) 據(jù)庫存儲下來。對于不同業(yè)務類型的單據(jù)每次業(yè)務操作都會產(chǎn)生一條簽名日志記錄,分為兩個表 存儲,一個為臨時表,永遠存儲目前為止最后一次操作所產(chǎn)生的日志記錄,另一個存儲所有 操作的簽名日志記錄。通過查詢先前存儲的簽名記錄,用戶可以直觀的查看到所選單據(jù)經(jīng)手的所有人員 簽名,單據(jù)被操作的次數(shù),如果遇到突發(fā)事件,可以立刻對問題單據(jù)追溯到所有經(jīng)辦人的操 作軌跡。
對于上述步驟中的數(shù)據(jù)庫驗簽和網(wǎng)絡驗簽的作用,可參考圖5。單據(jù)A為支付類單據(jù),需要兩個人審核,經(jīng)理甲還有經(jīng)理乙,業(yè)務環(huán)節(jié)已經(jīng)進行到 經(jīng)理甲審批通過,需要經(jīng)理乙審批的時候,經(jīng)理乙在審批前肯定需要確定上一環(huán)節(jié)是否為 經(jīng)理甲審批,并且單據(jù)在經(jīng)理甲審批后沒有被其他人惡意篡改過,這時候可以先進行“數(shù)據(jù) 庫驗簽”,確保上一環(huán)節(jié)業(yè)務操作無異常,然后經(jīng)理乙審批通過,但是要保證本次操作在傳 輸?shù)胶笈_服務器的過程中沒有被其他人惡意篡改過,時候就進行“網(wǎng)絡驗簽”。圖6和圖7是采用根據(jù)本發(fā)明的一個實施例的數(shù)字簽名和驗簽方法的保證紙質單 據(jù)正確性的示意圖。如圖6所示,一般客戶拿到應用系統(tǒng)打印出的紙制單據(jù),會多人經(jīng)手傳遞,此時可 能會出現(xiàn)一些人惡意篡改單據(jù)內(nèi)容,使最終接收者拿到錯誤的紙制單據(jù)。如圖7所示,使用本實施例中的數(shù)字簽名和驗簽方法,針對上述情況的處理步驟 為步驟702,用戶根據(jù)數(shù)字簽名和驗簽裝置的驗證界面提示,輸入紙質打印單據(jù)信息 和驗證碼;步驟704,讀取輸入單據(jù)的對應簽名規(guī)則契約,并組成明文摘要; 步驟706,對明文摘要進行驗簽;步驟708,驗簽結果成功,證明該紙質打印單據(jù)合法;步驟710,驗簽不成功,證明該紙質打印單據(jù)不合法。根據(jù)本發(fā)明的技術方案,可以實現(xiàn)一種數(shù)字簽名和驗簽方法,但保留了原有CA安 全認證的全部特點,而且延伸優(yōu)化了在不同場景下其使用方法,極大提高了客戶的交互體 驗,又提高了技術人員的開發(fā)效率。同時支持用戶根據(jù)需要自己配置,這樣使得對于電子單 據(jù)的CA安全認證更靈活,用戶可以自定義單據(jù)的敏感信息,可以實時的根據(jù)用戶的需要修 改這個配置。總的來說也提升了 CA安全認證方式的靈活性、使得企業(yè)電子信息系統(tǒng)安全保 證上升了一個新的高度。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技 術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
一種數(shù)字簽名和驗簽方法,其特征在于,包括步驟102,接收業(yè)務單據(jù);步驟104,讀取所述業(yè)務單據(jù)對應的簽名規(guī)則契約;步驟106,根據(jù)所述業(yè)務單據(jù)對應的簽名規(guī)則契約,從所述業(yè)務單據(jù)中解析出單據(jù)字段,并組成簽名明文;步驟108,發(fā)送方對所述簽名明文進行數(shù)字簽名后,將所述業(yè)務單據(jù)發(fā)送至接收方;步驟110,所述接收方接收所述業(yè)務單據(jù)并進行驗簽。
2.根據(jù)權利要求1所述的數(shù)字簽名和驗簽方法,其特征在于,還包括步驟101,為每種類型業(yè)務單據(jù)設置簽名規(guī)則契約,所述簽名規(guī)則簽約用于定義所述每 種類型業(yè)務單據(jù)的單據(jù)字段的名稱、位置、優(yōu)先級順序、數(shù)據(jù)類型和轉換類型。
3.根據(jù)權利要求2所述的數(shù)字簽名和驗簽方法,其特征在于,所述簽名規(guī)則契約通過 類模板方式存儲,或通過基于元數(shù)據(jù)結構的數(shù)據(jù)庫持久化方式存儲。
4.根據(jù)權利要求1至3中任一項所述的數(shù)字簽名和驗簽方法,其特征在于,還包括 步驟112,所述接收方驗簽成功后,生成一條簽名日志記錄并存儲。
5.根據(jù)權利要求4所述的數(shù)據(jù)簽名和驗簽方法,其特征在于,所述步驟110中,根據(jù)所 述業(yè)務單據(jù)的對應簽名日志記錄,取得對所述業(yè)務單據(jù)的上一次簽名,以供所述接收方驗 簽。
6.一種數(shù)字簽名和驗簽裝置,其特征在于,包括 業(yè)務單據(jù)錄入模塊,接收業(yè)務單據(jù);簽名規(guī)則契約讀取模塊,讀取所述業(yè)務單據(jù)對應的簽名規(guī)則契約; 簽名明文組合模塊,根據(jù)所述業(yè)務單據(jù)對應的簽名規(guī)則契約,從所述業(yè)務單據(jù)中解析 出單據(jù)字段,并組成簽名明文;簽名模塊,供發(fā)送方對所述簽名明文進行數(shù)字簽名;驗簽模塊,供接收方對所述發(fā)送方發(fā)送來的所述業(yè)務單據(jù)進行驗簽。
7.根據(jù)權利要求6所述的數(shù)字簽名和驗簽裝置,其特征在于,還包括簽名規(guī)則契約設置模塊,為每種類型業(yè)務單據(jù)設置簽名規(guī)則契約,所述簽名規(guī)則簽約 用于定義所述每種類型業(yè)務單據(jù)的單據(jù)字段的名稱、位置、優(yōu)先級順序、數(shù)據(jù)類型和轉換類 型。
8.根據(jù)權利要求7所述的數(shù)字簽名和驗簽裝置,其特征在于,還包括簽名規(guī)則契約存儲模塊,將所述簽名規(guī)則契約通過類模板方式存儲,或通過基于元數(shù) 據(jù)結構的數(shù)據(jù)庫持久化方式存儲。
9.根據(jù)權利要求6至8中任一項所述的數(shù)字簽名和驗簽裝置,其特征在于,還包括 簽名日志記錄存儲模塊,所述接收方驗簽成功后,生成一條簽名日志記錄并存儲。
10.根據(jù)權利要求9所述的數(shù)據(jù)簽名和驗簽裝置,其特征在于,所述驗簽模塊還根據(jù)所 述業(yè)務單據(jù)的對應簽名日志記錄,取得對所述業(yè)務單據(jù)的上一次簽名,以供所述接收方驗
全文摘要
本發(fā)明提供了一種數(shù)字簽名和驗簽方法,包括步驟102,接收業(yè)務單據(jù);步驟104,讀取業(yè)務單據(jù)對應的簽名規(guī)則契約;步驟106,根據(jù)業(yè)務單據(jù)對應的簽名規(guī)則契約,從業(yè)務單據(jù)中解析出單據(jù)字段,并組成簽名明文;步驟108,發(fā)送方對簽名明文進行數(shù)字簽名后,將業(yè)務單據(jù)發(fā)送至接收方;步驟110,接收方接收業(yè)務單據(jù)并進行驗簽。本發(fā)明還提供一種數(shù)字簽名和驗簽裝置。根據(jù)本發(fā)明,能夠由用戶動態(tài)配置“簽名/驗簽”字段規(guī)則,實現(xiàn)業(yè)務需求與認證功能的相對獨立,并為認證操作提供統(tǒng)一的日志記錄,以保證所有簽名記錄都有據(jù)可查。
文檔編號H04L9/32GK101964710SQ20101029201
公開日2011年2月2日 申請日期2010年9月26日 優(yōu)先權日2010年9月26日
發(fā)明者潘飛 申請人:用友軟件股份有限公司