導航:首頁 > 文檔加密 > ssh代理加密上網原理

ssh代理加密上網原理

發布時間:2022-09-01 04:30:15

1. 用公司的一台代理伺服器上網,因為公司裝了網路監控軟體,所以想找個SSH之類的加密代理,該如何設置

其實沒有那麼麻煩,要是你同事(好友)有一個能上網的,可以下一個代理軟體,安裝到你朋友的機器上,你把瀏覽器中代理地址改成你朋友的ip地址,這樣你就可以上網了,伺服器只能看到你朋友上網,不會看到你!

2. SSH 協議原理、組成、認證方式和過程

SSH 是(Secure SHell protocol) 的簡寫,安全外殼協議(SSH)是一種在不安全網路上提供安全遠程登錄及其它安全網路服務的協議。
OpenSSH 是SSH (Secure SHell)協議的免費開源實現。SSH協議族可以用來進行遠程式控制制,或在計算機之間傳送文件。而實現此功能的傳統方式,如telnet(終端模擬協議)、 rcp ftp、 rlogin、rsh都是極為不安全的,並且會使用明文傳送密碼。OpenSSH提供了服務端後台程序和客戶端工具,用來加密遠程式控制制項和文件傳輸過程的中的數據,並由此來代替原來的類似服務。
在過去我們使用的rsh和telnet,因為包括登錄時的ID和密碼數據沒有加密就傳到網路上,存在安全上的問題。即使在內部網上,也有在網際網路上的竊取和篡改等危險性。SSH將包括密碼在內的所有數據都已進行了加密處理,可以進行更安全的遠程操作。在SSH中,由於協議標準的不同而存在SSH1和SSH2兩個不同的版本。SSH2是為了迴避SSH1所使用的加密演算法的許可證問題而開發的(現在這一許可證問題已經不存在了)。TLES 8中作為安裝SSH協議的應用程序採用了開放源碼的OpenSSH。OpenSSH與SSH1和SSH2的任何一個協議都能對應,但默認使用SSH2。

SSH 主要有三部分組成:

同時SSH協議框架中還為許多高層的網路安全應用協議提供擴展的支持。它們之間的層次關系可以用如下圖來表示:

對於SSH這樣以提供安全通訊為目標的協議,其中必不可少的就是一套完備的密鑰機制。由於SSH協議是面向互聯網網路中主機之間的互訪與信息交換,所以主機密鑰成為基本的密鑰機制。也就是說,SSH協議要求每一個使用本協議的主機都必須至少有一個自己的主機密鑰對,服務方通過對客戶方主機密鑰的認證之後,才能允許其連接請求。一個主機可以使用多個密鑰,針對不同的密鑰演算法而擁有不同的密鑰,但是至少有一種是必備的,即通過 DSS演算法產生的密鑰。關於DSS演算法,請參考 FIPS-186 文檔.SSH協議關於主機密鑰認證的管理方案有兩種,如下圖所示:

每一個主機都必須有自己的主機密鑰,密鑰可以有多對,每一對主機密鑰對包括公開密鑰和私有密鑰。在實際應用過程中怎樣使用這些密鑰,並依賴它們來實現安全特性呢?如上圖所示,SSH協議框架中提出了兩種方案。
在第一種方案中,主機將自己的公用密鑰分發給相關的客戶機,客戶機在訪問主機時則使用該主機的公開密鑰來加密數據,主機則使用自己的私有密鑰來解密數據,從而實現主機密鑰認證,確定客戶機的可靠身份。在圖2(a)中可以看到,用戶從主機A上發起操作,去訪問,主機B和主機C,此時,A成為客戶機,它必須事先配置主機B和主機C的公開密鑰,在訪問的時候根據主機名來查找相應的公開密鑰。對於被訪問主機(也就是伺服器端)來說則只要保證安全地存儲自己的私有密鑰就可以了。
在第二種方案中,存在一個密鑰認證中心,所有系統中提供服務的主機都將自己的公開密鑰提交給認證中心,而任何作為客戶機的主機則只要保存一份認證中心的公開密鑰就可以了。在這種模式下,客戶機在訪問伺服器主機之前,還必須向密鑰認證中心請求認證,認證之後才能夠正確地連接到目的主機上。
很顯然,第一種方式比較容易實現,但是客戶機關於密鑰的維護卻是個麻煩事,因為每次變更都必須在客戶機上有所體現;第二種方式比較完美地解決管理維護問題,然而這樣的模式對認證中心的要求很高,在互聯網路上要實現這樣的集中認證,單單是權威機構的確定就是個大麻煩,有誰能夠什麼都能說了算呢?但是從長遠的發展來看,在企業應用和商業應用領域,採用中心認證的方案是必要的。
另外,SSH協議框架中還允許對主機密鑰的一個折中處理,那就是首次訪問免認證。首次訪問免認證是指,在某客戶機第一次訪問主機時,主機不檢查主機密鑰,而向該客戶都發放一個公開密鑰的拷貝,這樣在以後的訪問中則必須使用該密鑰,否則會被認為非法而拒絕其訪問。

在整個通訊過程中,為實現 SSH的安全連接,伺服器端與客戶端要經歷如下五個階段:
* 版本號協商階段,SSH目前包括 SSH1和SSH2兩個版本, 雙方通過版本協商確定使用的版本
* 密鑰和演算法協商階段,SSH支持多種加密演算法, 雙方根據本端和對端支持的演算法,協商出最終使用的演算法
* 認證階段,SSH客戶端向伺服器端發起認證請求, 伺服器端對客戶端進行認證
* 會話請求階段, 認證通過後,客戶端向伺服器端發送會話請求
* 交互會話階段 ,會話請求通過後,伺服器端和客戶端進行信息的交互

Q1: SSH的版本和區別。
SSH2避免了RSA的專利問題,並修補了CRC的缺陷。SSH2用數字簽名演算法(DSA)和Diffie-Hellman(DH)演算法代替RSA來完成對稱密鑰的交換,用HMAC來代替CRC。同時SSH2增加了AES和Twofish等對稱加密演算法。
A1: SSH(Secure SHell)到目前為止有兩個不兼容的版本——SSH1和SSH2。SSH1又分為1.3和1.5兩個版本。SSH1採用DES、3DES、 Blowfish和RC4等對稱加密演算法保護數據安全傳輸,而對稱加密演算法的密鑰是通過非對稱加密演算法(RSA)來完成交換的。SSH1使用循環冗餘校驗碼(CRC)來保證數據的完整性,但是後來發現這種方法有缺陷。
更多內容請參考The SSHv1 Protocol & The SSHv2 Protocol

Q2: 什麼是HMAC?
A2: HMAC(Hash Message Authentication Code) ,散列消息鑒別碼,基於密鑰的Hash演算法的認證協議。消息鑒別碼實現鑒別的原理是,用公開函數和密鑰產生一個固定長度的值作為認證標識,用這個標識鑒別消息的完整性。使用一個密鑰生成一個固定大小的小數據塊,即MAC,並將其加入到消息中,然後傳輸。接收方利用與發送方共享的密鑰進行鑒別認證等。

Q3: 什麼是X11 forwarding?
A3: sh的X11 forwarding特性可以使X client和X server安全地通訊。使用X11 forwarding後,從X client到X Server方向的數據先被送至ssh server,ssh server利用和ssh client的安全通道轉發給ssh client,再由ssh client轉發給X server,從X server到X client的數據流同理。這里ssh server和ssh client充當了X client和X server間數據的轉發器,由於ssh server和X client、ssh client和X server一般在同一台機器上,它們之間是一種安全的進程間通訊,而ssh server和ssh client間的通訊也是安全的,所以X client和X server間的通訊就是安全的。

Q4: 什麼是TTY?
A4: 終端是一種字元型設備,它有多種類型,通常使用tty來簡稱各種類型的終端設備。tty是 Teletype的縮寫。Teletype是最早出現的一種終端設備,很象電傳打字機,是由Teletype公司生產的。設備名放在特殊文件目錄/dev/下。

Q5: 簡單描述下SSH運行的過程?

3. SSH遠程操作與埠轉發的原理

SSH不僅可以用於遠程主機登錄,還可以直接在遠程主機上執行操作。

上一節的操作,就是一個例子:

單引號中間的部分,表示在遠程主機上執行的操作;後面的輸入重定向,表示數據通過SSH傳向遠程主機。

這就是說,SSH可以在用戶和遠程主機之間,建立命令和數據的傳輸通道,因此很多事情都可以通過SSH來完成。

下面看幾個例子。
【例1】
將 HOME/src/目錄。

【例2】
將遠程主機$HOME/src/目錄下面的所有文件,復制到用戶的當前目錄。

【例3】
查看遠程主機是否運行進程httpd。

既然SSH可以傳送數據,那麼我們可以讓那些不加密的網路連接,全部改走SSH連接,從而提高安全性。

假定我們要讓8080埠的數據,都通過SSH傳向遠程主機,命令就這樣寫:

