朱宗堯 朱俊偉
(上海市大數據中心 上海市 200040)
在人的日常生活、工作中,需要經常出示和提供自己的如基本信息(姓名、身份證號碼、電話號碼等)、教育信息(小學、初中、高中、大學)、社保清單等一些可信證明“信息”,政府單位、公共事業單位和社會化單位,在提供服務的同時也需要獲取用戶的一些可信證明“信息”如身份證、執業資格證、健康證、信用報告、無犯罪證明、生育證明等。從群眾查找證明信息到各類單位接收和核驗證明信息的過程,從原來紙質證明信息的四處查找、打印復印、簽字蓋章到現在的電子卡包、電子證照,電子簽章等電子化信息管理應用,信息使用和傳遞的方式和便捷度也在不斷的發展和優化,但證明信息查找和以及在群眾和服務機構之間傳遞的便捷度還需要持續的提升。
二維碼技術的出現,由于相比條形碼具有信息容量大、識別速度快、糾正能力強、安全性高、便捷性等特性,為信息的傳遞帶來了極大的便利,已經在各行各業的信息訪問、信息分享、信息訂閱、信息溯源、服務關注、身份認證、在線支付等各個方面實現了廣泛的應用,如公眾號二維碼、注冊登錄二維碼、產品介紹二維碼、活動宣傳二維碼、交通卡二維碼、醫保卡二維碼、電子證照二維碼、收款碼、付款碼等,極大的方便了群眾日常的生活和工作。

圖1
(1)“隨申碼”總體應用分析。分析二維碼的各種應用場景,特別是對比借鑒二維碼在互聯網支付領域的應用模式,二維碼本質上起到了信息傳遞的作用,實現了基于身份認證、授權訪問的信息傳遞。如公眾號是各類單位服務信息的傳遞、掃碼登錄是用戶賬號信息的傳遞、付款碼是貨幣信息的傳遞等。如圖1 所示。
(2)“隨申碼”用碼形式分析。分析“隨申碼”的使用形式,借鑒微信支付、支付寶支付的支付碼的形式,“隨申碼”在應用形式上分為線上用碼和線下用碼兩種形式,線上為動態碼和線下為張貼碼。如圖2 和圖3 所示。
(3)“隨申碼”信息和場景關系分析。“隨申碼”動態碼一方面是用戶身份標識,另一方面通過身份標識關聯了用戶已有的可信證明信息。“隨申碼”張貼碼一方面是用碼機構的身份標識,另一方面關聯了用碼機構每個用碼場景所需要“獲取”用戶可信證明信息的種類和內容。通過將用戶可信證明信息和用碼機構的每個用碼場景進行映射和訪問控制,實現了用戶可信證明信息和用碼場景之間的可信信息傳遞。核心是建立一人(企)檔信息、用碼機構、用碼場景三者之間的信息傳遞需求關系,再利用訪問權限控制和用戶授權控制來保證信息的可信傳遞。如圖4 所示。
隨著各地“一網通辦”工作的推進,各地都在不斷探索和實踐政務大數據的歸集、共享和應用,電子證照、電子證明、電子簽章、身份認證等可信電子證明信息已經通過“共享”、“亮證”、“核驗”等多種方式進行應用。
上海“一網通辦”充分利用大數據歸集、治理、應用的成果,借鑒“互聯網”二維碼技術的應用模式,通過將成熟的身份認證技術、用戶授權技術、二維碼技術相結合,建立“隨申碼”開放平臺,探索和實踐更為安全、便捷的可信證明信息傳遞方式,進一步提高用戶管理、利用自己信息的便捷度,提高各類單位獲取和核驗信息的便捷度,將“隨申碼”打造成為上海市民和企業的隨身服務碼。
具體通過三項措施,一個辦法、五大方向進行“隨申碼”應用的技術支撐和場景拓展。
(1)基于大數據資源平臺和電子證照系統的數據賦能作用,通過建立一人(企)一檔,為用戶安全、可信、便捷的查找、管理、傳遞自己的可信證明信息提供基礎信息支撐。
(2)建立“隨申碼”開放平臺服務支撐系統,通過安全身份認證、動態二維碼時間戳、信息授權訪問控制、二維碼加密位圖、大流量高并發支撐等技術的應用,支撐“隨申碼”各種應用的實現。
(3)成立“隨申碼”研究課題組,通過隨申碼開放平臺合作中心,面向上海市和全國各類單位,進行“隨申碼”的合作、交流、共享,促進多方、多地合作應用,持續豐富和拓展“隨申碼”場景和應用范圍。
(4)制定《上海市各類政務服務電子二維碼管理規范》,以“隨申碼”作為各類政務服務的統一電子二維碼,進行電子二維碼及應用場景疊加的歸一化管理。
(5)重點面向“一碼通辦”(身份核驗、用證用數)、“一碼通享” (榮譽福利、人才政策)、“一碼通行”(公共交通、訪客門禁)、“一碼通游” (景區景點、圖書博物)、“一碼通會” (展覽博覽、峰會論壇)五大應用領域方向進行“隨身碼”應用場景的延伸和拓展。
5.1.1 用戶端
用戶端特指隨申辦APP、隨申辦微信小程序、隨申辦支付寶小程序等用于“亮碼”的移動端應用。
5.1.2 用碼機構

圖2:線上動態碼應用示意圖

圖3:線下張貼碼應用示意圖

圖4
需要通過PC 端、移動端掃碼設備或其他掃碼程序主動掃描用戶端出示的“隨申碼”,獲取“隨申碼”相應場景用戶授權內容的機構。用碼機構主要分為政務用碼機構和社會化用碼機構。
5.1.3 場景機構
申請和“隨申碼”服務系統進行如隨申碼·交通、隨申碼·醫保等應用場景創建的業務和技術對接的合作機構,包括政務場景機構和社會化場景機構。
5.1.4 用碼場景
“隨申碼”應用場景,應用場景會疊加包含多種,如隨申碼·健康,隨申碼·亮證,隨申碼·檔案,隨申碼·交通,隨申碼·醫保,隨申碼·物流,隨申碼·門禁,隨申碼·訪客等。
5.1.5 開放平臺
“隨申碼”服務系統面向用碼機構和場景機構的開放的服務和管理網站,網站面向全國、全社會進行開放合作。
用碼機構可通過開放平臺進行用碼場景的接入申請,通過后獲取用碼場景接入所需的相關場景權限、幫助文檔,技術文檔和技術支持。
場景機構可通過開放平臺進行隨申碼應用場景的合作申請,通過后進行相關的業務和技術對接。

圖5
開放平臺支持異地服務碼(如e 福州的福碼、浙江、安徽、江蘇等的健康碼等)的代理場景管理,用碼機構可同時進行一站式申請平臺合作的異地的用碼場景申請。
5.1.6 動態碼
由用戶端發起在線申請,“隨申碼”服務系統云端動態生成并返回的具有時效性的在線使用的“隨申碼”二維碼。
5.1.7 離線碼
由用戶端發起在線申請,“隨申碼”服務系統云端動態生成并返回的具有時效性的可離線使用的“隨申碼”二維碼并保存。
5.1.8 張貼碼
【通用張貼碼】:由 “隨申碼”開放平臺自動生成統一的通用張貼碼,并可進行自由下載。用戶端掃碼時自動進入默認場景碼(如隨申碼·亮證)或下載APP、注冊小程序。
【用碼場景張貼碼】:由用碼機構通過“隨申碼”開放平臺生成、下載不同用場景和規格的用碼場景張貼碼。用戶通過隨申辦APP、微信或支付寶掃描張貼碼可直接顯示相應的場景碼(如隨申碼·交通)。
5.1.9 賦碼
用戶端在線狀態下向“隨申碼”服務系統發起“亮碼”動態或離線二維碼生碼請求,“隨申碼”服務系統將生成的動態或離線二維碼返回用戶端過程。
動態二維碼賦碼一種為返回“隨申碼”標準應用頁面方式(目前方式),動態二維碼在標準頁面動態顯示。另一種為返回動態二維碼位圖方式。
離線二維碼是可以在“隨申碼”標準頁面,將當前動態二維碼 “保存”為離線二維碼圖片。
5.1.10 驗碼
本地驗碼:指用碼機構將通過掃碼設備(或手機)掃描“隨申碼”場景二維碼,向“隨申碼”服務系統發起所掃二維碼的安全性和有效性驗證申請,驗證通過申請返回用證機構訪問權限內的二維碼場景信息。
異地驗碼:指用碼機構將通過掃碼設備(或手機)掃描其他異地的服務碼(如e 福州的福碼、浙江的健康碼等),向“隨申碼”服務系統發起所掃異地二維碼的安全性和有效性驗證申請,驗證通過后用證機構訪問權限內的異地二維碼場景信息。“隨申碼”服務系統支持多個異地二維碼的自動識別驗碼。
5.1.11 “隨申碼”標準應用
“隨申碼”標準應用是“隨申碼”服務系統標準應用頁面,由標準頁面完成動態二維碼的顯示及其他更多應用功能。
5.1.12 用戶授權
用戶端可設置用碼機構掃碼獲取內容時是否需要授權,用戶端可自行設定“默認全部授權”或“每次掃碼授權”模式。
默認全部授權。用碼機構掃碼申請獲取場景設定權限的信息內容時,掃碼通過驗證后直接獲取信息。
每次掃碼授權。用碼機構掃碼申請獲取場景設定權限的信息內容時,“隨申碼”服務系統發送用戶授權通知至用戶端,用戶端授權后用碼機構才能獲取信息。
用戶端實現用戶授權分為接口授權方式和標準頁面授權方式。
5.1.13 用戶授權標準頁面
用戶端可設置用碼機構掃碼獲取內容時是否需要授權,用戶端可自行設定“默認全部授權”或“每次掃碼授權”模式。
默認全部授權。用碼機構掃碼申請獲取場景設定權限的信息內容時,掃碼通過驗證后直接獲取信息。
每次掃碼授權。用碼機構掃碼申請獲取場景設定權限的信息內容時,“隨申碼”服務系統發送用戶授權通知至用戶端,用戶端授權后用碼機構才能獲取信息。
5.1.14 簽名
用戶端或掃碼機構通過“隨申碼”服務系統分配的密鑰進行通信簽名。
5.1.15 驗簽
用戶端或掃碼機構通過“隨申碼”服務系統分配的密鑰進行通信驗簽。
如圖5 所示,上海市“隨申碼”開放平臺整體架構從下至上主要由大數據資源平臺、“一網通辦”用戶檔案總庫、隨申碼開放平臺服務系統、隨申碼開放平臺門戶入口四層架構以及技術標準規范和運營標準規范組成。
(1)大數據資源平臺由基礎數據資源、數據資源共享目錄和數據交換平臺組成,匯聚用戶認證庫、人口庫、法人庫、用戶照片庫等數據資源,為“隨申碼”個人和企業用戶提供身份認證基礎數據支撐。
(2)“一網通辦”用戶檔案總庫,主要由電子證照、證明材料、健康信息、教育信息等一人(企)一檔可信息以及場景“用數清單”和“用證清單”、用碼場景信息訪問權限控制目錄組成,為“隨申碼”提供一(人)一檔可信電子證明信息的綁定和傳遞提供支撐。
(3)隨申碼開放平臺服務系統,主要由動態用碼、張貼用碼、授權接口標準頁面以及基礎的審核日志、編碼位圖生成、有效期限驗證、賦碼驗碼審計日志等功能組成,為“隨申碼”提供應用服務功能和技術支撐。
(4)隨申碼開放平臺門戶,主要由動態用碼申請審核、張貼用碼申請審核、場景合作申請審核以及異地用碼合作申請、資源開放等組成,為“隨申碼”提供能力應用輸出和場景開放合作提供渠道支撐。
“隨申碼”作為用戶的唯一動態身份標識并綁定了用戶的可信證明信息,實現用戶與用碼機構之間可信信息的授權傳遞,在保證用戶體驗性和便捷性基礎上,需要應用多種技術從功能、安全、性能等方面提供保障。以下為“隨申碼”開放平臺采用的幾個關鍵技術。
“隨申碼”作為用戶安全身份認證后的唯一身份標識,對于用戶身份安全認證有著較高的要求。為了保障“隨申碼”的安全使用,在用戶身份認證方面,“隨申碼”采用了“實名認證+實人認證”的多因素安全身份認證技術。
實名認證主要包括身份證號碼+銀行卡注認證或電話號碼認證。用戶注冊時輸入正確的姓名、身份證號碼并選擇輸入銀行卡信息或手機號碼,通過銀聯實名認證信息或運營商手機號碼實名認證信息,保證注冊信息的實名性。
實人認證主要通過人臉活體識別技術獲取實人照片并與身份證照片信息進行人證一致信息比對驗證,保證登錄人員信息和實名注冊信息一致。
“隨申碼”動態碼是由開放平臺服務系統的云端賦碼接口,動態生成具有時間戳的二維碼,并且根據設定的有效時間間隔(一般為1 分鐘)自動更新,來保證“隨申碼”動態碼的安全性。
“隨申碼”二維碼時間戳技術是一種基于數字簽名和時間戳的二維碼身份識別方法,數字時間戳服務(DTS:digita1 time stamp service)是電子交易和信息傳遞的重要支撐,能提供電子文件和電子信息的日期和時間信息的安全保護。
信息訪問控制技術,指防止對任何信息資源進行無權限的訪問,從而使一人(企)一檔可信證明信息在合法的范圍內使用。在“隨申碼”應用中,以用碼場景的信息訪問權限定義組來限制用碼機構在某一場景下對用戶某些一人(企)一檔可信證明信息項的權限訪問。通過建立用碼場景和一人(企)一檔可信證明信息項的訪問權限控制列表(如用數清單和用證清單),來控制用碼機構對信息的訪問權限。
用戶授權訪問技術,指防止對任何信息資源進行未經用戶授權的訪問,從而使一人(企)一檔可信證明信息在合法的范圍內使用。在“隨申碼”應用中,任何用碼機構對用戶某些一人(企)一檔可信證明信息項的訪問,必須同時經過實名用戶的主動授權。通過建立用戶授權訪問機制,來控制用碼機構對信息的授權訪問。
通過信息訪問控制技術和用戶授權訪問技術的結合,分別從后端機構權限控制和前端用戶授權兩方面進行雙向授信管理,實現可信證明信息的可控、安全傳遞。
“隨申碼”本身并不保存用戶姓名、身份證號碼等任何可信證明信息,只保存用戶身份標識字符串以及“隨申碼”的系統公開的訪問UL 網址信息。出于更加安全的考慮,即使是“隨申碼”保存的這些無實際信息意義的身份標識流水字符串也是利用加解密技術來進行處理和保護,未經開放平臺授權的應用掃碼時獲取的也是經過加密的無意義字符串信息。
“隨申碼”采用RSA 非對稱密碼算法,是一種公開密鑰算法,其加密密鑰和算法本身都是公開的,解密密鑰則歸用戶私人所有。從RSA 的出現的那天起就因為安全強度高、使用方便而受到關注,并得到廣泛的應用。[2]
“隨申碼”通過移動端(微信小程序、支付寶小程序、隨申辦APP)面向上海2500 多萬用戶提供服務,每天應用存在早、晚高峰的大并發訪問,由于隨申碼同時支撐用戶照片、二維碼位圖等附加信息,大并發伴隨著大流量的需求,同時還需要考慮電子政務網和互聯網跨網段之間的大并發和發流量問題。
“隨申碼”開放平臺服務系統采用了電子政務云和阿里云互通結合的方式,采用最簡的前端直連數據資源管理VPC 區域內的數據庫,有效減少數據傳輸環節,保證應用服務響應的低時延。在電子政務網和互聯網全鏈路上為應對達到每秒十萬級別的并發查詢需求,以Ngnix、redis、ehcache 技術為基礎構建高速穩定的多級緩存系統。
采用Nginx 主要處理用戶的請求,建立雙層Nginx 技術來提升緩存的命中率,減少流向服務器的流量。對于用戶的請求無法在Nginx 層獲取到數據,則會進入redis 緩存,redis 利用其內存數據庫的高效訪問特性,可以支持照片等全量數據的緩存,并利用云端彈性能力,可以自定義策略,根據不同的訪問量進行智能水平擴展,提升并發、高可用的能力。
為了防止緩存穿透導致對后臺數據訪問的壓力,在數據庫之前,增加一層以ehcache 技術為基礎的數據層緩存,建立內存和磁盤兩級,并針對性提供不同的緩存策略,作為緩存體系的最好保障,支持全鏈路的高可用性。為了保障緩存運行穩定可靠,利用平臺的配置中心管理各級緩存申請、上線、變更、下線等;并根據相關預案,進行自動觸發運維操作,達到多級聯動,整體高性能的目標。