Certyfikat z ambicjami

Zdobycie certyfikatu Common Criteria dla produktu informatycznego - nawet na poziomie EAL 2 - może trwać dość długo i kosztować sporo pieniędzy. Jedno jest wszakże pewne: w trakcie procesu certyfikacji nic nie jest pozostawione przypadkowi, a testy są niezależne i merytorycznie wiarygodne.

Zdobycie certyfikatu Common Criteria dla produktu informatycznego - nawet na poziomie EAL 2 - może trwać dość długo i kosztować sporo pieniędzy. Jedno jest wszakże pewne: w trakcie procesu certyfikacji nic nie jest pozostawione przypadkowi, a testy są niezależne i merytorycznie wiarygodne.

Pierwszym krokiem w staraniu się o certyfikat Common Criteria dla produktu informatycznego jest dokładne określenie celu, jakiemu ów certyfikat ma służyć. Zarówno wybór odpowiedniego poziomu certyfikacji (patrz ramka), jak i cały późniejszy proces ubiegania się o certyfikat są bowiem ściśle związane z wymaganiami potencjalnych klientów. Decyzja o ubieganiu się o certyfikat powinna więc zostać poprzedzona dokładnym wywiadem wśród zainteresowanych. Należy określić ich potrzeby, wymagania związane z bezpieczeństwem, środowisko, w jakim docelowy system ma funkcjonować, politykę bezpieczeństwa oraz profil użytkowników.

Wszystko to potrzebne jest dlatego, że Common Criteria jest certyfikatem, o którego kształcie w dużej mierze decyduje wytwórca rozwiązania. Standard przyznawania certyfikatu gwarantuje to, że produkt zostanie przetestowany przez niezależnych ekspertów, stosujących sprawdzone i uznawane techniki testowania. Jednak jakie konkretnie funkcje naszego produktu zostaną sprawdzone, w jakich warunkach produkt powinien być użytkowany i testowany, czy wreszcie jaką wiedzą powinni dysponować docelowi użytkownicy systemu zależy już tylko od nas. To producent określa, jakie wymogi co do bezpieczeństwa stawia przed produktem i jak dokładnie produkt ten ma być testowany na zgodność z nimi.

Głębokie zamyślenie

Po zebraniu tych wstępnych informacji przychodzi czas na pierwszą decyzję. Musimy postanowić, o który poziom certyfikacji (Evaluation Assurance Level - EAL) będziemy się ubiegać. Spośród siedmiu poziomów oferowanych w ramach Common Criteria tylko cztery pierwsze są przewidziane dla produktów przeznaczonych na rynek masowy. Pozostałe są zarezerwowane dla produktów specjalistycznych, od początku projektowanych i tworzonych z myślą o spełnieniu najbardziej rygorystycznych wymagań związanych z bezpieczeństwem. Jeśli więc produkt nie jest satelitą szpiegowskim, nowym systemem operacyjnym dla komputerów wywiadu lub systemem zdalnego uruchamiania pocisków nuklearnych, powinniśmy raczej skupić się na pierwszych czterech poziomach certyfikacji.

EAL 1 jest przeznaczony głównie dla produktów, w których bezpieczeństwo nie odgrywa istotnej roli. Jego podstawową zaletą jest to, że może być przeprowadzony bez współpracy z twórcami certyfikowanego produktu. Może więc być interesujący np. dla dystrybutorów oprogramowania. W sytuacji gdy chcemy uzyskać certyfikat dla produktu, którego jesteśmy twórcami, należy jednak skupić się na poziomach od EAL 2 do EAL 4. Najważniejszą różnicą pomiędzy tymi poziomami jest szczegółowość testów przeprowadzanych przez organ certyfikujący. Na przykład jeśli chodzi o oprogramowanie w EAL 2 nie ma potrzeby testowania kodu źródłowego, podczas gdy w EAL 3 takie wymaganie jest już postawione.

