*Chế độ người dùng (User mode)
User mode có ít đặc quyền xử lý hơn kernel mode và không thể truy nhập trực tiếp tới phần cứng. Mã chƣơng trình thực hiện trong user mode chỉ tác động trực tiếp tới không gian địa chỉ của nó. Các trình ứng dụng chạy trong chế độ này sử dụng các giao diện lập trình ứng dụng (Application Programming Interface - API) đã đƣợc hệ điều hành xác định để yêu cầu các dịch vụ của hệ thống. Các hệ thống con và các dịch vụ hỗ trợ chúng chạy trong user mode. Khi một ứng dụng đƣợc khởi động, một tiến trình xử lý (process) của Windows NT đƣợc tạo ra. Mỗi tiến trình xử lý đƣợc coi nhƣ một đối tƣợng. Nhƣ vậy, các đối tƣợng tồn tại trên hệ thống bao hàm một chƣơng trình thực hiện đƣợc (EXE, COM), một tập các địa chỉ bộ nhớ ảo và một hay nhiều luồng xử lý (stream).
POSIX
Application Application Win32
OS/2
Application Process Logon
POSIX System Win 32 Subsystem OS/2 Subsystem Security Subsystem Environment Subsystem I/O Manager Object Manager Security Reference Monitor Process Manager Local Procedure Call Facility Virtual Memory Manager Win32 Windows Manager & GDI Device Drivers Graphic Device Drivers Microkernel
Hardware Abstraction Layer (HAL)
Một số đặc điểm của các tiến trình xử lý ở user mode
1. Không truy nhập một cách trực tiếp vào phần cứng. Để đảm bảo tránh sự truy nhập của các ứng dụng hoạt động không bình thƣờng hoặc của ngƣời dùng không có quyền, các tiến trình xử lý của user mode không thể truy nhập một cách trực tiếp tới phần cứng. Các yêu cầu truy nhập phần cứng đƣợc bảo đảm bởi một thành phần của kernel.
2. Bị giới hạn trong việc tác động tới một không gian địa chỉ đã đƣợc gán. Windows NT trợ giúp việc bảo vệ hệ điều hành bằng cách hạn chế các vùng bộ nhớ mà một tiến trình xử lý của user mode có thể truy nhập. Giới hạn này đƣợc thực hiện bằng cách chỉ gán một số địa chỉ nhất định cho tiến trình xử lý của user mode đó.
3. Các tiến trình xử lý ở user mode có thể đặt trang bên ngoài bộ nhớ vật lý tới RAM ảo trong một đĩa cứng. Bộ nhớ ảo cũng đƣợc hiểu nhƣ là RAM ảo, tính năng này cho phép không gian đĩa cứng có thể sử dụng nhƣ là bộ nhớ phụ. Bằng cách đó, các tiến trình xử lý của user mode có thể truy nhập nhiều bộ nhớ hơn.
4. Xử lý ở mức ƣu tiên thấp hơn các thành phần của kernel. Chính vì vậy mà nói chung một xử lý của user mode có quyền truy nhập ít hơn vào các chu kỳ của CPU so với các xử lý chạy trong kernel mode. Điều đó đảm bảo cho hệ điều hành không bị chậm lại do phải chờ một ứng dụng kết thúc công việc.
*Chế độ lõi (Kernel mode)
Kernel mode là chế độ hoạt động đƣợc ƣu tiên trong đó mã đƣợc thực hiện trực tiếp tác động tới tất cả phần cứng và toàn bộ nhớ, bao gồm các không gian địa chỉ của tất cả các xử lý của user mode. Sau đây là một số khả năng của các thành phần của kernel mode:
1. Có thể truy nhập trực tiếp vào phần cứng. 2. Có thể truy nhập tất cả bộ nhớ trên máy tính
3. Không bị chuyển tới tệp phân trang bộ nhớ ảo (swap file, tệp này nằm trên đĩa cứng và do đó có nhiều cơ hội thông tin bị bỏ lại sau khi tiến trình xử lý đã kết thúc).
4. Xử lý ở mức ƣu tiên cao hơn các xử lý của user mode.
Trong Windows NT, các phần mềm thực hiện trên kernel mode nằm trong nhóm các chƣơng trình thừa hành (Windows NT Executive).
* Các chương trình thừa hành
Windows NT Executive là tên chung cho một số hệ thống con và các thành phần của hệ điều hành chạy trong kernel mode. Nó bao gồm các dịch vụ thừa hành (Executive Services), vi hạch (microkernel) và tầng trừu tƣợng phần cứng (Hardware Abstraction Layer - HAL). Windows NT Executive cung cấp các trợ giúp cho các ứng
dụng của ngƣời dùng và các hệ thống con môi trƣờng. Bên trong Windows NT Executive các chức năng cơ bản của hệ điều hành đƣợc tích hợp thông qua ba tầng bao gồm các thành phần: Executive Services, microkernel và HAL.
Windows NT Executive Services là trung tâm của hầu hết các chức năng của hệ điều hành. Bởi vậy chúng đƣợc bảo vệ để tránh sự xâm nhập của các ứng dụng ở chế độ ngƣời dùng và các hệ thống con bằng cách chỉ hoạt động trong chế độ vi hạch.
* Các thành phần của Executive Services:
Managers: Gồm nhiều mô-đun quản lý I/O, các đối tƣợng, tính năng bảo mật,
các xử lý, đồng xử lý các truyền thông (IPC), bộ nhớ ảo và quản lý đồ hoạ.
Device Drivers: Các thành phần phần mềm điều khiển truy nhập phần cứng.
* Vi hạch (microkernel)
Micro-kernel cung cấp phần lớn các dịch vụ cơ bản của hệ điều hành, ví dụ nhƣ lập lịch các luồng, quản lý ngắt mức thứ nhất, gọi thủ tục bị trì hoãn. Micro- kernel nằm giữa các tầng Executive Services và HAL.
* HAL
HAL là một thƣ viện chế độ nhân (kernel mode), bao gồm các chƣơng trình con trợ giúp khai thác phần cứng đƣợc cung cấp bởi Microsoft hoặc các hãng phần cứng. Thí dụ, HAL cho phép Windows NT chạy trên các máy đơn hoặc các máy có nhiều bộ vi xử lý và cho phép các trình điều khiển thiết bị ở mức cao nhƣ card màn hình định dạng dữ liệu cho các loại màn hình khác nhau.
3.1.4. Quản lý đối tƣợng (Object Manager)
Tất cả tài nguyên của hệ điều hành đƣợc thực thi nhƣ các đối tƣợng. Một đối tƣợng là một đại diện trừu tƣợng của một tài nguyên. Nó mô tả trạng thái bên trong và các tham số của tài nguyên và tập hợp các phƣơng thức (Method) có thể đƣợc sử dụng để truy cập và điều khiển đối tƣợng.
Ví dụ một đối tƣợng tập tin sẽ có một tên tập tin, thông tin trạng thái trên file và danh sách các phƣơng thức nhƣ tạo, mở, đóng và xóa, đối tƣợng mô tả các thao tác có thể đƣợc thực hiện trên đối tƣợng file.
Bằng cách xử lý toàn bộ tài nguyên nhƣ đối tƣợng Windows NT có thể thực hiện các phƣơng thức giống nhau nhƣ: tạo đối tƣợng, bảo vệ đối tƣợng, giám sát việc sử dụng đối tƣợng (Client object) giám sát những tài nguyên đƣợc sử dụng bởi một đối tƣợng. Việc quản lý đối tƣợng (Object Manager) cung cấp một hệ thống đặt tên phân cấp cho tất cả các đối tƣợng trong hệ thống. Do đó, tên đối tƣợng tồn tại nhƣ một phần của không gian tên toàn cục và đƣợc sử dụng để theo dõi việc tạo và sử dụng đối tƣợng.
Sau đây là một số ví dụ của loại đối tƣợng Windows NT: Đối tƣợng Directory (thƣ mục).
Đối tƣợng File (tập tin). Đối tƣợng kiểu object.
Đối tƣợng Process (tiến trình). Đối tƣợng thread (luồng).
Đối tƣợng Section and segment (mô tả bộ nhớ). Đối tƣợng Port (cổng).
Đối tƣợng Semaphore và biến cố. Đối tƣợng liên kết Symbolic (ký hiệu).
3.1.5. Cơ chế bảo mật (SRM - Security Reference Monitor)
Đƣợc sử dụng để thực hiện vấn đề an ninh trong hệ thống Windows NT. Các yêu cầu tạo một đối tƣợng phải đƣợc chuyển qua SRM để quyết định việc truy cập tài nguyên đƣợc cho phép hay không. SRM làm việc với hệ thống con bảo mật trong chế độ User. Hệ thống con này đƣợc sử dụng để xác nhận User login vào hệ thống Windows NT.
Để kiểm soát việc truy cập, mỗi đối tƣợng Windows NT có một danh sách an toàn (Access Control List - ACL). Danh sách an toàn của mỗi đối tƣợng gồm những phần tử riêng biệt gọi là Access Control Entry (ACE). Mỗi ACE chứa một SecurityID (SID: số hiệu an toàn) của ngƣời sử dụng hoặc nhóm. Một SID là một số bên trong sử dụng với máy tính Windows NT mô tả một ngƣời sử dụng hoặc một nhóm duy nhất giữa các máy tính Windows NT.
Ngoài SID, ACE chứa một danh sách các hành động (Action) đƣợc cho phép hoặc bị từ chối của một User hoặc một nhóm. Khi ngƣời sử dụng đăng nhập vào mạng Windows NT, sau khi việc nhận dạng thành công, một Security Access Token (SAT) đƣợc tạo cho ngƣời dùng đó. SAT chứa SID của ngƣời dùng và SID của tất cả các nhóm ngƣời dùng thuộc mạng Windows NT. Sau đó SAT hoạt động nhƣ một "passcard" (thẻ chuyển) cho phiên làm việc của ngƣời dùng đó và đƣợc sử dụng để kiểm tra tất cả hoạt động của ngƣời dùng.
Khi ngƣời dùng tham gia mạng truy cập một đối tƣợng, SRM kiểm tra bộ mô tả bảo mật của đối tƣợng xem SID liệt kê trong SAT có phù hợp với giá trị trong ACE không. Nếu phù hợp, các quyền về an ninh đƣợc liệt trong ACE áp dụng cho ngƣời dùng đó.
Hình 3.2 Ví dụ về danh sách an toàn (Access Control List)
3.1.6. Những nội dung chính cần nghiên cứu
Việc đảm bảo an toàn mạng ngoài việc thiết kế theo các mô hình mạng, nó còn phụ thuộc vào các tính năng an toàn của các hệ điều hành đƣợc sử dụng, mà ở đây là các hệ điều hành Microsoft. Có thể thấy rằng chỉ từ khi có sự ra đời của Windows 95 các tính năng mạng mới đƣợc chú ý. Tuy nhiên lúc này Microsoft lại chú ý nhiều hơn đến các tính năng tiện dùng hơn là các tính năng bảo mật. Chỉ với các hệ điều hành Windows NT và sau này, các tính năng bảo mật mới đƣợc quan tâm thích đáng hơn và rõ ràng, tính năng an toàn mạng tăng lên đáng kể. An ninh an toàn mạng là một vấn đề lớn và liên quan đến nhiều yếu tố. Nội dung chính cần nghiên cứu, em đề cập đến an ninh, an toàn mạng đối với các hệ điều hành của Microsoft, mà chủ yếu là hệ điều hành Windows NT thông qua các nội dung:
Đăng nhập và sử dụng dịch vụ
Phân quyền đối với thƣ mục, tệp
NTFS
3.2. Đăng nhập và sử dụng dịch vụ
Hiện nay, truy cập tới một hệ thống đƣợc thực hiện nhờ đăng nhập bắt buộc. Đây là một yêu cầu an toàn cơ bản tuân thủ theo nguyên tắc bảo mật C2. Sự nhận diện xác thực này là nền tảng của hệ an toàn. Yêu cầu an toàn thống nhất trong toàn hệ điều hành và là thể hiện đầu tiên cho ngƣời sử dụng trong quá trình đăng nhập.
Trong tiến trình đăng nhập gồm có 2 bƣớc đó là xin giấy ủy nhiệm (Credentials) và thẩm định quyền. Đầu tiên ngƣời sử dụng xin giấy ủy nhiệm bằng
cách nhập đầy đủ thông tin (tên ngƣời sử dụng, mật khẩu, tên vùng). Sau đó thông tin này đƣợc đem so sánh với thông tin về ngƣời sử dụng đã lƣu giữ trong hệ thống. Nếu chính xác thì ngƣời sử dụng đƣợc thẩm định quyền và truy nhập hệ thống. Nếu sai,
Tên:D:\TEST1-TXT Mô tả bảo mật (Security Descriptor)
Cho phép mọi User
đƣợc đọc Cho phép John Đọc,Ghi Cho phép Tim Đọc,Ghi
ngƣời sử dụng bị từ chối truy cập. Nhƣ vậy mức độ an toàn của thông tin ngƣời sử dụng và cách thức thẩm định quyền sẽ quyết định mức độ an toàn khi đăng nhập.
3.2.1. Cơ chế mật khẩu
Mặc dù các tài nguyên mạng đã đƣợc bảo vệ ở các mức khác nhau nhƣng ngay việc muốn truy nhập vào vùng hay vào một máy cụ thể nào đó của Windows NT cũng vẫn phải qua một cửa sổ là cơ chế bảo mật đăng nhập.
Khi đăng nhập Windows NT, ngƣời dùng phải khai báo tên, mật khẩu, tên vùng để tiến trình đăng nhập xác nhận đó đúng là ngƣời của vùng với các quyền hạn nhất định về tài nguyên, hệ thống và cho phép nhập vùng. Với Windows NT Server hoặc Windows NT Workstation, muốn đăng nhập ngƣời dùng phải bấm tổ hợp phím CTRL+ALT+DEL để nhận hộp thoại Logon Information và điền vào hộp thoại các dữ liệu cá nhân.
3.2.1.1 Biến đổi mật khẩu ngƣời dùng
Mật khẩu ngƣời dùng (gọi ngắn gọn là mật khẩu) trong Windows NT thƣờng có độ dài từ 3 - 14 ký tự, các ký tự đƣợc dùng trong phạm vi bảng mã ASCII.
Mật khẩu có thể đƣợc ngƣời dùng tùy chọn và khai báo với hệ thống từ lần đăng ký đầu tiên và thƣờng đi kèm với một tên ngƣời dùng (username) hay nhận dạng ngƣời dùng (userid).
Mật khẩu đƣợc hệ thống biến đổi thành một dạng khác (giá trị băm) và lƣu giá trị này để làm dữ liệu xác thực ngƣời dùng về sau. Cụ thể phép biến đổi nhƣ sau: mật khẩu gõ vào đƣợc điền thêm (nếu ít hơn 14 ký tự) các số 0 cho đủ 14 ký tự và đƣợc đổi thành mã ASCII mở rộng (mã 8 bits) rồi chia làm hai phần mỗi phần 7 ký tự 8 bit. Phần thứ nhất gồm 7x8 = 56 bits đƣợc dùng làm khoá DES mã 8 ký tự đặc biệt (do hệ thống qui định) - gọi là magic number, đƣợc một bản mã 8 ký tự. 56 bits còn lại đƣợc sử dụng làm khoá DES thứ hai cũng đem mã magic number đƣợc bản mã thứ hai và nối vào bản mã thứ nhất. Kết quả là một bản mã 16 ký tự (128bit) gọi là giá trị băm DES của mật khẩu .
Mật khẩu còn có thể đƣợc băm bằng MD4 để có một bản mã 16 ký tự (128bits) gọi là giá trị băm MD4 của mật khẩu.
Windows NT sẽ lƣu cả hai giá trị băm DES và MD4 của mật khẩu thành một giá trị băm của mật khẩu có độ dài 32 ký tự (dạng hexa) trong một cấu trúc cây phức tạp có tên là SAM (Security Account Manager). Mật khẩu xác thực trong hệ thống Windows NT, Windows 9x đƣợc mã hoá bảo mật bằng MD4 và các phiên bản mới, tốt hơn nhƣ MD5, SHA,...