4.2.3 Các yêu cầu của một hệ thống Cluster
Yêu cầu về tính sẵn sàng cao (availability). Các tài nguyên mạng phải luôn sẵn sàng trong khả năng cao nhất để cung cấp và phục vụ các người dùng cuối và giảm thiểu sự ngưng hoạt động hệ thống ngoài ý muốn.
Yêu cầu về độ tin cậy cao (reliability). Độ tin cậy cao của cluster được hiểu là khả năng giảm thiểu tần số xảy ra các sự cố, và nâng cao khả năng chịu đựng sai sót của hệ thống.
Yêu cầu về khả năng mở rộng được (scalability). Hệ thống phải có khả năng dễ dàng cho việc nâng cấp, mở rộng trong tương laị Việc nâng cấp mở rộng bao hàm cả việc thêm các thiết bị, máy tính vào hệ thống để nâng cao chất lượng dịch vụ, cũng như việc thêm số lượng người dùng, thêm ứng dụng, dịch vụ và thêm các
tài nguyên mạng khác.
Ba yêu cầu trên được gọi tắt là RAS (Reliability-Availability-Scalability), những hệ thống đáp ứng được ba yêu cầu trên được gọi là hệ thống RAS (cần phân biệt với Remote Access Service là dịch vụ truy cập từ xa).
Cũng cần chú ý rằng hiệu quả hoạt động của hệ thống Clustering phụ thuộc vào sự tương thích giữa các ứng dụng và dịch vụ, giữa phần cứng và phần mềm. Ngoài ra, kỹ thuật clustering không thể chống lại các sự cố xảy ra do virus, sai sót của phần mềm hay các sai sót do người sử dụng. Để chống lại các sự cố này cần xây dựng một cơ sở dữ liệu được bảo vệ chắc chắn cũng như có các kế hoạch khơi phục, backup dữ liệụ
4.2.4 Cluster nhiều địa điểm phân tán
Với các hệ thống mạng lớn có các người dùng phân bố rải rác, hiệu quả của việc phòng chống sự cố và nâng cao tính sẵn sàng của mạng sẽ được cải thiện hơn nhiều nếu xây dựng hệ thống cluster bố trí tại nhiều địa điểm. Kiến trúc nhiều địa
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
điểm có thể được thiết kế theo rất nhiều cách khác nhau, trong đó phổ biến nhất là
có một điểm gốc và một số điểm ở xạ
Với kiểu thiết kế đầy đủ, toàn bộ cấu trúc của điểm gốc được xây dựng lại
đầy đủ ở các điểm ở xạ Điều này cho phép các điểm ở xa hoạt động độc lập và có
thể xử lý toàn bộ khối lượng công việc của điểm gốc nếu cần. Trong trường hợp này, việc thiết kế phải đảm bảo sao cho cơ sở dữ liệu và các ứng dụng giữa điểm
gốc và các điểm ở xa phải đồng bộ và được cập nhật sao lặp ở chế độ thời gian thực. Với kiểu thiết kế thực hiện từng phần thì chỉ có các thành phần cơ bản là
được cài đặt ở các điểm ở xa nhằm: Xử lý các khối lượng công việc quá tải trong
các giờ cao điểm; Duy trì hoạt động ở mức cơ bản trong trường hợp điểm gốc site bị sự cố; Cung cấp một số dịch vụ hạn chế nếu cần. Cả kiểu thiết kế đầy đủ hay từng phần đều dùng phương cách phân tán các máy chủ rải rác về mặt địa lý. Cluster phân tán về địa lý sử dụng mạng LAN ảo (Virtual LAN) để kết nối các mạng khu vực lưu trữ SAN (storage area network) qua những khoảng cách lớn.
4.2.5 Các mơ hình Load Balancing hiện nay 4.2.5.1 Client-side load balancing 4.2.5.1 Client-side load balancing
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
4.2.5.2 Server-side load balancing
Hình 4. 5: Mơ hình Server-side load balancing
4.2.6 Chế độ hoạt động của Network Load Balancing
Mỗi máy chủ trong cluster được gọi là một nút (cluster node), và có thể được thiết lập ở chế độ chủ động (active) hay thụ động (passive). Khi một nút ở chế dộ chủ động, nó sẽ chủ động xử lý các yêu cầụ Khi một nút là thụ động, nó sẽ nằm ở chế độ dự phịng nóng (stanby) chờ để sẵn sàng thay thế cho một nút khác nếu bị hỏng. Nguyên lý hoạt động của Cluster có thể biểu diễn như trong hình
Hình 4. 6: Nguyên lý hoạt động của một Cluster
Trong một cluster có nhiều nút có thể kết hợp cả nút chủ động và nút thụ
động. Trong những mơ hình loại này việc quyết định một nút được cấu hình là chủ động hay thụ động rất quan trọng. Để hiểu lý do tại sao, hãy xem xét các tình huống
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
- Nếu một nút chủ động bị sự cố và có một nút thụ động đang sẵn sàng, các
ứng dụng và dịch vụ đang chạy trên nút hỏng có thể lập tức được chuyển sang nút
thụ động. Vì máy chủ đóng vai trị nút thụ động hiện tại chưa chạy ứng dụng hay dịch vụ gì cả nên nó có thể gánh tồn bộ cơng việc của máy chủ hỏng mà khơng ảnh
hưởng gì đến các ứng dụng và dịch vụ cung cấp cho người dùng cuối (Ngầm định
rằng các các máy chủ trong cluster có cấu trúc phần cứng giống nhau).
- Nếu tất cả các máy chủ trong cluster là chủ động và có một nút bị sự cố, các
ứng dụng và dịch vụ đang chạy trên máy chủ hỏng sẽ phải chuyển sang một máy
chủ khác cũng đóng vai trị nút chủ động. Vì là nút chủ động nên bình thường máy chủ này cũng phải đảm nhận một số ứng dụng hay dịch vụ gì đó, khi có sự cố xảy ra thì nó sẽ phải gánh thêm cơng việc của máy chủ hỏng. Do vậy để đảm bảo hệ thống hoạt động bình thường kể cả khi có sự cố thì máy chủ trong cluster cần phải có cấu hình dư ra đủ để có thể gánh thêm khối lượng công việc của máy chủ khác khi cần.
- Trong cấu trúc cluster mà mỗi nút chủ động được dự phòng bởi một nút thụ
động, các máy chủ cần có cấu hình sao cho với khối lượng cơng việc trung bình
chúng sử dụng hết khoảng 50% CPU và dung lượng bộ nhớ. Trong cấu trúc cluster mà số nút chủ động nhiều hơn số nút bị động, các máy chủ cần có cấu hình tài nguyên CPU và bộ nhớ mạnh hơn nữa để có thể xử lý được khối lượng cơng việc cần thiết khi một nút nào đó bị hỏng.
Các nút trong một cluster thường là một bộ phận của cùng một vùng (domain) và có thể được cấu hình là máy điều khiển vùng (domain controllers) hay máy chủ thành viên. Lý tưởng nhất là mỗi cluster nhiều nút có ít nhất hai nút làm
máy điều khiển vùng và đảm nhiệm việc failover đối với những dịch vụ vùng thiết
yếụ Nếu không như vậy thì khả năng sẵn sàng của các tài nguyên trên cluster sẽ bị phụ thuộc vào khả năng sẵn sàng của các máy điều khiển trong domain.
4.2.7 Network Load Balancing của Goole và Yahoo! trong việc phòng chống DoS DoS
4.2.7.1 Cơ chế chung
Khi connect tới server, Round Robin DNS Load Balancing sẽ phân giải domain thành nhiều địa chỉ IP khác nhau và sử dụng cấp thứ 1của load balancing là gửi tới các cluster khác nhau, các cluster này thực chất là các server cache của nhau, dữ liệu của chúng được đồng bộ lẫn nhau thông qua giao thức HTTP.
Mỗi server cluster có hàng ngàn server để gửi các query tới web server Server load balancer lấy request của user và chuyển tiếp nó tới 1 trong các
web servers nhờ vào Squid proxy servers
Squid proxy server nhận request của client load balancer và trả về kết quả nếu có trong cache ngược lại thì chuyển tiếp tới web servers
Web server định vị tọa độ thực thi các queries của user và định dạng kết quả
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
4.2.7.2 Giải pháp thực tế của Google
Sử dụng các NetScaler 9800 Secure Application Switches
NetScaler có thể tải hàng trăm megabits trong 1 giây của tầng 4 đến tầng 7
lưu lượng sử dụng
Tại dữ liệu trung tâm, các máy chủ sử dụng các Apache Server và các ứng
dụng Web Server do chính Google thiết kế
Cách thức NetScaler phịng chống DoS là nó đóng vai trị như 1 firewall dự phòng của hệ thống firewall của công ty
Các load balancer được thiết kế chỉ chấp nhận các luồng thông tin qua cổng
80, nếu thông tin không đi qua một cổng được chỉ định, hoặc không bắt nguồn từ 1 IP, chúng sẽ bị hủy lập tức
Với tính năng "SYN cookies", NetScaler có thể đáp ứng các SYN messages - packets khởi đầu cho 1 TCP/IP connection(được sử dụng trong "SYN flood" DoS attack) mà không xung đột với tài ngun của chính nó
Với NetScaler, Google phòng chống được DoS attack từ tầng 4, đối với tầng
7 đã có cơng cụ được cài trên các Web server xử lý
Thiết lập kiến trúc cân bằng tải cho các server trọng điểm sẽ làm gia tăng thời gian chống chọi của hệ thống với cuộc tấn công ĐoS
4.3 Phương pháp bảo mật cho bản tin báo hiệu của hệ thống
Bản tin báo hiệu là một thành phần rất quan trọng trong các cuộc gọi VoIP của hệ thống Call Center, vì nó chứa các thơng tin liên quan đến người sử dụng, các thơng số để thiết lập và giải phóng cuộc gọi nên nó thường trở thành mục tiêu tấn cơng, cũng vì thế đã có nhiều phương pháp bảo mật cho các bản tin báo hiệu nàỵ
4.3.1 Phương pháp chứng thực 2 chiều TLS (Transport Layer Security)
TLS là một giao thức bảo mật ở tầng chuyển vận (lớp 4 trong mơ hình OSI),
được định nghĩa trong RFC 4346, nó cung cấp khả năng chứng thực chung cho cả
client và server, tính tin cậy cũng như toàn vẹn của các bản tin. Giao thức này được chia làm 2 giao thức nhỏ: TLS bản ghi ( TLS Record Protocol) và TLS bắt tay (TLS
Handshake Protocol).
4.3.1.1 TLS bản ghi ( hay TLS RP - TLS Record Protocol )
Nhằm mục đích duy trì một kết nối bảo mật giữa hai điểm (ví dụ client và
server). Quá trình thương lượng về các cơng cụ bảo mật (ví dụ phương pháp mã hóa
hay trao đổi khóa) cho kết nối được thực hiện bởi TLS bắt tay hay TLS HP.
4.3.1.2 TLS bắt tay (hay TLS HP – TLS Handshake Protocol )
Được sử dụng để chứng thực cả client và server và thương lượng cách thức
bảo mật giữa client và server (ví dụ thuật tốn mã hóa và keys). Q trình bắt tay (TLS Handshake) phải được thực hiện thành cơng trước khi q trình truyền dẫn dữ liệu diễn rạ Sau đây là một ví dụ về TLS Handshake:
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
Hình 4. 7: TLS Handshake
Quá trình bắt tay được thực hiện trình tự như sau:
Qua hai gói tin Hello (Client Hello và Server Hello), Client và Server sẽ thỏa thuận một danh sách các thuật toán mà chúng sử dụng trong các bước tiếp theọ
Thông tin chứng thực của Server và khóa cơng khai của nó sẽ được gửi cho Client qua Certificate Messagẹ
Client dựa vào Certificate Message mà nó nhận được, kiểm tra tính xác thực của Server rồi lấy ra khóa cơng khaị Sau đó, Client tạo ra một số ngẫu nhiên gọi là Pre-Master Secret Key, rồi đóng gói khóa này bằng khóa cơng khai của Server thành một bản tin gọi là Client KeyExchange và gửi lại cho
Server. Đồng thời hàm tạo khóa dẫn xuất (Key Derivation Function – KDF)
tạo ra Master Key từ Pre-Master Secret Keỵ
Bên phía Server giải mã bản tin Client Key Exchange bằng khóa bí mật của
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
dẫn xuất (KDF) như Client, Server cũng tạo ra Master Key từ Pre-Secret
Master Keỵ
Với Master Key mà nó vừa nhận được, Client tạo ra bản tin chứa mã xác thực MAC (Message Authentication Code) bằng cách mã hóa lại bản tin nó vừa nhận được từ Server, bản tin này gọi là Finished Message và được Client gửi trả lại cho Server.
Tương tự, Server cũng sẽ gửi 1 bản tin Finished về cho Client. Cả Server và
Client cùng kiểm tra tính tồn vẹn của các bản tin. Nếu q trình kiểm tra thành cơng, Server và Client sẽ cùng nhau sử dụng khóa Master Secret.
Sau khi đã có được khóa Master Secret, tất cả các bản tin báo hiệu SIP sẽ được mã hóa tồn bộ bằng khóa này rồi mới được truyền đị Hình sau miêu
tả cách các gói tin được mã hóa trước khi chuyển đi:
Hình 4. 8: Mã hóa TLS
Dữ liệu ban đầu được chia nhỏ ra, chèn thêm MAC rồi mã hóạ Sau đó TLS Record Header sẽ được gắn vào đầu mỗi góị Thơng tin trong header bao gồm loại,
độ dài và phiên bản TLS.
Ưu điểm của TLS:
Cung cấp một phương pháp chứng thực chung cho cả Client và Server. Bảo đảm tính tin cậy và tồn vẹn cho gói tin, có thể được sử dụng để chống lại một cách hiệu quả các loại tấn công nghe lén, MITM, các tấn loại tấn cơng can thiệp vào gói tin.
Với sự phổ biến sẵn có của SSL nên việc triển khai TLS trở nên đơn giản và dễ được chấp nhận bởi các nhà cung cấp thiết bị
Có thể bảo vệ được quá trình thương thảo phương pháp bảo mật giữa Client và Server.
Chiếm ít tài nguyên xử lý của thiết bị nếu đem so sánh với các phương pháp bảo mật khác, chẳng hạn IPSec.
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
Nhược điểm của TLS:
Cần phải có một kiến trúc trao đổi khóa PKI để đảm bảo được tính bảo mật. Khơng cung cấp một kết nối đầu cuối tới đầu cuối, các kết nối TLS chỉ được triển khai trên từng đoạn của kết nốị
Khơng tương thích với UDP, giao thức được sử dụng phổ biến trong VoIP.
Trong thực tế, nhiều kiến trúc VoIP chỉ sử dụng một giao thức duy nhất cho tầng chuyển vận là UDP.
Vẫn có thể bị tấn cơng DoS, ví dụ làm tràn ngập các gói TCP để làm kiệt quệ khả năng xử lý của hệ thống.
4.3.2 Secure Real Time Protocol (SRTP) – phương pháp bảo mật cho bản tin thời gian thực
SRTP, được định nghĩa trong RFC 3711, là một biến thể của RTP, được tạo
ra nhằm mục đích cung cấp tính xác thực, tin cậy và toàn vẹn của các gói tin thời gian thực (thoại hay video) và các ứng dụng đa phương tiện. Sau đây là một số đặc tính nổi bật của SRTP:
o Khả năng tích hợp với các giải pháp mã hóa mớị
o Đảm bảo tín hiệu có băng thơng nhỏ cũng như giữ ngun phương pháp tính cước.
o Khơng tốn nhiều bộ nhớ cho mã hóa cũng như giải mã, điều này rất thiết
thực cho các thiết bị di động bị giới hạn về dung lượng bộ nhớ.
Những đặc điểm trên làm cho SRTP khả thi ngay cả với các thiết bị di động vốn bị giới hạn về bộ nhớ cũng như khả năng xử lý. Sử dụng SRTP tích hợp cùng với một cơ chế trao đổi khóa (ví dụ như MIKEY - Multimedia Internet KEYing) tạo ra một giải pháp bảo mật đầy đủ cho các ứng dụng đa Internet phương tiện, bao
gồm VoIP, tín hiệu video hay hội thoạị
Quá trình được thực hiện với việc chuyển đổi gói tin RTP thành gói SRTP trước khi gửi chúng qua mạng truyền dẫn. Bên giải mã, quá trình được thực hiện
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
Hình 4. 9: Mã hóa SRTP
Hình trên minh họa một q trình mã hóa SRTP. Sau khi ứng dụng lấy được dữ liệu đầu vào từ các thiết bị (ví dụ microphone hay camera), nó đóng gói dữ liệu này thành các gói tin theo các chuẩn phổ thông của VoIP (như G.711, G.729, H.261, H.264) và tạo ra phần playload gói tin RTP. Tiếp theo, phần playload này
được mã hóa, giải thuật mã hóa mặc định cho SRTP là AES (Advanced Encryption
Standard). Phần playload đã được mã hóa được gắn với header (khơng mã hóa) rồi truyền đi qua mạng. Việc sử dụng mã hóa AES trong SRTP cho phép q trình mã hóa-giải mã diễn ra liên tục ngay cả khi các gói tin đến khơng đúng theo thứ tự, đây là một đặc điểm phù hợp với các ứng dụng thời gian thực.
Việc trao đổi khóa giữa bên thu và bên nhận được thực hiện bằng các cơ chế
trao đổi, có thể là MIKEY như đã đề cập ở trên hay SDESCRIPTIONS, ZRTP...
Sau khi nhận được khóa, một giải thuật dẫn xuất khóa sẽ được thực hiện để tạo ra các khóa phiên (session keys), bao gồm: khóa mã hóa (encryption key), khóa xác thực (authentication key) và khóa salt (salt key).
Hình 4. 10: Dẫn xuất khóa mã hóa SRTP
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
Thông thường, mỗi phiên được thiết lập sẽ cần ít nhất 6 khóa phiên – 2 bộ 3