Định nghĩa 2: hệ phân tán là một hệ thống có chức năng và dữ liệu phân tán trên các trạm máy tính được kết nối với nhau bằng một mạng máy tính.. Các cơ chế bảo mật Có 4 cơ chế bảo mật
Trang 1TRƯỜNG ĐẠI HỌC HẢI PHÒNG
KHOA CÔNG NGHỆ THÔNG TIN
-۩ ۩ ۩
-BÁO CÁO BẢO MẬT TRONG HỆ THỐNG PHÂN TÁN
Giáo viên hướng dẫn: ThS Lê Ngọc Minh Sinh viên: Nguyễn Thị Minh Hạnh
Nguyễn Tú Quỳnh Trâm Lớp: Truyền thông – Mạng máy tính K14
TP.HẢI PHÒNG – NĂM 2016
Trang 22 Tính toàn vẹn và tính bảo mật của thông điệp
3 Truyền thông nhóm an toàn
IV Kiểm soát truy cập
1 Các vấn đề chung trong kiểm soát truy cập
2 Tường lửa (Firewall)
3 Tấn công từ chối dịch vụ (Denial of Service)
Trang 3I Đặt vấn đề
1 Hệ phân tán là gì?
a Định nghĩa
Có nhiều định nghĩa về hệ phân tán:
Định nghĩa 1: hệ phân tán là tập hợp các máy tính tự trị được kết nối với
nhau bởi một mạng máy tính và được cài đặt phần mềm hệ phân tán
Định nghĩa 2: hệ phân tán là một hệ thống có chức năng và dữ liệu phân
tán trên các trạm (máy tính) được kết nối với nhau bằng một mạng máy tính
Định nghĩa 3: hệ phân tán là một tập các máy tính độc lập giao tiếp với
người dùng như một hệ thống thống nhất, toàn vẹn
b Phân loại hệ phân tán
Trước đây, hệ phân tán được chia thành ba loại:
hệ điều hành phân tán
cơ sở dữ liệu phân tán
các hệ thống tính toán hệ phân tán
Ngày nay, hệ phân tán được chia như sau:
hệ phân tán mang tính hệ thống: hệ điều hành phân tán
hệ phân tán mang tính chất ứng dụng: các hệ thống truyền tin phân tán
2 Các mối đe dọa, các dạng tấn công và cơ chế bảo mật, an ninh
a Các mối đe dọa
Hệ thống máy tính luôn bị đe dọa bởi các nguy cơ mất an toàn Một trong những công việc để bảo vệ hệ thống là làm sao giúp hệ thống tránh khỏi các nguy cơ đó Có 4 loại các mối đe dọa an toàn:
Interception (chặn bắt): chỉ thành phần không được phép cũng có thể
truy cập đến các dịch vụ hay các dữ liệu, “nghe trộm” thông tin được truyền đi
Interruption (đứt đoạn): là mối đe dọa mà làm cho các dịch vụ hay
dữ liệu bị mất mát, bị hỏng, không thể dùng được nữa…
Modification (thay đổi): là hiện tượng thay đổi dữ liệu hay can thiệp
vào các dịch vụ làm cho chúng không còn giữ được các đặc tính ban đầu
Fabrication (giả mạo): là hiện tượng thêm vào dữ liệu ban đầu các dữ
liệu hay hoạt động đặc biệt mà không thể nhận biết được để ăn cắp dữ liệu của hệ thống
b Các dạng tấn công
Trang 4 Tấn công tĩnh / động:
Passive: quan sát dữ liệu mà không sửa đổi dữ liệu
Active: sửa dữ liệu
Tấn công kênh liên lạc:
Eavesdropping: là đối tượng nghe trộm thông tin trên mạng để
đánh cắp thông tin
Masquerating: giả mạo thông tin, địa chỉ IP, tên miền, định
danh người dùng…
Xáo trộn nội dung thông điệp – Message tampering: VD: thay
đổi số tiền nhập vào tài khoản
Phát lại – Replay
Từ chối dịch vụ - Denial of Service
c Các cơ chế bảo mật
Có 4 cơ chế bảo mật được đưa ra:
Mật mã (cryptography): là việc thực hiện chuyển đổi dữ liệu theo
một quy tắc nào đó thành dạng mới mà kẻ tấn công không nhận biết được
Xác thực (authentication): là các thao tác để nhận dạng người dùng,
nhận dạng client hay server…
Ủy quyền (authorization): chính là việc phân định quyền hạn cho mỗi
thành phần đã đăng nhập thành công vào hệ thống Quyền hạn này là các quyền sử dụng dịch vụ, truy cập dữ liệu…
Kiểm toán (auditing): là các phương pháp để xác định được client đã
truy cập đến dữ liệu nào và bằng cách nào
d Các cơ chế an ninh
Mã hóa: biến đổi dữ liệu thành cái mà kẻ tấn công không thể hiểu Đây
là phương tiện để thực hiện tính bảo mật
Chữ kí số: hỗ trợ kiểm tra tính toàn vẹn (kiểm tra xem dữ liệu có bị sửa
Trang 53 Các vấn đề khi thiết kế
a Điều khiển (focus of control)
Có 3 cách tiếp cận:
Chống các thao tác bất hợp lệ: việc này thực hiện bằng cách đảm bảo
toàn vẹn chính các dữ liệu đó mà không quan tâm đến việc phân tích sựhợp lệ của thao tác
Chống các triệu gọi thao tác không được ủy quyền: không đảm bảo
toàn vẹn dữ liệu mà tập trung vào các thao tác Thao tác nào là bất hợp
lệ sẽ bị hủy bỏ ngay
Chống người sử dụng không được ủy quyền: ở cách tiếp cận này lại
tập trung vào quản lý người dùng Xác định người dùng và các vai trò của họ trong hệ thống chứ không quan tâm đến đảm bảo dữ liệu hay quản lý các thao tác của người dùng
Trang 6b Phân tầng các cơ chế an toàn (Layer of security mechanism)
Vấn đề quan trọng việc thiết kế một hệ thống an toàn là quyết định xem
cơ chế an toàn được đặt ở tầng nào Việc xác định vị trí đặt đó phụ thuộc vào yêu cầu của client về các dịch vụ bảo mật của từng tầng
Trong một hệ thống phân tán, cơ chế an toàn được đặt ở tầng middleware
c Phân tán các cơ chế an toàn (distribution of security mechanism)
Xét khái niệm TCB (Trusted Computing Base): là tập hợp tất cả các cơ chế bảo mật trong hệ phân tán, các cơ chế này phải tuân theo một ràng buộc an toàn nào đó
II Mật mã học
1 Mật mã (Cryptography)
Hệ mật mã là một hệ bao gồm 5 thành phần (P, C, K, E, D) thỏa mãn các tính chất sau:
- P (Plaintext): tập hợp hữu hạn các bản rõ có thể
- C (Ciphertext): tập hợp hữu hạn các bản mã có thể
- K (Key): tập hợp các bản khóa có thể
- E (Encrytion): tập hợp các qui tắc mã hóa có thể
- D (Decrytion): tập hợp các qui tắc giải mã có thể
Chúng ta đã biết một thông báo thường được tổ chức dưới dạng bản rõ Người gửi sẽ làm nhiệm vụ mã hóa bản rõ, kết quả thu được gọi là bản mã Bản
mã này được gửi đi trên một đường truyền tới người nhận sau khi nhận được bản
mã, người nhận giải mã nó để tìm hiểu nội dung
Ta có thể thấy được công việc trên khi sử dụng định nghĩa hệ mật mã:
E K (P) = C và D K (P) = P
Có 2 loại hệ thống mật mã: mật mã đối xứng (Symmetric cryptosystem) vàmật mã bất đối xứng (Asymmetric cryptosystem)
Trang 72 Những yêu cầu đối với hệ mật mã
Cung cấp một mức độ cao về độ tin cậy, tính toàn vẹn, sự không từ chối và sự xácthực
Độ tin cậy: cung cấp sự bí mật cho các thông báo và dữ liệu được lưu
bằng việc che dấu thông tin sử dụng các kỹ thuật mã hóa
Tính toàn vẹn: cung cấp sự bảo đảm với tất cả các bên rằng thông báo
còn lại không thay đổi từ khi tạo ra cho đến khi người nhận mở nó
Tính không từ chối: có thể cung cấp một cách xác nhận rằng tài liệu
đã đến từ ai đó ngay cả khi họ cố gắng từ chối nó
Tính xác thực: cung cấp hai dịch vụ: đầu tiên là nhận dạng nguồn gốc
của một thông báo và cung cấp một vài sự bảo đảm rằng nó là đúng sự thực Thứ hai là kiểm tra đặc tính của người đang logon một hệ thống
và sau đó tiếp tục kiểm tra đặc tính của họ trong trường hợp ai đó cố gắng đột nhiên kết nối và giả dạng là người sử dụng
3 Các kiểu mã hóa
a Mật mã đối xứng: dùng khóa bí mật
Với mật mã đối xứng: khóa mã hóa và khóa giải mã là giống nhau Độ an toàn của thuật toán này phụ thuộc vào khóa, nếu để lộ ra khóa này nghĩa là bất
kì người nào cũng có thể mã hóa và giải mã thông báo trong hệ thống mã hóa
Sự mã hóa và giải mã của thuật toán đối xứng biểu thị bởi:
E K (P) = C và P = D K (C)
Nguyên lý chung của giải thuật DES (Data Encryption Standard):
Trang 8Thực hiện trên các khối dữ liệu 64 bit Mỗi khối này được mã hóa qua 16 vòng lặp, mỗi vòng có một khóa mã hóa 48 bit riêng 16 bit này sinh ra từ 56 bit khóa chính.
Đầu vào của vòng lặp mã hóa thứ i là dữ liệu đã được mã hóa của vòng lặpthứ (i -1) 64 bit dữ liệu qua mỗi vòng lặp được chia thành hai phần bằng nhau: Li -1 và Ri -1, cùng bằng 32 bit Phần dữ liệu bên phải Ri – 1 được lấy làm phần bên trái của dữ liệu cho vòng sau: Ri-1 = Li Hàm f với đầu vào là Ri-
1 và khóa Ki sinh ra khối 32 bit được XOR với Li – 1 để sinh ra Ri
Một vòng mã hóa
Trang 9Phương pháp sinh khóa của giải thuật DES:
Với mỗi 48 bit cho mỗi vòng lặp được sinh ra từ khóa chính 56 bit như sau: hoán vị khóa chính, chia đôi thành hai phần 28 bit Tại mỗi vòng, mỗi một nửa đó sẽ quay trái 1 hoặc 2 bit, sau đó lấy ra 24 bit kết hợp với 24 bit củanửa còn lại để tạo ra khóa
b Mật mã bất đối xứng: dùng khóa công khai
Với mật mã bất đối xứng: khóa mã hóa và khóa giải mã là khác nhau Hơn nữa, khóa giải mã không thể tính toán được từ khóa mã hóa Đặc trưng nổi bậtcủa hệ mã hóa công khai là cả khóa công khai (public key) và bản tin mã hóa (ciphertext) đều có thể gửi đi trên một kênh thông tin không an toàn
Khái niệm hệ mật mã RSA đã được ra đời năm 1976 bởi các tác giả
R.Rivets, A.Shamir và L.Adleman Trong hệ mã RSA, các bản rõ, bản mã và các khóa là thuộc tập số nguyên ZN = {1,…,N-1} Trong đó, ZN với N =p*q là
Trang 10các số nguyên tố khác nhau cùng với phép cộng và phép nhân modun N tạo ra modun số học N Khóa mã hóa EKB là cặp số nguyên (N, KB) và khóa giải mã
DkB là cặp số nguyên (N, kB) là các số rất lớn, số N có thể lên tới hàng trăm chữ số Tính bảo mật của RSA chủ yếu dựa vào việc giữ bí mật khóa giải mã hay giữ bí mật các thừa số p, q của N
Công việc mã hóa là sự biến đổi bản rõ P (Plaintext) thành bản mã C (Ciphertext) dựa trên cặp khóa công khai KB và bản rõ P theo công thức:
Hai giá trị n, b công khai; các giá trị a là bí mật
Với mỗi giá trị K = (n, a, b) và x ∈ P, y ∈ C ta xác định hai hàm sau:
o Hàm mã hóa: y = e k (x) = x b mod n
o Hàm giải mã: x = d k (y) = y a mod n
Trang 11Sơ đồ các bước thực hiện mã hóa theo thuật toán RSA
4 Các hệ thống mã hóa khác
- Triple-DES – phức tạp hơn và chậm hơn DES
- 4x Fenced DES – nhanh gần bằng DES
- AES – chuẩn mới [2001] thay thế DES
- IDEA , Blowfish , RC4 , SEAL,…
- PGP – Pretty Good Privacy
Dùng RSA để gửi khóa, IDEA để mã hóa dữ liệu
Phổ biến rộng rãi, phần mềm tự do
Thường dùng trên internet
III Kênh bảo mật
1 Xác thực
a Xác thực dựa trên khóa bí mật
Nguyên lý chung: bên gửi muốn giao tiếp với bên nhận sẽ gửi một yêu cầu A
tới bên nhận Bên nhận trả lời bằng một yêu cầu RB Bên gửi sẽ mã hóa yêu cầu
RB bằng khóa bí mật KA,B và gửi về cho bên nhận Bên nhận xác thực được bên gửi nhờ nhận biết được yêu cầu RB mình đã gửi trong gói tin vừa nhận Lúc này bên gửi muốn xác thực bên nhận sẽ tiếp tục gửi yêu cầu RA tới bên nhận Bên
Trang 12nhận sẽ lại mã hóa RA bằng khóa bí mật KA,B đó và gửi về cho bên nhận Và như thế bên nhận đã xác định được bên gửi, sau đó quá trình trao đổi sẽ được thực hiện.
Xác thực dựa trên khóa bí mật chung
Một mô hình cải tiến hơn là thu gọn số lượng bản tin chỉ còn lại 3 bản tin giữa bên gửi và bên nhận
Xác thực dựa trên khóa bí mật nhưng dùng 3 bước
Nhưng hiện nay, giao thức hay được dùng là “Reflection attack” như được
mô tả trong hình vẽ sau:
b Xác thực dựa trên trung tâm phân phối khóa
Trang 13Nếu hệ thống gồm N host, mỗi host phải chia sẻ một khóa mật với N-1 host khác thì hệ thống cần quản lý N.(N-1)/2 khóa, và mỗi host phải quản lý N-1 khóa Như vậy nếu N lớn sẽ rất khó khăn trong việc quản lý Do đó, để khắc phục hiện tượng trên ta sử dụng trung tâm phân phối khóa KDC (Key Distribution Center)
Tư tưởng chính: bên gửi sẽ gửi bản tin tới trung tâm phân phối khóa thông báo mình muốn giao tiếp với bên nhận KDC sẽ gửi cho cả bên gửi và bên nhận một bản tin có chứa khóa bí mật KA,B Bản tin gửi cho bên nhận sẽ được
mã hóa bằng KA,KDC Bản tin gửi cho bên gửi sẽ được mã hóa bằng KB,KDC
Nguyên lý hoạt động của KDC
Cách tiếp cận thứ hai là KDC sẽ gửi cả hai bản tin chứa khóa bí mật KA, KDC (KA,B ) và KB, KDC (KA,B) cho bên gửi và bên gửi có nhiệm vụ gửi cho bên nhận khóa đã được KDC mã hóa KB,KDC (KA,B) đó
Dùng ticket
c Xác thực dựa trên khóa công khai
Trang 14Bên gửi mã hóa yêu cầu bằng khóa công khai K+B của bên nhận Bên nhận này là nơi duy nhất có thể giải mã bản tin đó bằng K-B Bên nhận sẽ mã hóa yêu cầu của bên gửi cùng với yêu cầu của chính mình và khóa KA,B vừa tạo ra bằng khóa công khai K+A của bên gửi nhằm xác thực bên gửi Cuối cùng, bên gửi sẽ gửi lại cho bên nhận yêu cầu RB của bên nhận đã gửi đi để xác thực.
Xác thực dựa trên khóa công khai
2 Tính toàn vẹn và tính bảo mật của thông điệp
a Chữ ký số
Chữ kí số để đảm bảo tính toàn vẹn của thông điệp
Có nhiều cách thiết lập chữ kí số cho thông điệp:
Cách 1: dùng hệ mật mã khóa công khai là RSA
Chữ ký số cho một bản tin dùng khóa công khai
Bên gửi sẽ mã hóa bản tin bằng khóa riêng K-A của mình, sau đó sẽ
mã hóa tiếp nội dung bản tin và phiên bản chữ kí bằng khóa công khai K+B của bên nhận Bản tin được mã hóa này sẽ được truyền đi cùng bản tin m Bên nhận sau khi nhận được bản tin sẽ giải mã gói tin, lấy phiên bản chữ kí của m và so sánh với m để xác thực rằng bản tin này được gửi từ bên gửi đó và cũng để kiểm tra xem có thay đổi trên đường truyền hay không
Cách 2: dùng hàm băm
Trang 15Hàm băm H dùng để tính toán một bản tin có độ dài cố định là một chuỗi bit h từ một bản tin có độ dài tùy ý m Nếu giá trị m thay bằng giá trị m' thì H(m') cũng có giá trị khác giá trị h = H(m), do đó ta có thể dễ dàng xác định được những thay đổi trên bản tin m trên đường truyền
Chữ ký số cho một bản ghi dùng message digest
Bên gửi sẽ tính toán các bản tin có độ dài cố định từ bản tin m và
mã hóa bằng khóa riêng của mình Bản tin được mã hóa này sẽ được truyền đi cùng bản tin m Khi nhận, bên nhận giải mã bản tin và thực hiện so sánh với bản tin m đã được truyền đi để xác định được rằng bản tin này gửi từ bên gửi đó và đã được kí bằng chữ kí số
b Khóa phiên
Trong một kênh trao đổi an toàn, sau pha xác thực sẽ tiến hành truyền thông Mỗi kênh truyền thông đó được xác địn bởi một khóa phiên tương ứng Khi phiên truyền kết thúc thì khóa phiên tương ứng cũng bị hủy bỏ
3 Truyền thông nhóm an toàn
a Truyền thông nhóm bí mật
Mô hình đơn giản là tất cả các thành viên trong nhóm sẽ cùng có một khóa
bí mật để mã hóa và giải mã các bản tin Điều kiện tiên quyết cho mô hình này là phải đảm bảo rằng tất cả các thành viên trong nhóm phỉa giữ bí mật khóa đó
Mô hình thứ hai là dùng một khóa bí mật cho từng cặp thành viên trong nhóm Khi một trong hai thành viên kết thúc phiên truyền thì thành viên còn lại vẫn sẽ dùng khóa đó để giao tiếp với thành viên khác trong nhóm Với môhình này phải duy trì tới N (N-1)/2 khóa
Mô hình thứ ba là dùng khóa công khai Mỗi một thành viên trong nhóm sẽ phải duy trì một cặp khóa công khai và khóa riêng, trong đó khóa công khai được dùng bởi tất cả thành viên trong nhóm
Trang 16b Server nhân bản an toàn
Việc nhân bản các server thường dùng trong việc chịu lỗi cho hệ phân tán nhưng đôi khi cũng được dùng để đảm bảo tính tin cậy cho hệ thống
i Lý do để thực hiện việc nhân bản dữ liệu
Có 2 lý do chính để thực hiện việc nhân bản dữ liệu:
Tăng tính tin cậy cho hệ thống: trong quá trình đọc
hoặc ghi dữ liệu, nếu một bản sao bị hỏng hoặc vì lý do nào đấy nó không sẵn sàng để dùng thì ta có thể sử dụngmột bản khác Tránh việc sử dụng dữ liệu sai lạc, không chính xác
Tăng hiệu năng của hệ thống: tăng quy mô của hệ
thống cả về số lượng lẫn phạm vi địa lý Ví dụ như nếu
số lượng máy tăng => tải trên mỗi máy trong hệ phân tán cũng không tăng lên nhiều hơn Phạm vi địa lý tăng
=> có thể sử dụng các bản nhân bản gần khu vực địa lý đó
Một cái phải trả cho việc nhân bản dữ liệu đấy là phải chắc chắn rằng khi một bản sao được cập nhật thì tất cả các bản ghi còn lại cũng phải được cập nhật theo để đảm bảo tính nhất quán của dữ liệu Điều này ảnh hưởng rất lớn đến hiệu năng của hệ thống
Ví dụ: Khi sử dụng các chương trình xem web => dữ liệu được ghi vào bộ nhớ máy tính (bản sao), nếu trang web nội dungthay đổi Người dùng vẫn chỉ xem nội dung trên máy => vấn đề đồng bộ dữ liệu trên máy khách và máy chủ