A. SSH是什麼意思
是一種加密的網路傳輸協議。
可在不安全的網路中為網路服務提供安全的傳輸環境。SSH通過在網路中創建安全隧道來實現SSH客戶端與伺服器之間的連接。SSH最常見的用途是遠程登錄系統,人們通常利用SSH來傳輸命令行界面和遠程執行命令。
使用頻率最高的場合類Unix系統,但是Windows操作系統也能有限度地使用SSH。2015年,微軟宣布將在未來的操作系統中提供原生SSH協議支持,Windows10 1809 版本已提供可手動安裝的OpenSSH工具。
(1)ssh中的加密演算法擴展閱讀
ssh結構
SSH是由客戶端和服務端的軟體組成的,有兩個不兼容的版本分別是:1.x和2.x。 用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。
1、服務端是一個守護進程(daemon),他在後台運行並響應來自客戶端的連接請求。服務端一般是sshd進程,提供了對遠程連接的處理,一般包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全連接。
2、客戶端包含ssh程序以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全文件傳輸)等其他的應用程序。
3、他們的工作機制大致是本地的客戶端發送一個連接請求到遠程的服務端,服務端檢查申請的包和IP地址再發送密鑰給SSH的客戶端,本地再將密鑰發回給服務端,自此連接建立。SSH 1.x和SSH 2.x在連接協議上有一些差異。
SSH被設計成為工作於自己的基礎之上而不利用超級伺服器(inetd),雖然可以通過inetd上的tcpd來運行SSH進程,但是這完全沒有必要。
啟動SSH伺服器後,sshd運行起來並在默認的22埠進行監聽(你可以用 # ps -waux | grep sshd 來查看sshd是否已經被正確的運行了)如果不是通過inetd啟動的SSH,那麼SSH就將一直等待連接請求。當請求到來的時候SSH守護進程會產生一個子進程,該子進程進行這次的連接處理 。
B. 怎麼設置kail ssh加密演算法
使用命令 "ssh-keygen -t rsa" [user1@rh user1]$ ssh-keygen -t rsa Generating public/private rsa key pai
C. 關於思科設備SSH登錄中RSA認證的疑問
不是怎樣的。RSA是非對稱的加密演算法,通信的同時雙方都各自產生一對公鑰和私鑰,通信時,使用對方發送過來的公鑰進行加密,然後對方使用自己的私鑰解密數據,這個就是RSA的基本原理了
A要向B發送信息,A和B都要產生一對用於加密和解密的公鑰和私鑰。
2.A的私鑰保密,A的公鑰告訴B;B的私鑰保密,B的公鑰告訴A。
3.A要給B發送信息時,A用B的公鑰加密信息,因為A知道B的公鑰。
4.A將這個消息發給B(已經用B的公鑰加密消息)。
5.B收到這個消息後,B用自己的私鑰解密A的消息。其他所有收到這個報文的人都無法解密,因為只有B才有B的私鑰。
雙方使用RSA通信時雙方都會產生公鑰和密鑰的,不會說一方只產生公鑰,一方只產生私鑰的,這樣的話數據就沒法解密了,
對於演算法我不太懂,具體可參見網路的RSA詞條:http://ke..com/view/7520.htm
和非對稱演算法詞條:http://ke..com/view/1490349.htm
D. 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進行資料庫操作的封裝,這種新的開發模式讓我們的開發更加方便、快捷、思路清晰!
E. SSH中怎麼用到URL加密
加密參數是jsp參數傳遞中的一種安全措施,加密方法如下:
建議使用對稱加密如:DES或者是PBE演算法。
加密演算法如下:
public static String encrypt(String key, String plainText) throws Exception {
String encryptTxt = "";
try {
byte[] salt = new byte[8];
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(key.getBytes());
byte[] digest = md.digest();
for (int i = 0; i < 8; i++) {
salt[i] = digest[i];
}
F. 求助,linux中ssh-keygen生成的密碼放在那裡的
root用戶的在/root/.ssh下面
其他用戶的在/home/username/.ssh下面,其中username是但是創建key的用戶名
G. ssh的詳細
如果你考察一下接入ISP(Internet Service Provider,互聯網服務供應商)或大學的方法,一般都是採用Telnet或POP郵件客戶進程。因此,每當要進入自己的賬號時,你輸入的密碼將會以明碼方式發送(即沒有保護,直接可讀),這就給攻擊者一個盜用你賬號的機會—最終你將為他的行為負責。由於SSH的源代碼是公開的,所以在Unix世界裡它獲得了廣泛的認可。Linux其源代碼也是公開的,大眾可以免費獲得,並同時獲得了類似的認可。這就使得所有開發者(或任何人)都可以通過補丁程序或b u g修補來提高其性能,甚至還可以增加功能。開發者獲得並安裝SSH意味著其性能可以不斷提高而無須得到來自原始創作者的直接技術支持。SSH替代了不安全的遠程應用程序。SSH是設計用來替代伯克利版本的r命令集的;它同時繼承了類似的語法。其結果是,使用者注意不到使用SSH和r命令集的區別。利用它,你還可以干一些很酷的事。通過使用SSH,你在不安全的網路中發送信息時不必擔心會被監聽。你也可以使用POP通道和Telnet方式,通過SSH可以利用PPP通道創建一個虛擬個人網路( Virtual Private Network,VPN)。SSH也支持一些其他的身份認證方法,如Kerberos和安全ID卡等。
但是因為受版權和加密演算法的限制,可以預計將來會有越來越多的人使用SSH而不是Telnet或者POP3等。
H. SSH支持弱演算法 有什麼危害嗎
SSH是一種建立在應用層和傳輸層基礎上的安全外殼協議。
在SSH的加密中使用到了RSA非對稱加密演算法,並不是什麼弱演算法。
RSA加密演算法是一種典型的非對稱加密演算法,它基於大數的因式分解數學難題,它也是應用最廣泛的非對稱加密演算法,於1978年由美國麻省理工學院(MIT)的三位學著:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。
它的原理較為簡單,我們假設有消息發送方A和消息接收方B,通過下面的幾個步驟,我們就可以完成消息的加密傳遞:
消息發送方A在本地構建密鑰對,公鑰和私鑰;
消息發送方A將產生的公鑰發送給消息接收方B;
B向A發送數據時,通過公鑰進行加密,A接收到數據後通過私鑰進行解密,完成一次通信;
反之,A向B發送數據時,通過私鑰對數據進行加密,B接收到數據後通過公鑰進行解密。
由於公鑰是消息發送方A暴露給消息接收方B的,所以這種方式也存在一定的安全隱患,如果公鑰在數據傳輸過程中泄漏,則A通過私鑰加密的數據就可能被解密。
如果要建立更安全的加密消息傳遞模型,需要消息發送方和消息接收方各構建一套密鑰對,並分別將各自的公鑰暴露給對方,在進行消息傳遞時,A通過B的公鑰對數據加密,B接收到消息通過B的私鑰進行解密,反之,B通過A的公鑰進行加密,A接收到消息後通過A的私鑰進行解密。
當然,這種方式可能存在數據傳遞被模擬的隱患,我們可以通過數字簽名等技術進行安全性的進一步提升。由於存在多次的非對稱加解密,這種方式帶來的效率問題也更加嚴重。
I. openssh 的公開密鑰加密體系和RSA 的安全性對比
首先,找到的三個數字,p,Q,R,
其中p和q是兩個不同的素數,R是(p-1的)(q-1的)互質數... ...
P,Q,R三大數字是私有密鑰
然後確定米,使RM == 1 MOD(P-1)(Q-1).....
必須存在,因為這個m互素的R(P-1)(Q-1),可以得到一個歐氏......
再計算n = PQ ......
M,N這兩個數字是公鑰
編碼過程中,如果數據是,把它作為一個大的整數,假設A <N ....
如果A> = n,則這將是一個表為s四捨五入(<= n時,通常取S = 2 ^ T),
然後每個數字是小於n,然後分段編碼......
接下來,計算B == ^ M模N(0 <= B <N),
B的編碼...
解碼過程計算C = B ^直徑模PQ(0 <= C <PQ)
J. SFTP用什麼加密演算法
SFTP (SSH或Secure FTP) 是基於 SSH 來進行加密和驗證的. 而 SSH 是通過公開密鑰加密演算法來驗證和加密的。具體的SSH標准有
* RFC 4250, The Secure Shell (SSH) Protocol Assigned Numbers
* RFC 4251, The Secure Shell (SSH) Protocol Architecture
* RFC 4252, The Secure Shell (SSH) Authentication Protocol
* RFC 4253, The Secure Shell (SSH) Transport Layer Protocol
* RFC 4254, The Secure Shell (SSH) Connection Protocol
* RFC 4255, Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints
* RFC 4256, Generic Message Exchange Authentication for the Secure Shell Protocol (SSH)
* RFC 4335, The Secure Shell (SSH) Session Channel Break Extension
* RFC 4344, The Secure Shell (SSH) Transport Layer Encryption Modes
* RFC 4345, Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol
具體的SSH/SFTP代碼可以去研究開源的 openSSH 源碼
http://www.openssh.com/