介紹
加密是對訊息或資訊進行編碼以便只有授權方可以看到它的過程。加密已經進行了幾個世紀。例如,在第二次世界大戰中,盟軍使用不成文的納瓦霍語傳送加密程式碼,日本人無法解碼。
今天,加密變得更加重要,因為我們生活在一個隱私和安全不斷受到想要訪問我們個人生活的駭客攻擊的時代。得益於 AES 加密等現代技術,駭客沒有理由閱讀敏感資訊。
加密是保持資料安全的通用過程。在這篇文章中,我們將探索不同的加密方法,以便您可以將資訊保安地儲存在資料庫中。
您應該選擇哪種加密演算法?
在選擇一種方法之前,瞭解每種方法的優缺點很重要。目前使用的三種加密演算法是:
對稱金鑰加密
對稱金鑰加密非常適合需要快速加密資料或隨著時間的推移可能沒有可用於傳送金鑰的安全通道的情況(例如,與位於世界另一端的人通訊)。
優點包括比非對稱金鑰加密更快的解密時間,更小的金鑰大小,更容易安全地儲存或傳輸,並且不需要分發金鑰或證書,因為它使用了共享秘密的概念。
共享金鑰是一組只有參與安全通訊的人員才知道的字元。共享秘密可以是隻有安全交易的各方知道的任何“密碼型別”字串。
共享秘密可以是預先共享的預共享金鑰的形式。或者它是在通訊會話時使用金鑰協商協議建立的,例如,Diffie-Hellman等公鑰密碼術,或Kerberos等對稱金鑰密碼術。
缺點是它需要金鑰的安全分發/傳輸或預共享的秘密才能正常工作。搜尋加密的訊息也更加困難,因為在搜尋之前必須單獨解密每條訊息,這是一個效能劣勢。
非對稱金鑰加密
非對稱加密(也稱為公鑰加密)使用兩個單獨的金鑰對資料進行加密和解密。它們被稱為“公鑰”和“私鑰”。它們一起被稱為“公鑰和私鑰對”。
非對稱加密的主要好處是提高了資料安全性。使用者不需要透露他們的私鑰,從而降低了網路犯罪分子在傳輸過程中發現使用者金鑰並獲得資料訪問許可權的機會。
缺點是金鑰對是在使用時生成的,因此可能需要格外小心以確保它們安全可靠地生成。通常,金鑰以“帶外”的方式進行通訊,例如透過電話呼叫收件人或在電子郵件和 IRC 等頻道之間拆分金鑰以防止竊聽一個頻道。
非對稱加密使用比對稱加密更長的金鑰來提供比對稱金鑰加密更好的安全性。然而,雖然較長的金鑰長度並不是一個缺點,但它會導致加密速度變慢。
混合加密
今天,所有公鑰密碼學的實際實現都採用某種形式的混合加密。流行的例子包括 TLS 和 SSH 協議,它們使用公鑰機制進行金鑰交換(例如 Diffie-Hellman)和對稱金鑰機制進行資料封裝(例如 AES)。
當需要快速進行資料加密但對系統效能的影響較小時,混合加密非常有用。加密過程的工作原理是使用對稱加密僅加密對稱金鑰,然後使用非對稱加密使用此對稱金鑰加密整個訊息,這使得解密時間比傳統加密更快。
通用資料加密方法
PGP
這是 Phil Zimmerman 在 1991 年使用 RSA 加密演算法建立的演算法。PGP 加密與其他加密演算法不同,因為它不需要伺服器、證書或發件人和收件人之間任何其他型別的預共享機密來使用加密。
有權訪問公鑰的人可以在向其他使用者傳送資訊之前加密資料,而無需與其他使用者共享金鑰。與其他加密方法相比,這使其安全性降低但更靈活,因為任何人都可以傳送加密資料,而無需提前設定複雜的安全選項。
PGP 比許多其他形式的加密更容易實現,因為不需要第三方伺服器。但它不像其他需要證書或加密金鑰的加密方法那樣安全,因為任何人都可以使用 PGP 加密來加密資料。
HTTPS
HTTPS 與其說是加密本身,不如說是一種協議。HTTPS 中的加密協議使用傳輸層安全性 (TLS),以前稱為安全套接字層 (SSL)。它有時也稱為 HTTP over TLS 或 HTTP over SSL。
幾乎所有瀏覽器都支援 HTTPS。無需使用者干預即可獲得 HTTPS 提供的混合加密的好處。該協議很重要,因為它可以防止人們監控使用者和網站之間傳送和接收的資料庫流量。這可以防止竊賊發現使用者正在訪問的網頁或放入表單的資訊或透過未加密的線上連線共享的其他個人資料。
MD5
MD5 有多種用例。但最大的是密碼的儲存。由於資料庫中的資料可能不安全而密碼必須是安全的,因此許多密碼都經過了 MD5 加密。例如,許多 Linux 系統使用 MD5 來儲存密碼。
檔案的校驗和通常使用 MD5。網站包含許多漏洞,這些漏洞可能允許駭客更改下載連結並誘騙使用者下載受損檔案。
這可以透過校驗和來緩解。它們透過建立與檔案一起使用的唯一雜湊來工作。將此雜湊與下載的檔案進行比較,以確保它是匹配的。如果它們匹配,則檔案是相同的並且沒有被篡改。對於受損檔案,情況正好相反。
用於 md5 加密的金鑰不斷變化,因此即使 MD5 金鑰被洩露,它也只會影響一個會話的流量,而不是所有會話。這使得 MD5 加密成為銀行、政府網站和其他對隱私和安全至關重要的資訊敏感企業的熱門選擇。
AES
AES 代表高階加密標準。這是一種對稱金鑰演算法。經過五年的過程以取代老化的資料加密標準 (DES),它於 2002 年被美國政府採納為聯邦標準。
AES 是一種對稱金鑰加密演算法。計算機程式獲取未加密的文字,透過加密金鑰對其進行處理,然後返回密文。當需要解密資料時,AES 會使用相同的金鑰再次對其進行處理,以生成解碼資料。這種方法需要較少的計算資源來完成其解密過程,從而降低對資料庫的效能影響。因此,AES 是保護儲存在大型資料庫中的敏感資料的好方法。
AES 加密保護敏感資訊,如信用卡號或不安全網路上的其他個人資訊。這種型別的加密使用 128 位的金鑰,因此很難破解。AES 還可以與 RSA 等非對稱金鑰演算法一起使用,這意味著可以透過 AES 對某些資料進行加密,然後使用不同的金鑰進行解密。這使得攻擊難以實施,因為它需要駭客攔截一段資料並使用他們通常不可用的金鑰對其進行解密。
RC4
RC4 的流行與其簡單性和速度有關。AES 不如 RC4 快,但更安全。RC4 是 Ron Rivest 早在 1987 年為網路安全公司 RSA Security 建立的流密碼。流密碼是一種加密技術,可以逐位元組地將純文字轉換為任何沒有正確金鑰的人都無法讀取的程式碼。
流密碼是線性的,因此相同的金鑰加密和解密訊息。雖然破解它們可能很困難,但駭客已經設法做到了。出於這個原因,專家認為流密碼不能安全地廣泛使用。許多資料庫仍然依靠技術在網際網路上傳遞資料。
RC4 在許多應用程式中得到廣泛支援,可以與私鑰或公鑰一起使用。由於私鑰通常比用於公鑰加密的金鑰長,因此 RC4 加密由於頻寬有限而廣泛用於無線網路。
要解密 RC4,需要知道 RC4 金鑰和 RC4 演算法,這就是 RC4 加密的工作原理。對於使用 RC4 訪問加密資料的攻擊者,他們需要知道 RC4 加密的兩個元件和任何金鑰。
RC4 演算法因實現而異,即使使用相同的金鑰也是如此,但通常足夠接近,以至於可以編寫一次解密程式,然後在每個實現中使用。正確實施時它具有良好的速度。在其執行期間可能會發生幾個不同的操作,例如交換金鑰或替換表,具體取決於偏移金鑰位元組流提供的資訊。這使得攻擊者很難預測 RC4 加密,即使他們可以訪問 RC4 金鑰。
結論
Ponemon Institute 最近發現,近 70% 的公司在去年至少發生過一次資料洩露事件。考慮到公司網路上儲存了多少資料庫,這並不奇怪。因此,在開始在雲中安裝資料庫之前,瞭解您的資料庫加密選項並做出明智的選擇非常重要。幸運的是,有很多不同的方法可用,因此我們建議您研究並找出最適合您需求的安全級別——從 MD5 保護到軍用級 256 位 AES 加密演算法。