- 浏览: 2871381 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
我們可以常常在交易網站上看到這樣的語句:「本網站使用最先進的SSL加密機制,提供您安全無後顧之憂、方便迅速的交易環境…」,似乎只要有提供SSL的網站就絕對安全,不會被駭客入侵。這是廣告用語,還是SSL真的如此強悍?我們從原理來仔細探討一下。
實作方式和環境變因不安全才是關鍵
「SSL很安全」是一個客觀事實,因為就SSL演算法本身而言,它的確保障了「傳輸」之間的隱密性。SSL透過憑證交換來驗證客戶端或伺服器端,在傳輸前
交換只有雙方知道的溝通金鑰。當資料要傳輸時,傳送方會使用溝通金鑰為訊息加密,因為只有接收端握有相同的溝通金鑰,所以即使訊息被駭客擷取,也只能獲得
無法解譯的亂碼。
有人擔心溝通金鑰會被破解或重播,但在SSL機制中,每次重新交易時都會亂數產生一組新的溝通金鑰,即使駭客取得前次的溝通金鑰也無用武之地,從而保障了交易進行間的安全。
SSL演算法本身會不會被破解?基本上,所有加密演算法的結果都是可以破解的,但只要演算邏輯或實作上沒有被發現重大的漏洞,在有限時間內進行破解是很困
難的。目前SSL或TLS都沒有明顯的演算法謬誤,因此我們可以將之視為無法破解。所以結論是,使用SSL的網站絕對安全?
這種講法其實有很多心理盲點。SSL機制的問題其實不在演算法本身,而在實作方式與環境變因。
通常,提供SSL交易的網站的實作流程為:一、導引使用者進入登入頁面,二、使用者登入成功後啟用SSL,三、使用者交易開始受到SSL保護。但這樣的設
計忽略了一點:管理者只注意到交易本身傳輸的資料需要保密,卻忽略了登入時使用者輸入的帳號、密碼也是機密資料,需要保密處理。這幾乎是國內八成以上交易
網站的通病。
筆者曾經見過:只在結帳前開始加密的網站、只加密外框頁面的網站,以及只加密本身網頁、卻忘記結帳機制位於另一系統的網站。還有不少網站,只加密登入機制
本身,一登入後就變成全程明文傳輸。更有趣的是,有些網站只是將網站建在443埠,卻根本沒有實作SSL機制,以為可以騙過使用者。這些都是管理者在設計
上的疏忽,而抹消了SSL的本意。
正常的SSL設計流程應當在任何機密資料需要傳輸時,先啟用SSL機制。例如:一、啟用SSL,二、導引使用者進入登入頁面,三、使用者登入成功進行交易。只有把握真正全程加密這項原則的網站,才值得信賴,許多網路銀行甚至只提供SSL頁面供客戶使用。
即使網站管理者小心地設計SSL運作流程,仍然有許多SSL程式實作的弱點會影響到網站。幾乎所有大廠的軟體在處理SSL時都產生過安全漏洞,包含網站伺服器本身或瀏覽器,這已經與SSL金鑰是否夠長或憑證是否夠可靠無關了。
另一個針對SSL很有名的攻擊即為中間人攻擊(Man-in-the-Middle)。攻擊者利用DNS欺騙或ARP偽造的方式,對發文端假冒為收文端,
同時對收文端假冒為發文端。攻擊者將自己的憑證偽造為收文端發給發文端,或將自己的憑證偽造為發文端發給收文端。在雙方(其實為三方)交易過程中,的確是
全程受到SSL加密保護,事實上卻是:使用者將資料加密送給攻擊者,再由攻擊者轉送給伺服器。當然資料被「全程」竊聽、偷取。
全程加密仍有可能發生疏失
那要是已經修補所有軟硬體SSL實作上的問題,且提供真正的全程加密與網站驗證,是不是就可以說SSL網站絕對安全呢?
來看個例子:今年9月底刑事局偵破一起案件:駭客集團涉嫌入侵中○電信公司等級主機及國中學籍資料庫並竊取使用者帳號密碼等個人資料。「…經本局檢視該硬
碟發現存有異常檔案「hixxxAll」及「pxx.PASSWD」,其中hixxxAll檔案內容為中○電信公司之電子郵件用戶帳號及密碼等資料(共2
百多萬筆,若遭不法利用可窺視民眾之電子郵件,嚴重危害民眾隱私。)…分別攻陷中○電信公司、批○○實業坊、台灣深○學生論壇、卡提○論壇、
EZxxxx、無○小站、艾噹○學院及桃園縣部分國中學籍資料庫,取得大量之會員帳號密碼及桃園地區國中生之學籍資料。並取得PCxxxx網站原始程式碼
及破解雅○、Gxxxxx主機正常登入程序,讓駭客集團可假冒他人身分,通過網站的驗證而成功登入…」
看到這裡,你一定會懷疑,文中的中○電信、無○小站、雅○、Gxxxxx主機不是都實作了SSL的機制,為什麼資料還會被盜取外洩?
有條件的安全保證
回頭來看看這句話:「以HTTPS連上網站進行交易十分安全。」聰明的讀者應該已經發現其中用語的取巧點,SSL的確保證了安全沒錯,但是它只保證「傳輸
期間」的安全,不保證「端點」安全。亦即,用戶端的個人電腦可能會被埋木馬,交易主機本身也可能漏洞百出而遭到入侵。雖然這個用句在邏輯上可以說正確,卻
無法讓使用者更安心,因為大部分網站攻擊成功的成因都不在破解SSL並竊聽,而是針對用戶或網站伺服器下手。對於只仰賴SSL機制,並以此為最強力防護機
制的網站,建議讀者還是謹慎為妙。
藉由一知半解的媒體或廣告催眠,很多大眾已經誤以為SSL網站就是網站安全的同義詞,這就跟「裝了防火牆就以為作到網路安全」一樣。使用者千萬不要陷入此種誤導陷阱,而要多方面考慮網路交易時流程的可信賴度,方不會成為「200多萬筆被盜資料」中的一員。
发表评论
-
高级Java程序员值得拥有的10本书
2015-05-04 07:24 812Java是时下最流行的编程语言之一。市面上也出现了适合初学者 ... -
深入理解java异常处理机制
2015-01-30 09:30 13291. 引子 try…catch…fi ... -
java 运行时参数设置
2015-01-07 09:13 868JVM的运行时参数: -Xms为执行单元内存的1/4, ... -
每个Java开发者都应该知道的5个JDK工具
2014-12-29 12:37 1141JDK是Java语言的软件开 ... -
使用双重锁判定可以大幅降低锁的征用
2014-12-29 12:30 749class ObjInstance { //单例 pri ... -
MAVEN Scope使用说明
2014-11-24 09:40 759在Maven的依赖管理中,经常会用到依赖的scope设置。这 ... -
Spring4 quartz job xml configuration
2014-11-11 09:46 14391. 定义job details public ... -
Add items into list in one line using guava
2014-11-10 10:54 724//@formatter:off fina ... -
配置动态读取(变化)文件 in Spring
2014-11-10 08:51 13261. 从环境变量中读取路径: <bean id=&q ... -
JAVA实现AES加密与解密
2014-11-04 15:34 662package com.eifesun.monitor.up ... -
Netty4.x分析
2014-07-31 11:06 1463官网定义: netty是一个异步、事件驱动的网络应用框架,用 ... -
Ways to sort lists of objects in Java based on multiple fields
2014-07-21 17:19 7741. the first way: Sorting wit ... -
how to parse a String to BigDecimal
2014-07-21 10:08 920private BigDecimal parsePrice( ... -
order list using google guava
2014-07-21 09:08 887Predicate<String> filter ... -
Java 读文件操作
2014-07-08 14:09 8891. only use java core, no exte ... -
怎样使Java 中测试按一定顺序执行
2014-03-10 11:27 1320@FixMethodOrder(MethodSorters. ... -
如何实现在当类初始化时,自动调动某个方法
2014-02-14 14:44 965有两种思路, 1. 将这个类实现为thread类 (or ... -
持续集成JenkinsAPI常见用法
2014-02-10 13:54 43jenkins(持续集成开源工具)提供了丰富的api接口,基 ... -
Sonar 安装与使用
2014-01-13 10:49 1731Sonar 是一个用于代码质量管理的开放平台。通过插件机制, ... -
源代码管理分析工具 Source Navigator的安装与使用
2014-01-13 09:51 1894Source-Navigator是原来redhat开发的一个 ...
评论