Otrzymałeś już kilka doskonałych odpowiedzi, chociaż odpowiedzi @ TomLeek i @ Iszi (obie znakomite przy okazji) wydają się być w bezpośredniej sprzeczności.
Obydwie mają doskonałe uwagi: z jednej strony zachowanie tajemnicy projektu nie zapewni bezpieczeństwa systemu, podczas gdy publiczne przeglądanie go umożliwi (prawdopodobnie) znalezienie pewnych luk, których nie brałeś pod uwagę; z drugiej strony nie zaszkodzi utrzymywać projekt w tajemnicy, o ile nie jest to kluczowy czynnik dla bezpieczeństwa projektu.
Obie strony mają całkowitą rację - czasami .
Myślę, że uczciwie byłoby powiedzieć, że obie strony w ogólnym argumencie zgodzą się, że zachowanie tajemnicy projektu w ogóle nie zwiększa bezpośrednio bezpieczeństwa.
W najgorszym przypadku po prostu ukrywa luki w zabezpieczeniach (które mogą, ale nie muszą być dobre, w zależności od tego, przed kim uważasz, że są najbardziej ukryte).
W najlepszym przypadku (gdy nie ma żadnych trywialnych luk, które zostałyby ujawnione przez publikacja projektu), nadal nie zwiększa bezpieczeństwa - ale minimalizuje powierzchnię ataku .
Minimalizuje powierzchnię ataku (nawet bez obecności luka) jest zdecydowanie dobrą rzeczą; należy to jednak rozważyć i wymienić na korzyści płynące z publikacji (a mianowicie weryfikację przez dodatkowe spojrzenia) oraz wady związane z utrzymywaniem tego w tajemnicy - np. pokusa polegania na nim jako na kontroli bezpieczeństwa (zawsze popularne zabezpieczenie przez zapomnienie), jako na formie teatru bezpieczeństwa.
Warto również zauważyć, że, jak wspomniał @Tikiman, samo opublikowanie projektu nie wystarczy, aby upewnić się, że zostanie on zrecenzowany - zwłaszcza przez tych, którzy potrafią znaleźć luki i którzy są również skłonnych do ich ujawnienia. W wielu przypadkach opublikowany projekt byłby sprawdzany tylko przez złośliwe osoby z nielegalnym zamiarem, więc nie osiągnąłbyś spodziewanych korzyści. Co więcej, często nawet nie wiadomo , czy ich projekt mieści się w wyżej wymienionym najlepszym, czy najgorszym przypadku.
Podsumowując - podobnie jak w przypadku wielu innych kwestii związanych z bezpieczeństwem, prosta odpowiedź nadal brzmi: To zależy .
Należy rozważyć pewien kompromis - jeśli byłby to złożony system kryptograficzny, odpowiedź byłaby jasna; gdyby był to typowy system korporacyjny wymagający dużej liczby wdrożeń, jasna byłaby inna odpowiedź.
Moje skłonności w tym przypadku są takie, jak powiedział @Tom, ale z wymienionych drugorzędnych powodów - częściowo z anarchicznej bazy użytkowników, a głównie z celu pedagogicznego.
Zauważ, że nie są to tak naprawdę względy bezpieczeństwa - przynajmniej nie bezpośrednio.
(Aha, a co do punktu @ Tikimana - pedagogika tutaj zaangażowana oznacza, że możesz faktycznie upewnić się, że projekt jest recenzowany, przynajmniej przez całą klasę ;-))