欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點晴永久免費OA]身份認(rèn)證的盡頭竟然是無密碼?

freeflydom
2024年4月7日 17:21 本文熱度 986

概述

幾乎所有的系統(tǒng)都會面臨安全認(rèn)證相關(guān)的問題,但是安全相關(guān)的問題是一個很麻煩的事情。因為它不產(chǎn)生直接的業(yè)務(wù)價值,而且處理起來復(fù)雜繁瑣,所以很多時都容易被忽視。很多后期造成重大的安全隱患,往往都是前期的不重視造成的。但慶幸的是安全問題是普遍存在的,而且大家面臨的問題幾乎相同,所以可以制定行業(yè)標(biāo)準(zhǔn)來規(guī)范處理,甚至是可以抽出專門的基礎(chǔ)設(shè)施(例如:AD、LDAP 等)來專門解決這類共性的問題。總之,關(guān)于安全問題非常復(fù)雜而且麻煩,對于大多數(shù) 99% 的系統(tǒng)來說,不要想著在安全問題領(lǐng)域上搞發(fā)明和創(chuàng)新,容易踩坑。而且行業(yè)的標(biāo)準(zhǔn)解決方案已經(jīng)非常成熟了。經(jīng)過長時間的檢驗。所以在安全領(lǐng)域,踏踏實實的遵循規(guī)范和標(biāo)準(zhǔn)就是最好的安全設(shè)計。

HTTP 認(rèn)證

HTTP 認(rèn)證協(xié)議的最初是在 HTTP/1.1標(biāo)準(zhǔn)中定義的,后續(xù)由 IETF 在 RFC 7235 中進(jìn)行完善。HTTP 協(xié)議的主要涉及兩種的認(rèn)證機制。

基本認(rèn)證

常見的叫法是 HTTP Basic,是一種對于安全性不高,以演示為目的的簡單的認(rèn)證機制(例如你家路由器的登錄界面),客戶端用戶名和密碼進(jìn)行 Base64 編碼(注意是編碼,不是加密)后,放入 HTTP 請求的頭中。服務(wù)器在接收到請求后,解碼這個字段來驗證用戶的身份。示例:

GET /some-protected-resource HTTP/1.1
Host: example.com
Authorization: Basic dXNlcjpwYXNzd29yZA==


雖然這種方式簡單,但并不安全,因為 base64 編碼很容易被解碼。建議僅在 HTTPS 協(xié)議下使用,以確保安全性。

摘要認(rèn)證

主要是為了解決 HTTP Basic 的安全問題,但是相對也更復(fù)雜一些,摘要認(rèn)證使用 MD5 哈希函數(shù)對用戶的密碼進(jìn)行加密,并結(jié)合一些鹽值(可選)生成一個摘要值,然后將這個值放入請求頭中。即使在傳輸過程中被截獲,攻擊者也無法直接從摘要中還原出用戶的密碼。示例:

GET /dir/index.html HTTP/1.1
Host: example.com
Authorization: Digest username="user", realm="example.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", uri="/dir/index.html", qop=auth, nc=00000001, cnonce="0a4f113b", response="6629fae49393a05397450978507c4ef1", opaque="5ccc069c403ebaf9f0171e9517f40e41"

補充:另在 RFC 7235 規(guī)范中還定義當(dāng)用戶沒有認(rèn)證訪問服務(wù)資源時應(yīng)返回 401 Unauthorized 狀態(tài)碼,示例:

HTTP/1.1 401 Unauthorized

WWW-Authenticate: Basic realm="Restricted Area"

這一規(guī)范目前應(yīng)用在所有的身份認(rèn)證流程中,并且沿用至今。

Web 認(rèn)證

表單認(rèn)證

雖然 HTTP 有標(biāo)準(zhǔn)的認(rèn)證協(xié)議,但目前實際場景中大多應(yīng)用都還是基于表單認(rèn)證實現(xiàn),具體步驟是:

  1. 前端通過表單收集用戶的賬號和密碼

  2. 通過協(xié)商的方式發(fā)送服務(wù)端進(jìn)行驗證的方式。

常見的表單認(rèn)證頁面通常如下:

<!DOCTYPE html>

<html>

<head>

    <title>Login Page</title>

</head>

<body>

    <h2>Login Form</h2>

    <form action="/perform_login" method="post">

        <div class="container">

            <label for="username"><b>Username</b></label>

            <input type="text" placeholder="Enter Username" name="username" required>

            

            <label for="password"><b>Password</b></label>

            <input type="password" placeholder="Enter Password" name="password" required>

            

            <button type="submit">Login</button>

        </div>

    </form>

