{"guid":"085430d2-6dea-4cc4-a1f3-142cdfb6ac13","title":"The 'SUASecLab' Virtual Laboratory","subtitle":null,"slug":"froscon2022-2792-the_suaseclab_virtual_laboratory","link":"https://programm.froscon.org/2022/events/2792.html","description":"Because of access restrictions imposed during the Covid-19 pandemic, access to the physical laboratories of our university was no longer possible for students.\nLectures requiring specific hardware which is only available to students in laboratories could no longer take place.\nTherefore, we developed a solution which allows remote access to hardware of our laboratory.\nThe FLOSS application WorkAdventure is used as base for our platform.\nWorkAdventure (WA) already makes privacy friendly online meetings possible in a 16-bit 2D computer game design.\nWe extended WA to provide interactive, virtual lecture rooms by integrating BigBlueButton (BBB).\nHowever, privately communicating with fellow students sitting nearby is still possible.\nThis creates a more realistic feeling when attending online lectures.\nAs far as this solution is well known, but we wanted considerably more...\n\nIn order to give lecturers and students different rights in BBB, we reimplemented parts of the proprietary administration services of WA.\nWith them, we can give out different invitation links, so they also act as access control method.\nFurthermore, we embed noVNC, a web application acting as VNC client, into WA.\nWith noVNC, it is possible to access virtual machines (VM) we set up on the computers residing in our physical laboratory from home.\nHere, we also developed a software which makes it possible to work in groups on the VMs remotely.\nThis software puts all users connected to a VM into a Jitsi conference room, which allows the users to communicate.\nBy using USB pass-through, it is possible to connect the physical hardware to the VMs.\nThen, by accessing the VMs, students can control the hardware remotely.\nTherefore, we were able to offer the lectures and exercises requiring special hardware by offering them in our virtual laboratory.\n\nOur software solution has a high transferability: New use-cases can be addressed quickly, as web applications can be integrated into WA easily.\nOn the other side, parts of our solution can be used independently in own instances targeting other use cases.\nWe invite developers to participate in the project and further develop the solution for possible use in high schools.\n\nProblem Description:\n\nWorking in physical laboratories during the Covid-19 pandemic was no longer possible due to imposed access restrictions.\nThis makes lectures with special hardware requirements impossible, as students can no longer access the laboratory.\nFurthermore, we have not enough devices to hand out to students.\nTherefore, it was necessary to find a solution that allows us to use hardware located in a laboratory in groups online.\nIn our use case, students should be able to program Internet of Things (IoT) microcontrollers remotely.\n\nFurthermore, many online lectures were not as interactive as we hoped.\nWhile students can ask questions in popular online lecturing tools like BigBlueButton (BBB), it is not possible to quickly switch between working in groups and lecturing.\nMoreover, switching between multiple groups is not straightforward.\nAlso discussing the lecture's topics with seat neighbors is no longer possible when using only BBB.\nTherefore, we looked for a solution, which creates a more lecture-like feeling.\nFurthermore, students should be able to work within groups and switch between them easily.\n\nEspecially commercial products often harvest user data and use it for analyses.\nSome companies even sell collected data to advertisement companies.\nHowever, the personal information of students should be well protected.\nTherefore, our solution should also be privacy-friendly.\nIn the optimal case, the used software follows privacy-by-design principles.\nThis means it only collects information which is necessary for operating the service.\n\n\nApproach:\n\nDuring our research in order to find a solution, we could not find a FLOSS application which offers all the features we required.\nTherefore, we decided to build our own platform.\n\nWe chose to use the FLOSS software WorkAdventure (WA), developed by TheCodingMachine, as underlying platform.\nWA is a web application which enables interactive online conferences and has a 16-bit 2D computer game design.\nWA follows the privacy-by-design principles, as almost all information exchanged with the clients is only stored temporary and removed from the backend after the user closes the tab.\nFurthermore, decentralized communication channels based on WebRTC technologies are used whenever possible.\n\nIn WA, people walk a character over a map.\nWhenever multiple people stand nearby, a communication channel is established between their clients and they can communicate.\nThe communication channel is closed when walking away from the group.\nHowever, this way of communication only works for smaller groups.\n\nWhen entering specific, pre-defined areas of the map, corresponding actions can be run in the users' browsers.\nBy default, WA uses this feature to allow embedding Jitsi conference rooms in order to make bigger conferences possible.\nFurthermore, WA allows embedding websites by using the HTML iframe tag.\n\nBased on these features, we decided to build our own maps and set up our own, customized, WA instance.\nThis instance extends the already mentioned capabilities by those we require.\n\nIn order to make online lectures possible, we embedded BigBlueButton, which was already used at our university as lecturing tool.\nFor this, we extended the frontend and the backend of WA to make an automated assignment of instructor and participant roles possible.\nThen, instructors are allowed to upload presentations, while participants are not.\nFurthermore, we reimplemented parts of the proprietary administration services in order to create different invitation links for assigning the different roles.\nBy using this way, either the instructor or participant role is assigned in BBB based on the link that was used to join the laboratory.\nMoreover, handing out unique invitation links provides access control for the virtual laboratory.\nWe can then define parts of the map as BBB rooms.\nWe use this for setting up lecture halls.\nBy enabling the group communication features mentioned above, it is possible to talk to fellow students sitting nearby while attending the lecture.\nThis creates a more realistic feeling when attending online lectures.\n\nFor making it possible to program IoT devices remotely, we set up virtual machines (VM) on different servers.\nWe can then connect the physical devices to the VMs by attaching them to the hypervisors and enabling USB passthrough.\n\nThe hypervisor provides remote access to the VMs by providing a VNC server.\nIn order to make access to the VMs from WA possible, we integrated noVNC, a web application acting as VNC client, into WA.\nHere, we use websockify to translate the data transmitted through the VNC server port to a websocket, which can then be accessed by noVNC.\nThen, it is possible to remotely control the VM and work with the attached USB devices.\nFurthermore, we extended WA to automatically authenticate WA users on the VMs in order to provide access control for the VMs.\n\nFor making it possible to work in groups, we developed the multi-user-vm-assigner.\nIt allows multiple people working on a VM to communicate by putting all people connected to a specific VM into a Jitsi Meet room.\n\nFor programming lectures, we also set up a general-purpose virtual PC pool.\nHere, students can try out different programming languages and get familiar with the GNU/Linux ecosystem.\nMoreover, Docker was installed on these VMs to feature a webserver, which also makes web development possible.\n\n\nTransferability:\n\nAs the solution bases on WA, it provides all features from WA.\nThis includes e.g. working in groups online and a high interactivity when meeting in groups as well as Jitsi conference rooms.\nThese features can be used for online meetings, such as conferences and lectures.\n\nWe extended these features by making it possible to work with computers in groups remotely.\nThis e.g. makes it possible to work on programming projects decentralized.\nAs, our virtual laboratory can be used for remote group work, online workshops and tutorials are also possible.\n\nMore features can be integrated easily into WA by embedding a corresponding web application.\nTherefore, the current software can be extended in order to adopt new use cases quickly.\nFurthermore it is possible to reuse parts of our solution (e.g. the reimplemented administration services) in own instances, even if they address other use cases.\n\nIt is our medium-term goal to further develop this solution so that it is suitable for use at high school.\n\nAdditional information:\n\nThe source code of the virtual laboratory is available on GitHub (https://github.com/SUASecLab).\nAn article about the laboratory was published in German language in the journal \"Informatik Spektrum\" of Springer Nature (https://doi.org/10.1007/s00287-022-01447-2).\n","original_language":"eng","persons":["Tobias Tefke","Ralf C. Staudemeyer"],"tags":["froscon2022","2792","2022","Live long and prosper - Communication platforms besides the mainstream"],"view_count":73,"promoted":false,"date":"2022-08-21T15:15:00.000+02:00","release_date":"2022-08-21T00:00:00.000+02:00","updated_at":"2026-02-01T16:30:13.161+01:00","length":3402,"duration":3402,"thumb_url":"https://static.media.ccc.de/media/events/froscon/2022/2792-085430d2-6dea-4cc4-a1f3-142cdfb6ac13.jpg","poster_url":"https://static.media.ccc.de/media/events/froscon/2022/2792-085430d2-6dea-4cc4-a1f3-142cdfb6ac13_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/froscon/2022/2792-085430d2-6dea-4cc4-a1f3-142cdfb6ac13.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/froscon/2022/2792-085430d2-6dea-4cc4-a1f3-142cdfb6ac13.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/froscon2022-2792-the_suaseclab_virtual_laboratory","url":"https://api.media.ccc.de/public/events/085430d2-6dea-4cc4-a1f3-142cdfb6ac13","conference_title":"FrOSCon 2022","conference_url":"https://api.media.ccc.de/public/conferences/froscon2022","related":[],"recordings":[{"size":204,"length":3402,"mime_type":"video/webm","language":"eng","filename":"froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2022-08-21T22:47:10.439+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2022/webm-sd/froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/61261","event_url":"https://api.media.ccc.de/public/events/085430d2-6dea-4cc4-a1f3-142cdfb6ac13","conference_url":"https://api.media.ccc.de/public/conferences/froscon2022"},{"size":585,"length":3402,"mime_type":"video/webm","language":"eng","filename":"froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2022-08-21T22:25:24.878+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2022/webm-hd/froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/61259","event_url":"https://api.media.ccc.de/public/events/085430d2-6dea-4cc4-a1f3-142cdfb6ac13","conference_url":"https://api.media.ccc.de/public/conferences/froscon2022"},{"size":32,"length":3402,"mime_type":"audio/opus","language":"eng","filename":"froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2022-08-21T18:34:16.038+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2022/opus/froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_opus.opus","url":"https://api.media.ccc.de/public/recordings/61210","event_url":"https://api.media.ccc.de/public/events/085430d2-6dea-4cc4-a1f3-142cdfb6ac13","conference_url":"https://api.media.ccc.de/public/conferences/froscon2022"},{"size":125,"length":3402,"mime_type":"video/mp4","language":"eng","filename":"froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2022-08-21T18:32:08.077+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2022/h264-sd/froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_sd.mp4","url":"https://api.media.ccc.de/public/recordings/61208","event_url":"https://api.media.ccc.de/public/events/085430d2-6dea-4cc4-a1f3-142cdfb6ac13","conference_url":"https://api.media.ccc.de/public/conferences/froscon2022"},{"size":51,"length":3402,"mime_type":"audio/mpeg","language":"eng","filename":"froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2022-08-21T18:20:22.661+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2022/mp3/froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/61206","event_url":"https://api.media.ccc.de/public/events/085430d2-6dea-4cc4-a1f3-142cdfb6ac13","conference_url":"https://api.media.ccc.de/public/conferences/froscon2022"},{"size":422,"length":3402,"mime_type":"video/mp4","language":"eng","filename":"froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2022-08-21T18:14:38.183+02:00","recording_url":"https://cdn.media.ccc.de/events/froscon/2022/h264-hd/froscon2022-2792-eng-The_SUASecLab_Virtual_Laboratory_hd.mp4","url":"https://api.media.ccc.de/public/recordings/61198","event_url":"https://api.media.ccc.de/public/events/085430d2-6dea-4cc4-a1f3-142cdfb6ac13","conference_url":"https://api.media.ccc.de/public/conferences/froscon2022"}]}