某年某月某一天,冷冽寒風中,姚小毛走進了某家公司,開始了新一輪的面試。
一陣寒暄后。
面試官:“你好,看你的項目經(jīng)驗中有做過數(shù)據(jù)加密的工作,你是使用什么加密算法加解密的?”
姚小毛:“嗯,我是采用的 非對稱加密 + 對稱加密 的混合加密算法?!?br>
面試官:“為什么要用混合加密的方式?”
姚小毛:“非對稱加密跟對稱加密都各有優(yōu)缺點。
非對稱安全性好點,由發(fā)送方跟接收方分別持有公鑰、私鑰。
但是缺點是在做大數(shù)據(jù)量的加密傳輸時,傳輸速度會比較慢?!?br>
面試官:“那對稱算法呢?”
姚小毛:“對稱加密的優(yōu)點是速度快,但是需要解密方握有密碼,安全隱患較大。”
面試官:“那你使用的什么對稱算法和非對稱算法呢?”
姚小毛:“我用的是AES + RSA。”
面試官:“還有別的算法嗎?要符合國密標準怎么辦?”
姚小毛:“用SM2 + SM4也可以,這都是標準國密算法?!?br>
面試官:“能具體說下混合加密是怎么做的嗎?”
姚小毛:“加密主要是兩步。
一是先使用對稱加密算法生成隨機密鑰,再分段讀取文件流或字符串,使用此密鑰進行加密;
二是用非對稱加密算法生成的公鑰對剛剛生成的隨機密碼進行加密,再將此二次加密的密鑰寫入到文件流頭部?!?br>
面試官:“那解密呢?”
姚小毛:“解密過程就是逆向操作:先用私鑰解密文件頭,得到對稱加密算法的密鑰,然后解密整個文件。這樣吧,我給你畫個圖吧?!?br>
面試官:“如果我現(xiàn)在要做大數(shù)據(jù)平臺的中心匯聚,數(shù)據(jù)來源都是不同的系統(tǒng)都,屬于不同的公司,怎么做加密方案呢?”
姚小毛:“嗯,我想想,有兩種。
一種是集中式密鑰管理,一種是分發(fā)式的密鑰管理。集中式就是所有來源系統(tǒng)共用一組公鑰,傳輸時加密,私鑰由大數(shù)據(jù)平臺掌握,接收后解密。分發(fā)式就是每個系統(tǒng)各用一組公鑰,優(yōu)點是安全性比集中式要高點,缺點是增加了復雜度?!?br>
面試官:“那我現(xiàn)在如果是要對數(shù)據(jù)庫中的信息,每次讀取跟存儲都進行加解密怎么做?”
姚小毛:“那是到什么級別?是數(shù)據(jù)庫級別還是用戶級別還是表級別?”
面試官:“???還能到表級別?怎么做?”
姚小毛:“就是單獨為每個表配置一組密碼,在加密、解密時,根據(jù)對應(yīng)的配置表找到加密后的密鑰,再由私鑰進行解密,之后使用解密后的密碼進行數(shù)據(jù)加密、解密操作。
這種方案的優(yōu)點就是密碼分別指定,某張表數(shù)據(jù)泄露不會影響另一張表。缺點就是管理復雜度增加,實現(xiàn)難度較高,與業(yè)務(wù)關(guān)聯(lián)比較緊密。
到用戶級、數(shù)據(jù)庫級其實就比較簡單,設(shè)置個統(tǒng)一的密碼就行了。
如果只是做脫敏的話其實指定字段就行了,將敏感信息密文保存,查詢的時候,調(diào)用已經(jīng)開發(fā)好的解密API解密就OK了?!?br>
然后面試官又問了幾個其他問題,結(jié)束了此次面試。
在回去的路上,姚小毛越想越不對勁,嗯?莫非是偷方案的?
唉,看來面試之路漫漫,再面面其他家吧。
附注,以下為各算法的釋義。
AES:對稱加密。高級加密標準(英語:Advanced Encryption
Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標準。這個標準用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。
RSA:非對稱加密。RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)今的三十多年里,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,截止2017年被普遍認為是最優(yōu)秀的公鑰方案之一。
國密算法:即國家密碼局認定的國產(chǎn)密碼算法,SM2、SM4均為國密算法。
SM2:非對稱加密,基于ECC。該算法已公開。由于該算法基于ECC,故其簽名速度與秘鑰生成速度都快于RSA。ECC 256位(SM2采用的就是ECC
256位的一種)安全強度比RSA 2048位高,但運算速度快于RSA。
SM4:對稱加密。 無線局域網(wǎng)標準的分組數(shù)據(jù)算法。密鑰長度和分組長度均為128位。
熱門工具 換一換