PDA

View Full Version : Bảo mật mạng doanh nghiệp nhỏ


hoanghonlangtu
05-06-2005, 14:36
Mở đầu

Trong công ty, chúng tôi tự phong cho mình chức “quản trị mạng”. Bởi vì ngoài việc giấy tờ sổ sách, vốn là việc dĩ nhiên của một thư ký văn phòng, chúng tôi còn làm đủ mọi việc từ thổi bụi trong máy vi tính cho đến lắp ráp và cấu hình domain controller, tóm lại là thiết lập, bảo trì và phát triển mạng máy tính của công ty. Các doanh nghiệp nhỏ, vốn dĩ chỉ với vài chiếc (hoặc cùng lắm vài chục) máy vi tính, không bao giờ có ngân sách chi cho nhân lực tin học, thường giao luôn chức quản trị mạng cho một vài nhân viên nào đó kiêm nhiệm. Qua bài này, chúng tôi muốn chia xẻ những kiến thức tự học hỏi mấy năm nay cho những bạn đồng nghiệp ở trong hoàn cảnh bất đắc dĩ giống như chúng tôi, đang ngày ngày lặng lẽ thực hiện nhiệm vụ hữu thực vô danh này.

Phù hợp với mục đích của LSb, bài này chỉ giới hạn về bảo mật. Cụ thể là giới thiệu vài giải pháp và trình bày một giải pháp được chọn cho từng vấn đề trong số (dự kiến) năm vấn đề sau đây:

Q1. Cấu hình an ninh (security profile)

Q2. Kiểm soát truy nhập (access control)

Q3. Mật mã (crypto) cho đĩa cứng

Q4. Sao lưu (backup) dữ liệu

Q5. Kiểm soát nội dung (contents checking)

Những giải pháp đã chọn nói chung đều có thể áp dụng cho cả hai loại mạng Windows domain (miền Windows) và Windows workgroup (nhóm Windows). Hai loại mạng này có thể xem là hai giải pháp cho một vấn đề thoạt nhìn không liên quan lắm đến bảo mật, xin tạm gọi là vấn đề “Windows: domain vs workgroup” hoặc “cấu hình phần mềm mạng”. Lựa chọn giải pháp của chúng tôi là domain và chúng tôi muốn, hơi lạc đề một chút, lý giải sự lựa chọn này. Giả sử mạng của chúng tôi có 10 máy vi tính và 20 người dùng, ai cũng có lúc cần máy, một số người có khi còn chiếm đồng thời 2-3 chiếc. Hơn nữa, người dùng còn thường logon qua mạng vào những máy xa để truy cập dữ liệu chia xẻ trên đó. Vì thế, chúng tôi quy ước không ai được phân máy riêng, tất cả máy đều dùng chung. Nếu dùng workgroup, trên mỗi máy chúng tôi phải tạo lập 20 accounts và mỗi người dùng trong công ty có tới 10 accounts, nhưng cùng tên và mật khẩu để tự động logon vào máy xa. Vì lý do bảo mật, cứ ba tháng một lần, người dùng phải thay đổi mật khẩu và tất nhiên là phải đổi trên cả 10 máy. Nếu vì đãng trí khi đổi mật khẩu, người dùng không thể logon được vào máy xa thì mọi tội lỗi vẫn đổ hết lên đầu người quản trị mạng. Thật là một cơn ác mộng (mà thật ra chúng tôi không mơ, chúng tôi đã thực tế trải qua rồi). Trong khi đó nếu dùng domain, chúng tôi chỉ cần:

• 20 accounts cho những người dùng, mà thực ra đều có thể tạo lập từ một account mẫu, và 10 accounts cho máy trạm (cũng được lập theo mẫu). Các accounts này thực hiện một cấu hình an ninh (Q1) duy nhất cho mọi người dùng và mọi máy trạm. Chú ý rằng tùy theo chính sách kiểm soát truy nhập (Q2), thường tồn tại nhiều nhóm người dùng với quyền truy nhập khác nhau, nhưng họ vẫn dùng chung 1 cấu hình an ninh;

• 1 hoặc vài account để làm các việc quản trị như là mount/dismount đĩa mật mã (Q3), backup/restore dữ liệu (Q4), hay setup/update các tường lửa, IDS/IPS, proxy chặn virus, spam và nội dung độc hại khác (Q5);

Chi phí cho giải pháp này là thêm 1 máy vi tính làm domain controller, luôn tiện chứa cả dữ liệu cá nhân của người dùng (như User Documents, User Profiles, User Application Data) và một số dữ liệu nào đó của công ty.
Như vậy, so với workgroup, giải pháp domain sẽ thu tóm việc quản trị vào một mối, nhờ vậy giảm chi phí và (quan trọng hơn) tăng bảo mật.

Trong các phần tiếp theo, chúng tôi sẽ lần lượt bàn đến 5 vấn đề kể trên.

Đối với nhiều bạn là quản trị mạng doanh nghiệp nhỏ, thường ít có thời gian để đào sâu nghiên cứu, nâng cao nghiệp vụ, và cũng là đối tượng của bài này, chúng tôi hy vọng cung cấp được những thông tin thực tiễn, giúp bạn nhanh chóng làm chủ được công việc của mình.
Mở đầu

Trong công ty, chúng tôi tự phong cho mình chức “quản trị mạng”. Bởi vì ngoài việc giấy tờ sổ sách, vốn là việc dĩ nhiên của một thư ký văn phòng, chúng tôi còn làm đủ mọi việc từ thổi bụi trong máy vi tính cho đến lắp ráp và cấu hình domain controller, tóm lại là thiết lập, bảo trì và phát triển mạng máy tính của công ty. Các doanh nghiệp nhỏ, vốn dĩ chỉ với vài chiếc (hoặc cùng lắm vài chục) máy vi tính, không bao giờ có ngân sách chi cho nhân lực tin học, thường giao luôn chức quản trị mạng cho một vài nhân viên nào đó kiêm nhiệm. Qua bài này, chúng tôi muốn chia xẻ những kiến thức tự học hỏi mấy năm nay cho những bạn đồng nghiệp ở trong hoàn cảnh bất đắc dĩ giống như chúng tôi, đang ngày ngày lặng lẽ thực hiện nhiệm vụ hữu thực vô danh này.

Phù hợp với mục đích của LSB, bài này chỉ giới hạn về bảo mật. Cụ thể là giới thiệu vài giải pháp và trình bày một giải pháp được chọn cho từng vấn đề trong số (dự kiến) năm vấn đề sau đây:

Q1. Cấu hình an ninh (security profile)

Q2. Kiểm soát truy nhập (access control)

Q3. Mật mã (crypto) cho đĩa cứng

Q4. Sao lưu (backup) dữ liệu

Q5. Kiểm soát nội dung (contents checking)

Những giải pháp đã chọn nói chung đều có thể áp dụng cho cả hai loại mạng Windows domain (miền Windows) và Windows workgroup (nhóm Windows). Hai loại mạng này có thể xem là hai giải pháp cho một vấn đề thoạt nhìn không liên quan lắm đến bảo mật, xin tạm gọi là vấn đề “Windows: domain vs workgroup” hoặc “cấu hình phần mềm mạng”. Lựa chọn giải pháp của chúng tôi là domain và chúng tôi muốn, hơi lạc đề một chút, lý giải sự lựa chọn này. Giả sử mạng của chúng tôi có 10 máy vi tính và 20 người dùng, ai cũng có lúc cần máy, một số người có khi còn chiếm đồng thời 2-3 chiếc. Hơn nữa, người dùng còn thường logon qua mạng vào những máy xa để truy cập dữ liệu chia xẻ trên đó. Vì thế, chúng tôi quy ước không ai được phân máy riêng, tất cả máy đều dùng chung. Nếu dùng workgroup, trên mỗi máy chúng tôi phải tạo lập 20 accounts và mỗi người dùng trong công ty có tới 10 accounts, nhưng cùng tên và mật khẩu để tự động logon vào máy xa. Vì lý do bảo mật, cứ ba tháng một lần, người dùng phải thay đổi mật khẩu và tất nhiên là phải đổi trên cả 10 máy. Nếu vì đãng trí khi đổi mật khẩu, người dùng không thể logon được vào máy xa thì mọi tội lỗi vẫn đổ hết lên đầu người quản trị mạng. Thật là một cơn ác mộng (mà thật ra chúng tôi không mơ, chúng tôi đã thực tế trải qua rồi). Trong khi đó nếu dùng domain, chúng tôi chỉ cần:

• 20 accounts cho những người dùng, mà thực ra đều có thể tạo lập từ một account mẫu, và 10 accounts cho máy trạm (cũng được lập theo mẫu). Các accounts này thực hiện một cấu hình an ninh (Q1) duy nhất cho mọi người dùng và mọi máy trạm. Chú ý rằng tùy theo chính sách kiểm soát truy nhập (Q2), thường tồn tại nhiều nhóm người dùng với quyền truy nhập khác nhau, nhưng họ vẫn dùng chung 1 cấu hình an ninh;

• 1 hoặc vài account để làm các việc quản trị như là mount/dismount đĩa mật mã (Q3), backup/restore dữ liệu (Q4), hay setup/update các tường lửa, IDS/IPS, proxy chặn virus, spam và nội dung độc hại khác (Q5);

Chi phí cho giải pháp này là thêm 1 máy vi tính làm domain controller, luôn tiện chứa cả dữ liệu cá nhân của người dùng (như User Documents, User Profiles, User Application Data) và một số dữ liệu nào đó của công ty.
Như vậy, so với workgroup, giải pháp domain sẽ thu tóm việc quản trị vào một mối, nhờ vậy giảm chi phí và (quan trọng hơn) tăng bảo mật.

Trong các phần tiếp theo, chúng tôi sẽ lần lượt bàn đến 5 vấn đề kể trên.

Đối với nhiều bạn là quản trị mạng doanh nghiệp nhỏ, thường ít có thời gian để đào sâu nghiên cứu, nâng cao nghiệp vụ, và cũng là đối tượng của bài này, chúng tôi hy vọng cung cấp được những thông tin thực tiễn, giúp bạn nhanh chóng làm chủ được công việc của mình.
Q1. Cấu hình an ninh (security profile)


Tự tin vào kinh nghiệm hardware và software của mình, chúng tôi tự lắp đặt và cài đặt một mạng Windows hoàn chỉnh. Trên cơ sở cấu hình default, chúng tôi đã dùng Local Security Policy (cho mạng workgroup) hoặc Domain Security Policy (cho mạng domain) chỉnh sửa vài tham số để tăng cường bảo mật. Mạng thông suốt, mọi phần mềm đều chạy tốt và chúng tôi yên tâm sử dụng nó trong một thời gian khá dài.

Thế nhưng, cấu hình default thực chất là cấu hình 0, nghĩa là không bảo mật. Windows có hàng trăm tham số an ninh. Những chỉnh sửa của chúng tôi thay đổi cỡ 0.1 số tham số, các service pack và hotfix thay đổi khoảng 0.01, tổng cộng là 0.11, nghĩa là không có thay đổi đáng kể gì trong cấu hình an ninh; Chúng tôi đã choáng khi biết điều này.

Trước khi lắp đặt, chúng tôi biết điều mà ai cũng biết rằng security tỷ lệ nghịch với functionality. Khi bắt đầu tăng cường bảo mật thì phải hạn chế dịch vụ của máy, hạn chế quyền của người dùng. Việc này sẽ khiến người dùng mất tiện nghi, một số ứng dụng ngừng hoạt động, mạng không còn thông suốt nữa. Mặt khác, tăng cường bảo mật đi đôi với audit, tức là log lại nhiều hành động của người dùng. Việc này khiến hệ thống chạy chậm lại. Khi log đầy không thể log được nữa, để đảm bảo an ninh, hệ thống sẽ từ chối phục vụ (tự shutdown): ta đã tự giết mình một cách hoàn hảo. Bởi lý do đó, khi thiết kế hệ thống, ở bất cứ chỗ nào có thể đánh đổi functionality lấy security, người thiết kế đặt ra tham số an ninh, và nhường cho người dùng quyền lựa chọn giá trị. Người thiết kế chỉ đặt cho tham số một giá trị default nào đó.

Giá trị default đó tương ứng với functionality cực đại và security cực tiểu. Đó là điều mà chúng tôi chỉ mới biết sau khi đã sử dụng một thời gian khá dài, và làm cho chúng tôi bị choáng.

Chúng tôi phải bắt đầu lại từ A. Từ sách vở.

Cấu hình an ninh là tập hợp các tham số an ninh. Một tham số an ninh là một tham số có ảnh hưởng mạnh đến an ninh của hệ thống. Chẳng hạn, độ dài tối thiểu cho phép của mật khẩu.

Cấu hình an ninh không phải là toàn bộ mà chỉ là một phần của chính sách an ninh. Chẳng hạn, xét chính sách an ninh sau đây:

(1) Người dùng không được bỏ trống mật khẩu.
(2) Người dùng không được thay đổi / xóa các file chương trình.
(3) Người dùng không được nhận và gửi thư chứa virus.
(4) Người dùng không được sao chép dữ liệu của công ty.
(5) Người dùng không được giải trí qua Internet quá nhiều trong giờ làm việc.

Điều (1) áp đặt bằng cấu hình an ninh. Điều (2) có thể áp đặt bằng cấu hình an ninh. Các điều còn lại chỉ có thể áp đặt bằng những phương tiện khác.

Trong Windows 2000/XP/2003, khi chạy chương trình Local Security Policy ta sẽ nhìn thấy toàn bộ cấu hình an ninh. Có thể mở rộng cấu hình an ninh, nghĩa là thêm vào đó các tham số an ninh. Những tham số thêm này không phải từ trên trời rơi xuống; chúng có sẵn trong hệ thống; ta chỉ đơn giản đưa chúng vào danh sách các tham số an ninh mà thôi. Giá trị tham số an ninh có thể không xác định.

Chương trình Local Security Policy dùng để sửa đổi cấu hình an ninh local. Trong domain ta có thêm ba công cụ là Domain Security Policy, Domain Controller Security Policy và Group Policy Edit để sửa đổi cấu hình domain; trong workgroup không tồn tại công cụ nào tương tự.

Cấu hình domain xác định vài tham số chung cho mọi máy, mọi người trong domain.

Domain có thể trải ra trên nhiều site. Trường hợp này gặp ở doanh nghiệp với vài cơ sở rải rác trên một địa bàn rộng. Mỗi site có thể có cấu hình riêng. Mỗi cấu hình site xác định các tham số chung cho mọi máy trong site.

Domain chứa các organisation units (OU), chẳng hạn Domain Controllers, Servers, Workstations, Users,... Khi click vào OU Properties/GroupPolicy, sẽ thấy mỗi OU đều có thể có cấu hình riêng. Mỗi cấu hình OU xác định các tham số chung cho mọi máy (hoặc người) trong OU.

hoanghonlangtu
05-06-2005, 14:42
(3’) Everyone có quyền Modify this folder only.



Trước khi nói tiếp đến loại dữ liệu thứ ba, xin nhắc tới vài đặc quyền trong cơ chế kiểm soát truy nhập (của Windows và không chỉ riêng Windows) mà nếu lạm dụng có thể ảnh hưởng xấu đến an ninh:



- người chủ có quyền thay đổi quyền truy nhập folder / file của mình.



- admin có quyền reset mật khẩu của mọi người dùng, nghĩa là đặt mật khẩu mới mà không cần biết mật khẩu cũ là gì.



- admin có quyền đoạt chủ quyền của mọi file / folder, kể cả của những file và folder mà account người chủ không còn tồn tại nữa (nên nói đến việc thay đổi mật khẩu là vô nghĩa).



Và một đặc điểm có tác dụng tốt cho an ninh:



- chủ quyền file / folder không thể trao mà chỉ có thể đoạt. Sau khi đoạt được chủ quyền, bạn không có cách nào trao trả chủ quyền cho người chủ cũ mà thiếu sự hợp tác của người đó.



Chúng ta đã nói về dữ liệu public và private. Ngoài hai loại này còn một loại thứ ba nữa, xin tạm gọi là *dữ liệu doanh nghiệp*. Thí dụ về loại dữ liệu này là dữ liệu kế toán. Đặc trưng của loại dữ liệu này là mỗi folder, mỗi file đều có một số người dùng chịu trách nhiệm quản lý, và vì thế có quyền cập nhật, bên cạnh một số người dùng khác có nhu cầu biết, và vì thế có quyền đọc. (*Nhu cầu biết* (need-to-know) là một thuật ngữ bảo mật để chỉ nhu cầu thông tin phát sinh từ công việc chứ không phải để thỏa mãn trí tò mò.) Ta không được phép để người chủ file có một đặc quyền gì hơn so với những người dùng khác có quyền cập nhật. Hay nói cách khác, khái niệm “chủ quyền” không được phép đóng một vai trò gì đối với loại dữ liệu này. Đây có lẽ là loại dữ liệu cần phải được quan tâm bảo toàn và bảo mật nhiều nhất. Chữ “bảo mật” chúng tôi muốn nói là bảo đảm *bí mật* (confidentiality), còn “bảo toàn” là đảm bảo *toàn vẹn* (integrity). Chữ “an ninh” (security) chúng tôi cũng gọi một cách không chính xác là “bảo mật” ở nhiều chỗ trong bài viết. Chúng tôi phải xin lỗi bạn đọc vì tập quán xấu này. Khi hạn chế quyền cập nhật là chúng ta đang muốn tăng bảo toàn, còn khi hạn chế quyền đọc là chúng ta đang muốn tăng bảo mật.



Thí dụ, D: là partition chứa dữ liệu doanh nghiệp. Trên folder D:\ ta có thể đặt thuộc tính bảo mật với luật (1) như trên và thay cho luật (3), dùng luật (3’’) như sau



(3’’) Users có quyền Read & Execute this folder only.



Luật này cho phép Users xem danh sách các folder con của D:\ rồi từ đó chọn một folder để vào làm việc. Bảo mật có thể tăng lên một chút nếu người dùng không được quyền xem danh sách các folder con mà phải *biết trước* tên folder họ định làm việc và đi xuyên qua D:\ thẳng vào folder con đó. Bạn đọc có thể tự tìm hiểu những quyền truy nhập (sơ cấp) nào là vừa đủ để thực hiện được việc này.



So với thí dụ trước, ở đây chúng ta đã tước bỏ quyền truy nhập của SYSTEM để đảm bảo rằng các dịch vụ chạy bằng SYSTEM account, vốn dĩ rất phổ biến, nếu có incorrect impersonation thì cũng không gây ra tác hại. (Incorrect impersonation là hiện tượng một quá trình với quyền người dùng leo thang lên đặc quyền cao, như SYSTEM chẳng hạn. Remote Adminstrator là thí dụ về chương trình có lỗ hổng bảo mật đó.)

So với thí dụ trước, ở đây chúng ta cũng đã tước bỏ quyền truy nhập của CREATOR OWNER để khẳng định rằng trên các files và folders, người chủ không có quyền gì hơn so với những người dùng khác cùng nhóm, ngoại trừ quyền thay đổi quyền mà (đáng buồn thay) ta không tài nào tước bỏ được. Việc người dùng không phải admin sử dụng quyền thay đổi quyền trên file hoặc folder dữ liệu doanh nghiệp cần phải được xem là một sự cố an ninh nghiêm trọng. Doanh nghiệp rất cần một công cụ cho phép kịp thời phát hiện hoặc ngăn chặn sự cố đó. Về vấn đề này, hiểu biết của chúng tôi vô cùng ít ỏi, tha thiết xin các bạn bổ túc cho. Tiny Firewall, một phần mềm bảo mật cho Windows Pro và cả Server, hứa hẹn một công cụ như vậy nhưng cho đến nay, chúng tôi vẫn chưa vận hành được phần mềm này. Vì lẽ đó, tạm thời chúng tôi chỉ biết một “biện pháp” là đối với dữ liệu doanh nghiệp, Admin phải tự tay lập các folders, tự tay lập files dữ liệu (trong những trường hợp khả dĩ), thường xuyên đoạt chủ quyền files/folders (trong những trường hợp khác), và kêu gọi ý thức bảo mật tự giác của người dùng (trong khi chưa kịp ra tay đoạt chủ quyền).



Để tiếp tục thí dụ này, hãy giả sử doanh nghiệp nhỏ chế tạo một loại sản phẩm nào đó, máy vi tính chẳng hạn. Doanh nghiệp cần có đội ngũ *kỹ thuật* chịu trách nhiệm thiết kế mẫu và sản xuất. Chúng ta đã lập hai nhóm người dùng là Engineers cho bộ phận thiết kế, và Workers cho bộ phận sản xuất. Chúng ta cũng đã lập ba folders là D:\projects chứa các bản thiết kế đang làm, D:\models chứa các bản thiết kế hoàn chỉnh phục vụ sản xuất, D:\catolog chứa mô tả các mẫu sản phẩm, phục vụ bán hàng. Chúng ta cũng đã đặt ra một chính sách kiểm soát truy nhập, phát biểu tự nhiên như sau:



(a) Engineers có quyền cập nhật D:\projects, D:\models và D:\catalog



(b) Workers có quyền đọc D:\models và D:\catalog





Thực hiện chính sách này, cách đầu tiên mà ai cũng nghĩ đến là trực tiếp gán quyền truy nhập cho các nhóm người dùng. Chẳng hạn, trên D:\models:



- Engineers có quyền cập nhật this folder, subfolders and files.



- Workers có quyền đọc this folder, subfolders and files.



Trong đó đọc nghĩa là Read & Execute, List Folder Contents, và Read; cập nhật nghĩa là đọc, Modify và Write.



Vấn đề của cách làm này là trong khi ta có thể trả lời rất nhanh câu hỏi những nhóm nào có quyền gì với một folder nhất định (D:\models chẳng hạn), ta rất khó trả lời câu hỏi môt nhóm nhất định (Engineers chẳng hạn) có quyền gì trên những folders nào. Thật vậy, để trả lời câu hỏi này ta chẳng có cách nào khác là tuần tự duyệt qua tất cả các folders (và subfolders) của D: để tìm Engineers. Theo cách làm đầu tiên này, việc kiểm soát truy nhập sẽ trở thành không thể kiểm soát nổi khi dữ liệu doanh nghiệp bắt đầu phình ra và số lượng folders đạt đến cỡ trăm.



Ta đi đến cách thứ hai. Ngoài loại nhóm biểu diễn chức phận người dùng như Engineers, Workers,... ta lập ra một loại nhóm nữa mà mỗi nhóm biểu diễn một quyền truy nhập nhất định trên một folder nhất định. Chẳng hạn, tương ứng với folder D:\models, lập hai nhóm là Dmodels_view và Dmodels_update; sau đó trên D:\models, đặt ra hai luật:



(6) Dmodels_view có quyền đọc this folder, subfolders and files.



(7) Dmodels_update có quyền cập nhật this folder, subfolders and files.



Engineers, Workers, Clerks, Accountants, Managers, Boss,... bất kể ta có bao nhiêu vai trò người dùng, vẫn chỉ có hai luật ấy mà thôi! Hai luật này thuộc về cơ chế: chúng không phụ thuộc vào chính sách. Để thực hiện chính sách đã đề ra, ta không thay đổi thuộc tính bảo mật folder nữa mà chỉ cần xác lập quan hệ bao hàm giữa các nhóm chức phận với các nhóm quyền truy nhập. Chẳng hạn chính sách (a), (b) phát biểu một cách tự nhiên ở trên bây giờ có thể thực hiện một cách tự nhiên không kém:



(a) Engineers là nhóm con của Dprojects_update, Dmodels_update và Dcatalog_update.



(b) Workers là nhóm con của Dmodels_view và Dcatalog_view.



Bây giờ thì ta đã có thể nắm chắc chính sách kiểm soát truy nhập trong tay. Sử dụng công cụ Active Directory Users and Computers, một công cụ quản lý nhóm có sẵn trong mạng Windows domain, với cặp tab Members và Member Of trên nhóm chức phận Engineers chẳng hạn, ta có thể một mặt quản lý được danh sách những người dùng mang chức phận đó, mặt khác quản lý danh sách quyền truy nhập trao cho chức phận đó. Tính chất quản lý hai mặt ấy chính là ý tưởng của cái gọi là kiểm soát truy nhập trên cơ sở chức phận (Role-Based Access Control, RBAC), một cơ chế mà người ta đã nhận thức được từ lâu và đã được hỗ trợ một cách tự phát trong nhiều phần mềm ứng dụng, nhưng mới chỉ được chuẩn hóa gần đây và công cụ hỗ trợ một cách có hệ thống đang được từng bước đưa vào các hệ điều hành.



Chúng tôi sẽ không bình xét thí dụ trên trong mối liên quan tới những khái niệm quan trọng khác của RBAC như là phân cấp chức phận (role hiearchy), một loại quan hệ bao hàm giữa các chức phận, hay là đa quyền phân lập (separation of duties), một loại quan hệ loại trừ hỗ tương giữa các chức phận. Có những lý do khiến chúng tôi thấy việc đó không cần thiết. Thứ nhất, ranh giới giữa các chức phận trong doanh nghiệp nhỏ thường khá là mờ nhạt. Doanh nghiệp nhỏ không đủ nhân lực để phân công lao động rạch ròi mà vẫn đảm bảo hiệu quả. Không hiếm khi để tận dụng nhân lực, cấp trên ủy thác công việc của mình một cách vô nguyên tắc cho cấp dưới, một người phải đảm trách hai chức phận xung khắc quyền lợi với nhau. Thứ hai, khác với nhiệm vụ của một nhân viên vốn dĩ biến đổi thường xuyên, chức phận của một nhân viên nói chung là tĩnh. Dẫu rằng trong môi trường doanh nghiệp, yêu cầu bảo mật dữ liệu không được đặt nặng lắm, vẫn tồn tại khá nhiều folders dữ liệu quan trọng và nhạy cảm đến mức không thể cấp quyền truy nhập dựa theo chức phận mà phải dựa theo nhiệm vụ. Khi xong nhiệm vụ, nhu cầu biết không còn nữa thì quyền truy nhập cũng bị tước đi. Thứ ba, bất chấp dựa trên chức phận, nhiệm vụ, nhu cầu biết hay là cái gì đi nữa, một cơ chế kiểm soát truy nhập tốt không được phép trông chờ vào ý thức bảo mật tự giác của bất cứ ai; nói cách khác, nó phải là cưỡng bách (mandatory) đối với tất cả mọi người dùng; admin cũng chỉ là một cái đinh ốc trong guồng máy. Windows như chúng ta biết hiện nay không có khả năng thực thi cơ chế này.



Vì thế, thay cho việc mổ xẻ bằng lý thuyết không mấy bổ ích, chúng tôi muốn dành thời gian quý báu của bạn đọc vào nhận xét rằng thực ra đọc và cập nhật folder/file mới chỉ là những quyền truy nhập dữ liệu hết sức thô thiển. Chúng không cho phép ta phân biệt, chẳng hạn, giữa hành động đọc một văn bản trong một folder với hành động sao chép nguyên cả 100 GB dữ liệu từ folder đó. Chúng hoàn toàn bất lực khi cần phải phân biệt, chẳng hạn, quyền cập nhật giữa hành động “thu” và “chi” trên một tài khoản qua một phiên giao dịch với khách hàng. Kiểm soát truy nhập chặt chẽ đòi hỏi sự phân quyền truy nhập tinh vi hơn.



Người dùng làm việc với dữ liệu thông qua phần mềm. Khi ta nhìn ở tầm cao, coi dữ liệu cùng với phần mềm như một đối tượng, thì “đọc văn bản” hay “sao chép”, “thu” hay “chi” là những hành động truy nhập ở một mức cao -- mức đối tượng. Chúng tôi kết thúc vấn đề Q2 – kiểm soát truy nhập với kết luận rằng một chính sách kiểm soát truy nhập chặt chẽ chỉ có thể thi hành khi chúng ta ngăn chặn mọi con đường truy nhập dữ liệu ở mức file/folder, buộc người dùng truy nhập dữ liệu ở mức đối tượng thông qua những phần mềm cho phép phân quyền chi tiết chẳng hạn như quyền sử dụng từng record, field, từng lệnh, hoặc từng menu.

Q3. Mật mã (crypto) cho đĩa cứng



Mật mã dùng để bảo mật dữ liệu trong trường hợp xâm nhập vật lý, chẳng hạn kẻ gian có thể đột nhập vào văn phòng, tháo ổ đĩa cứng PC của ta gắn vào laptop của hắn để sao chép, hoặc khởi động PC của ta bằng hệ điều hành riêng của hắn để sao chép đĩa cứng; hai cách này bản chất là như nhau. Trường hợp bị xâm nhập logic, qua mạng LAN chẳng hạn, mật mã không giúp gì chúng ta cả.



Dữ liệu được bảo vệ bằng chìa khóa mật mã. Bản thân chìa khóa mật mã cần được bảo vệ. Cách bảo vệ thứ nhất là chìa khóa nằm trong đầu người dùng. (Chìa khóa được tính ra từ một mật khẩu nào đó.) Cách thứ nhì là lưu chìa khóa trong một thiết bị cho phép truy nhập mà không cần xác thực, như đĩa cứng, đĩa mềm, bảo vệ bản lưu bằng một chìa khóa khác bảo vệ theo cách thứ nhất. Cách thứ ba là lưu chìa khóa trong một thiết bị mà trước khi cho phép truy nhập, người dùng phải xác thực danh tính, như smartcard. Phương pháp xác thực có thể là mật khẩu (còn gọi là PIN), có khi kết hợp các đặc điểm sinh trắc của người dùng. Theo cách này, mật khẩu, mặc dù không nhất thiết, *vẫn có thể* tham gia giải mã chìa khóa chứa trong thiết bị. Cách thứ tư là phân chia chìa khóa thành (chẳng hạn) 5 phần, mỗi phần được giao cho một người nắm giữ. Không nên cho rằng chìa khóa được chia phần một cách đơn giản là cắt ra làm nhiều đoạn. Yêu cầu của phép chia phần này là hiểu biết về (chẳng hạn) 1 hoặc 2 phần vẫn không đem lại một chút thông tin nào về chìa khóa cả. Chìa khóa có thể được tái tạo khi và chỉ khi đã biết được (chẳng hạn) ít nhất 3 phần. Từng phần sau khi chia lại được bảo vệ bằng một trong ba cách trên.



Như thế trong việc bảo vệ chìa khóa mật mã, ngoại trừ trường hợp smartcard chỉ dùng mật khẩu để xác thực mà không dùng để giải mã, trong tất cả các trường hợp khác, mật khẩu là “chìa khóa” dẫn đến chìa khóa mật mã.



Đâu là điểm khác biệt giữa chìa khóa mật mã và mật khẩu? Mật khẩu luôn dùng để xác thực, nghĩa là hệ thống phải chứa thông tin về mật khẩu để có khả năng phân biệt được mật khẩu đã đưa vào là đúng hay sai với một độ chính xác cao. Chìa khóa mật mã không có tính chất này.



Điểm khác biệt này, ta có thể tưởng là quan trọng nhưng thật ra không phải. Một công thức mật mã thực tế luôn thỏa mãn yêu cầu là với chìa khóa Z mã hóa X thành Y, dẫu có biết cả Y lẫn X ta vẫn không tài nào tìm ra chìa khóa Z. Tất nhiên trừ phi ta tìm theo cách mò, còn gọi là phương pháp "trâu điên" (brutte force), là lần lượt thử từng giá trị Z cho đến khi tìm ra giá trị thỏa đẳng thức ban đầu. Như vậy một công thức mật mã có thể dùng làm công thức xác thực mật khẩu – trong đó Z là mật khẩu và hệ thống lưu trữ giá trị X, Y. Các hàm hash như MD5, SHA,... mà một trong những ứng dụng của chúng là xác thực mật khẩu, đều xuất phát từ nguyên tắc này.



Tìm mò chìa khóa (mật khẩu) là một cuộc chiến giành giật từng bit thông tin, bởi vì mỗi bit lộ ra làm thời gian tìm mò giảm đi một nửa.



Sẽ là sai lầm khi cho rằng mỗi ký tự ASCII đều mang lượng thông tin 7 bit, mỗi ký tự Latin-1 đều mang lượng thông tin 8 bit hay mỗi ký tự Unicode đều mang lượng thông tin 16 bit. Lượng thông tin phụ thuộc quy luật xuất hiện của các ký tự. Chẳng hạn, nếu chỉ sử dụng 26 chữ cái thường và 10 chữ số (ta luôn giả thiết kẻ phá khóa cũng biết điều này), thì bất chấp bảng mã ASCII, Latin-1 hay Unicode, mật khẩu 18 ký tự (không nhất thiết khác nhau) được chọn độc lập và ngẫu nhiên từ 36 ký tự trên có 18*log2(36) = 93.1 bit, trong đó log2() ký hiệu lô-ga-rít cơ số 2. Mặt khác, những mật khẩu cũng dài 18 ký tự nhưng luôn chọn theo quy luật là 13 chữ cái thường đi theo là 5 chữ số sẽ chỉ có 13*log2(26) + 5*log2(10) = 77.7 bit. Nghĩa là, với exp2(.) ký hiệu mũ cơ số 2, dạng mật khẩu thứ hai yếu hơn dạng thứ nhất exp2(93.1 – 77.7) = khoảng 40 000 lần.



Không cần phải sáng trí lắm để hiểu rằng một mật khẩu (hay chìa khóa) bảo vệ thông tin nào đó dù có dùng trong một thời gian rất ngắn vẫn cần phải được giữ bí mật lâu dài, ít ra là trong suốt thời gian bảo mật của thông tin đó. Mật khẩu xác thực thông thường không cần phải bảo mật lâu như vậy. Giả sử công nghệ điện tử đảm bảo tốc độ tính toán cứ tăng gấp đôi sau 18 tháng (một giả thiết hay dùng trong bảo mật), giả sử phương pháp xác thực mật khẩu là an toàn đến mức chỉ có cách tìm mò, với tốc độ tính toán hiện nay, trong khi mật khẩu xác thực dùng trong thời gian một vài tháng chỉ cần 40-60 bit (khoảng 8-12 ký tự), mật khẩu cho chìa khóa mật mã, với thời gian bảo mật không biết trước nhưng thường được coi là một vài chục năm, cần phải có 80-120 bit (khoảng 16-24 ký tự).

Angel TC
06-06-2005, 17:25
Hị hị, post cái này ở đây thì mục đích là câu bài là chính :cuoilon:

(Bin ơi, sang web tớ chơi đi ;))