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 laitetaaneksis
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.
Keskustele foorumilla Katiskan foorumi