1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về cơ chế sác thực PAM trên Linux

27 521 15

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 87,21 KB

Nội dung

Linux là một máy chủ, có thể cung cấp một số dịch vụ khác nhau (ví dụ: web, ftp với các khu vực bị hạn chế bởi kiểm soát mật khẩu). Thông qua việc sử dụng các module, PAM có thể cho phép một chương trình tìm kiếm thông qua một số cơ sở dữ liệu mật khẩu khác nhau, ngay cả khi chương trình đó không được mã hóa rõ ràng cho cơ sở dữ liệu cụ thể đó

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN

Đề tài :

TÌM HIỂU CÁC CƠ CHẾ XÁC THỰC TRÊN HỆ ĐIỀU HÀNH LINUX

Giáo viên hướng dẫn:

cô Nguyễn Thị Hồng Hà

Danh sách thành viên trong nhóm:

1 Phạm Văn Đạt

2 Nguyễn Anh Huy

3 Nguyễn Thị Mai Huyên

4 Trần Tấn Lực

Trang 2

MỤC LỤC

Trang 3

CHƯƠNG 1: HỆ ĐIỀU HÀNH LINUX

1.1. Khái niệm về Linux

Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của

hệ điều hành Nó có lẽ là một ví dụ nổi tiếng nhất của phần mềm tự do và của việcphát triển mã nguồn mở

Một cách chính xác, thuật ngữ "Linux" được sử dụng để chỉ Nhân Linux (Linux kernel) là hạt nhân của Linux, được lập trình bằng ngôn ngữ C vàđược Linus Torvalds phát triển, mô phỏng lại hạt nhân Unix Linux là một trongnhững ví dụ điển hình của phần mềm mở và miễn phí nhưng tên này được sửdụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành tương tự Unix (cònđược biết đến dưới tên GNU/Linux) được tạo ra bởi việc đóng gói nhân Linuxcùng với các thư viện và công cụ GNU, cũng như là các bản phân phối Linux.Thực tế thì đó là tập hợp một số lượng lớn các phần mềm như máy chủ web,các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trườngdesktop như GNOME và KDE, và các ứng dụng thích hợp cho công việc vănphòng như OpenOffice, LibreOffice

-1.2. Lịch sử ra đời

Vào năm 1991 trong khi đang học tại University of Helsinki, Torvalds bắtđầu có ý tưởng về một hệ điều hành, hơn nữa ông cũng nhận thấy hạn chế tronggiấy phép của MINIX Nó chỉ cho phép việc sử dụng MINIX trong giáo dục màthôi Ông bắt đầu viết nên hệ điều hành riêng của mình

Torvalds phát triển Linux kernel trên môi trường MINIX, các ứng dụng viếtcho MINIX có thể sử dụng trên Linux Sau đó khi Linux đã "trưởng thành" thì việcphát triển Linux diễn ra ngay trên hệ thống Linux Các ứng dụng GNU cũng thaythế các thành phần của MINIX, do các lợi ích sử dụng mã nguồn có sẵn một cách

tự do từ dự án GNU với một hệ điều hành còn "non nớt"

Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn

là một sinh viên của Đại học Helsinki tại Phần Lan Ông làm việc một cách hăng

Trang 4

say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994 Bộphận chủ yếu này được phát triển và tung ra trên thị trường dưới bản quyền GNUGeneral Public License Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn củaLinux.

Khởi đầu, Linux được phát triển cho dòng vi xử lý 386, hiện tại hệ điều hànhnày hỗ trợ một số lượng lớn các kiến trúc vi xử lý, và được sử dụng trong nhiềuứng dụng khác nhau từ máy tính cá nhân cho tới các siêu máy tính và các thiết bịnhúng ví dụ như các máy điện thoại di động

Ban đầu, Linux được phát triển và sử dụng bởi những người say mê Tuynhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớnnhư IBM và Hewlett-Packard, đồng thời nó cũng bắt kịp được các phiênbản Unix độc quyền và thậm chí là một thách thức đối với sự thống trịcủa Microsoft Windows trong một số lĩnh vực Sở dĩ Linux đạt được những thànhcông một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thốngkhác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độcquyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh với Windows) cũngnhư là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp Một đặctính nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm nguồn

mở hiệu quả

Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rấtkhiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windowsnhiều hơn là Linux Nhưng trong tương lai số lượng phần cứng được hỗ trợ choLinux sẽ tăng lên

1.3. Ưu nhược điểm của Linux.

1.3.1 Ưu điểm.

Bản quyền và chi phí

Linux được phát triển "free" cho người sử dụng và dựa trên nền tảng mãnguồn mở - open source trong khi Windows bản quyền và bộ Office bản quyền sẽ

Trang 5

Nam luôn ở mức cao Và đương nhiên việc dùng lậu thì sẽ đi kèm những bất tiệncủa nó chưa kể vấn đề về nguyên tắc làm việc.

Sử dụng Linux bạn sẽ được sử dụng miễn phí tất cả các tính năng kèm bộứng dụng văn phòng miễn phí mà không phải lo lắng gì về vấn đề bản quyền

Bảo mật

Như đã nói ở trên, viếc phát tán virus qua Windows là không thể tránh khỏi

và nó lây lan rất nhanh trong khi dùng Linux bạn chỉ việc nhấn xóa mỗi lần thấy 1con virus nào đó xuất hiện là xong

Linh hoạt

Đối với Linux, nếu bạn có hiểu biết về nó nhiều một chút thì có thể tự thựchiện các tùy chỉnh theo ý mình Tuy nhiên, điều này không xảy ra với Windows,bạn sẽ cần phải được Windows thông qua mỗi lần muốn chỉnh sửa gì đó Ngoài ra,nền tảng này cũng tương thích với rất nhiều các môi trường khác nhau, do đó, rất

lý tưởng cho các lập trình viên và developer

Chạy ổn định cả trên các máy tính cấu hình yếu

Một phiền toái mà hẳn người dùng Windows nào cũng thấy quen thuộc đó là

cứ mỗi khi Windows ra mắt một bản nâng cấp thì người dùng cũng phải nâng cấpcấu hình theo nếu máy không đáp ứng được phiên bản mới đó Và nếu không nângcấp thì chỉ có thể mãi mãi dùng phiên bản cũ mà thôi và rất nhanh sẽ bị Windowscho vào quên lãng

Việc vẫn chạy mượt mà, độ ổn định cao trên các máy có cấu hình thấp vàđược nâng cấp, hỗ trợ thường xuyên từ nhà phát hành có lẽ là một ưu điểm đượcngười ưa chuộng Linux đánh giá cao hơn Windows

Trang 6

Tuy nhiên, Linux không thể tránh khỏi vẫn tồn tại những nhược điểm khiếncho Windows tiếp tục mở rộng sự thống trị của mình.

1.3.2 Nhược điểm

• Số lượng ứng dụng hỗ trợ vẫn còn rất hạn chế

• Một số nhà sản xuất không phát triển driver hỗ trợ nền tảng Linux

• Mất thời gian để làm quen, đặc biệt là khi chuyển từ Windows sang sửdụng Linux thì sẽ cần thời giàn để thích nghi từ đầu

• Nếu bạn cần những lý do cụ thể và thuyết phục để quyết định việc có

sử dụng hệ điều hành Linux hay không, hay có nên chuyển từWindows sang Linux không thì trên đây là những phân tích chi tiết đểgiúp bạn hiểu hơn về vấn đề bạn đang băn khoăn Còn lại thì quyếtđịnh là ở bạn và tùy thuộc vào mục tiêu sử dụng của bạn

Trang 7

CHƯƠNG 2: TỔNG QUAN VỀ XÁC THỰC 2.1 Các khái niệm và ý nghĩa của xác thực.

Xác thực (tiếng Anh: Authentication - xuất phát từ Authentic có nghĩa là

“thật”, “thực”,“đích thực” hoặc “chính cống”) là một hành động nhằm xác lập hoặcchứng thực một người nào đó (hay một cái gì đó) đáng tin cậy, có nghĩa là nhữnglời khai báo do người đó đưa ra hoặc về cái đó là sự thật

Xác thực một đối tượng còn có nghĩa là công nhận nguồn gốc của đối tượng,trong khi, xác thực một người thường bao gồm việc thẩm tra nhận dạng của họ

Trong an toàn thông tin máy tính xác thực là một quy trình nhằm xác minhnhận dạng số (digital identity) của bên gửi thông tin (sender) trong liên lạc trao đổi

xử lý thông tin chẳng hạn như một yêu cầu đăng nhập Bên gửi cần phải xác thực

có thể là một người sử dụng máy tính, bản thân một máy tính hoặc một phần mềm

Việc xác thực thường phụ thuộc vào một hoặc nhiều yếu tố xác thực(authentication factor) để minh chứng cụ thể

Xác thực là khâu đặc biệt quan trọng để bảo đảm an toàn cho hoạt động của

hệ thống thông tin dạng như hệ thống ngân hàng điện tử

Hệ thống luôn luôn trước tiên xác thực một thực thể khi nó cố thử thiết lậpliên lạc Khi đó nét nhận dạng của thực thể được dùng để xác định sự truy nhập của

nó như một đặc quyền hoặc để đạt được sự sẵn sàng phục vụ

- Những cái người sử dụng có, chẳng hạn như chứng minh thư, chứngchỉ an ninh (security token), chứng chỉ phần mềm (software token)hoặc điện thoại di động

Trang 8

- Những gì người sử dụng biết, chẳng hạn như mật khẩu (password),mật ngữ (pass phrase) hoặc mã số định danh cá nhân (personalidentification number - PIN)…

2.3. Các phương pháp xác thực

2.3.1. Dựa trên định danh và mật khẩu.

Xác thực dựa trên User Name (định danh người sử dụng) và Password (mậtkhẩu): Sự kết hợp của một cặp username và password có thể nói là cách xác thực

cơ bản nhất (và cũng phổ biến nhất) Với phương thức xác thực này, thông tin cặpusername và password nhập vào được đối chiếu với dữ liệu lưu trữ trên hệ thống,nếu trùng khớp username và password, thì người sử dụng (User) được xác thực cònnếu không người sử dụng bị từ chối hoặc cấm truy cập

Nói chung phương thức xác thực này có tính bảo mật không cao lắm vìnhững lý do như thường thì thông tin cặp username và password nhập vào đượcgửi đi xác thực trong tình trạng plain text (ký tự văn bản thuần), tức không được

mã hóa và có thể bị chặn bắt trên đường truyền, thậm chí ngay trong quá trình nhậpvào; lộ password do đặt quá đơn giản (dạng ‘123456’, ‘abc123’ v.v.) hoặc dễ đoán(tên / ngày sinh của người thân )

2.3.2. Dựa trên giao thức thách thức, đáp ứng.

Giao thức xác thực bắt tay có thử thách - Challenge HandshakeAuthentication Protocol (CHAP): Challenge Handshake Authentication Protocol(CHAP) cũng là mô hình xác thực dựa trên username/password Khi User cố gắngđăng nhập (log on), máy chủ (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 User Lúc này máy tính User sẽphản hồi lại username và password được mã hóa Server xác thực sẽ so sánh phiênbản xác thực User được lưu giữ với phiên bản mã hóa vừa nhận, nếu trùng khớp thìUser sẽ được xác thực Bản thân password không bao giờ được gửi qua mạng

Phương thức CHAP thường được sử dụng khi User đăng nhập vào các máychủ ở xa (remote server) của hệ thống, chẳng hạn như RAS server Dữ liệu chứa

Trang 9

password được mã hóa đôi khi được gọi là hash password (mật khẩu băm) theo têncủa phương pháp mã hoá dùng các hàm băm.

2.3.3. Dựa trên giao thức xác thực Kerberos

Xác thực Kerberos: Kerberos là nền tảng xác thực chính của nhiều hệ điềuhành như UNIX, Windows 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 thẻ thông hành (service ticket) để User cóthể truy cập vào tài nguyên hệ thống

Xác thực Kerberos là một phương thức có tính an toàn khá cao nhờ việcdù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, do đó cần phải đảm bảo kết nối đồng bộ thời gian giữa các thành phần nàycủa hệ thống

2.3.4. Dựa trên nhận dạng nhân trắc học.

Xác thực áp dụng các phương pháp nhận dạng sinh trắc học (Biometrics):Đây là mô hình xác thực có tính bảo mật cao dựa trên đặc điểm sinh học của từng

cá nhân trong đó có sử dụng các thủ tục 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ậndạng khuôn mặt (face recognition)

Nhờ các tiến bộ vượt bậc của công nghệ sinh học phương thức xác thực dựatrên nhận dạng sinh trắc học ngày càng trở nên phổ biến và được chấp nhận rộngrãi Ví dụ xác thực quét dấu vân tay hiện đã khá phổ biến trên các máy tính xáchtay, thậm chí trên điện thoại di động

2.3.5. Dựa trên token.

Xác thực sử dụng token (biểu trưng kỹ thuật số): Token là phương tiện vật lýnhư các thẻ thông minh (smart card), thẻ đeo của nhân viên (ID badge) chứa thôngtin xác thực hoặc bộ tạo OTP (One Time Password - mật khẩu dùng một lần)

Tokens có thể lưu trữ mã số nhận dạng cá nhân (PIN), thông tin về user, lưugiữ hoặc tạo ra password

Trang 10

Các thông tin trên token chỉ có thể được đọc / xử lý bởi các thiết bị / hệthống đặc dụng Chẳng hạn như thẻ thông minh được đọc bởi đầu đọc thẻ smartcard chuyên dụng, OTP được xử lý bởi hệ thống xác thực sử dụng yếu tố xác thựcthứ hai là mật khẩu dùng một lần.

2.4. Một số phương thức xác thực

LDAP:

LDAP là chữ viết tắt của Lightweight Directory Access Protocol LDAP pháttriển dựa trên chuẩn X500 Đây là chuẩn cho dịch vụ thư mục (Directory Service -DS) chạy trên nền tảng OSI

LDAP được coi là lightweight vì LDAP sử dụng gói tin overhead thấp, đượcxác định chính xác trên lớp TCP của danh sách giao thức TCP/IP (các dịch vụhướng kết nối) còn X500 là heavyweight vì là lớp giao thức ứng dụng, chứa nhiềuheader hơn (các header của các layer tầng thấp hơn)

Hình trên là sự tương quan giữa 2 mô hình là x.500 (mô hình OSI) với môhình LDAP (mô hình TCP/IP)

LDAP chỉ là giao thức, không hỗ trợ xử lý như cơ sở dữ liệu Mà nó cần mộtnơi lưu trữ backend và xử lý dữ liệu tại đó Vì vậy mà LDAP client kết nối tớiLDAP server theo mô hình sau.

Trang 11

LDAP là giao thức truy cập vì vậy nó theo mô hình dạng cây (DirectoryInformation Tree) LDAP là giao thức truy cập dạng client/server.

Kerneros

Kerberos là một giao thức mật mã dùng để xác thực trong các mạng máytính hoạt động trên những đường truyền không an toàn Giao thức Kerberos có khảnăng chống lại việc nghe lén hay gửi lại các gói tin cũ và đảm bảo tính toànvẹn của dữ liệu Mục tiêu khi thiết kế giao thức này là nhằm vào mô hình máy chủ-máy khách (client-server) và đảm bảo nhận thực cho cả hai chiều

Giao thức được xây dựng dựa trên mật mã hóa khóa đối xứng và cần đếnmột bên thứ ba mà cả hai phía tham gia giao dịch tin tưởng

Trang 12

Kerberos được thiết kế dựa trên giao thức Needham-Schroeder Kerberos sửdụng một bên thứ ba tham gia vào quá trình nhận thực gọi là "trung tâm phân phối

khóa" (tiếng Anh: key distribution center - KDC) KDC bao gồm hai chức năng:

"máy chủ xác thực" (authentication server - AS) và "máy chủ cung cấp vé" (ticket granting server - TGS) "Vé" trong hệ thống Kerberos chính là các chứng thực

chứng minh tính hợp lệ của người sử dụng

Mỗi người sử dụng (cả máy chủ và máy khách) trong hệ thống chia sẻ mộtkhóa chung với máy chủ Kerberos Việc sở hữu thông tin về khóa chính là bằngchứng để chứng minh tính hợp lệ của một người sử dụng Trong mỗi giao dịch giữahai người sử dụng trong hệ thống, máy chủ Kerberos sẽ tạo ra một khóaphiên dùng cho phiên giao dịch đó

SASL

SASL là 1 framework cho việc cung cấp 2 dịch vụ cho các protocol (giaothức) hướng kết nối (TCP là 1 trong số đó):

- Authentication (xác thực)

- Security layer ( tầng bảo mật)

Khi một giao thức đã hỗ trợ SASL, bạn không cần phải code thêm để xácthực người dùng ( cơ bản nhất là sử dụng 1 cặp username/password) mà chỉ việc

“đá quả bóng trách nhiệm” sang cho SASL ( có thể là 1 thư viện hay 1 daemon),SASL sẽ thực hiện công việc xác thực người dùng theo cách bạn đã chọn, đồngthời cũng cung cấp các tính năng security như khả năng đảm bảo dữ liệu khi truyềnđược nguyên vẹn và bí mật

SSH

SSH, hoặc được gọi là Secure Shell, là một giao thức điều khiển từ xa cho

Trang 13

tạo ra nhằm thay thế cho trình Telnet vốn không có mã hóa và sử dụng kỹ thuậtcryptographic để đảm bảo tất cả giao tiếp gửi tới và gửi từ server từ xa diễn ratrong tình trạng mã hóa Nó cung cấp thuật toán để chứng thực người dùng từ xa,chuyển input từ client tới host, và relay kết quả trả về tới khách hàng.

Để hiểu SSH là gì thì trước tiên bạn cần phải biết nó hoạt động như thế nào.Nếu bạn đang sử dụng Linux hoặc Mac, sử dụng SSH rất đơn giản Nếu bạn sửdụng Windows, bạn chỉ cần sử dụng những SSH client để mở kết nối SSH Nhữngtrình SSH client phổ biến là Putty

Trang 14

CHƯƠNG 3: XÁC THỰC PAM TRÊN LINUX

3.1 Khái niệm về PAM

PAM (Pluggable Authentication Modules) là một bộ các thư viện chia sẻ chophép người quản trị hệ thống cục bộ chọn cách các ứng dụng xác thực người dùng

Chức năng của (các) tệp cấu hình là cung cấp ánh xạ từ tên dịch vụ của ứngdụng tới một tập hợp các module cung cấp dịch vụ xác thực cho ứng dụng thô Khimột ứng dụng nhận biết pam với một tập tin trong /etc/pam.d bắt đầu, thư việnPAM nạp cấu hình cho dịch vụ được chỉ định và xây dựng bốn chuỗi module (mộtcho mỗi cơ sở.) Nếu cấu hình không chỉ định bất kỳ module nào cho một hoặcnhiều cơ sở hơn, cấu hình cho dịch vụ khác được sử dụng thay cho các cơ sở này

Linux là một máy chủ, có thể cung cấp một số dịch vụ khác nhau (ví dụ:web, ftp với các khu vực bị hạn chế bởi kiểm soát mật khẩu) Thông qua việc sửdụng các module, PAM có thể cho phép một chương trình tìm kiếm thông qua một

số cơ sở dữ liệu mật khẩu khác nhau, ngay cả khi chương trình đó không được mãhóa rõ ràng cho cơ sở dữ liệu cụ thể đó

Ngày đăng: 28/02/2019, 23:38

TỪ KHÓA LIÊN QUAN

w