Thuật ngữ viết tắt CA Certificate Authority Nhà cung cấp chứng chỉ số HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản HTTPS Hypertext Transfer Protocol Secure Giao thứ
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG I
BÀI TIỂU LUẬN MÔN HỌC: AN NINH MẠNG VIỄN THÔNG
Đề tài: Giao thức HTTPS
Trang 2
Bảng phân công công việc nhóm
khác nhau như thế nào
Phần 5 Kết Luận
Trang 3Mục lục
Bảng phân công công việc nhóm 2
Mục lục 3
Thuật ngữ viết tắt 4
Danh mục hình vẽ 4
Lời nói đầu 5
I.Giới thiệu 6
1.1.Giới thiệu chung 6
1.2.Lịch sử phát triển giao thức HTTPS 6
II.Giao thức HTTP và HTTPS 7
2.1.Giao thức HTTP 7
2.1.1.Khái niệm 7
2.1.2.Cách hoạt động của giao thức HTTP 7
2.1.3.Kết luận 11
2.2.Giao thức HTTPS 11
2.2.1.Hoạt động của giao thức HTTPS 11
2.2.2.Kết luận 14
III.So sánh giao thức HTTP và HTTPS 15
3.1.Chứng chỉ SSL 15
3.2.Port trên HTTP và HTTPS 16
3.3.Mức độ bảo mật của HTTP và HTTPS 16
3.3.1.Độ bảo mật của giao thức HTTP 16
3.3.2.Độ bảo mật của giao thức HTTPS 17
3.4.Kết Luận 18
IV.Có nên sử dụng HTTPS cho Website 18
4.1.HTTPS bảo mật thông tin người dùng 18
4.2.Tránh lừa đảo bằng website giả mạo 19
4.3.Giao thức HTTPS tăng uy tín cho webdite đối với người dùng 19
4.4.Làm SEO nên sử dụng HTTPS 20
4.5.HTTPS chậm hơn HTTP, nhưng không đáng kể 21
V.Kết luận 22
Tài liệu tham khảo 23
Trang 4Thuật ngữ viết tắt
CA Certificate Authority Nhà cung cấp chứng chỉ số
HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản
HTTPS Hypertext Transfer Protocol Secure Giao thức truyền siêu văn bản an toàn
TCP Transmission Control Protocol Giao thức điều khiển truyền dẫn
TLS Transport Layer Security Lớp bảo mật tầng truyền tải
Danh mục hình vẽ
Hình 2.1 Cấu trúc của hệ thống dựa trên HTTP 7
Hình 2.2 Sơ đồ hoạt động của HTTP 8
Hình 2.3: Ví dụ về thông điệp yêu cầu 9
Hình 2.4: Ví dụ về thông điệp phản hồi 10
Hình 2.5 Ảnh minh họa gói dữ liệu HTTPS đã được mã hóa 12
Hình 2.6: Ảnh trang web có chứng chỉ bảo mật trên trình duyệt 12
Hình 2.7 Ví dụ quá trình browser truy cập 1 site https 13
Hình 3.1 Sự kết hợp giữa HTTP với chứng chỉ SSL 15
Hình 3.2 Mức độ bảo mật của HTTPS trước hacker 17
Hình 4.1 : Hình ảnh 1 website bị hacker dùng Phising để giả mạo 19
Hình 4.2 : Giao diện của giao thức HTTPS so với HTTP 20
Hình 4.3 Ví dụ về thông báo "không an toàn" trong Chrome 21
Hình 4.4 Lợi thế của SEO khi sử dụng HTTPS 21
Trang 5Lời nói đầu
Ngày nay cùng với sự phát sự phát triển của công nghệ ,việc trao đổi thông tin cá nhân , thanh toán hay cài đặt mật khẩu qua các trang web là điều diễn ra hàng ngày thì việc các tin tặc (hacker) tấn công vào an ninh mạng nhằm đánh cắp thông tin khách hàng cũng như thay đổi dữ liệu người dùng hay thậm chí bị theo dõi cũng như bắt cóc , ảnh hưởng đến tính mạng xảy ra thường xuyên hơn Thấy được tính cấp thiết của việc bảo mật thông tin trong thời đại số , nhóm em đã nghiên cứ đề tài về giao thức HTTPS
là sự phát triển của giao thức tiền nhiệm HTTP Mục đích của bài tiểu luận nhằm đưa
ra lợi ích , tính cấp thiết cũng như phương pháp chuyển đổi HTTP sang HTTPS cho các website doanh nghiệp Điều này sẽ giúp xác thực được web tin cậy sẽ đảm bảo thông tin tài khoản và việc thực hiện thành công các giao dịch của khách hàng
Với mong muốn tìm hiểu thêm về vấn đề này , nhóm em đã chọn đề tài “Giao thức Https”
Trang 6I.Giới thiệu
1.1.Giới thiệu chung
Mỗi khi chúng ta mở trình duyệt web ra và nhập vào đó bất kỳ địa chỉ nào, bạn thấy
ở một số trang tự động thêm tiền tố http:// hoặc https:// vào đằng sau địa chỉ URL của website đó Vậy chúng là gì, và tại sao có website lại là HTTP và có website lại dùng HTTPS?
Và với tốc độ phát triển của mạng lưới internet hiện nay đã mở ra một kỷ nguyên mới về sự thay đổi của hệ thống website Điển hình nhất là giao thức HTTP sử dụng trước đây đã dần bị HTTPS thay thế
Vậy chúng ta đã biết HTTPS là gì? Tại sao nên sử dụng HTTPS? Hãy cùng tìm lời giải đáp qua tiểu luận dưới đây của nhóm chúng em về giao thức HTTPS
Trong bài tiểu luận môn học “An ninh mạng viễn thông” nhóm em tìm hiều về giải pháp an ninh mạng Internet mà cụ thể là giao thức HTTPS Giao thức HTTP được mã hóa bằng SSL nên sẽ đạt được với các đặc tính bảo mật như:
Bảo mật truyền thông
Đảm bảo toàn vẹn dữ liệu
2018 Động thái này nhằm khuyến khích chủ sở hữu trang web triển khai HTTPS, như một nỗ lực để làm cho World Wide Web an toàn hơn
Trang 7HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet) Bộ giao thức TCP/IP là một bộ các giao thức truyền thông cài đặt chồng giao thức mà Internet và hầu hết các mạng máy tính thương mại đang chạy trên đó Bộ giao thức này được đặt theo tên hai giao thức chính là TCP (Transmission Control Protocol – Giao thức điều khiển truyền vận) và IP (Internet Protocol – Giao thức Internet) Và thường thì giao thức HTTP sử dụng cổng 80 (Port 80) là chủ yếu
HTTP là 1 giao thức có các đặc trưng cơ bản dưới đây:
Kết nối không liên tục: Kết nối của HTTP không liên tục Quy trình xử lý, phản
hồi yêu cầu thông thường của HTTP là Client tạo yêu cầu -> dừng kết nối với Server để đợi phản hồi -> Server tiến hành xử lý yêu cầu -> thiết lập kết nối tới Client và gửi phản hồi,
Độc lập: Đặc trưng cơ bản thứ hai của HTTP là tính độc lập Bạn có thể gửi mọi
loại dữ liệu qua HTTP miễn sao máy chỉ và Client có biện pháp kiểm soát các nội dung của dữ liệu Client và Server cần xác định nội dung gửi đi thuộc kiểu
gì để lựa chọn MIME phù hợp
HTTP là stateless: Là connectionless nên đặc trưng thứ ba của HTTP là
Stateless Máy chủ và Client chỉ biết nhau trong yêu cầu của hiện tại, ngay sau
đó, chúng sẽ quên Ngoài ra, Cả máy khách và server đều có thể lưu lại thông tin
về những yêu cầu giữ các website
2.1.2.Cách hoạt động của giao thức HTTP
Cấu trúc HTTP:
Cấu trúc của http bao gồm 2 đối tượng là Client và Server Có thể coi http như giao thức gửi các yêu cầu và phản hồi giữa Client-Server Tại giao thức này, mọi thiết bị tìm kiếm hay trình duyệt web sẽ đóng vai trò như máy khách (Client), còn máy chủ web
có vai trò như Server
Hình 2.1 Cấu trúc của hệ thống dựa trên HTTP
Trang 8 Client: Client (máy khách) gửi yêu cầu cụ thể đến Server theo mẫu phương thức yêu cầu => Các phiên bản giao thức cùng với URI gửi thông báo MIME (gồm thông tin máy khách, nội dung của đối tượng, bộ chỉnh sửa) đến server qua kết nối TCP/IP
Server: Server nhận được yêu cầu -> Phản hồi bằng một dòng trạng thái thông qua MIME có chứa thông tin máy chủ, thông tin về nội dung của đối tượng và thực tế của
đa phương tiện
Proxy:Giữa trình duyệt Web và máy chủ, nhiều máy tính và máy móc chuyển tiếp các thông điệp HTTP Do cấu trúc phân lớp của ngăn xếp Web, hầu hết chúng hoạt động ở cấp độ truyền tải, mạng hoặc vật lý, trở nên trong suốt ở lớp HTTP và có khả năng tác động đáng kể đến hiệu suất Những người hoạt động ở các lớp ứng dụng thường được gọi là proxy
Cách thức hoạt động của giao thức HTTP:
Hoạt động giao thức HTTP:
Hình 2.2 Sơ đồ hoạt động của HTTP
Vì HTTP hoạt động dựa trên mô hình Client – Server Trong mô hình này, các máy tính của người dùng sẽ đóng vai trò làm máy khách (Client) Sau một thao tác nào đó của người dùng, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi câu trả lời từ những máy chủ này
Cách thực hiện chi tiết như sau:
Khi một khách hàng muốn giao tiếp với một máy chủ, máy chủ cuối cùng hoặc một proxy trung gian, nó sẽ thực hiện các bước sau:
1 Mở kết nối TCP: Kết nối TCP được sử dụng để gửi một hoặc nhiều yêu cầu và nhận câu trả lời Máy khách có thể mở một kết nối mới, sử dụng lại kết nối hiện có hoặc mở một số kết nối TCP tới các máy chủ
2 Gửi tin nhắn HTTP: Các tin nhắn HTTP (trước HTTP / 2) là con người có thể đọc được Với HTTP / 2, các thông điệp đơn giản này được gói gọn trong các khung, khiến chúng không thể đọc trực tiếp, nhưng nguyên tắc vẫn như cũ Ví dụ:
Trang 9<!DOCTYPE html (here comes the 29769 bytes of the requested web page)
4 Đóng hoặc sử dụng lại kết nối cho các yêu cầu khác
Note: Nếu HTTP pipelining được kích hoạt, một số yêu cầu có thể được gửi mà không cần đợi phản hồi đầu tiên được nhận đầy đủ HTTP pipelining đã được chứng minh là khó triển khai trong các mạng hiện có, nơi các phần mềm cũ cùng tồn tại với các phiên bản hiện đại HTTP pipelining đã được thay thế bằng HTTP / 2 với các yêu cầu ghép kênh mạnh mẽ hơn trong một khung
Sẽ rất hữu ích khi hiểu các thông điệp HTTP / 2 ở định dạng HTTP / 1.1
Có hai loại thông điệp HTTP, yêu cầu và phản hồi, mỗi loại có định dạng riêng
Yêu cầu:
Hình 2.3: Ví dụ về thông điệp yêu cầu
Trang 10Yêu cầu bao gồm các yếu tố sau:
- Method: (phương thức) HTTP , thường là một động từ like GET, POST hoặc một danh từ like OPTIONS hoặc HEAD xác định thao tác mà khách hàng muốn thực hiện Thông thường, khách hàng muốn tìm nạp tài nguyên (sử dụng GET) hoặc đăng giá trị của biểu mẫu HTML (sử dụng POST), mặc dù có thể cần nhiều thao tác hơn trong các trường hợp khác
- Path: (đường dẫn) của tài nguyên để tìm nạp; URL của tài nguyên bị loại bỏ khỏi các phần tử hiển nhiên khỏi ngữ cảnh, chẳng hạn như không có giao thức ( http://), miền (tại đây, developer.mozilla.org) hoặc cổng TCP (tại đây, 80)
- Version of the protocol: Phiên bản của giao thức HTTP
- Headers: Là các tiêu đề tùy chọn truyền tải thông tin bổ sung cho các máy chủ
- Hoặc một phần thân, đối với một số phương thức như POST, tương tự như các phương thức trong phản hồi, chứa tài nguyên được gửi
Phản hồi:
Hình 2.4: Ví dụ về thông điệp phản hồi
Một phản hồi gồm các yếu tố cơ bản sau:
- Version of the protocol: Phiên bản của giao thức HTTP mà họ tuân theo
- Status code: Là mã trạng thái, cho thấy nếu yêu cầu thành công, hay không, và tại sao
- Status message: Thông báo trạng thái, một mô tả ngắn không có thẩm quyền về
mã trạng thái
- Headers: Tiêu đề HTTP, giống như tiêu đề cho các yêu cầu
- Tùy chọn, một nội dung có chứa tài nguyên đã tìm nạp
Trang 112.1.3.Kết luận
HTTP là một giao thức có thể mở rộng rất dễ sử dụng Cấu trúc máy khách-máy chủ, kết hợp với khả năng thêm tiêu đề, cho phép HTTP phát triển cùng với các khả năng mở rộng của Web
Mặc dù HTTP / 2 thêm một số phức tạp, bằng cách nhúng các thông báo HTTP vào các khung để cải thiện hiệu suất, cấu trúc cơ bản của các thông báo vẫn giữ nguyên
kể từ HTTP / 1.0 Luồng phiên vẫn đơn giản, cho phép nó được điều tra và gỡ lỗi bằng một trình giám sát thông báo HTTP đơn giản
2.2.Giao thức HTTPS
Hypertext Transfer Protocol Secure (HTTPS) là một phần mở rộng của Hypertext Transfer Protocol (HTTP) Nó được sử dụng để giao tiếp an toàn qua mạng máy tính và được sử dụng rộng rãi trên Internet Trong HTTPS, giao thức truyền thông được mã hóa bằng Transport Layer Security (TLS) hay trước đây là Secure Sockets Layer (SSL) Do
đó, giao thức này còn được gọi là HTTP qua TLS, hoặc HTTP qua SSL
Mục đích chính khi dùng HTTPS là xác thực trang web được truy cập và bảo vệ quyền riêng tư và tính toàn vẹn của dữ liệu được trao đổi trong khi truyền Nó bảo vệ chống lại các cuộc tấn công của kẻ trung gian và mã hóa hai chiều của giao tiếp giữa máy khách và máy chủ bảo vệ thông tin liên lạc khỏi bị nghe trộm và giả mạo
HTTPS hiện đang được đông đảo người dùng web tin tưởng và sử dụng thường xuyên hơn so với HTTP không an toàn ban đầu, chủ yếu để bảo vệ tính xác thực của trang trên tất cả các loại trang web; tài khoản an toàn; và giữ bí mật thông tin liên lạc, danh tính và duyệt web của người dùng,
2.2.1.Hoạt động của giao thức HTTPS
Cách HTTPS bảo mật dữ liệu:
Dữ liệu được gửi bằng cách sử dụng HTTPS được bảo mật qua giao thức Bảo mật lớp truyền tải (TLS), cung cấp ba lớp bảo vệ chính:
1 Toàn vẹn dữ liệu - không thể sửa đổi hay làm hỏng dữ liệu trong lúc truyền, cho
dù cố ý hay theo cách khác, mà không bị phát hiện
2 Mã hóa - mã hóa dữ liệu được trao đổi để bảo mật nó khỏi những người ******** Điều đó nghĩa là trong lúc người dùng duyệt trang web, không ai có thể "lắng nghe" các cuộc hội thoại của họ, theo dõi hoạt động của họ trên nhiều trang hay đánh cắp thông tin của họ
Trang 12Hình 2.5 Ảnh minh họa gói dữ liệu HTTPS đã được mã hóa
3 Xác thực - chứng minh rằng người dùng của bạn đang giao tiếp với trang web chủ định của họ Giao thức này bảo vệ chống lại tấn công trung gian và xây dựng niềm tin của người dùng, điều này dẫn đến các lợi ích khác về mặt kinh doanh
Hình 2.6: Ảnh trang web có chứng chỉ bảo mật trên trình duyệt
Trang 13 Quá trình giao tiếp giữa client và sever thông qua HTTPS:
Hình 2.7 Ví dụ quá trình browser truy cập 1 site https
Cụ thể:
1 Browser sẽ truy cập 1 trang web https Ở đây là https://payment.com
2 Server hay Load Balancer (LB) của payment.com sẽ trả về certificate để chứng thực rằng website user đang truy cập là website chính thức Trong certificate là một public key PK, dùng để mã hóa K ở bước 4
3 Browser sẽ kiểm chứng certificate (bằng cách chạy thuật toán kiểm tra chữ ký) Quá trình này giúp browser xác định https://payment.com là thật hay giả
4 Sau khi kiểm chứng được certificate, browser sẽ tự sinh ra 1 khóa K Khóa K sẽ được dùng để mã hóa tất cả các liên lạc giữa browser và web: payment.com sau này Do quá trình mã hóa các gói tin dùng mã đối xứng, khóa K cần được gửi trở lại payment.com vì nếu không có K, server (LB) không thể nào giải mã được gói tin
5 Khóa K được gửi trả lại cho payment.com Phía payment.com sẽ dùng private key (được bảo vệ) để giải mã gói tin này và qua đó có được thông tin về K
6 payment.com và browser dùng khóa K để mã hóa toàn bộ dữ liệu liên lạc sau này
Certificate là một khối dữ liệu bao gồm rất nhiều thông tin về payment.com Các thông tin này bao gồm:
Tên domain
Trang 14 Tên công ty sở hữu
Thời gian certificate được cấp
Thời hạn certificate
Public key PK
Cách Browser kiểm chứng certificate ở bước 3:
Người đứng giữa Browser và web payment.com đều có thể làm giả certificate
và public key Nếu họ làm giả được certificate thì họ cũng giả được web payment.com khi đó họ có thể xem thông tin truyền tải 2 bên Vậy để giải quyết vấn đề này chúng ta dùng CA (certificate Authority)
CA ở đây chính là người chứng minh certificate mà payment.com cung cấp là thật CA bán dịch vụ chứng thực đó bằng cách kí chứng minh rằng certificate của payment là thật
Certificate chứng thực cho payment.com sẽ được CA ký bằng khóa bí mật của
CA Khóa này chỉ có CA biết và do vậy việc chữ ký là an toàn Web payment.com sẽ gửi cho user certificate đã được ký bởi CA cùng với khóa công khai PK2 của khóa bí mật CA dùng để ký certificate Browser sẽ tiến hành kiểm tra certificate này như bình thường dùng khóa công khai PK2 của CA
Tuy nhiên thì khóa công khai cảu CA có thể làm giả từ đó certificate cũng có thể làm giả Để chắc chắn việc này, ta có thể ký chứng thực certificate do CA ký là thật Cách làm có thể hoàn toàn tương tự là dùng khóa bí mật nào đó và ký tiếp và đính kèm khóa công khai PK3 với certificate sau khi được ký Cứ thế ta có một dãy các certificate
và khóa công khai mà certificate sau chứng thực cho certificate trước Do bản chất đệ quy, ta cần điểm dừng là một certificate mà ta hoàn toàn tin tưởng Đến đây ta có khái niệm root certificate
Root certificate là certificate mà ta hoàn toàn tin tưởng Khi có certificate này, ta
có thể tin tưởng những certificate mà được chứng thực bởi certificate này là hoàn toàn hợp lệ (giống trong thực tế là cơ quan công chứng!) Mỗi OS và browser có một danh sách các certificate mà OS và browser đó tin tưởng
2.2.2.Kết luận
HTTPS là một giao thức phổ biến trên Internet và rất cần thiết để đảm bảo an toàn, tin cậy cho môi trường Web
Việc sử dụng HTTPS sẽ bảo vệ trang web của chúng ta tới những kiểu tấn công
mà em đã đề cập trước đó Chúng ta có certificate,vì thế mà mình có thể biết rằng mình đang giao tiếp một cách an toàn với Server dự định
Dữ liệu của bạn được mã hóa (encryption) - ngay cả khi hacker lấy được gói tin, cũng không thể giải mã được nội dung bên trong Và tất nhiên bạn có được toàn vẹn dữ liệu data, vì vậy mà chúng có thể truyền những dữ liệu quan trọng mà không cần lo lắng
về việc nó bị hỏng, mất dữ liệu hoặc sửa đổi mà chúng ta không phát hiện ra