支持多種數(shù)字通證的區(qū)塊鏈在線授信系統(tǒng)
- 來源:網(wǎng)絡空間安全 smarty:if $article.tag?>
- 關鍵字:區(qū)塊鏈,數(shù)字通證,安全,授信系統(tǒng) smarty:/if?>
- 發(fā)布時間:2019-02-01 10:23
摘要:支持多通證的區(qū)塊鏈在線授信數(shù)字系統(tǒng)(以下簡稱授信系統(tǒng)),利用區(qū)塊鏈、密碼學、通信安全領域的公理性技術,對多種區(qū)塊鏈數(shù)字通證的私鑰、操作指令進行保護。從原理上解決了私鑰、指令的盜取與篡改等問題,是一套完整的數(shù)字通證管理、審核和轉移的授信系統(tǒng)。
關鍵詞:區(qū)塊鏈;數(shù)字通證;安全;授信系統(tǒng)
中圖分類號:TP319 文獻標識碼:J
1引言
區(qū)塊鏈技術問世不久,便在很短的時間內風靡全球。2017年起,這項萬眾矚目的新技術受到諸多風險投資的青睞。
以“中國知網(wǎng)”數(shù)據(jù)庫文獻為例,以“區(qū)塊鏈”為關鍵詞進行篇名檢索,共能獲得區(qū)塊鏈相關文獻高達1881篇的檢索量。然而,以“區(qū)塊鏈”和“安全”為關鍵詞進行篇名檢索,獲得的相關文獻卻僅有65篇。
事實上,隨著區(qū)塊鏈的不斷發(fā)展,數(shù)字通證被盜的案件也與日俱增。
2014年2月24日,Mt.Gox(俗稱“門頭溝”)其交易平臺85萬個比特幣被盜;2015年2月18日,比特幣存錢罐3000個比特幣被盜;2016年8月3日,Bitfinex被盜取119756枚比特幣;2017年7月17日coindash被盜取4萬個以太幣。
互聯(lián)網(wǎng)時代的到來,使人們的生活水平得到了極大提升。電子信息技術的發(fā)展,加快了日常的生活節(jié)奏。伴隨而來的就是電子信息安全出現(xiàn)各種安全問題[1],這樣的情況同樣發(fā)生在區(qū)塊鏈行業(yè)中。市場上正在有越來越多的投資機構、企業(yè)和創(chuàng)業(yè)團隊進入到區(qū)塊鏈這個領域,他們持有的各類數(shù)字通證規(guī)模也在快速擴大。在過去的幾年中,區(qū)塊鏈領域的一些團隊也曾嘗試過或正在嘗試利用各種技術增強數(shù)字通證錢包的安全性,但是目前針對企業(yè)級別的數(shù)字通證管理系統(tǒng)十分缺乏,也沒有完整的多人共同管理通證的有效手段。這種情況與企業(yè)傳統(tǒng)的資產(chǎn)管理流程存在巨大差別。客觀地說,中國在人類第五活動空間的生活當前還處于劣勢[2]。
2授信系統(tǒng)設計要點簡述
2.1授信系統(tǒng)概念
科技的快速發(fā)展推動了計算機技術的進步,其被運用于社會生活的多個方面。但由于其自身特點與缺陷,加之其它因素的影響,使得人們也逐漸開始關注計算機網(wǎng)絡信息的安全,并采取積極防御措施[3]。
類比計算機技術,區(qū)塊鏈的發(fā)展同樣離不開安全的城池。而支持多通證的區(qū)塊鏈在線授信數(shù)字系統(tǒng)的誕生,實實在在彌補了這個新行業(yè)的一大漏洞。授信系統(tǒng)是一套企業(yè)自主擁有的數(shù)字通證管理系統(tǒng)。針對企業(yè)程式化、自動化使用做了完備的工作。它沒有使用花哨的技術,而是使用區(qū)塊鏈公理性技術,通過授信系統(tǒng)統(tǒng)一管理企業(yè)所擁有的各類數(shù)字通證,例如BTC、ETH、USDT、EOS等主流通證。在信息傳遞上使用了獨創(chuàng)的公鑰交換協(xié)議來保障員工間信息流轉互信;在通信上,使用了迪菲-赫爾曼密鑰交換(Diffie-hellmanKeyExchange)安全協(xié)議,來確保通信安全以及確保通信前向安全。前向安全能夠保護過去進行的通訊不受密碼或密鑰在未來暴露的威脅。如果系統(tǒng)具有前向安全性,就可以保證密碼或密鑰在某個時刻不慎泄露,過去已經(jīng)進行的通訊依然是安全的;通過將私鑰運行時駐留內存中的方式讓其永不暴露,通過企業(yè)自主擁有的私有區(qū)塊鏈網(wǎng)絡保證操作指令和資產(chǎn)數(shù)據(jù)的存證和驗真,通過順序性私鑰簽名方式構建企業(yè)訂制化資產(chǎn)管理業(yè)務流,同時授信系統(tǒng)具有入侵鎖死、系統(tǒng)重置等安全機制,以此保證企業(yè)數(shù)字通證的高安全性。
2.1.1系統(tǒng)總體設計
授信系統(tǒng)是一整套企業(yè)數(shù)字通證解決方案。如圖1所示,其從整體架構上分為授權層、私鏈層、接入層和客戶端。
授權層負責兩件事情:接受私鑰管理者的指令,啟動或停止簽名服務;對輸入的數(shù)據(jù)進行校驗,校驗通過則根據(jù)業(yè)務流轉信息內的指令向公鏈發(fā)起轉移數(shù)字通證動作。
私鏈層負責對來往信息數(shù)據(jù)存證和驗真。私鏈由以太坊構建,伴生程序是私鏈和其它層之間交互的橋梁。
接入層負責與企業(yè)用戶之間業(yè)務交互。
2.1.2角色
授信系統(tǒng)角色分為兩種:最高權限管理者和普通員工。最高權限管理者擁有對授信系統(tǒng)數(shù)字通證賬戶的私鑰管理權限和審核模版設置的權限,普通員工擁有發(fā)起數(shù)字通證轉移申請、審批的權限。最高權限管理者持有私鑰APP,普通員工持有員工APP。最高權限管理者持有者推薦最少人數(shù)為2n+1人,普通員工沒有人數(shù)限制。
2.1.3初始化工作
當整個系統(tǒng)初始化時,由最高權限管理者共同創(chuàng)建新的數(shù)字通證賬戶。賬戶對應的操控私鑰將會在初始化結束之前以加密二維碼的形式備份下來。有多少個最高權限管理者,就有多少張二維碼,每人各持一張,只有所有人的二維碼全部解密之后組合才能還原出私鑰。備份的私鑰最終以法律+實體約束的形式保管。
2.1.4信息流轉
授信系統(tǒng)內信息流轉的內容為數(shù)字通證轉移申請以及對其審批消息。在發(fā)起數(shù)字通證轉移申請之前需要最高權限管理者建立一批申請模版。申請模版中定義了審批層級有幾層,每層審批需要多少人,誰有審批權,單次轉移的通證數(shù)量。這些申請模版由全體最高權限管理者全票通過后方可被使用。投票通過后的申請模版將通過授權層的服務保存到區(qū)塊鏈上存證,為后續(xù)驗真時提供依據(jù)。申請人挑選合適的申請模版發(fā)起申請,經(jīng)過模版中指定的人審批通過后,最終由授權層的服務驗證有效性。驗證通過后即自動地向公鏈發(fā)起合法的數(shù)字通證轉移動作。
2.2授信系統(tǒng)的價值
2.2.1實時在線,自動處理
在區(qū)塊鏈世界里,按照對數(shù)字通證存放方式劃分,“錢包”可分為“冷錢包”和“熱錢包”。“冷錢包”通常是指硬件,這一類的硬件有一套完整的交互協(xié)議,它可以存儲加密過后的私鑰。例如,LedgerNanoS硬件錢包。私鑰對應一個賬戶,而賬戶內擁有數(shù)字通證。私鑰是鑰匙,是數(shù)字通證歸屬權的證明。區(qū)塊鏈是一個巨大的分布式賬本,所有在其之上的賬戶內所擁有的數(shù)字通證,每一筆轉移記錄都統(tǒng)統(tǒng)記錄在冊。“冷錢包”并非真正地把數(shù)字通證留存在硬件中,但可以近乎永久地保存操控數(shù)字通證的私鑰。因此,需要長期保存的數(shù)字通證適合保存在“冷錢包”中。
與“冷錢包”相對的是“熱錢包”。“熱錢包”內的數(shù)字通證較“冷錢包”會經(jīng)常流動,像各大公鏈配套出品的錢包就可以屬于“熱錢包”。這種劃分方式之間最大的區(qū)別就在于“熱錢包”是實時在線的,而“冷錢包”只有在使用時才會接觸網(wǎng)絡?;蛘吒呒壱稽c的硬件設備做冷錢包時可以支持離線簽名。授信系統(tǒng)就屬于“熱錢包”,它最大的好處就在于實時在線,使用便捷,不受制于地理條件,有配套完善的APP,使用方便。
同時,授信系統(tǒng)提供了自動化處理審批通過的申請,實現(xiàn)自動化轉移數(shù)字通證,這是所有“冷錢包”不具備的。自動化帶來的好處就是降低了人工干預,為通證的流轉提供了更多的可能性。
2.2.2多種數(shù)字通證一站式管理
目前,市面上有許多區(qū)塊鏈網(wǎng)絡,不同的網(wǎng)絡之間并不互通。比特幣有比特幣配套的錢包,以太坊有以太坊的配套錢包,相互之間并無適配。如果沒有一站式管理,需要記憶一大堆的區(qū)塊鏈賬戶名稱,甚至為其設置不同的私鑰密碼。授信系統(tǒng)允許接入所有支持離線簽名的區(qū)塊鏈網(wǎng)絡,高度抽象統(tǒng)一各個區(qū)塊鏈賬戶模型,僅用一把私鑰一站式管理不同區(qū)塊鏈網(wǎng)絡賬戶。這大大減輕記憶難度,也為管理不同數(shù)字通證提供了便捷的方式。
2.2.3多人共同管理最高權限
授信系統(tǒng)采用了一種偽隨機算法計算得出私鑰,偽隨機算法除必要的真隨機數(shù),還由最高管理權限持有者的口令計算得出,其單個持有者無法獨自推導出私鑰,也就無法單獨動用賬戶內的數(shù)字通證,這使得數(shù)字通證歸屬于企業(yè),而非個人。
2.2.4企業(yè)審核流程
自動化轉賬的安全有兩個重要部分,其一是私鑰本身的安全,其二是使用權的安全。授信系統(tǒng)有完善的企業(yè)審核流程,允許設定企業(yè)財務審批流程,降低人為操作失誤的可能。一個合法的審批流需要經(jīng)過私鏈存證、私鑰APP授權和公鏈確認。由于私鑰APP是由N位最高權限管理者掌控,因此審批流是否有效是由N位最高權限管理者共同確認,并且寫進公鏈私鏈,該審批流有效性無法被篡改。
數(shù)字通證轉移的有效性分為兩個部分,其一是本身簽名的有效性,其二是其對應的審批流的有效性。由于授信系統(tǒng)采用的是嵌套簽名的方法,因此只需要按照順序依次驗證簽名,即可知道簽名本身是否有效。數(shù)字通證轉移本身是對應一個審批流程,需要提取對應的申請模版,并在賬戶中驗證該審批流程是否有效。如果兩個條件均滿足,證明該次數(shù)字通證轉移是有效審批流程指定的,并且無法被篡改。
2.2.5完備的安全機制
授信系統(tǒng)的安全分為三個層面:私鑰的安全、信息的安全和通信安全。私鑰安全是為了數(shù)字通證不被竊?。恍畔⒌陌踩菫榱讼到y(tǒng)內流轉的數(shù)據(jù)不被篡改,進而保障數(shù)字通證不被竊取;通信的安全是為了敏感信息不被第三方截獲,即使截獲也不會影響后續(xù)的通信。從這三個維度出發(fā),保障企業(yè)在使用授信系統(tǒng)時數(shù)字通證的安全。
3授信系統(tǒng)安全核心技術
3.1私鑰安全
3.1.1私鑰的生成
授信系統(tǒng)控制數(shù)字通證的私鑰只有一把,并采用了偽隨機算法,為防止私鑰的生成被模擬,采用RFC6979的變形形式:key=sha256(random()+sha256(password1)+sha256(password2)...+sha256(passwordN))。其中,random()為真隨機數(shù)生成函數(shù),sha256(passwordN)為最高權限管理者輸入的口令。真隨機數(shù)與口令首尾相接構成新的字符串再做一次哈希運算得出私鑰。
保留在系統(tǒng)中的值有hash=sha256(sha256(key))和random()結果值。每次重啟系統(tǒng)如果最高權限管理者輸入的口令有誤,是無法推導出Hash值的,也無法根據(jù)Hash逆向推導Key。
3.1.2私鑰的保護
私鑰生成后,將駐留在系統(tǒng)內存中,由內存守護頁保護。在內存中創(chuàng)建的守衛(wèi)頁面,并告訴操作系統(tǒng)內核禁止第一個和最后一個頁面的所有讀寫操作,所以如果任何操作嘗試讀寫這些守護頁的話,操作系統(tǒng)就會拋出一個Sigsegv訪問沖突信號,并且服務所在進程發(fā)生混亂,服務被停止。在停止前,服務駐留在內存中的私鑰地址將被清空。這樣可以立即檢測到緩沖區(qū)溢出,其他進程幾乎不可能定位和訪問數(shù)據(jù)。(在內存分配操作期間分配額外的不可訪問的內存是用于減輕堆緩沖區(qū)溢出的技術。這些保護頁面是放置在一頁或更大頁面的所有內存分配之間的未映射頁面。保護頁面在任何訪問時都會導致分段錯誤。)
夾在守護頁之間的頁面也被保護(避免Swap)。當系統(tǒng)內存耗盡時,操作系統(tǒng)內核會將非活動進程的內存復制到磁盤上,這是想要避免的。
最后一點是金絲雀:在私鑰之前放置一個隨機值。如果它發(fā)生了變化,知道出了什么問題——可能是緩沖區(qū)下溢。當程序第一次運行時,為金絲雀生成了一個全局值。
3.1.3系統(tǒng)的保護
隨授信系統(tǒng)啟動的還有它的防護程序。防護程序會設置系統(tǒng)關閉所有非必要通信端口,僅留出系統(tǒng)內相互通信端口。同時防護程序啟動后會監(jiān)控系統(tǒng)登錄情況和進程。如果出現(xiàn)異常進程或者賬戶登錄了私鑰所在的操作系統(tǒng),防護程序會立即清空私鑰所在內存,并立即停止服務。
3.2信息安全
信息安全包含兩部分:信息源頭是否可信和信息本身是否可信。
3.2.1組織架構
在授信系統(tǒng)中,有組織架構體系,員工與員工之間存在上下級關系。上級員工與下級員工之間建立關系,通過手機端員工APP掃描二維碼的方式來確定。每個員工APP都對應一個用于識別身份的通信密鑰對,下級員工要加入到授信系統(tǒng)中需要掃描上級員工的二維碼來確權。
約定n代表隨機值,R代表密碼,P代表公鑰,K代表私鑰,c代表密文,s代表簽名,d代表信息摘要,ID代表身份識別串。假設層級關系如圖4所示。推演掃碼過程:
(1)E是C的下屬,E掃描C的二維碼獲一個加密密碼R;
(2)E生成一個固定的隨機值En,用于參與保存到服務器的公鑰進行信息摘要計算;
(3)E用R加密自己的公鑰Ep和隨機值En,Ec=encrypt(Ep,En,R),并通過服務器發(fā)送給C;
(4)C用R解密密文,EP,En=decrypt(Ec,R),將做三件事:
1)用C的私鑰K,記為Ck。用Ck簽名E的公鑰Ep,Es=sign(Ck,Ep),簽名的結果發(fā)送給A;
2)用C的固定隨機值Cn,計算EP的信息摘要,Ed=hash(Cn,Ep),連同Ep發(fā)送給服務器保存,保存結果類似一行記錄[EID,Ed,EP,CID];
3)向E確認結果。
當B移除C時,由于B持有C的固定隨機值Cn,B只需交驗Ep,Ed=hash(Cn,Ep),校驗通過即可認為E為C的下屬。
接入層中的服務來負責手機端信息傳遞與交互。假定授信系統(tǒng)接入層中數(shù)據(jù)可能不可信,一些中間結果保留在接入層為防止人為篡改,需要對保留的信息作信息摘要。參與信息摘要的部分信息來自于手機客戶端,這樣一來,就把風險分散在多個點上,大大降低系統(tǒng)性風險。
3.2.2申請模版
前面提到數(shù)字通證轉移是有一套完整的審批流程。提交審批前先要有申請模版。申請模版也可看作是多重簽名列表,里面指定了參與審批人的公鑰,以及最少允許通過審批的人數(shù)。與多重簽名不同的是,多重簽名是有順序的,而授信系統(tǒng)的申請模版不需要簽名順序,只需要每個參與的簽名者簽出的結果驗證都為真。申請模版需要全體最高權限管理者投票通過方可生效,授信系統(tǒng)會對投票通過的申請模版作信息摘要,并對信息摘要上鏈保存。
員工申請轉移數(shù)字通證時選擇填寫并提交申請模版,經(jīng)由企業(yè)內部員工逐級審批,審批的過程即對申請簽名。在通過全部審批后,本次申請被流轉到授權層服務中被處理。授權層服務會作最終的校驗,通過比對申請模版的信息摘要校驗其申請模版的合法性,如果合法,則校驗每一位簽名者的簽名結果是否有效。通過校驗的申請由授權層服務調用駐留在內存中的私鑰對數(shù)字通證轉移進行簽名,并發(fā)送到公鏈上實現(xiàn)自動轉移。
3.3通信安全
在通信方面,采用了迪菲-赫爾曼密鑰交換(Diffie-hellmanKeyExchange)安全協(xié)議,來確保通信安全以及確保通信前向安全。
通信用的交換密鑰在內存中被切分成多份保存,保護密鑰的方式同保護私鑰,被切分的密鑰會定時變化,但最終的密鑰在提供服務階段保持不變。我們利用異或的特性來完成這一整套邏輯,如圖5所示。
3.4授權安全
授權層中的簽名服務是整個系統(tǒng)中的重中之重。它是數(shù)字通證的真正出口,也是信息驗證的重要環(huán)節(jié)。私鑰在系統(tǒng)運行過程中就存放在簽名服務所在的內存中。簽名服務可以部署在一臺云端服務器,也可以是提供長期運行的安裝有MacOS操作系統(tǒng)筆記本。同時簽名服務配有守護程序,它會主動關閉所有操作系統(tǒng)端口,并實時監(jiān)測操作系統(tǒng)運行情況,一旦發(fā)現(xiàn)有操作系統(tǒng)賬戶登陸系統(tǒng)或是異常的進程出現(xiàn),它會第一時間停止簽名服務,簽名服務在停止前會立即清空內存中的敏感數(shù)據(jù)。簽名服務主動連接系統(tǒng)中的其他服務,只接受系統(tǒng)內協(xié)議數(shù)據(jù)。
簽名服務所在服務器相當于是一臺堡壘機,它應由最高權限管理者共同管理。為防止最高權限管理者之間發(fā)生問題,故將動用私鑰的權限分攤到每一個人之上,任何一個人都無法直接從服務器中直接拿取私鑰。
4防止入侵操作
世界上任何一個系統(tǒng)都不可能百分之百安全,但只要做好足夠的防范措施,是可以預防入侵情況發(fā)生的。授信系統(tǒng)的安全核心技術雖然已經(jīng)比較完備了,只要是人治的系統(tǒng),一定存在人為或者程序漏洞,因此以下操作可以增加防范力度。
4.1日志收集
(1)任何對外接口均在Nginx層面記錄日志;
(2)配置Nginx規(guī)則POST請求參數(shù)的記錄(發(fā)現(xiàn)黑客入侵點);
(3)通過日志請求可以識別不同的用戶,如記錄請求中Cookie或者AuthToken;
(4)日志實時同步到專門收集日志的服務器(防止黑客入侵后清理痕跡)。
4.2數(shù)據(jù)庫安全
(1)使用非Root用戶;
(2)對應項目程序僅僅擁有特定數(shù)據(jù)庫權限;
(3)用戶僅僅賦予“增、查、改”權限,所有數(shù)據(jù)都是基于狀態(tài)的假刪除(防止黑客操作數(shù)據(jù)庫后直接刪除數(shù)據(jù))。
4.3服務器安全
(1)SSH登錄服務器通知;
(2)SSH證書登錄;
(3)SSH證書加上密碼;
(4)禁止核心服務器互相加SSHKey;
(5)禁止使用Root用戶操作;
(6)服務器目錄權限禁止777;
(7)所有操作通過堡壘機操作,堡壘機器會有登陸認證,多因子驗證,會話管理,指令限制,錄像管理;
(8)服務器進程白名單,任何未知進程啟動直接殺死,通知提醒。
5結束語
本文從區(qū)塊鏈技術角度出發(fā),旨在探究其在企業(yè)組織多人共同安全管理和使用通證的應用模式,這也是本文主要的出發(fā)點和創(chuàng)新點。
伴隨著數(shù)字通證市場規(guī)模的快速增長,盜取通證事件發(fā)生得越來越頻繁,這些事件不斷被媒體爆光之后,使得企業(yè)對數(shù)字通證安全、使用便捷等問題產(chǎn)生嚴重擔憂。這些問題已經(jīng)制約了企業(yè)用戶對數(shù)字通證的投資和管理,而好的一方面在于,因為大家的安全意識不斷提高,區(qū)塊鏈、數(shù)字通證的安全防護技術也在不斷加強。
參考文獻
[1]趙鵬,肖莎,雷大洋,張甲.互聯(lián)網(wǎng)時代電子信息安全問題的防護方法研究[J].網(wǎng)絡空間安全,2018(2):44-46.
[2]呂述望.掙脫因特網(wǎng)的傳統(tǒng)桎梏[J].網(wǎng)絡空間安全,2017(1):3+31.
[3]裴連群,劉海玲.計算機網(wǎng)絡信息技術安全及防范對策研究[J].網(wǎng)絡空間安全,2016(5):86-87.
[1.上海二秒科技有限公司,上海200050;2.賽迪(青島)區(qū)塊鏈研究院,山東青島266000]
尚維斯1,高睿2
