隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密

密碼學為何稱之為密碼學?密碼和密鑰究竟有何區別?隱私保護方案中,密鑰的角色是否可以被替代?密鑰在使用過程中存在哪些風險?


這裡,我們將以密碼學中的密碼為起點,展開一系列對密碼學算法核心組件的技術剖析。密碼和密鑰在密碼學算法中有著至關重要的地位,瞭解密碼和密鑰的作用,有助於理解基於密碼學的隱私保護方案是否具備有效性。密碼和密鑰對於用戶而言,則是最終達成隱私數據『始於人、利於人、忠於人』隱私保護效果的無上法器。


密碼學的英文為Cryptography,源自希臘語“κρυπτός秘密”和“γράφειν書寫”。最初,其研究主要集中在『如何在攻擊者存在的環境中隱秘地傳輸信息』,是一個關於信息編碼的學科,由於其最重要研究目標之一是保密,實現敏感信息的秘密編碼,所以被稱之為密碼學。


密碼學中的密碼,和我們日常生活中登錄各類信息化系統所使用的密碼是兩個不同的概念。前者包含了信息加密編碼、密文解密解碼、數據完整性驗證等一系列信息變換過程。而後者更多地是指代密碼學信息變換過程中所使用的便於用戶記憶的一類密鑰,為了以示區別,在下文中稱之為

用戶口令


在密碼學中,密鑰的作用與現實生活中的鑰匙很相似,只有掌握密鑰的用戶,才能解密對應的隱私數據,或進行數字簽名等相關敏感操作。


為什麼密鑰能夠有這麼神奇的作用,一切要從柯克霍夫原則談起。


隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密

柯克霍夫原則


柯克霍夫原則是現代密碼學算法設計基本原則之一,最早由荷蘭密碼學家Auguste Kerckhoffs在1883的論文La Cryptographie Militaire(軍用密碼學)中提出。


其核心思想是『密碼學算法的安全性,不應該建立在算法設計保密的基礎上』。即便算法設計是公開的,只要實際使用的密鑰沒有被攻擊者獲知,密碼學算法產生的密文信息就不應該被輕易破解。


被譽為“信息論之父”的美國數學家、電子工程師、密碼學家Claude Elwood Shannon後來將這一原則進一步擴展,應用到任意信息安全相關的系統,由此也奠定了密鑰在現代密碼學中的核心地位。


密鑰具體如何使用呢?這裡有必要回顧第3論中提到的,密碼學算法設計所基於的計算不對稱性,以及與之相關的一個重要概念——單向陷門函數。


一個單向陷門函數可以抽象為y = f(x, key),其中,x為敏感的隱私數據輸入,y為經過算法保護的不敏感輸出,key就是密鑰。實際情形下,根據具體密碼學算法設計和實現上的差異,密鑰key可以有不同的表現形式,也可以表現為多個秘密參數。


如果以上函數是一個密碼學安全的單向陷門函數,在不知道密鑰key的前提下,很難從輸出y通過逆函數反推出輸入x,由此避免了隱私數據的洩露。


隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密


由此可見,密鑰就是密碼學信息變換過程中的最高機密。誰掌握了密鑰,誰就掌握了隱私數據的訪問權。


隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密

人類可用的密鑰


一般而言,再精密的隱私保護方案,最終都需要服務於人類用戶。由於密碼學隱私保護方案的安全性很大程度上取決於密鑰的長度和複雜性,這也為人類用戶在使用密鑰時帶來了不小挑戰。


目前業界主流推薦的密碼學安全強度是256位,即密鑰的信息熵至少等價為256比特的隨機數。如果我們用常見的字母數字來設定用戶所用的密鑰,該密鑰的長度至少為256/log2(26*2+10) ~= 43個隨機字符。


考慮到用戶通常為了便於記憶而拼接字典中的單詞來構成密鑰,此時為了滿足密鑰信息熵的隨機性要求,實際可能需要使用長度更長的密鑰。


隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密


相比之下,現有系統對用戶口令的長度一般要求在6~20字符之間,對於部分應用4~6位數字用戶口令也不少見。所以,這些用戶口令的隨機性和長度都不足以達到256位安全強度。


如果一個隱私保護方案所使用的密鑰只源自用戶口令,是無法滿足隱私數據的安全性要求的。


然而,普通人類並不具備計算機一般強大的計算和記憶能力,難以記憶和處理過長的密鑰。此時,需要藉助技術手段來提高人類可用密鑰的信息熵,常見的解決方案有以下三類:


隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密


三類解決方案中,平臺全權託管的用戶體驗最好,同時也伴隨著最大的隱私風險。混合託管和本地全權託管,在用戶體驗上差異不大,混合託管相關的隱私風險更低。


需要注意的是,這裡存在一個固有的設計取捨,隱私數據的自主權與數據服務的完備性不可兼得。


平臺全權託管方案中,用戶隱私數據的實際控制權在平臺手中,由此平臺可以提供諸如用戶口令重設、數據恢復等關鍵數據服務。


然而,在其他託管方案中,用戶隱私數據的實際控制權在用戶手中,一旦用戶遺失密鑰或用戶口令,則平臺無法解密對應的數據,也無法提供口令重設等相關密鑰服務。


對於企業而言,具體方案的選擇,需要結合用戶使用習慣和行業監管要求,建議在平臺全權託管和混合託管之間做選擇。對於高敏感性隱私數據,酌情選擇混合託管,並需要配合密鑰恢復方案使用。


隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密

密鑰相關的風險


隱私數據的自主權往往是隱私保護方案強調的重點,但是為了切切實實地獲得控制權,僅僅是安全地使用單個安全密鑰,就可能會給用戶體驗方面帶來顯著負擔,而且還需要防範其他密鑰相關的洩露風險。


這些風險可以大致分為以下兩類:


內在風險


這類風險與隱私保護方案的內在設計和實現有關。由於絕大部分密碼學算法和協議不是信息論安全,也就說,同一個密鑰使用的次數越多,理論上被破解的概率越大。


對應的常見風險分析手段是,考慮對應密碼學算法和協議在選擇明文攻擊(Chosen-plaintext Attack, CPA)和選擇密文攻擊(Chosen-ciphertext Attack, CCA)下,是否依舊安全。


這兩類攻擊都允許攻擊者獲得一定數量的隱私數據明文和密文對,由此分析破解所使用的密鑰。


在現實生活中,攻擊者非常有可能獲得這樣的能力,截獲明文和密文對,甚至主動注入數據,生成破解分析所需的明文和密文對,這類風險是真實存在的。


外在風險


這類風險雖然與隱私保護方案的內在設計和實現無關,但卻實實在在地對方案的實際效果產生巨大威脅。


比較典型的攻擊有社會工程學,具體指通過欺騙性手段,如釣魚網站、詐騙短信等,誘導用戶直接給出密鑰,或者通過下載安裝病毒木馬,間接盜取密鑰。


無論是哪一類風險,如果用戶只有一個密鑰,一旦被盜,所有的賬戶都有被盜的風險,後果不堪設想。


處理好這些風險的必要條件,就是產生並使用多個隨機密鑰,但這也為隱私保護方案的可用性帶來了更大的挑戰。


無論隱私保護方案設計安全性多高,如果由於用戶體驗差,用戶難以接受,或者以不安全的變通方式使用,其真實有效性都會大打折扣。這也是學術方案向業務方案轉化最常見的阻礙之一。


除了探索更優的方案設計,適當的用戶教育也是非常必要的推廣手段。


總體而言,同時處理好密鑰使用過程的安全性和可用性,是落實隱私保護的重要前提。


隱私保護第7論|密碼密鑰傻傻分不清?認識密碼學中的最高機密


正是:隱私數據控制難自主,訪問密鑰在手任我行!


密鑰是任何基於密碼學技術方案的最高機密,如何保障其安全性,並讓作為隱私數據屬主的人類用戶方便地記憶和使用,是將隱私控制權迴歸屬主的關鍵。


這個過程難免會引入數量繁多的密鑰,如何實現有效的密鑰管理,對於計算機系統和人類用戶可以使用哪些不同的技術和策略,欲知詳情,敬請關注下文分解。


分享到:


相關文章: