HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG I TIỂU LUẬN MÔN HỌC AN NINH MẠNG THÔNG TIN Đề tài Giao thức HTTPS Giảng viên Nguyễn Thanh Trà Bài thi cuối kỳ môn ANM Giao thức HTTPS 1 BẢNG PHÂ[.]
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG I
TIỂU LUẬN MÔN HỌC
AN NINH MẠNG THÔNG TIN
Đề tài : Giao thức HTTPS
Trang 2
BẢNG PHÂN CHIA CÔNG VIỆC
-Tìm kiếm nguồn tài liệu liên quan đến đề tài
- Chọn lọc nội dung cho
đề tài
Đề cương tiểu luận Hoàn thành Word Ứng dụng của HTTPS
Cơ sở lý luận
Trang 3MỤC LỤC
BẢNG PHÂN CHIA CÔNG VIỆC 1
DANH MỤC HÌNH VẼ 3
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT 4
CƠ SỞ LÝ LUẬN 5
GIAO THỨC HTTPS 6
1 Giới thiệu về HTTPS 6
1.1 Lịch sử phát triển 6
1.2 Tổng quan về HTTPS 6
2 Bảo mật 8
2.1 Một số giao thức bảo mật 8
2.1.1 Giao thức bảo mật ngăn cách (tách rời) 9
2.1.2 Bảo mật đặc tả ứng dụng 10
2.2 Bảo mật trong HTTPS 10
2.3 Cách các mà tin tặc có thể sử dụng để tấn công vào web dùng HTTPS 14
2.4 Biểu hiện của web khi bị tin tặc tấn công 14
3 So sánh HTTPS với HTTP 15
4 Ứng dụng 17
4.1 Giới thiệu Apache 17
4.2 Ưu nhược điểm 18
4.3 Phương thức hoạt động 18
4.4 Cài đặt và cấu hình 18
KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 22
Trang 4DANH MỤC HÌNH VẼ
Hình 1.2 Mô hình minh họa sơ lược cách thức hoạt động của giao thức HTTPS…8 Hình 2.1.1 Vị trí SSL trong mô hình giao thức bảo mật tách rời……….9 Hình 2.1.2 Bảo mật có thể gắn trục tiếp vào giao thức ứng dụng……… 10 Hình 2.2.a Mô tả tính bảo mật của giao thức HTTPS trong khi truyền dữ liệu… 11 Hình 2.2.b Thiết lập kết nối an toàn SSL………12
DANH MỤC BẢNG BIỂU
Bảng 1 So sánh HTTPS và HTTP……… 15
Trang 5DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
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 tải siêu
văn bản an toàn
TLS Transport Layer Security Bảo mật tầng truyền tải
bình luận
số URL Uniform Resource Locator Định vị tài nguyên thống
nhất TCP Transmission Control Protocol Giao thức điều khiển
truyền vận UDP User Datagram Protocol
IETF Internet Engineering Task Force Nhóm đặc trách kỹ thuật
Internet
Trang 6CƠ SỞ LÝ LUẬN
1 Lý do chọn đề tài
An toàn thông tin là một yêu cầu rất quan trọng trong việc truyền dữ liệu trên mạng đặc biệt là với các giao dịch thương mại điện tử, còn xác thực là một trong những mục tiêu trọng tâm của các website học tập trực tuyến Những hậu quả do rò
ri thông tin gây ra là rất lớn và khó có thể lường hết được Ngày nay, dù ở Việt Nam, các nhà quản trị mạng đã bắt đầu quan tâm tới lĩnh vực này, nhưng thực sự vẫn chưa có nhiều nghiên cứu được tiến hành chi tiết và việc ứng dụng còn là rất hạn chế Với xu thế phát triển hiện nay, trên con đường hội nhập với nền công nghệ thông tin của thế giới, chúng ta cần có những hiểu biết sâu sắc và toàn diện về
an toàn và bảo mật thông tin
Trong bài tiểu luận này nhóm em sẽ tìm hiểu về giao thức HTTPS Chúng em
hy vọng rằng với đề tài này sẽ đem lại một cái nhìn cụ thể hơn về HTTPS và bảo mật của nó, tầm quan trọng của nó trong thực tế
2 Mục đích
Tìm hiểu về các giao thức bảo mật và ứng dụng của giao thức HTTPS trong dịch
vụ triển khai web
3 Đối tượng
Nghiên cứu bảo mật trong HTTPS
4 Phương pháp nghiên cứu
Nghiên cứu lý thuyết, thông qua việc đọc các tài liệu liên quan, đồng thời dựa trên các kết quả nghiên cứu trước đây xây dựng cơ sở của đề tài
5 Nội dung tiểu luận gồm 2 phần
Phần 1: Tìm hiểu về lịch sử phát triển, tổng quan về hoạt động của giao thức HTTPS
Phần 2: Bảo mật: Là sự kết hợp của HTTPS với giao thức SSL/TLS
Phần 3: So sánh HTTPS với HTTP; Ưu nhược điểm của HTTPS
Phần 4: Ứng dụng của HTTPS
Nhóm em xin gửi lời cảm ơn sâu sắc đến Học viện công nghệ bưu chính viễn thông đã giúp chúng em được tiếp cận và học bộ môn “An ninh mạng truyền thông” thông qua sự truyền đạt những kiến thức quý báu của cô Nguyễn Thanh Trà trong kỳ học vừa qua
Tuy nhiên, kiến thức tiếp thu được của chúng em còn hạn chế và sai sót, mong cô góp ý để bài tiểu luận được hoàn hơn Chúng em xin chân thành cảm ơn cô!
Trang 7GIAO THỨC HTTPS
1 Giới thiệu về HTTPS
1.1 Lịch sử phát triển
Giao thức HTTP- Giao thức truyền tải siêu văn bản (là tiền thân của HTTPS)
được Tim Berners-Lee tại CERN khởi xướng vào năm 1989 Việc phát triển các RFC HTTP ban đầu là một nỗ lực phối hợp của Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF) và World Wide Web Consortium (W3C), với các thay đổi sau đó chuyển sang do IETF phụ trách Và đến năm 1990 giao thức HTTP chính thức được
ra đời Tuy nhiên khi ta kết nối với một trang web thông qua giao thức HTTP thì dữ liệu gửi/nhận (bao gồm địa chỉ IP, các thông tin nhập liệu trên website…) chỉ là những đoạn ký tự văn bản bình thường, không hề được mã hóa Vì thế mà tính bảo mật cực thấp Hacker sau khi ăn cắp được dữ liệu có thể dễ dàng đọc-hiểu được dữ liệu đó Những tài khoản đăng nhập các trang web, thông tin thẻ tín dụng, thông tin cá nhân,…
dễ dàng bị lộ Vì vậy HTTPS ra đời để giải quyết vấn đề bảo mật Netscape
Communications tạo ra HTTPS vào năm 1994 cho trình duyệt web Netscape Navigator Ban đầu, HTTPS đã được sử dụng với SSL mã hóa Phiên bản hiện hành của HTTPS được chính thức chỉ định bởi RFC 2818 Tháng 5 năm 2000
HTTPS đã có lịch sử phát triển khá dài, thậm chí có thể nói rằng nó sinh cùng thời với Web Nhưng cho đến nay, giao thức này vẫn chỉ được sử dụng chủ yếu bởi những trang web có hoạt động chuyển tiền, trang web của các ngân hàng hoặc các cửa hàng trực tuyến Nếu như có những trang web khác sử dụng HTTPS, thì họ cũng chỉ dùng nó cho một vài tác vụ nhất định mà thôi
1.2 Tổng quan về HTTPS
HTTPS là phiên bản an toàn của HTTP (viết tắt của Hyper Text Transfer
Protocol Secure - giao thức truyền tải siêu văn bản bảo mật) Có thể hiểu đơn giản thì nó là giao thức HTTP được bổ sung them tính năng bảo mật Đây là một giao thức ứng dụng được sử dụng thường xuyên nhất trong bộ các giao thức TCP/IP (gồm một nhóm các giao thức nền tảng cho internet) giao thức mà qua đó dữ liệu được gửi giữa trình duyệt và trang web bạn đang kết nối
HTTPS là giao thức hoạt động dựa trên TCP , giao tiếp theo mô hình client –
server Để tạo được một kết nối HTTPS, cần thiết phải có 3 thành phần tham gia
sau: Client, Web Server, CA Trong đó:
• Client: các trình duyệt web như Chrome, Firefox…
• Web Server: máy chủ chạy Website bạn muốn truy cập, thường
là Nginx, Apache…
• CA: đơn vị cung cấp chứng chỉ SSL
Trang 8HTTPS hoạt động tương tự như HTTP, tuy nhiên nó được bổ sung thêm
chứng chỉ bảo mật SSL (Secure Sockets Layer, tầng ổ bảo mật) hoặc TLS
(Transport Layer Security, bảo mật tầng truyền tải) để mã hóa thông tin liên lạc Ở thời điểm hiện tại thì đây là các tiêu chuẩn bảo mật hàng đầu cho hàng triệu trang web trên toàn thế giới
• SSL (Secure Sockets Layer) : là giao thức mã hóa dữ liệu được truyền
tải từ máy khách đến server Hosting và ngược lại thông qua trình
duyệt Tất cả dữ liệu truyền điều được mã hóa
• TLS ( Transport Layer Security): giao thức này cũng giúp bảo mật
thông tin truyền giống như SSL nhưng có những cải tiến hơn
❖ Sử dụng HTTPS:
Trước hết, muốn sử dụng HTTPS thì trong quá trình cấu hình Webserver, bạn có thể dễ dàng tự tạo ra một SSL certificate dành riêng cho website của mình và nó được gọi là self-signed SSL certificate SSL certificate tự cấp này vẫn mang lại tính bí mật và toàn vẹn cho quá trình truyền thông giữa server
và client Nhưng rõ ràng là không đạt được tính xác thực bởi vì không có bên thứ 3 đáng tin cậy nào (hay CA) đứng ra kiểm chứng sự tính xác thực của certificate tự gán này Vì vậy, đối với các website quan trọng như E-
Commerce, Online Payment, Web Mail,… thì họ sẽ mua một SSL certificate
từ một Trusted Root CA nổi tiếng như VeriSign, Thawte, và ít tên tuổi hơn thì có GoDaddy, DynDNS…Các CA có 2 nhiệm vụ chính sau:
➢ Cấp phát và quản lý SSL certificate cho server/website
➢ Xác thực sự tồn tại và tính hiệu lực của SSL certificate mà Web client gửi tới cho nó
Dưới đây là một số thông tin quan trọng được chứa trong SSL certificate mà bất
cứ client nào cũng có thể xem được bằng cách click vào biểu tượng padlock trên thanh Address của Web browser:
➢ Thông tin về chủ sở hữu của certificate (như tên tổ chức, tên cá nhân hoặc domain của website…)
➢ Tên và chữ kí số của CA cấp certificate
➢ Khoảng thời gian mà chứng thư còn hiệu lực sử dụng
➢ Public key của server/website Còn private key được lưu trữ trên chính server (không có trong certificate) và tuyệt đối không thể để lộ cho bất
cứ client nào
➢ Một số thông tin phụ khác như: loại SSL certificate, các thuật toán dùng
để encryption và hashing, chiều dài (tính bằng bit) của key, cơ chế trao đổi key (như RSA, DSA…)
❖ Quá trình giao tiếp giữa client và server thông qua HTTPS
Client gửi request cho một secure page (có URL bắt đầu với https://)
Trang 9• Server gửi lại cho client certificate của nó
• Client gửi certificate này tới CA (mà được ghi trong certificate) để kiểm chứng
Giả sử certificate đã được xác thực và còn hạn sử dụng hoặc client vẫn cố tình truy cập mặc dù Web browser đã cảnh báo rằng không thể tin cậy được certificate này (do là dạng self-signed SSL certificate hoặc certificate hết hiệu lực, thông tin trong certificate không đúng…) thì mới xảy ra bước 4 sau
• Client tự tạo ra ngẫu nhiên một khóa đối xứng (symmetric encryption key), rồi sử dụng public key (trong certificate) để mã hóa symmetric key này và gửi về cho server
• Server sử dụng private key (tương ứng với public key trong certificate ở trên) để giải mã ra symmetric key ở trên
• Sau đó, cả server và client đều sử dụng symmetric key đó để mã hóa/giải
mã các thông điệp trong suốt phiên truyền thông
Và tất nhiên, các symmetric key sẽ được tạo ra ngẫu nhiên và có thể khác nhau trong mỗi phiên làm việc với server Ngoài encryption thì cơ chế hashing sẽ được sử dụng để đảm bảo tính Integrity cho các thông điệp được trao đổi
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 cho môi trường Web Tuy nhiên, vẫn có những cách thức mà hacker có thể sử dụng để qua mặt cơ chế bảo vệ của HTTPS
Hình 1.2 Mô hình minh hoạ sơ lược cách thức hoạt động của giao thức HTTPS
2 Bảo mật
2.1 Một số giao thức bảo mật
Giao thức SSL/TLS cung cấp bảo mật hiệu quả cho các phiên giao dịch Web, nhưng nó không phải là phương pháp duy nhất Kiến trúc mạng dựa trên các tầng giao thức, mồi tầng dựa trên các dịch vụ bên dưới chúng Có nhiều tầng giao thức khác nhau có thể hỗ trợ các dịch vụ bảo mật, và mỗi cái lại có những thuận lợi và khó
Trang 10khăn khác nhau Như chúng ta thấy, các nhà thiết kế ra SSL đã chọn phương pháp là tạo ra một tầng giao thức hoàn toàn mới cho việc bảo mật Nó có thể bao gồm các dịch vụ bảo mật trong giao thức ứng dụng hoặc thêm chúng vào nhân một giao thức mạng Một lựa chọn khác là các ứng dụng có thể dựa trên các giao thức song song cho một vài dịch vụ bảo mật Tất cả các tuỳ chọn này đã được đề cập đến trong việc bảo mật các giao dịch Web, và các giao thức thực tế tồn tại trong mỗi tuỳ chọn
2.1.1 Giao thức bảo mật ngăn cách (tách rời)
Các nhà thiết kế SSL quyết định tạo ra một giao thức ngăn cách cho bảo mật Trong thực tế, họ đã thêm vào một tầng trong kiến trúc giao thức của Internet
Hình 2.1.1 Vị trí SSL trong mô hình giao thức bảo mật tách rời
Bên trái Hình 2.1.1 minh hoạ các giao thức trong cho các truyền thông Web Bên
dưới cùng là Internet Protocol (IP) Giao thức này chịu trách nhiệm hỗ trợ định tuyến các thông điệp truyền trên mạng từ nguồn đến đích của chúng Transmission Control Protocol (TCP) dựa trên các dịch vụ của IP để bảo đảm rằng truyền thông là tin tưởng
được Trên cùng là Hypertext Transfer Protocol Bên phải của Hình 2.1.1, SSL thêm
sự bảo mật bằng cách thực thi như một giao thức bảo mật riêng biệt, thêm nó vào giữa HTTP và TCP Làm việc như một giao thức mới, SSL yêu cầu rất ít sự thay đổi trong các giao thức bên trên và bên dưới Giao diện ứng dụng HTTP với SSL gần giống như với TCP khi không có bảo mật
Bên cạnh việc yêu cầu những thay đổi rất nhỏ để có thể thi hành được, phương pháp này còn có những tiện ích quan trọng khác: nó cho phép SSL hỗ trợ các ứng dụng khác ngoài HTTP Mục đích chính của việc phát triển SSL là bảo mật Web, nhưng SSL cũng được sử dụng để thêm vào sự bảo mật cho các ứng dụng Internet khác, bao gồm Net News Transfer Protocol (NNTP) và File Transfer Protocol (FTP)
Trang 11được biết đến như là Secure HTTP Hình 2.1.2 minh họa kiến trúc giao thức này
Chuẩn Secure HTTP được xuất bản bởi IETF như là một giao thức thực nghiệm, và một vài sản phẩm cũng đã hỗ trợ chúng Tuy nhiên, nó chưa được ưa chuộng như SSL, và hiện nay khó mà có thể tìm thấy Secure HTTP bất kỳ nơi nào trên Internet
Hình 2.1.2 Bảo mật có thể được gắn trực tiếp vào giao thức ứng dụng
Một trong những bất lợi của việc thêm sự bảo mật vào trong một ứng dụng cụ thể là các dịch vụ bảo mật sẽ chỉ có giá trị trong ứng dụng đó Ví dụ, không giống như SSL, nó không thể bảo mật cho NNTP, FTP, hay các giao thức ứng dụng khác với Secure HTTP Một trong những bất tiện của phương pháp này còn là do nó liên kết các dịch vụ bảo mật một cách chặt chẽ với ứng dụng Mỗi khi giao thức ứng dụng thay đổi, các thi hành bảo mật phải được quan tâm cẩn thận, và các chức năng bảo mật của giao thức phải được thay đổi thích hợp Một giao thức tách rời như SSL cách
ly các dịch vụ bảo mật từ giao thức ứng dụng, cho phép mỗi dịch vụ tập chung vào giải quyết các vấn đề của riêng nó một cách có hiệu quả nhất
2.2 Bảo mật trong HTTPS
❖ Dữ liệu được gửi qua HTTPS được bảo mật qua giao thức Bảo mật tầng ổ bảo mật (SSL) hoặc Bảo mật tầng truyền tải (TLS), gồm có ba lớp bảo vệ
chính:
➢ Mã hóa—mã hóa dữ liệu được trao đổi để chống nghe lén Điều đó
nghĩa là trong lúc người dùng duyệt trang web, không ai có thể "nghe"
Trang 12cá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ọ
➢ 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
➢ 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 Giao thức này giúp chống lại các cuộc tấn công xen giữa và xây dựng niềm tin nơi người dùng, qua đó đem lại những lợi ích khác về mặt kinh doanh
Hình 2.2.a: Mô tả tính bảo mật của giao thức HTTPS trong khi truyền dữ liệu
Với việc sử dụng SSL/TLS, các Web site có thể cung cấp khả năng bảo mật thông tin Xác thực và toàn vẹn dữ liệu đến người dùng SSL/TLS được tích hợp sẵn vào các trình duyệt và Web server Cho phép người sử dụng làm việc với các trang Web ở chế độ an toàn
❖ Phương thức hoạt động SSL:
SSL sử dụng cái gọi là Public Key Cryptography hoặc hệ thống Public Key Infrastructure (PKI) Hệ thống PKI (key không đối xứng) sử dụng 2 key khác nhau
để mã hóa thông tin: public key và private key Bất cứ thứ gì được mã hóa
bằng public key đều chỉ có thể giải mã bằng private key tương ứng và ngược lại
Lưu ý rằng, private key - giống như cái tên của nó, nên được bảo vệ kỹ và chỉ
được truy cập bởi chính owner mà thôi Với một trang web, private key phải được
giữ an toàn trên Server Nhưng ngược lại, public key lại được cấp phát công khai cho bất kỳ ai, và tất cả mọi người đều cần nó để giải mã thông tin đã được mã hóa trước đấy bằng private key Bây giờ, chúng ta đã hiểu cách làm việc của cặp public key và private key, ta sẽ tiếp tục mô tả quá trình hoạt động SSL thông qua từng bước như sau Giả sử bạn truy cập 1 website có sử dụng HTTPS: