MQTT開發筆記之《安全傳輸-自問自答》


 

Mosquito使用SSL/TLS進行安全通信時的使用方法:http://www.it165.net/pro/html/201404/12615.html
java版mosquitto客戶端使用SSL功能的具體操作總結 : http://houjixin.blog.163.com/blog/static/3562841020155110107215
Mosquitto openssl生成證書及密鑰:http://mosquitto.org/man/mosquitto-tls-7.html
高手必讀:
在Android應用中使用自定義證書的HTTPS連接(下)
為你的Android App實現自簽名的 SSL 證書 : http://www.open-open.com/lib/view/open1413071600531.html

 

涉足物聯網安全領域有段時間了,明白了一些,還有不少糊塗,沒人跟我聊天,自己跟自己聊吧,有對此類問題感興趣的高手歡迎打電話給我,隨時可以交流。

 

一、什么是ssl單向認證和雙向認證?

單向認證:就是只有服務器提供證書,客戶端不需要證書。

雙向認證:服務端和客戶端都提供證書。

 

光看名字就能猜到,雙向加密更加安全,實現也更加復雜。服務器端證書一份就夠,而千千萬萬的客戶端如果也安裝證書,那是相當麻煩的,需要專門的管理機構生成證書,管理證書,還要頒發給客戶端,還要各種配置,想想就頭疼,這種精力的支出超出了多數的成本邊界,所以,我們看到的大部分認證方式都是單向的。比如,特斯拉的app.

 

那單向加密到底有什么隱患呢,不安全系數有多高呢。了解過認證的過程就知道,服務器有了證書,在進行ssl認證時,客戶端驗證服務器證書,可以確認服務器的身份,保證沒發錯服務器。但服務器卻不能確認客戶端的身份,那么中途就可能被偽造者截獲,哇賽,那豈不是很危險! 是的,但好在ssl在認證結束后傳輸數據還會對數據進行對稱加密,給試圖破解的黑客朋友增加了一道坎兒,但你肯定有會問,對稱加密不是不安全很容易被破解嗎? 是的,所以對稱加密的密鑰長度最好足夠長,盡量使用128位加密。那你肯定還是不放心,那還是不行啊,我買了一輛特斯拉,單向認證過程如果被攻擊,那黑客豈不是可以控制我的車子了。所以啊,ssl只是解決了通訊層的安全,應用層一般還會增加一層認證防護,比如手機驗證碼,比如郵箱登陸,比如指紋etc.

 

二、單向認證的交互過程

 

三、看看特斯拉的證書信息

1. 先看看名字,sapi_cert.cer. 

  sapi : Server Appilication Programming Ingterface,服務器端應用編程端口

  cert : 證書文件,不是ca證書,可能是client端或者server端證書,根據sapi推測是server端證書

  cer :  證書文件后綴

2. 基本信息

  身份:無,沒有三方ca認證

  認證機構: 無,沒有三方ca認證

  過期時間:2028年08月02日,這個時間一下子干到了2028年,估計第一批車子都報廢了,這個時間需要研究

3. 主題名稱和頒發者名稱, Class 3 Public Primary Certification Authority, Verisign, Inc. US

  大suprise, 證書竟然不是tesla自己頒發的,找了安全領域大名鼎鼎的Verisign公司,難道整套加密體系都是Verisign做的?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM