當前位置:首頁 » 文件傳輸 » java對安全傳輸層通道的訪問
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java對安全傳輸層通道的訪問

發布時間: 2022-04-13 18:34:38

1. ssl/tls中間人攻擊漏洞怎麼修復

解析最厲害的中間人攻擊方式之SSL欺騙導言在本文中,我們將研究SSL欺騙,這也是最厲害的中間人攻擊方式,因為SSL欺騙可以通過利用人們信賴的服務來發動攻擊。首先我們先討論SSL連接的理論及其安全性問題,然後看看SSL連接如何被利用來發動攻擊,最後與大家分享關於SSL欺騙的檢測以及防禦技巧。SSL和HTTPS安全套接字層(SSL)或者傳輸層安全(TLS)旨在通過加密方式為網路通信提供安全保障,這種協議通常與其他協議結合使用以確保協議提供服務的安全部署,例如包括SMTPS、IMAPS和最常見的HTTPS,最終目的在於在不安全網路創建安全通道。在本文中,我們將重點探討通過HTTP(即HTTPS)對SSL的攻擊,因為這是SSL最常用的形式。可能你還沒有意識到,你每天都在使用HTTPS。大多數主流電子郵件服務和網上銀行程序都是依靠HTTPS來確保用戶瀏覽器和伺服器之間的安全通信。如果沒有HTTPS技術,任何人使用數據包嗅探器都能竊取用戶網路中的用戶名、密碼和其他隱藏信息。使用HTTPS技術是為了確保伺服器、客戶和可信任第三方之間數據通信的安全。例如,假設一個用戶試圖連接到Gmail電子郵箱賬戶,這就涉及到幾個不同的步驟,如圖1所示。圖1:HTTPS通信過程圖1顯示的過程並不是特別詳細,只是描述了下列幾個基本過程:1.客戶端瀏覽器使用HTTP連接到埠80的4.伺服器向客戶端提供包含其電子簽名的證書,該證書用於驗證網址5.客戶端獲取該證書,並根據信任證書頒發機構列表來驗證該證書6.加密通信建立如果證書驗證過程失敗的話,則意味著無法驗證網址的真實度。這樣的話,用戶將會看到頁面顯示證書驗證錯誤,或者他們也可以選擇冒著危險繼續訪問網站,因為他們訪問的網站可能是欺詐網站。HTTPS被攻破這個過程一直被認為是非常安全的,直到幾年前,某攻擊者成功對這種通信過程進行劫持,這個過程並不涉及攻擊SSL本身,而是對非加密通信和加密通信間的「網橋」的攻擊。知名安全研究人員MoxieMarlinspike推測,在大多數情況下,SSL從未直接遭遇威脅問題。SSL連接通常是通過HTTPS發起的,因為用戶通過HTTP302響應代碼被定位到HTTPS或者他們點擊連接將其定位到一個HTTPS站點,例如登錄按鈕。這就是說,如果攻擊者攻擊從非安全連接到安全連接的通信,即從HTTP到HTTPS,則實際上攻擊的是這個「網橋」,SSL連接還未發生時的中間人攻擊。為了有效說明這個概念,Moxie開發了SSLstrip工具,也就是我們下面將要使用的工具。這個過程非常簡單,與我們前面文章所提到的攻擊有所類似,如圖2所示。圖2:劫持HTTPS通信圖2中描述的過程如下:1.客戶端與web伺服器間的流量被攔截2.當遇到HTTPSURS時,sslstrip使用HTTP鏈接替換它,並保存了這種變化的映射3.攻擊機模擬客戶端向伺服器提供證書4.從安全網站收到流量提供給客戶端這個過程進展很順利,伺服器認為其仍然在接收SSL流量,伺服器無法辨別任何改變。用戶可以感覺到唯一不同的是,瀏覽器中不會標記HTTPS,所以某些用戶還是能夠看出不對勁。使用SSLStrip實現這個過程是使用SSLstrip工具。這個工具只能在Linux運行,大家也可以下載運行Backtrack4。安裝好SSLstrip後,有幾個必須做的事情。首先,你使用的Linux系統必須被配置為IP轉發,實現這個配置,需要輸入命令echo"1">/proc/sys/net/ipv4/ip_forward,如下圖所示。圖3:啟用IP轉發完成上述操作後,我們必須強制將所有被攔截的HTTP流量路由到SSLstrip將會監聽的埠,這通過修改iptables防火牆配置來實現,使用命令iptables-tnat-APREROUTING-ptcp--destination-port80-jREDIRECT--to-port如下圖所示。圖4:配置IPTables來正確路由HTTP流量當然,你需要使用你選擇的隨機埠來替換,當完成這些配置後,我們就可以運行sslstrip,並將其配置為監聽由命令sslstrip-l指定的埠了。圖5:使用sslstrip這個過程的最後步驟就是配置ARP欺騙來攔截目標主機的流量,在前面的文章中我們使用的是windows中的Cain和Abel來實現,但是在這篇文章中,我們將使用arpspoof工具,該工具是內置在Backtrack4,使用命令arpspoof-i-t。圖6:配置ARP欺騙使用這個命令會將為目標客戶端的IP地址執行這些行動的網路介面替換為,而將目標使用的網關路由器的IP地址替換為完成上述操作後,你就可以主動劫持任何建立的SSL連接。你可以使用數據包器從流量來收集密碼、個人身份信息、信用卡號碼等。如何抵禦SSL劫持攻擊如上所述,這種方式的SSL劫持根本無法從伺服器端檢測出來,因為在伺服器開來,這只是與客戶端的正常通信,它無法辨識是從代理來與客戶端通信。不過我們還是可以從客戶端的角度來檢測和抵禦這種類型的攻擊。使用HTTPS確保安全連接-當你執行上訴描述的攻擊時,攻擊破壞了連接的安全性,這種安全性在瀏覽器中有所反映。這意味著如果你登錄網上銀行時,發現只是標準的HTTP連接,那麼很有可能正受到攻擊。不管你使用何種瀏覽器,你都要確保你知道如何識別安全連接與不安全連接。將網上銀行保存為主頁-攻擊者攔截家庭網路比攔截工作網路的可能性更低,這並不是因為家庭電腦更加安全(實際上,家庭電腦更加不安全),而是因為家庭網路中往往只有一兩台電腦,除非家庭成員發動內部攻擊。在公司網路中,你無法知曉網路情況或者分公司網路情況,所以潛在攻擊源。會話劫持最大的目標之一就是網上銀行,但是其他任何個人信息都有可能被劫持。確保內部機器的安全-這種類型的攻擊大多數都是從網路內部發動攻擊的,如果你的網路設備很安全,那麼那些被感染主機被利用發動會話劫持攻擊的可能性就很小。總結這種類型的中間人攻擊形式是最致命的攻擊形式,因為這種攻擊將我們認為安全的連接變成完全不安全的連接。我們每天訪問的網站都不一定安全,如果這些網路連接是不安全的,將會使重要個人信息落入他人之手。因此,我們必須具備識別安全連接和不安全連接的能力。

2. <首先請解僱失敗了。下面的連接已經關閉:無法建立信任關系SSL / TLS的安全通道>是什麼 意思

SSL 的英文全稱是 「Secure Sockets Layer」 ,中文名為 「 安全套接層協議層 」 ,它是網景( Netscape )公司提出的基於 WEB 應用的安全協議。 SSL 協議指定了一種在應用程序協議(如 HTTP 、 Telenet 、 NMTP 和 FTP 等)和 TCP/IP 協議之間提供數據安全性分層的機制,它為 TCP/IP 連接提供數據加密、伺服器認證、消息完整性以及可選的客戶機認證。
TLS:安全傳輸層協議
(TLS:Transport Layer Security Protocol)
安全傳輸層協議(TLS)用於在兩個通信應用程序之間提供保密性和數據完整性。該協議由兩層組成: TLS 記錄協議(TLS Record)和 TLS 握手協議(TLS Handshake)。較低的層為 TLS 記錄協議,位於某個可靠的傳輸協議(例如 TCP)上面。
全為網路搜索。

3. 傳輸層有哪些協議

你好,簡述: 傳輸層安全協議詳解 傳輸層安全協議的目的是為了保護傳輸層的安全,並在傳輸層上提供實現保密、認證和完整性的方法。
1.SSL(安全套接字層協議) SSL(Secure Socket Layer)是由Netscape設計的一種開放協議;它指定了一種在應用程序協議(例如http、telnet、NNTP、FTP)和TCP/IP之間 提供數據安全性分層的機制。它為TCP/IP連接提供數據加密、伺服器認證、消息完整性以及可選的客戶機認證。 SSL的主要目的是在兩個通信應用程序之間提供私密信和可靠性。這個過程通過3個元素來完成:
l 握手協議。這個協議負責協商被用於客戶機和伺服器之間會話的加密參數。當一個SSL客戶機和伺服器第一次開始通信時,它們在一個協議版本上達成一致,選擇加密演算法,選擇相互認證,並使用公鑰技術來生成共享密鑰。
l 記錄協議。這個協議用於交換應用層數據。應用程序消息被分割成可管理的數據塊,還可以壓縮,並應用一個MAC(消息認證代碼);然後結果被加密並傳輸。接受方接受數據並對它解密,校驗MAC,解壓縮並重新組合它,並把結果提交給應用程序協議。
l 警告協議。這個協議用於指示在什麼時候發生了錯誤或兩個主機之間的會話在什麼時候終止。
下面我們來看一個使用WEB客戶機和伺服器的範例。WEB客戶機通過連接到一個支持SSL的伺服器,啟動一次SSL會話。支持SSL的典型 WEB伺服器在一個與標准HTTP請求(默認為埠80)不同的埠(默認為443)上接受SSL連接請求。當客戶機連接到這個埠上時,它將啟動一次建 立SSL會話的握手。當握手完成之後,通信內容被加密,並且執行消息完整性檢查,知道SSL會話過期。SSL創建一個會話,在此期間,握手必須只發生過一 次。
SSL握手過程步驟:
步驟1:SSL客戶機連接到SSL伺服器,並要求伺服器驗證它自身的身份。
步驟2:伺服器通過發送它的數字證書證明其身份。這個交換還可以包括整個證書鏈,直到某個根證書權威機構(CA)。通過檢查有效日期並確認證書包含有可信任CA的數字簽名,來驗證證書。
步驟3:然後,伺服器發出一個請求,對客戶端的證書進行驗證。但是,因為缺乏公鑰體系結構,當今的大多數伺服器不進行客戶端認證。
步驟4:協商用於加密的消息加密演算法和用於完整性檢查的哈希函數。通常由客戶機提供它支持的所有演算法列表,然後由伺服器選擇最強健的加密演算法。
步驟5:客戶機和伺服器通過下列步驟生成會話密鑰: a. 客戶機生成一個隨機數,並使用伺服器的公鑰(從伺服器的證書中獲得)對它加密,發送到伺服器上。 b. 伺服器用更加隨機的數據(從客戶機的密鑰可用時則使用客戶機密鑰;否則以明文方式發送數據)響應。 c. 使用哈希函數,從隨機數據生成密鑰。
SSL協議的優點是它提供了連接安全,具有3個基本屬性: l 連接是私有的。在初始握手定義了一個密鑰之後,將使用加密演算法。對於數據加密使用了對稱加密(例如DES和RC4)。 l 可以使用非對稱加密或公鑰加密(例如RSA和DSS)來驗證對等實體的身份。 l 連接時可靠的。消息傳輸使用一個密鑰的MAC,包括了消息完整性檢查。其中使用了安全哈希函數(例如SHA和MD5)來進行MAC計算。
對於SSL的接受程度僅僅限於HTTP內。它在其他協議中已被表明可以使用,但還沒有被廣泛應用。
注意: IETF正在定義一種新的協議,叫做「傳輸層安全」(Transport Layer Security,TLS)。它建立在Netscape所提出的SSL3.0協議規范基礎上;對於用於傳輸層安全性的標准協議,整個行業好像都正在朝著 TLS的方向發展。但是,在TLS和SSL3.0之間存在著顯著的差別(主要是它們所支持的加密演算法不同),這樣,TLS1.0和SSL3.0不能互操 作。
2.SSH(安全外殼協議) SSH是一種在不安全網路上用於安全遠程登錄和其他安全網路服務的協議。它提供了對安全遠程登錄、安全文件傳輸 和安全TCP/IP和X-Window系統通信量進行轉發的支持。它可以自動加密、認證並壓縮所傳輸的數據。正在進行的定義SSH協議的工作確保SSH協 議可以提供強健的安全性,防止密碼分析和協議攻擊,可以在沒有全球密鑰管理或證書基礎設施的情況下工作的非常好,並且在可用時可以使用自己已有的證書基礎 設施(例如DNSSEC和X.509)。
SSH協議由3個主要組件組成: l 傳輸層協議,它提供伺服器認證、保密性和完整性,並具有完美的轉發保密性。有時,它還可能提供壓縮功能。 l 用戶認證協議,它負責從伺服器對客戶機的身份認證。 l 連接協議,它把加密通道多路復用組成幾個邏輯通道。
SSH傳輸層是一種安全的低層傳輸協議。它提供了強健的加密、加密主機認證和完整性保護。SSH中的認證是基於主機的;這種協議不執行用戶認證。可以在SSH的上層為用戶認證設計一種高級協議。
這種協議被設計成相當簡單而靈活,以允許參數協商並最小化來回傳輸的次數。密鑰交互方法、公鑰演算法、對稱加密演算法、消息認證演算法以及哈希演算法等都需要協商。
數據完整性是通過在每個包中包括一個消息認證代碼(MAC)來保護的,這個MAC是根據一個共享密鑰、包序列號和包的內容計算得到的。
在UNIX、Windows和Macintosh系統上都可以找到SSH實現。它是一種廣為接受的協議,使用眾所周知的建立良好的加密、完整性和公鑰演算法。
3.SOCKS協議
「套接字安全性」(socket security,SOCKS)是一種基於傳輸層的網路代理協議。它設計用於在TCP和UDP領域為客戶機/伺服器應用程序提供一個框架,以方便而安全的使用網路防火牆的服務。
SOCKS最初是由David和Michelle Koblas開發的;其代碼在Internet上可以免費得到。自那之後經歷了幾次主要的修改,但該軟體仍然可以免費得到。SOCKS版本4為基於TCP 的客戶機/伺服器應用程序(包括telnet、FTP,以及流行的信息發現協議如http、Wais和Gopher)提供了不安全的防火牆傳輸。 SOCKS版本5在RFC1928中定義,它擴展了SOCKS版本
4,包括了UDP;擴展了其框架,包括了對通用健壯的認證方案的提供;並擴展了定址方案,包括了域名和IPV6地址。
當前存在一種提議,就是創建一種機制,通過防火牆來管理IP多點傳送的入口和出口。這是通過對已有的SOCKS版本5協議定義擴展來完成的,它提供 單點傳送TCP和UDP流量的用戶級認證防火牆傳輸提供了一個框架。但是,因為SOCKS版本5中當前的UDP支持存在著可升級性問題以及其他缺陷(必須 解決之後才能實現多點傳送),這些擴展分兩部分定義。 l 基本級別UDP擴展。 l 多點傳送UDP擴展。
SOCKS是通過在應用程序中用特殊版本替代標准網路系統調用來工作的(這是為什麼SOCKS有時候也叫做應用程序級代理的原因)。這些新的系 統調用在已知埠上(通常為1080/TCP)打開到一個SOCKS代理伺服器(由用戶在應用程序中配置,或在系統配置文件中指定)的連接。如果連接請求 成功,則客戶機進入一個使用認證方法的協商,用選定的方法認證,然後發送一個中繼請求。SOCKS伺服器評價該請求,並建立適當的連接或拒絕它。當建立了 與SOCKS伺服器的連接之後,客戶機應用程序把用戶想要連接的機器名和埠號發送給伺服器。由SOCKS伺服器實際連接遠程主機,然後透明地在客戶機和 遠程主機之間來回移動數據。用戶甚至都不知道SOCKS伺服器位於該循環中。
使用SOCKS的困難在於,人們必須用SOCKS版本替代網路系統調用(這個過程通常稱為對應用程序SOCKS化---SOCKS- ification或SOCKS-ifying)。幸運的是,大多數常用的網路應用程序(例如telnet、FTP、finger和whois)都已經被 SOCKS化,並且許多廠商現把SOCKS支持包括在商業應用程序中。

4. 四川省計算機三級真題答案

下面是2008年4月計算機等級考試三級網路技術的試題答案詳細的解析。此稿由金版電子出版社、新思路教育科技研究中心提供,轉載請註明來源!
一、選擇題

1.解析:2008年北京奧運會全球合作夥伴有:可口可樂、源訊、通用電氣、柯達、聯想、宏利、麥當勞、歐米茄、松下、三星、威士,其中聯想、三星、松下是IT企業,微軟不是2008年北京奧運會贊助商。答案選A。

2.解析:1的ASCII碼為00110001,2的ASCII碼為00110010,所以0的ASCII為00110000,8的ASCII碼為00111000,2008的ASCII值為:00110010 00110000 00110000 00111000。答案選D。

3. 解析:主板的分類方法很多,下面是常用的分類方法,如表1所示。

表1 主板分類

分類項
分類內容

CPU晶元
486主板、奔騰主板、AMD主板等

CPU插座
Socket7主板、Slot1主板等

主板規格
AT主板、Baby—AT主板、ATX主板等

存儲容量
16M主板、32M主板、64M主板等

晶元集
TX主板、LX主板、BX主板等

即插即用
PnP主板、非PnP主板等

系統匯流排的寬度
66MHz主板、100MHz主板等

數據埠
SCSI主板、EDO主板、AGP主板等

擴展槽
EISA主板、PCI主板、USB主板等

生產廠家
聯想主板、華碩主板、海洋主板等

由表可知選項A是正確的。選項B中SCSI主板、EDO主板是按照數據埠來劃分的,C選項中AT主板、ATX主板是按照主板規格來分的,D選項中Slot主板、Socket主板是按CPU插座來分的。答案選A。

4.解析:本題考察奔騰晶元的技術特點,奔騰晶元的特點有:(1)超標量技術,內置多條流水線能同時執行多個處理,實質是以空間換取時間,奔騰由兩條整數指令流水線和一條浮點指令流水線組成;(2)超流水線技術,細化了流水並提高主頻,實質是以時間換取空間;(3)雙Cache的哈佛結構,指令與數據分開存儲的結構稱為哈佛結構,對於保持流水線的持續流動有重要意義;(4)分支預測,為了保持流水線的較高吞吐率,奔騰晶元內置了分支目標緩存器。目前處理器晶元已經由單核發展到多核,處理性能更加優越。答案選B。

5. 解析:由於聲音和圖像等信息,其數字化後的數據量十分龐大,必須對數據進行壓縮才能滿足使用的要求;JPEG標準定義了連續色調、多級灰度、彩色或單色靜止圖像等國際標准;MPEG標准包括視頻、音頻和系統3部分,它要考慮到音頻和視頻的同步,聯合壓縮後產生一個電視質量的視頻和音頻壓縮形式的位速率為1.5Mbps的單一流。答案選A。

6. 解析:文檔是軟體開發、使用維護中必備的資料。它能提高軟體開發的效率、保證軟體的質量,而且在軟體的使用過程中有指導、幫助、解惑的作用,尤其在維護工作中,文檔是不可或缺的資料。軟體的生命周期包括計劃、開發和運行三個階段,在開發初期分為需求分析、總體設計和詳細設計三個子階段,在開發後期分為編碼和測試兩個子階段。A、B、C選項說法都正確,答案選D。

7. 解析:路由器在網際網路中起到重要的作用,它連接兩個或者多個物理網路,負責將重一個網路接收來的IP數據報,經過路由選擇,轉發到一個合適的網路中。答案選C。

8. 解析:數據傳輸速率在數值上等於每秒鍾傳輸構成數據代碼的二進制比特數,單位比特/秒,記做b/s或bps。對於二進制數據,數據傳輸速率為S=1/T,T為傳送每一比特所需要的時間。傳送10bit數據時,所用的時間為: ,答案選B。

9.解析:一個網路協議由語法、語義和時序三個要素組成,語法 用戶數據與控制信息的結構和格式;語義是指需要發出何種控制信息以及完成的動作與作出的響應;時序即對事件實現順序的詳細說明。答案選A。

10.解析:OSI參考模型的分層原則是:(1)網中各結點都有相同的層次;(2)不同結點的同等層具有相同的功能;(3)每一層內相鄰層之間通過介面通信;(4)不同結點的同等層按照協議實現對等層之間的通信。由(4)可知D選項說法錯誤,答案選D。

11.解析:OSI參考模型和TCP/IP參考模型共同之處都採用了層次結構的概念,在傳輸層中兩者定義了相似的功能,但兩者在層次劃分、使用的協議上有很大的區別,如表2所示。

表2 OSI參考模型與TCP/IP參考模型的比較

OSI參考模型
TCP/IP參考模型

應用層
應用層

表示層

會話層

傳輸層
傳輸層

網路層
互連層

數據鏈路層
主機-網路層

由表可知,TCP/IP參考模型的主機-網路層對應OSI參考模型的是數據鏈路層和物理層,答案選D。

12.解析:傳輸層的主要功能是負責應用進程之間的端—端通信,TCP/IP參考模型中設計傳輸層的主要目的是在互聯網中源主機與目的主機的對等實體之間建立用於會話的端—端連接,從這一點看TCP/IP參考模型和OSI參考模型的傳輸層中是相似的,答案選B。

13.解析:主機名到IP地址的映射是藉助於一組即獨立又協作的域名伺服器完成的,網際網路中域名結構由TCP/IP協議集的域名系統(DNS,Domain Name System)進行定義。答案選B。

14.解析:解析度為640×480的真彩色圖像(像素解析度為24b),其數據量為7.37Mb(640×480×24),一秒25幀的速率的話佔用的帶寬為:640×480×24×25 = 184320000bps = 184.32Mbps,答案選C。

15.解析:ISO將整個通信功能劃分為七個層次,各層的功能如表3所示。

表3 OSI參考模型結構

名稱
功能作用

物理層
OSI的最底層,利用物理傳輸介質為數據鏈路層提供物理連接,以便透明地傳輸比特流

數據鏈路層
在通信實體之間建立數據鏈路連接,傳送以幀為單位的數據,採用差錯控制、流量控制方法,使有差錯的物理線路變成無差錯的數據鏈路

網路層
通過路由演算法,為分組通過通信子網選擇最適當的路徑

傳輸層
向用戶提供可靠的端到端服務,透明地傳送報文。向高層屏蔽了下層數據通信的細節,是計算機通信體系結構中最為關鍵的一層

會話層
組織兩個會話進程之間的通信,並管理數據的交換

表示層
處理兩個通信系統中交換信息的表示方式

應用層
OSI參考模型的最高層。確立進程之間的通信的性質,以滿足用戶的需要

由表中可知,答案選C。

16.解析:資源預留協議(RSVP)支持多媒體QoS,其根據應用的需求在各個交換結點預留資源,從而保證沿著這條通路傳輸的數據流能夠滿足QoS的要求;區分服務(DiffServ)是根據每一類服務進行控制,利用IP分組頭對數據的服務級別進行標識;多協議標識交換(MPLS)技術的提出主要是為了更好地將IP協議與ATM高速交換技術結合起來,其核心是標記交換,MPLS標記是一個用於數據分組交換的、短的、固定長度的轉發標識符。所以A、B、C選項說法都正確,D選項中CDMA(碼分多址)是一種移動通信技術,故D選項不正確,答案選D。

17.解析:10Gbps Ethernet的數據速率高達10Gbps,因此10Gbps Ethernet的傳輸介質不再使用銅線和雙絞線,而只使用光纖。它使用長距離的光收發器和單模光纖介面,以便能在廣域網和城域網的范圍內工作。答案選B。

18.解析:區域網參考模型只對應OSI參考模型的數據鏈路層和物理層,它將數據鏈路層劃分為邏輯鏈路控制LLC(Logical Link Control)子層和介質訪問控制MAC(Mediea Access Control)子層。答案選A。

19.解析:典型的Ethernet物理地址長度為48位(6個位元組),允許分配的Ethernet物理地址應該有247個,這個物理地址數量可以保證全球所有可能的Ethernet物理地址的需求。答案選C。

20.解析:100Base-T標准採用了介質獨立介面MII(Media Indepandent Interface),將MAC子層與物理層分隔開,使得物理層在實現100Mbps速率時所使用的傳輸介質和信號編碼的變化不會影響到MAC子層。答案選A。

21.解析:10Gbps Ethernet只工作在全雙工方式,因此不存在爭用的問題,10Gbps Ethernet的傳輸距離不受沖突檢測的限制。答案選C。

22.解析:區域網交換機利用「埠/MAC地址映射表」進行數據交換,改表的建立和維護十分重要,交換機利用「地址學習」方法來動態建立和維護埠/MAC地址映射表。答案選A。

23.解析:網卡也稱為網路適配器或者網路介面卡(NIC,Network Interface Card),它是構成網路的基本部件之一,一方面連接區域網計算機,另一方面連接區域網的傳輸介質。網卡的分類方法有:(1)按照網卡支持的計算機種類主要分為:標准乙太網與PCMCIA網卡;(2)按照網卡支持的傳輸速率分為:普通10Mbps網卡、高速100Mbps網卡、10/100Mbps自適應網卡、1000Mbps網卡;(3)按照網卡支持的傳輸介質類型分為:雙絞線網卡、粗纜網卡、細纜網卡、光纖網卡。網卡沒有按幀長度分類的方法,答案選D。

24.解析:交換機埠有半雙工和全雙工之分,對於1000Mbps的埠,半雙工埠帶寬為1000Mbps,全雙工埠為2000Mbps,因此48個10/100Mbps的全雙工埠和2個1000Mbps的全雙工埠總帶寬為:48×100Mbps×2 + 2×1000Mbps×2 = 13600Mbps = 13.6Gbps。答案選C。

25.解析:在建築物綜合布線系統中,主要採用高性能的非屏蔽雙絞線與光纖,能夠支持高達100Mbps的傳輸速率,甚至更高。答案選B。

26.解析:Windows和OS/2是多任務操作系統,它們允許多個程序同時運行;Windows和OS/2的內核含有分時器,它在激活的應用程序中分配處理器時間;Windows支持多種文件系統,包括FAT、FAT32和NTFS;因此A、B、C選項都正確,D選項中,Windows不需要採用擴展內存技術錯誤,Windows和OS/2的內存管理復雜,採用了擴展內存技術,如果系統不能提供足夠的實內存來滿足一個應用程序的需要,虛擬內存管理程序就會介入來彌補不足。答案選D。

27.解析:網路操作系統經歷了從對等結構向非對等結構演變的過程;在對等結構網路操作系統中,所有的聯網結點地位平等,任意兩個節點之間可以直接實現通信;安裝在每個網路節點的操作系統軟體相同每台聯網的計算機都可以分為前台方式和後台方式,前台為本地用戶提供服務,後台為其他結點的網路用戶提供服務,前台服務和後台服務的軟體不可互換。答案選B。

28.解析:活動目錄是Window 2000 Server最重要的新功能之一,它存儲有關網路對象的信息,例如用戶、組、計算機、共享資源、列印服務等,並使管理員和用戶可以方便地查找和使用這些網路信息;通過Window 2000 Server的活動目錄,用戶可以對用戶與計算機、域、信任關系,及站點與服務進行管理,活動目錄有可擴展性和可調整性;活動目錄把域詳細劃分為組織單元,組織單元是一個邏輯單位,它是域中一些用戶和組、文件與列印服務等資源對象的集合;組織單元又可再劃分為下級組織單元,下級組織單元能夠繼承父單元的訪問許可權。答案選C。

29.解析:NetWare網路操作系統由Novell公司開發研發的網路操作系統,NetWare的網路安全機制主要解決以下幾個問題:限制非授權用戶注冊網路並訪問網路文件;防止用戶查看他不應該查看的網路文件;保護應用程序不被復制、刪除、修改或被竊取;防止用戶因為誤操作而刪除或修改不應該修改的重要文件。因此B、C、D選項均正確,NetWare的系統容錯技術主要有:三級容錯機制、事物跟蹤系統和UPS監控,因此A選項錯誤,答案選A。

30.解析:Linux操作系統是一個免費的軟體包,可將普通的PC變成裝有Unix 系統的工作站;Linux雖然和Unix操作系統類似,但並不是Unix 的變種,是完全重新編碼的操作系統,Linux從開發初期,內核代碼就是仿Unix的,幾乎所有Unix的工具與外殼都可以運行在Linux上;Red Hat Linux支持Intel、Alpha和Sparc平台和大多數應用軟體,支持C++編程語言。答案選B。

31.解析:1969年貝爾實驗室的人員編寫了Unix的第一個版本V1,1981年AT&T發表了Unix的System3,同年加州伯克利分校在VXA及其上推出了Unix的伯克利版本,即常說的Unix BSD版。目前各大公司的主要版本有:IBM公司的AIX系統、Sun公司的Solaris系統及HP公司的HP-UX系統。答案選A。

32.解析:IP提供盡力而為的服務,IP並不隨意丟棄數據報,只有當系統資源用盡、接收數據錯誤或網路出現故障等狀態下,才不得不丟棄報文;傳輸控制協議(TCP)和用戶數據報協議(UDP)運行於傳輸層,TCP提供可靠的、面向連接的、全雙工的數據流傳輸服務,而UDP則提供不可靠的無連接的傳輸服務。TCP/IP是一個協議集,可用於多種操作系統。答案選C。

33.解析:路由器在網際網路中起到重要的作用,它連接兩個或者多個物理網路,負責將重一個網路接收來的IP數據報,經過路由選擇,轉發到一個合適的網路中。答案選B。

34.解析:在實際應用中,需要對IP地址中的主機號部分進行再次劃分,將其劃分成子網號和主機號兩部分。再次劃分後的IP的網路號部分和主機號部分用子網屏蔽碼(也稱子網掩碼)來區分,對於IP地址中的網路號部分在子網屏蔽碼中用「1」表示,對於IP地址中主機號部分在子網屏蔽碼中用「0」表示。在求網路地址時,先計算出IP地址和子網屏蔽碼對應的二進制數值,然後兩者進行「與」運算即得到網路地址。在本題中,255.255.192.0的二進制為:11111111. 11111111. 11000000. 00000000,主機的IP地址202.130.82.97對應的二進制為:11001010.10000010.01010010.01100001,兩二進制數相「與」得11001010.10000010. 01000000. 00000000,即為主機所屬網路的網路號,即202.103.64.0。答案選C。

35.解析:由於利用IP進行互聯的各個物理網路所能處理的最大報文長度有可能不同,所以IP報文在傳輸和投遞的過程中有可能被分片,從而保證數據不會超過物理網路能傳輸的最大報文長度。答案選D。

36.解析:一個路由表通常包含許多(N,R)對序偶,其中N 指目的網路的IP地址,R是網路N路徑上的「下一個」路由器的IP地址。答案選A。

37.解析:網際網路中域名結構由TCP/IP協議集的域名系統(DNS,Domain Name System)進行定義。DNS把網際網路劃分成多個頂級域,並規定了國際通用域名,常見的頂級域如表4所示。

表4 常見的頂級域名

頂級域名
分配對象
頂級域名
分配對象

com
商業組織
net
主要網路支持機構

e
教育機構
org
上述以外組織

gov
政府部門
int
國際組織

mil
軍事部門
國家代碼,如cn、us等
各個國家

答案選B。

38.解析:請求域名解析的軟體至少知道如何訪問一個域名伺服器,而每個域名伺服器至少知道根伺服器地址及其父節點伺服器,這樣可以一直查找下去直到查到對應主機名的IP地址。在本題中,用戶級計算機首先需要知道第一個域名伺服器地址,即第一個域名伺服器的IP地址,而選項當中只有D選項是正確的域名伺服器IP地址,因此答案選D。

39.解析:電子郵件應用程序在向電子郵件伺服器發送郵件的時候使用簡單郵件傳輸協議(SMTP,Simple Mail Tansfer Protocol),在讀取郵件時使用POP3(Post Office Protocol)協議或者IMAP(Interactive Mail Access Protocol)協議。答案選C。

40.解析:Telnet是TCP/IP協議中重要的協議,它為引入網路虛擬終端(NVT)提供了一種標準的鍵盤定義,用於屏蔽不同計算機系統對鍵盤輸入的差異性,解決了不同計算機系統之間互操作問題。答案選A。

41.解析:網際網路中每台主機至少有一個IP地址,而且這個IP地址必須是全網唯一的。在網際網路允許一台主機有兩個或多個IP地址,如果一台主機有兩個或多個IP地址,則該主機可能會屬於兩個或多個邏輯網路;在網際網路中允許同一主機有多個名字,同時允許多個主機對應一個IP地址。答案選B。

42.解析:在使用網際網路進行電子商務活動中,通常可使用安全用安全通道訪問Web站點,以避免第三方偷看或篡改,安全通道使用SSL(安全套接層)技術。答案選C。

43.解析:配置管理的內容分為對設備的管理和對設備的連接關系的管理兩部分,對設備的管理包括:識別網路中的各種設備,確定設備的地理位置、名稱和有關細節,記錄並維護社別參數表;用適當的軟體設置參數值和配置設備功能;初始化、起動和關閉網路或網路設備;配置管理能夠利用統一的界面對設備進行配置,生成並維護網路設備清單,網路設備清單應該被保密,如果被有惡意的人得到可能會在許多方面對網路造成危害。答案選C。

44.解析:SNMP位於ISO/OSI模型的應用層,遵循ISO的管理 - 代理者的網路管理模型。答案選D。

45.解析:C2級稱為受控的訪問控制,包括所有的C1級特徵,C2級具有限制用戶執行某些命令或訪問某些文件的許可權,還加入了身份認證級別。能夠達到C2級的操作系統有Unix、XENIX、NetWare 3.x或更高版本以及Windows NT等。答案選C。

46.解析:置換密碼中,每個或每組字母由另一個或另一組偽裝字母所替換,最古老的置換密碼是凱撒密碼,它的密鑰空間只有26個字母,最多嘗試25次即可知道密鑰。答案選C。

47.解析:RC5是常規加密演算法,常用的對稱加密演算法特點及安全性如表5所示。

表5 常用的對稱加密演算法

演算法
特點
安全性

DES
最常用的對稱加密演算法,幾乎是事實上的國際標准
DES本身不再安全,但其改進演算法的安全性相當強

TDEA
三重DEA,密鑰長度168比特
缺點是軟體實現相對緩慢

RC5
分組長度和密鑰長度都是可變的
可以在速度和安全性間進行折中

IDEA
以64位的明文塊進行分組,密鑰長度為128位,採用異或、模加、模乘三種運算
容易用軟硬體實現,被認為是當今公開演算法的最好的對稱分組密碼演算法

由表可知答案選D。

48.解析:在數字簽名認證過程中,數字簽名使用的是公鑰密碼體制中的認證模型,發送者使用自己的私鑰加密信息,接收者使用發送者的公鑰解密信息。答案選B。

49.解析:公鑰體制的安全基礎主要是數學中的難題問題,流行的有兩大類的:一類基於大整數因子分解問題,如RSA體制;另一類基於離散對數問題,如Elgamal體制、橢圓曲線密碼體制等。答案選D。

50.解析:數字簽名可以利用公鑰密碼體制、對稱密碼體制和公證系統實現。最常見的實現方法是建立在公鑰密碼體制和單向安全散列演算法的組合基礎之上;常用的公鑰數字簽名演算法有RSA演算法和數字簽名標准演算法(DSS);數字簽名可以進行驗證,但數字簽名沒有提供消息內容的機密性,答案選C。

51.解析:特洛伊木馬是攻擊者在正常的軟體中隱藏一段用於其他目的的程序,這段隱藏的程序段通常以安全攻擊作為其最終目標。在本題中,特洛伊病毒被植入到Word中,用戶編輯Word時,病毒就會把文檔傳送到另一台FTP伺服器,植入特洛伊木馬的黑客就可以看到該用戶的文檔,因此Word被植入了特洛伊木馬。陷門是某個子系統或某個文件系統中設置特定的「機關」,使得在提供特定的輸入數據時,允許違反安全策略。答案選B。

52.解析:兩網對接時,可利用硬體防火牆作為設備實現地址轉換(NAT)、地址映射(MAP)、網路隔離(DMZ)及存取安全控制,消除傳統軟體防火牆的瓶頸問題;防火牆的優點:保護脆弱的服務、控制對系統的訪問、集中的安全管理、增強的保密性、記錄和統計網路利用數據以及非法使用數據、策略執行。答案選C。

53.解析:電子數據處理EDP是實現EDI的基礎和必要條件;EDI又稱為「無紙貿易」;EDI數據自動地投遞和傳輸處理而不需要人工介入,應用程序對它自動響應。答案選B。

54.解析:證書是由CA安全認證中心發放的,具有權威機構的簽名,所以它可以用來向系統中的其他實體證明自己的身份;每份證書都攜帶著證書持有者的公開密鑰,所以可以向接收者證實某個實體對公開密鑰的擁有,同時起著分發公開密鑰的作用;證書的有效性可以通過相關的信任簽名來驗證,證書包括版本、序號、簽名演算法、頒發者、有效期、主體、主體公鑰信息等欄位,不攜帶持有者的基本信息。答案選C。

55.解析:電子現金也稱數字現金,具有用途廣泛、使用靈活、匿名型、快捷簡單、無須直接與銀行連接便可使用等特點,既可以存儲在智能IC卡上,也可以以數字形式存儲在現金文件中。答案選C。

56.解析:電子政務的發展大致經歷面向數據處理、面向信息處理和面向知識處理三個階段,面向數據處理的電子政務主要集中在1995年以前,以政府辦公網的辦公自動化和管理系統的建設為主要特徵。答案選A。

57.解析:信息安全基礎設施子層以公鑰基礎設施(PKI)、授權管理基礎設施(PMI)、可信時間戳服務系統和安全保密是管理系統等為重點。答案選B。

58.解析:ATM是以信元為基礎的一組分組和復用技術,是一種為了多種業務涉及的通用的面向連接的傳輸模式。在ATM的傳輸模式中,信息被組織成「信元」,來自某用戶信息的各個信元不需要周期性地出現。而實際上,信元中每個位常常是同步定時發送的,即通常所說的「同步串列通信」。答案選B。

59.解析:xDSL技術安上行和下行的速率是否相同可分為對稱型和非對稱型兩種,對稱型的有:HDSL、SDSL、IDSL,非對稱型的有ADSL、VDSL、RADSL。答案選C。

60.解析:EDGE(數據速率增強型GSM)接入技術是一種提高GPRS信道編碼效率的高速移動數據標准,數據傳輸速率最高達384 kbps。答案選C。

二、填空題:
1.解析:計算機輔助工程包括計算機輔助設計CAD,計算機輔助製造CAM,計算機輔助工程CAE,計算機輔助教學CAI,計算機輔助測試CAT等。答案為:CAE

2.解析:MPEG是ISO/IEC委員會的第11172號標准草案,包括MPEG視頻、MPEG音頻和MPEG系統三部分。答案:視頻

3.解析:目前城域網的建設方案具有幾個共同點:傳輸介質採用光纖,交換結點採用基於IP的高速路由交換機ATM交換機,在體系結構上採用核心層、業務匯集層與接入層的三層模式,以適應各種業務需求、不同協議與不同類型用戶的接入需要。答案:接入層

4.解析:計算機網路拓撲是通過網中結點與通信線路之間的幾何關系表示網路結構,反映出網路各實體間的結構關系。答案:幾何關系

5.解析:在層次結構的網路中,各層之間相互獨立,高層並不需要知道低層是如何實現的,僅需知道該層通過層間的介面所提供的服務,上層通過介面使用低層提供的服務。答案:介面

6.解析:IEEE 802.1標准包括區域網體系結構、網路互連、以及網路管理與性能測試。答案:互連

7.解析:在Ethernet中,發送結點以「廣播」方式把數據通過作為公用傳輸介質的匯流排發送出去,匯流排上所有的結點都能「收聽」到發送結點發送的數據,為了避免沖突,CSMA/CD的發送流程可以概括為:先聽後發,邊聽邊發,沖突停止,隨機延遲後重發。答案:隨機

8.解析:無線區域網採用的擴頻方法主要有調頻擴頻和直接序列擴頻。答案:直接序列

9.解析:域模式的最大好處是單一網路登錄能力,用戶只需要在域中擁有一個賬戶,就可以在整個網路中漫遊。答案:網路登錄

10.解析:1969年AT&T公司貝爾實驗室的人員編寫了Unix的第一個版本V1。答案:貝爾

11.解析:一個路由表通常包含許多(N,R)對序偶,其中N 指目的網路的IP地址,R是網路N路徑上的「下一個」路由器的IP地址。本題中,目的IP地址為20.0.0.1,屬於A類網路地址,其網路地址為20.0.0.0,因此路由器收到該IP數據包按照路由表的第一個(N,R)對序偶下一路由選擇為「直接投遞」,即直接投遞給接收主機,因此投遞的IP地址為:20.0.0.1。答案:20.0.0.1

12.解析:WWW服務也稱Web服務,WWW服務採用客戶機/伺服器模式,它以超文本標記語言HTML和超文本傳輸協議HTTP為基礎,為用戶提供界面一致的信息瀏覽系統。答案:WWW或Web

13.解析:當用戶訪問提供匿名服務的FTP伺服器時,通常用「anonymous」作為賬號,用「gust」作為口令。答案:anonymous

14.解析:故障管理的步驟包括:發現故障、判斷故障症狀、隔離故障、修復故障、記錄故障的檢修過程及其結果。答案:修復

15.解析:網路安全的基本要素是實現信息的機密性、完整性、可用性和合法性。答案:合法性

16.解析:CMIS/CMIP是ISO定義的網路管理協議,它的制定受到了政府和業界的支持。ISO首先在1989年頒布了ISO DIS 7498 – 4(X.400)文件,定義了網路管理的基本概念和總體框架。答案:ISO

17.解析:從網路高層協議的角度劃分,攻擊方法可以概括地分為兩大類:服務攻擊和非服務攻擊。答案:非服務

18.解析:電子商務應用系統由CA安全認證系統、支付網關系統、業務應用系統、用戶及終端系統組成。答案:用戶及終端系統

19.解析:電子政務的網路基礎設施包括網際網路、公眾服務業務網、非涉密辦公網和涉密辦公網幾大部分。其中公眾服務業務網、非涉密政府辦公網和涉密政府辦公網又稱為政務內網。所有的網路系統以統一的安全電子政務平台為核心,共同組成一個有機的整體。答案 :政務內網

20.解析:HFC在傳輸方式上可分為對稱型和非對稱型,對稱型上下可能採用不同的調制方式,傳輸速率相同;非對稱性上行信道一般採用QPSK調制方式,下行一般採用QPSK或QAM調制方式。答案:QPSK或QAM

5. Java類中在通過MQ發送消息時報「遠程通道的類型對於請求的操作不合適」的異常,請問該怎麼解決

你用代碼操作的話需要在隊列管理器上建立一個伺服器連接通道,而不是你用的接收通道,代碼是通過伺服器連接通道來獲取隊列管理器連接的,你可以將這些概念性的東西再好好的看看會對你有所幫助。

6. java.nio.channels的文件通道

描述
FileChannel 讀取、寫入、映射和操作文件
FileLock 對文件(文件區域)的鎖定
MappedByteBuffer 映射到文件區域的直接位元組緩沖區
FileChannel 類支持從連接到文件的通道讀取位元組或向其寫入位元組,以及查詢和修改當前的文件位置和將文件截取為指定大小等常見操作。它定義了在整個文件或具體文件區域上獲取鎖定的方法;這些方法返回 FileLock 類的實例。最後,它定義了對要寫入到存儲設備的文件進行強行更新的方法、在文件和其他通道之間高效傳輸位元組的方法,以及將文件區域直接映射到內存中的方法。最後一個操作創建 MappedByteBuffer 類的實例,該實例擴展了 ByteBuffer 類,具有多種文件相關的操作。
已經向 java io 包的每個 FileInputStream、FileOutputStream 和 RandomAccessFile 類添加了 getChannel 方法。在這些類的某個類的實例上調用此方法將返回一個連接到基礎文件的文件通道。

7. ssh是啥東東

SSH:安全外殼協議
一、SSH介紹
什麼是SSH?
傳統的網路服務程序,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和數據, 別有用心的人非常容易就可以截 獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有其弱點的, 就是很容易受到「中間人」(man-in-the-middle)這種方式的攻 擊。所謂「中間人」的攻擊方式, 就是「中間人」冒充真正的伺服器接收你的傳給伺服器的數據,然後再冒充你把數據傳給真正的伺服器。 伺服器和你之間的數 據傳送被「中間人」一轉手做了手腳之後,就會出現很嚴重的問題。
SSH的英文全稱是Secure Shell。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣「中間人」這種攻擊方式就不可能實現了, 而且也能夠防止DNS和IP欺騙。還有一個 額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。 SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提 供一個安全的「通道」。
最初SSH是由芬蘭的一家公司開發的。但是因為受版權和加密演算法的限制,現在很多人都轉而使用OpenSSH。 OpenSSH是SSH的替代軟體,而且是免費的,可以預計將來會有越 來越多的人使用它而不是SSH。
SSH是由客戶端和服務端的軟體組成的,有兩個不兼容的版本分別是:1.x和2.x。 用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。
SSH的安全驗證是如何工作的
從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基於口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密, 但是不能保證你正在連接的伺服器就是你想連接的伺服器。可能會有別的伺服器在冒充真正的伺服器, 也就是受到「中間人」這種方式的攻擊。
第二種級別(基於密匙的安全驗證)需要依靠密匙,也就是你必須為自己創建一對密匙,並把公用密匙放在需要訪問的伺服器上。 如果你要連接到SSH伺服器 上,客戶端軟體就會向伺服器發出請求,請求用你的密匙進行安全驗證。伺服器收到請求之後, 先在你在該伺服器的家目錄下尋找你的公用密匙,然後把它和你發 送過來的公用密匙進行比較。如果兩個密匙一致, 伺服器就用公用密匙加密「質詢」(challenge)並把它發送給客戶端軟體。 客戶端軟體收到「質 詢」之後就可以用你的私人密匙解密再把它發送給伺服器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。
第二種級別不僅加密所有傳送的數據,而且「中間人」這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。 但是整個登錄的過程可能需要10秒。
二、SSL介紹(Secure socket Layer & Security Socket Layer)
一個應用程序的安全需求在很大程度上依賴於將如何使用該應用程序和該應用程序將要保護什麼。不過,用現有技術實現強大的、 一般用途的安全通常是可能的。認證就是一個很好的示例。
當顧客想從 Web 站點購買某個產品時,顧客和 Web 站點都要進行認證。顧客通常是以提供名字和密碼的方式來認證他自己。 另一方面,Web 站 點通過交換一塊簽名數據和一個有效的 X.509 證書(作為 SSL 握手的一部分)來認證它自己。 顧客的瀏覽器驗證該證書並用所附的公用密鑰驗證簽 名數據。一旦雙方都認證了,則交易就可以開始了。
SSL 能用相同的機制處理伺服器認證(就如在上面的示例中)和客戶機認證。 Web 站點典型地對客戶機認證不依賴 SSL — 要求用戶提供密碼是較容易的。而 SSL 客戶機和伺服器認證對於透明認證是完美的, 對等機 — 如 p2p 應用程序中的對等機之間一定會發生透明認證。
安全套接字層(Secure Sockets Layer (SSL)) ,SSL 是一種安全協議,它為網路(例如網際網路)的通信提供私密性。SSL 使應用程序在通信時不用擔心被竊聽和篡改。 SSL 實際上 是共同工作的兩個協議:「SSL 記錄協議」(SSL Record Protocol)和「SSL 握手協議」 (SSL Handshake Protocol)。「SSL 記錄協議」是兩個協議中較低級別的協議,它為較高級別的協議, 例如 SSL 握手協議對 數據的變長的記錄進行加密和解密。SSL 握手協議處理應用程序憑證的交換和驗證。
當一個應用程序(客戶機)想和另一個應用程 序(伺服器)通信時,客戶機打開一個與伺服器相連接的套接字連接。然後, 客戶機和伺服器對安全連接進行協商。作為協商的一部分,伺服器向客戶機作自我認 證。客戶機可以選擇向伺服器作或不作自我認證。 一旦完成了認證並且建立了安全連接,則兩個應用程序就可以安全地進行通信。按照慣例,我將把發起該通信的 對等機看作客戶機, 另一個對等機則看作伺服器,不管連接之後它們充當什麼角色。
名為 A 和 B 的兩台對等機想安全地進行通 信。在我們簡單的 p2p 應用程序的環境中,對等機 A 想查詢對等機 B 上的一個資源。 每個對等機都有包含其專用密鑰的一個資料庫(名為 keystore)和包含其公用密鑰的證書。密碼保護資料庫的內容。 該資料庫還包含一個或多個來自被信任的對等機的自簽名證書。 對等機 A 發起這 項事務,每台對等機相互認證,兩台對等機協商採用的密碼及其長度並建立一個安全通道。完成這些操作之後, 每個對等機都知道它正在跟誰交談並且知道通道是 安全的。 SSL (Secure socket Layer)安全套接層協議主要是使用公開密鑰體制和X.509數字證書技術保護信息傳輸的機密性和完 整性, 它不能保證信息的不可抵賴性,主要適用於點對點之間的信息傳輸,常用Web Server方式。
安全套接層協議(SSL,Security Socket Layer)是網景(Netscape)公司提出的基於WEB應用的安全協議,它包括:伺服器認證、 客戶認證(可選)、SSL鏈路上的數據
完整性和SSL鏈路上的數據保密性。對於電子商務應用來說,使用SSL可保證信息的真實性、 完整性和保密性。但由於SSL不對應用層的消息進行數字簽 名,因此不能提供交易的不可否認性,這是SSL在電子商務中使用的最大不足。 有鑒於此,網景公司在從Communicator 4.04版開始的所有瀏 覽器中引入了一種被稱作「表單簽名(Form Signing)」的功能, 在電子商務中,可利用這一功能來對包含購買者的訂購信息和付款指令的表單進行 數字簽名,從而保證交易信息的不可否認性。綜上所述, 在電子商務中採用單一的SSL協議來保證交易的安全是不夠的,但採用"SSL+表單簽名"模式能夠 為電子商務提供較好的安全性保證。
------------------------------------------------------------------------------------------------

(SSH: Secure Shell Protocol)

安全外殼協議(SSH)是一種在不安全網路上提供安全遠程登錄及其它安全網路服務的協議。Secure Shell,又可記為S S H,最初是U N I X系統上的一個程序,後來又迅速擴展到其他操作平台。S S H是一個好的應用程序,在正確使用時,它可以彌補網路中的漏洞。除此以外, S S H之所以酷,還有以下原因:S S H客戶端適用於多種平台。幾乎所有的U N I X平台—包括H P - U X、L i n u x、A I X、S o l a r i s、Digital UNIX、I r i x、S C O,以及其他平台—都可以運行S S H。而且,已經有一些客戶端(其中有些為測試版)可以運行於U N I X操作平台以外,包括O S / 2、V M S、B e O S、J a v a、Wi n d o w s 9 5 / 9 8和Windows NT。這樣,你就可以在幾乎所有的平台上運行S S H客戶端程序了。對非商業用途它是免費的。許多S S H版本可以獲得源代碼,並且只要不用於商業目的,都可以免費得到。而且,U N I X版本也提供了源代碼,這就意味著任何人都可以對它進行修改。但是,如果你選擇它用於商業目的,那麼無論使用何種版本的S S H,你都得確認已經注冊並獲得了相應許可權。絕大多數S S H的客戶端和守護進程都有一些注冊限制。惟一的S S H通用公共注冊(General Public License,G P L )版本是l s h,它目前還是測試版。通過I n t e r n e t傳送密碼安全可靠。這是S S H被認可的優點之一。如果你考察一下接入ISP(Internet Service Provider,I n t e r n e t服務供應商)或大學的方法,一般都是採用Te l n e t或P O P郵件客戶進程。因此,每當要進入自己的賬號時,你輸入的密碼將會以明碼方式發送(即沒有保護,直接可讀),這就給攻擊者一個盜用你賬號的機會—最終你將為他的行為負責。對應用的支持。由於S S H的源代碼是公開的,所以在U N I X世界裡它獲得了廣泛的認可。L i n u x,其源代碼也是公開的,大眾可以免費獲得,並同時獲得了類似的認可。這就使得所有開發者(或任何人)都可以通過補丁程序或b u g修補來提高其性能,甚至還可以增加功能。這也第一部分獲得並安裝S S H意味著其性能可以不斷得到提高而無須得到來自原始創作者的直接技術支持。S S H替代了不安全的遠程應用程序。S S H是設計用來替代伯克利版本的r命令集的;它同時繼承了類似的語法。其結果是,使用者注意不到使用S S H和r命令集的區別。利用它,你還可以干一些很酷的事。通過使用S S H,你在不安全的網路中發送信息時不必擔心會被監聽。你也可以使用P O P通道和Te l n e t方式,通過S S H可以利用P P P通道創建一個虛擬個人網路( Virtual Private Network, V P N )。S S H也支持一些其他的身份認證方法,如K e r b e r o s和安全I D卡等。

但是因為受版權和加密演算法的限制,現在很多人都轉而使用OpenSSH。 OpenSSH是SSH的替代軟體,而且是免費的,可以預計將來會有越 來越多的人使用它而不是SSH。

SSH是由客戶端和服務端的軟體組成的,有兩個不兼容的版本分別是:1.x和2.x。 用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。

SSH 主要有三部分組成:

傳輸層協議 [SSH-TRANS] 提供了伺服器認證,保密性及完整性。此外它有時還提供壓縮功能。 SSH-TRANS 通常運行在 TCP/IP連接上,也可能用於其它可靠數據流上。 SSH-TRANS 提供了強力的加密技術、密碼主機認證及完整性保護。該協議中的認證基於主機,並且該協議不執行用戶認證。更高層的用戶認證協議可以設計為在此協議之上。

用戶認證協議 [SSH-USERAUTH] 用於向伺服器提供客戶端用戶鑒別功能。它運行在傳輸層協議 SSH-TRANS 上面。當 SSH-USERAUTH 開始後,它從低層協議那裡接收會話標識符(從第一次密鑰交換中的交換哈希 H )。會話標識符唯一標識此會話並且適用於標記以證明私鑰的所有權。 SSH-USERAUTH 也需要知道低層協議是否提供保密性保護。

連接協議 [SSH-CONNECT] 將多個加密隧道分成邏輯通道。它運行在用戶認證協議上。它提供了互動式登錄話路、遠程命令執行、轉發 TCP/IP 連接和轉發 X11 連接。

一旦建立一個安全傳輸層連接,客戶機就發送一個服務請求。當用戶認證完成之後,會發送第二個服務請求。這樣就允許新定義的協議可以與上述協議共存。連接協議提供了用途廣泛的各種通道,有標準的方法用於建立安全互動式會話外殼和轉發(「隧道技術」)專有 TCP/IP 埠和 X11 連接。

通過使用SSH,你可以把所有傳輸的數據進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS欺騙和IP欺騙。使用SSH,還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、PoP、甚至為PPP提供一個安全的"通道"。

SSH分為兩部分:客戶端部分和服務端部分。

服務端是一個守護進程(demon),他在後台運行並響應來自客戶端的連接請求。服務端一般是sshd進程,提供了對遠程連接的處理,一般包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全連接。

客戶端包含ssh程序以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全文件傳輸)等其他的應用程序。

他們的工作機制大致是本地的客戶端發送一個連接請求到遠程的服務端,服務端檢查申請的包和IP地址再發送密鑰給SSH的客戶端,本地再將密鑰發回給服務端,自此連接建立。剛才所講的只是SSH連接的大致過程,SSH 1.x和SSH 2.x在連接協議上還有著一些差異。

SSH被設計成為工作於自己的基礎之上而不利用超級伺服器(inetd),雖然可以通過inetd上的tcpd來運行SSH進程,但是這完全沒有必要。啟動SSH伺服器後,sshd運行起來並在默認的22埠進行監聽(你可以用 # ps -waux | grep sshd 來查看sshd是否已經被正確的運行了)如果不是通過inetd啟動的SSH,那麼SSH就將一直等待連接請求。當請求到來的時候SSH守護進程會產生一個子進程,該子進程進行這次的連接處理。

SSH:新的MVC軟體開發模式, SSH(Struts,Spring,Hibernate) Struts進行流程式控制制,Spring進行業務流轉,Hibernate進行資料庫操作的封裝,這種新的開發模式讓我們的開發更加方便、快捷、思路清晰!

8. java 連接資料庫問題: 我現在想連接一個資料庫,但是資料庫必須要使用http通道才可以連接.

添加一個Mysql驅動,採用JDBC,上CSDN去找下例子,很多。
關鍵字.jdbc連mysql

9. 什麼是SSL如何使用

SSL證書,也稱為伺服器SSL證書,是遵守SSL協議的一種數字證書,由全球信任的證書頒發機構(CA)驗證伺服器身份後頒發。將SSL證書安裝在網站伺服器上,可實現網站身份驗證和數據加密傳輸雙重功能。

如何使用SSL:
SSL證書需要到CA機構申請,然後部署到網站的伺服器端,網站就可以實現ssl加密訪問了。

10. Java NIO怎麼理解通道和非阻塞

nio引入了buffer、channel、selector等概念。
通道相當於之前的I/O流。
「通道」太抽象了。java解釋不清的東西只能看它底層是怎麼解釋的——操作系統的I/O控制,通道控制方式?
I/O設備:CPU——通道——設備控制器——I/O設備
(通道和設備控制器的關系是多對多,設備控制器和I/O設備的關系也是多對多。)
I/O過程,參考http://www.nbrkb.net/lwt/jsjsj/asm/INTR&DMA.htm:
1.CPU在執行用戶程序時遇到I/O請求,根據用戶的I/O請求生成通道程序(也可以是事先編好的)。放到內存中,並把該通道程序首地址放入CAW中。
2.CPU執行「啟動I/O」指令,啟動通道工作。
3.通道接收「啟動I/O」指令信號,從CAW(記錄下一條通道指令存放的地址)中取出通道程序首地址,並根據此地址取出通道程序的第一條指令,放入CCW(記錄正在執行的通道指令)中;同時向CPU發回答信號,通知「啟動I/O」指令完成完畢,CPU可繼續執行。
4.與此同時,通道開始執行通道程序,進行物理I/O操作。當執行完一條指令後,如果還有下一條指令則繼續執行;否則表示傳輸完成,同時自行停止,通知CPU轉去處理通道結束事件,並從CCW中得到有關通道狀態。

如此一來,主處理器只要發出一個I/O操作命令,剩下的工作完全由通道負責。I/O操作結束後,I/O通道會發出一個中斷請求,表示相應操作已完成。

通道控制方式是對數據塊進行處理的,並非位元組。

通道控制方式就是非同步I/O,參考http://blog.csdn.net/historyasamirror/article/details/5778378:
I/O分兩段:1.數據從I/O設備到內核緩沖區。2.數據從內核緩沖區到應用緩沖區

I/O類型:
1.非同步I/O不會產生阻塞,程序不會等待I/O完成,繼續執行代碼,等I/O完成了再執行一個什麼回調函數,代碼執行效率高。很容易聯想到ajax。這個一般用於I/O操作不影響之後的代碼執行。
2.阻塞I/O,程序發起I/O操作後,進程阻塞,CPU轉而執行其他進程,I/O的兩個步驟完成後,向CPU發送中斷信號,進程就緒,等待執行。
3.非阻塞I/O並非都不阻塞,其實是第一步不阻塞,第二部阻塞。程序發起I/O操作後,進程一直檢查第一步是否完成,CPU一直在循環詢問,完成後,進程阻塞直到完成第二步。明白了!這個是「站著茅坑不拉屎」,CPU利用率最低的。邏輯和操作系統的程序直接控制方式一樣。
阻塞不阻塞描述的是發生I/O時當前線程的狀態。
以上是操作系統的I/O,那麼java的nio又是怎樣的呢?
個人覺得是模仿了通道控制方式。
先看看nio的示例代碼:
服務端TestReadServer.java

import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.util.Iterator; import java.util.Set; public class TestReadServer { /*標識數字*/ private int flag = 0; /*緩沖區大小*/ private int BLOCK = 1024*1024*10; /*接受數據緩沖區*/ private ByteBuffer sendbuffer = ByteBuffer.allocate(BLOCK); /*發送數據緩沖區*/ private ByteBuffer receivebuffer = ByteBuffer.allocate(BLOCK); private Selector selector; public TestReadServer(int port) throws IOException { // 打開伺服器套接字通道 ServerSocketChannel serverSocketChannel = ServerSocketChannel.open(); // 伺服器配置為非阻塞 serverSocketChannel.configureBlocking(false); // 檢索與此通道關聯的伺服器套接字 ServerSocket serverSocket = serverSocketChannel.socket(); // 進行服務的綁定 serverSocket.bind(new InetSocketAddress(port)); // 通過open()方法找到Selector selector = Selector.open(); // 注冊到selector,等待連接 serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); System.out.println("Server Start----"+port+":"); } // 監聽 private void listen() throws IOException { while (true) { // 選擇一組鍵,並且相應的通道已經打開 selector.select(); // 返回此選擇器的已選擇鍵集。 Set<SelectionKey> selectionKeys = selector.selectedKeys(); Iterator<SelectionKey> iterator = selectionKeys.iterator(); while (iterator.hasNext()) { SelectionKey selectionKey = iterator.next(); iterator.remove(); handleKey(selectionKey); } } } // 處理請求 private void handleKey(SelectionKey selectionKey) throws IOException { // 接受請求 ServerSocketChannel server = null; SocketChannel client = null; String receiveText; String sendText; int count=0; // 測試此鍵的通道是否已准備好接受新的套接字連接。 if (selectionKey.isAcceptable()) { // 返回為之創建此鍵的通道。 server = (ServerSocketChannel) selectionKey.channel(); // 接受到此通道套接字的連接。 // 此方法返回的套接字通道(如果有)將處於阻塞模式。 client = server.accept(); // 配置為非阻塞 client.configureBlocking(false); // 注冊到selector,等待連接 client.register(selector, SelectionKey.OP_READ); } else if (selectionKey.isReadable()) { // 返回為之創建此鍵的通道。 client = (SocketChannel) selectionKey.channel(); //將緩沖區清空以備下次讀取 receivebuffer.clear(); //讀取伺服器發送來的數據到緩沖區中 System.out.println(System.currentTimeMillis()); count = client.read(receivebuffer); System.out.println(System.currentTimeMillis() + "~"+count); } } /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub int port = 1234; TestReadServer server = new TestReadServer(port); server.listen(); } }客戶端TestReadClient.javaimport java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.SocketChannel; import java.util.Iterator; import java.util.Set; public class TestReadClient { /*標識數字*/ private static int flag = 0; /*緩沖區大小*/ private static int BLOCK = 1024*1024*10; /*接受數據緩沖區*/ private static ByteBuffer sendbuffer = ByteBuffer.allocate(BLOCK); /*發送數據緩沖區*/ private static ByteBuffer receivebuffer = ByteBuffer.allocate(BLOCK); /*伺服器端地址*/ private final static InetSocketAddress SERVER_ADDRESS = new InetSocketAddress( "localhost", 1234); public static void main(String[] args) throws IOException { // TODO Auto-generated method stub // 打開socket通道 SocketChannel socketChannel = SocketChannel.open(); // 設置為非阻塞方式 socketChannel.configureBlocking(false); // 打開選擇器 Selector selector = Selector.open(); // 注冊連接服務端socket動作 socketChannel.register(selector, SelectionKey.OP_CONNECT); // 連接 socketChannel.connect(SERVER_ADDRESS); // 分配緩沖區大小內存 Set<SelectionKey> selectionKeys; Iterator<SelectionKey> iterator; SelectionKey selectionKey; SocketChannel client; String receiveText; String sendText; int count=0; while (true) { //選擇一組鍵,其相應的通道已為 I/O 操作準備就緒。 //此方法執行處於阻塞模式的選擇操作。 selector.select(); //返回此選擇器的已選擇鍵集。 selectionKeys = selector.selectedKeys(); //System.out.println(selectionKeys.size()); iterator = selectionKeys.iterator(); while (iterator.hasNext()) { selectionKey = iterator.next(); if (selectionKey.isConnectable()) { System.out.println("client connect"); client = (SocketChannel) selectionKey.channel(); // 判斷此通道上是否正在進行連接操作。 // 完成套接字通道的連接過程。 if (client.isConnectionPending()) { client.finishConnect(); System.out.println("完成連接!"); sendbuffer.clear(); BufferedInputStream br = new BufferedInputStream(new FileInputStream(new File("D:\BigData.zip"))); byte[] b = new byte[BLOCK]; br.read(b); sendbuffer.put(b); sendbuffer.flip(); System.out.println(System.currentTimeMillis()); client.write(sendbuffer); System.out.println(System.currentTimeMillis()); } client.register(selector, SelectionKey.OP_READ); } else if (selectionKey.isReadable()) { client = (SocketChannel) selectionKey.channel(); //將緩沖區清空以備下次讀取 receivebuffer.clear(); //讀取伺服器發送來的數據到緩沖區中 count=client.read(receivebuffer); if(count>0){ receiveText = new String( receivebuffer.array(),0,count); System.out.println("客戶端接受伺服器端數據--:"+receiveText); client.register(selector, SelectionKey.OP_WRITE); } } } selectionKeys.clear(); } } }例子是TestReadClient向TestReadServer發送一個本地文件。TestReadServer收到後每次列印讀取到的位元組數。

如何體現非同步I/O?
看看TestReadClient中的:

if (selectionKey.isConnectable()) { System.out.println("client connect"); client = (SocketChannel) selectionKey.channel(); // 判斷此通道上是否正在進行連接操作。 // 完成套接字通道的連接過程。 if (client.isConnectionPending()) { client.finishConnect();如果沒有client.finishConnect();這句等待完成socket連接,可能會報異常:java.nio.channels.NotYetConnectedException

非同步的才不會管你有沒有連接成功,都會執行下面的代碼。這里需要人為的干預。
如果要證明是java的nio單獨使用非阻塞I/O,真沒辦法!!!阻塞非阻塞要查看進程。。。
不過還有種說法,叫非同步非阻塞。上面那段,是用非同步方式創建連接,進程當然沒有被阻塞。使用了finishConnect()這是人為將程序中止,等待連接創建完成(是模仿阻塞將當前進程阻塞掉,還是模仿非阻塞不斷輪詢訪問,不重要了反正是程序卡住沒往下執行)。
所以,創建連接的過程用非同步非阻塞I/O可以解釋的通。那read/write的過程呢?
根據上面例子的列印結果,可以知道這個過程是同步的,沒執行完是不會執行下面的代碼的。至於底下是使用阻塞I/O還是非阻塞I/O,對於應用級程序來說不重要了。
阻塞還是非阻塞,對於正常的開發(創立連接,從連接中讀寫數據)並沒有多少的提升,操作過程都類似。
那NIO憑什麼成為高性能架構的基礎,比起IO,性能優越在哪裡,接著猜。。。
java nio有意模仿操作系統的通道控制方式,那他的底層是不是就是直接使用操作系統的通道?
通道中的數據是以塊為單位的,之前的流是以位元組為單位的,同樣的數據流操作外設的次數較多。代碼中channel都是針對ByteBuffer對象進行read/write的,而ByteBuffer又是ByteBuffer.allocate(BLOCK);這樣創建的,是一個連續的塊空間。
那ByteBuffer是不是也是模擬操作系統的緩存?
緩存在io也有,如BufferedInputStream。CPU和外設的速度差很多,緩存為了提高CPU使用率,等外設將數據讀入緩存後,CPU再統一操作,不用外設讀一次,CPU操作一次,CPU的效率會被拉下來。。。