iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 8
0
Security

資訊系統安全與 CISSP 的簡單應用系列 第 8

[Day 08] 安全工程 (Cryptography for Authentication)

  • 分享至 

  • xImage
  •  

隨著網際網路的興起,帶動資訊的流通,關切的重點從資料的機密性 (Confidentiality),移動到資訊來源的整全性 (Integrity) 與鑑別性 (Authentication),此範疇稱為「近代密碼學」

近代密碼學


  1. 文件整全性 (Integrity):
    資料在被儲存後,到它被存取再使用,這中間是沒有機會被竄改過的。
  2. 文件鑑別性 (Authentication):
    「誰」能創造或修改該文檔,是被嚴謹權限管控的,所以該文檔應能被鑑別出是由「他」所創造。

「對稱性演算法」與「非對稱性演算法」


AES 不能保證可鑑別性嗎?這就回到了「對稱性演算法」與「非對稱性演算法」的討論,就是有對稱鑰匙和不對稱鑰匙的區別。這裡我請各位先了解一下這兩個差別,再繼續看下去囉。

(停頓 3 分鐘,讓大家有時間查資料)

... 1 min
... 2 mins
... 3 mins

(好,時間到,下方高能預警,請小心服用)

使用 RSA 演算法再提升鑑別性


我個人覺得,RSA 要搭配 AES 來用,因為 RSA 不適合加密大量檔案,所以大量檔案的部分由 AES 完成,而我們所需要的鑑別性,可以利用「數位簽章法」來完成,數位簽章的部分再使用 RSA 即可。來直接看 CODE:

/// <summary>
/// RSA 字串加密 (非對稱式演算法)
/// </summary>
/// <param name="Source">加密前字串</param>
/// <param name="CryptoKey">加密金鑰</param>
/// <returns>加密後字串</returns>
internal static string rsaEncryptBase64(string Source, string CryptoKey)
{
    // 建立 RSA 加解密物件
    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

    // 匯入加密金鑰
    rsa.FromXmlString(CryptoKey);

    // 加密
    byte[] orgData = Encoding.Default.GetBytes(Source);
    byte[] encryptedData = rsa.Encrypt(orgData, false);

    return Convert.ToBase64String(encryptedData);
} 

接下來是解密的部分,有加密就有解密,循環相剋,生生不息...

/// <summary>
/// RSA 字串解密 (非對稱式演算法)
/// </summary>
/// <param name="Source">解密前字串</param>
/// <param name="CryptoKey">解密金鑰</param>
/// <returns>解密後字串</returns>
internal static string rsaDecryptBase64(string Source, string CryptoKey)
{
    // 建立 RSA 加解密物件
    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

    // 匯入解密金鑰
    rsa.FromXmlString(CryptoKey);

    // 解密
    byte[] encryptedData = Convert.FromBase64String(Source);
    byte[] decryptedData = rsa.Decrypt(encryptedData, false);

    return Encoding.Default.GetString(decryptedData);
}

數位簽章法 (可鑑別之物)


文檔區塊 說明舉例
檔頭 (可鑑別之物) 以 RSA-Key 加密後的 AES-Key
檔身 (訊息內容) 以 AES-Key 加密後的 Cipher

怎麼樣?安總的文章架構脈絡很清楚,又很容易應用吧?昨天我們先用 AES 演算法來保證「文檔機密性」,今天再用 RSA 演算法再加上「文檔鑑別性」。如果您不需要「文檔鑑別性」,那就做到「文檔機密性」就好囉。( ^.< )


幾年前安總做韌體 (Firmware) 工程時,接觸到很多加密 IC,是利用硬體加密的方法來實作 AES、RSA,或是橢圓曲線的加密算法,以保證資料機密性,或是硬體與硬體之間的可鑑別性 (M2M Authentication)。從下方這張圖我們更可以看出安全模型、框架與基礎建設 (Security Models, Framework, and Infrastructure) 的重要,下面幾章我們就會好好來探討,當今在各領域中常用之模型與框架。
M2M IoT Security

圖片來源:https://www.slideshare.net/Eurotechchannel/iot-security-in-action-boston-sept-2015


上一篇
[Day 07] 安全工程 (Cryptography for Confidentiality)
下一篇
[Day 09] 安全工程 (Cryptographic Applications)
系列文
資訊系統安全與 CISSP 的簡單應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言