Oczywiście im bardziej szczegółowe testy, tym więcej funkcji w naszym produkcie może zostać przetestowanych. Jeśli chcemy np. udowodnić, że oprogramowanie pisane jest zgodnie z zasadami bezpieczeństwa i minimalizujemy w ten sposób możliwość wystąpienia błędów typu buffer overflow, to musimy certyfikować nasz produkt na poziomie EAL 3, gdyż wymagany jest w tym przypadku audyt kodu. Z kolei poziom EAL 4 przeznaczony jest głównie dla produktów, których istotą działania jest zapewnianie bezpieczeństwa. Mowa tutaj np. o zaporach sieciowych, elektronicznych zamkach do drzwi, sieciowych systemach operacyjnych, systemach uwierzytelniania, takich jak: tokeny, karty elektroniczne czy urządzenia biometryczne.

W większości przypadków najbardziej optymalnie jest zacząć od EAL 2. Istotną cechą Common Criteria jest bowiem możliwość przejścia na wyższy poziom, przy wykorzystaniu dokumentów wygenerowanych podczas zdobywania certyfikatu na niższym poziomie. Nie bez znaczenia dla tej decyzji są też dwa inne czynniki stojące za każdym z poziomów: cena oraz czas certyfikacji. Zależą one w bardzo dużym stopniu od rodzaju produktu, który chcemy certyfikować, jak też liczby funkcji bezpieczeństwa, które mają zostać przetestowane.

Aby ubarwić rozważania, wyobraźmy sobie testowanie przenośnej pamięci Flash ze złączem USB. Jeśli chcemy udowodnić, że urządzenie wytrzyma temperaturę od -50° C do +150° C, dobrze zniesie stan nieważkości oraz przebywanie w próżni, to wszystkie te testy będą wymagały czasu i odpowiednich środków do ich przeprowadzenia. Każda sytuacja, którą chcemy przetestować, będzie niosła ze sobą większe koszty i niechybnie wydłuży czas certyfikacji. Z tego względu podawanie ram czasowych i kwotowych może być nieco mylące. Należy bowiem zaznaczyć, że każdy przypadek jest rozpatrywany indywidualnie przez instytucje certyfikujące.

Certyfikat z ambicjami

Poziomy certyfikatu Common Criteria

Dla przykładu podam, że aby otrzymać certyfikat EAL 2 dla oprogramowania, dla którego bezpieczeństwo nie jest główną funkcją i które ma być wykorzystywane w ściśle określonym środowisku, należy liczyć się z wydatkiem rzędu 130 000-200 000 USD i ok. 12 miesiącami pracy. W tym czasie wymagana będzie współpraca osób, które to oprogramowanie stworzyły, co oczywiście odrywa ich od innych zajęć i dodatkowo zwiększa koszty całego przedsięwzięcia. Należy też pamiętać, że mimo usilnych starań upragnionego certyfikatu możemy nie otrzymać: tutaj obowiązuje zasada, że najłatwiej jest zdobyć najniższy certyfikat. Biorąc to wszystko pod uwagę, najbardziej rozsądne jest rozpoczęcie certyfikacji od EAL 2, a następnie zdobywanie kolejnych poziomów w miarę potrzeb i możliwości.

W niewoli formalizmów

Aktualną listę oficjalnych laboratoriów testujących znajdziemy na stroniehttp://www.commoncriteriaportal.org/public/developer/index.php?menu=9 . Zważywszy na fakt, że w trakcie procedury certyfikacyjnej nie wszystko może być załatwione drogą elektroniczną bądź telefoniczną, dobrze jest wybrać laboratorium, które znajduje się możliwie najbliżej nas. Na tym etapie ustalana jest cena oraz czas certyfikacji, aczkolwiek jeśli w trakcie projektu pojawią się nieoczekiwane problemy, pierwotne ustalenia mogą oczywiście ulec zmianie i warto się na taką ewentualność przygotować.

Uwaga na współzależności!

Dla kosztów i trudności uzyskania certyfikatu niezmiernie ważne jest też to, czy funkcje bezpieczeństwa naszego oprogramowania zależą od jakiegoś zewnętrznego komponentu. Przykładem może być wykorzystanie biblioteki kryptograficznej albo jedynie "koncepcji użytkowników i praw dostępu systemu Linux". Szkopuł w tym, że taki komponent także musi posiadać certyfikat bezpieczeństwa na tym samym lub wyższym poziomie EAL!

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200