MỞ ĐẦU Điều khiển truy cập là yếu tố an ninh cơ bản, đóng vai trò cốt yếu trong việc đảm bảo an ninh trong các hệ thống máy tính hiện nay. Bất cứ khi nào chúng ta sử dụng máy tính đều tuân theo sự điều phối của các hệ thống điều khiển truy cập. Trong quá trình hình thành và phát triển, có rất nhiều nghiên cứu về điều khiển truy cập. Từ các khái niệm ban đầu nhƣ : ma trận điều khiển truy cập, danh sách điều khiển truy cập…, sau đó điều khiển truy cập đã đƣợc khái quát thành các mô hình DAC, MAC, RBAC.
RBAC là mô hình điều khiển truy cập tiến bộ nhất tại thời điểm hiện tại. Mô hình đã giải quyết đƣợc rất nhiều vấn đề mà các mô hình trƣớc đó gặp phải nhƣ : hỗ trợ đặc quyền tối thiểu, dễ dàng quản lý, giảm giá thành vận hành… Rất nhiều tổ chức và các chƣơng trình quản lý đang sử dụng mô hình RBAC nhƣ mô hình tham chiếu cho các chính sách an ninh. Quá trình thiết kế và cài đặt các luật của điều khiển truy cập theo mô hình RBAC thƣờng đƣợc tiến hành bởi rất nhiều ngƣời trong tổ chức, cũng nhƣ diễn ra trong một khoảng thời gian dài. Ngoài ra, các luật điều khiển truy cập còn thƣờng xuyên đƣợc thay đổi và cập nhật.
Vì vậy, kiểm chứng sự phù hợp giữa việc mô tả các luật RBAC và việc cài đặt các luật này trong ngôn ngữ lập trình cụ thể là yêu cầu mang tính thực tiễn và có tính ứng dụng cao. Đề tài "Kiểm chứng sự tuân thủ giữa đặc tả điều khiển truy cập và cài đặt" nhằm mục đích tìm hiểu thuật toán kiểm chứng sự phù hợp giữa đặc tả các chính sách điều khiển truy cập và việc cài đặt các chính sách này trong ngôn ngữ lập trình cụ thể, đƣợc mô tả trong công trình nghiên cứu của các tác giả Trƣơng Ninh Thuận, Nguyễn Việt Hà và Phạm Tuấn Hƣng. Sau đó tiến hành cài đặt thuật toán này trên ngôn ngữ lập trình cụ thể để kiểm chứng tính đúng đắn và phù hợp với thực tế của phƣơng pháp trên. Nội dung chính của luận văn gồm 5 chƣơng.
Chƣơng 1 : Giới thiệu chung về điều khiển truy cập. Mục đích, các thành phần cơ bản và quá trình hình thành và phát triển của điều khiển truy cập. Chƣơng 2 : Khái quát về mô hình điều khiển truy cập trừu tƣợng. Các thành phần cơ bản của một mô hình điều khiển truy cập trừu tƣợng, các nguyên tắc cần tuân theo khi thiết kế an toàn.
Chƣơng 3 : Mô tả cấu trúc của mô hình điều khiển truy cập RBAC. Các thành phần của mô hình, các ƣu điểm của mô hình RBAC so với các mô hình trƣớc đó. Hình thức hóa bằng toán học các tính chất của mô hình RBAC. z -9- Chƣơng 1 GIỚI THIỆU VỀ ĐIỀU KHIỂN TRUY CẬP 1.
Giới thiệu Điều khiển truy cập (Access control) xuất hiện cùng lúc với việc con ngƣời cần bảo vệ tài sản. Nhân viên gác cửa, cổng và khóa đƣợc ngƣời xƣa sử dụng để giới hạn cá nhân đƣợc phép truy cập đến các đồ vật có giá trị. Việc cần thiết phải điều khiển truy cập đƣợc nhắc lại khi đề cập đến vấn đề an toàn trong hệ thống máy tính. Vào năm 1879, một ngƣời giữ cửa phòng khách tên là James Ritty đã phát minh ra “Thủ quĩ không thể bị mua chuộc” – “incorruptible cashier”, sau đó đƣợc biết đến rộng rãi với thuật ngữ đăng ký tiền mặt (cash register).
Phát minh của Ritty đã làm giảm vấn đề phổ biến khi nhân viên ăn cắp tiền, phát minh chỉ cho phép nhân viên truy cập đến ngăn kéo đựng tiền khi giao dịch đƣợc bắt đầu, và phải nhập số tiền của giao dịch trong khung nhìn khách hàng. Bằng cách ghi lại lƣợng tiền của mỗi giao dịch và theo dõi tổng số tiền, việc đăng ký sẽ giúp cho ngƣời chủ biết đƣợc lƣợng tiền trong ngăn kéo đúng bằng tổng số tiền đƣợc giao dịch trong ngày. Trong thế giới công nghệ thông tin ngày nay, quyền truy cập đƣợc hiểu theo cách ngƣời dùng có thể đƣợc truy cập đến tài nguyên trong hệ thống máy tính, theo cách nói thông thƣờng là “Ai đƣợc quyền làm gì”. Điều khiển truy cập đƣợc cho là yếu tố cơ bản nhất và là kĩ thuật an ninh đƣợc sử dụng rộng rãi trong thực tế hiện nay.
Điều khiển truy cập có mặt trong gần nhƣ tất cả các hệ thống, giữ vai trò kiến trúc tổng quát và là thách thức trong việc quản trị tại tất cả các mức trong công ty máy tính. Từ khía cạnh thƣơng mại, điều khiển truy cập có một vai trò vô cùng quan trọng để để thúc đẩy việc tối ƣu hóa chia sẻ và trao đổi tài nguyên, nhƣng nó cũng đóng vai trò quan trọng để vô hiệu hóa ngƣời dùng, chịu giá thành quản trị lớn, và làm lộ hoặc làm sai lệch các thông tin có giá trị một cách không đƣợc phép [27]. Điều khiển truy cập có thể có rất nhiều dạng khác nhau. Thêm vào đó, để xác định ngƣời dùng nào có quyền sử dụng tài nguyên, hệ thống điều khiển truy cập có thể có các ràng buộc các tài nguyên đƣợc sử dụng khi nào.
Ví dụ, một ngƣời dùng có thể có quyền truy cập mạng chỉ trong giờ làm việc. Một số tổ chức có thể thiết lập các điều khiển phức tạp hơn, ví dụ nhƣ yêu cầu hai đội nhân viên thử các thao tác với độ rủi ro cao nhƣ mở cửa hầm hoặc phóng tên lửa. Định nghĩa và mô hình về điều khiển truy cập đƣợc khởi đầu vào những năm đầu 1970, chuẩn hóa đầu tiên có hiệu lực vào những năm 1980, và RBAC xuất hiện vào những năm đầu 1990, và đang tiếp tục phát triển cho đến nay. Trong z - 10 - chƣơng này sẽ giới thiệu về nguồn gốc, lịch sử và các khái niệm trung tâm của điều khiển truy cập, xem xét các dạng điều khiển truy cập đƣợc sử dụng ngày nay, và giới thiệu những khái niệm cơ bản của RBAC và những tiến bộ của nó đối với an ninh trong các hệ thống, ứng dụng và mạng máy tính.
Mục đích và các thành phần cơ bản của điều khiển truy cập Điều khiển truy cập là khía cạnh dễ nhận thấy nhất của toàn bộ giải pháp an ninh máy tính. Mỗi khi ngƣời dùng đăng nhập vào hệ thống máy tính nhiều ngƣời dùng, họ sẽ phải buộc phải tuân theo điều khiển truy cập. Để hiểu rõ hơn về mục đích của điều khiển truy cập, chúng ta sẽ xem lại các rủi ro đối với hệ thống thông tin. Các nguy cơ về an ninh thông tin có thể đƣợc nhóm thành ba nhóm lớn nhƣ sau: tính bảo mật, tính toàn vẹn và tính sẵn sàng.
Các nhóm này đƣợc mô tả nhƣ sau: - Tính bảo mật đƣợc biết đến nhƣ việc lƣu giữ các thông tin an toàn và mang tính cá nhân. Nhóm này có thể bao gồm bất cứ điều gì, từ an ninh quốc gia đến các điều khoản mật, thông tin tài chính và các thông tin an ninh nhƣ mật khẩu. - Tính toàn vẹn đƣợc biết đến nhƣ khái niệm về bảo vệ thông tin từ việc thay đổi không đúng cách hoặc chỉnh sửa bởi những ngƣời không đƣợc phép. Ví dụ, tất cả ngƣời dùng muốn đảm bảo số tài khoản ngân hàng đƣợc sử dụng bởi các phần mềm tài chính không đƣợc thay đổi bởi bất kì ai, và chỉ ngƣời dùng hoặc ngƣời quản lý an ninh đƣợc cho phép mới có thể thay đổi mật khẩu.
- Tính sẵn sàng đƣợc biết đến với khái niệm thông tin luôn sẵn sàng để sử dụng khi cần đến. Các vụ tấn công để làm quá tải hệ thống máy chủ web hiện nay chính là các vụ tấn công vào tính sẵn sàng của thông tin. Điều khiển truy cập là vấn đề cốt yếu để đảm bảo tính bảo mật và toàn vẹn của thông tin. Điều kiện của việc bảo mật yêu cầu rằng chỉ những ngƣời đƣợc phép mới có thể đọc thông tin, và điều kiện của tính toàn vẹn là chỉ những ngƣời đƣợc cấp phép mới có thể thay đổi thông tin theo cách đƣợc ủy quyền.
Điều khiển truy cập không tập trung vào việc duy trì tính sẵn sàng, nhƣng nó đƣa ra một qui tắc quan trọng: Một kẻ tấn công có thể truy cập không đƣợc phép đến hệ thống cũng tƣơng tự nhƣ làm cho hệ thống giảm đi tính sẵn sàng. Ngƣời dùng (Users), chủ thể (Subjects), đối tƣợng (Objects), thao tác (Operations) và quyền truy cập (Permissions) Các thuật ngữ phù hợp đã đƣợc phát triển trong suốt ba thập kỷ để mô tả mô hình và hệ thống điều khiển truy cập. Hầu hết các mô hình điều khiển truy cập có thể đƣợc mô z - 11 - tả một cách hình thức bằng cách sử dụng các khái niệm ngƣời dùng, chủ thể, đối tƣợng, thao tác và quyền truy cập cùng mối quan hệ giữa các thực thể này. Việc hiểu những thuật ngữ này rất quan trọng vì nó đƣợc sử dụng xuyên suốt trong các tài liệu mô tả về điều khiển truy cập và an ninh máy tính.
Thuật ngữ ngƣời dùng (User) đƣợc dùng để nói về những ngƣời dùng có tƣơng tác với hệ thống máy tính. Trong nhiều thiết kế, đó có thể là một ngƣời dùng đơn có nhiều tài khoản để đăng nhập, những tài khoản này có thể hoạt động đồng thời. Kỹ thuật cấp phép có thể xác định đƣợc nhiều tài khoản đối với một ngƣời dùng. Một thể hiện của hội thoại giữa ngƣời dùng và hệ thống đƣợc gọi là phiên làm việc (session).
Một tiến trình máy tính hoạt động thay mặt cho ngƣời dùng đƣợc gọi là chủ thể (subject). Trong thực tế, tất cả các hành động của ngƣời dùng trên một hệ thống máy tính đều đƣợc thực hiện thông qua một vài chƣơng trình chạy trên máy tính. Một ngƣời dùng có thể có nhiều chủ thể trong một thao tác, mặc dù ngƣời dùng chỉ có một tài khoản đăng nhập và một phiên làm việc. Ví dụ, hệ thống thƣ điện tử có thể thao tác trong tiến trình nền, nạp thƣ điện tử từ máy chủ theo chu kỳ, trong khi ngƣời dùng thao tác với trình duyệt web.
Mỗi chƣơng trình của ngƣời dùng là một chủ thể, mỗi truy cập của chƣơng trình sẽ đƣợc kiểm tra để đảm bảo chúng đƣợc cho phép cho ngƣời dùng đã gọi chƣơng trình. Một đối tƣợng (object) có thể là bất kỳ tài nguyên nào có thể truy cập đƣợc trên hệ thống máy tính, bao gồm tệp tin, thiết bị ngoại vi nhƣ máy in, cơ sở dữ liệu và các thực thể nhỏ hơn nhƣ các trƣờng riêng biệt trong bản ghi cơ sở dữ liệu.