mangos(二)認證登入基本流程

2021-07-06 08:40:21 字數 1167 閱讀 5511

舉個簡單的例子就很清楚了,就好象例子中的任何人都知道用錢幣(公鑰)鎖上存物箱,但仍然打不開存物箱。只有擁有鑰匙或寫有號碼的紙條(私鑰)的人才能開啟存物箱。

上面的例子還有點問題,實際中私匙一般只有通訊的解密方才知道,加密的人都不知道。

在舉個例子:

(2^3) mod 11 =8

(8^7) mod 11= 2

在這裡2是明文8是密文。

加密金鑰是3解密鑰匙是7,加密和減密鑰匙不一樣。

這裡2可以是使用者密碼,3為公鑰,7是伺服器端的保留的私鑰(十分重要)。 這樣

假設是a,和b

只要滿足(a*b+1) mod 11 =0 就可以了。

這是簡單的例子。如果把11變的很大。

知道b是算不出a來的。

簡單說,就是這個道理

公匙的應用不僅僅是加密,還可以是簽名。需要簽名的人先把自己個公司告訴別人,發資訊的時候用自己的私匙加密(別人不知道,否則可以用你的名義發各種訊息)。這條資訊就有了你自己的「簽名」。因為只有你的公匙能夠解密該私匙,而你的公匙早就公布過了。

相對於對稱加密,不對稱加密往往需要運算量大。

srp演算法

登入驗證使用了這演算法,secure remote password(安全遠端密碼),它是乙個開放源**認證協議。這個演算法比較複雜,有點類似於公匙,伺服器傳送給客戶端幾個引數,有公匙,還有隨機數(這個特別重要),和其他引數。有了隨機數那麼字典破解的方法難度就幾何級別增長了。客戶端根據傳送過來的一堆引數,和自己傳送的明文,運算出乙個值,傳送給伺服器,伺服器根據私匙,自己發的隨機數和一些亂起八糟的引數和資料庫中已經儲存的明文(或明文的等價),也計算乙個值,比較是否相等。如果相等就算驗證成功。同時運算過程中雙發都產生乙個相等的值k。這個k後來用作認證後的對稱加密。

大致看了下基本流程,分配了專門的認證登入伺服器,登入伺服器使用公鑰演算法驗證client的合法性,計算sessionkey並儲存在mysql裡,以備後面的邏輯伺服器使用。驗證通過後,把邏輯伺服器列表發給client。然後client請求特定的邏輯伺服器,伺服器傳送訊息再次請求身份認證使用對稱加密,計算sha1值。(帶著乙個隨機數,乙個第一次生成的sessionk,還一些其他演算法引數)注意這裡計算sha1加密結果沒有直接使用明文的密碼,而是用了上一次公匙驗證過程中生成的乙個k。然後後面的通訊都是使用k進行對稱加密通訊。

**裡主要都是加密的邏輯運算就沒有在分析。

HTTP協議 二 基本認證

閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...

HTTP協議 二 基本認證

閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...

HTTP協議 二 基本認證

閱讀目錄 什麼是http基本認證 http基本認證的過程 http基本認證的優點 每次都要進行認證 http基本認證和https一起使用就很安全 http oauth認證 其他認證 客戶端的使用 桌面應用程式也通過http協議跟web伺服器互動,桌面應用程式一般不會使用cookie,而是把 使用者名...