Python使用傳輸層安全協議TLS/SSL實現信息加密傳輸

清華科技大講堂免費直播課預告:

免費直播課|Python數據可視化與科學計算可視化案例分享,5月28日晚20:00-21:30

============

嗶哩嗶哩網站免費視頻觀看地址:

董老師在嗶哩嗶哩網站免費分享的本學期“Python編程技術”講課錄屏視頻,已更新到第11次課共27小時,觀看地址:

https://www.bilibili.com/video/BV137411u7tJ/

==============

推薦圖書:

《Python可以這樣學》,ISBN:9787302456469,董付國,清華大學出版社,第9次印刷

圖書詳情(京東)

董付國老師17本Python系列圖書均提供配套教學資源。

=============

問題描述:

TCP協議是明文傳輸的,並不對信息進行加密,很容易被竊聽和還原。所以重要信息不適合使用TCP直接傳輸,需要進行加密傳輸,具體的實現有很多種,其中一種是安全套接字SSL(傳輸層安全協議TLS)。本文中我們先使用標準的TCP協議進行通信,然後改用TLS協議進行通信,並對通信過程進行抓包來比較兩種協議的不同。

文中用到的軟件npcap、wireshark、openssl可以後臺發送信息“安全套接字”獲取雲盤下載地址。

1、安裝npcap和wireshark,後面抓包會用到。

2、編寫代碼實現TCP套接字,模擬服務端和客戶端通信。

服務端代碼:

客戶端代碼:

3、使用管理員身份啓動wireshark,選擇本地迴環地址,如圖

4、設置抓包規則,只關心TCP協議且端口號爲6666的數據,開始抓包,如圖

5、運行前面編寫的TCP通信服務端和客戶端程序,然後切換到wireshark窗口,查看抓到的信息,除了通信雙方的握手信息,還有互相發送的明文信息,如圖

6、安裝Win64OpenSSL,用來生成安全證書,安裝後把安裝路徑以及bin文件夾添加到系統的環境變量Path中(如果不添加Path變量的話需要在安裝路徑中執行下面的命令),然後打開cmd命令提示符,執行下面的命令生成安全證書,

生成的文件如下:

7、編寫代碼,使用TLS/SSL實現安全套接字通信。

服務端代碼:

客戶端代碼:

8、切換到wireshark窗口,重新開始抓包,然後運行上面的安全套接字程序,回到wireshark窗口查看抓到的信息,可以看到,服務端和客戶端之間的信息全部被加密了,抓不到明文。

溫馨提示

關注本公衆號“Python小屋”,通過菜單“最新資源”==>“歷史文章”可以快速查看分專題的1000篇原創技術文章列表(可根據關鍵字在頁面上搜索感興趣的文章),通過“最新資源”==>“微課專區”可以免費觀看500節Python微課,通過“最新資源”==>“培訓動態”可以查看近期Python培訓安排,通過“最新資源”==>“教學資源”可以查看Python教學資源,海量寶藏等你來挖掘

---董付國老師Python系列圖書---

友情提示:不建議購買太多,最好先通過京東、噹噹、天貓查閱圖書瞭解目錄和側重點,然後再選擇購買適合自己的書。

(1)《Python程序設計(第2版)》(ISBN:978-7-302-43651-5),清華大學出版社,2016年8月出版,2019年度清華大學出版社暢銷圖書

(2)《Python可以這樣學》(ISBN:978-7-302-45646-9),清華大學出版社,2017年2月

(3)《Python程序設計基礎(第2版)》(ISBN:978-7-302-49056-2)清華大學出版社,2018年1月出版,2019年度清華大學出版社暢銷圖書

(4)《中學生可以這樣學Python》(ISBN:978-7-302-48039-6)清華大學出版社

(5)《Python程序設計開發寶典》(ISBN:978-7-302-47210-0)清華大學出版社,2018年10月

(6)《玩轉Python輕鬆過二級》(ISBN:978-7-302-49916-9)清華大學出版社,2018年5月

(7)《Python程序設計基礎與應用(ISBN:978-7-111-60617-8),機械工業出版社,2018年9月

(8)Python程序設計實驗指導書》(ISBN:9787302525790),清華大學出版社,2019年4月

(9)《Python編程基礎與案例集錦(中學版)(ISBN:978-7-121-35539-4),電子工業出版社,2019年4月

(10)大數據的Python基礎》(ISBN:978-7-111-62455-4),機械工業出版社,2019年5月出版

(11)譯作《Python程序設計》,機械工業出版社(華章),2018年11月出版

(12)繁體版《Python也可以這樣學》,臺灣博碩文化股份有限公司,2017年10月出版,本書爲《Python可以這樣學》在臺灣發行的繁體版,兩本書內容一樣,不建議重複購買

(13)《Python程序設計實例教程》(ISBN:978-7-111-63198-9),機械工業出版社

(14)《Python數據分析、挖掘與可視化》(ISBN:978-7-115-52361-7),人民郵電出版社,2019年12月

Python相關課程教材選用參考與建議

董付國老師Python在線課程資源使用方法

董付國老師6本Python教材PDF版免費閱讀

《Python數據分析、挖掘與可視化》前3章書稿PDF免費閱讀

《Python程序設計基礎與應用》前3章書稿PDF免費閱讀

號外號外--Python小屋刷題神器上線啦

《中學生可以這樣學Python》84節微課免費觀看地址

相關閱讀:

Python演示--UDP套接字真的無連接嗎?

Python標準庫socketserver使用線程混入實現異步TCP服務器

Python標準庫socketserver實現UDP協議時間服務器

Python實現TCP協議套接字多路複用

Python使用爬蟲技術獲取本機所在公網IP地址

Python在應用層實現UDP協議的可靠傳輸

Python使用UDP協議實現局域網內屏幕廣播

Python+socket完美實現TCP長連接保持存活

完美解決Python套接字編程時TCP斷包與粘包問題

Python實現多進程/多線程同時下載單個文件

Python 3.8實現支持斷點續傳的網絡文件下載功能

Python+winreg+netifaces查看網絡接口信息

Python自動接收微信羣消息並推送相應的公衆號文章

Python+psutil獲取本機所有聯網的應用程序信息

Python多線程編程的一個掉進去不太容易爬出來的坑

Python+socket+多線程實現同時應答多客戶端的自助聊天機器人

Python實現機房管理軟件的文件分發功能

技術要點|Python監控學生端電腦屏幕自動識別學習狀態

Python多線程與Socket編程綜合案例:素數

Python批量下載電子郵件附件並彙總合併Excel文件

Python監視電子郵箱並提示收到新郵件

Python版課堂管理系統中使用UDP廣播遠程關閉客戶端程序思路與源碼

使用Python實現電子郵件羣發功能

基於Python的電子教室軟件中遠程關機功能的原理與實現

Python獲取本機所有IP地址

Python實現局域網內屏幕廣播的技術要點分析

使用Python開發SQLite代理服務器

Python獲取局域網內所有機器IP地址與網卡MAC地址

Python獲取本機所有網卡的MAC地址

Python+flask+flask-email發送帶附件的電子郵件

Python使用UDP協議打造在線時間服務器

使用Python開發會聊天的智能小機器人

Python使用TCP協議編寫會聊天的小機器人

Python實現本機網絡流量監視器

Python使用UDP廣播實現服務器自動發現

Python網頁注入掛馬

Python監視域名對應IP地址變化情況

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章