12.23 面試官:怎麼設計大文件、大數據場景下的傳輸加密方案?

某年某月某一天,冷冽寒風中,姚小毛走進了某家公司,開始了新一輪的面試。

面試官:怎麼設計大文件、大數據場景下的傳輸加密方案?

一陣寒暄後。

面試官:“你好,看你的項目經驗中有做過數據加密的工作,你是使用什麼加密算法加解密的?”

姚小毛:“嗯,我是採用的 非對稱加密 + 對稱加密 的混合加密算法。”

面試官:“為什麼要用混合加密的方式?”

姚小毛:“非對稱加密跟對稱加密都各有優缺點。

非對稱安全性好點,由發送方跟接收方分別持有公鑰、私鑰。

但是缺點是在做大數據量的加密傳輸時,傳輸速度會比較慢。”

面試官:“那對稱算法呢?”

姚小毛:“對稱加密的優點是速度快,但是需要解密方握有密碼,安全隱患較大。”

面試官:“那你使用的什麼對稱算法和非對稱算法呢?”

姚小毛:“我用的是AES + RSA。”

面試官:“還有別的算法嗎?要符合國密標準怎麼辦?”

姚小毛:“用SM2 + SM4也可以,這都是標準國密算法。”

面試官:怎麼設計大文件、大數據場景下的傳輸加密方案?

面試官:“能具體說下混合加密是怎麼做的嗎?”

姚小毛:“加密主要是兩步。

一是先使用對稱加密算法生成隨機密鑰,再分段讀取文件流或字符串,使用此密鑰進行加密;

二是用非對稱加密算法生成的公鑰對剛剛生成的隨機密碼進行加密,再將此二次加密的密鑰寫入到文件流頭部。”

面試官:“那解密呢?”

姚小毛:“解密過程就是逆向操作:先用私鑰解密文件頭,得到對稱加密算法的密鑰,然後解密整個文件。這樣吧,我給你畫個圖吧。”

面試官:怎麼設計大文件、大數據場景下的傳輸加密方案?

面試官:“如果我現在要做大數據平臺的中心匯聚,數據來源都是不同的系統都,屬於不同的公司,怎麼做加密方案呢?”

姚小毛:“嗯,我想想,有兩種。

一種是集中式密鑰管理,一種是分發式的密鑰管理。集中式就是所有來源系統共用一組公鑰,傳輸時加密,私鑰由大數據平臺掌握,接收後解密。分發式就是每個系統各用一組公鑰,優點是安全性比集中式要高點,缺點是增加了複雜度。”

面試官:怎麼設計大文件、大數據場景下的傳輸加密方案?

面試官:“那我現在如果是要對數據庫中的信息,每次讀取跟存儲都進行加解密怎麼做?”

姚小毛:“那是到什麼級別?是數據庫級別還是用戶級別還是表級別?”

面試官:“???還能到表級別?怎麼做?”

面試官:怎麼設計大文件、大數據場景下的傳輸加密方案?

姚小毛:“就是單獨為每個表配置一組密碼,在加密、解密時,根據對應的配置表找到加密後的密鑰,再由私鑰進行解密,之後使用解密後的密碼進行數據加密、解密操作。

這種方案的優點就是密碼分別指定,某張表數據洩露不會影響另一張表。缺點就是管理複雜度增加,實現難度較高,與業務關聯比較緊密。

到用戶級、數據庫級其實就比較簡單,設置個統一的密碼就行了。

如果只是做脫敏的話其實指定字段就行了,將敏感信息密文保存,查詢的時候,調用已經開發好的解密API解密就OK了。”

然後面試官又問了幾個其他問題,結束了此次面試。

在回去的路上,姚小毛越想越不對勁,嗯?莫非是偷方案的?

面試官:怎麼設計大文件、大數據場景下的傳輸加密方案?

唉,看來面試之路漫漫,再面面其他家吧。

附註,以下為各算法的釋義。

AES:對稱加密。高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。

RSA:非對稱加密。RSA算法是第一個能同時用於加密和數字簽名的算法,也易於理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現今的三十多年裡,經歷了各種攻擊的考驗,逐漸為人們接受,截止2017年被普遍認為是最優秀的公鑰方案之一。

國密算法:即國家密碼局認定的國產密碼算法,SM2、SM4均為國密算法。

SM2:非對稱加密,基於ECC。該算法已公開。由於該算法基於ECC,故其簽名速度與秘鑰生成速度都快於RSA。ECC 256位(SM2採用的就是ECC 256位的一種)安全強度比RSA 2048位高,但運算速度快於RSA。

SM4:對稱加密。 無線局域網標準的分組數據算法。密鑰長度和分組長度均為128位。

<code>作者:妖生/<code>
<code>出處:https://www.cnblogs.com/yaomaomao//<code>


分享到:


相關文章: