Warszawa dn. 03.12.2009
WOJSKOWA AKADEMIA TECHNICZNA
Dokumentacja projektowa z przedmiotu: Ochrona i Bezpieczeństwo Danych
Wykonujący :
Michał Werner
Bartosz Wiśniewski
Kamil Kurek
Tomasz Talewicz
gr. I6B3S1
Treść zadania
Dla wybranej przez siebie dowolnej organizacji opracować system dostępu do bazy danych o party na macierzowym modelu dostępu do danych z uwzględnieniem uwierzytelniania użytkownika na podstawie hasła i jednej z następujących (do wyboru) metod kontroli dostępu do danych: uznaniowej (DAC), obowiązkowej (MAC) lub opartej na rolach (RBAC). W ramach rozwiązania zadania należy:
opracować koncepcję systemu,
wykonać projekt systemu,
zaimplementować w dowolnym języku oraz przetestować utworzony system dostępu do bazy danych.
Opis organizacji
W ramach realizacji projektu będziemy zajmować się tworzeniem Akademickiego Systemu Obsługi Studentów (ASOS). System ma za zadanie ułatwić użytkownikowi realizację jego najczęstszych zadań - zarówno jeżeli chodzi o studenta, pracownika dydaktycznego czy też pracownika dziekanatu. Może to być np. planowanie planu zajęć przez studenta, zamieszczanie prezentacji z wykładów przez wykładowcę czy też sprawdzanie stanu zaległych opłat przez pracownika księgowości. Wszystko to ma się naturalnie odbywać zgodnie z określonymi zasadami bezpieczeństwa dostępu do danych.
W ramach organizacji jaką jest uczelnia wyższa, wyróżniamy następujące stanowiska, które będą miały istotne znaczenie z punktu widzenia tworzonego systemu bezpieczeństwa danych:
lp. |
Stanowisko |
1 |
Kandydat |
2 |
Student |
3 |
Pracownik naukowo-dydaktyczny |
4 |
Pracownik inżynieryjno-techniczny |
5 |
Pracownik dziekanatu |
6 |
Dziekan |
7 |
Pracownik działu finansowego |
8 |
Pracownik biura przepustek |
9 |
Portier |
ASOS będzie wykorzystywał metodę kontroli dostępu do danych opartą na rolach (RBAC). Wszystkie zdefiniowane role jakie mogą zostać przypisane użytkownikom systemu zostaną przedstawione w punkcie 4.
Projekt bazy danych
Projekt bazy danych został wykonany przy użyciu darmowego narzędzia jakim jest MySQL Workbench 5.1.
Rys. 1. Projekt bazy danych dla systemu ASOS
Również za pomocą MySQL Workbench 5.1 wygenerowany został skrypt tworzący wszystkie tabele, wraz z przykładowymi danymi. W związku z tym, iż objętość skryptu jest stosunkowo duża, jego treść nie została zamieszczona w dokumentacji. Ponadto aplikacja ASOS jest w budowie, przez co dane w bazie danych są na chwilę obecną niepełne.
Obsługa bazy danych odbywa się poprzez wykorzystanie innego, także darmowego narzędzia - SQL Developer.
Rys. 2. Zrzut ekranu z programu SQL Developer. Po prawej stronie widoczne jest połączenie z bazą danych MySQL wraz z listą utworzonych tabel przy pomocy wygenerowanego wcześniej skryptu.
W prezentowanym rozwiązaniu przyjęliśmy, że wszystkie dane występujące w systemie ASOS, które mają podlegać prawom dostępu, będą reprezentowane przez usługi funkcjonalne jakie użytkownik, o określonej roli, może wykonać bądź też nie.
Prawa dostępu do wykonania usług są definiowane w tabeli Access. Dostęp do określonych zasobów jest uzależniony od tego czy dana rola ma prawo do wykonania danej usługi systemowej - tabela Services.
Charakterystyka informacyjna stanowisk
Poniżej zaprezentowano tabelę z wykazem stanowisk oraz ról jakie mogą zostać przypisane użytkownikom pełniącym określone stanowiska:
Stanowisko |
Role |
Kandydat |
Kandydat |
Student |
Student |
Pracownik naukowo-dydaktyczny |
Wykładowca |
|
Asystent |
Pracownik inżynieryjno techniczny |
Administrator systemu |
|
Konserwator systemu |
|
Programista |
Pracownik dziekanatu |
Kierownik dziekanatu |
|
Referent |
|
Planista |
|
Referent ds. studenckich |
Dziekan |
Dziekan wydziału |
|
Prodziekan ds. studenckich |
Pracownik działu finansowego |
Kierownik działu finansowego |
|
Referent księgowy |
Pracownik biura przepustek |
Pracownik biura przepustek |
Portier |
Portier |
Dane jakie są niezbędne do wykonywania określonych zadań przez użytkowników przedstawia kolejna tabela, zawierająca już nie wykaz stanowisk lecz wykaz ról jakie mogą zostać przypisane użytkownikom systemu pełniącym różne stanowiska.
Przyjmujemy następujące oznaczenia:
- gdy użytkownik nie ma jakichkolwiek praw dostępu do określonych danych
0 gdy użytkownik ma prawa odczytu danych
1 gdy użytkownik ma prawa odczytu z zapisem danych
|
Materiały do wykładów |
Wiadomości |
Oceny z zaliczeń |
Oceny ze sprawozdań |
Plan zajęć |
Zaliczenia |
Opłaty |
Materiały z zajęć |
Aktualności |
Pisma do dziekanatu |
Przypomnienia |
Dane osobiste |
Ogłoszenia |
|
Kandydat |
- |
- |
- |
- |
0 |
- |
0 |
- |
0 |
0 |
1 |
1 |
- |
|
Student |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
|
Pracownik naukowo-dydaktyczny |
Wykładowca |
1 |
1 |
1 |
- |
0 |
1 |
- |
- |
0 |
0 |
1 |
1 |
- |
|
Asystent |
- |
1 |
- |
1 |
0 |
- |
- |
1 |
0 |
0 |
1 |
1 |
- |
Pracownik inżynieryjno-techniczny |
Adm. Systemu |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
|
Kons. Systemu |
1 |
1 |
- |
- |
1 |
- |
- |
1 |
1 |
- |
1 |
1 |
1 |
|
Programista |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
Pracownik dziekanatu |
Kierownik dziekanatu |
- |
1 |
1 |
- |
0 |
0 |
0 |
- |
0 |
0 |
1 |
1 |
0 |
|
Referent |
- |
1 |
- |
- |
0 |
- |
- |
- |
1 |
1 |
1 |
1 |
- |
|
Planista |
- |
1 |
- |
- |
1 |
- |
- |
- |
0 |
- |
1 |
1 |
- |
|
Referent ds. studenckich |
- |
1 |
0 |
- |
0 |
- |
- |
- |
1 |
1 |
1 |
1 |
- |
Pracownik działu finansowego |
Kierownik działu finansowego |
- |
1 |
- |
- |
0 |
- |
0 |
- |
0 |
0 |
1 |
1 |
- |
|
Referent księgowy |
- |
1 |
- |
- |
0 |
- |
1 |
- |
1 |
1 |
1 |
1 |
- |
Pracownik biura przepustek |
- |
1 |
- |
- |
0 |
- |
- |
- |
1 |
- |
1 |
1 |
- |
|
Portier |
- |
- |
- |
- |
0 |
- |
- |
- |
0 |
- |
1 |
1 |
- |
Dodatkowe założenia dotyczące np. czasu w jakim użytkownik o danej roli może wykonać wybraną usługę, są definiowane przez dodatkową kolumnę w tabeli Access o nazwie assertion. W kolumnie assertion będą umieszczane wywołania dodatkowych procedur np. takiej, która sprawdzi czas odwołania się do danej usługi. Na podstawie tego prawo dostępu danej roli zostanie przyznane bądź też nie.