1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) ứng dụng chữ ký số trong xác thực phân quyền JWT và tấn công access token JWT trong web service

59 25 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

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 1,93 MB

Nội dung

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN Học phần: Chuyên Đề An Ninh Mạng Bài báo cáo: Ứng dụng chữ ký số xác thực phân quyền JWT công Access Token JWT Web Service Giảng viên hướng dẫn: TS Đỗ Xuân Chợ Sinh viên thực hiện: Nhóm 13 Trần Quốc Định B17DCAT038 Nguyễn Hoàng Đức B17DCAT046 Phạm Tuấn Nam B17DCAT134 Nguyễn Như Thuần B17DCAT178 Lê Anh Tùng B17DCAT206 Hà Nội, 2021 LỜI MỞ ĐẦU Trong thời đại công nghệ số nay, thuật ngữ JWT sử dụng phổ biến với vai trò khác JWT(JSON Web Token) công nghệ phổ biến ngày nay, đồng thời gây tranh cãi nhiều Có nhiều người nói đừng dùng nó, người khác lại nói thật tuyệt vời Vậy ta nên hay khơng nên sử dụng JWT? Đó lý nhóm 13 chúng em định thực báo cáo theo chủ đề để tìm hiểu JWT tiến hành demo xác thực phân quyền sử dụng JWT Sau học xong học phần Chuyên Đề An Ninh Mạng, giúp đỡ tận tình thầy Đỗ Xuân Chợ nỗ lực việc tìm tịi học hỏi, nhóm 13 chúng em hồn thành báo cáo học phần Chuyên Đề An Ninh Mạng Báo cáo gồm phần trả lời cho câu hỏi: - JWT gì? - Tại phải dùng JWT dùng JWT? - Cách thức tạo JWT phương thức hoạt động? - Demo xác thực phân quyền JWT - Demo công JWT Trong trình thực báo cáo, cố gắng nhóm 13 chúng em cịn hạn chế thời gian tìm hiểu, kiến thức kinh nghiệm cịn nhiều sai sót Em mong nhận ý kiến đóng góp nhận xét thầy/cơ để em hồn thiện MỤC LỤC LỜI MỞ ĐẦU MỤC LỤC MỤC LỤC HÌNH ẢNH DANH MỤC CÁC TỪ VIẾT TẮT Chương 1: Hoàn cảnh đời JWT 1.1.Tổng quan 1.2.Tại JWT lại xuất dần ưa chuộng hơ 1.3.JWT nên sử dụng trường hợp nào? 1.3.1 Xác thực API 1.3.2 Trao đổi thông tin 1.3.3 Xác thực SPA 1.3.4 ủy quyền hoạt động server Chương 2: Xác thực phân quyền JSON Web Token 2.1.Khái quát Token-based authentication 2.2.Định nghĩa JWT 2.3.Các thuật ngữ liên quan 2.4.Cấu trúc JWT 2.4.1 Header 2.4.2 Payload 2.4.3 Signature 2.5 Luồng xử lý hệ thống sử dụng bảo mật JWT 2.5.1 Sơ lược luồng xử lý 2.5.2 Hệ thống Verify chuỗi JWT 2.5.3 Các thuật toán sử dụng 2.5.4 Luồng xử lý Security Spring Boot with JWT 2.6.JWT Session 2.6.1 Scalability – Tính mở rộng 2.6.2 Security – Tính bảo mật 2.6.3 Performance Chương 3: Ứng dụng xác thực phân quyền JWT doanh nghiệp Fintech .28 Chương 4: DEMO Ứng dụng authentication authorization với ReactJS Spring Boot sử dụng JWT .31 Chương 5: DEMO công JWT Token .38 5.1 Một số cách công mã thông báo JWT 38 5.2 Demo công 40 KẾT LUẬN CHUNG 54 TÀI LIỆU THAM KHẢO .55 MỤC LỤC HÌNH ẢNH Hình 1: Mơ hình sử dụng Session - Cookie để Authenticate Hình 2: JWT Hình 3: Ví dụ JSON Web Token Hình 4: Cấu trúc JWT Hình 5: Ví dụ Header Hình 6: Header sau mã hóa base64url Hình 7: Ví dụ Public Hình 8: Ví dụ Private Hình 9: Ví dụ Payload Hình 10: Luồng xử lý Hình 11: HMAC tính cách sử dụng thuật tốn tương ứng Hình 12: RSASSA-PKCS1-v1_5 tính tốn sử dụng thuật toán tương ứng Hình 13: ECDSA tính tốn sử dụng thuật tốn tương ứng Hình 14: Các luồng thực thi Hình 15: Các luồng thực thi Cookie-based Authentication Token-based Authentication Hình 16: Thơng tin JWT Hình 17: Đăng nhập thông tin đăng nhập Hình 18: Thơng tin lưu Local Storage Hình 19: Request Headers Hình 20: Client view nhận lại JWT Hình 21: Client view nhận cookie Hình 22: Vào giao diện click vào chức Hình 23: Bearer Token đẩy lên server Hình 24: View client sử dụng reactJS Hình 25: Thơng tin đăng nhập gửi theo LoginRequest Hình 26: Call API tới server với LoginRequest Hình 27: Khởi tạo Authentication object Hình 28: AuthenticationManager Hình 29: AuthenticationProvider Hình 30: Đưa vào SecurityContext tạo JWT Hình 31: Hàm tạo JWT 34 Hình 32: JWA algorithm name 35 Hình 33: setJWTToken 35 Hình 34: Đăng nhập thành cơng chuyển đến giao diện 36 Hình 35: Key Value 36 Hình 36: Header gắn Authentication với token .36 Hình 37: JwtAuthenticationFilter 37 Hình 38: validateToken 37 Hình 39: Dựng proxy 40 Hình 40: Bật proxy browser 40 Hình 41: Điền username password 41 Hình 42: Burpsuite bắt gói tin 41 Hình 43: Chuyển gói tin bắt sang repeater 42 Hình 44: Respone 43 Hình 45: Sử dụng decoder để phân tích nội dung JWT 44 Hình 46: sửa đổi thành phần 45 Hình 47: Thay đổi nội dung fullname 46 Hình 48: Thực thi chức xóa 47 Hình 49: Response phản hồi 48 Hình 50: Server phản hồi JWT hết hạn 48 Hình 51: Tạo project 49 Hình 52: Burpsuite bắt gói tin gửi request tạo project 50 Hình 53: Hệ thống phản hồi lại invalid JWT 51 Hình 54: Expired JWT token 52 Hình 55: Save thành cơng hệ thống với JWT tạo cho request client .53 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt JSON J JWT J RFC R HMAC RSA SHA-256 H A R S HS256 H IANA URI I A U H.P.S H RESTful R T HTTP H P HTTPS H P S SSL LDAP L A URL A I U DNS D IP I API ECDSA JWS E S J Hình 41: Điền username password Hình 42: Burpsuite bắt gói tin 41 - Send To Repeater để thêm gói gửi Packet đến Server Hình 43: Chuyển gói tin bắt sang repeater 42 - Response gói tin nhận JWT Token Hình 44: Respone 43 - Phân tích nội dung JWT với Base64 Hình 45: Sử dụng decoder để phân tích nội dung JWT 44 - Sửa đổi thành phần JWT Hình 46: sửa đổi thành phần - Từ Access Token ban đầu: eyJhbGciOiJIUzUxMiJ9.eyJmdWxsTmFtZSI6InR1bmdsYSIsImlkIjoiMiIsImV4cCI6MT YzODExNjA5OSwiaWF0IjoxNjM4MTE1Nzk5LCJ1c2VybmFtZSI6IjEyMzEyM0Bnb WFpbC5jb20ifQ.o-VY0jAA4kubfTUb1C8pLWfRqDpQlcGweijp18ozewYYl8ZRHYxXF6flcXZUToY47_gcV1UlzDHBgjjNb69QQ 45 Hình 47: Thay đổi nội dung fullname - Thay đổi nội dung fullName JWT ta nhận JWT với nội dung mới: eyJhbGciOiJIUzUxMiJ9.eyJmdWxsTmFtZSI6InR1bmdsYTIwMjk5IiwiaWQiOiIyIiwiZ XhwIjoxNjM4MTE2MDk5LCJpYXQiOjE2MzgxMTU3OTksInVzZXJuYW1lIjoiMTIz MTIzQGdtYWlsLmNvbSJ9.1uTOAVtGFiwrV78URDHWKBLDP8jxCChCmjOI6OI3n qljA6ov8Bo-rXXb9wZQdj2Luzft8de5EDRejh7ihS4WRw 46 - Thực thi chức xóa với JWT vào gói packet bắt Burp Suite Hình 48: Thực thi chức xóa 47 - Response phản hồi Invalid Username and Invalid Password => Server lọc JWT với Signature phản hồi JWT Invalid Hình 49: Response phản hồi - Server phản hồi Expired JWT token Hình 50: Server phản hồi JWT hết hạn 48 - Tấn cơng JWT với chức thêm Hình 51: Tạo project 49 Hình 52: Burpsuite bắt gói tin gửi request tạo project 50 - Hệ thống phản hồi lại JWT Invalid Hình 53: Hệ thống phản hồi lại invalid JWT 51 - Do Time Out JWT hạn Hình 54: Expired JWT token 52 - Thử lại với JWT hệ thống Hình 55: Save thành công hệ thống với JWT tạo cho request client 53 KẾT LUẬN CHUNG JSON Web Tokens (JWTs) nhẹ dễ dàng sử dụng tảng ngôn ngữ Đây cách thông minh thuận tiện để xác thực ủy quyền mà khơng cần phiên Có số thư viện JWT có sẵn để ký xác minh mã thơng báo Cũng có nhiều lý để sử dụng mã thơng báo Auth0 giúp triển khai xác thực mã thông báo cách dễ dàng Không có cách tiếp cận phù hợp với tất Nó phụ thuộc vào kiến trúc ứng dụng trường hợp sử dụng cụ thể Kết thúc học phần Chuyên Đề An Ninh Mạng, nhóm 13 chúng em hoàn thành báo cáo Kết quả, báo cáo đạt nội dung cụ thể sau: - Nắm khái quát Token-based authentication - Nắm khái niệm JWT, cấu trúc JWT - Nắm luồng xử lý hệ thống bảo mật sử dụng JWT - Nắm khác biệt JWT Cookie - Tìm hiểu ứng dụng Fintech sử dụng JWT Tiến hành demo ứng dụng authentication authorization với ReactJS Spring Boot sử dụng JWT - - Tìm hiểu tiến hành demo cơng JWT Tuy nhiên phải nói dù cố gắng nhiều, nhóm 13 chúng em khơng tránh khỏi sai sót trong báo cáo, chúng em mong nhận bảo đóng góp ý kiến thầy/cơ để báo cáo em hoàn thiện 54 TÀI LIỆU THAM KHẢO [1] P Otemuyiwa, "JSON Web Tokens vs Session Cookies: In Practice," 23 Aug 2016 [Online] Available: https://ponyfoo.com/articles/json-web-tokens-vs-session-cookies [2] P Đ Việt, "Khái niệm JSON Web Token," 10 Jul 2016 [Online] Available: https://techmaster.vn/posts/33959/khai-niem-ve-json-web-token [3] "JWT Framework," [Online] Available: https://web-token.spomky-labs.com/ [4] T V Minh, "Tìm hiểu json web token (JWT)," 28 Mar 2016 [Online] Available: https://viblo.asia/p/tim-hieu-ve-json-web-token-jwt-7rVRqp73v4bP [5] J W T Structure [Online] Available: https://auth0.com/docs/security/tokens/json- web-tokens/json-web-token-structure [6] M Jones, Microsoft, J Bradley, Ping Identity, N Sakimura, NRI, "JSON Web Token (JWT)," May 2015 [Online] Available: https://datatracker.ietf.org/doc/html/rfc7519 55 ... liên tục vào sở liệu (hệ thống cần kiểm tra chữ ký Signature số thông tin claims đủ) 27 Chương 3: Ứng dụng xác thực phân quyền JWT doanh nghiệp Fintech - Hệ thống JWT xác thực phân quyền TPBank... Thông tin xác thực đánh dấu tin cậy nhờ vào chữ ký Phần chữ kỹ JWT mã hóa HMAC RSA Như vậy, bảo mật JWT phương pháp xác thực quyền truy cập (authentication) JSON Web Token - Hình 2: JWT 12 2.3... 3: Ứng dụng xác thực phân quyền JWT doanh nghiệp Fintech .28 Chương 4: DEMO Ứng dụng authentication authorization với ReactJS Spring Boot sử dụng JWT .31 Chương 5: DEMO công JWT Token

Ngày đăng: 09/12/2022, 10:35

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

TÀI LIỆU LIÊN QUAN

w