</body>

</html>

為什么表單認(rèn)證會成為主流 ?主要有以下幾點原因:

  • 界面美化:開發(fā)者可以創(chuàng)建定制化的登錄界面,可以與應(yīng)用的整體設(shè)計風(fēng)格保持一致。而 HTTP 認(rèn)證通常會彈出一個很丑的模態(tài)對話框讓用戶輸入憑證。

  • 靈活性:可以在表單里面自定義更多的邏輯和流程,比如多因素認(rèn)證、密碼重置、記住我功能等。這些功能對于提高應(yīng)用的安全性和便利性非常重要。

  • 安全性:表單認(rèn)證可以更容易地結(jié)合現(xiàn)代的安全實踐,背后也有 OAuth 2 、Spring Security 等框架的主持。

表單認(rèn)證傳輸內(nèi)容和格式基本都是自定義本沒啥規(guī)范可言。但是在 2019 年之后 web 認(rèn)證開始發(fā)布標(biāo)準(zhǔn)的認(rèn)證協(xié)議。

WebAuthn

WebAuthn 是一種徹底拋棄傳統(tǒng)密碼的認(rèn)證,完全基于生物識別技術(shù)和實體密鑰作為身份識別的憑證(有興趣的小伙伴可以在 github 開啟 Webauhtn 的 2FA 認(rèn)證體驗一下)。在 2019 年 3 月,W3C 正式發(fā)布了 WebAuthn 的第一版規(guī)范。

相比于傳統(tǒng)的密碼,WebAuthn 具有以下優(yōu)勢:

  1. 減少密碼泄露:傳統(tǒng)的用戶名和密碼登錄容易受到釣魚攻擊和數(shù)據(jù)泄露的影響。WebAuthn,不依賴于密碼,不存在密碼丟失風(fēng)險。

  2. 提高用戶體驗:用戶不需要記住復(fù)雜的密碼,通過使用生物識別等方式可以更快捷、更方便地登錄。

  3. 多因素認(rèn)證:WebAuthn 可以作為多因素認(rèn)證過程中的一部分,進(jìn)一步增強安全性。使用生物識別加上硬件密鑰的方式進(jìn)行認(rèn)證,比短信驗證碼更安全。

總的來說,WebAuthn 是未來的身份認(rèn)證方式,通過提供一個更安全、更方便的認(rèn)證方式,目的是替代傳統(tǒng)的基于密碼的登錄方法,從而解決了網(wǎng)絡(luò)安全中的一些長期問題。WebAuthn 目前已經(jīng)得到流程的瀏覽器廠商(Chrome、Firefox、Edge、Safari)、操作系統(tǒng)(WIndows、macOS、Linux)的廣泛支持。

實現(xiàn)效果

當(dāng)你的應(yīng)用接入 WebAuthn 后,用戶便可以通過生物識別設(shè)備進(jìn)行認(rèn)證,效果如下:

實現(xiàn)原理

WebAuthn 實現(xiàn)較為復(fù)雜,這里不做詳細(xì)描述,具體可參看權(quán)威的官方文檔,大概交互過程可以參考以下時序圖:

登錄流程大致可以分為以下步驟:

  1. 用戶訪問登錄頁面,填入用戶名后即可點擊登錄按鈕。

  2. 服務(wù)器返回隨機字符串 Challenge、用戶 UserID。

  3. 瀏覽器將 Challenge 和 UserID 轉(zhuǎn)發(fā)給驗證器。

  4. 驗證器提示用戶進(jìn)行認(rèn)證操作。

  5. 服務(wù)端接收到瀏覽器轉(zhuǎn)發(fā)來的被私鑰加密的 Challenge,以此前注冊時存儲的公鑰進(jìn)行解密,如果解密成功則宣告登錄成功。

WebAuthn 采用非對稱加密的公鑰、私鑰替代傳統(tǒng)的密碼,這是非常理想的認(rèn)證方案,私鑰是保密的,只有驗證器需要知道它,連用戶本人都不需要知道,也就沒有人為泄漏的可能;

備注:你可以通過訪問 webauthn.me 了解到更多消息的信息

因為公眾號文章不適合加入過多的演示代碼,想要手上體驗的可以參考 okta 官方給出基于 Java 17 和 Maven 構(gòu)建的 webauthn 示例程序,如下:

轉(zhuǎn)自博客園,作者肖衛(wèi)衛(wèi) https://www.cnblogs.com/xiao2shiqi/p/18118300


該文章在 2024/4/8 11:36:58 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved