RDS數(shù)據(jù)庫(kù)服務(wù)基于SSL的安全訪問(wèn)

我們開(kāi)通RDS數(shù)據(jù)庫(kù)服務(wù)后,客戶端訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)時(shí)喊暖,為了防止數(shù)據(jù)被竊取惫企,通常會(huì)采用ssl方式連接數(shù)據(jù)庫(kù)。

01 什么是SSL哄啄?

SSL(Secure Socket Layer:安全套接字層)利用數(shù)據(jù)加密雅任、身份驗(yàn)證和消息完整性驗(yàn)證機(jī)制,為基于TCP等可靠連接的應(yīng)用層協(xié)議提供安全性保證咨跌。

SSL協(xié)議提供的功能主要有:

1沪么、 數(shù)據(jù)傳輸?shù)臋C(jī)密性:利用對(duì)稱密鑰算法對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密,確保數(shù)據(jù)在網(wǎng)絡(luò)上之傳輸過(guò)程中不會(huì)被截取及竊聽(tīng)锌半。

2禽车、身份驗(yàn)證機(jī)制:基于證書(shū)利用數(shù)字簽名方法對(duì)服務(wù)器和客戶端進(jìn)行身份驗(yàn)證,其中客戶端的身份驗(yàn)證是可選的刊殉。

3殉摔、消息完整性驗(yàn)證:消息傳輸過(guò)程中使用MAC算法來(lái)檢驗(yàn)消息的完整性。

02 為何要用SSL連接到RDS數(shù)據(jù)庫(kù)服務(wù)记焊?

如果用戶的傳輸不是通過(guò)SSL的方式逸月,那么其在網(wǎng)絡(luò)中數(shù)據(jù)都是以明文進(jìn)行傳輸?shù)模@給別有用心的人帶來(lái)了可乘之機(jī)遍膜。所以碗硬,現(xiàn)在很多大型網(wǎng)站都開(kāi)啟了SSL功能。同樣地瓢颅,在我們數(shù)據(jù)庫(kù)方面恩尾,如果客戶端連接服務(wù)器獲取數(shù)據(jù)不是使用SSL連接,那么在傳輸過(guò)程中挽懦,數(shù)據(jù)就有可能被竊取翰意。

03 測(cè)試環(huán)境準(zhǔn)備

以MySQL數(shù)據(jù)庫(kù)服務(wù)為例,在天翼云或者華為云門戶開(kāi)通MySQL數(shù)據(jù)庫(kù)服務(wù)和帶公網(wǎng)ip的ECS主機(jī)信柿,關(guān)于ECS通過(guò)內(nèi)網(wǎng)如何訪問(wèn)RDS服務(wù)冀偶,參考之前發(fā)的文章:“通過(guò)ECS內(nèi)網(wǎng)訪問(wèn)MySQL數(shù)據(jù)庫(kù)服務(wù)”極簡(jiǎn)教程.

天翼云默認(rèn)MySQL服務(wù)器端打開(kāi)SSL開(kāi)關(guān),用戶使用客戶端連接時(shí)渔嚷,可根據(jù)需要是否使用SSL連接进鸠。

1、登錄到mysql數(shù)據(jù)庫(kù):

mysql -h 192.168.0.143 -P 3306 -u root -pTest@1234

2圃伶、查詢ssl開(kāi)關(guān)是否打開(kāi):

MySQL [(none)]> show global variables like '%ssl%';
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| have_openssl  | YES            |
| have_ssl      | YES            |
| ssl_ca        | /CA/ca.pem     |
| ssl_capath    |                |
| ssl_cert      | /CA/server.pem |
| ssl_cipher    |                |
| ssl_crl       |                |
| ssl_crlpath   |                |
| ssl_key       | /CA/server.key |
+---------------+----------------+
9 rows in set (0.01 sec)

have_ssl參數(shù)為YES,表示ssl開(kāi)關(guān)是打開(kāi)的狀態(tài)。

接下來(lái)我們對(duì)不使用SSL(普通連接)和使用SSL兩種情況來(lái)分別闡述窒朋。

04 普通連接

