LỜI CAM ĐOAN
..
Tôi xin cam đoan đề tài nghiên cứu của tôi do tôi nghiên cứu và thực hiện dưới
sự hướng dẫn của Thầy giáo TS. Nguyễn Đình Hƣng. Với mục đích học tập, nghiên
cứu để nâng cao kiến thức và trình độ chun mơn nên tơi đã làm luận văn này một
cách nghiêm túc và hoàn toàn trung thực.
Để hoàn thành bản luận văn này, ngoài các tài liệu tham khảo đã liệt kê, tôi cam
đoan không sao chép tồn văn các cơng trình hoặc thiết kế tốt nghiệp của người khác.
Nếu xảy ra bất cứ điều không đúng như những lời cam đoan trên, tơi xin chịu
hồn tồn trách nhiệm trước viện và Nhà trường.
Hà Nội, tháng 8 năm 2015
Học viên
Trần Thị Hằng
LỜI CẢM ƠN
Để hoàn thành luận văn “Nghiên cứu bảo mật thơng tin cho hệ thống website”,
em xin tỏ lịng biết ơn sâu sắc đến TS – Nguyễn Đình Hưng đã tận tình hướng dẫn
trong suốt quá trình viết luận văn tốt nghiệp.
Em xin chân thành cảm ơn quý Thầy, Cô Viện Công nghệ Thông tin & Truyền
thông, Trường Đại học Bách Khoa Hà Nội, đã tận tình truyền đạt kiến thức trong thời
gian học tập và nghiên cứu. Với vốn kiến thức được tiếp thu trong quá trình học tập và
nghiên cứu không chỉ là nền tảng cho quá trình nghiên cứu khóa luận mà cịn là hành
trang q báu để em bước vào đời một cách vững chắc và tự tin.
Em rất biết ơn sự ủng hộ của đồng nghiệp, gia đình và bạn bè – những người
thân yêu luôn là chỗ dựa vững chắc cho em.
Trong phạm vi luận văn tốt nghiệp cao học khó có thể diễn đạt hết ý về mặt lý
thuyết cũng như kỹ thuật, mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nổ lực
của bạn thân, song luận văn khó có thể tránh khỏi những thiếu sót. Kính mong nhận
được những ý kiến đóng góp để tác giả tiếp tục hoàn thiện kiến thức cũng như giải
pháp của mình.
Cuối cùng, em xin kính chúc Q Thầy cơ, Bạn bè, Đồng nghiệp luôn dồi dào
sức khỏe và thành công trong sự nghiệp.
Xin chân thành cảm ơn!
Học viên
Trần Thị Hằng
M C
C
LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH M C CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
DANH M C CÁC HÌNH VẼ, CÁC BIỂU BẢNG
MỞ ĐẦU ............................................................................................................. 1
CHƢƠNG I. TỔNG QUAN VỀ AN NINH AN TOÀN ỨNG D NG WEB ... 3
1.1. Khái niệm về an tồn thơng tin .................................................................. 3
1.2. Các công nghệ dùng trong ứng dụng web.................................................. 6
1.2.1. Giao thức HTTP, SSL ......................................................................... 6
1.2.2. Công nghệ được sử dụng để tạo trang web ....................................... 18
1.3. Phân tích thực trạng bảo mật website ngày nay ....................................... 21
1.4. Các rủi ro thường gặp trong ứng dụng web ............................................. 24
1.4.1. Dữ liệu đầu vào khơng được kiểm tra ............................................... 24
1.4.2. Lỗi kiểm sốt truy cập nguồn tài nguyên .......................................... 26
1.4.3. Lỗi liên quan đến quá trình quản lý xác thực và phiên truy cập ....... 27
1.4.4. Lỗi Cross Site Scripting (XSS) ......................................................... 27
1.4.5. Lỗi tràn bộ đệm ................................................................................. 29
1.4.6. Lỗi Injection ...................................................................................... 30
1.4.7. Lưu trữ thiếu an tồn ......................................................................... 31
1.4.8. Tấn cơng từ chối dịch vụ ................................................................... 32
1.4.9. Quản lý cấu hình thiếu an tồn.......................................................... 33
CHƢƠNG II. PHÂN TÍCH CÁC VẤN ĐỀ LỖ HỔNG BẢO MẬT THÔNG
TIN WEBSITE .................................................................................................. 35
2.1. Thao tác trên tham số truyền .................................................................... 35
2.1.1. Thao tác trên URL ............................................................................. 35
2.1.2. Thao tác trên biến ẩn Form ............................................................... 36
2.1.3. Thao tác trên Cookie ......................................................................... 38
2.1.4. Thao tác trong HTTP Header ............................................................ 39
2.2. Chèn câu lệnh truy vấn SQL (SQL Injection) ......................................... 40
2.2.1. Khái niệm SQL Injection .................................................................. 40
2.2.2. Giới thiệu mô hình cơ sở dữ liệu....................................................... 40
2.2.3. Các cách tấn cơng.............................................................................. 41
2.2.4. Cách phòng chống ............................................................................. 54
2.3. Chèn mã lệnh thực thi trên trình duyệt nạn nhân (Cross Side Scripting) 57
2.3.1. Kỹ thuật tấn công Cross Site Scripting (XSS) .................................. 57
2.3.2. Phương pháp tấn công XSS truyền thống ......................................... 59
2.3.3. Một số website tìm thấy lỗ hổng XSS .............................................. 62
2.3.4. Tấn cơng XSS bằng Flash ................................................................. 63
2.3.5. Cách phịng chống ............................................................................. 65
2.4. Tràn bộ đệm (Buffer Overfow) ................................................................ 65
2.4.1. Khái niệm .......................................................................................... 65
2.4.2. Sơ đồ tổ chức của bộ nhớ .................................................................. 66
2.4.3. Một số cách gây tràn bộ đệm qua ứng dụng web.............................. 67
2.4.4. Các cách phòng chống ...................................................................... 67
2.5. Tấn công từ chối dịch vụ (DoS) ............................................................... 67
2.5.1. Khái niệm .......................................................................................... 67
2.5.2. Những khả năng bị tấn công bằng DoS ............................................ 68
2.5.3. Các kỹ thuật tấn công ........................................................................ 68
2.5.4. Biện pháp phòng chống..................................................................... 73
2.6. Chiếm hữu phiên làm việc (Session Management) ................................. 74
2.6.1. Tổng quan về Session ID .................................................................. 74
2.6.2. Ấn định phiên làm việc ..................................................................... 74
2.6.3. Đánh cắp phiên làm việc ................................................................... 76
CHƢƠNG III. TRIỂN KHAI PHƢƠNG PHÁP TẤN CÔNG TỪ CHỐI
DỊCH V VÀ GIẢI PHÁP BẢO MẬT WEBSITE TRƢỜNG ĐẠI HỌC SƢ
PHẠM KỸ THUẬT VINH ............................................................................... 77
3.1. Tình hình ứng dụng cơng nghệ thơng tin giai đoạn 2011-2015............... 77
3.1.1. Hạ tầng kỹ thuật ................................................................................ 77
3.1.2. Ứng dụng nội bộ................................................................................ 78
3.2. Hiện trạng Website trường Đại học Sư Phạm Kỹ thuật vinh................... 79
3.3. Tấn công từ chối dịch vụ (DoS) ............................................................... 79
3.3.1. Giới thiệu về tấn công mô phỏng ...................................................... 79
3.3.2. Công cụ và các bước chuẩn bị .......................................................... 79
3.3.3. Tiến hành tấn công ............................................................................ 80
3.4. Đánh giá ................................................................................................... 84
3.5. Giải pháp chống DoS được đưa ra cho website trường Đại học Sư phạm
Kỹ thuật vinh ................................................................................................... 84
KẾT LUẬN ........................................................................................................ 91
TÀI LIỆU THAM KHẢO ................................................................................ 92
DANH M C CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
ACK
API
CA
CNTT
CSDL
DLL
DNS
DOM
DoS
FIN
FTP
HTML
HTTP
ICMP
IDS
IP
IPS
JVM
MAC
NAT
OSI
SSL
SYN
TCP
TOS
TTL
URI
URL
XSS
Acknowledgement
Application Programming Interface
Certificate Authority
Công nghệ Thông tin
Cơ sở dữ liệu
Dinamic Link Library
Domain Name System
Document Object Model
Denial of Service
Finish
File Transfer Protocol
Hyper Text Markup Language
Hypertext Transfer Protocol
Internet Control Message Protocol
Instruction Detection System
Internet Protocol
Instrution Prevention System
Java Vitual Machine
Media Access Control
Network Address Translation
Open System Interconnection
Secure Socket Layer
Synchoronize
Transmision Control Protocol
Type of Service
Time To Live
Uniform Resource Identifiers
Uniform Resource Locator
Cross Site Scripting
DANH M C CÁC HÌNH VẼ, CÁC BIỂU BẢNG
Hình 1.1. Cơ sở cho một mơ hình tổng qt……………….……...……….…..………5
Hình 1.2. Lớp giao thức HTTP…………………………………………….……...……6
Hình 1.3. Cấu hình đầy đủ URI………………………………….………….……...…..7
Hình 1.4. Hoạt động của HTTP……………...…..…………………………..…………8
Hình 1.5. Hoạt động kết nối của HTTP……...…..………………………….……….....8
Hình 1.6. Hoạt động Pipelining của HTTP………………………………….…………8
Hình 1.7. Hoạt động GET của HTTP………………….…………………….……..…..9
Hình 1.8. Ví dụ về web form POST…………..……….……..…………….................10
Hình 1.9. Hoạt động POST của HTTP……… ……….……..…………….…………10
Hình 1.10. Hoạt động PUT của HTTP……… ……….……..…………….…………11
Hình 1.11. Ví dụ về File Upload – PUT…… ………..……..…………….……….…11
Hình 1.12. Hoạt động File Delection – DELETE…….……...…………….…………11
Hình 1.13. Cấu trúc thơng điệp HTTP Request……….……..…………….……….…12
Hình 1.14. Một ví dụ về nội dung thơng điệp HTTP………..….………….…………13
Hình 1.15. Ví dụ cụ thể về Request-Line ……… …….……..……...…….………....13
Hình 1.16. Cấu trúc thơng điệp HTTP Response …….……..……...……...…………14
Hình 1.17. Cụ thể trường Status-Line ……… …….……..……........…….…………14
Hình 1.18. Các giao thức con của SSL trong mơ hình TCP/IP……...……..…………15
Hình 1.19. Từng bước thành lập một kết nối SSL…….……..……....……….………16
Hình 1.20. Sử dụng Proxy để thay đổi tham số…….……..……...…….….…….……26
Hình 1.21. Tấn cơng XSS…….……..…...………………………..…....….……….…28
Hình 1.22. Lỗi tràn bộ đệm….……..…...………..………………..…....….…………29
Hình 1.23. Lỗi SQL Injection….……..…...……….…..…....……………..……….…30
Hình 1.24. Lưu trữ thiếu an tồn….…….……….……..…....……………..…………31
Hình 1.25. Tấn cơng từ chối dịch vụ.…….……….….…....……………..…….......…33
Hình 2.1. Q trình thực hiện XSS.…….……….…...…....……………..……........…59
Hình 2.2. Sơ đồ tổ chức bộ nhớ.…….……….…...…….....……………..……........…66
Hình 2.3. Cơ chế thiết lập kết nối trước khi truyền số liệu.….…………..…….......…69
Hình 2.4. Tấn cơng DoS truyền thống.….…………………………….....……...…….69
Hình 2.5. Kiểu tấn công DoS vào băng thông.….…………………….....……........…70
Hình 2.6. Tấn cơng DDoS.….………………………………...……….....……...……71
Hình 2.7. Tấn cơng kiểu DRDoS.….………………………………….....……........…72
Hình 3.1. Sơ đồ mạng trường Đại học Sư phạm Kỹ thuật Vinh.………….....….……78
Hình 3.2. Website trường Đại học Sư phạm Kỹ thuật Vinh.………….....……........…79
Hình 3.3. Cài đặt DoSHTTP 2.5.1.………………………………...….....……...……80
Hình 3.4. Chọn Card mạng để bắt gói tin.………………………....….....……........…80
Hình 3.5. website mục tiêu kiểm tra.……………………………....….....……...…….81
Hình 3.6. Kiểm tra WireShark.……………….…………………....….....……........…81
Hình 3.7. Xác định mục tiêu và bắt đầu tấn cơng….……………....….....……........…82
Hình 3.8. Kiểm tra các kết nối trong WireShark khi tấn………......….....……........…82
Hình 3.9. Kiểm tra lại website ………………………………….....….....……........…83
Hình 3.10. Tắt phần mềm DoSHTTP……………………………...….....……….…...83
Hình 3.11. File báo cáo kết quả …………………………………...….....……........…83
Hình. 3.12. Mơ hình IP Snort... …………………………………...….....…….......…88
Hình. 3.13. Q trình xử lý gói Hình……………………………...….....……...……89
Hình. 3.14. Cơng cụ FortGuard Firewall……………………….....….....……........…90
MỞ ĐẦU
Trong thời đại ngày nay Internet đã trở nên rất quen thuộc, là một cơng cụ hữu
ích để cho một cơng ty, tổ chức giới thiệu hình ảnh hay đơn giản chỉ là một trang web
cá nhân của một ai đó giới thiệu về mình. Tất cả đã kéo theo sự phát triển không
ngừng của các ứng dụng web và dần dần khái niệm ứng dụng web đã trở nên phổ biến.
Khi mà trên Internet, ứng dụng web đã trở nên phổ biến, ứng dụng một cách rộng rãi
thì các cuộc tấn công ứng dụng web cũng phát triển hết sức phức tạp. Điều này đã đặt
ra vấn đề cấp thiết cần làm như thế nào để bảo đảm an tồn thơng tin cho ứng dụng
web, thơng tin của người sử dụng. Các khái niệm chuyên môn về ứng dụng web và tấn
công ứng dụng web cũng dần trở nên phổ biến hơn trong các tài liệu chuyên ngành.
Các cơng cụ hỗ trợ người lập trình web, người quản trị mạng cũng xuất hiện giúp tìm
kiếm lỗ hổng của ứng dụng web nhưng nó khơng theo kịp sự phát triển nhanh đến mức
chóng mặt theo xu hướng nhanh hơn, đẹp hơn của các ứng dụng web, tất nhiên nó
khơng thể ngăn chặn hồn tồn các cuộc tấn cơng ứng dụng web, khi mà các cuộc tấn
công ngày càng đa dạng khai thác triệt để những lỗi của ứng dụng web, của người
quản trị, hay người lập trình ứng dụng web.
Thống kê cho thấy 75% cuộc tấn công Internet là tấn cơng ứng dụng web, nó
gây ra những thiệt hại vơ cùng to lớn, vì vậy việc tìm hiểu về tấn cơng ứng dụng web
là rất cần thiết nhằm có cách phịng chống tấn cơng và bảo mật thơng tin website hiệu
quả trở thành một yêu cầu cấp thiết. Luận văn “Nghiên cứu bảo mật thông tin cho hệ
thống website” sẽ đáp ứng phần nào nhu cầu cấp thiết về an ninh bảo mật hiện nay.
Xây dựng nên quy trình phục vụ cho việc kiểm tra và phát hiện các điểm yếu an tồn
thơng tin trong ứng dụng web, từ đó đưa ra báo cáo đánh giá về an tồn thông tin cho
website.
Luận văn gồm 3 chương với các nội dung sau:
Chƣơng I: Tổng quan về an ninh an toàn ứng dụng web.
Trình bày khái niệm về an tồn thơng tin. Các rủi ro thường gặp và cơ chế
phòng thủ trong ứng dụng web.
Chƣơng II: Phân tích các vấn đề lỗ hổng bảo mật thông tin website.
1
Trình bày một cách chi tiết các phương thức tấn cơng cũng như các cách thức
phịng chống tấn cơng.
Chƣơng III: Triển khai demo các hình thức tấn cơng và các giải pháp bảo
mật cho Website trƣờng Đại học Sƣ phạm Kỹ thuật vinh.
Mơ phỏng một số tấn cơng điển hình như SQL Injection, DoS,... và giải pháp
thực nghiệm phòng chống tấn công cho website trường Đại học Sư phạm Kỹ thuật
Vinh.
Luận văn đã được kiểm tra kỹ nhưng cũng không tránh khỏi những sai sót, rất
mong nhận được sự đóng góp ý kiến của q thầy cơ, bạn bè và các đồng nghiệp để đề
tài hoàn thiện hơn nữa.
2
CHƢƠNG I. TỔNG QUAN VỀ AN NINH AN TOÀN ỨNG D NG WEB
1.1. Khái niệm về an tồn thơng tin
Thơng tin được lưu trữ bởi các sản phẩm và hệ thống CNTT là một tài nguyên
quan trọng cho sự thành cơng của tổ chức đó, là tài sản của một cá nhân hay tổ chức.
Các thông tin cá nhân lưu trữ trong hệ thống thơng tin cần được giữ bí mật, bảo vệ và
không bị thay đổi khi không được phép. Trong khi các sản phẩm và hệ thống CNTT
thực hiện các chức năng của chúng, các thông tin cần được kiểm soát để đảm bảo
chúng được bảo vệ chống lại các nguy cơ, ví dụ như việc phổ biến và thay đổi thông
tin không mong muốn và trái phép, nguy cơ mất mát thơng tin [1],[5],[6].
An tồn thơng tin là an toàn kỹ thuật cho các hoạt động của các cơ sở hạ tầng
thơng tin, trong đó bao gồm an toàn phần cứng và phần mềm theo các tiêu chuẩn kỹ
thuật do nhà nước ban hành; duy trì các tính chất bí mật, tồn vẹn, chính xác, sẵn sàng
phục vụ của thông tin trong lưu trữ, xử lý và truyền tải trên mạng (theo định nghĩa
trong Nghị định 64-2007/NĐ-CP).
Thuật ngữ an toàn CNTT thường sử dụng để chỉ việc ngăn chặn và làm giảm
nhẹ các mối nguy hại tương tự đối với các sản phẩm và hệ thống CNTT.
Mục tiêu hướng tới của người dùng là bảo vệ các tài sản nói trên. Tuy nhiên,
các sản phẩm và hệ thống thường luôn tồn tại những điểm yếu dẫn đến những rủi ro có
thể xảy ra, làm tổn hại đến giá trị tài sản thông tin. Các đối tượng tấn cơng (tin tặc) có
chủ tâm đánh cắp, lợi dụng hoặc phá hoại tài sản của các chủ sở hữu, tìm cách khai
thác các điểm yếu để tấn công, tạo ra các nguy cơ và các rủi ro cho các hệ thống.
Với các biện pháp an tồn thơng tin người dùng có được cơng cụ trong tay để
nhận thức được các điểm yếu, giảm thiểu các điểm yếu, ngăn chặn các nguy cơ tấn
công, làm giảm các yếu tố rủi ro. Như vậy, các biện pháp và kỹ thuật đảm bảo an tồn
thơng tin chính là mang lại sự tin cậy cho các sản phẩm và hệ thống.
Đảm bảo an toàn thơng tin là đảm bảo an tồn kỹ thuật cho hoạt động của các
cơ sở hạ tầng thông tin, trong đó bao gồm đảm bảo an tồn cho cả phần cứng và phần
mềm hoạt động theo các tiêu chuẩn kỹ thuật do nhà nước ban hành; ngăn ngừa khả
năng lợi dụng mạng và các cơ sở hạ tầng thông tin để thực hiện các hành vi trái phép
gây hại cho cộng đồng, phạm pháp hay khủng bố; đảm bảo các tính chất bí mật, tồn
3
vẹn, chính xác, sẵn sàng phục vụ của thơng tin trong lưu trữ, xử lý và truyền tải trên
mạng.
Như vậy khái niệm đảm bảo an tồn thơng tin bao hàm đảm bảo an toàn cho cả
phần cứng và phần mềm. An toàn phần cứng là bảo đảm hoạt động cho cơ sở hạ tầng
thơng tin. An tồn phần mềm gồm các hoạt động quản lý, kỹ thuật nhằm bảo vệ hệ
thống thông tin, đảm bảo đảm cho các hệ thống thực hiện đúng chức năng, phục vụ
đúng đối tượng một cách sẵn sàng, chính xác, tin cậy. An tồn cơng nghệ thơng tin là
đảm bảo an tồn kỹ thuật cho các sản phẩm, dịch vụ và hệ thống công nghệ thơng tin.
An tồn thơng tin u cầu nhằm đảm bảo 3 đặc điểm quan trọng nhất của thơng
tin, đó là: tính bí mật, tính tồn vẹn và tính sẵn sàng. Các đặc điểm này bao trùm toàn
bộ phạm trù an tồn các hệ thống thơng tin. Các đặc điểm này cũng đúng với mọi tổ
chức, không lệ thuộc vào việc chúng chia sẻ thơng tin như thế nào.
Tính bí mật
Tính bí mật là tâm điểm chính của mọi giải pháp an toàn cho một sản phẩm trên
hệ thống CNTT. Một giải pháp an toàn là tập hợp các quy tắc xác định quyền được
truy cập đến với thông tin đang tìm kiếm, đối với một số lượng người sử dụng thông
tin nhất định và một số lượng thông tin là tài sản nhất định. Trong trường hợp kiểm
soát truy cập cục bộ, nhóm người truy cập sẽ được kiểm soát xem là họ đã truy cập
những số liệu nào. Tính bí mật là sự đảm bảo rằng các chức năng kiểm sốt truy cập
có hiệu lực.
Tính tồn vẹn
Tính tồn vẹn, khơng bị sửa đổi là đặc tính phức hợp nhất và dễ bị hiểu lầm của
thông tin. Một định nghĩa khái quát hơn được sử dụng ở trong tài liệu này là vấn đề
cấp độ là chất lượng của số liệu (thông tin), chứ không phải là con người được, hoặc
khơng được phép truy cập. Đặc tính tồn vẹn được hiểu là chất lượng của thông tin
được xác định căn cứ vào độ xác thực khi phản ánh thực tế. Số liệu càng gần với thực
tế bao nhiêu thì chất lượng thơng tin càng chuẩn bấy nhiêu.
Tính sẵn sàng
Tính sẵn sàng của thơng tin cũng là một đặc tính quan trọng, khơng khác gì các
đặc tính đã đề cập đến. Đó là khía cạnh sống cịn của an tồn thơng tin, đảm bảo cho
4
thông tin đến đúng địa chỉ (người được phép sử dụng) khi có nhu cầu, hoặc được yêu
cầu.
Bộ ba các đặc tính then chốt của thơng tin đề cập đến ở trên bao trùm toàn bộ
các mặt của việc đảm bảo an tồn thơng tin. Một ma trận được tạo nên bởi 3 yếu tố là
3 trạng thái của thông tin (truyền dẫn, lưu giữ, xử lí) được minh họa ở trục hồnh;
cùng với 3 đăc tính then chốt của thơng tin (độ tin cậy, tính tồn vẹn, tính sẵn sàng)
được minh họa trên trục tung có thể được sử dụng làm nền tảng cho mơ hình thể hiện
các biện pháp an tồn thơng tin
Hình 1.1. Cơ sở cho một mơ hình tổng qt
Các biện pháp an tồn hệ thơng thông tin được phân loại thành 3 lớp như sau, tạo
thành chiều thứ 3 của không gian ma trận:
Các biện pháp công nghệ: Bao hàm tất cả các biện pháp thiết bị phần cứng, các
phần mềm, phần sụn (firmware) cũng như các kỹ thuật công nghệ liên quan được
áp dụng nhằm đảm bảo các u cầu an tồn của thơng tin trong các trạng thái của
nó như đã kể trên.
Các biện pháp về tổ chức: Đưa ra các chính sách, quy định, phương thức thực
thi. Thực tế cho thấy, an tồn thơng tin khơng chỉ đơn thuần là vấn đề thuộc phạm
trù cơng nghệ, kỹ thuật. Hệ thống chính sách và kiến trúc tổ chức đóng một vai trị
hữu hiệu trong việc đảm bảo an tồn thơng tin.
Các biện pháp về đào tạo, tập huấn, nâng cao nhận thức: Các biện pháp công
nghệ hay các biện pháp về tổ chức thích hợp phải dựa trên các biện pháp đào tạo,
tập huấn và tăng cường nhận thức để có thể triển khai đảm bảo an tồn thơng tin từ
nhiều hướng khác nhau. Các nhà nghiên cứu và các kỹ sư cũng cần phải hiểu rõ
các nguyên lý an toàn hệ thống thơng tin, thì mới mong các sản phẩm và hệ thống
5
do họ làm ra đáp ứng được các nhu cầu về an tồn thơng tin của cuộc sống hiện tại
đặt ra.
Mơ hình ma trận khơng gian 3 chiều kể trên có thể áp dụng làm cơ sở cho đánh
giá an tồn thơng tin một cách khái qt nhất. Ví dụ: Người đánh giá an tồn thơng tin
cho một sản phẩm là một hệ thống thông tin sẽ phải xác định các trạng thái thông tin
trong hệ thống cần được đánh giá. Mơ hình tổng qt này sẽ cho phép xác định các
trạng thái thông tin không bị lệ thuộc vào bất kỳ công nghệ cụ thể nào đang được áp
dụng.
1.2. Các công nghệ dùng trong ứng dụng web
1.2.1. Giao thức HTTP, SSL
1.2.1.1. Giao thức HTTP
1.2.1.1.1. Lớp của giao thức HTTP
HTTP (Hypertext Transfer Protocol) là giao thức thuộc lớp ứng dụng trong mơ
hình thao chiếu OSI. Hoạt động thơng thường ở cổ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 ba bước.
Hình 1.2. Lớp giao thức HTTP
6
1.2.1.1.2. URI – Uniform Resource Identifiers
Thông thường, chúng ta quen thuộc với định nghĩa URL (Uniform Resource
Locators). Địa chỉ là một ví dụ về URL. Trên thực tế, khơng
có nhiều khác biệt giữa hai khái niệm URL và URI, URL là chỉ một loại của URI.
URI là một đặc điểm kỹ thuật của giao thức HTTP. Như hình dưới cho thấy
một URI chứa rất nhiều các thành phần, không đơn giản như URL.
Hình 1.3. Cấu hình đầy đủ URI
Protocol: Xác định các giao thức và các ứng dụng cần thiết để truy cập tài
nguyên, trong trường hợp này là giao thức HTTP.
Username: Nếu giao thức hỗ trợ khái niệm về tên người dùng thì username
cung cấp tên người dùng để chứng thực truy cập tài nguyên.
Password: Mật khẩu truy cập tài nguyên.
Host: Tên miền truyền thông cho webserver.
Port: Là port cho các giao thức lớp ứng dụng, ví dụ như HTTP là cổng 80 (có
thể bỏ qua tham số này).
Path: Đường dẫn path cấp đến tài nguyên được đặt trên server.
File: Tên các tập tin tài nguyên trên server.
Query: Các truy vấn thêm thông tin về tài nguyên của client.
Fragment: Một vị trí nào đó trong tài ngun.
1.2.1.1.3. Hoạt động HTTP
Kết nối
HTTP thuộc giao thức TCP, vì vậy trước khi tiến hành truyền thông phải thực
hiện phiên kết nối TCP.
7
Trước đây, mỗi kết nối TCP sẽ thực hiện chỉ một request HTTP và một
response, nghĩa là nếu client request 2 lần thì sẽ cần 2 phiên kết nối TCP. Điều này gây
ra nhiều bất cập, ảnh hưởng rất nhiều đến hiệu năng hoạt động của server.
Hình 1.4. Hoạt động của HTTP
Hiện nay, giao thức HTTP đã hỗ trợ một phiên kết nối TCP cho phép nhiều
HTTP request…
Hình 1.5. Hoạt động kết nối của HTTP
Pipelining
Pipelining cũng nhằm mục đích cải thiện hiệu năng của HTTP. Client không
cần phải chờ server response mới có thể request và ngược lại.
Hình 1.6. Hoạt động Pipelining của HTTP
8
Web Page Retrieval – GET
Hoạt động HTTP đơn giản nhất là GET. Đó là cách để client lấy một đối tượng
hoặc tài ngun nào đó trên server. Các trình duyệt sẽ yêu cầu một website từ server
với GET.
Hình 1.7. Hoạt động GET của HTTP
Với ví dụ trên, client khởi tạo và gửi thông điệp GET đến server, thông điệp
này định danh đối tượng mà client yêu cầu server đáp ứng bằng một URI (Uniform
Resource Identifier). Server có thể trả về tài nguyên mà client yêu cầu với một mã
trạng thái 200 OK. Nếu server không đáp ứng được yêu cầu client thì nó sẽ gửi về một
số mã trạng thái khác được mô tả ở bảng bên dưới.
Mã trạng
thái
100 – 199
Ý nghĩa
Thông tin: các server nhận được yêu cầu nhưng kết quả chưa có sẵn để trả
về client
200 - 299 Thành cơng: Các server đã có thể trả về theo yêu cầu thành công
300 – 399 Chuyển hướng: Các client đã được chuyển hướng yêu cầu đến server
khác hoặc tài nguyên khác
400 – 499 Lỗi client: Các yêu cầu của client chứa lỗi mà server không thể trả về kết
quả
500 – 599 Lỗi server: Server đã không hành động theo yêu cầu, ngay cả yêu cầu là
hợp lệ.
Bảng. Mã trạng thái được trả về của HTTP
Web Forms – POST
Trong khi GET cho phép một server gửi thông tin đến client, thì hoạt động
POST cung cấp một cách để client gửi thơng tin đến các server. Trình duyệt sử dụng
POST để gửi nội dung các Form đến web server. Hình dưới cho thấy một ví dụ như
vậy:
9
Hình 1.8. Ví dụ về web form POST
Hình 1.9. Hoạt động POST của HTTP
Như hình trên cho thấy, hoạt động POST đơn giản như GET. Client gửi một
thông điệp POST và bao gồm thơng tin mà nó muốn gửi đến server. Cũng giống như
GET, một phần của thông điệp POST là URI. Nhưng trong trường hợp này, URI xác
định các đối tượng trên server có thể xử lý thơng tin.
Cũng như GET, server có thể trả về thơng tin cho client. Đối với trình duyệt
web, thơng tin thường là một trang web mới để hiển thị.
File Upload – PUT
Các hoạt động PUT cũng cung cấp một cách để client gửi thơng tin đến các
server. Hay nói cách khác, PUT dùng để upload dữ liệu lên server.
Như hình dưới đây cho thấy, hai hoạt động nhìn rất giống nhau. Với POST,
client gửi bao gồm một URI và dữ liệu. Web server về mã trạng thái, tùy chọn kèm
theo và dữ liệu. Sự khác biệt giữa POST và PUT ở chỗ URI: Với POST, các URI xác
định một đối tượng trên server mà có thể xử lý dữ liệu. Với một PUT, các URI xác
định đối tượng trong đó các server nên đặt dữ liệu (ví dụ đường dẫn cho server đặt dữ
liệu).
10
Trong khi một POST URI thường chỉ ra một chương trình, scrip… thì PUT URI
thường là đường dẫn và tên cho tập tin.
Hình 1.10. Hoạt động PUT của HTTP
Hình 1.11. Ví dụ về File Upload – PUT
File Delection – DELETE
Với GET và PUT, giao thức HTTP trở thành một giao thức chuyển file đơn
giản. Hoạt động DELETE sẽ hoàn thành chức năng này bằng cách giúp client xóa các
đối tượng, tài nguyên từ các server.
Như hình dưới đây cho thấy, client gửi một thông DELETE cùng với các URI
của đối tượng mà server nên xóa. Các server đáp ứng một mã trạng thái và dữ liệu kèm
theo.
Hình 1.12. Hoạt động File Delection – DELETE
11
Trạng thái – HEAD
Các hoạt động của HEAD giống như GET, ngoại trừ server không trả lại đối
tượng thực tế yêu cầu. Cụ thể, server sẽ trả về một mã trạng thái nhưng khơng có dữ
liệu. (HEAD có nghĩa là “tiêu đề”, nghĩa là server chỉ trả về thông điệp chứa tiêu đề
chứ khơng chứa dữ liệu).
Client có thể sử dụng thông điệp HEAD khi muốn xác minh rằng một đối tượng
có tồn tại hay khơng.
Ví dụ: Có thể sử dụng thông điệp HEAD để đảm bảo liên kết đến một đối tượng
hợp lệ mà không tiêu tốn băng thơng.
Cache trong trình duyệt cũng có thể sử dụng thơng điệp HEAD để xem một đối
tượng đã thay đối hay khơng, nếu khơng thay đổi thì hiển thị thơng tin đã được lưu
trước đây, nếu thay đổi thì sẽ thực hiện GET để lấy dữ liệu về từ server.
1.2.1.1.4. Thông điệp HTTP
Một thông điệp HTTP bắt đầu với một “line” hay một mã trạng thái, có thể được theo
sau bởi các tiêu đề (header) khác nhau và phần thân (body) của thơng điệp.
Cấu trúc của 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.
HTTP Request
Hình 1.13. Cấu trúc thơng điệp HTTP Request
12
Hình trên cho thấy cấu trúc cơ bản của HTTP Requests. Một HTTP Request 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.14. Một ví dụ về nội dung thơng điệp HTTP
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.15. 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 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.
HTTP Response
Request Response 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.
13
Hình 1.16. 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).
Hình 1.17. Cụ thể trƣờng Status-Line
1.2.1.2. Giao thức SSL
SSL (Secure Socket Layer) là giao thức đa mục đích được thiết kế để tạo ra các
giao tiếp giữa hai chương trình ứng dụng trên một cổng định trước (socket 443) nhằm
mã hóa tồn bộ thơng tin đi/đến, mà ngày nay được sử dụng rộng rãi cho giao dịch
điện tử như truyền số liệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên
Internet.
Giao thức SSL tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo q trình trao đổi
thơng tin trên mạng được bảo mật. Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ
trợ nhiều giao thức khác chạy trên nền giao thức TCP.
Giao thức SSL được hình thành và phát triển đầu tiên năm 1994 bởi nhóm
nghiên cứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mật
14
thực hành trên Internet. SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức
con sau:
+ Giao thức SSL Handshake
+ Giao thức SSL Change Cipher Spec
+ Giao thức SSL Alert
+ SSL Record Layer
Vị trí của các giao thức trên, tương ứng với mơ hình TCP/IP được minh họa
theo biểu đồ sau:
Hình 1.18. Các giao thức con của SSL trong mơ hình TCP/IP
Theo biểu đồ trên, SSL nằm trong tầng ứng dụng của giao thức TCP/IP. Do đặc
điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà
không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP. Điều này mang
lại cho SSL sự cải tiến mạnh mẽ so với các giao thức khác như IPSec (IP Security
Protocaol). Vì giao thức này đòi hỏi nhân hệ điều hành phải hỗ trợ và chỉnh sửa ngăn
xếp TCP/IP. SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như NAT
(Network Address Translation) mà không cần nguồn cung cấp.
Hoạt động của giao thức SSL
Điểm cơ bản của SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính
bí mật, an tồn và chống giả mạo luồng thơng tin qua Internet giữa hai ứng dụng bất
15
kỳ, ví dụ như webserver và các trình duyệt khách (browsers), do đó được sử dụng rộng
rãi trong nhiều ứng dụng khác nhau trên mơi trường Internet.
Tồn bộ cơ chế hoạt động và hệ thống thuật tốn mã hóa sử dụng trong SSL
được phổ biến cơng khai, trừ khóa chia sẻ tạm thời (session key) được sinh ra tại thời
điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát
trên mạng máy tính. Ngồi ra, giao thức SSL cịn địi hỏi ứng dụng chủ phải được
chứng thực bởi một đối tượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử
(digital certificate) dựa trên mật mã cơng khai (ví dụ RSA).
Sau đây ta xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích
cấp độ an tồn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm, đặc biệt
là các ứng dụng về thương mại và thanh tốn điện tử…
Hình 1.19. Từng bước thành lập một kết nối SSL
16
Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay”
(handshake protocol) và giao thức “bản ghi” (record protocol). Giao thức bắt tay xác
định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thơng tin hoặc dữ
liệu, cịn giao thức bản ghi xác định khn dạng cho tiến hành mã hóa và truyền tin hai
chiều giữa hai đối tượng đó. Khi hai ứng dụng máy tính, ví dụ giữa một trình duyệt
web và máy chủ web, làm việc với nhau, máy chủ và máy khách sẽ trao đổi “lời chào”
(hello) dưới dạng các thông điệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ,
đồng thời xác định các chuẩn về thuật tốn mã hóa và nén số liệu có thể được áp dụng
giữa hai ứng dụng. Ngồi ra, các ứng dụng cịn trao đổi “số nhận dạng/khóa theo
phiên” (session ID, session key) duy nhất cho lần làm việc đó. Sau đó ứng dụng khách
yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web
server).
Chứng thực điện tử thường được xác nhận rộng rãi bởi một cơ quan trung gian
(là CA-Certificate Authority) như RSA Data Sercurity hay VeriSign Inc., một dạng tổ
chức độc lập, trung lập và có uy tín. Các tổ chức này cung cấp dịch vụ “xác nhận” số
nhận dạng của một công ty và phát hành chứng chỉ duy nhất cho cơng ty đó như là
bằng chứng nhận dạng (identity) cho các giao dịch trên mạng, ở đây là các máy chủ
web server.
Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật tốn mật mã
cơng khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin
trong chứng chỉ điện tử để mã hóa thơng điệp gửi lại máy chủ mà chỉ có máy chủ có
thể giải mã. Trên cơ sở đó, hai ứng dụng trao đổi khóa chính (master key) – khóa bí
mật hay khóa đối xứng - để làm cơ sở cho việc mã hóa luồng thơng tin/dữ liệu qua lại
giữa hai ứng dụng chủ khách. Toàn bộ cấp độ bảo mật và an tồn của thơng tin/dữ liệu
phụ thuộc vào một số tham số:
(1) số nhận dạng theo phiên làm việc ngẫu nhiên.
(2) cấp độ bảo mật của các thuật toán bảo mật áp dụng cho SSL
(3) độ dài của khóa chính (key length) sử dụng cho lược đồ mã hóa thơng tin.
Các thuật tốn mã hóa dùng trong SSL
Các thuật tốn mã hóa (cryptographic algorithm hay cịn gọi là cipher) là các
hàm toán học được sử dụng để mã hóa và giải mã thơng tin. Giao thức SSL hỗ trợ rất
17