最近更新文章
2018/10/19
羽昇國際深耕雲端市場 展示專業技術與經驗
2018/10/19
Nutanix .NEXT On Tour 助力企業制勝多雲時代
2018/10/19
宜鼎整合AIoT策略聯盟 從雲到端落實五大智慧應用極致整合
2018/10/19
金融創新須資安縱深防禦
2018/10/18
關鍵資料庫上雲 自主可靠運行
2018/10/17
Arm Pelion 物聯網平台 新生力軍 Arduino、myDevices 與 Intel
2018/10/17
NVIDIA 攜手 Oracle 將雲端應用導入下一代分析、機器學習與 AI
2018/10/17
APEC TEL 取經遠傳打造智慧城市經驗
2018/10/17
八成詐騙郵件來自非法寄件者或含可疑網址
2018/10/17
何謂適當安全維護措施 個資法無具體規定
2018/10/17
邊緣運算帶來新角色 微型資料中心應運而生
2018/10/16
Google 助理講中文 Pixel 3正式登台
2018/10/16
聚焦區塊鏈世代之資訊與數據安全議題
2018/10/16
路孚特大數據實驗室率先進駐政大創新園區
2018/10/16
ShareTech HiGuard X 多功能 UTM
2018/10/16
思納捷攜手資策會、遠傳 在新北導入「校園智慧能源雲」
2018/10/16
Xilinx 與華為在中國推出 FPGA 雲端即時視訊串流解決方案
2018/10/16
Nutanix 企業雲操作系統超融合基礎架構解決方案通過 SAP HANA 認證
2018/10/16
消除IT部門控管隱憂 UEM集中管理異質端點
2018/10/16
叢集伺服器系統升級實戰 直上WS2016免停機(上)
2018/10/15
Juniper Contrail Enterprise Multicloud 滿足企業多雲策略需求
2018/10/15
Teradata 推智慧分析平臺 運用 AI 技術即時分析、精準決策
將此篇文章跟 Facebook 上的朋友分享將此篇文章跟 Plurk 上的朋友分享將此篇文章跟 Twitter 上的朋友分享列印轉寄
2016/4/11

雲端資料不怕管理員偷看 精細管控存取權限並防止外洩

實戰三大資料保護新功能 SQL Server 2016更安全

莊國志
本文將說明SQL Server 2016中三項與安全性有關的新功能:一律加密、資料列層級安全性及動態資料遮罩,讓企業即使將資料放在公有雲上也能擁有資料的所有權,並且可以管理資料存取權限,為資料建立遮罩避免外流。
微軟在新一代資料庫平台推出多項與保護企業資料安全相關的新功能,包含一律加密(Always Encrypted)、資料列層級安全性(Row-Level Security)和動態資料遮罩(Dynamic Data Masking)。

本文將介紹如何使用上述保護企業資料安全相關的新功能內建於SQL Server 2016(本文以社群技術預覽Community Technology Preview 3.3為例)資料庫引擎的新功能,達到幫助企業更輕鬆保護資料與安全控管的目的。

前置作業準備

本文使用微軟官方的範例資料庫與範例程式碼,若想要跟著一起做,可以到Microsoft Download Center下載AdventureWorks Sample Databases and Scripts for SQL Server 2016 CTP3(https://www.microsoft.com/en-us/download/details.aspx?id=49502),並將AdventureWorks2016CTP3資料 庫還原至SQL Server 2016執行個體,以及解壓縮範例程式碼,詳細步驟在此就不贅述。

什麼是一律加密(Always Encrypted)

過去要將存放於資料庫中的資料加密保存,不外乎是在應用程式端就先將資料經過編碼,以密碼的型態儲存到資料庫,或是利用資料庫引擎所提供的功能,在儲存至資料行時將之加密。

前者必須自行撰寫加密所使用的程式碼,以在資料儲存至資料庫前就先將資料加密,再撰寫解密所需的程式碼,於取出資料時解密成明文,新開發的系統這樣做沒問題,但是對於現有的應用程式而言,需要修改的程式可能會相當多,並且還得配合調整資料表結構,更遑論那些可能已經找不到原始程式碼的系統,此種作法便顯得窒礙難行。

後者則是使用資料庫引擎的資料行加密技術(例如對稱加密),在資料儲存或取出時就將資料加密,但遇到特權使用者或資料庫管理員擁有加密資料的權限,就無法保證資料不會被窺視,而且一不小心還可能影響資料庫的效能。

現在只要藉由SQL Server 2016的一律加密(Always Encrypted)這項新功能並安裝.NET Framework 4.6,資料在應用程式端傳送到SQL Server時,經由擴充ADO.NET函式庫將資料加密,只有應用程式擁有解開加密內容的金鑰,就不用擔心資料被系統管理員看到,即使是將資料存放在公有雲也比較不用擔心,至於查詢使用一律加密的資料行,應用程式也不需要自行解密,一樣交由擴充ADO.NET函式庫來處理(圖1)。


▲圖說。圖1 一律加密架構示意圖。(圖片來源:SQL Server 2016 Mission-Critical Performance Technical White Paper)


此外,一律加密要能運作,尚需要一律加密的金鑰(Always Encrypted Keys)才行,包含資料行主要金鑰(Column Master Keys)與資料行加密金鑰(Column Encrypted Keys),說明如下:

·資料行主要金鑰(Column Master Keys):資料行主要金鑰是用來保護資料行加密金鑰(Column Encrypted Keys),應儲存在受信任的金鑰存放區,例如Azure金鑰保存庫(Key Vault)服務。有關金鑰資訊可以透過sys.column_master_keys系統目錄檢視(System Catalog Views)來查看。

·資料行加密金鑰(Column Encrypted Keys):資料行加密金鑰用來加密存放在資料行中的機敏資料,建議將該金鑰備份至安全或受信任的金鑰存放區。有關金鑰資訊可以透過sys.column_encryption_keys、sys.column_encryption_key_values等系統目錄檢視來查看。

一律加密的金鑰(Always Encrypted Keys)除了可使用CREATE COLUMN MASTER KEY和CREATE COLUMN ENCRYPTION KEY等T-SQL陳述式來建立外(圖2)。


▲圖2 使用T-SQL建立資料行主要金鑰與資料行加密金鑰範例。


這篇文章讓你覺得滿意不滿意
送出
相關文章
關鍵資料庫上雲 自主可靠運行
實作MySQL備份還原 詳實說明三種機制模式
安裝mod_csrfprotector 抵禦CSRF攻擊
調整組態、優化SQL指令 動手找回MySQL效能
活用免費工具備份分析 萃取手機FB對話紀錄
留言
顯示暱稱:
留言內容:
送出