1搀罢、采用非ssl方式連接到mysql數(shù)據(jù)庫(kù):
mysql -h 192.168.0.143 -P 3306 -u root -pTest@1234
2、查詢數(shù)據(jù)庫(kù)的狀態(tài):
MySQL [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1


Connection id:          3777
Current database:
Current user:           root@192.168.0.199
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MySQL
Server version:         5.7.23-3-log MySQL Community Server - (GPL)
Protocol version:       10
Connection:             192.168.0.143 via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 1 hour 15 min 55 sec

SSL: Not in use 表示此時(shí)的連接為非ssl方式侥猩。
不使用SSL的連接榔至,會(huì)比較容易地通過(guò)網(wǎng)絡(luò)抓包工具獲取數(shù)據(jù),導(dǎo)致數(shù)據(jù)泄密欺劳。

05 使用SSL連接

1. 登錄云數(shù)據(jù)庫(kù)MySQL唧取。
2. 下載SSL根證書(shū)

在“實(shí)例管理”頁(yè)面,單擊實(shí)例名稱進(jìn)入“基本信息”頁(yè)面划提,單擊“實(shí)例信息”模塊“SSL”處的枫弟,下載并解壓根證書(shū)。

3. 上傳SSL根證書(shū)

登錄到ecs上鹏往,把解壓的證書(shū)ca.pem上傳到ecs的某個(gè)目錄下淡诗,比如/home目錄。

4. 基于SSL的連接

在/home目錄下執(zhí)行指定ssl證書(shū)的mysql連接:

mysql -h 192.168.0.143 -P 3306 -u root -pTest@1234  --ssl-ca=ca.pem

這里 --ssl-ca= 是ssl證書(shū)參數(shù)伊履,后面是ssl證書(shū)文件名韩容,該文件需放在執(zhí)行該命令的路徑下。

登錄成功后唐瀑,查詢mysql當(dāng)前登錄狀態(tài):

MySQL [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
Connection id:          4187
Current database:
Current user:           root@192.168.0.199
SSL:                    Cipher in use is ECDHE-RSA-AES256-GCM-SHA384
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MySQL
Server version:         5.7.23-3-log MySQL Community Server - (GPL)
Protocol version:       10
Connection:             192.168.0.143 via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 1 hour 24 min 14 sec

其中SSL: Cipher in use is ECDHE-RSA-AES256-GCM-SHA384表示該用戶是采用SSL連接到mysql服務(wù)器上的群凶。

06 SSL性能損耗

網(wǎng)上找了有關(guān)mysql開(kāi)啟ssl后的性能測(cè)試數(shù)據(jù),開(kāi)啟SSL后哄辣,數(shù)據(jù)庫(kù)QPS平均降低了 23% 左右请梢,相對(duì)還是比較影響性能的。從SSL實(shí)現(xiàn)方式來(lái)看柔滔,建立連接時(shí)需要進(jìn)行握手溢陪、加密、解密等操作睛廊。所以耗時(shí)基本都在建立連接階段形真,這對(duì)于使用短鏈接的應(yīng)用程序可能產(chǎn)生更大的性能損耗,比如采用PHP開(kāi)發(fā)超全。不過(guò)如果使用連接池或者長(zhǎng)連接可能會(huì)好許多咆霜,建議:

1、對(duì)于非常敏感核心的數(shù)據(jù)嘶朱,或者QPS本來(lái)就不高的核心數(shù)據(jù)蛾坯,可以采用SSL方式保障數(shù)據(jù)安全性;

2疏遏、對(duì)于采用短鏈接脉课、要求高性能的應(yīng)用救军,或者不產(chǎn)生核心敏感數(shù)據(jù)的應(yīng)用,性能和可用性才是首要倘零,建議不采用SSL方式唱遭。

術(shù)語(yǔ):QPS每秒查詢率(Query Per Second)

每秒查詢率QPS是對(duì)一個(gè)特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn),在因特網(wǎng)上呈驶,作為域名系統(tǒng)服務(wù)器的機(jī)器的性能經(jīng)常用每秒查詢率來(lái)衡量拷泽。對(duì)應(yīng)fetches/sec,即每秒的響應(yīng)請(qǐng)求數(shù)袖瞻,也即是最大吞吐能力司致。

作者:老劉論道
簡(jiǎn)介:二十年IT從業(yè)經(jīng)驗(yàn),七年云計(jì)算架構(gòu)師
技能:資深培訓(xùn)師/項(xiàng)目管理師/云計(jì)算架構(gòu)師/數(shù)據(jù)庫(kù)達(dá)人

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末聋迎,一起剝皮案震驚了整個(gè)濱河市脂矫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌砌庄,老刑警劉巖羹唠,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異娄昆,居然都是意外死亡佩微,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門萌焰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哺眯,“玉大人,你說(shuō)我怎么就攤上這事扒俯∧套浚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵撼玄,是天一觀的道長(zhǎng)夺姑。 經(jīng)常有香客問(wèn)我,道長(zhǎng)掌猛,這世上最難降的妖魔是什么盏浙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮荔茬,結(jié)果婚禮上废膘,老公的妹妹穿的比我還像新娘。我一直安慰自己慕蔚,他們只是感情好丐黄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著孔飒,像睡著了一般灌闺。 火紅的嫁衣襯著肌膚如雪艰争。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天桂对,我揣著相機(jī)與錄音园细,去河邊找鬼。 笑死接校,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狮崩。 我是一名探鬼主播蛛勉,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼睦柴!你這毒婦竟也來(lái)了诽凌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤坦敌,失蹤者是張志新(化名)和其女友劉穎侣诵,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體狱窘,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杜顺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蘸炸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躬络。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖搭儒,靈堂內(nèi)的尸體忽然破棺而出穷当,到底是詐尸還是另有隱情,我是刑警寧澤淹禾,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布馁菜,位于F島的核電站,受9級(jí)特大地震影響铃岔,放射性物質(zhì)發(fā)生泄漏汪疮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一德撬、第九天 我趴在偏房一處隱蔽的房頂上張望铲咨。 院中可真熱鬧,春花似錦蜓洪、人聲如沸纤勒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摇天。三九已至粹湃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泉坐,已是汗流浹背为鳄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腕让,地道東北人孤钦。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像纯丸,于是被迫代替她去往敵國(guó)和親偏形。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348