Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1C¸cc¬chÕantoµnc¬b¶n
Giảng viên Trần Thị Lượng
Trang 2 Thiết kế hệ điều hành an toàn.
Chuẩn an toàn DoD.
Trang 3 2.3.3 Bảo vệ dựa vào thanh ghi (bound register)
2.3.4 Phân trang (paging)
2.3.5 Phân đoạn (segmentation)
2.4 Kiểm soát truy nhập tài nguyên
2.5 Các cơ chế kiểm soát luồng
2.6 Sự cách ly
2.7 Các chuẩn an toàn
Trang 42.4 KiÓm so¸t truy nhËp tµi nguyªn
2.5 C¸c c¬ chÕ kiÓm so¸t luång
2.6 Sù c¸ch ly
Trang 5 Hệ điều hành là một chương trình đóng vài trò
trung gian trong việc giao tiếp giữa người sử dụng
và phần cứng máy tính Mục tiêu của hệ điều hành
là cung cấp một môi trường cho phép người sử dụng phát triển và thực hiện các ứng dụng của họ một
cách dễ dàng và hiệu quả
Hệ điều hành quản lý tất cả tài nguyên hệ thống (bộ nhớ, các file, thiết bị vào/ra, bộ xử lý) và tối ưu hoá việc sử dụng tài nguyên cho các chương trình ứng
dụng khác nhau.
Trang 7 Phần cứng: bao gồm CPU, bộ nhớ, các thiết bị nhập xuất (là các tài nguyên của máy tính).
Ch ơng trình cơ sở (phần mềm hệ thống): đây là phần mềm hệ thống trong ROM đ ợc nạp cố định trong bộ nhớ – không thể thay đổi đ ợc.
Ch ơng trình dịch hợp ngữ ư(assembler)
Hệ điều hành (OS) : ưđiều khiển và phối hợp việc sử
dụng phần cứng cho những ứng dụng khỏc nhau của nhiều người dùng khỏc nhau.
Các ứng dụng
Trang 8 Đảm bảo tối đa hiệu năng sử tài nguyên hệ thống
Quản lý tài nguyên
OS cấp phát các tài nguyên hệ thống nh : bộ nhớ, file, thiết bị vào/ra cho ứng dụng
OS giải quyết vấn đề xung đột giữa các tiến trình
Trang 10 Các chức năng chính của hệ điều hành:
Giám sát:
OS t ơng tác trực tiếp với các ch ơng trình ứng dụng
sử dụng trái phép tài nguyên hệ thống
Nhận xột: Hệ điều hành không ngừng phát triển từ một ch
ơng trình đơn giản đến các hệ thống phức tạp, hỗ trợ kiến trúc đa nhiệm, đa xử lý, phân tán và xử lý thời gian thực
Trang 11 KiÓm so¸t truy nhËp vµo tµi nguyªn
KiÓm so¸t luång
KiÓm to¸n
Trang 132.4 KiÓm so¸t truy nhËp tµi nguyªn
2.5 C¸c c¬ chÕ kiÓm so¸t luång
2.6 Sù c¸ch ly
2.7 C¸c chuÈn an toµn
Trang 14 Yêu cầu đối với một hệ thống an toàn là phải nhận dạng chính xác ng ời sử dụng, do đó ta tìm hiểu
xem chức năng an toàn nhận dạng/xác thực ng ời
dùng của OS thực hiện nh thế nào.
Xỏc thực là một trong ba yờu cầu bảo vệ: 3A (Authentication – Authorization – Authentication).
Trang 15 Các hệ thống xác thực dựa vào thông tin ng ời dùng biết
Các hệ thống dựa vào mật khẩu
Các hệ thống dựa vào hỏi đáp
Xác thực dựa vào thẻ từ
Các hệ thống xác thực dựa vào đặc điểm của ng ời dùng
Các hệ thống nhận dạng qua ảnh
Các hệ thống nhận dạng qua vân tay
Nhận dạng qua đặc tr ng của chữ ký viết tay
Các hệ thống nhận dạng qua tiếng nói
Các hệ thống nhận dạng qua đặc điểm võng mạc
Trang 162.2.1.ưCácưhệưthốngưxácưthựcưdựaưvàoưthôngư tinưngườiưdùngưbiết
Các hệ thống dựa vào mật khẩu : Ng ời dùng đ ợc nhận dạng thông qua một chuỗi ký tự bí mật (mật khẩu), chỉ
có ng ời dùng và hệ thống biết
Các hệ thống dựa vào hỏi đáp : Ng ời dùng đ ợc nhận dạng, thông qua việc trả lời một tập hợp các câu hỏi
mà hệ thống đặt ra Các câu hỏi đ ợc đặt riêng cho từng
ng ời dùng và chủ yếu dựa vào các hàm toán học Hệ thống sẽ tính toán các hàm này sau khi nhận đ ợc các giá trị đ a vào từ ng ời dùng và so sánh kết quả với nhau
Trang 172.2.1.ưCácưhệưthốngưxácưthựcưdựaưvàoưthôngư tinưngườiưdùngưbiết
Các hệ thống dựa vào hỏi đáp:ưCác hàm mẫu nh sau:
Các hàm đa thức: (ví dụ, f(x) = x3+ x2- x + 4): giá trị của
biến x do hệ thống cung cấp, người dựng tớnh f(x) và gửi
cho hệ thống
Các hàm dựa vào việc biến đổi chuỗi ký tự: ví dụ,
f(a1a2a3a4a5) = a4a3a5a2a1 Khi đó ng ời dùng phải gửi lại kết quả biến đổi chuỗi ký tự cho hệ thống
Các hàm dựa vào các thuật toán mật mã đơn giản: ví dụ
f(E(x)) = E(D(E(x))2) Hệ thống cung cấp cho ng ời dùng giá trị đã mã hóa E(x), ng ời dùng phải giải mã D(E(x)) sau
đó tính hàm bình ph ơng [D(E(x))]2, cuối cùng mã hóa giá trị này E(D(E(x))2) Sau đó ng ời dùng gửi kết quả này tới
Trang 182.2.1.ưCácưhệưthốngưxácưthựcưdựaưvàoưthôngư tinưngườiưdùngưbiết
Các hệ thống xác thực hai lần – bắt tay : hệ
thống tự giới thiệu mình với ng ời dùng, còn ng ời dùng tự xác thực ng ợc trở lại hệ thống
Xác thực hệ thống dựa vào các thông tin chỉ có ng
ời dùng biết (ví dụ, ngày, giờ và đoạn ch ơng trình của phiên làm việc cuối).
Xác thực ng ời dùng dựa vào mật khẩu
Trang 19điểmưcủaưngườiưdùng
Các hệ thống nhận dạng qua ảnh
Các hệ thống nhận dạng qua vân tay
Nhận dạng qua đặc tr ng của chữ ký viết tay
Các hệ thống nhận dạng qua tiếng nói
Các hệ thống nhận dạng qua đặc điểm võng mạc
Trang 20Tổng quan về các phương pháp xác thực
What you know: password, PIN
What you have: Key, ID Card
Who you are: Fingerpint, Voice,
Face, Retinal
Trang 21Tổng quan về các phương pháp xác thực
Các phương pháp xác thực:
Xác thực dựa trên User Name và Password
Challenge Handshake Authentication Protocol (CHAP)
Kerberos
Tokens (Thẻ)
Biometrics (Sinh trắc học)
Multi-Factor Authentication (Xác thực đa nhân tố)
Mutual Authentication (Xác thực lẫn nhau)
Trang 22Tổng quan về các phương pháp xác thực
Xác thực dựa trên User Name và Password
Sự kết hợp của một user name và password là cách xác thực
Trang 23Tổng quan về các phương pháp xác thực
Xác thực bằng phương thức CHAP:
(CHAP) cũng là mô hình xác thực dựa trên username/password.
Khi user cố gắng log on, server đảm nhiệm vai trò xác thực sẽ gửi một thông điệp thử thách (challenge message) trở lại máy tính
authenticated Mật khẩu sẽ được mã hóa dưới dạng băm.
Thường được sử dụng khi User logon vào các remote servers của công ty.
Trang 24Tổng quan về các phương pháp xác thực
Xác thực Kerberos:
Dùng một Server trung tâm để kiểm tra việc xác thực
user và cấp phát vé thông hành (service tickets) để User
có thể truy cập vào tài nguyên
Kerberos là một phương thức rất an toàn trong
authentication bởi vì dùng cấp độ mã hóa rất mạnh
Kerberos cũng dựa trên độ chính xác của thời gian xác
thực giữa Server và Client Computer
Kerberos là nền tảng xác thực chính của nhiều OS như
Unix, Windows
Trang 25 Các thông tin trên token chỉ có thể được đọc và xử lý bởi các thiết
bị chuyên dụng, ví dụ như thẻ smart card được đọc bởi đầu đọc smart card gắn trên Computer, sau đó thông tin này được gửi đến Server xác thực
Tokens chứa chuỗi text hoặc giá trị số duy nhất thông thương mỗi giá trị này chỉ sử dụng một lần.
Trang 26Tổng quan về các phương pháp xác thực
Tokens:
Ví dụ về Smart Cards (Thẻ thông minh)
Smart cards là ví dụ điển hình về xác thực dựa vào
tokens Một smart card là một thẻ nhựa có gắn một chip máy tính lưu trữ các loại thông tin điện tử khác nhau Nội dung thông tin của card được đọc với một thiết bị đặc biệt
Trang 27Tổng quan về các phương pháp xác thực
Biometrics (Sinh trắc học):
Là mô hình xác thực dựa trên đặc điểm sinh học của từng cá nhân, như: Quét dấu vân tay (fingerprint
scanner), quét võng mạc mắt (retinal scanner), nhận
dạng giọng nói(voice-recognition), nhận dạng khuôn mặt
Vì nhận dạng sinh trắc học hiện rất tốn kém chi phí khi triển khai nên không được chấp nhận rộng rãi như các phương thức xác thực khác
Trang 28Tổng quan về các phương pháp xác thực
Trang 29Tổng quan về các phương pháp xác thực
Trang 30Tổng quan về các phương pháp xác thực
Multi-Factor Authentication
Xác thực nhiều nhân tố dựa trên nhiều nhân tố kết hợp,
là mô hình xác thực yêu cầu kiểm tra ít nhất 2 nhân tố xác thực.Có thể đó là sự kết hợp của bất cứ nhân tố nào
ví dụ như: bạn là ai, bạn có gì chứng minh, và bạn biết gì?
Ví dụ: về một Multi-Factor Authentication:
Cần phải đưa thẽ nhận dạng vào đầu đọc và cho biết tiếp password là gì
Trang 31không hay là một cái bẫy của hacker giăng ra, và ngược lại Server này sẽ kiểm tra lại bạn…
Trang 32Giới thiệu cơ chế xác thực trong Oracle
Trang 33 Mật khẩu là một chuỗi ký tự bí mật (số hoặc chữ), chỉ có
ng ời dùng và hệ thống biết, do đó hệ thống có khả năng nhận dạng duy nhất ng ời dùng dựa vào việc xác nhận tính hợp lệ của mật khẩu
Các tiêu chuẩn đối với mật khẩu 'bí mật' là:
Sử dụng ít nhất 6 ký tự, nên sử dụng các mật khẩu dài
Sử dụng cả số và chữ
Sử dụng cả chữ th ờng và chữ in hoa
Sử dụng các ký hiệu bàn phím đặc biệt (ví dụ, &,@ và %)
Chọn các từ n ớc ngoài
Trang 34 Mật khẩu đ ợc l u trong một file do OS quản lý
=> Các modul trong OS đều có thể truy nhập đ
ợc file mật khẩu.
Giải pháp: mã hóa mật khẩu bằng các thuật
toán mã hóa, sau đó l u vào file mật khẩu.
=> mật khẩu sau khi mã hóa cũng giống
nhau…
Trang 35Kü thuËt salt (UNIX)
Mét salt lµ mét sè 12 bit ® îc thªm vµo mËt khÈu
salt lµ duy nhÊt víi mét tiÕn tr×nh?
MËt khÈu
MËt khÈu m· hãa Salt File mËt
khÈu
DES
Salt
Trang 36Kü thuËt salt (UNIX)
X¸c thùc mËt khÈu cña ng êi dïng
Trang 372.4 KiÓm so¸t truy nhËp tµi nguyªn
2.5 C¸c c¬ chÕ kiÓm so¸t luång
2.6 Sù c¸ch ly
2.7 C¸c chuÈn an toµn
Trang 382.3 Bảo vệ bộ nhớ
Bộ nhớ chính là thiết bị l u trữ duy nhất thông qua đó, CPU có thể trao đổi thông tin với môi tr ờng bên ngoài
Bộ nhớ chính đ ợc tổ chức nh một mảng một chiều các từ nhớ (word), mỗi từ nhớ có một địa chỉ
C ỏc OS cho phộp đa nhiệm để nõng cao hiệu suất C PU=> nảy sinh nhu cầu chia sẻ bộ nhớ giữa cỏc tiến trỡnh.
Vấn đề: Bộ nhớ thỡ hữu hạn cũn cỏc yờu cầu bộ nhớ
Trang 392.3 B¶o vÖ bé nhí
OS chịu trách nhiệm cấp phát vùng nhớ cho các tiến trình yêu cầu, OS phải xét đến:
Sự tương ứng giữa địa chỉ logic và địa chỉ vật lý: làm sao
để chuyển đổi một đ/c tượng trưng sang đ/c thực?
Quản lý bộ nhớ vật lý: làm sao để mở rộng bộ nhớ có sẵn nhằm lưu trữ được nhiều tiến trình đồng thời?
Chia sẻ thông tin: làm thế nào để cho phép 2 tiến trình chia sẻ thông tin trong bộ nhớ?
Bảo vệ: làm thế nào để ngăn chặn các tiến trình xâm phạm đến vùng nhớ được cấp phát cho các tiến trình khác?
Trang 43 Không gian vật lý: là tập hợp tất cả các địa chỉ vật lý t
ơng ứng với các địa chỉ ảo.
MMU (Memory Management Unit): là một cơ chế
phần cứng để chuyển đổi địa chỉ ảo thành địa chỉ vật
Trang 442.3.1 Địa chỉ rào
Địa chỉ rào: đánh dấu ranh giới giữa vùng nhớ dành
cho hệ điều hành và vùng nhớ cho tiến trình ng ời
hành
Trang 45HÖ ®iÒu hµnh
FA
Trang 462.3.1 Địa chỉ rào
Nhận xột: Giá trị của địa chỉ rào có thể đ ợc l u trong một thanh ghi rào Khi đó, giá trị rào có thể
thay đổi động tuỳ thuộc vào sự thay đổi của kích
cỡ OS, đồng thời OS sẽ l u giá trị mới của địa chỉ rào vào trong thanh ghi Các địa chỉ trong ch ơng trình ng ời dùng đ ợc so sánh với giá trị l u trong thanh ghi rào xem có hợp lệ hay không
Trang 472.3.1 §Þa chØ rµo
Ưu, nhược điểm của địa chỉ rào?
Trang 482.3.1 §Þa chØ rµo
¦u ®iÓm: b¶o vÖ ® îc vïng nhí cña hÖ ®iÒu hµnh tr¸nh khái sù can thiÖp cña c¸c tiÕn tr×nh ng êi dïng.
Trang 502.3.2 Tái định vị
Nhắc lại:
Hệ thống đa ch ơng với phần vùng cố định : bộ nhớ đ ợc chia thành n phân vùng (chú ý là phân
vùng vật lý) với kích th ớc cố định (các phân vùng
có thể có kích th ớc bằng nhau hoặc khác nhau) Các tiến trình có yêu cầu bộ nhớ sẽ đ ợc đặt trong hàng đợi, có hai cách tiếp cận để tổ chức hàng đợi:
Trang 522.3.2 Tái định vị
Hệ thống đa ch ơng với phần vùng cố định :
Nhiều hàng đợi: Mỗi phân vùng có một hàng đợi t ơng ứng, một tiến trình sinh ra sẽ đ ợc đặt vào trong hàng đợi của phân vùng có kích th ớc nhỏ nhất nh ng vẫn thỏa
mẵn nhu cầu chứa tiến trình đó
=> Nh ợc điểm: Có hàng đợi thì trống, hàng đợi thì đầy khiến nhiều tiến trình phải chờ đợi để cấp phát bộ nhớ
Một hàng đợi: Tất cả các tiến trình đ ợc đặt trong một hàng đợi duy nhất, khi có một phân vùng tự do (tự do hoàn toàn cả phân vùng) thì tiến trình đầu tiên trong
Trang 53phân mảnh nội vi (internal fragement).
Mức độ đa ch ơng của hệ thống sẽ bị giới hạn bởi số l ợng phân vùng
Khi cho phép sự đa ch ơng, cần giải quyết 2 vấn đề:
Trang 542.3.2 Tái định vị
2 vấn đề đú là
Tái định vị (relocation)
Bảo vệ ưcác tiến trình: Khi cho phép sự đa ch ơng,
có nhiều tiến trình đồng thời trong bộ nhớ, do đó cần phải bảo vệ các tiến trình khỏi sự xâm phạm
lẫn nhau (Vì lúc này, một tiến trình có thể tạo ra các chỉ thị truy xuất đến một địa chỉ bất kỳ trong
bộ nhớ => truy xuất đến dữ liệu của tiến trình khác, nếu nh không có ph ơng pháp bảo vệ).
Trang 552.3.2 Tái định vị
Trang 562.3.2 Tái định vị
Địa chỉ trong ch ơng trình nguồn là địa chỉ logic, muốn chạy ch ơng trình phải biờn dịch v nạp ch ơng à nạp chương trình vào bộ nhớ => phải chuyển đổi địa chỉ.
Tái định vị = chuyển đổi đ/c logic -> đ/c vật lý
Ví dụ, nếu ch ơng trình truy xuất đến địa chỉ 100 (địa chỉ logic), và ch ơng trình đ ợc nạp vào phân vùng 1
có địa chỉ vật lý bắt đầu là 100K, thì địa chỉ truy xuất thực sự là 100K+100 = địa chỉ vật lý.
Trỡnh liờn kết (linker) phải thực hiện nhiệm vụ tỏi định vị
Trang 572.3.2 Tái định vị
Nh vậy, thực chất tái định vị là việc chuyển
đổi từ địa chỉ logic của ch ơng trình sang địa chỉ vật lý, còn gọi là Sự kết buộc ư địa chỉ.
Giả thiết rằng K là giá trị rào, khi đó địa chỉ vật lý của một ch ơng trình sẽ đ ợc tính bằng cách cộng K với địa chỉ logic của ch ơng
trình đó.
Trang 582.3.2 Tái định vị
Tái định vị có thể thực hiện trong:
Thời điểm biên dịch
Thời điểm nạp
Thời điểm xử lý
Trang 592.3.2 Tái định vị
Thời điểm biên dịch:
Nếu tại thời điểm biên dịch, có thể biết vị trí mà ch ơng trình
sẽ th ờng trú trong bộ nhớ (ví dụ ch ơng trình sẽ có địa chỉ bắt
đầu trong bộ nhớ chính là K1 - địa chỉ rào), thì trình biên dịch có thể phát sinh ngay mã lệnh thực thi với các địa chỉ tuyệt đối Trong suốt quá trình biên dịch, địa chỉ trong ch ơng trình là các địa chỉ tuyệt đối = địa chỉ t ơng đối + K1 Sau đú chương trỡnh nạp, sẽ nạp mó lệnh thực thi này vào vựng nhớ bắt đầu từ K1.
Nếu về sau có sự thay đổi vị trí th ờng trú lúc đầu của ch ơng trình (K1 thay đổi), cần phải biên dịch lại ch ơng trình
Trang 602.3.2 Tái định vị
Thời điểm nạp: Nếu trong quá trình biên dịch ch a biết
vị trí th ờng trú của ch ơng trình trong bộ nhớ, thì trình biên dịch sẽ sinh ra mã lệnh thực thi t ơng đối ( object code ) chứa các địa chỉ t ơng đối Khi nạp ch ơng trình vào bộ nhớ, những địa chỉ t ơng đối đó sẽ đ ợc chuyển thành các địa chỉ tuyệt đối trong bộ nhớ Đây đ ợc gọi
là “tái định vị tĩnh” Khi có sự thay đổi vị trí l u trữ
tiến trình trong bộ nhớ, chỉ cần nạp lại mà không cần biên dịch lại ch ơng trình.
Trang 61định vị động”.
Trang 622.3.2 Tái định vị
Chú ý:
Tái định vị tĩnh: có nghĩa là việc chuyển đổi địa chỉ đ
ợc diễn ra khi biên dịch hoặc khi nạp ch ơng trình vào
bộ nhớ
Tỏi định vị động:ưcó nghĩa là việc chuyển đổi địa chỉ
diễn ra khi chạy ch ơng trình
Nếu K là địa chỉ rào (địa chỉ bắt đầu của ch ơng trình trong bộ nhớ chính) thì tái định vị động cho phép K
biến đổi trong suốt thời gian chạy ch ơng trình, còn tái
định vị tĩnh K là cố định trong suốt thời gian chạy ch
Trang 632.3.2 Tái định vị
Vớ dụ về tỏi định vị động:
PA FA
Địa chỉ vật
lý (PA)
Thanh ghi rào
Địa chỉ logic (LA)
Hệ điều hành
FA = K
CPU
Trang 642.3.2 Tái định vị
Nh vậy, thanh ghi rào giúp bảo vệ vùng nhớ của hệ điều hành
Thanh ghi rào giúp tái định vị ch ơng trình
Vấn đề: ch a bảo vệ đ ợc vùng nhớ của tiến trình ng ời dùng?