Learn to Fly, Little Friend: Von einem „Proof of Concept“ zum Open Source Projekt

Im Oktober 2017 berichtete ich an dieser Stelle von unserem neu entwickelten Verfahren, mit dem wir die Herstellerdokumente für die Common Criteria Dokumentation des eHealth Konnektors KoCo Box Med+ erstellen. In den vergangenen zweieinhalb Jahren hat sich das Verfahren nicht nur sehr bewährt, sondern auch technisch und konzeptionell weiterentwickelt. Zeit für ein Update in unserem Blog!

  • Unsere Dokumentationsplattform ist Teil des Portfolios der n-design geworden. Damit braucht das Verfahren einen Namen. Wir haben uns für n-doc entschieden. Der Name spiegelt die Tradition der Produkte der n-design wieder; gleichzeitig zeigt das allgemein klingende „doc“, dass wir n-doc nicht nur im spezialisierten Umfeld der Common Criteria Zertifizierungen sehen. Der Name verdeutlicht, dass sich die Konzepte und Werkzeuge dieses Verfahrens für viele Arten der technischen Dokumentation nutzbar machen lassen: Zertifizierungen nach anderen Schemata, aber auch technische Dokumentation im Allgemeinen.
  • Wir freuen uns, dass wir n-doc unter einer Open Source Lizenz veröffentlicht haben! Wir nutzen als Dienstleister und Software-Entwickler dankbar ein reichhaltiges Angebot an Open Source Software. Nun tragen wir selbst etwas bei und ermöglichen anderen, auf unsere Bemühungen aufzusetzen. n-doc ist ein hochgradig flexibles Verfahren. Gerne unterstützen wir Sie im Rahmen unserer Dienstleistungen bei der Einführung, Coaching und den Anpassungen für Ihren spezifischen Anwendungszweck. Mit der Auswahl der freizügigen MIT-Lizenz stellen wir sicher, dass Sie das Verfahren nutzen, anpassen und erweitern können, ohne dass Sie ihre  Geschäftsgeheimnisse veröffentlichen müssen.
  • n-doc ist auf GitHub veröffentlicht. Es besteht aus zwei Teilen: Dem n-doc_template und dem n-doc Docker Image. Das Template zeigt den Anwendungsfall eines fiktiven EAL 3+ Verfahrens (ähnlich zum Konnektor): Es enthält das Security Target (ASE), die Funktionale Spezifikation (ADV_FSP), die Design Spezifikation (ADV_TDS) und die Testabdeckung (ATE_COV). Diese Dokumente sind in sich konsistent und können als Vorlage für eigene Verfahren verwendet werden. Darüber hinaus enthält das Repository noch Rahmendokumente für ADV_ARC, ALC und eine Referenzliste, mit der die Versionsstände der einzelnen Dokumente zusammengehalten werden. Schließlich gibt es noch eine Menge Infrastruktur: Makefiles, BibTeX-Vorlagen und einiges mehr.

n-doc hat sich auch technisch und inhaltlich weiterentwickelt. Einige Hightlights der vergangenen zwei Jahre:

  • Bereits im letzten Blogbeitrag zu diesem Thema erwähnte ich, dass wir LuaTeX benutzen, um Entitäten des TOE und deren Relationen aus einer Datenbank auszulesen. So stellen wir identische Terminologie sicher („Gleiche Dinge heißen überall gleich“) und erhalten stets konsistente Tracing/Mapping-Tabellen, die manuell nicht mehr handhabbar wären. Der Clou ist jedoch, dass wir das Datenbankfile als eigenständiges Dokument an den Evaluator ausliefern. Mit einem SQLite Browser kann der Evaluator eigene Abfragen an den TOE formulieren und sich die inneren Zusammenhänge einfacher erschließen. Die daraus resultierende Assurance erleichtert und beschleunigt die Evaluation erheblich.
  • Mittlerweile umfasst unser Zertifizierungsprojekt 16 Dokumente mit knapp 3.500 Seiten. Bei einem solchen Umfang ist es nicht mehr möglich, durch die Vielzahl an Verzeichnissen zu wandern und einzelne Dokumente zu übersetzen. Hier helfen uns die Build-Werkzeuge, die wir als Software-Entwickler ohnehin verwenden. Mit einer Reihe von Pipelines in unserem Jenkins-Server erstellen wir kontinuierliche Snapshots nach jedem Merge-Request und publizieren diese intern. Die Frage „Wo liegt die aktuelle Version?“ stellt sich nicht mehr: Sie liegt, gemeinsam mit allen bisher ausgelieferten Versionen, auf unserer Intranet-Site.
  • Wie oben schon angedeutet, haben wir die Entwicklungswerkzeuge in einem Docker-Image paketiert. Die bentötigte Infrastruktur mit TeX Live, Lua-Paketen, Plant UML für Diagramme ist komplett in einem Container nutzbar. Wir nutzen dies auf unserem Continuous Integration Server, unsere Partner sparen sich die lokale Installation der Werkzeuge sogar komplett. Das Image ist in das öffentliche Docker-Repository hochgeladen.
  • Ein weiterer Aspekt, der sich sehr natürlich entwickelt hat, ist die Zusammenarbeit an den Dokumenten mit unseren Projektpartnern. Es gibt einen geteilten Git-Server mit einem privaten Repository, über das die Arbeiten der jeweiligen Standorte geteilt werden. Die Zusammenarbeit ist intern und extern über Merge-Requests geregelt. Das Dokumentenmanagement verläuft nahezu geräuschlos und schlägt mit knapp 5% des Projektaufwands zu Buche. Verglichen mit dem Vorprojekt, in dem Office-Produkte und Email verwendet wurden, ist das ein sensationell niedriger Wert.
  • Die Auslieferungen an den Evaluator sind mit Shell-Scripten und Jenkins-Pipelines nahezu komplett durchautomatisiert.
  • Mittlerweile setzen wir n-doc nicht ausschließlich für das CC-Verfahren des Konnektors ein. Für die gleichzeitig laufende Evaluation der Fachmodule nach Technischer Richtlinie haben wir eine angepasste Instanz der Plattform erstellt. Der Aufwand dafür war sehr gering. Auch der Evaluator im zweiten Verfahren ist sehr zufrieden mit der Qualität und Konsistenz unserer Herstellerdokumente.
  • Ein persönliches Highlight war die Präsentation des n-doc Verfahrens auf dem 29. SmartCard Workshop des Fraunhofer SIT im Februar 2019. Hier hatte ich die Gelegenheit, das Verfahren erstmals einer breiteren Öffentlichkeit zu zeigen. Die positiven Reaktionen der anderen Teilnehmerinnen und Teilnehmer zeigen, dass wir mit unseren Ideen und deren Umsetzung einen Nerv getroffen haben (Foliensatz, Beitrag zum Tagungsband).

Aus einem kleinen Versuchsballon hat sich ein gereiftes Werkzeug entwickelt, das nun ausreichend erprobt ist, um auch von anderen Organisationen als den unmittelbaren Entwicklern verwendet zu werden. Ich bin sehr gespannt darauf, wie sich n-doc weiterentwickelt und welche Nutzungen es erfährt. Wir werden berichten.

Diese Seite benutzt Cookies. Um dem Einsatz von Cookies zuzustimmen klicken Sie bitte auf "OK, ich stimme zu". Weitere Informationen zum Datenschutz erhalten Sie über den folgenden Link: Datenschutzerklärung

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close