iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 13
0
Security

資料安全與簡單加密演算法見面會 系列 第 13

[Day13] 資料使用安全(SQL連線加密)

正所謂安內才能攘外,鞏固好SQL資料庫禁區的防守後,接下來我們往外移動一點腳步來盯人防守,為了避免SQL Server與AP Server間傳輸使用的TDS(Tabular Data Stream)表格式資料封包被攔截,也許我們可以讓傳輸的通道也是加密的,來試試盯人SSL防守。

http://ithelp.ithome.com.tw/upload/images/20161228/20103434HB6gaCbaQv.jpg

從PCI DSS需求4中可以發現到,如果持卡人的資料要跨越公眾網路時需要設定安全的加密傳輸管道。

PCI DSS Requirement 4: Encrypt transmission of cardholder data across open, public networks

You should configure Secure Sockets Layer (SSL) encryption which requires a certificate.

啟用SQL Server 加密連線


Encrypting Connections to SQL Server

1.建立測試用途的憑證:


我們使用Windows內建的憑證建立工具Makecert.exe:

假設我們的電腦名稱是SQL16R,建立一個是RSA加密演算法的憑證。

makecert -r -pe -n "CN=SQL16R" -b 01/01/2000 -e 01/01/2036     -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange     -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 

參數:

  • -eku: specify Server Authentication (1.3.6.1.5.5.7.3.1).
  • -n: fully qualified domain name (FQDN)
  • -sp: 加密library

2.設定憑證使用權限


因為剛剛把憑證儲存到localMachine,所以要啟動local computer certificate Manager

Windows + R + certlm.msc 啟動local computer certificate

點開憑證 > personal > 選剛剛的SQL16R憑證名稱 > 右鍵ALL Tasks > Manage Private key

http://ithelp.ithome.com.tw/upload/images/20161228/201034349qvJso0i2E.png

設定SQL Server Service執行帳號MSSQLSERVER擁有權限
http://ithelp.ithome.com.tw/upload/images/20161228/201034347HWpKKeJps.png

3.啟用SQL Server SSL連線


打開SQL Server Configuration Manager > SQL Server Network Configuration > 右鍵屬性

啟用Force Encryption:YES
http://ithelp.ithome.com.tw/upload/images/20161228/201034340ZcYtf5mUB.png

選取SQL16R憑證,按下Apply

http://ithelp.ithome.com.tw/upload/images/20161228/20103434MRpeknGVWl.png

然後起新啟動SQL Server服務就大功告成了!

4.AP安裝憑證


將DB的憑證匯出,然後AP安裝憑證就可以和SQL Server建立加密通道連線了!

AP安裝憑證時,記得要將憑證儲存在受信任的根憑證授權單位
http://ithelp.ithome.com.tw/upload/images/20161228/2010343402tHemvS34.png

.NET程式只要在連線字串後面加上 ;Encrypt=yes

SSMS只要連接時勾選加密就可以了。

http://ithelp.ithome.com.tw/upload/images/20161228/20103434IbIT4xuAkA.jpg

監測封包軟體


我們來測試看看加密通道連線,這邊需要使用到監測封包的軟體,常見的有很多種

  • Smartsniffer
  • Wireahark
  • Microsoft Network monitor
  • Microsoft Message Analyzer
  • ...

這邊我們使用Microsoft Message Analyzer 解析SQL封包

從AP端執行T-SQL指令

SELECT @@VERSION

http://ithelp.ithome.com.tw/upload/images/20161228/20103434a9onNeTVNr.png

修改前:

http://ithelp.ithome.com.tw/upload/images/20161228/20103434WKv1X6nRhJ.jpg

果然錄到SELECT @@VERSION SQL Text

修改後:

http://ithelp.ithome.com.tw/upload/images/20161228/20103434B1zx7rXhW3.jpg

我們在資訊安全的機密性(Confidentiality)保護又往前一小步了!

參考


Configuring Certificate for Use by SSL

Encrypting Connections to SQL Server

Rock 點部落格

台灣微軟資安部落格,保哥文章,如何設定 SQL Server 2008 接受 SSL 加密連接 (需設定憑證)

Microsoft Message Analyzer


馬德里警車
http://ithelp.ithome.com.tw/upload/images/20161228/20103434WObmx7zxNW.jpg

2014.12攝於普拉多美術館前,Madrid,Spain


上一篇
[Day12] 資料使用安全(SQL權限)
下一篇
[Day14] 資料使用安全(保護連接字串)上
系列文
資料安全與簡單加密演算法見面會 30

尚未有邦友留言

立即登入留言