HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
BÁO CÁO BÀI TẬP LỚN MÔN HỌC
MẬT MÃ HỌC NÂNG CAO
Chủ đề số 12
XÂY DỰNG KỊCH BẢN SO SÁNH HTTP VÀ HTTPS
Giảng viên: ThS. Phạm Quốc Hoàng
KS. Nguyễn Văn Nghị
Thực hiện: Sinh viên lớp AT8B
1. Phạm Hữu Thiết
2. Tô Quang Hiền
3. Tạ Thị Thanh Thùy
4. Trần Viết Trọng
HÀ NỘI, 2015
Ý KIẾN CỦA GIẢNG VIÊN
MỤC LỤC
DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT
Viết tắt Giải thích
CA Certificate Authority
DES Data Encryption Standard
DSA Digital Signature Algorithm
FTP File Tranfer Protocol
HTTP HyperText Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
KEA Key Exchange Algorithm
NNTP Network News Transfer Protocol
MD5 Message Digest algorithm
MIME Multipurpose Internet Mail Extensions
SSL Secure Sockets Layer
TCP Transmission Control Protocol
TSL Transport Layer Security
UA User Agent
SHA-1 Secure Hash Algorithm
SMTP Simple Mail Transfer Protocol
Xây dựng kịch bản so sánh Http và HttpsPage 4
DANH MỤC CÁC HÌNH VẼ
Xây dựng kịch bản so sánh Http và HttpsPage 5
LỜI NÓI ĐẦU
Mạng internet là xu hướng phát triển của thế giới ngày nay. Hiện nay internet đã
trở nên rất phổ biến trên toàn thế giới. Thông qua mạng internet mọi người có
thể trao đổi thông tin với nhau một cách nhanh chóng thuận tiện. Những công ty
phát triển và kinh doanh trên môi trường intranet/internet họ phải đối diện với
khó khăn lớn là làm thế nào để bảo vệ dữ liệu quan trọng, ngăn chăn những hình
thức tấn công, truy xuất dữ liệu bất hợp pháp từ bên trong (intranet), lẫn cả bên
ngoài (internet). Khi một người muốn trao đổi thông tin với một người hay tổ
chức nào đó thông qua mạng máy tính thì yêu cầu quan trọng là làm sao để đảm
bảo thông tin không bị sai lệch hoặc bị lộ do sự xâm nhập của kẻ thứ ba. Trước
yêu cầu cấp thiết đó, một số giải thuật mã hóa đã được xây dựng nhằm đảm bảo
tính an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu được truyền trên mạng.
Đứng trước vấn đề thực tế đó, các tài liệu chuyên môn bắt đầu đề cập đến nhiều
vấn đề để đảm bảo an toàn thông tin cho các máy tính kết nối với mạng Internet.
Trong những phương pháp bảo vệ sự toàn vẹn thông tin khi kết nối Internet phổ
biến nhất hiện nay là phương pháp mã hóa “Cryptography”
HTTPS là giải pháp dùng mã hóa thay cho HTTP truyền thống giúp giao dịch
trên internet được an toàn hơn nhờ kết hợp giao thức SSL\TLS
Trong quá trình làm chúng em chân thành cảm ơn sự hướng dẫn của thầy
Nguyễn Văn Nghị cũng như kiến thức chung về mật mã đã giúp nhóm rất nhiều
trong quá trình làm đề tài!
Xây dựng kịch bản so sánh Http và HttpsPage 6
Chương 1. Giao thức HTTP (HyperText Transfer
Protocol)
1.1. Tổng quan về giao thức HTTP
HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải
siêu văn bản). Nó là giao thức cơ bản mà World Wide Web sử dụng
HTTP là giao thức truyền tải các file từ một Web server vào một trình duyệt
Web để người dùng có thể xem một trang Web đang hiện diện trên Internet và 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). Hoạt động thông thường ở port 80 và là giao thức hướng kết nối. Nói
cách khác, trước khi thực hiện phiên làm việc, giao thức HTTP sẽ thực hiện bắt
tay.
Hình 1.1: HTTP hoạt động ở tầng ứng dụng
HTTP cũng được sử dụng như một giao thức chung để truyền thông giữa tác
nhân người dùng (User Agent - UA) và các proxy, gateway (Một máy chủ hoạt
động như một điểm trung gian đối với máy chủ khác, tiếp nhận các yêu cầu từ
máy khách với vai trò như một máy chủ gốc) đến các hệ thống Internet khác,
gồm cả các hệ thống hỗ trợ giao thức truyền thư đơn giản (Simple Mail Transfer
Protocol – SMTP), giao thức truyền tin tức liên mạng (Network News Transfer
Protocol – NNTP), giao thức truyền tệp tin (File Tranfer Protocol – FTP), giao
thức Gopher (được thiết kế chính để tìm kiếm và lưu trữ tài liệu phân tán) và
WAIS (hệ thống tìm kiếm theo mô hình khách – chủ sử dụng tiêu chuẩn ANSI
Z39.50). Bằng cách này, HTTP cho phép truy cập siêu phương tiện đến các tài
nguyên sẵn có từ các ứng dụng đa dạng.
1.2. Mô hình HTTP
Giao thức HTTP là một giao thức có dạng yêu cầu/đáp ứng. Khi một máy
khách gửi một yêu cầu đến máy chủ gồm phương thức yêu cầu (gồm GET,
POST, HEAD,…), URI, phiên bản giao thức, kèm với thông điệp kiểu MIME
Xây dựng kịch bản so sánh Http và HttpsPage 7
gồm các tham số chỉnh sửa của yêu cầu, thông tin máy khách và nội dung chính
thông qua kết nối đến máy chủ. Máy chủ sẽ đáp ứng bằng dòng trạng thái, gồm
phiên bản giao thức thông điệp và mã thông báo thành công hay lỗi, kèm với
thông điệp kiểu MIME có chứa thông tin về máy chủ, các thông tin thêm về đối
tượng và nội dung chính của đối tượng.
Hình 1.2: Mô hình HTTP đơn giản
Khi giao dịch chuyển tải đã được thiết lập một bên (thường là trình duyệt
phải gửi yêu cầu cho bên kia đáp lời)
Tình huống phức tạp hơn xảy ra khi có một hoặc nhiều điểm trung gian trong
chuỗi yêu cầu/đáp ứng. Có ba dạng trung gian phổ biến như: proxy, gateway và
tunnel (Một chương trình trung gian hoạt động như một điểm trung chuyển
giữahai kết nối). Proxy là một điểm chuyển tiếp, nhận các yêu cầu cho một URI,
viết lại tất cả hoặc một phần của thông điệpvà chuyển tiếp yêu cầu đã định dạng
lại về phía máy chủ xác định bởi URI. Ở đây, gateway hoạt động như một lớp
phía trên của máy chủ khácvà nếu cần thiết, biên dịch các yêu cầu tới giao thức
máy chủ cơ sở. Tunnel hoạt động như một điểm trung chuyển giữa hai kết nối
mà không cần thay đổi thông điệp, các tunnel được sử dụng khi giao tiếp cần
phải đi qua một điểm trung gian (như tường lửa) ngay cả khi điểm trung gian
này không hiểu được nội dung của thông điệp.
Hình 1.3: Mô hình HTTP phức tạp ( nguồn RCF 2616- HTTP)
Hình 3 mô tả ba điểm trung gian (A, B và C) giữa tác nhân người dùng và
máy chủ gốc. Một thông điệp yêu cầu/đáp ứng sẽ truyền qua toàn bộ các điểm
này bằng bốn kết nối riêng biệt. Mỗi điểm trung gian có thể được tham gia vào
nhiều kết nối và các giao tiếp khác tại cùng một thời điểm. Ví dụ, điểm B có thể
Xây dựng kịch bản so sánh Http và HttpsPage 8
nhận yêu cầu từ nhiều máy khách khác ngoài A, hay chuyển tiếp yêu cầu đến
nhiều máy chủ khác ngoài C đồng thời với việc xử lý yêu cầu từ điểm A.
1.3. Cấu trúc thông điệp HTTP
HTTP có hai tác nhân là client và server. Các client gởi yêu cầu (request) và
server trả lời (response). Vì vậy, chúng ta sẽ phân tích hai thông điệp chính là
HTTP Requests và HTTP Responses.
1.3.1 HTTP Request
Hình1.4: HTTP request
Hình trên cho thấy cấu trúc cơ bản của HTTP Requests. Một HTTP
Requests. bắt đầu bởi Request-Line. Request-Line có thể được theo sau bởi một
hoặc nhiều header và body.
Để cụ thể hơn, hình bên dưới cho thấy một thông điệp http (dưới dạng văn
bản) do Internet Explorer của Microsoft gửi khi người dùng truy cập vào trang
. Dòng đầu tiên là Request-Line, và tiêu đề thông điệp tạo
nên phần còn lại của văn bản.
Hình 1.5: Một ví dụ về nội dung thông điệp HTTP
Xây dựng kịch bản so sánh Http và HttpsPage 9
Hình dưới phân tích cụ thể hơn Request-Line, bao gồm 3 phần: Method –
phương thức của thông điệp, URI, và Version- phiên bản của HTTP
Hình 1.6: Ví dụ cụ thể về Request - Line
Phương thức (method) cụ thể xuất hiện đầu tiên trong Request-Line. Trong ví
dụ trên đây là một phương thức GET
Mục tiếp theo trong Request-Line là Request-URI. Request-URI chứa nguồn
tài nguyên cần truy cập. Trong ví dụ trên, Request-uri là (/), chỉ ra một yêu cầu
đối với các nguồn tài nguyên gốc. Phần cuối cùng của Request-Line là phiên bản
HTTP. Như ví dụ trên cho thấy, HTTP phiên bản 1.1.
1.3.2 HTTP Response
Request Resonse bắt đầu bởi Status-Line (dòng mã trạng thái). Sau đó là phần
thông tin của Header và một dòng trắng. Cuối cùng là phần body
Hình 1.7: Cấu trúc thông điệp HTTP Response
Status-Line bắt đầu bởi số phiên bản của HTTP (trường hợp này là
HTTP/1.1), sau đó là mã trạng thái(trường hợp này là 200 OK)
Xây dựng kịch bản so sánh Http và HttpsPage 10
Hình 1.8: Cụ thể trường Status - Line
Xây dựng kịch bản so sánh Http và HttpsPage 11
Chương 2. Giao thức SSL/TLS
2.1. Giới thiệu SSL
Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi
qua rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các
thông tin trên đường truyền. Không một ai kể cả người sử dụng lẫn Web server
có bất kỳ sự kiểm soát nào đối với đường đi của dữ liệu hay có thể kiểm soát
được liệu có ai đó thâm nhập vào thông tin trên đường truyền. Để bảo vệ những
thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp
những yếu tố sau để thiết lập được một giao dịch an toàn:
• Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia của
kết nối. Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác thực của
người sử dụng.
• Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba. Để loại
trừ việc nghe trộm những thông tin “ nhạy cảm” khi nó được truyền qua
Internet, dữ liệu phải được mã hoá để không thể bị đọc được bởi những người
khác ngoài người gửi và người nhận.
• Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó phải thể hiện
chính xác thông tin gốc gửi đến.
Với việc sử dụng SSL 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 được tích hợp sẵn vào các
browser 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. Khi Web browser sử dụng kết nối SSL tới server, biểu tượng ổ
khóa sẽ xuất hiện trên thanh trạng thái của cửa sổ browser và dòng “http” trong
hộp nhập địa chỉ URL sẽ đổi thành “https”. Một phiên giao dịch HTTPS sử dụng
cổng 443 thay vì sử dụng cổng 80 như dùng cho HTTP.
SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã được
chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:
• Xác thực server: Cho phép người sử dụng xác thực được server muốn kết nối.
Lúc này, phía browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng
certificate và public ID của server là có giá trị và được cấp phát bởi một CA
(certificate authority) trong danh sách các CA đáng tin cậy của client. Điều này
rất quan trọng đối với người dùng. Ví dụ như khi gửi mã số credit card qua
mạng thì người dùng thực sự muốn kiểm tra liệu server sẽ nhận thông tin này có
đúng là server mà họ định gửi đến không.
• Xác thực Client: Cho phép phía server xác thực được người sử dụng muốn kết
nối. Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem
certificate và public ID của server có giá trị hay không và được cấp phát bởi một
Xây dựng kịch bản so sánh Http và HttpsPage 12
CA (certificate authority) trong danh sách các CA đáng tin cậy của server không.
Điều này rất quan trọng đối với các nhà cung cấp. Ví dụ như khi một ngân hàng
định gửi các thông tin tài chính mang tính bảo mật tới khách hàng thì họ rất
muốn kiểm tra định danh của người nhận.
• Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server được mã hoá
trên đường truyền nhằm nâng cao khả năng bảo mật. Điều này rất quan trọng đối
với cả hai bên khi có các giao dịch mang tính riêng tư. Ngoài ra, tất cả các dữ
liệu được gửi đi trên một kết nối SSL đã được mã hoá còn được bảo vệ nhờ cơ
chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu. ( đó là các thuật toán
băm – hash algorithm).
SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính cơ bản:
- Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng cách
sử dụng mật mã khóa chung.
- Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối kết được mã hóa trong
suốt sau khi một sự thiết lập quan hệ ban đầu và sự thương lượng khóa session
đã xảy ra.
- Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ vì
các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt
bằng cách sử dụng MAC.
Tuy nhiên, điều quan trọng cần lưu ý là SSL không ngăn các cuộc tấn công
phân tích lưu lượng. Ví dụ, bằng cách xem xét các địa chỉ IP nguồn và đích
không được mã hóa và các sô cổng TCP, hoặc xem xét lượng dữ liệu được
truyền, một người phân tích lưu lượng vẫn có thể xác định các bên nào đang
tương tác, các loại dịch vụ đang được sử dụng, và đôi khi ngay cả dành được
thông tin về các mối quan hệ doanh nghiệp hoặc cá nhân. Hơn nữa, SSL không
ngăn các cuộc tấn công có định hướng dựa vào phần thực thi TCP, chẳng hạn
như các cuộc tấn công làm tràn ngập TCP SYN hoặc cưỡng đoạt session.
Để sử dụng sự bảo vệ SSL, cả client lẫn server phải biết rằng phía bên kia
đang sử dụng SSL. Nói chung, có ba khả năng để giải quyết vấn đề này:
- Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned
Numbers Authority (IANA). Trong trường hợp này, một số cổng riêng biệt phải
được gán cho mọi giao thức ứng dụng vốn sử dụng SSL.
- Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng
các tùy chọn bảo mật như là một phần của giao thức ứng dụng (bây giờ được
chỉnh sửa đôi chút).
Xây dựng kịch bản so sánh Http và HttpsPage 13
- Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức
bảo mật, chẳng hạn như SSL trong suốt giai đoạn thiết lập nối kết TCP thông
thường.
2.2. Các thuật toán mã hóa trong SSL
Các thuật toán mã hoá (cryptographic algorithm hay còn gọi là cipher) là các
hàm toán học được sử dụng để mã hoá và giải mã thông tin. Giao thức SSL hỗ
trợ rất nhiều các thuật toán mã hoá, được sử dụng để thực hiện các công việc
trong quá trình xác thực server và client, truyền tải các certificates và thiết lập
các khoá của từng phiên giao dịch (sesion key). Client và server có thể hỗ trợ
các bộ mật mã (cipher suite) khác nhau tuỳ thuộc vào nhiều yếu tố như phiên
bản SSL đang dùng, chính sách của công ty về độ dài khoá mà họ cảm thấy chấp
nhận được - điều này liên quan đến mức độ bảo mật của thông tin, ….
Các bộ mật mã được trình bày ở phần sau sẽ đề cập đến các thuật toán sau:
* DES (Data Encryption Standard) là một thuật toán mã hoá có chiều dài khoá là
56 bit.
* 3-DES (Triple-DES): là thuật toán mã hoá có độ dài khoá gấp 3 lần độ dài
khoá trong mã hoá DES
* DSA (Digital Signature Algorithm): là một phần trong chuẩn về xác thực số
đang được được chính phủ Mỹ sử dụng.
* KEA (Key Exchange Algorithm) là một thuật toán trao đổi khoá đang được
chính phủ Mỹ sử dụng.
* MD5 (Message Digest algorithm) được phát thiển bởi Rivest.
* RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã
hoá dữ liệu được Rivest, Shamir, and Adleman phát triển.
* RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật
toán RSA.
* RC2 and RC4: là các thuật toán mã hoá được phát triển bởi Rivest dùng cho
RSA Data Security.
* SHA-1 (Secure Hash Algorithm): là một thuật toán băm đang được chính phủ
Mỹ sử dụng.
Các thuật toán trao đổi khoá như KEA, RSA key exchange được sử dụng để
2 bên client và server xác lập khoá đối xứng mà họ sẽ sử dụng trong suốt phiên
giao dịch SSL. Và thuật toán được sử dụng phổ biến là RSA key exchange.
Xây dựng kịch bản so sánh Http và HttpsPage 14
Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hoá. Người
quản trị có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và server. Khi một
client và server trao đổi thông tin trong giai đoạn bắt tay (handshake), họ sẽ xác
định bộ mã hoá mạnh nhất có thể và sử dụng chúng trong phiên giao dịch SSL.
Xây dựng kịch bản so sánh Http và HttpsPage 15
Chương 3. Giao thức HTTPS
3.1. Giới thiệu HTTPS
HTTPS là viết tắt của “Hypertext Transfer Protocol Secure”, Nó là một sự
kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao
đổi thông tin một cách bảo mật trên Internet. Giao thức HTTPS thường được
dùng trong các giao dịch nhậy cảm cần tính bảo mật cao.
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.
Dù chưa đảm bảo được tính bảo mật 100% nhưng HTTPS vẫn an toàn hơn
rất nhiều so với HTTP. Khi bạn kết nối vào một máy chủ sử dụng HTTPS, trình
duyệt sẽ kiểm tra chứng thực bảo mật (security certificate) của trang web này để
xem xem chứng thực nói trên có được cung cấp bởi một đơn vị đáng tin cậy hay
không. Nhờ đó, khi bạn truy cập vào những địa chỉ như ,
trình duyệt của bạn sẽ xác thực được rằng bạn đang truy cập vào địa chỉ thực của
Ngân Hàng A.
Dĩ nhiên, HTTPS không phải là không có lỗ hổng: các đơn vị cấp phát chứng
thực bảo mật sẽ xác nhận rằng là địa chỉ xác thực của
Ngân hàng A. Do đó, nếu các đơn vị cấp phát chứng thực để lọt một trang web
xấu nào đó, bạn vẫn có thể bị lừa đảo khi truy cập vào các địa chỉ giả sử dụng
HTTPS.
Dù có lỗ hổng nhưng HTTPS vẫn tỏ ra hữu ích trong hầu hết các trường hợp
sử dụng. Khi bạn cần cung cấp các thông tin như số thẻ tín dụng hoặc địa chỉ
email, các trang web uy tín thường chuyển sang sử dụng các kênh HTTPS được
mã hóa. Nhờ đó, các nhà mạng hoặc hacker gần như không thể dò tìm thông tin
của bạn.
HTTPS cũng hỗ trợ tăng cường tính riêng tư. Ví dụ, hiện nay Google đang sử
dụng giao thức HTTPS cho cả trang tìm kiếm của mình. Trước đây, do chỉ sử
dụng HTTP nên bất kì ai cùng mạng Wi-Fi đều có thể theo dõi các tìm kiếm
Google của bạn. Nếu như bạn truy cập vào các trang web khác, ví dụ như
Xây dựng kịch bản so sánh Http và HttpsPage 16
Wikipedia thông qua HTTPS, những người cùng mạng cũng không thể biết được
bạn đang xem thông tin về chủ đề nào.
3.2. So sánh HTTP và HTTPS
Vấn đề với HTTP
Khi bạn kết nối với một trang web thông qua giao thức HTTP, trình duyệt sẽ
tìm địa chỉ IP tương ứng với trang web đó và kết nối với địa chỉ IP này. Trình
duyệt sẽ mặc nhiên coi rằng bạn đang kết nối với đúng máy chủ cần kết nối. Dữ
liệu gửi qua HTTP cũng không hề được mã hóa, thay vào đó chỉ sử dụng dạng
ký tự văn bản bình thường, do đó những kẻ nghe/xem lén trên mạng Wi-Fi của
bạn, nhà mạng mà bạn đang sử dụng và cả những cơ quan tình báo như NSA đều
có thể dò tìm ra các trang web mà bạn đã ghé thăm cũng như các thông tin bạn
đã gửi/nhận. Như vậy, những kẻ nghe lén sẽ dễ dàng lấy cắp được mật khẩu, số
thẻ tín dụng và các thông tin khác mà bạn gửi qua HTTP.
Không chỉ có vậy, nếu chỉ sử dụng HTTP, bạn sẽ không có cách nào để xác
thực rằng mình đang kết nối vào đúng trang web cần tới cả. Ví dụ, qua hình thức
lừa đảo phishing, bạn có thể đang truy cập vào một trang web giả dạng làm một
ngân hàng hoặc một trang bán hàng qua mạng. Ngay cả khi bạn truy cập vào các
trang web thông thường qua HTTP, khả năng bạn bị người khác theo dõi và lấy
cắp thông tin cá nhân vẫn có thể xảy ra.
Nói tóm lại, vấn đề lớn nhất của HTTP là giao thức này không được mã hóa.
HTTPS sử dụng mã hóa để khắc phục các vấn đề này.
Ngoài việc thấy ở trình duyệt, một số ứng dụng hiện tại cũng đang sử dụng cơ
chế http để truyền tải dữ liệu, ví dụ điển hình nhất là yahoo.
Hình 3.1: Sơ đồ cơ chế HTTP
Một đặc điểm của giao thức Http là dữ liệu được truyền bởi giao thức này là
plain text, hoàn toàn không bị xào nấu hay mã hóa được. Đó là lý do khi bạn sử
dụng giao thức này, nếu có người thứ 3 chụp được gói tin bạn gửi đi, họ sẽ biết
được nội dung bạn gửi
Xây dựng kịch bản so sánh Http và HttpsPage 17
Hình 3.2: Sơ đồ cơ chế HTTP bị phá vỡ
HTTPS
Https là viết tắt cảu Hypertext Transfer Protocol Secure (Giao thức truyền tài
siêu văn bản có bảo mật). Qua tên, chúng ta có thể đoán được là Https khác Http
ở điểm nào . Đó chính là Https hỗ trợ thêm bảo mật, nó giải quyết vấn đề thông
tin gửi nhận lên internet của chúng ta bị rò rỉ.
Https thường được sử dụng trong những trừơng hợp đăng nhập, đăng ký,
thanh toán tiền, thanh toán thẻ, … Chúng là những thông tin nhạy cảm cần được
bảo vệ.
Hình 3.3: Ví dụ về HTTPS
Https là sự kết hợp giữa http và SSL/TLS để mã giao thức, giúp việc bảo vệ dữ
liệu được tốt hơn. Chúng ta có thể lấy ví dụ bị lủng trong trường hợp Http ở
trên:
Xây dựng kịch bản so sánh Http và HttpsPage 18
Hình 3.4: Sơ đồ cơ chế HTTPS bị phá vỡ
Vì sao HTTPS lại chưa được phổ biến
Ars Technica đã trao đổi với Yves Lafon, chuyên gia về HTTP cũng như
HTTPS tại W3C. Vấn đề thật sự, theo Lafon, nếu như sử dụng HTTPS, mọi
người sẽ mất đi quyền truy cập vào hệ thống bộ nhớ đệm lưu trữ. “Đây hoàn
toàn chẳng phải là vấn đề khi máy chủ cũng như người sử dụng ở cùng khu vực.
Nhưng những người ở Úc chẳng hạn, họ luôn muốn dữ liệu được lưu trữ tạm
thời và có thể sử dụng ngay mà không phải chờ đợi khoảng thời gian truyền dữ
liệu quá lớn từ những máy chủ ở các châu lục khác”.
Lafon cũng nói thêm về tốc độ truy cập khi chuyển giao thức từ HTTP sang
HTTPS. Một cách ngắn gọn, với công nghệ hiện tại, việc tải một trang web sử
dụng HTTPS sẽ chậm hơn nhiều so với HTTP.
Có những vấn đề mà những người thiết kế web gặp phải và họ cố gắng giải
quyết, ví dụ như số tiền lớn họ phải bỏ ra để bảo đảm an ninh mạng cho trang
web. Với những trang web nhỏ, việc này sẽ bị bỏ qua. Nhưng với những công ty
lớn, những website có lưu lượng sử dụng cũng như chuyển khoản rất cao, thì
không đơn giản như vậy.
Những trang web không đòi hỏi việc đăng nhập cũng như có chứa các dữ liệu
quan trọng, thì việc chuyển đổi từ HTTP sang HTTPS và mất đi bộ nhớ đệm
hoàn toàn không đem lại lợi ích gì cả. Tuy nhiên, đối với những trang web như
Facebook, Google Apps hay Twitter, nhiều người sử dụng có thể sẵn sàng đánh
đổi tốc độ truy cập lấy sự an toàn khi sử dụng dịch vụ.
Và thực tế, ngày càng nhiều trang web lớn cung cấp chức năng truy cập bằng
HTTPS để người sử dụng có thể yên tâm hơn về chất lượng bảo mật. Bên cạnh
đó, họ cũng bỏ ra khá nhiều công sức để rút ngắn lại khoảng cách khác biệt về
tốc độ truy cập giữa HTTP và HTTPS.
Một vấn đề khác khi hoạt động trang web sử dụng giao thức kết nối HTTPS là
cái giá của nó khá cao.
Đó chính là lý do những trang web nhỏ có xu hướng “mặc kệ” lựa chọn tuyệt
vời này. Tuy nhiên nếu một ngày đẹp trời nào đó trang web của bạn đột nhiên
trở thành hàng “hot”, thì chắc chắn bạn không nên bỏ qua lựa chọn chuyển từ
HTTP sang HTTPS nêu trên. Có lẽ lý do chủ yếu khiến mọi người không mấy
Xây dựng kịch bản so sánh Http và HttpsPage 19
mặn mà với HTTPS, đó là những trang web sử dụng giao thức này không thể
chạy trên những máy chủ ảo.
Máy chủ ảo, phương pháp tuyệt vời và rẻ tiền nhất cho những nhà cung cấp
mạng. Nó cho phép nhiều trang web có thể tồn tại trên cùng một hệ thống máy
chủ vật lý thông thường, hàng trăm trang web khác nhau cùng chung một địa chỉ
IP. Nhưng chúng chỉ hoạt động được trên giao thức kết nối HTTP. Với HTTPS,
hệ thống đó sẽ trở thành “đồ bỏ”.
Xây dựng kịch bản so sánh Http và HttpsPage 20
Chương 4. Xây dựng kịch bản so sánh HTTP và HTTPS
4.1. Mô hình
Hình 4.1: Mô hình thực hiện chặn bắt gói tin Http và Https
Máy chủ web (win server 2008)
- Đc 192.168.1.1/255.255.255.0
- Dns 192.168.1.1
- Cài đặt iis 7.5
- PHP manager
- MYSQL server 5.4.3
Cấu hình website www.hvmatma.vn bằng 2 giao thức http và https
Victim
- Đc 192.168.1.2/255.255.255.0
- Dns 192.168.1.1
Hacker
- Đc 192.168.1.3/255.255.255.0
- Dns 192.168.1.1
- Cài đặt sniffer với whireshark
Xây dựng kịch bản so sánh Http và HttpsPage 21
4.2. Demo
Khi người dùng truy cập vào website thông qua giao thức http thì gói tin chứa
username và password sẽ được hiện thị dưới dạng rõ và dễ dàng bị hacker bắt lại
Hình 4.1: Người dùng truy cập vào website thông qua giao thức Http bị hacker
bắt user và password
Khi người dùng truy cập vào website thông qua giao thức https thì gói tin chứa
username và password sẽ được mã hóa cho nên khi hacker bắt lại gói tin đó
cũng không thể thấy được
Xây dựng kịch bản so sánh Http và HttpsPage 22
Hình 4.2: User và password được mã hóa khi người dùng truy cập website qua
giao thức Https
Xây dựng kịch bản so sánh Http và HttpsPage 23
KẾT LUẬN
Internet là nhu cầu thiết yếu trong đời sống ngày nay và http là giao thức góp
phần vào điều đó. Cùng với phát triển xã hội và công nghệ thông tin các giao
dịch trên mạng, thương mại điện tử ngày cảng phổ biến và được áp dụng rộng
rãi.
Để giải quyết vấn đề an toàn người ta đã phát triển HTTPS với sự kết hợp của
HTTP với SSL\TLS giúp giao dịch trên internet được đảm bảo bí mật và toàn
vẹn hơn. Bài báo cáo chúng em đã nêu tổng quan giao thức HTTP, cách thức
hoạt động , điểm yếu và sự cải thiện khi dùng HTTPS
Qua đề tài cũng đã làm rõ tại sao nên dùng HTTPS và khi nào nên dùng nhằm
đưa ra kiến thức tổng quan để người dùng internet hiểu rõ hơn để có thể sử dụng
internet một cách an toàn
Trong quá trình làm không tránh khỏi thiếu sót mong thầy giáo và mọi người
góp ý thêm để nhóm hoàn thiện hơn trong các đề tài sau!
Xây dựng kịch bản so sánh Http và HttpsPage 24
TÀI LIỆU THAM KHẢO
[1] Jonathan Katz và Yehuda Lindell, Introduction to Modern Cryptography
[2] Handbook of Applied Cryptography
[3] Thái,
Xây dựng kịch bản so sánh Http và HttpsPage 25