標籤: 暫無標籤

struct+spring+hibernate架構簡稱ssh。java web技術的架構方式之一,由於都是開源項目,為了節約成本,很快得到了廣泛的應用。

ssh:struts spring hibernate,J2EE輕量級三大框架合併。

SSH:安全外殼協議
  一、SSH介紹
  什麼是SSH?

sshssh
  傳統的網路服務程序,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有其弱點的,就是很容易受到「中間人」(man-in-the-middle)這種方式的攻擊。所謂「中間人」的攻擊方式,就是「中間人」冒充真正的伺服器接收你的傳給伺服器的數據,然後再冒充你把數據傳給真正的伺服器。伺服器和你之間的數據傳送被「中間人」一轉手做了手腳之後,就會出現很嚴重的問題。
  SSH的英文全稱是SecureShell。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣「中間人」這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的「通道」。
  最初SSH是由芬蘭的一家公司開發的。但是因為受版權和加密演算法的限制,現在很多人都轉而使用OpenSSH。OpenSSH是SSH的替代軟體,而且是免費的,可以預計將來會有越來越多的人使用它而不是SSH。
  SSH是由客戶端和服務端的軟體組成的,有兩個不兼容的版本分別是:1.x和2.x。用SSH2.x的客戶程序是不能連接到SSH1.x的服務程序上去的。OpenSSH2.x同時支持SSH1.x和2.x。
  SSH的安全驗證是如何工作的
  從客戶端來看,SSH提供兩種級別的安全驗證。
  第一種級別(基於口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的伺服器就是你想連接的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到「中間人」這種方式的攻擊。
  第二種級別(基於密匙的安全驗證)需要依靠密匙,也就是你必須為自己創建一對密匙,並把公用密匙放在需要訪問的伺服器上。如果你要連接到SSH伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的密匙進行安全驗證。伺服器收到請求之後,先在你在該伺服器的家目錄下尋找你的公用密匙,然後把它和你發送過來的公用密匙進行比較。如果兩個密匙一致,伺服器就用公用密匙加密「質詢」(challenge)並把它發送給客戶端軟體。客戶端軟體收到「質詢」之後就可以用你的私人密匙解密再把它發送給伺服器。
  用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。
  第二種級別不僅加密所有傳送的數據,而且「中間人」這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒。
  二、SSL介紹(SecuresocketLayer&SecuritySocketLayer)
  一個應用程序的安全需求在很大程度上依賴於將如何使用該應用程序和該應用程序將要保護什麼。不過,用現有技術實現強大的、一般用途的安全通常是可能的。認證就是一個很好的示例。
  當顧客想從Web站點購買某個產品時,顧客和Web站點都要進行認證。顧客通常是以提供名字和密碼的方式來認證他自己。另一方面,Web站點通過交換一塊簽名數據和一個有效的X.509證書(作為SSL握手的一部分)來認證它自己。顧客的瀏覽器驗證該證書並用所附的公用密鑰驗證簽名數據。一旦雙方都認證了,則交易就可以開始了。
  SSL能用相同的機制處理伺服器認證(就如在上面的示例中)和客戶機認證。Web站點典型地對客戶機認證不依賴SSL—要求用戶提供密碼是較容易的。而SSL客戶機和伺服器認證對於透明認證是完美的,對等機—如p2p應用程序中的對等機之間一定會發生透明認證。
  安全套接字層(SecureSocketsLayer(SSL)),SSL是一種安全協議,它為網路(例如網際網路)的通信提供私密性。SSL使應用程序在通信時不用擔心被竊聽和篡改。SSL實際上是共同工作的兩個協議:「SSL記錄協議」(SSLRecordProtocol)和「SSL握手協議」(SSLHandshakeProtocol)。「SSL記錄協議」是兩個協議中較低級別的協議,它為較高級別的協議,例如SSL握手協議對數據的變長的記錄進行加密和解密。SSL握手協議處理應用程序憑證的交換和驗證。
  當一個應用程序(客戶機)想和另一個應用程序(伺服器)通信時,客戶機打開一個與伺服器相連接的套接字連接。然後,客戶機和伺服器對安全連接進行協商。作為協商的一部分,伺服器向客戶機作自我認證。客戶機可以選擇向伺服器作或不作自我認證。一旦完成了認證並且建立了安全連接,則兩個應用程序就可以安全地進行通信。按照慣例,我將把發起該通信的對等機看作客戶機,另一個對等機則看作伺服器,不管連接之後它們充當什麼角色。
  名為A和B的兩台對等機想安全地進行通信。在我們簡單的p2p應用程序的環境中,對等機A想查詢對等機B上的一個資源。每個對等機都有包含其專用密鑰的一個資料庫(名為keystore)和包含其公用密鑰的證書。密碼保護資料庫的內容。該資料庫還包含一個或多個來自被信任的對等機的自簽名證書。對等機A發起這項事務,每台對等機相互認證,兩台對等機協商採用的密碼及其長度並建立一個安全通道。完成這些操作之後,每個對等機都知道它正在跟誰交談並且知道通道是安全的。SSL(SecuresocketLayer)安全套接層協議主要是使用公開密鑰體制和X.509數字證書技術保護信息傳輸的機密性和完整性,它不能保證信息的不可抵賴性,主要適用於點對點之間的信息傳輸,常用WebServer方式。
  安全套接層協議(SSL,SecuritySocketLayer)是網景(Netscape)公司提出的基於WEB應用的安全協議,它包括:伺服器認證、客戶認證(可選)、SSL鏈路上的數據
  完整性和SSL鏈路上的數據保密性。對於電子商務應用來說,使用SSL可保證信息的真實性、完整性和保密性。但由於SSL不對應用層的消息進行數字簽名,因此不能提供交易的不可否認性,這是SSL在電子商務中使用的最大不足。有鑒於此,網景公司在從Communicator4.04版開始的所有瀏覽器中引入了一種被稱作「表單簽名(FormSigning)」的功能,在電子商務中,可利用這一功能來對包含購買者的訂購信息和付款指令的表單進行數字簽名,從而保證交易信息的不可否認性。綜上所述,在電子商務中採用單一的SSL協議來保證交易的安全是不夠的,但採用"SSL 表單簽名"模式能夠為電子商務提供較好的安全性保證。
  ------------------------------------------------------------------------------------------------
  (SSH:SecureShellProtocol)
  安全外殼協議(SSH)是一種在不安全網路上提供安全遠程登錄及其它安全網路服務的協議。SecureShell,又可記為SSH,最初是UNIX系統上的一個程序,後來又迅速擴展到其他操作平台。SSH是一個好的應用程序,在正確使用時,它可以彌補網路中的漏洞。除此以外,SSH之所以酷,還有以下原因:SSH客戶端適用於多種平台。幾乎所有的UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix、SCO,以及其他平台—都可以運行SSH。而且,已經有一些客戶端(其中有些為測試版)可以運行於UNIX操作平台以外,包括OS/2、VMS、BeOS、Java、Windows95/98和WindowsNT。這樣,你就可以在幾乎所有的平台上運行SSH客戶端程序了。對非商業用途它是免費的。許多SSH版本可以獲得源代碼,並且只要不用於商業目的,都可以免費得到。而且,UNIX版本也提供了源代碼,這就意味著任何人都可以對它進行修改。但是,如果你選擇它用於商業目的,那麼無論使用何種版本的SSH,你都得確認已經註冊並獲得了相應許可權。絕大多數SSH的客戶端和守護進程都有一些註冊限制。惟一的SSH通用公共註冊(GeneralPublicLicense,GPL)版本是LSH,它目前還是測試版。通過Internet傳送密碼安全可靠。這是SSH被認可的優點之一。如果你考察一下接入ISP(InternetServiceProvider,Internet服務供應商)或大學的方法,一般都是採用Telnet或POP郵件客戶進程。因此,每當要進入自己的賬號時,你輸入的密碼將會以明碼方式發送(即沒有保護,直接可讀),這就給攻擊者一個盜用你賬號的機會—最終你將為他的行為負責。對應用的支持。由於SSH的源代碼是公開的,所以在UNIX世界里它獲得了廣泛的認可。Linux,其源代碼也是公開的,大眾可以免費獲得,並同時獲得了類似的認可。這就使得所有開發者(或任何人)都可以通過補丁程序或bug修補來提高其性能,甚至還可以增加功能。這也第一部分獲得並安裝SSH意味著其性能可以不斷得到提高而無須得到來自原始創作者的直接技術支持。SSH替代了不安全的遠程應用程序。SSH是設計用來替代伯克利版本的r命令集的;它同時繼承了類似的語法。其結果是,使用者注意不到使用SSH和r命令集的區別。利用它,你還可以干一些很酷的事。通過使用SSH,你在不安全的網路中發送信息時不必擔心會被監聽。你也可以使用POP通道和Telnet方式,通過SSH可以利用PPP通道創建一個虛擬個人網路(VirtualPrivateNetwork,VPN)。SSH也支持一些其他的身份認證方法,如Kerberos和安全ID卡等。
  但是因為受版權和加密演算法的限制,現在很多人都轉而使用OpenSSH。OpenSSH是SSH的替代軟體,而且是免費的,可以預計將來會有越來越多的人使用它而不是SSH。
  SSH是由客戶端和服務端的軟體組成的,有兩個不兼容的版本分別是:1.x和2.x。用SSH2.x的客戶程序是不能連接到SSH1.x的服務程序上去的。OpenSSH2.x同時支持SSH1.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分為兩部分:客戶端部分和服務端部分。
  服務端是一個守護進程(daemon),他在後台運行並響應來自客戶端的連接請求。服務端一般是sshd進程,提供了對遠程連接的處理,一般包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全連接。
  客戶端包含ssh程序以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全文件傳輸)等其他的應用程序。
  他們的工作機制大致是本地的客戶端發送一個連接請求到遠程的服務端,服務端檢查申請的包和IP地址再發送密鑰給SSH的客戶端,本地再將密鑰發回給服務端,自此連接建立。剛才所講的只是SSH連接的大致過程,SSH1.x和SSH2.x在連接協議上還有著一些差異。
  SSH被設計成為工作於自己的基礎之上而不利用超級伺服器(inetd),雖然可以通過inetd上的tcpd來運行SSH進程,但是這完全沒有必要。啟動SSH伺服器后,sshd運行起來並在默認的22埠進行監聽(你可以用#ps-waux|grepsshd來查看sshd是否已經被正確的運行了)如果不是通過inetd啟動的SSH,那麼SSH就將一直等待連接請求。當請求到來的時候SSH守護進程會產生一個子進程,該子進程進行這次的連接處理。
  SSH:新的MVC軟體開發模式,SSH(Struts,Spring,Hibernate)Struts進行流程式控制制,Spring進行業務流轉,Hibernate進行資料庫操作的封裝,這種新的開發模式讓我們的開發更加方便、快捷、思路清晰!

上一篇[谷歌實時搜索]    下一篇 [品牌頁]

相關評論

同義詞:暫無同義詞