CHƯƠNG 1 TỔNG QUAN VỀ AN TOÀN THÔNG TIN VÀ BẢO MẬT TRÊN WEB 1. Quá trình phát triển của web Ý tưởng về web do Tim Berners Lee, ông đã phát minh ra một giao thức cơ bản cho việc chuyển tải các tài liệu lên mạng là HTTP, ngôn ngữ đánh dấu siêu văn bản HTML để mô tả cấu trúc của một tài liệu. Kể từ khi ra đời web đã phát triển không ngừng và đã trải qua các thế hệ web 1. Mô hình hoạt động của web Từ một trình duyệt, người dùng gõ vào địa chỉ của một trang web, trình duyệt sẽ thực hiện một kết nối tới máy chủ tên miền để chuyển đổi tên miền ra địa chỉ IP tương ứng.
Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ của website có địa chỉ IP này qua cổng 80. Dựa trên giao thức HTTP, trình duyệt sẽ gửi yêu cầu GET đến máy chủ. Khi đó máy chủ sẽ xử lý các yêu cầu của người dùng, rồi gửi trả kết quả về cho phía client.1: Mô hình hoạt động của web 1. Các hiểm hoạ đối với an toàn web 1.
Tấn công vào vùng ẩn Dựa vào chức năng "View Source" của trình duyệt mà có thể biết được thông tin về các phiên làm việc của client do đó có thể tìm ra sơ hở của trang web mà ta muốn tấn công và từ đó có thể truy cập vào hệ thống của máy chủ. Can thiệp vào tham số trên URL Dùng các câu lệnh SQL để khai thác cơ sở dữ liệu trên server bị lỗi, điển hình nhất là tấn công bằng "SQL INJECT". Khi hacker gửi những dữ liệu (thông qua các form), ứng dụng web sẽ thực hiện và trả về trình duyệt kết quả câu truy vấn hay những thông báo lỗi có liên quan đến cơ sở dữ liệu và từ đó có thể điều khiển toàn bộ hệ thống ứng dụng. Tấn công dùng cookie Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa trình chủ và trình duyệt của người dùng chứa thông tin về người dùng đã ghé thăm trang web và những vùng mà họ đã đi qua trong trang web và lưu trên đĩa cứng của máy tính.
Những người biết tận dụng những thông tin này có thể gây nên những hậu quả nghiêm trọng. Các lỗ hổng bảo mật Hiện nay các lỗ hổng được phát hiện ra ngày càng nhiều về hệ điều hành, máy chủ web, và các phần mềm của các hãng khác. Tuy khi phát hiện ra được và có bổ sung các bảng path nhưng các khách hàng không cập nhật thường xuyên nên là cơ hội cho các hacker tấn công. Cấu hình không an toàn Các phần mềm và hệ điều hành trên máy chủ không được cập nhật với bản vá lỗi bảo mật mới nhất, không phân đúng quyền cho các thư mục và tập tin trong trang web, những chức năng quản lý và debug được triển khai không cần thiết, phần mềm web server đăng quá nhiều thông tin trong trang báo lỗi, cấu hình SSL và các hàm mã hóa không đúng.
Tràn bộ đệm Tin tặc gửi một đoạn mã được thiết kế đặc biệt đến ứng dụng, tin tặc có thể làm cho ứng dụng web thi hành bất kỳ đoạn mã nào, điều này tương đương với việc chiếm quyền làm chủ máy server. Tấn công từ chối dịch vụ DoS (Denial of Service) Là các cuộc tấn công trên hệ thống mạng nhằm ngăn cản những truy xuất tới các dịch vụ, làm cho các dịch vụ mạng bị tê liệt, không còn khả năng đáp ứng được yêu cầu bằng cách làm tràn ngập số lượng kết nối, quá tải server hoặc ứng dụng chạy trên server. Các vấn đề bảo mật ứng dụng web 1. Giao thức IPSec - IPSec là một tiêu chuẩn nhằm bổ sung an toàn cho Internet, được xác định trong RFC 1825, so với giao thức IP, IPSec thêm vào hai trường mào đầu IP để cung cấp tính năng xác thực và bảo mật tại lớp IP.
- IPSec có hai cơ chế mã hoá là Tunnel Mode và Transport Mode, sử dụng thuật toán mã hoá đối xứng để mã hoá truyền thông. Các thực thể tham gia truyền thông sử dụng các khoá chia sẻ được tạo ra bằng thuật toán Diffie- Hellman kèm với việc xác thực để đảm bảo khoá đối xứng được thiết lập giữa những bên truyền thông một cách chính xác. - Trước khi IPSec trao đổi dữ liệu đã xác thực hoặc mã hoá, cả bên gửi và bên nhận phải thống nhất với nhau về thuật toán mã hoá và khoá (hoặc các khoá) sử dụng. Giao thức SSL và TLS 1.
Lịch sử SSL, TLS Giao thức SSL (Secure Socket Layer) đầu tiên do Netscape phát triển để bảo mật dữ liệu gửi và nhận trên Internet của các giao thức thuộc lớp ứng dụng như HTTP, LDAP hay POP3. Các phiên bản gồm: SSL 1. SSL nhanh chóng hoàn thiện qua các phiên bản sau đó nó trở thành giao thức phổ biến nhất cho an toàn truyền thông trên WWW. Tổ chức IETF (Internet Engineering Task Force) đã chuẩn hoá SSL và đặt lại tên là TLS (Transport Layer Security).
Mặc dù là có sự thay đổi về tên nhưng TSL chỉ là một phiên bản mới của SSL. Phiên bản TLS v1.0 (được biết 12 đến như là SSL v3.1)-1999 tuy nhiên các giao thức hoạt động không được đầy đủ. TLS còn được nâng cấp hơn nữa các chức năng qua các phiên bản TLS v1. Tuy nhiên SSL là thuật ngữ được sử dụng rộng rãi hơn.2: Sử dụng SSL gửi và nhận trên internet 1.
Nhiệm vụ và kiến trúc SSL - Nhiệm vụ: Xác thực server, xác thực client, mã hoá kết nối. - Kiến trúc SSL: Gồm 4 giao thức con sau: SSL Handshake, SSL Change Cipher Spec, SSL Alert, SSL Record Layer. - SSL là một lớp (bảo mật) trung gian giữa lớp vận chuyển và lớp ứng dụng. SSL được xếp lớp lên trên một dịch vụ vận chuyển định hướng nối kết và đáng tin cậy, SSL nằm trong tầng ứng dụng của giao thức TCP/IP.
- SSL Record Protocol: Sử dụng để trao đổi tất cả các kiểu dữ liệu trong một phiên - bao gồm các thông điệp, dữ liệu của các giao thức SSL khác và dữ liệu của ứng dụng. SSL Record Protocol liên quan đến việc bảo mật và đảm bảo toàn vẹn dữ liệu, mục đích là thu nhận những thông điệp mà ứng dụng chuẩn bị gửi, phân mảnh dữ liệu cần truyền, đóng gói, bổ xung header tạo thành một đối tượng bản ghi được mã hoá và có thể truyền bằng giao thức TCP. - Handshake Protocol: Giao thức này được sử dụng để khởi tạo phiên SSL giữa client và server, nhờ giao thức này các bên sẽ xác thực lẫn nhau và thoả thuận các tham số cho phiên làm việc sẽ được thiết lập. 13 - Alert Protocol: Sử dụng để mang các thông điệp của phiên liên quan tới việc trao đổi dữ liệu và hoạt động của các giao thức.
- Change Cipher Spec Protocol: Chứa một thông điệp mang giá trị 1 làm chuyển trạng thái của một phiên từ “đang chờ” sang “bền vững”. Hoạt động của SSL Khi trình duyệt của một máy khách đến một Website bí mật của một máy chủ, máy chủ gửi một lời chào tới trình duyệt. Trình duyệt đáp lại bằng một lời chào. Việc tiến hành trao đổi lời chào, hoặc bắt tay cho phép 2 máy tính quyết định các chuẩn mã hoá và nén (mà chúng cùng hỗ trợ).
Trình duyệt máy khách yêu cầu máy chủ đưa ra một chứng chỉ số. Máy chủ gửi cho trình duyệt một chứng chỉ đã được công nhận bởi CA. Trình duyệt kiểm tra chữ ký số có trên chứng chỉ của máy chủ, dựa vào khoá công khai của CA, khoá này được lưu giữ trong trình duyệt. Hoạt động này xác thực máy chủ thương mại.
Máy khách và máy chủ thoả thuận rằng mọi trao đổi phải được giữ bí mật, bởi vì những thông tin này là quan trọng. Để thực hiện bí mật, SSL sử dụng mã hoá khoá công khai (không đối xứng) và mã hoá khoá riêng (đối xứng). Thoạt đầu, trình duyệt sinh ra một khoá riêng dùng chung cho cả hai. Sau đó, trình duyệt mã hoá khoá riêng bằng khoá công khai của máy chủ.
Khoá công khai của máy chủ được lưu giữ trong chứng chỉ số, máy chủ gửi chứng chỉ này cho trình duyệt trong quá trình xác thực. Một khi khoá được mã hoá, trình duyệt gửi nó cho máy chủ. Ngược lại, máy chủ giải mã thông báo bằng khoá riêng của nó và tìm ra khoá riêng dùng chung. Tất cả các thông báo giữa máy khách và máy chủ được mã hoá bằng khoá riêng dùng chung (cũng được biết đến như là một khoá phiên).
Sau khi kết thúc phiên giao dịch, khoá phiên bị huỷ bỏ. Một kết nối mới lại bắt đầu tương tự.3: Sơ đồ hoạt động của SSL 1. Giao thức SET 1. Giới thiệu tổng quan về SET SET là một giao thức chuẩn để đảm bảo an toàn cho các giao dịch thẻ tín dụng trong các mạng không an toàn và Internet.
SET không phải là một hệ thống thanh toán mà là một bộ các giao thức và khuôn dạng an toàn cho phép người sử dụng triển khai cơ sở hạ tầng thanh toán bằng thẻ tín dụng trên một mạng một cách an toàn. Nguyên tắc thanh toán bằng thẻ với giao thức SET Trong giao thức SET, có 5 thực thể gồm: Chủ thẻ, Thương nhân, Ngân hàng thương nhân, Tổ chức cấp thẻ, Cơ quan chứng thực. Mô tả một quá trình giao dịch Bước 1: Chủ thẻ và thương nhân đăng ký với một CA để nhận được chứng chỉ số. Bước 2: Khách hàng duyệt website và đặt mua hàng với hình thức thanh toán là SET.
15 - Thương nhân gửi một bản sao chứng chỉ của mình để khách hàng xác minh rằng đây là một kho hàng hợp lệ. Thương nhân cũng gửi chứng chỉ số của ngân hàng thanh toán. - Khách hàng nhận và xác minh chứng chỉ của Thương nhân để khẳng định thương nhân đó có hợp lệ hay không. - Khách hàng gửi thông điệp đặt hàng cho thương nhân bao gồm thông tin đặt hàng, thông tin thanh toán và thông tin để đảm bảo thanh toán chỉ có thể được thực hiện với lệnh cụ thể này.
Thông tin đặt hàng được mã hoá bằng khoá công khai của Thương nhân, còn thông tin thanh toán được mã hoá bằng khoá công khai của ngân hàng. - Thương nhân xác minh khách hàng và yêu cầu Ngân hàng thương nhân uỷ quyền thanh toán bằng cách gửi lệnh đặt hàng bao hàm khoá công khai của ngân hàng, thông tin thanh toán của khách hàng và chứng chỉ của Thương nhân. - Ngân hàng thương nhân xác minh và uỷ quyền thanh toán. - Thương nhân xác nhận lệnh và giao hàng và điền uỷ quyền này vào lệnh rồi gửi xác nhận lệnh cho khách hàng, sau đó giao hàng cho khách hàng.