SSH會建立一個socket,去監聽本地的8080埠。一旦有數據傳向那個埠,就自動把它轉移到SSH連接上面,發往遠程主機。可以想像,如果8080埠原來是一個不加密埠,現在將變成一個加密埠。

有時,綁定本地埠還不夠,還必須指定數據傳送的目標主機,從而形成點對點的"埠轉發"。為了區別後文的"遠程埠轉發",我們把這種情況稱為"本地埠轉發"(Local forwarding)。

假定host1是本地主機,host2是遠程主機。由於種種原因,這兩台主機之間無法連通。但是,另外還有一台host3,可以同時連通前面兩台主機。因此,很自然的想法就是,通過host3,將host1連上host2。
我們在host1執行下面的命令:

命令中的L參數一共接受三個值,分別是"本地埠:目標主機:目標主機埠",它們之間用冒號分隔。這條命令的意思,就是指定SSH綁定本地埠2121,然後指定host3將所有的數據,轉發到目標主機host2的21埠(假定host2運行FTP,默認埠為21)。

這樣一來,我們只要連接host1的2121埠,就等於連上了host2的21埠。

"本地埠轉發"使得host1和host3之間彷彿形成一個數據傳輸的秘密隧道,因此又被稱為"SSH隧道"。

下面是一個比較有趣的例子。

它表示將本機的5900埠綁定host3的5900埠(這里的localhost指的是host3,因為目標主機是相對host3而言的)。
另一個例子是通過host3的埠轉發,ssh登錄host2。

這時,只要ssh登錄本機的9001埠,就相當於登錄host2了。

上面的-p參數表示指定登錄埠。

既然"本地埠轉發"是指綁定本地埠的轉發,那麼"遠程埠轉發"(remote forwarding)當然是指綁定遠程埠的轉發。還是接著看上面那個例子,host1與host2之間無法連通,必須藉助host3轉發。但是,特殊情況出現了,host3是一台內網機器,它可以連接外網的host1,但是反過來就不行,外網的host1連不上內網的host3。這時,"本地埠轉發"就不能用了,怎麼辦?

解決辦法是,既然host3可以連host1,那麼就從host3上建立與host1的SSH連接,然後在host1上使用這條連接就可以了。

我們在host3執行下面的命令:

R參數也是接受三個值,分別是"遠程主機埠:目標主機:目標主機埠"。這條命令的意思,就是讓host1監聽它自己的2121埠,然後將所有數據經由host3,轉發到host2的21埠。由於對於host3來說,host1是遠程主機,所以這種情況就被稱為"遠程埠綁定"。

綁定之後,我們在host1就可以連接host2了:

這里必須指出,"遠程埠轉發"的前提條件是,host1和host3兩台主機都有sshD和ssh客戶端。

SSH還有一些別的參數,也值得介紹。

N參數,表示只連接遠程主機,不打開遠程shell;T參數,表示不為這個連接分配TTY。這個兩個參數可以放在一起用,代表這個SSH連接只用來傳數據,不執行遠程操作。

f參數,表示SSH連接成功後,轉入後台運行。這樣一來,你就可以在不中斷SSH連接的情況下,在本地shell中執行其他操作。

要關閉這個後台連接,就只有用kill命令去殺掉進程。

4. SSH原理 and SSH遠程登錄

Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應用層基礎上的安全網路協議。它是專為遠程登錄會話(甚至可以用Windows遠程登錄linux伺服器進行文件互傳)和其他網路服務提供安全性的協議,可有效彌補網路中的漏洞。通過SSH,可以把所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。目前已經成為Linux系統的標准配置。

SSH只是一種協議,存在多種實現,既有商業實現,也有開源實現。本文主要介紹OpenSSH免費開源實現在Ubuntu中的應用,如果要在Windows中使用SSH,需要使用另一個軟體PuTTY。

SSH之所以能夠保證安全,原因在於它採用了非對稱加密技術(RSA)加密了所有傳輸的數據。

傳統的網路服務程序,如FTP、Pop和Telnet其本質上都是不安全的;因為它們在網路上用明文傳送數據、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個人或者一台機器冒充真正的伺服器接收用戶傳給伺服器的數據,然後再冒充用戶把數據傳給真正的伺服器。

但並不是說SSH就是絕對安全的,因為它本身提供兩種級別的驗證方法:

第一種級別(基於口令的安全驗證):只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸的數據都會被加密,但是不能保證你正在連接的伺服器就是你想連接的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到「中間人攻擊」這種方式的攻擊。

