1. Trang chủ
  2. » Tất cả

Tìm hiểu cơ chế xác thực người dùng

40 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THÔNG - - TIỂU LUẬN MÔN HỌC AN NINH MẠNG THƠNG TIN ĐỀ TÀI: TÌM HIỂU CƠ CHẾ XÁC THỰC NGƯỜI DÙNG Bài thi cuối kỳ mơn An Ninh Mạng MỤC LỤC BẢNG PHÂN CƠNG CÔNG VIỆC BẢNG THUẬT NGỮ PHỤ LỤC HÌNH ẢNH LỜI NÓI ĐẦU PHẦN I: TỔNG QUAN PHẦN II: NGUYÊN LÝ XÁC THỰC NGƯỜI DÙNG .8 PHẦN III: CÁC PHƯƠNG PHÁP XÁC THỰC NGƯỜI DÙNG 10 Xác thực dựa mật .10 Xác thực dựa MFA (Multi-Factor Authentication) 13 Xác thực dựa sinh trắc học 15 3.1 Xác thực dựa vân tay 15 3.2 Xác thực dựa khôn mặt 15 3.3 Xác thực dựa giọng nói 16 3.4 Xác thực dựa quét mống mắt .17 Xác thực dựa mã thông báo 18 Xác thực dựa chứng .20 PHẦN IV: LỖ HỔNG XÁC THỰC NGƯỜI DÙNG .21 PHẦN V: DEMO ỨNG DỤNG XÁC THỰC NGƯỜI DÙNG 22 Ứng dụng xác thực dựa MFA (Multi-Factor Authentication) 22 Ứng dụng xác thực dựa thông báo (JWT) 28 KẾT LUẬN 40 TÀI LIỆU THAM KHẢO 40 Bài thi cuối kỳ môn An Ninh Mạng BẢNG PHÂN CƠNG CƠNG VIỆC Họ tên Vũ Việt Hồng – B17DCVT152 Nhiệm vụ Tìm tài liệu 3.2, 3.4 + Ứng dụng demo MFA & JWT Đỗ Hồng Thái – B17DCVT321 Tìm tài liệu 3.1, 3.5 + + Word + Ứng dụng demo JWT Mai Ngọc Sơn – B17DCVT305 Tìm tài liệu 1, 2, 3.1, 3.3 + Ứng dụng demo JWT Bài thi cuối kỳ môn An Ninh Mạng BẢNG THUẬT NGỮ API Application Programming Giao diện lập trình ứng Interface dụng ATM Automated Teller Machine Máy rút tiền tự động FIDO Fast IDentity Online Nhận dạng nhanh trực tuyến GPS Global Positioning System Hệ thống định vị toàn cầu HOTP HMAC-Based One-Time Mật sử dụng lần HTTP Password dựa HMAC HyperText Transfer Giao thức truyền siêu văn Protocol HTTPS HyperText Transfer Giao thức truyền siêu văn Protocol Secure an toàn ID Identification Nhận biết IoT Internet of Things internet vạn vật JWT JSON Web Token MFA Multi-factor Xác thực nhiều yếu tố Authentication MAC Media Access Control Kiểm soát truy cập phương tiện MIME Multi-Factor Xác thực đa yếu tố Authentication OTP One Time Password PIN Personal Mật lần Identification Số nhận dạng cá nhân Number Bài thi cuối kỳ môn An Ninh Mạng RSA Rivest-Shamir-Adleman Rivest-Shamir- Adleman SSO Single Sign-on Dấu hiệu SMS Short Message Services Dịch vụ tin nhắn ngắn SMTP Simple Mail Transfer Giao thức chuyển thư đơn Protocol TOTP Time-Based giản One-Time Mật dùng lần dựa Password UAF thời gian Universal Authentication Khung xác thực toàn cầu Framework VPN Virtual Private Network Mạng riêng ảo PHỤ LỤC HÌNH ẢNH Hình Dấu vân tay thu máy quét quang học Trang 16 phù hợp hai dấu vân tay với đặc điểm vi mô phát Hình Nhận dạng hình học khn mặt nhận dạng biểu đồ Trang 17 nhiệt khuôn mặt Hình Mơ hình xác thực dựa mã thơng báo (JWT) Trang 20 Bài thi cuối kỳ môn An Ninh Mạng LỜI NĨI ĐẦU Trong thị trường tồn cầu đầy cạnh tranh ngày nay, bảo mật thương lượng Cùng với Giải pháp Xác minh chúng tơi, bạn theo dõi tài liệu mật bạn suốt vòng đời chúng, nhanh chóng phát rị rỉ để tìm bên chịu trách nhiệm Cùng với quyền kiểm soát bảo mật tồn diện, bạn giảm thiểu nguy để lộ thông tin nhạy cảm giữ vững danh tiếng bạn tổ chức đáng tin cậy Trong thời đại cơng nghệ số hóa, khó để giữ an tồn cho tài liệu mang tính bảo mật Khảo sát gần cho thấy 75% tổ chức hỏi bày tỏ mối quan tâm lớn nguy rò rỉ liệu, 84% khơng tự tin vào việc kiểm sốt liệu bảo mật họ Đảm bảo tính bảo mật cho liệu nhiệm vụ bất khả thi Thậm chí người dùng ủy quyền gây lỗi để tài liệu nhạy cảm chỗ máy in Nếu thơng tin sai truyền đi, gây tổn hại danh tiếng cơng ty bạn cuối hạn chế hội kinh doanh Do cần giải pháp giảm thiểu nguy rị rỉ thơng tin cách cung cấp trạng thái tài liệu, áp dụng việc xác thực người dùng đồng thời giám sát liên tục tất thiết bị, mạng lưới người dùng Với bảo mật cao hơn, bạn thực cam kết tin liệu mang tính nhạy cảm bảo mật cao bạn an tồn Vì cơng nghệ bảo mật xác thực người dùng ngày phát triển hoàn thiện với tính bảo mật cao đáp ứng yêu cầu cao người sử dụng Bài thi cuối kỳ môn An Ninh Mạng PHẦN I: TỔNG QUAN Xác thực người dùng xác minh danh tính người dùng cố gắng truy cập vào mạng tài ngun máy tính cách cho phép chuyển giao thơng tin xác thực từ người sang máy trình tương tác mạng để xác nhận tính xác thực người dùng Thuật ngữ trái ngược với xác thực máy , phương pháp xác thực tự động không yêu cầu đầu vào người dùng Xác thực giúp đảm bảo người dùng ủy quyền có quyền truy cập vào hệ thống cách ngăn người dùng trái phép truy cập có khả làm hỏng hệ thống, đánh cắp thông tin gây cố khác Hầu hết tất tương tác người với máy tính - ngoại trừ tài khoản khách tài khoản đăng nhập tự động - thực xác thực người dùng Nó cho phép truy cập mạng có dây không dây phép truy cập vào hệ thống tài nguyên nối mạng kết nối internet Một quy trình đơn giản, xác thực người dùng bao gồm ba nhiệm vụ: - Nhận biết: Người dùng phải chứng minh họ - Xác thực: Người dùng phải chứng minh họ mà họ nói - Ủy quyền: Người dùng phải chứng minh họ phép làm họ cố gắng làm Xác thực người dùng đơn giản yêu cầu người dùng nhập số nhận dạng nhất, chẳng hạn ID người dùng, với mật để truy cập hệ thống Tuy nhiên, phức tạp - ví dụ: yêu cầu người dùng cung cấp thông tin đối tượng vật lý mơi trường chí thực hành động, chẳng hạn đặt ngón tay lên đầu đọc dấu vân tay PHẦN II: NGUYÊN LÝ XÁC THỰC NGƯỜI DÙNG Xác thực người dùng xảy hầu hết tương tác người với máy tính bên tài khoản khách, tài khoản đăng nhập tự động hệ thống máy tính kiosk Bài thi cuối kỳ mơn An Ninh Mạng Nói chung, người dùng phải chọn tên người dùng ID người dùng cung cấp mật hợp lệ để bắt đầu sử dụng hệ thống Xác thực người dùng cho phép tương tác người với máy hệ điều hành ứng dụng, mạng có dây khơng dây phép truy cập vào hệ thống, ứng dụng tài nguyên nối mạng kết nối internet Nhiều công ty sử dụng xác thực để xác thực người dùng đăng nhập vào trang web họ Nếu khơng có biện pháp bảo mật phù hợp, liệu người dùng, chẳng hạn số thẻ tín dụng thẻ ghi nợ, số Căn cước cơng dân, lọt vào tay tội phạm mạng Các tổ chức sử dụng xác thực để kiểm sốt người dùng có quyền truy cập vào mạng tài nguyên công ty, để xác định kiểm sốt máy máy chủ có quyền truy cập Các công ty sử dụng xác thực phép nhân viên từ xa truy cập an toàn vào ứng dụng mạng họ Đối với doanh nghiệp tổ chức lớn khác, xác thực thực cách sử dụng hệ thống đăng nhập lần (SSO), hệ thống cấp quyền truy cập vào nhiều hệ thống với thông tin đăng nhập Trong q trình xác thực, thơng tin xác thực người dùng cung cấp so sánh với thông tin đăng nhập hồ sơ sở liệu thông tin người dùng ủy quyền hệ điều hành cục thông qua máy chủ xác thực Nếu thông tin xác thực khớp thực thể xác thực phép sử dụng tài nguyên, trình hoàn tất người dùng cấp quyền truy cập Các quyền thư mục trả xác định mơi trường mà người dùng nhìn thấy cách tương tác với nó, bao gồm số truy cập quyền khác dung lượng lưu trữ tài nguyên Theo truyền thống, xác thực thực hệ thống tài nguyên truy cập; ví dụ: máy chủ xác thực người dùng hệ thống mật riêng nó, triển khai cục bộ, sử dụng ID đăng nhập (tên người dùng) mật Kiến thức thông tin đăng nhập giả định để đảm bảo người dùng xác thực Mỗi người dùng đăng ký ban đầu (hoặc đăng ký người khác, chẳng hạn quản trị viên hệ thống), sử dụng mật định tự khai báo Trong lần sử dụng tiếp theo, người dùng phải biết sử dụng mật khai báo trước Bài thi cuối kỳ mơn An Ninh Mạng Tuy nhiên, giao thức ứng dụng web, HTTP HTTPS, khơng có trạng thái, có nghĩa xác thực nghiêm ngặt yêu cầu người dùng cuối xác thực lại họ truy cập tài nguyên HTTPS Thay tạo gánh nặng cho người dùng cuối với quy trình cho lần tương tác web, hệ thống bảo vệ thường dựa vào xác thực dựa mã thơng báo, xác thực thực lần bắt đầu phiên Hệ thống xác thực cấp mã thông báo xác thực ký cho ứng dụng người dùng cuối mã thơng báo thêm vào u cầu từ khách hàng Xác thực thực thể cho hệ thống quy trình thực cách sử dụng thông tin xác thực máy hoạt động giống ID mật người dùng, ngoại trừ thông tin xác thực thiết bị đề cập gửi tự động Họ sử dụng chứng kỹ thuật số cấp xác minh quan cấp chứng phần sở hạ tầng khóa cơng khai để xác thực danh tính trao đổi thơng tin qua internet PHẦN III: CÁC PHƯƠNG PHÁP XÁC THỰC NGƯỜI DÙNG Xác thực dựa mật Mật dùng lần chuỗi ký tự số chữ số tạo tự động để xác thực người dùng Mật hợp lệ cho phiên đăng nhập giao dịch thường sử dụng cho người dùng cho người dùng bị mật cấp mật dùng lần để đăng nhập đổi sang mật Khả xác thực mật lần Trình quản lý truy cập bảo mật cung cấp tính sau: - Tạo xác thực mật lần với hỗ trợ cho triển khai khác cung cấp - Gửi mật lần với việc triển khai dịch vụ email tin nhắn ngắn (SMS) - Tạo xác thực mật lần dựa thời gian, dựa đếm RSA mà không yêu cầu chế phân phối Các chế xác thực mật lần: 10 Bài thi cuối kỳ môn An Ninh Mạng Và postman Nhóm 14|N4 26 Bài thi cuối kỳ mơn An Ninh Mạng Mã verify Secret index.js Nhóm 14|N4 27 Bài thi cuối kỳ môn An Ninh Mạng Ứng dụng xác thực dựa thông báo (JWT) Cơ chế xác thực JWT • Người dùng nhập username password, sau hệ thống kiểm tra username có tồn password user hệ thống gửi cho client mã token (gọi access token), mã sử dụng khoảng thời gian định • Khi muốn truy cập để lấy data client phải gửi kèm theo mã truy cập đó, mã truy cập hợp lệ (đúng hệ thống tạo chưa hết hạn) server trả cho client thông tin mà client yêu cầu thêm data cho client vào database • Khi access token hết hạn, client phải nhập lại username password để server trả mã truy cập (điều có bất cập ta phải dùng chế refreshing access token) Phát sinh Access token refresh token Một access token refresh token (nó nói rõ phần dưới) sinh gọi thành cơng đến API (chẳng hạn /auth/login) trả cho client đồng thời lưu refresh token vào database (hoặc nơi đó) Một access token có thời gian tồn định, bạn cài đặt khoảng thời gian cho Cơ chế refreshing access token • Khi người dùng đăng nhập thành công, back-end gửi cho front-end access token refresh token, front-end lưu lại hai token nói (có thể cookie, local storage, ) • Giả sử thời gian tồn access token 10 phút sau phút 59 giây (nên hơn, khoảng tầm phút) front-end tự động gọi API gửi kèm theo access token hết hannj refresh token để lấy lại access token Một refresh token có thời gian tồn khơng Nếu khơng có thời gian tồn người dùng cần đăng nhập lần sử dụng app từ đời qua Nhóm 14|N4 28 Bài thi cuối kỳ mơn An Ninh Mạng đời khác mà không cần đăng nhập lại Hoặc có thời gian tồn nên để chút (khoảng 30, 45, ngày), sau khoảng thời gian bắt người dùng đăng nhập lại Project JWT • bcrypt: Mã hóa mật • lowdb: dùng file json để lưu data nên dùng package để query đata • jsonwebtoken: phát sinh, verify access token • rand-token: phát sinh chuỗi ngẫu nhiên nhất, dùng để phát sinh refresh token Cấu trúc Project | |_.env # Chứa biến môi trường |_src # API | |_auth # Các API xác thực người dùng | | |_auth.routes.js # Tầng router (Khai báo URL API) | | |_auth.controller.js # Xử lý nghiệp vụ cho API tương ứng | | |_auth.methods.js # Các phương thức local dành cho authentication | | |_auth.middlewares.js # Các middlewares local dành cho authentication | |_users # Các API user | |_users.routes.js # Tầng router (Khai báo URL API) | |_users.models.js # Các truy vấn tới database (thêm, sửa, xóa data) |_variables # Khai báo biến toàn cục dùng toàn project | |_auth.js # Các biến tồn cục liên quan đến tính xác thực người dùng | |_jwt.js |_app.js # Các biến toàn cục cho json web token # Xử lý cho project (Khởi tạo server, require middlewares) Nhóm 14|N4 29 Bài thi cuối kỳ môn An Ninh Mạng |_package.json # Khai báo dependencies , scripts để khởi chạy Server |_data.js # Lưu data Đăng kí tài khoản Yêu cầu client gửi lên hai tham số username password, thêm tham số khác số điện thoại, họ tên, Api: http://localhost:3000/auth/register Trong /src/auth/auth.controllers xử lý API: Ban đầu kiểm tra xem username tồn database chưa, chưa có thêm user Dùng bcrypt để hash password lưu vào database Nhóm 14|N4 30 Bài thi cuối kỳ mơn An Ninh Mạng Dùng postman gọi API xem data trả Nhóm 14|N4 31 Bài thi cuối kỳ mơn An Ninh Mạng Đăng nhập Yêu cầu client gửi lên tham số username password API: http://localhost:3000/auth/login exports.login = async (req, res) => { const username = req.body.username.toLowerCase() || 'test'; const password = req.body.password || '12345'; const user = await userModel.getUser(username); if (!user) { return res.status(401).send('Tên đăng nhập không tồn tại.'); } const isPasswordValid = bcrypt.compareSync(password, user.password); if (!isPasswordValid) { return res.status(401).send('Mật khơng xác.'); } const accessTokenLife = process.env.ACCESS_TOKEN_LIFE || jwtVariable.accessTokenLife; const accessTokenSecret = process.env.ACCESS_TOKEN_SECRET || jwtVariable.accessTokenSecret; const dataForAccessToken = { username: user.username, }; const accessToken = await authMethod.generateToken( Nhóm 14|N4 32 Bài thi cuối kỳ mơn An Ninh Mạng dataForAccessToken, accessTokenSecret, accessTokenLife, ); if (!accessToken) { return res status(401) send('Đăng nhập khơng thành cơng, vui lịng thử lại.'); } let refreshToken = randToken.generate(jwtVariable.refreshTokenSize); // tạo refresh token ngẫu nhiên if (!user.refreshToken) { // Nếu user chưa có refresh token lưu refresh token vào database await userModel.updateRefreshToken(user.username, refreshToken); } else { // Nếu user có refresh token lấy refresh token từ database refreshToken = user.refreshToken; } return res.json({ msg: 'Đăng nhập thành công.', accessToken, refreshToken, user, }); }; Ban đầu kiểm tra username tồn chưa, chưa có trả lỗi Sau ta Nhóm 14|N4 33 Bài thi cuối kỳ môn An Ninh Mạng tiến hành compare password người dùng nhập vào password user lưu database hàm bcrypt.CompareSync() Nếu thực tiếp Khai báo hai biến accessTokenLife (thời gian tồn access token) accessTokenSecret (khóa bí mật access token) lưu vào env Khai báo biến dataForAccessToken để định lưu access token const dataForAccessToken = { username: user.username, }; Tạo access token const accessToken = await authMethod.generateToken( dataForAccessToken, accessTokenSecret, accessTokenLife, ); Phát sinh refresh token let refreshToken = randToken.generate(jwtVariable.refreshTokenSize); // tạo refresh token ngẫu nhiên if (!user.refreshToken) { // Nếu user chưa có refresh token lưu refresh token vào database await userModel.updateRefreshToken(user.username, refreshToken); } else { // Nếu user có refresh token lấy refresh token từ database refreshToken = user.refreshToken; } Nhóm 14|N4 34 Bài thi cuối kỳ mơn An Ninh Mạng Ta dùng hàm generate() package rand-token để phát sinh token với kích thước tùy chọn Mỗi tài khoản phát sinh refresh token, tồn (đã phát sinh lần đăng nhập trước) khơng phát sinh lại, bạn lần đăng nhập phát sinh refresh token toanh Sau ta update refresh token cho user /src/users/users.models sau: exports.updateRefreshToken = async (username, refreshToken) => { try { await db get(TABLENAME) find({username: username}) assign({refreshToken: refreshToken}) write(); return true; } catch { return false; } }; Tiếp theo vào postman kiểm tra Nhóm 14|N4 35 Bài thi cuối kỳ mơn An Ninh Mạng Xử lý API yêu cầu xác thực Giả sử ta có API để lấy thông tin user /src/users/users.routes.js sau đăng nhập sau: const express = require('express'); const router = express.Router(); const authMiddleware = require(' /auth/auth.middlewares'); const isAuth = authMiddleware.isAuth; router.get('/profile', isAuth, async (req, res) => { res.send(req.user); }); module.exports = router; API yêu cầu tham số: headers {x_authorization: …accessToken…}, body {} Ta cần có middleware trung gian để xác thực có client đăng nhập khơng, định nghĩa /src/auth/auth.middlewares.js exports.isAuth = async (req, res, next) => { // Lấy access token từ header const accessTokenFromHeader = req.headers.x_authorization; if (!accessTokenFromHeader) { return res.status(401).send('Khơng tìm thấy access token!'); } const accessTokenSecret = process.env.ACCESS_TOKEN_SECRET || jwtVariable.accessTokenSecret; Nhóm 14|N4 36 Bài thi cuối kỳ mơn An Ninh Mạng const verified = await authMethod.verifyToken( accessTokenFromHeader, accessTokenSecret, ); if (!verified) { return res status(401) send('Bạn khơng có quyền truy cập vào tính này!'); } const user = await userModle.getUser(verified.payload.username); req.user = user; return next(); }; Ta cần access token đính kèm phần headers sau ta verify token sau: Trong /src/auth/auth.methods.js exports.verifyToken = async (token, secretKey) => { try { return await verify(token, secretKey); } catch (error) { console.log(`Error in verify access token: + ${error}`); return null; } }; Lần access token phải thời gian tồn verify Sau hàm Nhóm 14|N4 37 Bài thi cuối kỳ môn An Ninh Mạng trả phần data lưu Cuối ta kiểm tra lại lần user có tồn khơng, có tồn ta gán vào req để sử dụng hàm sau const user = await userModle.getUser(verified.payload.username); req.user = user; return next(); kết thúc hàm ta cần sử dụng lệnh next() để chuyển qua hàm tiếp theo, không xử lý bị treo Access Token hợp lệ Nhóm 14|N4 38 Bài thi cuối kỳ môn An Ninh Mạng Access token sai hết hạn Nhóm 14|N4 39 Bài thi cuối kỳ môn An Ninh Mạng KẾT LUẬN Bài tiểu luận giới thiệu công nghệ xác thực người dùng bảo mật thông tin Bảo mật thông tin ngày trở nên quan trọng thực tế, đem lại giá trị lợi ích to lớn Bài tiểu luận đề cập đến số chế bảo mật xác thực phổ biến như: Xác thực dựa mật khẩu, xác thực dựa MFA, xác thực dựa sinh trắc học, xác thực dựa thơng báo, xác thực dựa chứng chỉ.Ngồi cịn có ứng dụng demo bảo mật xác thực người sử dụng để có nhìn tổng quan chi tiết công nghệ nêu TÀI LIỆU THAM KHẢO https://www.globalsign.com/en/blog/what-is-certificate-basedauthentication?fbclid=IwAR0oNkjvBN3UTM1l0A4KiujPOfqp1Lp1wl_FjAWADvZQMQ0kFmXMuXh0G0 https://portswigger.net/websecurity/authentication?fbclid=IwAR0M5iPOsX032kdOvvptGRCZ4OYCpVFeDc nRoDQAKORRJ95YbI8dI5_fC1A https://docs.oracle.com/cd/E19575-01/8202765/6nebir7eb/index.html?fbclid=IwAR0TJyG8YjjQW_JCE6iy_vAU7Y5fopuNJ SKTO2EJcc5pTfPVJPZAfoR05GA https://www.okta.com/identity-101/passwordencryption/?fbclid=IwAR0PbCfjFYEGUm6zu77gXpJrDuc1Bcy02wqd2JwTustPO kuAfPRCT67SD4o https://searchsecurity.techtarget.com/definition/authentication?fbclid=IwAR2pZR6 cNmB8JA3O2AnjUCatuqZfehjn9EWsKg_1orkWiiY7CbvXI_h0coo https://docs.oracle.com/cd/E82085_01/140/rsb_security_guide/1%20General%20S ecurity%20Principles.htm?fbclid=IwAR2oWnLlk8JKYChUe9TBG26Ua5HJGH5g G1yL8_WCJou1kU2o-XsAO2ZZsJ8 Nhóm 14|N4 40 ... riêng Cơ chế hỗ trợ quy tắc ánh xạ mật lần HOTP Xác thực Người dùng cung cấp mật dùng lần tạo cho mật kiện xác thực Mật dùng lần tạo lần phương pháp HOTP TOTP Xác thực Người dùng cung cấp mật dùng. .. vào xác thực dựa mã thơng báo, xác thực thực lần bắt đầu phiên Hệ thống xác thực cấp mã thông báo xác thực ký cho ứng dụng người dùng cuối mã thơng báo thêm vào yêu cầu từ khách hàng Xác thực thực... II: NGUYÊN LÝ XÁC THỰC NGƯỜI DÙNG .8 PHẦN III: CÁC PHƯƠNG PHÁP XÁC THỰC NGƯỜI DÙNG 10 Xác thực dựa mật .10 Xác thực dựa MFA (Multi-Factor Authentication) 13 Xác thực dựa sinh

Ngày đăng: 26/02/2023, 12:20

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN