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做的?