企業(yè)級(jí)應(yīng)用建設(shè)——敏感數(shù)據(jù)
此文總結(jié)了筆者在工作中涉及到敏感數(shù)據(jù)時(shí)候的一些心得體會(huì),如有不對(duì)的地方歡迎大家交流、分享。
一、什么是敏感數(shù)據(jù)
敏感數(shù)據(jù)有很多范疇,不同情況下任何數(shù)據(jù)都有可能成為敏感數(shù)據(jù)。
用戶數(shù)據(jù)
- 在互聯(lián)網(wǎng)人口紅利的背景下,針對(duì)C端產(chǎn)品,數(shù)據(jù)變得越來越值錢,其中最常見的莫過于用戶數(shù)據(jù)。任何產(chǎn)品都離不開用戶。拿到了用戶數(shù)據(jù),就意味著有了流量入口,有了流量繼而可以尋求多種變現(xiàn)方式。
- 而在B端產(chǎn)品中,更多的是企業(yè)一群人在一起協(xié)作,每一個(gè)人在工作流中都扮演著重要的角色。而這類產(chǎn)品的用戶數(shù)據(jù)一旦泄漏,將意味著整個(gè)業(yè)務(wù)流的中斷,甚至發(fā)生其他核心業(yè)務(wù)數(shù)據(jù)的泄漏等更嚴(yán)重的后果。
財(cái)務(wù)數(shù)據(jù)
……
二、敏感數(shù)據(jù)的意義
對(duì)于個(gè)人而言,敏感數(shù)據(jù)一旦暴露,個(gè)人將會(huì)承擔(dān)巨大的風(fēng)險(xiǎn)
聯(lián)系方式,想必都有過接到各種各樣推銷的電話、短信等垃圾信息,給生活造成了不小的困擾。
聯(lián)系方式+自身需求,這種更加可怕,個(gè)人深有體會(huì),以房產(chǎn)為例:
看房子的時(shí)候如果留了電話,會(huì)有各種各樣的售樓信息轟炸你,房子買了之后還會(huì)接到騷擾;房子買了之后會(huì)有各種各樣的裝修公司給你打電話,在你裝修過后仍然會(huì)接到騷擾電話,在住進(jìn)去2年后還會(huì)接到電話:您好我們是XXX裝修公司的,請(qǐng)問您有裝修的需求嗎?
另外一些個(gè)人身份信息、財(cái)務(wù)信息更為重要,萬一遭到不法分子竊取,并且用于牟取非法利益,個(gè)人會(huì)蒙受財(cái)務(wù)損失、承擔(dān)法律風(fēng)險(xiǎn)。
對(duì)于企業(yè)/組織而言,如果這些敏感數(shù)據(jù)一旦發(fā)生丟失、失竊,將會(huì)面臨嚴(yán)重的財(cái)務(wù)、法律或問責(zé)風(fēng)險(xiǎn),更重要的是將會(huì)失去用戶的信任,最終導(dǎo)致企業(yè)破產(chǎn)。
所以敏感數(shù)據(jù)無論對(duì)個(gè)人,還是企業(yè)都有相當(dāng)重要的意義。
三、產(chǎn)品設(shè)計(jì)中如何處理敏感數(shù)據(jù)
在不同的場(chǎng)景下,需要對(duì)敏感數(shù)據(jù)實(shí)施具體的處理方法,常見的方法如下:
- 權(quán)限隔離:一般業(yè)務(wù)系統(tǒng)是一個(gè)組織的人在用,而非個(gè)體。一些敏感數(shù)據(jù)有的時(shí)候只需要少部分人才能看到,如有這種需求就需要在產(chǎn)品設(shè)計(jì)階段梳理清楚,通過引入系統(tǒng)權(quán)限模型,進(jìn)行權(quán)限隔離。這里不展開,后續(xù)還會(huì)有介紹;
- 加密:密碼123456經(jīng)過MD5加密后的結(jié)果為:md5(123456,16) = 49ba59abbe56e057。業(yè)務(wù)系統(tǒng)用戶密碼在數(shù)據(jù)庫中一般都是通過Hash算法處理后加密儲(chǔ)存的。MD5加密過后的密碼還可再次進(jìn)行加鹽處理,甚至可以加入隨機(jī)鹽,進(jìn)一步保證數(shù)據(jù)安全性。安全程度取決于采用哪種加密算法,一般根據(jù)實(shí)際情況而定;
- 部分掩碼: 123456 -> 1****6,保留了部分信息,并且保證了信息的長(zhǎng)度不變性,對(duì)信息持有者更易辨別, 如用戶名、手機(jī)號(hào)、郵箱、身份證號(hào)等;
- 完全掩碼:比較常見,如在輸入登錄密碼、銀行密碼等場(chǎng)景下,輸入控件都會(huì)將真實(shí)密碼遮掩顯示;
- 替換:如統(tǒng)一將女性用戶名替換為F,對(duì)內(nèi)部人員可以完全保持信息完整性,但易破解;
- 截?cái)啵?3811001111截?cái)酁?38,舍棄必要信息來保證數(shù)據(jù)的模糊性;
- 日期偏移取整:20130520 12:30:45 -> 20130520 12:00:00,舍棄精度來保證原始數(shù)據(jù)的安全性,一般此種方法可以保護(hù)數(shù)據(jù)的時(shí)間分布密度。
筆者倒是沒有涉及過5、6、7的處理方法,看到前人總結(jié)的經(jīng)驗(yàn)也在此貼出來分享一下。
另外還有一點(diǎn),如果數(shù)據(jù)需要在前端頁面脫敏展示的話,需要保證后段接口返回的是已經(jīng)脫敏后的數(shù)據(jù)。不過這種常識(shí)研發(fā)人員肯定都清楚。
四、產(chǎn)品交付過程中如何處理敏感數(shù)據(jù)
一些交付類的項(xiàng)目,在生產(chǎn)環(huán)境正式上線之前,系統(tǒng)需要準(zhǔn)備上線運(yùn)營(yíng)所必要的基礎(chǔ)數(shù)據(jù),這時(shí)如何將客戶的基礎(chǔ)數(shù)據(jù)交付到生產(chǎn)系統(tǒng)中,也需要考慮:
(1)非敏感數(shù)據(jù)只需要開發(fā)數(shù)據(jù)導(dǎo)入的單元測(cè)試,導(dǎo)入非生產(chǎn)環(huán)境(例如預(yù)發(fā)布環(huán)境),確認(rèn)數(shù)據(jù)準(zhǔn)確性后,再將數(shù)據(jù)遷移至生產(chǎn)環(huán)境即可。
(2)針對(duì)敏感數(shù)據(jù)需要特殊考量
如果在需求中就包含敏感數(shù)據(jù)的導(dǎo)入功能,大可不必?fù)?dān)心敏感數(shù)據(jù)觸碰問題,在生產(chǎn)環(huán)境上線后,可由甲方人員自行將數(shù)據(jù)導(dǎo)入。需要做的就是進(jìn)行嚴(yán)格測(cè)試,保證功能可行性,做好容錯(cuò)機(jī)制。(例如:導(dǎo)入數(shù)據(jù)一旦有誤,拋出異常信息,打印、記錄日志。如有需要可以將本次導(dǎo)入的數(shù)據(jù)全部回滾,根據(jù)報(bào)錯(cuò)信息調(diào)整源數(shù)據(jù),避免清洗臟數(shù)據(jù)的重復(fù)性工作)
當(dāng)然也有部分情況下,這部分敏感數(shù)據(jù)沒有開發(fā)可視化的導(dǎo)入功能,只是在環(huán)境正式上線前需要處理一次。例如:甲方員工的人員信息,可以開發(fā)數(shù)據(jù)導(dǎo)入的單元測(cè)試,用測(cè)試數(shù)據(jù)驗(yàn)證工具可行性。在應(yīng)用正式上線前,在客戶現(xiàn)場(chǎng)將數(shù)據(jù)導(dǎo)入生產(chǎn)環(huán)境,隨后即將數(shù)據(jù)刪除,免責(zé)。
如果以上條件都不具備,亦可通過類似三權(quán)分立的管理類機(jī)制,進(jìn)行權(quán)限劃分,保障敏感數(shù)據(jù)安全性,同時(shí)也將我方人員通過這種機(jī)制盡量保護(hù)起來:
- 項(xiàng)目經(jīng)理/產(chǎn)品經(jīng)理:作為甲方接口人,接受敏感數(shù)據(jù)敏感數(shù)據(jù);
- 研發(fā)工程師:提供已測(cè)試通過的數(shù)據(jù)導(dǎo)入的單元測(cè)試;
- 運(yùn)維工程師:執(zhí)行單元測(cè)試,導(dǎo)入敏感數(shù)據(jù)(不限定執(zhí)行人,如甲方人員可操作那更好)。
如有必要可以與甲方當(dāng)面進(jìn)行敏感數(shù)據(jù)處理,實(shí)施完成后當(dāng)即刪除源文件。
以上只是列舉了幾種交付中數(shù)據(jù)處理情況,實(shí)際過程中需要根據(jù)實(shí)際業(yè)務(wù)針對(duì)特殊的敏感數(shù)據(jù)設(shè)計(jì)不同的實(shí)施方案。但是保證一個(gè)原則:盡量不要觸碰業(yè)務(wù)方的敏感數(shù)據(jù)。
五、產(chǎn)品運(yùn)營(yíng)過程中如何處理敏感數(shù)據(jù)
業(yè)務(wù)系統(tǒng)核心本質(zhì)是解決多人協(xié)作的問題。不能每個(gè)人所做的工作是一樣的,所以每個(gè)人有自己的職責(zé)范圍,這時(shí)需要?jiǎng)澐謾?quán)限,常見的幾種權(quán)限設(shè)計(jì)模型:
- 自主訪問控制(DAC:Discretionary Access Control)
- 強(qiáng)制訪問控制(MAC:Mandatory Access Control)
- 基于角色的訪問控制(RBAC:Role-Based Access Control)
產(chǎn)品設(shè)計(jì)中目前最常用的RBAC模型,主要包含三個(gè)基本要素:用戶、角色、權(quán)限。
而每個(gè)基本要素均可以根據(jù)實(shí)際業(yè)務(wù)按需進(jìn)行拓展:
(1)用戶
- 組織(企業(yè)、部門……)
- 用戶
(2)角色(權(quán)限集合)
- 角色組
- 角色
(3) 權(quán)限
- 查看(可以根據(jù)實(shí)際業(yè)務(wù),設(shè)計(jì)不同維度可查看的數(shù)據(jù)范圍)
- 新增
- 修改
- 刪除
- ……
備注說明:
- 簡(jiǎn)而言之:用戶關(guān)聯(lián)角色,角色關(guān)聯(lián)權(quán)限;
- 原子權(quán)限的控制本質(zhì)上是對(duì)接口調(diào)用權(quán)限的控制;
- 復(fù)雜的業(yè)務(wù)場(chǎng)景中可根據(jù)組織、用戶、角色組、角色要素設(shè)計(jì)具有繼承性、限制性的權(quán)限模型。
在梳理權(quán)限的時(shí)候可以通過excel表格,梳理清楚角色權(quán)限的關(guān)系,具體可參考下表:
筆者一直從事B端產(chǎn)品建設(shè),其中也不乏一些企業(yè)級(jí)應(yīng)用。期望在企業(yè)級(jí)應(yīng)用之中總結(jié)一些心得體會(huì),最終沉淀出一些方法論。有機(jī)會(huì)多多和大家分享交流。
作者:天氣不錯(cuò),公眾號(hào):天氣的朋友(friends_of_tianqi)
本文由@天氣不錯(cuò) 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash, 基于CC0協(xié)議。
能想到的數(shù)據(jù)權(quán)限維度,一種是業(yè)務(wù)維度 第二種是區(qū)域維度,第三種是部門維度(部門維度這種,感覺現(xiàn)在應(yīng)用場(chǎng)景不多吧)