周伊婷 朱昌明
(1.上海海事大學 財務處,上海市 201306;2.上海海事大學 信息工程學院,上海市 201306)
網絡金融是金融業的分支,旨在通過融合網絡技術和金融業,使金融從事者可以通過網絡來進行交易、運作。作為新型金融運作模式,網絡金融以金融服務提供者的主機為基礎,內嵌金融數據和業務流程,通過用戶終端為操作界面,實現電子支付、網絡保險、網絡銀行、網絡證券等金融業務的開展。所以,網絡金融為全面實現金融信息化和國民經濟信息化奠定了基礎。
近年來,網絡金融逐步展現出以下六個方面的作用:一是依賴網絡技術的發展,網絡金融的經營成本(含建設成本、運營成本、清算成本和維護成本)大幅度降低。二是由于網絡的高覆蓋性和時空跨越性,網絡金融可以提供跨時空維度的優質服務。三是通過計算機系統和信息化數據庫的配合,網絡金融提高了金融業的管理效率,優化了管理機制,強化了風險控制。四是基于高效的服務效率和管理機制,網絡金融可以吸引優質客戶,且網絡系統特有的過濾功能可以為機構篩選出優秀客戶,可以進一步保證機構的安全。五是網絡金融提高了系統升級和維護的便利程度。傳統的系統維護往往從客戶端開始,這樣需要投入大量的時間和精力。但是,在使用互聯網技術后,特別是客戶端—服務器模式之后,這一現象得到很好的改善。系統升級只需要對服務器做改動即可,完全可以隔離客戶端。這樣的技術可以使金融機構將更多的時間用于新產品和服務的開發上,最大程度地滿足客戶的要求。六是網絡金融有利于金融的全面發展。在互聯網的幫助下,金融機構不僅可以從事更多的業務,如網絡銀行、網上貿易融資、網上保險、網上國際結算、網上證券經紀等全方位金融服務,避免了重復工作;而且有利于實現資源共享,可以讓客戶在不同的地方擁有同等效果的業務結果,避免對同一用戶做重復服務,從而提高效率,避免或減少金融欺騙。
隨著科技的發展和貿易一體化的形成,網絡金融步入全新的發展階段,但網絡金融業務取得迅猛發展的同時,也衍生出一些潛在的風險。其中,業務風險又分為信用風險(因債務人的信用問題,未履行條約合同規定的內容而導致的銀行損失)、流動性風險(因資產到期而無法變現,導致銀行資產和收益的損失)、信譽風險(因銀行內部人員的瀆職、系統的錯誤、外部人員的惡意攻擊而使銀行遭受名譽受損)、利率風險(因利率變動而使銀行蒙受損失)、匯率風險(跨國業務中的匯率變動往往會使某一國的銀行受損)。技術風險則包括了安全風險(因系統隱患、操作失誤所帶來的損失)和技術選擇風險(由于技術選擇失誤導致科技進步時,技術無法跟上科技發展的腳步產生滯后性,結果導致競爭力下降、技術陳舊、網絡過時的危險,易使金融機構遭受損失)等。
除此之外,隨著數據規模的擴大,網絡金融的數據風險也備受學者們的重視。所謂網絡金融的數據安全風險,主要包含交易數據泄露、機密信息被盜、交易平臺被攻擊等。相較于信用風險和技術風險,數據安全風險對網絡金融安全的影響更大。
如何構建以數據安全為目標,結合應用場景的管控方案,現在已經成為金融機構、金融行業數據安全管理亟待解決的問題。為了提升數據的安全性,各行業企業已經采取了如下相關措施。
首先,制定統一的數據安全防泄密措施,健全數據使用合規管控制度,遵從和落實國家的法律法規要求,參照國家的數據安全標準,明確數據使用的合規要求和安全紅線。例如,2020年中國人民銀行發布的《個人金融信息保護技術規范》中就明確了個人金融信息在收集、傳輸、存儲、使用、刪除、銷毀等生命周期各環節的安全防護要求,我國的個人信息保護法在懲罰力度上比歐盟《通用數據保護條例》(GDPR)更為嚴格。
其次,進一步建立和完善相關制度,如數據分類分級制度。利用工具,先是對現有的數據進行調研、梳理,再對數據進行分類分級管理。例如,數據分類的依據主要有三方面,一是梳理形成的數據清單,二是要結合人工調研了解到的數據應用場景及業務,三是中國人民銀行發布的JR/T0197-2020《金融數據安全數據安全分級指南》等。
然后,加強數據安全防護技術的升級與提升,做好外部合作的安全管理。當前,不少中小規模金融機構依托傳統邊界的安全架構,已經建成較為嚴密的網絡安全邊界防護措施,結合一些數據安全產品和工具,一定程度地避免數據泄露等安全問題。
最后,在數據產生、收集、處理、使用等過程中,做好數據生命周期的安全管理。一方面,結合一些防泄密產品和工具,可在一定程度地避免數據泄露等安全問題。另一方面,要對內部人員進行行為管控。
在上述提到的維護網絡金融數據安全的措施中,結合防泄密產品和工具已經成為一種主流方式。本文基于密碼學設計一種防泄密算法,即改進的加密和認證方法。
公鑰(Public Key)與私鑰(Private Key)是通過加密算法得到的一個密鑰對(即一個公鑰和一個私鑰,也就是非對稱加密方式)。公鑰可對會話進行加密、驗證數字簽名,只有使用對應的私鑰才能解密會話數據,從而保證數據傳輸的安全性。公鑰是密鑰對外公開的部分,私鑰則是非公開的部分,由用戶自行保管。
本文介紹基于公鑰和私鑰來保護金融機構之間溝通和交易的方式。
在密碼學中,加密系統主要有四個專業術語:一是明文,即被加密的報文;二是密文,即加密后的報文;三是密碼體制,即加密和解密的算法;四是密鑰,用于加密和解密的鑰匙,由一串數字流、符號流所組成。
加密的過程如下,發送信息的一方,要發送一串數據,即明文,記為M,然后利用加密密鑰K1和加密算法E,把明文加密成密文,記為C,即C=EK1(M);再把C送到接收方,接收方則利用密鑰和解密算法把密文變成明文,即M=DK2(C)。如果K1與K2不同,則可以得到以下的表達式:
DK2(EK1(M))=DK2(C)=M
但是,有了加密算法和解密算法并不一定能保證安全性。因為在一般的密碼系統中,密文在傳送過程中是很容易就被截獲的,那么明文的信息就容易被破解。所以,為了防止明文的泄漏,應該構造一個好的密碼系統。那么什么是一個好的密碼系統呢?對此,Francis Bacon提出了三個條件用于判別一個好的密碼系統:一是給定加密密鑰K1和明文M時,加密算法E(M)易算;給定解密密鑰K2和密文C時,解密算法D(C)易算;二是K2不知的情況下,也不可能由C推出M;三是密文看起來不應該讓別人產生懷疑。
總體而言,一個好的密碼系統就是在不知道解密方法時,由密文計算明文是不行的。對于合法的通信雙方而言,加密和解密很容易。但對于惡意破壞者,密碼破譯者而言由密文推導出明文就算是不可行的。然而,當前大量加密算法的基本思想就是利用加密密鑰對發送的信息進行加密,再通過通信信道將信息發送給接受方,接收方用解密密鑰對信息進行解密,從而接受發送方送過來的信息。這看上去很容易,但是細想一下,如果在發送過程中,消息被竊取,被第三方假冒發送方發送虛假信息,或者修改刪除原有信息,那么就很容易產生泄密。為此,人們提出了認證的概念。所謂認證,就好比我們在平時生活中通過身份證、護照、工作證等“物理物品”來辨認交易對方一樣,在電子商務中使用的認證也需要讓交易雙方確定對方是自己的合作伙伴,而不是競爭對手,于是便出現了不少認證方法。而本文就是提出一種改進的加密和認證方法。
為了更好地陳述本文所提出的方法,先引入協議的概念。協議指商業機構之間進行數據傳輸、信息交流時必須共同遵守的道德協議和電子商務協議。其中,電子商務協議是指雙方要進行信息交流,就必須要有服務器和客戶端。現在普遍采用的是服務器——客戶端模式,因此對于任何一家商業機構而言,他們如果要進行交流和通信,他們的服務器和客戶端內的邏輯分層(即為了信息傳輸的準確性,把計算機內部傳輸分成一些層次,主要是OSI、TCPIP和IEEE802.11結構)之間不同端的相同層次必須使用相同的協議,這樣才能保證信息傳輸的準確性,而這里的計算機中的協議具體指不同結點的相同層次要有相同的功能。那么基于這些結構,商業機構又要遵循相同的商業電子協議。當前主流的協議是SET協議。該協議是由維薩和萬事達等國際信用卡組織于1996年2月1日會同一些計算機供應商所開發的安全電子交易協議。
在上述協議的概念下,假設有A、B兩家公司要進行商業協商,但又不希望被偷竊信息,則若基于傳統的做法,A公司要發信息,將其信息作為明文M。它先用一種加密密鑰K1對M進行加密,利用加密密鑰K1和加密算法E,把這些信息加密成密文C;而B公司收到后,用解密密鑰K2對C執行解密算法D,解出明文M,從而與A公司交流。但這種密鑰太容易被識破了。所以本文的解決方法如下。
首先A公司有一對密鑰,其中一個是用于加密的公開密鑰(公鑰PA),另一個是A公司自行保存的密鑰(私鑰RA);而B公司也有一對密鑰,用于公開的加密密鑰PB和用于解密的私有密鑰RB。他們雙方可以利用認證技術,交換各自的公鑰,那么A公司就用B公司的公鑰PB對信息進行加密,然后信息通過通信信道傳送給B公司,B公司用自己的私鑰RB對信息進行解密,從而得到A公司的信息。B公司用A公司的公鑰PA對自己所要傳輸的信息進行加密,然后傳給A;A則用自己的私鑰RA對B送過來的信息進行解密,從而了解到B公司的回復信息,并完成一次交流。在這個方法之中要注意的是,A、B兩家公司各自的公鑰和私鑰不能存在可逆的結果,即攻擊者不能由公鑰簡單得出私鑰,也不能由私鑰簡單得出公鑰。那么如何得到不可逆的公鑰與私鑰,從而保護密鑰不被識破呢?
鑒于現在的數學技術中大素數很難被解破這一特點,本文利用大素數來構造密鑰。我們知道,多個大素數相乘很簡單,如131*11*11=27641,但是把相乘后的結果再分解成多個素數要很長時間。況且要注意一點的是計算機中的數據對于計算機而言全部是以0、1這樣的二進制數據來存儲的,比如十進制數1023,它的二進制數就是1111111111。那么對于一個由兩個大素數相乘所得的十進制作為密鑰的話,它的二進制數位必然很長。在計算機科學中,做過這樣一個統計,如果要充分破解一個二進制位為100位的密鑰,那么計算機至少要破解74年;如果要破解200位長的密鑰,要38億年,這樣一個年份,是不可能有人破解的,因此A、B兩家公司可以采用128位的密鑰來進行加密。
另外,為了讓A、B兩家公司可以肯定的明確信息來源于對方,本文采用了類似于信封一般的認證技術。眾所周知,由于信封上所擁有的地址和姓名,我們可以知道這封信是來自誰的。盡管這可能會有假冒信件以騙取利益,但至少可以肯定的是這封信的名義主人是誰。或許接收方就可以通過電話等方式詢問加以確認,電子認證技術也是一樣的。
為了讓A、B雙方確認對方信息,本文采用了基于HASH函數的認證技術。所謂HASH函數,就是一種將不規則長度的信息映射成為具體相同長度的數據的函數。而且這種函數的特點是不同的數據通過HASH函數后,都會有不同的映射結果。這樣就防止了數據的偽造。那么本文先把A公司要發送的數據先通過HASH函數映射成為一串新的數據,稱作為數字簽名。數字簽名就像是在傳統商業中的文件簽名一樣。然后,A公司用B公司的公鑰PB進行對自己的明文、數字簽名、和自己的公鑰進行加密,形成二次加密。然后將這些二次加密后的東西形成一個數字信封發送給B公司。
B公司在收到這個數字信封后,先用自己的私鑰RB解開這個信封,得到用A公司發來的明文、數字簽名和公鑰。由于密鑰的對稱性,B公司只要用A公司的公鑰PA對明文再做HASH映射,便會得到一個新的數字簽名,將兩個數字簽名進行比較,只要相等,便可以得到一個結論,這個信息確實來自A公司。那么B公司便可以得到A公司發來的信息了,然后用同樣的方法給A公司發送信息。
這樣一來,A、B兩家公司便可以進行放心的交流信息了。因為如果數字簽名不正確,那么不容置疑,這個信息必定不來自于A或B。
然而,在這種加密和認證的方法下,是否一定安全呢?經過嚴密驗證(可以通過概率論和生日悖論知識來進行),可以知道這種加密和認證方法被攻破的概率約為:
由于n很大,一般可以取1024位,k可以取小于10位的數據,因為報文分組的長度一般不超過100位,那么這樣算下來,概率幾乎為0.1,可以認為是完全的,而且即使通過計算機破譯,也要上萬年。再排除偶然性破解的可能性,這種認證和加密的方法在計算上是安全的。
因此,A公司和B公司之間的信息傳送方式可以采用這種方法,他們的交易也將會基本上不出問題。以上便是本文所提到的改進的加密和認證方法。這種方法可以用于當今的網絡金融中并對存在的數據安全問題進行較好地處理。
網絡金融作為現代科技的產物,具有良好的應用效果且有助于提升工作效率,但是,保證它的安全性是當前各主體面臨的一個主要問題。本文針對網絡金融中的數據安全問題,從密碼學的角度提出了一種改進的加密和認證方法。不同于傳統的加密算法,本文基于大素數理念,設計不可逆的公鑰與私鑰,并利用基于HASH函數的認證技術以確保通信雙方的安全性。筆者期望未來將該方法用到保險、期貨等應用場景中,以更好地驗證本文方法的有效性。