Selväkielinen onion-linkki

You are currently viewing Selväkielinen onion-linkki

Varsinaisesti selväkielistä onion-linkkiä ei voi olla, koska se on hash ja pitää sisällään clearnetin puolella tunnetut IP-osoitteen ja SSL-sertifikaatin. Oikeammin, toiminnallisuuksiltaan vastaavat asiat. Mutta linkin alussa saattaa olla selväkielinen sana, joka auttaa tunnistamaan linkin.

Esimerkiksi näin:

eksiszkream6iqtwr5ci3vdhorkonagudym25anokjvmcbayqozg77yd.onion

Nyt tiedetään, jos siis tietää sivuston, että linkki osoittaa eksis.one sivustolle.

Tuon nimi on vanity address – enkä oikein ymmärrä konseptia. Mutta käytän sitä.

Mutta pohjimmiltaan kyse on siitä, että onion-osoitteet perustuvat kryptografisiin avaimiin, eli ne on salattu. Palvelimella, johon osoite osoittaa, on julkinen avain ja onion-osoite on sen base32-hash ja siksi 56 merkkiä pitkä.

Minä ymmärsin tuosta niin paljon, että se on salattu.

Mutta ongelma on siinä, että onion-osoitetta ei voi valita. Se tehdään salausalgoritmilla sen serverillä olevan salaisen avain ja julkisen avaimen avulla. Jos alkuun halutaan jokin merkkijono, niin sitten laitetaan tietokone töihin ja generoimaan uusi avainpareja niin kauan, että haluttu merkkijono löytyy alusta.

Kuulostaa brute force tekniikalta? Ei vain kuulosta, vaan on sitä. Ainakin minun ymmärrykseni ja hakutulosten mukaan.

Kyllä, tuolla tekniikalla voi murtaa onion-osoitteen ja ohjata sen mihin haluaa. Teoriassa.

Kun tein tuon eksis... urlin, niin niitä tehtiin varmaan 100 viidessä minuutissa keskitason neljällä vCPU:lla. Kun lisäsin merkkejä seitsemään, niin minulla meni kaksi tuntia saada yksi ainut katiska... onion-osoite.

Siksi en tehnyt eksisone... alkua. Yhden merkin lisäys kahdeksaan olisi kasvattanut generointiajan ehkä päivään tai kahteen.

Jos osaa potenssilaskuja, niin voi alkaa arvioimaan paljonko aikaa tarvitaan 56 merkin murtoon. Siihen ei riitä nykyinen tietotekniikka – ainakaan vielä, ehkä tulevaisuuden kvanttitietokoneet muuttavat tilanteen.

Tuo tarkoittaa kahta asiaa.

  • Jos haluat onion-linkin alkuun tunnistettavan merkkijonon, niin pidä se lyhyenä
  • Älä tee sitä jollain neliytimisellä VPS:llä tai kotitietokoneella. Vuokraa samantien joku 16 vcpu:n VPS siksi ajaksi, että haluttu onion-linkki on tehty. Jos on tuuria, niin ensimmäinen tulee äkkiä ja se maksoi sinulle alle euron. Jos ei ole tuuria (kyllä, elämme todennäköisyyksien maailmassa) niin johonkin 8 merkkiin menee päivä, ja silloin kulut ovat pari euroa.

Mutta 6 tai alle merkkiä tulevat nopeasti. 5 merkkiä kestää ehkä 10 sekuntia neliytimisellä.

Miksikö generoida useampi vaihtoehto? Esteettisyyden tai jonkun sen kaltaisen asian takia. Useammasta vaihtoehdosta saa valittua sellaisen, joka näyttää hieman paremmalta silmään. Mutta Katiskan kohdalla otin samantien ensimmäisen, koska 7 merkkiä kestää niin kauan.

Minä tein omani VPS:ssä, joka hostaa Mastodon-instanssiani. Pelkästään siksi, että olen käytännössä ainoa aktiivinen käyttäjä, joten se on tyhjäkäynnillä ja mahdollinen error 50x ei kiusaa ketään. Nyt käyttöä on hiukan enemmän, ja nekin tulevat onionin kautta, joka lisää prosessorikuormaa (hiukan, mutta kuitenkin), joten seuraavalla kerralla laitan ylimääräisen virtuaaliserverin töihin.

Brute force syö prosessoritehon kokonaan, mutta ei vaadi muistia lähelle yhtään.

Asennus ja käyttö

