Som utvikler for Dagbladet er ingen dag lik. I det ene øyeblikket jobber jeg for å sørge for at alt fungerer som det skal, i det neste undersøker jeg elektroniske spor eller hjelper redaksjonen med tekniske spørsmål.
Ettermiddagen fredag den 20. september havnet fort i den siste kategorien.
Jeg var klar for å ta helg da en journalist kom og spurte: “Du, hva er det PST har tweeta nå?”
Jeg merket en viss skepsis da jeg nevnte at det er sikkert en ny kode rettet inn mot sånne som meg (datanerder).
På dette tidspunktet var ikke stillingsutlysningen publisert, men det ble nå uansett publisert en sak om det. Men nysgjerrigperen i meg våknet også, for hva var det PST retweeta denne gangen?
«...for hva var det PST retweeta denne gangen?»
For litt kontekst rundt PSTs forkjærlighet for en hai, kan jeg anbefale Roy Solbergs artikkel om den forrige PST-nøtten.
Base64-enkoda
Det første som slo meg var at dette var en Base64-enkoda tekstsnutt, men jeg stusset over at den ikke kunne dekodes til noe fornuftig.
Hadde det vært et bilde eller lignende ville kommandoen “file” ha avslørt det med en gang:
For å dobbelsjekke at jeg ikke overså noe helt (u)logisk, kjørte jeg og resultatet gjennom hexdump for å se om det kunne ligge noen spor (Google-søk på hex-koder kan gi mange tips):
Men nei, ingen tips her, heller.
På dette tidspunktet hadde også stillingsutlysningen kommet ut, men da jeg sjekket denne (på mobil) ga ikke den noen hint til denne kodequiz-en.
Så her var det bare en ting å gjøre: Ta en pause og gjøre noe helt annet (vi snakker nå sen fredag ettermiddag, tross alt).
AES-kryptering i Python
Jeg er neppe den eneste utvikleren som kan skrive under på at en god gammeldags pause klarer å løse de verste av problemer.
Etter en pause startet jeg med å besøke stillingsutlysningen en gang til, denne gangen på desktop. Et bilde som dukket opp på mobil som fremstod som et rent stockphoto hadde plutselig masse juicy informasjon i seg:
Her ser man en rekke referanser til den forrige nøtten, som blant annet twitterhaien, en pcap-cap og ikke minst kodereferanser til HackerMan i hovedvinduet. Hovedvinduet viser også Python3-koden brukt for å generere en AES-kryptert tekst. Denne teksten er da den samme som vi har sett på Twitter.
Jeg har ikke drevet med AES-kryptering i Python før, men tenkte at det var verdt et forsøk. Når koden nevner nøkkelen som er brukt for kryptering, bør en jo også kunne dekryptere med samme nøkkelen.
Etter å ha lest meg opp på hvordan man utfører AES-dekryptering i Python (takk til Stackoverflow!) satt jeg igjen med følgende 12-linjers kode:
Kjøring av denne kodesnutten ga meg da svaret:
“erer! Du klarte det! Beklager, men denne gangen har vi ikke laget flere oppgaver. Håper du vil søke jobben. Hvis du blir ansatt kan vi love deg mange utfordrende oppgaver.”
Slik hacker du som i Beforeigners
kode24 avslører koden i årets største, norske TV-serie. 🔍
Klarer du bedre?
Her kan en da anta at den krypterte teksten egentlig er:
“Gratulerer! Du klarte det! Beklager, men denne gangen har vi ikke laget flere oppgaver. Håper du vil søke jobben. Hvis du blir ansatt kan vi love deg mange utfordrende oppgaver.”
Men som de fleste utviklere nok vet, noen ganger må man si stopp, nå kan ikke koden perfeksjoneres for å få til “det lille ekstra”. Her kan man forstå hva svaret var, uten å gjøre koden feilfri.
Men selv om jeg ikke har feilsøkt koden min noe mer, endrer det ikke på det faktum at jeg irriterer meg litt over å ha kode som har spist opp litt av svaret.
Så hvis du har løst denne og fått riktig svar, del gjerne koden på kode24-klubben på Facebook! 😃
(I tilfelle du lurte: Søknadsfristen på PST-stillingen gikk ut 13. oktober 2019.)
Her er hele løsningen på den første PST-gåten
PST utlyste jobb med en diger, digital gåte.