第二種級別(基於密鑰的安全驗證):你必須為自己創建一對密鑰,並把公鑰放在需要訪問的伺服器上。如果你要連接到SSH伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的密鑰進行安全驗證。伺服器收到請求之後,先在該伺服器上你的主目錄下尋找你的公鑰,然後把它和你發送過來的公鑰進行比較。如果兩個密鑰一致,伺服器就用公鑰加密「質詢」(challenge)並把它發送給客戶端軟體。客戶端軟體收到「質詢」之後就可以用你的私鑰在本地解密再把它發送給伺服器完成登錄。與第一種級別相比,第二種級別不僅加密所有傳輸的數據,也不需要在網路上傳送口令,因此安全性更高,可以有效防止中間人攻擊。

SSH分為客戶端 openssh-client 和伺服器 openssh-server,可以利用以下命令確認電腦上是否安裝了客戶端和伺服器。

如果只是想遠程登陸別的機器只需要安裝客戶端(Ubuntu默認安裝了客戶端),如果要開放本機的SSH服務就需要安裝伺服器。

首先確認ssh-server是否已經啟動了

如圖,sshd 表示ssh-server已經啟動了。如果沒有啟動,可以使用如下命令啟動:

停止和重啟ssh服務的命令如下:

接下來就可以進行使用客戶機遠程登錄伺服器了~

口令登錄非常簡單,只需要一條命令,命令格式為: **ssh 客戶端用戶名@伺服器ip地址 **eg:

如果需要 調用圖形界面程序 可以使用 -X 選項

如果客戶機的用戶名和伺服器的 用戶名相同 ,登錄時 可以省略 用戶名。

還要說明的是,SSH服務的 默認埠是22 ,也就是說,如果你不設置埠的話登錄請求會自動送到遠程主機的22埠。我們可以使用** -p 選項來修改埠號**,比如連接到伺服器的1234埠:

客戶機必須要知道伺服器的 ip地址 。可以在伺服器端電腦上利用** ifconfig** 命令查看該機的ip地址:

如果是第一次登錄遠程主機,系統會給出下面提示:

意思是,該遠程主機的真實性無法確定,其公鑰指紋為 SHA256:s8pZiuKQr7k7f+57j22lk/IdWC8143VQKR+EabeP5,確定想要繼續連接嗎?

輸入yes 即可。這時系統會提示遠程主機被添加到已知主機列表。

然後會要求我們輸入 遠程主機的密碼 ,輸入的密碼正確就可以成功登錄了。命令提示符會修改為遠程主機的提示符,現在開始,終端中輸入的命令都將在伺服器中執行。

我們可以通過** Ctrl+D** 或者 exit 命令 退出遠程登錄

每次登錄遠程主機都需要輸入密碼是很不方便的,如果想要省去這一步驟,可以利用密鑰對進行連接,還可以提高安全性。

1、在本機生成密鑰對

使用ssh-keygen命令生成密鑰對:

ssh-keygen -t rsa #-t表示類型選項,這里採用rsa加密演算法
然後根據提示一步步的按enter鍵即可(其中有一個提示是要求設置私鑰口令passphrase,不設置則為空,這里看心情吧,如果不放心私鑰的安全可以設置一下),執行結束以後會在 /home/當前用戶 目錄下生成一個 .ssh 文件夾,其中包含私鑰文件 id_rsa 和公鑰文件 id_rsa.pub。

2、將公鑰復制到遠程主機中

使用ssh--id命令將公鑰復制到遠程主機。ssh--id會將公鑰寫到遠程主機的 ~/ .ssh/authorized_key 文件中

ssh--id [email protected]
經過以上兩個步驟,以後再登錄這個遠程主機就不用再輸入密碼了。

1)已獲取登錄實例的管理員帳號及密碼(或密鑰)。
2)雲伺服器實例已開通22號埠。

—使用密碼登錄

Host Name(or IP address) :伺服器的IP地址;
Port :伺服器的埠,必須設置為22;
Connect type :選擇 「SSH」;
Saved Sessions :填寫會話名稱,例如 test。 配置 「Host Name」 後,再配置 「Saved Sessions」 並保存,則後續使用時您可直接雙擊 「Saved Sessions」 下保存的會話名稱即可登錄伺服器;

登錄完成後,命令提示符左側將顯示當前登錄雲伺服器的信息。

—使用密鑰登錄

Ps: 當不存在私鑰文件時,可以選擇Conversions > Import key 導入公鑰(.pem)文件來生成私鑰文件(.ppk)

Host Name (IP address) :伺服器的IP;
Port :伺服器的埠,必須填 22;
Connect type :選擇 「SSH」;
Saved Sessions :填寫會話名稱,例如 test。 配置 「Host Name」 後,再配置 「Saved Sessions」 並保存,則後續使用時您可直接雙擊 「Saved Sessions」 下保存的會話名稱即可登錄伺服器;

登錄完成後,命令提示符左側將顯示當前登錄伺服器的信息。

5. 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進行資料庫操作的封裝,這種新的開發模式讓我們的開發更加方便、快捷、思路清晰!

6. SSH的工作原理

傳統的網路服務程序,比如 FTP , POP , Telnet ,本質上都是不安全的,因為它們在網路上用明文傳送數據、用戶賬號和用戶口令,很容易受到 中間人 攻擊方式的攻擊,攻擊者會冒充真正的伺服器接收用戶傳給伺服器的數據,然後再冒充用戶把數據傳給真正的伺服器。

為了滿足安全性的需求, IETF 的網路工作小組制定了 Secure Shell (縮寫為 SSH ),這是一項創建在 應用層 和 傳輸層 基礎上的安全協議,為計算機上的 Shell 提供安全的傳輸和使用環境。

SSH 是目前較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄漏問題。通過 SSH 可以對所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。

本文將會重點討論 SSH 中用到的加密演算法和建立安全連接的過程。

為了保證信息傳輸的安全性, SSH 使用了對稱加密、非對稱加密和散列等技術。

對稱密鑰加密又稱為對稱加密、私鑰加密、共享密鑰加密,是密碼學中一類加密演算法。這類演算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。

SSH 使用對稱密鑰加密整個連接過程中傳輸的信息。值得注意的是,用戶自己創建的public/private密鑰對僅僅用於驗證,不會用在加密連接上。對稱加密允許對密碼進行身份驗證,以防止第三方窺探。

共享密鑰通過密鑰交換演算法生成,它可以讓雙方在完全沒有對方任何預先信息的條件下通過不安全信道創建起一個密鑰。客戶端和服務端都參與了這個過程,過程的細節將在後面闡述。

生成的密鑰將用來加密這次會話過程中客戶端和服務端傳輸的數據。這個過程會在驗證客戶身份之前完成。

SSH 支持多種對稱密鑰演算法,包括AES,Blowfish,3DES,CAST128和Arcfour。客戶端和服務端可以配置採用演算法的列表。客戶端列表中第一個能被服務端支持的演算法將被採用。

比如在Ubuntu 14.04上,客戶端和服務端默認的配置如下: aes128-ctr , aes192-ctr , aes256-ctr , arcfour256 , arcfour128 , [email protected] , [email protected] , [email protected] , aes128-cbc , blowfish-cbc , cast128-cbc , aes192-cbc , aes256-cbc , arcfour 。
也就是說,如果兩台Ubuntu 14.04採用默認配置,它們總是會採用 aes128-ctr 演算法來加密連接。

在非對稱加密方法中,需要一對密鑰,一個是私鑰,一個是公鑰。這兩個密鑰數學相關。用公鑰加密後所得的信息,只能用私鑰才能解密。如果知道了其中一個,並不能計算另外一個。因此,如果公開了一對密鑰中的一個,並不會危害到另外一個的秘密性質。

SSH 在一些地方使用了非對稱加密。

在密鑰交換過程中使用到了非對稱加密。在這個階段,客戶端和服務端生成臨時密鑰對,並且交換公鑰來生成共享密鑰。

在身份驗證的過程中也使用了非對稱加密。 SSH 密鑰對用來向服務端驗證客戶端身份。客戶端創建一對密鑰,然後將公鑰上傳到遠程伺服器上,寫入文件 ~/.ssh/authorized_keys 。

在創建共享密鑰後,客戶端必須向服務端證明身份。服務端會使用文件中的公鑰加密一段信息,並將加密後的信息發送給客戶端。如果客戶端可以能夠破解這段信息,那麼就能夠證明自己擁有相關的私鑰。之後服務端會為客戶端設置shell環境。

散列是電腦科學中一種對資料的處理方法,它通過某種特定的演算法將要檢索的項與涌來檢索的索引關聯起來,生成一種便於搜索的數據結構(散列表)。它也常用做一種資訊安全的方法,由一串資料中經過散列演算法計算出來的資料指紋,來識別檔案和資料是否有被篡改。

SSH 主要使用了散列消息認證碼(Keyed-hash message authentication code,縮寫為HMAC),來確認消息沒有被篡改。

上面提到的對稱加密協商過程中,會使用消息認證碼(MAC)演算法。這個演算法會從客戶端支持的演算法中選出。

在密鑰協商完成後,所有的消息都必須攜帶MAC,用於通信雙方驗證消息的一致性。MAC值由共享密鑰,消息的分組序列和實際消息內容計算得到。

在對稱加密區域之外,MAC本身作為分組的最後部分被發送。研究者通常建議先機密數據,然後計算MAC

SSH 協議採用客戶端-服務端模型對兩方進行身份驗證,並對它們之間的數據進行加密。

服務端在指定埠監聽連接請求。它負責協商安全連接,認證連接方,並為客戶端生成正確的shell環境。

客戶端負責協商安全連接,驗證伺服器的身份是否與以前記錄的信息相匹配,並提供憑證進行身份驗證。

SSH會話分為兩個階段。第一個是同意和建立加密來保護未來的溝通。第二個階段是對用戶進行身份驗證,並發現是否應該授予對伺服器的訪問許可權。

當客戶端發起請求後,服務端返回支持的協議版本。如果客戶端可以匹配其中一個協議版本,則連接繼續。服務端會提供它的公共主機密鑰,客戶端可以用這個密鑰來驗證服務端是否合法。

此時,通信雙方採用迪菲-赫爾曼演算法來協商會話密鑰。

該演算法的大致過程如下:

用於其餘連接的共享密鑰加密被稱為二進制數據包協議。上述過程允許雙方平等地參與生成共享密鑰。

生成的密鑰是對稱密鑰,這意味著用於加密消息的密鑰也可以用於解密。其目的是將後面的通信包裝在不能被外部人員解密的加密隧道中。

在生成會話密鑰後,就開始進行用戶身份驗證。

根據伺服器接受的方式,有幾種不同的方法可用於身份驗證。

最簡單的方法是密碼驗證,其中伺服器要求客戶端輸入嘗試登陸賬號的密碼。密碼是通過協商加密發送的。

雖然密碼被加密,但由於密碼的復雜性受到限制,因此通常不建議使用此方法。與其他身份驗證的方法相比,自動腳本相對容易攻破正常長度的密碼。

最為推薦的選擇是使用SSH密鑰對。SSH密鑰對是非對稱密鑰。

公鑰用於加密只能用私鑰解密的數據。公鑰可以自由共享,因為沒有從公鑰中導出私鑰的方法。

驗證流程如下:

可以看到,密鑰的不對稱性允許服務端使用公鑰加密消息給客戶端。然後,客戶端可以通過正確解密消息來證明它擁有私鑰。

筆者本科專業是信息安全,不過畢業後並沒有從事安全行業,工作4年課堂上學習的知識基本忘的差不多了。
而SSH算是工作中最常用到的東西之一,其工作原理涉及不少密碼學的東西。
寫這篇博文,一是希望能幫助讀者了解SSH,二也是希望自己能撿起一些專業知識。在互聯網/軟體相關行業里,不論是否從事安全工作,了解這些東西都是很有必要的。

7. ssh是一個什麼軟體,做什麼用的。聽說能通過它連接linux,有沒有相關的解釋還有ssh和ftp有啥關系

ssh是linux系統自帶的軟體,它可以和telnet,ftp等應用層協議結合使用,是網路上傳輸的數據不再是明文了。
ftp的命令,等你登陸了ftp伺服器,打help命令,就會顯示所有的命令
主要用get下載文件,mget下載文件夾,put上傳文件,mput上傳文件夾,dir顯示現在文件夾里的文件,bye斷開,cd進入,.當前目錄,..上一路徑,這些命令就足夠用了

8. 【Linux】SSH 使用密碼/公鑰遠程登錄總結

本文是筆者查閱網上資料做的總結,關於SSH原理,什麼是對稱加密和非對稱加密,本文不過多介紹。這里介紹一下SHH的工作過程、配製方法,可能出現的問題及解決方法。
說明:本文中涉及的例子,SSH客戶端為:本地主機A,SSH伺服器為:伺服器B

SSH協議採用C-S(客戶端-伺服器端)架構進行雙方的身份驗證以及數據的加密。
伺服器端組件監聽指定的埠,負責安全連接的建立、對連接方的身份認證、以及為通過身份認證的用戶建立正確的環境。
客戶端負責發起最初的TCP握手、安全連接的建立、驗證伺服器的身份與之前記錄中的一致、並將自己的驗證信息提供給伺服器。
一個SSH會話的建立過程分為兩個階段。第一階段,雙方溝通並同意建立一個加密連接通道以供後續信息傳輸用。第二階段,對請求接入的用戶進行身份驗證以確定伺服器端是否要給該用戶開放訪問許可權。

當客戶端發起TCP連接時,伺服器端返回信息說明自己支持的協議版本,如果客戶端上支持的協議與之匹配,則連接繼續。伺服器會提供自己的公共主機密鑰(public host key)以讓客戶端確認自己訪問的是正確的機器。

然後,雙方採用一種Diffie-Hellman演算法共同為該會話建立密鑰。每一方的一部分私有數據,加上來自對方的一部分公共數據,通過這種演算法計算,能夠得出完全相同的密鑰用於本次會話。

整個會話的通訊內容都使用該密鑰進行加密。這個階段使用的公鑰/私鑰對與用戶驗證身份用的SSH密鑰是完全無關的。

經典Diffie-Hellman演算法的計算步驟如下:

這個共享密鑰的加密方式被稱為二進制數據包協議(binary packet protocol)。該過程能夠讓雙方平等的參與密鑰生成的過程,而不是由單方掌握。這種共享密鑰生成的過程是安全的,雙方沒有交換過任何未經加密的信息。

生成的密鑰是對稱式密鑰,一方用於加密信息的密鑰等同於另一方用於解密信息的密鑰,而任何第三方由於不持有該密鑰,是無法解密雙方傳遞的內容的。

會話加密通道建立後,SSH開始進入用戶認證階段。

下一步,伺服器驗證用戶身份以決定是否准許其訪問。驗證有不同的方式,選擇的驗證方式取決於伺服器的支持。

最簡單的驗證是密碼驗證:伺服器要求客戶端輸入密碼,客戶端輸入的密碼經過上述的通道加密傳輸給伺服器。

雖然密碼是加密過的,然而該方法仍然不被推薦,因為用戶經常為了省事而使用過於簡單的密碼,而這類密碼很容易就能夠被自動化腳本破解。

最流行的驗證方式是SSH密鑰對,這也是當前最推薦的方式。SSH密鑰對是非對稱密鑰,私鑰和公鑰分別用於不同的功能。

公鑰用於加密,而私鑰用於解密。公鑰可以隨意上傳、共享,因為公鑰的流通並不會危及到私鑰的保密性。

SSH密鑰對的驗證過程起始於上一部分加密通道建立之後,其具體執行步驟如下:

簡單來說,伺服器端用公鑰加密信息,客戶端用私鑰解密信息以證明自己持有私鑰。該過程同時使用了對稱加密和非對稱加密,兩種方式各有自己的功用。

命令如下:

用戶名:為要登錄的伺服器B中已存在的用戶賬戶名
IP地址:為伺服器B的IP地址
-p 埠號:用來指定埠號,默認為22

第一次登錄時,會提示如下提示:

大概意思是說,你正在訪問的主機不能驗證它的真實性,它的RSA key(當前訪問主機的公鑰)指紋是怎樣的,你確定要繼續連接嗎?
輸入yes繼續,會提示,已永久把當前訪問主機的RSA key添加到了已知主機文件(用戶目錄下,.ssh 文件夾中的knwon_hosts文件)中。之後再次 SSH 登錄就不再有該提示了。
接著,輸入登錄賬戶的密碼即可。

SSH 密碼登錄,需要伺服器開啟密碼驗證許可權,編輯伺服器SSH配置命令如下:

在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,將前面的#號去掉,保存退出。

公鑰登錄,即免密碼登錄。避免的每次登錄都要輸入的麻煩,也防止了中間人攻擊。是SSH遠程登錄最常用的登錄方式。

提示輸入密鑰對名稱,直接回車,使用默認名稱即可;
提示輸入密碼(使用私鑰時,要輸入密碼),直接回車,不使用密碼即可。

首先,登錄伺服器B,在進行下面的操作。

找到 #PubkeyAuthentication yes,刪除 #號,保存退出。

重啟 ssh 服務

也可指定驗證私鑰:

本地主機A,生成密鑰對後:

sudo vim /etc/selinux/config

9. ssh使用詳解

簡單來說,ssh是一種 網路協議 ,用於計算機之間的加密登錄。如果一個用戶從本地計算機,使用ssh協議登錄另一台遠程計算機,我們就可以認為,這種登錄是安全的,即使被中途截獲,密碼也不會泄露。

SSH 之所以安全是採用了公鑰加密的方式,通過客戶自己簽發公鑰加密用戶密碼,再通過主機持有的私鑰解密;不像 HTTPS 協議存在證書管理中心CA用於驗證公鑰的合法性,因此,存在被中間人劫持的風險,即劫持登錄請求發送篡改的公鑰來截獲用戶登錄密碼,俗稱」中間人攻擊「;

不過 SSH 存在一套自有的驗證方式:口令驗證及密鑰驗證,可有效避免大部分的攻擊;

使用上述命令測試連接性及驗證流程;

通過 ssh-keygen 工具生成本地公鑰文件,常用命令如下:

在 $HOME/.ssh/ 目錄下,會新生成兩個文件: id_rsa.pub 和 id_rsa 。 id_rsa.pub 是公鑰, id_rsa 是私鑰,其中 id_rsa 為默認文件名稱,若如上圖指定了文件路徑及名稱,則按照指定路徑及文件名生成;

說明:若 ssh 登錄使用密鑰驗證方式登錄,則需要輸入私鑰的密碼(生成密鑰時指定的密碼),若使用 ssh-agent 代理,則在同一個 session 會話下,只需要輸入一次私鑰密碼即可,由 ssh-agent 幫我們代理,避免每次登錄都需要輸入私密碼;

若登錄時未開啟,可手動開啟 ssh-agent ,可通過如下命令:

添加生成的 SSH key 到 ssh-agent :

查看添加的 SSH key :

若需要免密登錄,則需要將用戶的 public key 文件內存追加復制到登錄主機的 authorized_keys 配置文件中(默認路徑為 ~/.ssh/authorized_keys ),或者直接通過 ssh--id 工具完成,具體如下:

使用上述命令後即可實現 免密登錄

ssh 配置包括系統級別的(針對客戶端的默認為 /etc/ssh/ssh_config ,針對服務端的``/etc/ssh/sshd_config )及用戶級別的配置文件(默認為 ~/.ssh/config`);且配置文件存在優先順序,低優先順序的配置項可視作默認值;而高優先順序的配置項則會覆蓋默認值。按優先順序,有如下排序:

/etc/ssh/config 配置文件選項如下:

/etc/ssh/sshd_config 配置文件選項如下:

常用的選項如下:

ssh -T [email protected] 驗證連接性,成功如下:

ssh配置文件詳解

git-ssh 配置和使用

ssh-keygen - Generate a New SSH Key

最佳搭檔:利用 SSH 及其配置文件節省你的生命

10. 什麼是SSH

http://ke..com/view/16184.htm
什麼是SSH?

SSH的英文全稱是Secure Shell Protocol,安全外殼協議。

通過使用SSH,你可以把所有傳輸的數據進行加密,這樣」中間人」這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的」通道」。SSH客戶端與伺服器端通訊時,用戶名及口令均進行了加密,有效防止了對口令的竊聽。最初SSH是由芬蘭的一家公司開發的。但是因為受版權和加密演算法的限制,現在很多人都轉而使用OpenSSH。OpenSSH是SSH的替代軟體,而且是免費的,可以預計將來會有越來越多的人使用它而不是SSH。SSH是由客戶端和服務端的軟體組成的。SSH安裝容易、使用簡單,而且比較常見,一般的Unix系統、Linux系統、FreeBSD系統都附帶有支持SSH的應用程序包。

閱讀全文

與ssh代理加密上網原理相關的資料

熱點內容
把pdf導入iphone 瀏覽:504
米哈游租賃的雲伺服器是哪個 瀏覽:522
android直接打電話 瀏覽:1015
ubuntu停止命令 瀏覽:283
cnc攻絲編程 瀏覽:868
換個手機號碼app怎麼注冊 瀏覽:319
怎麼下載小猴口算app 瀏覽:115
輕鏈app的貨怎麼樣 瀏覽:625
電腦里的u盤如何加密 瀏覽:370
我的世界全部版本伺服器下載地址 瀏覽:49
交換原理pdf 瀏覽:228
菜鳥驛站app怎麼邀請新人 瀏覽:447
電腦里總是有一些1k的文件夾 瀏覽:44
drm加密絕對安全 瀏覽:512
android滅屏流程 瀏覽:496
如何更改站點文件夾名字 瀏覽:896
如何看伺服器幾核 瀏覽:276
找酒吧設計公司用什麼app 瀏覽:683
基本初等函數的導數公式及導數的運演算法則 瀏覽:917
為什麼小米app啟動廣告關不了 瀏覽:879