DNS Domain Name System Dịch vụ tên miền FTP File Transfer Protocol Giao thức truyền tập tin IP Internet Protocol Giao thức định tuyến Internet IPSec Internet Protocol Security Giao thức
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRẦN THỊ PHƯƠNG THẢO
XÂY DỰNG GIẢI PHÁP ĐẢM BẢO AN TOÀN CHO
CÁC TRUY CẬP TỪ XA TỚI HỆ THỐNG
TRUY NÃ TỘI PHẠM CỦA C14
Ngành: Công Nghệ Thông Tin
Chuyên ngành: Hệ thống Thông tin
Mã số: 60.48.05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Hồ Văn Canh
Hà Nội - 2010
Trang 3Mục lục
MỞ ĐẦU 7
Chương 1 – TỔNG QUAN VỀ GIAO THỨC SSL 9
1.1 Giới thiệu về giao thức SSL: 9
1.1.1 Sự ra đời và phát triển của giao thức SSL: 9
1.1.2 Cấu trúc của giao thức SSLv3: 9
1.1.3 Các giao thức con của SSLv3: 13
1.1.3.1 Giao thức Bắt tay SSL: 13
1.1.3.2 Giao thức Bản ghi SSL: 13
1.1.3.3 Change cipher spec protocol: 14
1.1.3.4 Alert protocol: 15
1.2 Hoạt động của giao thức SSL: 15
1.2.1 Thiết lập một phiên làm việc: 15
1.2.2 Mã hóa dữ liệu: 19
1.2.3 Kiểm tra sự toàn vẹn thông tin 22
1.2.4 Tính an toàn của SSL: 24
1.3 Mạng riêng ảo dựa trên giao thức SSL 25
1.3.1 VPN SSL hướng ứng dụng: 26
1.3.1.1 Nguyên lý hoạt động của VPN SSL hướng ứng dụng: 26
1.3.1.2 Ưu điểm và hạn chế của của VPN SSL hướng ứng dụng: 28
1.3.2 VPN SSL kiểu gateway: 29
1.3.2.1 Nguyên lý hoạt động của VPN SSL kiểu gateway: 29
1.3.2.2 Ưu điểm và hạn chế của VPN SSL theo kiểu gateway: 30
Chương 2 - ỨNG DỤNG GIAO THỨC SSL ĐỂ ĐẢM BẢO AN TOÀN CHO CÁC TRUY NHẬP TỪ XA TỚI TRANG THÔNG TIN TRUY NÃ TỘI PHẠM 30
2.1 Mục tiêu, yêu cầu của hệ thống bảo đảm an toàn cho các truy nhập từ xa tới Trang thông tin truy nã tội phạm 30
2.1.1 Mục tiêu của hệ thống 31
2.1.2 Yêu cầu đối với hệ thống 31
2.2 Phân tích, thiết kế hệ thống bảo đảm an toàn cho các truy nhập từ xa tới Trang thông tin truy nã tội phạm 32
2.2.1 Phân tích mô hình kết nối hệ thống 32
2.2.2 Thiết kế các mô-đun quản lý cấp phát chứng chỉ số cho người dùng và điều khiển truy nhập, quyền thao tác các chức năng của hệ thống 34
2.2.2.1 Quản lý cấp phát tài khoản và chứng chỉ số cho người dùng mới 34
2.2.2.2 Xác thực và điều khiển truy nhập 41
2.3 Xây dựng cơ chế phân quyền cho các nhóm người dùng truy nhập từ xa tới Trang thông tin truy nã tội phạm 45
2.3.1 Phân chia nhóm người dùng 45
2.3.2 Cơ chế phân quyền cho các nhóm người dùng 47
Chương 3 - ĐẢM BẢO AN TOÀN CHO TRUY NHẬP TỪ XA TỚI TRANG THÔNG TIN TRUY NÃ TỘI PHẠM 48
3.1 Đăng ký và cấp phát tài khoản, chứng chỉ cho người dùng 50
3.1.1 Đăng ký tài khoản người dùng mới 50
3.1.2 Ký duyệt người dùng 52
3.1.3 Quản trị người dùng kích hoạt tài khoản người 54
Trang 43.1.4 Người dùng mới đăng nhập lần đầu và tải chứng chỉ về để cài đặt 56
3.1.5 Cài đặt chứng chỉ vào trình duyệt 58
3.2 Xác thực người dùng truy nhập hệ thống và thiết lập kênh riêng ảo 62
3.2.1 Cài đặt và cấu hình hệ thống để cho phép xác thực, thiết lập kênh riêng ảo dựa trên SSL 62
3.2.2 Xác thực người dùng bằng tên và mật khẩu đăng nhập 63
3.2.3 Xác thực người dùng dựa trên chứng chỉ số và thiết lập kênh riêng ảo 64
3.3 Phân quyền và điều khiển truy nhập đối với người dùng 66
3.3.1 Điều khiển và cấp quyền truy nhập đối với người dùng 66
3.3.2 Hoạt động điều khiển truy nhập đối với người dùng thông menu 67
KẾT LUẬN 70
TÀI LIỆU THAM KHẢO 71
Trang 5DNS Domain Name System Dịch vụ tên miền
FTP File Transfer Protocol Giao thức truyền tập tin
IP Internet Protocol Giao thức định tuyến Internet IPSec Internet Protocol Security Giao thức bảo mật IP
ISO Open Systems Interconnection Kết nối các hệ thống mở LAN Local Area Network Mạng cục bộ
LDAP Lightweight Directory Access Protocol Giao thức ứng dụng truy cập
các cấu trúc thư mục MAC Message Authentication Code Mã Xác thực Tin nhắn
NFS Network File System Giao thức cung cấp các dịch
vụ về tệp và từ xa PCT Private communication Technology Công nghệ truyền thông cá
nhân POP Post Office Protocol Giao thức dùng để nhận mail
từ một mail server RAS Remote Access Services Dịch vụ truy cập từ xa
RSA Rivest Shamir Adleman Mã hóa RSA
SHTTP Secure HyperText Transfer Protocol Giao thức bảo mật mức tài liệu
hoặc dữ liệu SNMP Simple Network Management Protocol Tập các giao thức quản lý các
thiết bị mạng từ xa SSL Secure Sockets Layer Giao thức bảo mật tầng mạng SSL 1.0 SSL version 1 SSL phiên bản 1.0
SSL 2.0 SSL version 2 SSL phiên bản 2.0
SSL 3.0 SSL version 3 SSL phiên bản 3.0
SSLHP SSL Handshake Protocol Giao thức bắt tay
SSLRP SSL Record Protocol Giao thức bản ghi
SSLv3 SSL version 3 SSL phiên bản 3.0
TCP Transmission Control Protocol Giao thức điều khiển truyền
vận TLS Transport Layer Security Bảo mật tầng giao vận
UDP User DataGram Protocol Giao thức dữ liệu người sử
dụng URL Uniform Resource Locator Đường dẫn tham chiếu tới tài
Trang 6nguyên trên Internet
VPN Virtual Private Networks Mạng riêng ảo
Trang 7DANH MỤC HÌNH
Hình 1.1: Sơ đồ quan hệ giữa giao thức SSL và mô hình tham chiếu ISO 10
Hình 1.2: Mô hình phân tầng đối với giao thức con SSL 12
Hình 1.3 Sơ đồ các cấu trúc bản ghi SSL 13
Hình 1.4: Quá trình bắt tay của giao thức SSL Handshake 17
Hình 1.5: Quá trình hoạt động của giao thức Record SSL 21
Hình 1.6: Bảng Các thành phần thông tin trạng thái Session SSL 22
Hình 1.7: Bảng các thành phần thông tin trạng thái nối kết SSL 22
Hình 1.8: Quá trình đảm bảo tính toàn vẹn của thông tin 23
Hình 1.9: Sơ đồ nguyên lý hoạt động của SSL VPN hướng ứng dụng 27
Hình 1.10: Mô hình tham chiếu ISO của SSL VPN hướng ứng dụng 28
Hình 1.11: Mô hình tham chiếu ISO của SSL VPN hướng gateway 30
Hình 2.1: Mô hình kết nối mạng đến Trang thông tin truy nã tội phạm 33
Hình 2.2: Quy trình cấp phát tài khoản và chứng chỉ số cho người dùng mới 35
Hình 2.3: Lưu đồ nhập dữ liệu để đăng ký thông tin về người dùng mới 36
Hình 2.4: Lưu đồ hoạt động của chức năng ký duyệt người dùng 38
Hình 2.5: Lưu đồ thuật toán chức năng kích hoạt người dùng 39
Hình 2.6: Lưu đồ hoạt động của chức năng tạo và tải chứng chỉ dạng pkcs12 41
Hình 2.7: Lưu đồ chức năng xác thực người dùng 42
Hình 2.8: Lưu đồ thuật toán điều khiển truy nhập 44
Hình 2.9: Điều khiển truy nhập trong trường hợp truy nhập đường link trực tiếp 45
Hình 2.10: Biểu đồ chức năng nghiệp vụ Hệ thống Quản lý thông tin truy nã tội phạm 46
Hình 3.1: Giao diện Trang thông tin truy nã tội phạm khi chưa đăng nhập 49
Hình 3.2: Giao diện Đăng ký người dùng mới 51
Hình 3.3: Trang kiểm tra thông tin đăng ký tài khoản của người dùng mới 52
Hình 3.4: Màn hình thông báo kết quả đăng ký tài khoản của người dùng mới 52
Hình 3.5: Trang cá nhân của người lãnh đạo khi có người dùng đợi ký 53
Hình 3.6: Danh sách các tài khoản đăng ký mớ chờ ký duyệt 53
Hình 3.7: Thông tin chi tiết người dùng chờ ký duyệt 54
Hình 3.8: Trang cá nhân người quản trị khi có người dùng đợi kích hoạt 55
Hình 3.9: Bảng danh sách người dùng đợi kích hoạt 55
Hình 3.10: Giao diện kích hoạt tài khoản mới của người dùng 56
Hình 3.11: Giao diện người dùng đăng nhập lần đầu 57
Hình 3.12: Giao diện thông báo đã tạo chứng chỉ người dùng xong 57
Hình 3.14: Cài đặt một chứng chỉ số từ tệp chứng chỉ 58
Hình 3.15: Giao diện cài đặt chứng chỉ số theo Winzard 59
Hình 3.16: Giao diện yêu cầu nhập mật khẩu bảo vệ chứng chỉ 59
Trang 8Hình 3.17: Giao diện lựa chọn khu vực chứa chứng chỉ số 60
Hình 3.18: Giao diện hoàn thành việc cài đặt chứng chỉ số 60
Hình 3.19: Lựa chọn cấp độ bảo vệ khóa bí mật 61
Hình 3.20: Khởi tạo mật khẩu bảo vệ khi trình chứng chỉ số 61
Hình 3.21: Thông báo tiến trình cài đặt chứng chỉ vào trình duyệt thành công 62
Hình 3.22: Giao diện đăng nhập và yêu cầu trình chứng chỉ người dùng 64
Hình 3.23: Giao diện người dùng sau khi đăng nhập thành công 65
Hình 3.24: Giao thức https được sử dụng để kết nối trình duyệt người dùng với hệ thống 65
Hình 3.25: Hiển thị trạng thái kết nối có bảo đảm an toàn dựa trên giao thức SSL 65
Hình 3.26: Menu hệ thống khi người dùng chưa đăng nhập 68
Hình 3.27: Menu hệ thống khi người dùng thuộc nhóm Quản trị hệ thống đăng nhập 68
Trang 9MỞ ĐẦU
Hiện nay có rất nhiều yêu cầu truy nhập từ xa tới các trang thông tin điện tử trên mạng Internet để trao đổi thông tin, dữ liệu đối với ứng dụng chạy trên Web Server Để đảm bảo an toàn cho các truy nhập từ xa, thông tin, dữ liệu chính xác tới các trang thông tin điện tử của các Bộ, Ban, ngành ở nước ta là việc làm cần thiết và có ý nghĩa thực tiễn phù hợp với xu hướng ứng dụng và phát triển công nghệ thông tin ở nước ta
Trong ngành Công an, thông tin chính xác phục vụ công tác nghiệp vụ rất quan trọng, đặc biệt thông tin truy nã tội phạm Thông tin truy nã tội phạm là những thông tin có yếu tố pháp lý Nếu thông tin bị sai lệnh có thể ảnh hưởng đến quyền của công dân Vì vậy, thông tin, dữ liệu lưu giữ trên Trang thông tin truy
nã tội phạm phải được đảm bảo an toàn và có khả năng xác thực đối với những người đã cung cấp thông tin lên Trang thông tin truy nã tội phạm
Trang thông tin truy nã tội phạm được xây dựng nhằm tạo ra một địa chỉ cung cấp thông tin về các đối tượng truy nã chung cho công an các đơn vị, địa phương; cho phép công an các đơn vị, địa phương có thể chủ động cung cấp thông tin về đối tượng do mình phát lệnh truy nã cho lực lượng công an trên toàn quốc Đồng thời, cũng cho phép công an các đơn vị, địa phương nhập thông tin về các đối tượng truy
nã đã bị bắt hoặc có quyết định đình nã Do mạng nội bộ của Bộ Công an mới chỉ kết nối tới được công an các tỉnh, thành phố và một số phòng, quận, huyện nên việc truy nhập đến Trang thông tin truy nã tội phạm phải sử dụng cả phương thức truy nhập qua đường dial-up hoặc qua kênh VPN trên một mạng công cộng Vì vậy, việc đảm bảo những yêu cầu về an toàn thông tin cho Trang thông tin truy nã tội phạm và các giải pháp an toàn cho các kết nối từ xa tới Trang thông tin truy nã tội phạm là hết sức cần thiết trong ngành Công an
Với tính cấp thiết như vậy, Học viên xin đăng ký với Nhà trường làm luận văn
tốt nghiệp đề tài "Xây dựng giải pháp đảm bảo an toàn cho các truy cập từ xa tới hệ thống truy nã tội phạm của C14" và đã được Nhà trường chấp thuận
Mục tiêu của đề tài là nghiên cứu, tìm hiểu cấu trúc, nguyên lý hoạt động của giao thức SSL, nghiên cứu xác thực chứng thư số dựa trên giao thức SSL, mạng riêng ảo dựa trên giao thức SSL từ đó lựa chọn giải pháp thích hợp đảm bảo an toàn cho các truy nhập từ xa tới hệ thống truy nã tội phạm của C14
Cấu trúc của Luận văn gồm có phần Mở đầu, 3 Chương và phần Kết luận Ngoài phần Mở đầu, phần kết luận, tài liệu tham khảo, Luận văn gồm:
Trang 10Chương 1: Nghiên cứu giao thức SSL, mạng riêng ảo dựa trên giao thức SSL Chương 2: Ứng dụng giao thức SSL để đảm bảo an toàn cho các truy nhập từ xa
tới trang thông tin truy nã tội phạm
Chương 3: Hoạt động cấp chứng chỉ, xác thực và điều khiển truy nhập của trang
thông tin truy nã tội phạm Xây dựng chức năng cấp phát chứng chỉ số cho người dùng mới, chức năng xác thực và điều khiển truy nhập, từ đó xây dựng giải pháp
sử dụng SSL VPN (sử dụng giao thức https) để đảm bảo an toàn cho các truy
nhập từ xa tới hệ thống truy nã tội phạm của C14
Trang 11Chương 1 – TỔNG QUAN VỀ GIAO THỨC SSL 1.1 Giới thiệu về giao thức SSL:
1.1.1 Sự ra đời và phát triển của giao thức SSL:
Secure Sockets Layer (SSL) là một giao thức có thể được đặt ở giữa giao thức tầng mạng kết nối định hướng TCP/IP và tầng giao thức ứng dụng (FTP, HTTP, telnet ) SSL cung cấp dịch vụ truyền thông có bảo mật giữa client và server bằng việc cho phép client và server xác thực lẫn nhau sử dụng chữ ký số
và bảo mật thông tin trao đổi qua lại bằng cách mã hóa các thông tin đó Giao thức này được thiết kế để có thể trợ giúp một loạt các thuật toán sử dụng cho việc mã hóa, hàm băm và chữ ký số Ngày nay, SSL còn được sử dụng nhiều trong các ứng dụng của thương mại điện tử và tổ chức các mạng riêng ảo VPN Giao thức SSL được công ty truyền thông Netscape thiết kế để sử dụng với Netscape Navigator Phiên bản 1.0 của SSL được phát triển vào năm 1994 Đây
là phiên bản thử nghiệm chỉ sử dụng trong nội bộ Netscape Phiên bản 2.0 là phiên bản phát hành công khai đầu tiên và được gắn với phiên bản 1 và 2 của Netscape Navigator Sau khi SSL 2.0 được phát hành, Microsoft cho ra một phiên bản SSL riêng của mình tên là PCT (Private communication Technology – Công nghệ truyền thông cá nhân) Vì phiên bản này của Microsoft không quan tâm đến việc chuẩn hoá mà chỉ cố thử áp dụng các qui tắc riêng của mình nên ít nhận được sự ủng hộ của người dùng
Phiên bản mới nhất của SSL là 3.0 và nó kết hợp chặt chẽ tất cả các cải tiến PCT của Microsoft để khắc phục các điểm yếu của SSL 2.0 SSL 3.0 đươ ̣c đưa ra thị trường vào tháng 3 năm 1996
Ngoài các phiên bản của SSL còn có giao thức TLSv1 (Transport Layer Security version 1.0) là một giao thức phát triển dựa trên cơ sở của SSLv3 và được thiết kế bởi IETF (Internet Engineering Task Force) Tuy nhiên, hiện nó chưa hỗ trợ cho tất cả các trình duyệt thông dụng (chẳng hạn Netscape) TLSv1 có bổ sung phần block padding cho các thuật toán mã khối, chuẩn hoá thứ tự các thông báo và
bổ sung thêm các thông báo trong phiên liên lạc
1.1.2 Cấu tru ́ c của giao thức SSLv3:
Để SSL cho phép trao đổi thông tin trong mô hình client-server một cách trong suốt, giao thức SSL được đặt giữa tầng ứng dụng và tầng vận chuyển của
mô hình kết nối các hệ thống mở OSI Theo cách tiếp cận này, có thể định nghĩa
Trang 12SSL như là một phần của tầng trình diễn Hình 1.1 cho thấy vị trí của SSL trong
mô hình OSI và trong mô hình phân tầng của giao thức TCP/IP Nói cách khác, SSL không hoạt động dựa trên giao thức UDP (User DataGram Protocol) bởi vì
nó không đưa ra sự vận chuyển đáng tin cậy mà điều này có thể dẫn đến việc mất gói tin IP Vì vậy, SSL không thể cung cấp sự bảo vệ cho các giao thức sau: SNMP, NFS, DNS
Hình 1.1: Sơ đồ quan hệ giữa giao thức SSL và mô hình tham chiếu ISO
Trang 13Xét về phương diện bảo mật thì ngoài chức năng truyền thông tin, tầng ứng dụng của mô hình ISO còn cung cấp các dịch vụ như thỏa thuận các cơ chế bảo mật (mã hóa) và xác thực giữa các bên tham gia giao tiếp Trong khi đó, tầng trình diễn cũng có chức năng liên quan đến bảo mật dữ liệu Trong một số ứng dụng, dữ liệu mà một ứng dụng trước khi gửi đi được mã hóa bằng cách sử dụng một khóa mà chỉ tầng trình diễn ở nơi nhận được định trước mới được biết, đồng thời, tiến hành giải mã dữ liệu nhận được nhờ sử dụng khóa tương ứng trước khi chuyển dữ liệu đó đi tiếp đến nơi nhận đã định Việc này không thuộc chuẩn
Giao thức SSL bao gồm hai tầng con Giao thức Bắt tay SSL (SSLHP) và Giao thức Bản ghi SSL (SSLRP) và sử dụng bốn giao thức con: SSL record, SSL handshake, ChangeCipherSpec, Alert
Tầng SSLHP quản lí việc trao đổi khoá, cảnh báo và thay đổi mật mã Tầng SSLRP chịu trách nhiệm truyền các khối thông tin được gọi là các bản ghi (record) và mã hóa chúng bằng mật mã (cipher) đã được thỏa thuận, hoặc nhận các bản ghi và giải mã chúng SSLHP và dữ liệu ứng dụng nằm bên trên SSLRP
Như có thể thấy (trong sơ đồ) thì SSL thật sự nằm khá gọn gàng trong hai tầng ISO với SSLHP nằm ở mức Tầng ứng dụng và SSLRP nằm ở mức Tầng trình diễn Do các chức năng bảo mật không được cài đặt trong nhiều giao thức, nên SSL hoạt động như một phần bổ sung cho các giao thức đó và không thay thế hoàn toàn các giao thức này Cũng có thể thấy rằng việc sử dụng giao thức SSL không loại trừ việc sử dụng các giao thức bảo mật khác đang làm việc ở một mức cao hơn; thí dụ SHTTP (Secure HyperText Transfer Protocol), một giao thức bảo mật mức tài liệu hoặc dữ liệu, rõ ràng là để đáp ứng nhu cầu của các giao dịch tài chính, có thể được bổ sung thêm với SSL
Giao thức SSL cung cấp mã chức năng hóa dữ liệu, xác thực máy chủ, bảo đảm tính toàn vẹn của thông điệp trao đổi giữa các thực thể tham gia vào quá trình trao đổi thông tin và xác thực máy trạm cho một kết nối TCP/IP
SSL có thể nằm ở đỉnh của giao thức giao vận bất kỳ, nó không phải là giao thức phụ thuộc vào TCP/IP và có thể chạy dưới các giao thức ứng dụng như HTTP, FTP và TELNET
Hình 1.2 trình bày mối quan hệ giữa các giao thức con và vị trí của mỗi giao thức con, lớp con và các lớp liền kề của SSL
Trang 14Hình 1.2: Mô hình phân tầng đối với giao thức con SSL
Như có thể thấy trong hình vẽ, Handshake protocol của SSLv3 nằm ở mức Tầng ứng dụng , còn Record protocol nằm ở mức Tầng trình diễn Tầng Handshake protocol quản lí việc trao đổi khoá, cảnh báo và thay đổi mật mã Tầng Record protocol chịu trách nhiệm truyền các khối thông tin được gọi là các bản ghi (record) và mã hóa chúng bằng mật mã (cipher) đã được thỏa thuận, hoặc nhận các bản ghi và giải mã chúng Đối với mỗi tầng giao thức nói chung, một gói dữ liệu sẽ bao gồm các trường độ dài, mô tả và nội dung dữ liệu SSLv3 Record nhận dữ liệu cần gửi từ tầng trên phân nhỏ thành từng block, nén dữ liệu,
bổ sung dữ liệu kiểm tra, mã hoá và gửi Khi nhận dữ liệu về tiến trình được thực hiện ngược lại: giải mã, kiểm tra, gỡ nén và sắp xếp lại rồi gửi lên tầng trên
Do các chức năng bảo mật không được cài đặt trong nhiều giao thức , nên SSLv3 hoạt động như một phần bổ sung cho các giao thức đó và không thay thế hoàn toàn các giao thức này SSLv3 cũng không loại trừ việc sử dụng các giao thức bảo mật khác đang làm việc ở một mức cao hơn; thí dụ SHTTP (Secure HyperText Transfer Protocol ) Giao thức SSLv 3 cho phép cung cấp mã chức năng hóa dữ liệu, xác thực máy chủ, bảo đảm tính toàn vẹn của thông điệp trao đổi giữa các thực thể tham gia vào quá trình trao đổi thông tin và xác thực máy trạm cho một kết nối TCP/IP
Trang 151.1.3 Các giao thức con của SSLv3:
1.1.3.1 Giao thức Bắt tay SSL:
Giao thức này được sử dụng để thỏa thuận các tham số bảo đảm an toàn của một phiên liên lạc Các thông điệp bắt tay được hỗ trợ bởi Giao thức Bản ghi
và được đóng gói trong một cấu trúc gọi là SSLPlaintext, được xử lý và truyền
đi bởi trạng thái phiên đang hoạt động hiện hành Giao thức bắt tay Handshake chịu trách nhiệm xác thực các thành viên tham gia liên lạc, đàm phán các thuật toán mã và thuật toán băm hash và sự trao đổi của PreMasterSecret mà nó được
sử dụng sau này để tạo ra các khoá xác thực và khoá mã hoá thông qua MasterSecret
Trang 16Mỗi gói dữ liệu của giao thức bản ghi SSL gồm hai phần, phần header và phần dữ liệu Phần header có thể dài 3 byte hoặc 2 byte, header 2 byte được dùng trong trường hợp không có dữ liệu đệm (padding data) Bít dự phòng (escape bit) không được sử dụng trong phiên bản 2 của giao thức nhưng người ta gợi ý nên sử dụng nó để định rõ dữ liệu Out-Of-Band ở các phiên bản tới Với một header 2 byte thì độ dài bản ghi lớn nhất là 32767 byte trong khi một header 3 byte chỉ cho phép một độ dài bản ghi tối đa là 16383 byte
Phần dữ liệu của bản ghi gồm một Mã Xác thực Tin nhắn (MAC), phần dữ liệu thực sự và dữ liệu đệm, nếu có Khi cần thiết phải tiến hành mã hóa thì chính phần dữ liệu của bản ghi sẽ được mã hóa hoàn toàn Dữ liệu đệm chỉ được đòi hỏi để
sử dụng cho các cipher khối (block cipher) Nó được sử dụng để lấp đầy chiều dài của khối dữ liệu sao cho thành một bội số của kích thước khối cipher Nếu một cipher luồng (stream cipher) được sử dụng hoặc dữ liệu đã là một bội số của kích thước khối cipher rồi thì không đòi hỏi phải lấp đầy khối nữa và một bản ghi với header 2 byte được sử dụng MAC là một giá trị băm hoặc message digest với giá trị đầu vào là khóa ghi (bí mật) của bên gửi, dữ liệu thực sự, dữ liệu đệm và một số đếm theo thứ tự tương ứng Số đếm là một số nguyên 32 bit được tăng lên sau mỗi lần tin nhắn được gửi đi
1.1.3.3 Change cipher spec protocol:
Chức năng của giao thức CCS (ChangeCipherSpec) là chỉ thị cho các thay đổi nào đó trong các tham số bảo mật ChangeCipherSpec là giao thức đơn giản nhất trong SSL Nó chỉ gồm một thông điệp dài 1 byte có cùng tên với giao thức Thông báo này chỉ thị cho giao thức Record bên nhận biết rằng việc mã hoá của các khung (frame) dữ liệu tiếp theo sẽ được thực hiện với CipherSpec và khoá vừa thiết lập
Giao thức này chỉ bao gồm một message trong đó thực hiện chức năng thông báo việc thiết lập các thuộc tính mật mã cho phiên liên lạc đã hoàn thành Message này chỉ có một byte duy nhất với giá trị là 1
Trang 17xong KeyExchange message, còn server gửi ngay sau khi nhận và xử lý xong KeyExchange từ client
1.1.3.4 Alert protocol:
Giao thức Alert chỉ thị các lỗi bắt gặp trong khi thẩm tra thông điệp cũng như
sự không tương thích nào đó nảy sinh trong khi bắt tay Một trong những kiểu dữ liệu được hỗ trợ bởi SSL record layer là kiểu alert (message thông báo) Các alert message truyền tải các thông báo lỗi trong quá trình thiết lập cũng như trao đổi dữ liệu của một phiên liên lạc Cũng như các loại message khác, alert message cũng được mã hoá và nén
Cấu trúc của alert message như sau:
enum {warning(1),fatal(2),(255)} AlertLevel;
enum {
close_notify(0), unexpected_message(10), bad_record_mac(20), decompression_failure(30), handshake_failure(40), no_certificate (41), bad_certificate(42), unsuported_certificate(43), certificate_revoked(44), certificate_expired(45), certificate_unknow(46), illegal_parameter(47), (255)
1.2 Hoạt động của giao thức SSL:
1.2.1 Thiết lập một phiên làm việc:
Một phiên làm việc SSL luôn luôn bắt đầu với một cuộc trao đổi các
thông điệp (message) được gọi là cuộc bắt tay SSL Việc bắt tay cho phép máy
Trang 18chủ xác thực nó với máy trạm bằng cách sử dụng kỹ thuật khóa công khai, sau
đó cho phép máy trạm và máy chủ hợp tác với nhau trong việc tạo ra các khóa đối xứng được sử dụng để mã hóa, giải mã và phát hiện xâm nhập nhanh trong suốt phiên làm việc tiếp theo Nếu muốn, quá trình bắt tay đó cũng cho phép máy trạm xác thực với máy chủ Hình 1.4 trình bày quá trình trao đổi các thông điệp giữa hai đầu cuối để thực hiện bắt tay theo giao thức SSL
Quá trình bắt tay có thể được tóm tắt qua các bước sau:
Bước 1: Client gửi cho server số phiên bản SSL đang dùng, các tham số của thuật toán mã hoá trong thông điệp Client Hello
Bước 2: Server trả lời bằng thông điệp Server Hello chấp nhận việc bắt đầu một kết nối an toàn Thông điệp Server Hello chứa phiên bản SSL và thuật toán
mã hóa mà server đã chọn để sử dụng trong phiên giao dịch Sau đó Server gửi chuỗi chứng chỉ X509 của nó cùng với một đoạn dữ liệu được tạo ngẫu nhiên và bản mã hóa bằng khóa cá nhân tương ứng với chứng chỉ của đoạn dữ liệu đó để phục vụ cho việc xác thực máy chủ và gửi yêu cầu chứng chỉ của Client nếu cần
Cuối cùng nó gửi thông báo hoàn thành “Server Hello Done” Trong bước này,
nếu kết nối không yêu cầu chứng chỉ của Server (tức là không yêu cầu xác thực server mà chỉ cần bảo mật thông tin trao đổi – trường hợp này rất ít khi được sử dụng), server sẽ chỉ gửi khóa công khai của mình thay cho gửi cả chuỗi chứng chỉ
Bước 3: Sau khi nhận được Server Hello Done, client sử dụng một số thông tin mà server gửi đến để xác thực server Đó là chứng chỉ và đoạn dữ liệu ngẫu nhiên đã được mã Đầu tiên, client sẽ kiểm tra chữ kí số của CA trong chứng chỉ, việc kiểm tra thành công sẽ giúp client đảm bảo được rằng chứng chỉ này đúng là do CA cấp, các thông tin trong chứng chỉ đã được CA kiểm tra và đảm bảo tính chính xác Để có thể kiểm chứng được chữ ký của CA, máy client phải
có được khóa công khai của CA, việc này đồng nghĩa với việc client phải tin tưởng vào CA đã cấp chứng chỉ cho server, việc tin tưởng này có thể là trực tiếp,
có thể là bắc cầu thông qua các CA trung gian Đồng thời, kiểm tra chữ kí thành công cũng đảm bảo rằng các thông tin trong chứng chỉ được toàn vẹn, không bị thay đổi
Trang 19Hình 1.4: Quá trình bắt tay của giao thức SSL Handshake
Nhờ vậy, client hoàn toàn có thể tin tưởng để sử dụng các thông tin trong chứng chỉ nhằm xác định xem trang Web này có phải là trang mà người dùng muốn truy nhập hay không, hiện nay xác thực thường chỉ dựa vào địa chỉ trang web Sau đó, client sử dụng khóa công khai trong chứng chỉ để giải mã đoạn dữ liệu mà server gửi, rồi so sánh với đoạn dữ liệu đầy đủ nhận được Nếu trùng khớp, client có thể khẳng định được chứng chỉ này đúng là của server nó đã kết
Trang 20nối Việc này là nhằm loại trừ trường hợp kẻ giả mạo xuất trình một chứng chỉ
bị đánh cắp
Nếu như server không được xác thực thì người sử dụng sẽ được cảnh báo
để quyết định có tiếp tục kết nối với server này hay không Trong trường hợp xác thực được server thì phía client sẽ gửi chuỗi chứng chỉ của nó nếu cần, sau
đó nó gửi thêm các tham số phục vụ cho việc mã hóa (khóa mã được tạo dùng riêng cho phiên giao dịch này – session key), các tham số này được mã bằng khóa công khai của server chứa trong chứng chỉ hoặc được gửi riêng Nếu việc xác thực client được yêu cầu, client sẽ gửi thêm một mẫu dữ liệu ngẫu nhiên đã được ký bằng khóa riêng tương ứng với chứng chỉ Sau đó client sẽ gửi thêm thông điệp Change Cipher Spec thông báo đã thỏa thuận xong khóa mã và bắt đầu mã hóa Từ đây các thông điệp tiếp theo từ phía client sẽ được mã hóa bằng khóa đối xứng đã thỏa thuận Cuối cùng, Client gửi thông điệp “Client Finished”
để kết thúc gửi thông tin
Bước 4: Server tiếp nhận các thông tin do Client gửi trong bước 3 Nó sẽ tiến hành xác thực client nếu việc xác thực là yêu cầu Quá trình xác thực client diễn ra hoàn toàn tương tự như xác thực server, nhưng có nhiều lựa chọn hơn Điều này cho phép server xây dựng chính sách để chấp nhận và từ chối các chứng chỉ client theo giá trị từng trường trong chứng chỉ Khi xác thực client được yêu cầu, server sẽ chỉ kết nối với những client đã được xác thực Nếu việc xác thực không thành công, phiên giao dịch bị ngắt Chính vì vậy, để đảm bảo người sử dụng phía client kết nối tới server đúng là người sở hữu chứng chỉ đã xuất trình, chứng chỉ cần phải được bảo vệ sao cho chỉ có người sở hữu chứng chỉ mới có thể xuất trình chứng chỉ với server Sau đó, Server sẽ gửi thông điệp
“Change Cipher Spec” để xác nhận khóa đã thỏa thuận và thông điệp “Server Finished” để kết thúc
Bước 5: Quá trình bắt tay đến đây kết thúc, client và server đã được xác thực, khóa mã cũng đã được thỏa thuận xong Từ đây, các thông tin trao đổi giữa client và server sẽ được mã hóa bằng khóa mã này, đồng thời, khóa mã này cũng được sử dụng để kiểm tra tính toàn vẹn dữ liệu
Trong thông báo Client Hello có một trường thông tin rất quan trọng là Session ID, trường này sẽ không chứa giá trị nào nếu kết nối cần thiết lập là một kết nối mới Nếu Client muốn tiếp tục dùng lại các thông số bảo mật của một phiên làm việc đã có để rút ngắn quá trình bắt tay, nó sẽ gửi Sesstion ID của phiên trước trong trường Session ID Khi server nhận được thông điệp “Client
Trang 21Hello” với trường Session ID không rỗng, nó sẽ kiểm tra trong bộ nhớ đệm của mình để xác định phiên làm việc đó đã tồn tại chưa Trong trường hợp phiên làm việc đã có và thỏa mãn các yêu cầu để tiếp tục liên lạc, server sẽ gửi thông điệp
“Server Hello” với trường Session ID trùng với trường Session ID của Client Khi đó, các tham số bảo mật được xem như đã thỏa thuận xong Client và Server
sẽ gửi thông điệp “Change Cipher Spec” và thông điệp Finished để hoàn tất quá trình bắt tay Trường hợp này khác với bắt đầu một phiên làm việc mới, việc xác thực sẽ được bỏ qua và các thông điệp “Client Hello” và “Server Hello” đều được mã hóa bằng các thông số đã thỏa thuận trong phiên giao dịch gốc Nếu Session ID được gửi bởi client không có mặt trong server hoặc không đúng hay phiên này đã được xem là quá hạn, yêu cầu của client bị từ chối và server sẽ khởi động một bắt tay đầy đủ để thiết lập một phiên làm việc mới
1.2.2 Mã hóa dữ liệu:
SSL cung cấp khả năng mã hóa dữ liệu trước khi gửi tới đường truyền tạo ra một kênh riêng ảo giữa hai đầu của kết nối, tránh mọi sự can thiệp trái phép vào thông tin trên đường truyền Giao thức SSL sử dụng một sự kết hợp giữa mã hóa khóa đối xứng và khóa công khai Mã hóa khóa đối xứng nhanh hơn nhiều so với
mã hóa khóa công khai, nhưng mã hóa khóa công khai cung cấp các kỹ thuật xác thực tốt hơn Việc mã hóa của kết nối SSL cũng được bắt đầu trong quá trình bắt tay, quá trình bắt tay cho phép máy chủ và máy trạm xác thực bằng cách sử dụng
kỹ thuật khóa công khai, sau đó cho phép máy trạm và máy chủ hợp tác với nhau trong việc trao đổi các khóa đối xứng được sử dụng để mã hóa, giải mã và phát hiện xâm nhập nhanh trong phiên làm việc này Các tham số của mã hóa được đàm phán theo từng phiên và chỉ được sử dụng trong phiên làm việc đó
Sau khi kiểm tra chứng chỉ điện tử của server, client sử dụng các thông tin trong chứng chỉ điện tử (khóa công khai) để mã hoá thông điệp gửi lại server mà chỉ có server đó có thể giải mã Trên cơ sở đó, client và server trao đổi khoá chính (MasterKey – MasterSecret) – khoá bí mật hay khoá đối xứng – để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách
Client sử dụng tất cả các thông tin được tạo ra trong giai đoạn bắt tay, (cùng với các thông tin từ server và phụ thuộc vào thuật toán được sử dụng) sẽ tạo ra PreMasterSecret cho phiên làm việc, mã hoá bằng khoá công khai (public key) mà server gửi đến trong chứng chỉ của Server và gửi đến server Server sẽ sử dụng khoá bí mật (private key) tương ứng để giải mã PreMasterSecret, sau đó thực hiện một số bước để tạo ra MasterSecret theo công thức:
Trang 22ms = MD5(pms + SHA(„A‟ + pms + client_random + server_random))
+ MD5(pms + SHA(„BB‟ + pms + client_random + server_random)) + MD5(pms + SHA(„CCC‟ + pms + client_random + server_random))
Trong đó:
ms là “Master Secret”
pms là “Pre Master Secret”
Client và server sẽ sử dụng MasterSecret để tạo ra các session key, đó chính
là các khoá đối xứng được sử dụng để mã hoá và giải mã các thông tin trong phiên làm việc và kiểm tra tính toàn vẹn dữ liệu
Sau khi gửi các thông số được sử dụng trong quá trình mã hóa, Client gửi một thông điệp “ChangeCipherSpec” và bản sao CipherSpec sắp tới vào CipherSpec hiện tại Sau đó, client gửi thông điệp Finished đã được mã hóa bằng các thông số bảo mật mới vừa được thỏa thuận Thông điệp Finished xác nhận rằng
sự trao đổi khoá đã thành công
Một vấn đề quan trọng được đề cập là thông điệp ChangeCipherSpec không phải là một phần của giao thức Handshake ChangeCipherSpec là giao thức đơn giản nhất trong SSL Nó chỉ gồm một thông điệp dài 1 byte có cùng tên với giao thức Thông báo này chỉ thị cho giao thức Record bên nhận biết rằng việc mã hoá của các khung (frame) dữ liệu tiếp theo sẽ được thực hiện với CipherSpec và khoá vừa thiết lập
Giao thức Record chỉ thực sự bắt đầu tham gia vào một giao dịch SSL sau khi truyền thông điệp ChangeCipherSpec Trong khi thiết lập một phiên, giao thức này bị giới hạn để đóng gói dữ liệu bắt tay và truyền không sửa đổi tới tầng TCP Trong giai đoạn mã hoá, giao thức này nhận dữ liệu từ các tầng trên (bắt tay, cảnh báo, ChangeCipherSpec và tầng ứng dụng) rồi truyền dữ liệu này sau khi đã thực hiện các thao tác sau:
Phân đoạn dữ liệu thành từng khối với kích thước tối đa 214
byte
Nén dữ liệu
Tạo ra một bản tóm tắt để khởi tạo MAC và bảo đảm tính toàn vẹn của thông điệp
Mã hoá dữ liệu (tính bảo mật)
Đưa thêm một header
Giao thức Record đưa thêm một header 5 byte vào mỗi thông điệp nhận được từ lớp trên Header được tạo thành từ Content Type (1 byte), Major
Trang 23Version (1 byte), Minor Version (1 byte) và độ dài nén (2 byte) Content Type chỉ thị kiểu thông điệp dựa theo kiểu gốc của thông điệp (dữ liệu Handshake, ChangeCipherSpec, Alert và Application) Major Version chỉ thị phiên bản chính của SSL khi sử dụng (đối với SSLv3 giá trị này là 3) Minor Version chỉ thị phiên bản phụ của SSL khi sử dụng (đối với SSLv3 giá trị này là 0) Cuối cùng, độ dài nén là độ dài tính theo byte của phân mảnh của bản mã (hoặc phân mảnh nén nếu việc nén được sử dụng), giá trị cực đại của nó có thể là 214
+2048
Hình 1.5: Quá trình hoạt động của giao thức Record SSL
Tại đầu nhận, các hoạt động tương tự nhưng theo trật tự ngược lại là giải mã, xác minh tính toàn vẹn, giải nén và lắp ráp lại Nếu việc tính toán digest là không giống hệt với bản tóm tắt nhận được, giao thức Record sẽ gọi giao thức Alert để gửi một thông báo lỗi tới bên gửi Các Hình 1.6 và 1.7 thể hiện ý nghĩa của các tham số được trao đổi trong quá trình bắt tay và sử dụng trong quá trình làm việc của một phiên giao dịch SSL
Session ID Định danh được chọn bởi server để nhận dạng một trạng thái session
hoạt động hoặc có thể tiếp tục lại
Trang 24Peer certificate Chứng nhận X.509 phiên bản 3 của thực thể ngang hàng (client và
server)
Compression
method Thuật toán dùng để nén dữ liệu trước khi mã hóa
Cipher spec Thông số của các thuật toán mã hóa dữ liệu và MAC
Master secret Khóa mật được chia sẻ giữa client và server
Is resumable Cờ biểu thị session có thể được sử dụng để bắt đầu các nối kết mới
hay không
Hình 1.6: Bảng Các thành phần thông tin trạng thái Session SSL
Ngẫu nhiên server và
client Các chuỗi byte được chọn bởi server và client cho mỗi nối kết
Khóa mật MAC ghi
server
Khóa mật được sử dụng cho các hoạt động MAC trên dữ liệu
được ghi bởi server
Khóa mật MAC ghi
client
Khóa mật được sử dụng cho các hoạt động MAC trên dữ liệu
được ghi bởi client
Khóa ghi server Khóa được sử dụng cho việc mã hóa dữ liệu bởi server và giải
Số chuỗi Mỗi phía duy trì các số chuỗi riêng biệt cho các thông báo
được truyền và được nhận cho mỗi nối kết
Hình 1.7: Bảng các thành phần thông tin trạng thái nối kết SSL 1.2.3 Kiểm tra sự toàn vẹn thông tin
SSL ứng dụng nguyên lý hàm băm để đảm bảo tính toàn vẹn thông tin trên đường truyền Để chắc chắn rằng thông tin được toàn vẹn, mỗi một thông điệp được SSL thêm vào một bản tóm tắt được tạo ra bằng một hàm băm Bản tóm tắt được tạo ra từ dữ liệu và một khóa bí mật thông qua một thuật toán băm Bản tóm tắt này có đặc điểm là có độ dài cố định tùy theo thuật toán sử dụng và hai bảng băm của hai dữ liệu khác nhau rất khó trùng nhau Như vậy, nếu trong quá trình truyền, thông tin bị can thiệp làm thay đổi nội dung, dù là rất nhỏ thì sẽ làm cho bản tóm tắt bị thay đổi, đồng thời kẻ tấn công cũng không thể tạo ra bản tóm tắt giả được vì không có khóa bí mật Quá trình này được thực hiện trong hoạt động của giao thức SSL Record Sau khi phân đoạn và nén dữ liệu, phía gửi
Trang 25sẽ tiến hành băm bằng thuật toán băm đã được thỏa thuận Sau đó nó gắn đoạn
dữ liệu này vào cùng với dữ liệu gốc rồi mã hóa chúng bằng khóa phiên trước khi thêm header và gửi đi Tại nơi nhận, gói dữ liệu sau khi tách các phần header được giải mã bằng khóa phiên Sau đó dữ liệu được tách riêng với bản tóm tắt,
dữ liệu gốc được tiến hành băm bằng cùng thuật toán với bên gửi Cuối cùng, bên nhận sẽ so sánh hai đoạn dữ liệu băm nhận được và dữ liệu băm do nó tạo
ra, nếu hai đoạn này trùng khớp thì dữ liệu được toàn vẹn trên đường truyền, không bị thay đổi, nếu hai đoạn khác nhau, dữ liệu đã bị thay đổi trên đường truyền (có thể do kẻ thứ ba hoặc do lỗi trên đường truyền), giao thức Record sẽ gọi giao thức Alert để gửi một thông báo lỗi tới bên gửi Quá trình tạo bản tóm tắt và kiểm tra tính toàn vẹn của dữ liệu được mô tả trong Hình 1.8
Hình 1.8: Quá trình đảm bảo tính toàn vẹn của thông tin
Như vậy, với việc ứng dụng chứng chỉ số, giao thức SSL đã đảm bảo các chức năng xác thực được hai bên giao dịch, mã hóa đảm bảo tính bí mật của thông tin và đảm bảo tính toàn vẹn của thông tin trên đường truyền Đây chính
là nguyên nhân khiến cho SSL ngày càng trở nên thông dụng trong việc đảm bảo
an toàn cho các truy nhập từ xa
Trang 261.2.4 Tính an toàn của SSL:
“Nếu bạn có khoảng 200 máy tính, bạn tốt nghiệp trường đại học Harvard và
có khoảng 500 giờ thì bạn có thể crack SSL”, đó là lời của một bài báo được đưa ra
gần đây SSL sử dụng cơ chế mã hóa khóa công khai được phát triển bởi RSA để trao đổi khóa mã hóa và như ta đã biết đó là một thuật toán an toàn
Gần đây có bài báo đã đưa ra thông tin rằng có thể dùng phương pháp brute force để phá khóa của giao thức SSL Phương pháp brute force đơn giản chỉ thử tất
cả các khả năng có thể cho tới khi tìm được kết quả đúng Trong phiên bản xuất khẩu của SSL sử dụng khóa mã hóa 40 bit Vì vậy, để phá khóa của giao thức SSL theo phương pháp brute force, số lượng tổ hợp này là 240 = 1,099,511,627,776 khóa khác nhau Rõ ràng là với kỹ thuật máy tính hiện nay thì sử dụng brute force là điều khó thực hiện Một ví dụ là để phá được khóa 40 bit thì cần phải dùng tới 120 máy tính hoạt động song song với nhau để tìm kiếm trong vòng 8 ngày thì mới quét được một nửa không gian khóa đó Gần đây, RSA đã đưa ra một thách thức với người dùng phá thuật toán mã hóa của họ với phần thưởng là $1000 Một sinh viên vừa tốt nghiệp đã thực hiện thành công trong 3 tiếng rưỡi Nhưng anh ta đã phải sử dụng tới
250 máy tính Đối với phiên bản dùng trong nội địa nước Mỹ là dùng 128 bit thì phá khóa là một điều gần như không thể đối với công nghệ máy tính hiện nay Thời gian
để phá khóa gần như là vô hạn
Vào năm 1996, SSL 3.0 đã được phân tích về góc độ an toàn thông tin một cách toàn diện bởi Bruce Scheneier và David Wagner Ngoại trừ một số khiếm khuyết nhỏ và những tính năng gây lo lắng vốn có thể được sữa chữa dễ dàng mà không cần tu sửa cấu trúc cơ bản của giao thức SSL, họ không tìm thấy vấn đề điểm yếu hoặc lỗi bảo mật nghiêm trọng trong việc phân tích của họ Kết quả, họ kết luận rằng giao thức SSL cung cấp sự bảo mật hoàn hảo ngăn việc nghe lén và những cuộc tấn công thụ động khác, và người thực thi giao thức này sẽ chỉ phải chú ý đến một số cuộc tấn công chủ động, tinh vi Tuy nhiên, một vài tháng sau, Daniel Bleichenbacher từ Bell Laboratoires đã tìm thấy một cuộc tấn công text mật mã được chọn thích ứng cho các giao thức dựa vào tiêu chuẩn mà khóa chung PKCS#1 Nhưng cũng đã có một số giải pháp để ngăn ngừa sự tấn công Bleichenbacher này
Cho đến trước tháng 7/2009, giao thức SSL vẫn đến là công nghệ tiên tiến nhất trong việc đảm bảo an toàn khi truyền dữ liệu qua mạng Internet Tuy nhiên,
Trang 27cuối tháng 7 và đầu tháng 8 năm 2009, các nhà nghiên cứu đã phát hiện ra một số lỗi cực kì nghiêm trọng có trên phần mềm sử dụng giao thức mã hoá theo công nghệ này Ngày 30/7/2009, tại hội nghị Black Hat ở Las Vegas (Mỹ), các nhà nghiên cứu
đã tiết lộ một số kiểu tấn công có thể được dùng để làm thương tổn việc trao đổi thông tin an toàn giữa website và trình duyệt (tấn công có thể cho phép tin tặc đánh cắp mật khẩu, chiếm đoạt 1 phiên giao dịch ngân hàng trực tuyến hay thậm chí là đưa ra một bản cập nhật trình duyệt Firefox có chứa mã độc) Vấn đề này nằm trong cách nhiều trình duyệt thực thi SSL và trong hệ thống hạ tầng khóa công khai X.509 (dùng để quản lý các chứng thức số được SSL sử dụng để quyết định xem website có đáng tin cậy hay không) Nhà nghiên cứu bảo mật có nickname là Moxie Marlinspike đã giới thiệu kiểu tấn công “null-termination certificate” làm gián đoạn phiên duyệt SSL giữa client và server (trong kiểu tấn công này, nếu viết
“www.paypal.com\0.thoughtcrime.org” sẽ được hiểu thành “www.paypal.com”) Loại tấn công kiểu “man-in-the-middle” này không thể phát hiện được, nếu lan rộng
sẽ ảnh hưởng tới Internet Explorer, Firefox 3.0, phần mềm mạng riêng ảo VPN (virtual private network), các trình e-mail client và IM (instant messaging) Để bịt lỗ hổng này thì cần cập nhật, sửa chữa cho hệ thống X.509
Sự việc còn trở nên tồi tệ hơn khi 2 nhà nghiên cứu bảo mật Dan Kaminsky
và Len Sassaman báo cáo phát hiện ra một số lớn chương trình web phụ thuộc vấn
đề chứng thực có sử dụng công nghệ mã hóa không an toàn MD2 Để khắc phục vấn
đề này, các nhà sản xuất phần mềm phải xử lý code để loại bỏ MD2 ra khỏi sản phẩm
Các điểm yếu an toàn trên mặc dù có liên quan đến giao thức SSL, nhưng thực chất là nằm trên các phần mềm ứng dụng SSL Vì vậy, để giải quyết các điểm yếu này, cần giải quyết các lỗi trên phần mềm ứng dụng giao thức SSL, còn bản thân giao thức SSL vẫn được xem là giao thức an toàn và tin cậy
1.3 Mạng riêng ảo dựa trên giao thức SSL
Thuật ngữ mạng riêng ảo dựa trên SSL (SSL VPN) được dùng để chỉ một dòng sản phẩm VPN mới và đang phát triển nhanh chóng dựa trên giao thức SSL Cũng cần nói rõ là bản thân giao thức SSL không mới nhưng liên kết SSL với VPN
là mô hình mới Vào thời điểm ban đầu, SSL VPN được dùng để kết nối giữa người
Trang 28dùng từ xa và tài nguyên mạng công ty thông qua kết nối HTTPS ở lớp ứng dụng thay vì tạo “đường hầm” ở lớp mạng như giải pháp IPSec Sau đó, SSL còn được sử dụng kết hợp với nhiều ứng dụng khác như FTP, Telnet, LDAP, POP và tạo thành giải pháp VPN hướng ứng dụng (application based VPN) Ngày nay, SSL VPN còn được phát triển theo hướng SSL VPN kiểu gateway dựa trên TLS kết hợp với một số tính năng của firewall
1.3.1 VPN SSL hướng ứng dụng:
1.3.1.1 Nguyên lý hoạt động của VPN SSL hướng ứng dụng:
Các sản phẩm SSL VPN theo kiểu hướng ứng dụng là những sản phẩm VPN dựa trên giao thức SSL được phát triển theo hướng không cần sử dụng phần mềm phía client và thuộc loại VPN truy nhập từ xa Đặc trưng cho sản phẩm loại này là các SSL VPN dựa trên giao thức Web Hai loại khác của SSL VPN kiểu hướng ứng dụng được kể đến là SSL VPN sử dụng phương thức proxy và SSL VPN sử dụng phương thức chuyển đổi ứng dụng
SSL VPN theo kiểu hướng ứng dụng hoạt động dựa trên giao thức SSL truyền thống Sơ đồ nguyên lý hoạt động của phần mềm thiết lập VPN được trình bày trong Hình 1.9
Trang 29Hình 1.9: Sơ đồ nguyên lý hoạt động của SSL VPN hướng ứng dụng
Dưới sự điều khiển của phần mềm ứng dụng, một giao thức ứng dụng tương ứng sẽ được sử dụng để thiết lập một phiên làm việc giữa phần mềm phía client và phần mềm phía server Tuy nhiên, khác với kết nối giữa client/server của ứng dụng thông thường, giao thức SSL sẽ được sử dụng tại thời điểm khởi đầu phiên liên lạc
để xác thực và trao đổi khóa nếu xác thực thành công Các dữ liệu trao đổi giữa client với server sau khi xác thực và trao đổi khóa thành công đều được mã hóa Thuật toán
mã hóa sử dụng trong phiên liên lạc là một thuật toán được lựa trọn trong các thuật toán chỉ ra trong Hình 1.10 Do khóa phiên có sử dụng một tham số ngẫu nhiên khởi sinh tại client và server nên khóa phiên gần như là duy nhất cho một phiên liên lạc, nhờ đó đã tạo ra một “đường hầm” riêng để trao đổi dữ liệu giữa client và server
Trang 30Hình 1.10 trình bày nguyên lý hoạt động của SSL VPN hướng ứng dụng theo mô hình tham chiếu ISO Trong đó, các gói tin của tầng ứng dụng (Application Layer) không đi thẳng xuống tầng trình diễn (Presentation Layer)
mà đi vòng qua các tầng con của giao thức SSL để xác thực và trao đổi khóa tại khi xác lập phiên, phân chia thành các khung, có thể được nén và sau đó được
mã hóa trong quá trình trao đổi dữ liệu
Hình 1.10: Mô hình tham chiếu ISO của SSL VPN hướng ứng dụng
1.3.1.2 Ưu điểm và hạn chế của của VPN SSL hướng ứng dụng:
Nếu xét về mặt kĩ thuật thì VPN SSL theo kiểu hướng ứng dụng thực chất không phải là một VPN thực sự mà chỉ là giả lập VPN bởi vì nó không thực sự tạo
Trang 31một đường hầm để trao đổi dữ liệu Đơn giản nó chỉ sử dụng SSL để mã hóa dữ liệu trước khi truyền đi chứ không thiết lập một đường hầm trước khi truyền dữ liệu
VPN SSL theo kiểu hướng ứng dụng cho phép thiết lập VPN cho từng ứng dụng và không cần thêm phần mềm client để truy cập VPN Vì vậy, cho phép người dùng linh hoạt trong việc tạo các VPN riêng cho từng ứng dụng để tạo một kênh trao đổi thông tin an toàn cho riêng ứng dụng đó Các dữ liệu, thông tin của ứng dụng khác được trao đổi theo các giao thức thông thường, không phải mã hóa và giải mã, do đó hiệu suất trao đổi thông tin sẽ cao hơn Tuy nhiên, do việc thiết lập VPN được thực hiện thông qua sự kết hợp giữa giao thức SSL với một giao thức ứng dụng cụ thể, nên với mỗi ứng dụng khác nhau cần có một phần mềm khởi tạo VPN riêng cho mỗi ứng dụng đó Khi muốn sử dụng SSL VPN cho một ứng dụng mới, phải viết riêng một phần mềm cho ứng dụng này
1.3.2 VPN SSL kiểu gateway:
1.3.2.1 Nguyên lý hoạt động của VPN SSL kiểu gateway:
SSL VPN kiểu gateway thường hoạt động dựa trên giao thức TLS Nó không kết hợp với giao thức của một ứng dụng cụ thể mà thực hiện thiết lập một kết nối SSL VPN trên một cổng TCP (hoặc UDP) giữa hai máy client và server Sau đó sử dụng hai máy này như là hai gateway để chuyển dữ liệu gửi đến hai đầu của VPN Dữ liệu này có thể đến trực tiếp từ máy làm gateway hoặc từ máy khác được kết nối mạng với gateway Trên các gateway có thể sử dụng thêm firewall để chặn các gói tin khác không gửi qua đường VPN tới các gateway
Do được kết hợp với một cổng TCP (hoặc UDP) và thực hiện mã hóa cho các dữ liệu đến từ tầng phiên (Sesion Layer) trước khi gửi đến tầng IP nên đôi khi giao thức SSL được xếp trong tầng giao vận (Transport Layer)
Hình 1.11 trình bày nguyên lí hoạt động của SSL VPN kiểu gateway theo
mô hình tham chiếu ISO Trước khi dữ liệu được truyền đi thì một chương trình ứng dụng sẽ thiết lập một đường hầm an toàn cho việc truyền dữ liệu và cấu hình sao cho dữ liệu không đi thẳng từ tầng transport xuống tầng network mà đi vòng qua các tầng con của giao thức SSL để xác thực, nén, mã hóa Cũng như vậy, dữ liệu đi từ dưới lên cũng không đi thẳng từ tầng network lên tầng transport mà đi vòng qua các tầng con của giao thức SSL
Trang 32Hình 1.11: Mô hình tham chiếu ISO của SSL VPN hướng gateway
1.3.2.2 Ưu điểm và hạn chế của VPN SSL theo kiểu gateway:
VPN SSL theo kiểu gateway cho phép người dùng có thể sử dụng với tất
cả các giao thức ở tầng ứng dụng
Tuy nhiên do tất cả dữ liệu đều phải đi qua VPN SSL nên hiệu xuất trao đổi có thể sẽ không cao
TOÀN CHO CÁC TRUY NHẬP TỪ XA TỚI TRANG
THÔNG TIN TRUY NÃ TỘI PHẠM
2.1 Mục tiêu, yêu cầu của hệ thống bảo đảm an toàn cho các truy nhập
từ xa tới Trang thông tin truy nã tội phạm
Trang thông tin truy nã tội phạm được xây dựng nhằm tạo ra một địa chỉ cung cấp thông tin về các đối tượng truy nã chung cho công an các đơn vị, địa phương; cho phép công an các đơn vị, địa phương có thể chủ động cung cấp thông
Trang 33tin về đối tượng do mình phát lệnh truy nã cho lực lượng công an trên toàn quốc Đồng thời, cũng cho phép công an các đơn vị, địa phương nhập thông tin về các đối tượng truy nã đã bị bắt hoặc có quyết định đình nã Do mạng nội bộ của Bộ Công
an mới chỉ kết nối tới được công an các tỉnh, thành phố và một số phòng, quận, huyện nên việc truy nhập đến Trang thông tin truy nã tội phạm phải sử dụng cả phương thức truy nhập qua đường dial-up hoặc qua kênh VPN trên một mạng công cộng Để đảm bảo những yêu cầu về an toàn thông tin cho Trang thông tin truy nã tội phạm, các giải pháp an toàn cho các kết nối từ xa tới Trang thông tin truy nã tội phạm đã được xem xét và giải pháp sử dụng SSL VPN kiểu ứng dụng đã được lựa chọn
2.1.1 Mục tiêu của hệ thống
Thông tin truy nã tội phạm là những thông tin có yếu tố pháp lý Nếu thông tin bị sai lệnh có thể ảnh hưởng đến quyền của công dân Vì vậy, thông tin, dữ liệu lưu giữ trên Trang thông tin truy nã tội phạm phải được đảm bảo tính toàn vẹn, tính sẵn sàng và có khả năng xác thực đối với những người đã cung cấp thông tin lên Trang thông tin truy nã tội phạm
2.1.2 Yêu cầu đối với hệ thống
Để thực hiện được mục tiêu trên, hệ thống bảo đảm an toàn thông tin, dữ liệu lưu giữ trên Trang thông tin truy nã tội phạm phải đáp ứng các yêu cầu sau:
Chỉ những người có thẩm quyền mới được truy nhập đến Trang thông tin truy nã tội phạm để tra cứu, sửa đổi hoặc nhập thêm thông tin mới
Hệ thống phải có khả năng xác thực đối với người dùng truy nhập đến Trang thông tin truy nã tội phạm và cấp quyền nhập mới, sửa đổi, xóa dữ liệu trên Trang này theo đúng quyền hạn được phép của người dùng đó
Hệ thống phải đảm bảo được tính chống chối bỏ đối với người đã nhập mới, sửa đổi, xóa dữ liệu trên Trang thông tin truy nã tội phạm
Mọi thao tác truy nhập hệ thống, xâm phạm quy chế bảo đảm an toàn thông tin đều phải được ghi lại trong nhật ký để truy nguyên khi cần thiết
Mọi sự nhập mới, sửa đổi, xóa dữ liệu của những người không có thẩm quyền hoặc thực hiện không đúng theo qui trình thao tác của hệ thống đều bị cảnh báo và từ chối Mọi sự xâm nhập, sửa đổi bất hợp pháp khác
Trang 34đều phải được phát hiện và có khả năng khôi phục lại những thông tin đã
bị sửa đổi bất hợp pháp
2.2 Phân tích, thiết kế hệ thống bảo đảm an toàn cho các truy nhập từ xa tới Trang thông tin truy nã tội phạm
2.2.1 Phân tích mô hình kết nối hệ thống
Như đã nêu ở trên, hệ thống Quản lý thông tin truy nã tội phạm có yêu cầu kết nối với các đơn vị, địa phương theo các phương thức:
Kết nối mạng cục bộ LAN: Đây là kết nối giữa máy chủ cung cấp ứng dụng cho Trang thông tin truy nã tội phạm với máy chủ CSDL và các máy tính khác của đơn vị quản lý Để bảo vệ cho máy chủ CSDL và mạng LAN của đơn vị quản lý, một firewall được đặt giữa máy chủ cung cấp máy chủ cung cấp ứng dụng và phần còn lại của mạng
Kết nối qua đường điện thoại (dial-up): Một thiết bị RAS được sử dụng để cho các đơn vị có thể kết nối với Trang thông tin truy nã tội phạm qua MODEM Để bảo vệ cho kết nối này, cần có cơ chế xác thực người dùng
và bảo vệ dữ liệu trao đổi qua các đường kết nối này Giải pháp vừa cho phép xác thực người dùng bằng chứng chỉ số, vừa tạo kênh kết nối an toàn
để trao đổi thông tin, dữ lệu là sử dụng SSL VPN kiểu ứng dụng dựa trên giao thức https Mặt khác, phải sử dụng firewall đặt giữa thiết bị RAS và máy chủ cung cấp ứng dụng cho Trang thông tin truy nã tội phạm để lọc gói tin, đảm bảo chỉ cho phép các gói tin của giao thức http, https được đi qua được để đến máy chủ cung cấp ứng dụng web
Kết nối qua mạng Internet hoặc các mạng công cộng khác: Các kết nối tới máy chủ cung cấp ứng dụng web qua mạng Internet hoặc các mạng công cộng khác phải được ngăn cách và bảo vệ tương tự như đối với kết nối qua đường điện thoại
Mô hình hệ thống kết nối mạng tới Trang thông tin truy nã tội phạm được trình bày trong Hình 2.1
Trang 35Hình 2.1: Mô hình kết nối mạng đến Trang thông tin truy nã tội phạm
Với các chính sách và khả năng kiểm soát của firewall, hệ thống đã có thể ngăn chặn được các truy nhập không được phép trực tiếp đến máy chủ CSDL, vì vậy, ngăn chặn được việc sửa đổi bất hợp pháp đối với CSDL một cách trực tiếp Tuy nhiên, việc giả mạo để truy nhập đến máy chủ CSDL vẫn có thể xảy ra nếu không có cơ chế xác thực mạnh đối với những người dùng truy nhập từ xa Để chống lại các cuộc tấn công kiểu “man-in-the-middle”, hệ thống cần có khả năng cấp phát chứng chỉ riêng cho những người dùng của hệ thống và có những cơ chế
để kiểm soát, phân quyền truy nhập dựa trên các chứng chỉ số do hệ thống cấp ra Như vậy, vấn đề cần giải quyến đối với hệ thống bảo đảm an toàn cho các truy nhập từ xa tới Trang thông tin truy nã tội phạm là ngoài việc ứng dụng các công nghệ bảo đảm an toàn đã có sẵn như firewall, giao thức https để thiết lập VPN, cần
Trang 36xây dựng được hai chức năng bảo đảm an toàn cho hệ thống là cấp phát chứng chỉ
số cho người dùng và điều khiển truy nhập, điều khiển quyền thao tác các chức năng của hệ thống theo thẩm quyền của người dùng dựa trên các chứng chỉ số do
hệ thống cấp ra Việc bảo đảm tính toàn vẹn của dữ liệu trên máy chủ CSDL được thực hiện thông qua chữ ký số đã được nghiên cứu và triển khai hệ thống nên không được đề cập trong luận văn này
2.2.2 Thiết kế các mô-đun quản lý cấp phát chứng chỉ số cho người
dùng và điều khiển truy nhập, quyền thao tác các chức năng của
hệ thống.
Phần sau đây sẽ trình bày về nguyên lý và lưu đồ hoạt động của các mô đun phần mềm được thiết kế để thực hiện hai chức năng cấp phát chứng chỉ số cho người dùng mới và điều khiển truy nhập, quyền thao tác các chức năng của hệ thống
2.2.2.1 Quản lý cấp phát tài khoản và chứng chỉ số cho người dùng mới
Quản lý cấp phát tài khoản và chứng chỉ số cho người dùng mới là chức năng cho phép khởi tạo tài khoản cho người dùng mới và cấp chứng chỉ số cho phép người dùng này để thao tác với một số chức năng của hệ thống theo thẩm quyền được cấp Quy trình cấp phát tài khoản và chứng chỉ số cho người dùng mới diễn ra theo như mô tả trong Hình 2.2
Quy trình cấp phát tài khoản và chứng chỉ số cho người dùng mới được tiến hành qua các bước sau:
- Đăng ký thông tin về người dùng mới
- Người lãnh đạo kiểm tra và phê duyệt cấp tài khoản cho người dùng mới
- Quản trị hệ thống kích hoạt tài khoản người dùng và cấp chứng chỉ
- Người dùng mới đã có tài khoản đăng nhập vào hệ thống để tải chứng chỉ
về, cài vào trình duyệt và sử dụng