Main navigation | Main content
Since we haven't gotten a chance to cover much actual security content in the course yet, the theme of today's lab will just be to give you experience with how the labs will run in the future, and some practice with different tools that you can using the CSE Labs machines for collaborating online. Some of these would be most important if you're collaborating remotely, so they're not strictly needed if you're in the lab and close enough that you can just look over someone's shoulder. But you can try them out on the lab machines, or if you've brought a laptop you can try connecting to the lab machines from it.
For the in-person lab, we recommend that you work on this lab in groups of 2-3 students sitting near you in the lab, though this is not required.
You've probably already used Vole in previous CS classes, since it's usually the first recommended way to access CSE Labs computing resources remotely. But just in case you haven't, it's a remote-desktop login system which displays a Linux-based graphical interface inside a window in your web browser. The starting page with basic information and links about Vole is https://vole.cse.umn.edu/
The graphical desktop features of Vole are going to be less important for a lot of the work we do, so it's also good to know about how you can make a terminal-only connection using SSH. Unix and Mac computers likely already have a command-line "ssh" program. If you're using Windows, CSE-IT's suggestions are to use the Windows Subsystem for Linux (WSL) or Windows Terminal which are both free of charge. There are also a large number of third party options.
With SSH there's also a choice of what CSE Labs computer to connect to. There isn't a single large entry point maintained for SSH in the same way the Vole servers work. So our recommendation instead is that you randomly pick one of the Linux workstations in the room where our in-person labs are held. There's a predictable naming pattern; since the lab is 1-250 Keller Hall, the names of the machines all look like:
csel-kh1250-XX.cselabs.umn.eduwhere the XX is replaced by a two digit number between 01 and 37. If you're sitting in the lab, you might try connecting to the machine in front of you, or from it to the one next to you. If you're outside the lab, you can a computer number randomly to spread the load out across all the machines, like with the command:
perl -e 'printf "%02d\n", 1 + int(rand(37))'
As a combination of the two ideas mentioned above, CSE-IT has also arranged that you can make graphical connections to the lab machines in the same way you connect to Vole (the underlying technology is called FastX). Just put the host name mentioned in the previous paragraph into your web browser.
Another option that lies between having just a terminal with plain SSH and having a complete remote desktop with Vole/FastX is to view the GUI for a single application remotely using the SSH feature called "X forwarding". The X Window System here, or "X11", is the protocol that Unix systems commonly use for GUI applications. X forwarding is most convenient when your local machine is running Linux or another kind of Unix, because it's probably already running compatible X software. But X software also exists for MacOS and for Windows. CSE-IT's instructions can be found on this page, look for the drop-down labeled "Displaying Graphical Applications (X11 Forwarding)". A previous semester's TA also recommended some sets of instructions from StackExchange and New Mexico State.
You've almost certainly had experience the last few years using Zoom for online classes or meetings. If you haven't already used the features of Zoom that let you share a view of a single window or your whole desktop with someone else you're meeting with, you might want test that out with a partner.
Zoom screen sharing is view-only: you can see what someone else is doing but not do things for them. Sometimes that can be a good way of working; in pair programming terminology you'll hear people talk about one person "driving" at a time. But in other cases it can be convenient for multiple people to all be able to interact with programs at once. For command-line/terminal programs, the easiest solution we've found for doing this is a program called tmate, which works using a combination of tmux and SSH and public rendezvous servers. The web site is at https://tmate.io/ and on the CSE Labs machines it should already be installed as tmate.
Try setting up a shared terminal session on one of the CSE Labs machines with the other people in your group an run some commands together.
Some of the reading materials in this course will be ones that you'd have to pay to get access to as an independent person, but which are available without charge to the university community because the U Libraries have already paid for that access. If you're browsing from an on-campus computer (e.g., Vole, in a lab, or on the eduroam wireless), the free access will usually just work automatically, but not if you're off the campus network.
A general purpose tool you can use to make your network connection from off campus look like an on-campus one is a VPN. Information about the campus VPN is available here. But the VPN can be a bit complicated to install and use. So we recommend a more specialized service instead for this purpose.
This service is a proxy that the libraries run specifically just for accessing library resources over the web. You switch to using the proxy by putting the following prefix in front of the URL you want to access:
http://login.ezproxy.lib.umn.edu/login?url=That's a bit of a pain to type every time, though. In many web browsers you can set this up as what's called a bookmarklet, so that transforming the URL is as easy as choosing a menu entry. The libraries' information about how to do this is here.
Next time you're off campus, try one of the methods for accessing libraries content out by downloading a PDF for this paper. (This paper isn't an assigned reading, but it is relevant to security.)
If you haven't already tried asking large language models (tools like ChatGPT) questions about computer science, we recommend you try a few. In order to get a sense of what these AI systems are good or bad at, it's best to ask questions that are relatively challenging, but where you can reasonably evaluate the correctness of the answers. It may be too early for you to have many questions about computer security, but for instance you might try asking questions related to C programming or material from CSci 2021.
In a situation like this where you're asking a modest number of non-sensitive questions, it's easiest to use one of the free-of-charge LLMs whose chat interfaces are available on the web. ChatGPT is the best known, and their basic version is free for limited usage, and Claude is competing LLM that it is currently in free beta for the US and UK. Both of these may require telephone verification when you first create an account. Google's Bard is not enabled under UMN Google accounts, but you should be able to use it if you have a separate Google account, like one associated with a non-UMN GMail address. Microsoft's Bing search engine now also has AI features, though it's mostly accessible through other Microsoft applications so it's most convenient on Windows.
You can also run large language models directly on a local device, though these are typically slower and less powerful than the ones hosted in the cloud by large companies. One easy way to get started is the GUI tool GPT4All. Because even the compressed models are a large download, we don't suggest trying to install it on the lab machines.
If you get any answers in your AI testing that are interesting, either because they are very insightful, or because they are amusingly wrong, consider sharing them in the "ai_q&a" folder on Piazza.
If you found everything above easy enough, here are some brief notes on further things you can look into: