SMS ziÅas ir vispopulÄrÄkÄ divu faktoru autentifikÄcijas (2FA) metode. To izmanto bankas, elektroniskie un kriptonauda maki, pastkastes un visa veida pakalpojumi;
Esmu saÅ”utis par Å”o scenÄriju, jo Ŕī metode nav droÅ”a. Numura maiÅa no vienas SIM kartes uz otru sÄkÄs mobilo sakaru Äras sÄkumÄ ā Å”Ädi tiek atjaunots numurs, ja SIM karte tiek nozaudÄta. āDigitÄlÄs naudas zÄdzÄ«bu speciÄlistiā saprata, ka iespÄju āpÄrrakstÄ«t SIM kartiā var izmantot krÄpnieciskÄs shÄmÄs. Galu galÄ tas, kurÅ” pÄrvalda SIM karti, var kontrolÄt citu cilvÄku tieÅ”saistes banku, elektroniskos makus un pat kriptovalÅ«tu. Un jÅ«s varat iegÅ«t citas personas numuru, uzpÄrkot telekomunikÄciju darbinieku, izmantojot maldinÄÅ”anu vai viltotus dokumentus.
Ir atklÄtas tÅ«kstoÅ”iem SIM karÅ”u maiÅas epizožu, kÄ tiek saukta Ŕī krÄpÅ”anas shÄma. Katastrofas mÄrogs liecina, ka pasaule drÄ«zumÄ atteiksies no 2FA, izmantojot SMS. Bet tas nenotiek - iekÅ”Ä
MÄs piedÄvÄjam izmantot droÅ”o 2FA metodi ar vienreizÄju kodu piegÄdi, izmantojot blokÄ·Ädi, un mÄs jums pateiksim, kÄ pakalpojuma Ä«paÅ”nieks var to savienot.
Skaits sasniedz miljonus
SaskaÅÄ ar Londonas policijas datiem 2019. gadÄ krÄpÅ”anÄs ar SIM swap palielinÄjÄs par 63%, un uzbrucÄja āvidÄjais rÄÄ·insā bija 4,000 GBP. KrievijÄ statistiku neatradu, bet pieÅemu, ka tÄ ir vÄl sliktÄka.
SIM maiÅa tiek izmantota, lai nozagtu populÄros Twitter, Instagram, Facebook, VK kontus, bankas kontus un nesen pat kriptovalÅ«tas -
MaijÄ ASV MiÄiganas Austrumu apgabala prokuratÅ«ra
Džoela Ortiza fotogrÄfija universitÄtes preses konferencÄ. PÄc diviem gadiem viÅÅ” tiks aizturÄts par kiberkrÄpÅ”anu.
KÄ darbojas SIM maiÅa
"ApmaiÅa" nozÄ«mÄ apmaiÅu. VisÄs Å”ÄdÄs shÄmÄs noziedznieki pÄrÅem upura tÄlruÅa numuru, parasti atkÄrtoti izsniedzot SIM karti, un izmanto to, lai atiestatÄ«tu paroli. Tipiska SIM apmaiÅa teorÄtiski izskatÄs Å”Ädi:
- IzlÅ«koÅ”anas dienests. KrÄpnieki uzzina upura personÄ«go informÄciju: vÄrdu un tÄlruÅa numuru. Tos var atrast atklÄtajos avotos (sociÄlajos tÄ«klos, draugos) vai saÅemt no lÄ«dzzinÄtÄja - mobilÄ operatora darbinieka.
- BloÄ·ÄÅ”ana. CietuÅ”Ä SIM karte ir deaktivizÄta; Lai to izdarÄ«tu, vienkÄrÅ”i piezvaniet uz pakalpojumu sniedzÄja tehnisko atbalstu, norÄdiet numuru un sakiet, ka tÄlrunis ir pazaudÄts.
- UzÅemiet, pÄrsÅ«tiet numuru uz SIM karti. Parasti tas tiek darÄ«ts arÄ« ar lÄ«dzzinÄtÄja starpniecÄ«bu telekomunikÄciju uzÅÄmumÄ vai ar dokumentu viltoÅ”anu.
ReÄlajÄ dzÄ«vÄ lietas ir vÄl smagÄkas. UzbrucÄji atlasa upuri un pÄc tam katru dienu izseko tÄlruÅa atraÅ”anÄs vietu ā viens pieprasÄ«jums saÅemt informÄciju, ka abonents pÄrgÄjis uz viesabonÄÅ”anu, maksÄ 1-2 centus. TiklÄ«dz SIM kartes Ä«paÅ”nieks ir devies uz ÄrzemÄm, sakaru veikalÄ ar menedžeri sarunÄjas par jaunas SIM kartes izsniegÅ”anu. Tas maksÄ apmÄram 50 dolÄrus (atradu informÄciju - dažÄdÄs valstÄ«s un pie dažÄdiem operatoriem no 20 lÄ«dz 100 dolÄriem), un sliktÄkajÄ gadÄ«jumÄ vadÄ«tÄjs tiks atlaists - atbildÄ«ba par to nav.
Tagad visas SMS saÅems uzbrucÄji, un telefona Ä«paÅ”nieks neko nevarÄs darÄ«t ā viÅÅ” atrodas ÄrzemÄs. Un tad ļaundari iegÅ«st piekļuvi visiem upura kontiem un, ja vÄlas, maina paroles.
IespÄjas atgriezt nozagto mantu
Bankas dažreiz izmitina upurus pusceÄ¼Ä un izÅem pÄrskaitÄ«jumus no viÅu kontiem. TÄpÄc fiat naudu iespÄjams atdot arÄ« tad, ja noziedznieks netiek atrasts. Bet ar kriptovalÅ«tas makiem viss ir sarežģītÄk - un tehniski, un likumdoÅ”anas jomÄ. LÄ«dz Å”im neviena maiÅa/maciÅa nav izmaksÄjusi kompensÄcijas maiÅas upuriem.
Ja cietuÅ”ie vÄlas aizstÄvÄt savu naudu tiesÄ, viÅi vaino operatoru: viÅÅ” radÄ«ja apstÄkļus naudas zÄdzÄ«bai no konta. TieÅ”i tÄ arÄ« darÄ«ju
PagaidÄm nevienai valstij nav darbojoÅ”u shÄmu, lai likumÄ«gi aizsargÄtu kriptovalÅ«tas Ä«paÅ”niekus. Nav iespÄjams apdroÅ”inÄt savu kapitÄlu vai saÅemt kompensÄciju par tÄ zaudÄjumiem. TÄpÄc mijmaiÅas uzbrukuma novÄrÅ”ana ir vieglÄka nekÄ tÄ seku novÄrÅ”ana. VisredzamÄkais veids ir izmantot uzticamÄku "otro faktoru" 2FA.
SIM maiÅa nav vienÄ«gÄ problÄma ar 2FA, izmantojot SMS
ApstiprinÄjuma kodi SMS ir arÄ« nedroÅ”i no tehniskÄ viedokļa. ZiÅojumus var pÄrtvert signalizÄcijas sistÄmas 7 (SS7) neaizlÄpÄ«tu ievainojamÄ«bu dÄļ. 2FA, izmantojot SMS, ir oficiÄli atzÄ«ta par nedroÅ”u (ASV NacionÄlais standartu un tehnoloÄ£iju institÅ«ts to saka savÄ ziÅojumÄ
TajÄ paÅ”Ä laikÄ 2FA klÄtbÅ«tne lietotÄjam bieži rada viltus droŔības sajÅ«tu, un viÅÅ” izvÄlas vienkÄrÅ”Äku paroli. TÄpÄc Å”Äda autentifikÄcija to neapgrÅ«tina, bet atvieglo uzbrucÄja piekļuvi kontam.
Un bieži vien SMS pienÄk ar lielu kavÄÅ”anos vai nesanÄk vispÄr.
Citas 2FA metodes
Protams, viedtÄlruÅos un SMS gaisma nesaplÅ«da. Ir arÄ« citas 2FA metodes. PiemÄram, vienreizÄjie TAN kodi: primitÄ«va metode, bet tÄ darbojas ā dažÄs bankÄs to izmanto joprojÄm. Ir sistÄmas, kas izmanto biometriskos datus: pirkstu nospiedumus, tÄ«klenes skenÄÅ”anu. VÄl viena iespÄja, kas Ŕķiet saprÄtÄ«gs kompromiss ÄrtÄ«bas, uzticamÄ«bas un cenas ziÅÄ, ir Ä«paÅ”as 2FA lietojumprogrammas: RSA Token, Google Authenticator. Ir arÄ« fiziskÄs atslÄgas un citas metodes.
TeorÄtiski viss izskatÄs loÄ£iski un uzticami. TaÄu praksÄ mÅ«sdienu 2FA risinÄjumiem ir problÄmas, un to dÄļ realitÄte atŔķiras no gaidÄ«tÄ.
SaskaÅÄ ar
LietotÄji daudzas 2FA metodes saista ar bailÄm, ka piekļuve tiks zaudÄta. FiziskÄ atslÄga vai TAN paroļu saraksts var tikt pazaudÄts vai nozagts. Man personÄ«gi ir bijusi slikta pieredze ar Google autentifikatoru. Mans pirmais viedtÄlrunis ar Å”o lietojumprogrammu sabojÄjÄs ā novÄrtÄjiet manus centienus atjaunot piekļuvi maniem kontiem. VÄl viena problÄma ir pÄreja uz jaunu ierÄ«ci. Google autentifikatoram droŔības apsvÄrumu dÄļ nav eksportÄÅ”anas iespÄjas (ja atslÄgas var eksportÄt, kÄda tur ir droŔība?). Reiz atslÄgas nÄsÄju manuÄli, un tad nolÄmu, ka veco viedtÄlruni ir vieglÄk atstÄt kastÄ uz plaukta.
2FA metodei jÄbÅ«t Å”Ädai:
- DroÅ”i ā tikai jÅ«s, nevis uzbrucÄji, drÄ«kstat piekļūt jÅ«su kontam
- Uzticams ā jÅ«s varat piekļūt savam kontam, kad vien tas ir nepiecieÅ”ams
- Ärts un pieejams ā 2FA lietoÅ”ana ir skaidra un aizÅem minimÄlu laiku
- LÄts
MÄs uzskatÄm, ka blokÄ·Äde ir pareizais risinÄjums.
Izmantojiet 2FA blokÄ·ÄdÄ
LietotÄjam 2FA blokÄ·ÄdÄ izskatÄs tÄpat kÄ vienreizÄju kodu saÅemÅ”ana ar SMS. VienÄ«gÄ atŔķirÄ«ba ir piegÄdes kanÄls. 2FA koda iegÅ«Å”anas metode ir atkarÄ«ga no tÄ, ko piedÄvÄ blokÄ·Äde. MÅ«su projektÄ (informÄcija ir manÄ profilÄ) Ŕī ir tÄ«mekļa lietojumprogramma, Tor, iOS, Android, Linux, Windows, MacOS.
Pakalpojums Ä£enerÄ vienreizÄju kodu un nosÅ«ta to kurjeram blokÄ·ÄdÄ. TÄlÄk seko klasika: lietotÄjs servisa saskarnÄ ievada saÅemto kodu un piesakÄs.
RakstÄ
- Viens klikŔķis, lai izveidotu kontu ā bez tÄlruÅiem vai e-pastiem.
- Visi ziÅojumi ar 2FA kodiem ir Å”ifrÄti no end-to-end curve25519xsalsa20poly1305.
- MITM uzbrukums ir izslÄgts ā katrs ziÅojums ar 2FA kodu ir transakcija blokÄ·ÄdÄ, un to paraksta Ed25519 EdDSA.
- ZiÅojums ar 2FA kodu nonÄk savÄ blokÄ. Bloku secÄ«bu un laikspiedolu nevar labot, un lÄ«dz ar to arÄ« ziÅojumu secÄ«bu.
- Nav centrÄlÄs struktÅ«ras, kas pÄrbaudÄ«tu ziÅojuma āautentitÄtiā. To veic sadalÄ«ta mezglu sistÄma, kuras pamatÄ ir vienprÄtÄ«ba, un tÄ pieder lietotÄjiem.
- Nevar atspÄjot ā kontus nevar bloÄ·Ät un ziÅojumus nevar izdzÄst.
- Piekļūstiet 2FA kodiem no jebkuras ierÄ«ces jebkurÄ laikÄ.
- ZiÅojuma piegÄdes apstiprinÄjums ar 2FA kodu. Pakalpojums, kas nosÅ«ta vienreizÄjo paroli, noteikti zina, ka tÄ ir piegÄdÄta. Nav pogas āSÅ«tÄ«t vÄlreizā.
Lai salÄ«dzinÄtu ar dažÄm citÄm 2FA metodÄm, es izveidoju tabulu:
LietotÄjs saÅem kontu blokÄ·Ädes Messenger, lai saÅemtu kodus sekundÄ ā pieteikÅ”anÄs tiek izmantota tikai ieejas frÄze. TÄpÄc pieteikÅ”anÄs metodes var atŔķirties: varat izmantot vienu kontu, lai saÅemtu kodus visiem pakalpojumiem, vai arÄ« varat izveidot atseviŔķu kontu katram pakalpojumam.
Ir arÄ« neÄrtÄ«bas ā kontÄ ir jÄbÅ«t vismaz vienam darÄ«jumam. Lai lietotÄjs saÅemtu Å”ifrÄtu ziÅojumu ar kodu, ir jÄzina viÅa publiskÄ atslÄga, un tÄ blokÄ·ÄdÄ parÄdÄs tikai ar pirmo darÄ«jumu. TÄ mums izdevÄs no tÄ izkļūt: devÄm viÅiem iespÄju makÄ saÅemt bezmaksas žetonus. TomÄr labÄks risinÄjums ir nosaukt kontu par publisko atslÄgu. (SalÄ«dzinÄjumam mums ir konta numurs U1467838112172792705 ir publiskÄs atslÄgas atvasinÄjums cc1ca549413b942029c4742a6e6ed69767c325f8d989f7e4b71ad82a164c2ada. Kurjeram tas ir ÄrtÄk un lasÄmÄk, bet sistÄmai 2FA kodu nosÅ«tÄ«Å”anai tas ir ierobežojums). DomÄju, ka nÄkotnÄ kÄds pieÅems Å”Ädu lÄmumu un pÄrcels āÄrtÄ«bas un pieejamÄ«buā uz zaļo zonu.
2FA koda nosÅ«tÄ«Å”anas cena ir patieÅ”Äm zema - 0.001 ADM, tagad tÄ ir 0.00001 USD. Atkal, jÅ«s varat paaugstinÄt savu blokÄ·Ädi un padarÄ«t cenu par nulli.
KÄ savienot 2FA blokÄ·ÄdÄ ar jÅ«su pakalpojumu
Es ceru, ka varÄju ieinteresÄt dažus lasÄ«tÄjus pievienot saviem pakalpojumiem blokÄ·Ädes autorizÄciju.
Es jums pastÄstÄ«Å”u, kÄ to izdarÄ«t, izmantojot mÅ«su kurjeru kÄ piemÄru, un pÄc analoÄ£ijas varat izmantot citu blokÄ·Ädi. 2FA demonstrÄcijas lietotnÄ mÄs izmantojam postgresql10, lai saglabÄtu konta informÄciju.
Savienojuma posmi:
- Izveidojiet kontu blokÄ·ÄdÄ, no kura nosÅ«tÄ«sit 2FA kodus. JÅ«s saÅemsiet ieejas frÄzi, kas tiek izmantota kÄ privÄta atslÄga ziÅojumu Å”ifrÄÅ”anai ar kodiem un darÄ«jumu parakstÄ«Å”anai.
- Pievienojiet savam serverim skriptu, lai Ä£enerÄtu 2FA kodus. Ja jau izmantojat kÄdu citu 2FA metodi ar vienreizÄju paroles piegÄdi, jÅ«s jau esat pabeidzis Å”o darbÄ«bu.
- Pievienojiet savam serverim skriptu, lai nosÅ«tÄ«tu kodus lietotÄjam blokÄ·Ädes ziÅojumapmaiÅas programmÄ.
- Izveidojiet lietotÄja interfeisu 2FA koda nosÅ«tÄ«Å”anai un ievadÄ«Å”anai. Ja jau izmantojat kÄdu citu 2FA metodi ar vienreizÄju paroles piegÄdi, jÅ«s jau esat pabeidzis Å”o darbÄ«bu.
1 Konta izveide
Konta izveide blokÄ·ÄdÄ nozÄ«mÄ privÄtÄs atslÄgas, publiskÄs atslÄgas un atvasinÄtas konta adreses Ä£enerÄÅ”anu.
PirmkÄrt, tiek Ä£enerÄta BIP39 ieejas frÄze un no tÄs tiek aprÄÄ·inÄta SHA-256 jaucÄjfrÄze. Hash tiek izmantots, lai Ä£enerÄtu privÄto atslÄgu ks un publisko atslÄgu kp. No publiskÄs atslÄgas, izmantojot to paÅ”u SHA-256 ar inversiju, mÄs iegÅ«stam adresi blokÄ·ÄdÄ.
Ja vÄlaties katru reizi nosÅ«tÄ«t 2FA kodus no jauna konta, konta izveides kods bÅ«s jÄpievieno serverim:
import Mnemonic from 'bitcore-mnemonic'
this.passphrase = new Mnemonic(Mnemonic.Words.ENGLISH).toString()
ā¦
import * as bip39 from 'bip39'
import crypto from 'crypto'
adamant.createPassphraseHash = function (passphrase) {
const seedHex = bip39.mnemonicToSeedSync(passphrase).toString('hex')
return crypto.createHash('sha256').update(seedHex, 'hex').digest()
}
ā¦
import sodium from 'sodium-browserify-tweetnacl'
adamant.makeKeypair = function (hash) {
var keypair = sodium.crypto_sign_seed_keypair(hash)
return {
publicKey: keypair.publicKey,
privateKey: keypair.secretKey
}
}
ā¦
import crypto from 'crypto'
adamant.getAddressFromPublicKey = function (publicKey) {
const publicKeyHash = crypto.createHash('sha256').update(publicKey, 'hex').digest()
const temp = Buffer.alloc(8)
for (var i = 0; i < 8; i++) {
temp[i] = publicKeyHash[7 - i]
}
return 'U' + bignum.fromBuffer(temp).toString()
}
DemonstrÄcijas lietojumprogrammÄ mÄs to vienkÄrÅ”ojÄm - izveidojÄm vienu kontu tÄ«mekļa lietojumprogrammÄ un no tÄ nosÅ«tÄm kodus. VairumÄ gadÄ«jumu tas ir arÄ« ÄrtÄk lietotÄjam: viÅÅ” zina, ka pakalpojums sÅ«ta 2FA kodus no konkrÄta konta, un var to nosaukt.
2 2FA kodu Ä£enerÄÅ”ana
Katram lietotÄja pieteikÅ”anÄs brÄ«dim ir jÄÄ£enerÄ 2FA kods. MÄs izmantojam bibliotÄku
const hotp = speakeasy.hotp({
counter,
secret: account.seSecretAscii,
});
LietotÄja ievadÄ«tÄ 2FA koda derÄ«guma pÄrbaude:
se2faVerified = speakeasy.hotp.verify({
counter: this.seCounter,
secret: this.seSecretAscii,
token: hotp,
});
3 2FA koda nosūtīŔana
Lai iesniegtu 2FA kodu, varat izmantot blokÄ·Ädes mezgla API, JS API bibliotÄku vai konsoli. Å ajÄ piemÄrÄ mÄs izmantojam konsoli - tas ir komandrindas interfeiss, utilÄ«ta, kas vienkÄrÅ”o mijiedarbÄ«bu ar blokÄ·Ädi. Lai nosÅ«tÄ«tu ziÅojumu ar 2FA kodu, jums ir jÄizmanto komanda send message
konsole.
const util = require('util');
const exec = util.promisify(require('child_process').exec);
ā¦
const command = `adm send message ${adamantAddress} "2FA code: ${hotp}"`;
let { error, stdout, stderr } = await exec(command);
AlternatÄ«vs veids, kÄ nosÅ«tÄ«t ziÅojumus, ir izmantot Å”o metodi send
JS API bibliotÄkÄ.
4 LietotÄja interfeiss
LietotÄjam ir jÄdod iespÄja ievadÄ«t 2FA kodu, to var izdarÄ«t dažÄdos veidos atkarÄ«bÄ no jÅ«su lietojumprogrammas platformas. MÅ«su piemÄrÄ tas ir Vue.
Blockchain divu faktoru autentifikÄcijas demonstrÄcijas lietojumprogrammas pirmkodu var apskatÄ«t vietnÄ
Avots: www.habr.com