Kaikki alkaa tarvittavien kirjastojen asentamisesta.

sudo apt update
sudo apt install -y gcc libc6-dev libsodium-dev make autoconf build-essential libssl-dev 

Makuasia mihin sen laittaa. Minä käytän tämän tapaisissa /opt hakemistoa.

cd /opt

Siirretään itse ohjelma kääntämistä varten:

git clone https://github.com/cathugger/mkp224o.git
cd mkp224o

Kääntäminen on aika rutiinia, ainakin jos ei tule virheitä, ja menee nopeasti. Jos tulee virheitä, niin minä en osaa auttaa.

./autogen.sh
./configure
make

Se on sitten siinä. Saattaa olla syytä lukea README.md.

Generointi toimii tällä

./mkp224o -s -d /root/eksis eksis
  • -s näyttää mitä tapahtuu
  • -d /root/eksis mihin hakemistoon generoidut avaimet laitetaan
  • eksis on haluttu kirjainsarja/sana

Pro tip: Jos rakennat pidempää, yli 5 merkkiä, niin tmux on ystäväsi.

Työ pysähtyy tutulla ctrl-c yhdistelmällä. Muutoin se jatkaa maailman tappiin saakka. Voi olla, että siellä on joku lippu laskurille, mutta minä en käyttänyt.

Generoidut avaimet

Kohdehakemistossa on onion-urlin mukaisesti tehtyjä kansioita. Niissä on tarvittavat tiedostot, jotka siirretään serverin tor-asennuksen oikeaan HiddenServiceDir hakemistoon.

Ennenkuin siirrät mitään, niin sammuta tor. Varmuuden vuoksi.

systemctl stop tor

Kun siirto on valmis, niin käynnistä tor.

sudo systemctl restart tor
sudo systemctl restart tor@default
  • minulla jostain syystä tor.service ei käynnistä tor@default.service vaikka se olisi juurikin sen tehtävä. Tai sitten olen vaan liian malttamaton.

Salaiset avaimet on sitten oikeasti salaisia, kuten aina salaushommissa. Jos vuodat hash-avaimet, niin kuka tahansa pystyy kaappamaan sivustosi, internet hajoaa ja ihmiskunta katoaa maapallolta tehokkaammin kuin mitä iso kivi tappoi dinosauruksia.

Tee siirto haluamallasi ja tarvitsemallasi tavalla. Koska minä teen töitä huomattavan paljon iPadillä (ergonomia on vain henkisesti heikoille), niin minulla on rootin kotihakemistot linkitetty Blink-appin kautta iPadin Tiedostot-appiin. Sieltä sitten kopioin tekemäni hakemiston kohdeserverille ja loppu on tavanomaista mv hommelia hakemistoon /var/lib/tor/joku_hidden_dir.

Joo. scp tai rsync olisi enemmän pro-meininkiä, mutta en minä koskaan niitä komentorotlia muista. Elämä saa olla joskus helppoakin, vaikka Apple samalla vakoileekin. Mutta ei yhtä paljon kuin Google tai kiinalaiset.

Minulla säilyi jopa omistajuudet oikeina. Ainoa joka muuttui oli jostain imestynyt -x lippu, joten avaintiedostoni luulivat olevansa scriptejä. Se korjaantui nopeasti chmod -x tempulla.

Jos oikeudet menevät rikki, niin Ubuntussa näin:

sudo chown -R debian-tor:debian-tor /var/lib/tor/joku_hidden_dir
sudo chmod 0700 /var/lib/tor/joku_hidden_dir

Koska minä siirsin olemassa olevaan hakemistoon, eli korvasin vanhat avaimet, niin riitti pelkästään se outo chmod -x ja omistajuuksille:

chown debian-tor:debian-tor *

Loppu on rutiinia. Katsot cat /var/lib/tor/joku_hidden_dir/hostname ja siirrät sen joka paikkaan missä sitä tarvitaan – vhostiin, Varnishiin jne.

Jakke Lehtonen

Olen tehnyt koulutuksia yrityksille miten palveluiden ja sisällön tulee toimia ihmiskäyttäjien näkökulmasta. Serverien sekä appien teknistä sielun elämää on joutunut ohessa opettelemaan. Toinen puoli toiminnasta on omaa sisällöntuottoa, mutta siinä on liian usein näkyvissä suutarien lapsien eksistentiaalinen ongelma. Profiili: Jakke Lehtonen

Keskustele foorumilla Katiskan foorumi

WordPressin kommentit: