Wibu-Systems maakt CodeMeter geschikt voor Docker containers

6 januari 2022

Wibu-Systems, leve­ran­cier van de CodeMeter tech­no­logie voor het bevei­li­ging en licen­tie­be­heer van software, heeft aanslui­ting gemaakt met de uitrol van software-appli­ca­ties in de vorm van Docker contai­ners. De popu­la­ri­teit van deze zogeheten micro­ser­vices – appli­ca­ties opgedeeld in func­ti­o­nele modules, die elk geïso­leerd draaien in contai­ners – groeit onder invloed van ’hyper converged computing’ in IT-omge­vingen onder­ge­bracht in zowel de public als de private cloud. 

Contai­ner­sys­temen zoals Docker kenmerken zich door hun gemak in opera­ti­o­nele gebruik waardoor appli­ca­ties snel zijn op– en af te schalen en de werk­be­las­ting binnen een cloud-omgeving nauw­keurig is af te stellen op de voor­handen IT-bronnen in een data­cen­trum. Het werken met micro­ser­vices sluit goed aan bij de huidige opvatting over soft­wa­re­ont­wik­ke­ling door verschil­lende multi­dis­ci­pli­nair samen­ge­stelde teams. Die werken samen volgens het Agile-principe in projecten met gelijk­tijdig coderen, testen en opera­ti­o­neel opleveren (DevOps). De betrokken soft­wa­re­bou­wers zien hun expertise en inspan­ning graag beveiligd tegen onge­oor­loofd gebruik of kopiëren van de appli­catie en het verder inbreuk maken op het intel­lec­tuele eigen­doms­recht (Intel­lec­tual Property: IP). Met de CodeMeter tech­no­logie zijn soft­wa­re­con­tai­ners op een correcte manier te binden aan de licen­tie­rechten van een appli­catie, zodat ze zich gemak­ke­lijk in meer­vou­dige vorm laten activeren en kopiëren. 

De gedachte achter het verpakken van software in contai­ners is niet nieuw. De basis func­ti­o­na­li­teit maakt al heel lang deel uit van het Linux-bestu­rings­sys­teem. Dankzij het oorspron­ke­lijk ’open source’ Docker project maakte de IT-wereld kennis met dit gebruiks­vrien­de­lijke systeem voor het uitrollen van appli­ca­ties. Docker geldt als een de facto standaard sinds Microsoft besloot om de contai­ner­tech­no­logie deel uit te laten maken van Windows Server 2016 en Windows 10. Contai­ners zijn in essentie kleine virtuele machines (VM’s) zonder eigen bestu­rings­sys­teem. Ze delen geza­men­lijk de OS ’kernel’ en andere belang­rijke bestu­rings­be­standen van hun host-systeem. Daarop leggen ze beduidend minder beslag dan de volledig VM’s onder een op virtu­a­li­satie gericht bestu­rings­sys­teem, terwijl ze dezelfde services bieden. Ze zijn dus met minder systeem­bronnen in het data­cen­trum te draaien, te onder­houden, op te waarderen en te voorzien van beveiligingspatches. 

Bij het activeren van de software in de contai­ners is er geen opstart procedure nodig voor het bestu­rings­sys­teem of modules uit andere soft­wa­re­bi­bli­o­theken. Ze hebben direct toegang tot de compo­nenten en data in de onderste laag van het bestu­rings­sys­teem. Daardoor kunnen ’on the fly’ gemak­ke­lijk contai­ners worden toege­voegd. Wanneer het opera­ti­o­nele proces volledig geau­to­ma­ti­seerd is ingericht, laat het geheel zich perfect schalen naar de actuele omvang van de werklast. Die zal in het geval van bijvoor­beeld een online toepas­sing sterk variëren, afhan­ke­lijk van de tijdzones en de locaties waar het systeem beschik­baar is. Voor het verder auto­ma­ti­seren van de beheer­pro­cessen rond soft­wa­re­con­tai­ners komen we terecht bij een ander fenomeen, opge­groeid in de open source gemeen­schap: Kuber­netes. Deze tech­no­logie biedt een raamwerk van beheer­op­los­singen voor het verhogen van de veer­kracht van gedis­tri­bu­eerde contai­ne­rap­pli­ca­ties met functies voor orkestratie, op- en afscha­ling en herstel bij onver­hoopte storingen. 

Tot zover de positieve punten van een contai­ner­toe­pas­sing.  De nadelen liggen op het vlak van bevei­li­ging. In verge­lij­king tot tradi­ti­o­nele virtu­a­li­sa­tie­tech­no­logie zijn indi­vi­duele contai­ners minder geïso­leerd van elkaar en van de host. De processen in de contai­ners delen dezelfde systeem­bi­bli­o­theken en dezelfde ’kernel’, waardoor compa­ti­bi­li­teits­pro­blemen kunnen ontstaan. Eventuele zwakheden en fouten in de software van het host-systeem raken ook de micro­ser­vices in de contai­ners en beïn­vloeden daarmee de pres­ta­ties van een cloud native applicatie. 

Naast het bevei­li­gings­as­pect levert CodeMeter in combi­natie met Docker de moge­lijk­heid licenties te beheren van software, opge­splitst in func­ti­o­nele modules, onder­ge­bracht in een reeks van contai­ners. Een licentie wordt geko­pi­eerd en gebonden aan een container. In essentie verschillen de verschil­lende instal­la­ties van de CodeMeter licen­tie­server per container niet. De bindingei­gen­schappen blijven gelijk.  De bevei­ligde appli­catie in de Docker container kan de licentie ook via een cloud server krijgen. De gebruiker heeft drie opties voor het huis­vesten van het licen­tie­con­tro­le­me­cha­nisme: in hardware (CmDongles); in software (CmAct­Li­censes) en in de cloud (CmCloud­li­censes). Om meer­vou­dige instal­la­ties van de CodeMeter licen­tie­server mogelijk te maken, zijn vanaf versie 6.90 twee wijzi­gingen aange­bracht die de werking van een container beïnvloeden. 

De eerste wijziging heeft betrek­king op varianten in CmAct­Li­cences, het acti­ve­rings­me­cha­nisme van licenties die in een Docker container actief mogen zijn. Zo zijn er licenties aan te maken zonder een concrete binding met de hardware van een systeem (NoneBind). Met deze licenties laten bevei­ligde appli­ca­ties zich alleen maar ontcij­feren in het geval van een Protec­tion Only toepas­sing. Wanneer deze licenties bij een reeks van contai­ners zijn aange­bracht bestaat er geen risico van frauderen. Soft­wa­re­ont­wik­ke­laars kunnen CmAct­Li­censes ook specifiek voor meer­voudig container­ge­bruik instellen via een instructie voor het gebruik van alleen Universal Firm Codes.

De tweede wijziging betreft de werking van het binding­me­cha­nisme in samenhang met netwerk­kop­pe­lingen. Om bloot­stel­ling aan mogelijke aanvallen te voorkomen, bindt de CodeMeter licen­tie­server alleen via poort 22350 in het geval de server is gecon­fi­gu­reerd om te werken binnen een netwerk. Actief binnen een Docker container ontvangt de server alleen aanvragen van actieve appli­ca­ties en reageert dan ofwel via een licentie in de container of geeft de aanvraag als client door aan een andere CodeMeter licen­tie­server in het netwerk. 

Pin It on Pinterest

Share This