Deplase an sekirite 2FA sou blockchain la

Mesaj SMS yo se metòd ki pi popilè nan otantifikasyon de faktè (2FA). Li se itilize pa bank, elektwonik ak kripto bous, bwat lèt ak tout kalite sèvis; kantite itilizatè metòd la ap apwoche 100%.

Mwen endiye nan senaryo sa a, paske metòd sa a pa an sekirite. Reyasignasyon yon nimewo soti nan yon kat SIM nan yon lòt te kòmanse nan kòmansman epòk mobil lan - se konsa nimewo a retabli lè yon kat SIM pèdi. "Espesyalis vòl lajan dijital" reyalize ke opsyon "reekri SIM kat" ka itilize nan konplo fwod. Apre yo tout, moun ki kontwole kat SIM la ka kontwole bank sou entènèt lòt moun, bous elektwonik, e menm lajan kript. Epi ou ka pran posesyon nimewo yon lòt moun nan kòronp yon anplwaye telecom, lè l sèvi avèk twonpe oswa fo dokiman.

Deplase an sekirite 2FA sou blockchain la

Dè milye de epizòd nan echanj SIM yo te dekouvri, jan yo rele konplo sa a fwod. Echèl dezas la sijere ke mond lan pral byento abandone 2FA atravè SMS. Men, sa pa rive - nan rechèch yo di ke se pa itilizatè ki chwazi metòd 2FA, men mèt sèvis yo.

Nou pwopoze itilize metòd 2FA an sekirite ak livrezon kòd yon sèl fwa atravè blockchain a, epi nou pral di w ki jan pwopriyetè sèvis la ka konekte li.

Konte a ale nan milyon

An 2019, fwod swap SIM te ogmante pa 63% dapre lapolis Lond, ak "bòdwo mwayèn" yon atakè te 4,000 GBP. Mwen pa jwenn okenn estatistik nan Larisi, men mwen sipoze ke yo menm vin pi mal.

Yo itilize echanj SIM pou vòlè popilè Twitter, Instagram, Facebook, kont VK, kont labank, ak dènyèman menm kriptografik lajan - Rapò jounal Times yo dapre Bitcoin antreprenè Joby Weeks. Ka gwo pwofil nan vòl kriptografik lè l sèvi avèk echanj SIM yo te eklate nan laprès la depi 2016; 2019 te wè yon pik reyèl.

Nan mwa me, Biwo Avoka Ameriken an pou distri lès Michigan pote akizasyon nèf jèn ki gen laj 19 ak 26 an: yo kwè yo fè pati yon gang pirate yo rele "Kominote a". Gang la chaje ak sèt atak swap, kòm yon rezilta ki entru yo te vòlè lajan kript ki vo plis pase $ 2,4 milyon dola. Ak nan mwa avril, Kalifòni etidyan Joel Ortiz te resevwa 10 ane nan prizon pou SIM echanj; pwodiksyon li te $ 7.5 milyon dola nan lajan kript.

Deplase an sekirite 2FA sou blockchain la
Foto Joel Ortiz nan yon konferans pou laprès inivèsite. Dezan apre yo pral arete l pou fwod cyber.

Ki jan SIM swap travay

"Swaping" vle di echanj. Nan tout konplo sa yo, kriminèl pran sou nimewo telefòn viktim nan, anjeneral nan re-emèt yon kat SIM, epi sèvi ak li pou reset modpas la. Yon swap SIM tipik nan teyori sanble sa a:

  1. Sèvis entèlijans. Èskro yo jwenn enfòmasyon pèsonèl viktim nan: non ak nimewo telefòn. Yo ka jwenn yo nan sous louvri (rezo sosyal, zanmi) oswa resevwa nan men yon konplis - yon anplwaye nan yon operatè mobil.
  2. Bloke. Kat SIM viktim nan dezaktive; Pou fè sa, jis rele sipò teknik founisè a, bay nimewo a epi di ke telefòn nan te pèdi.
  3. Capture, transfere nimewo a sou kat SIM ou. Anjeneral sa a se tou fè nan yon konplis nan konpayi an telecom oswa nan falsifikasyon nan dokiman.

Nan lavi reyèl bagay yo pi grav menm. Atakè yo chwazi yon viktim epi swiv kote telefòn nan chak jou - yon sèl demann pou resevwa enfòmasyon ke abònen an te chanje nan itinérance koute 1-2 santim. Le pli vit ke pwopriyetè kat SIM la ale aletranje, yo negosye ak manadjè a nan magazen kominikasyon an pou bay yon nouvo kat SIM. Li koute anviwon $50 (mwen te jwenn enfòmasyon - nan diferan peyi ak diferan operatè yo soti nan $20 pou rive nan $100), epi nan ka ki pi mal la manadjè a pral revoke - pa gen okenn responsablite pou sa.

Koulye a, tout SMS yo pral resevwa pa atakè yo, ak mèt kay la nan telefòn nan pa yo pral kapab fè anyen sou li - li se aletranje. Apre sa, mechan yo jwenn aksè nan tout kont viktim yo epi chanje modpas si yo vle.

Chans pou retounen pwopriyete yo vòlè li

Bank pafwa akomode viktim nan mwatye wout epi retire transfè nan kont yo. Se poutèt sa, li posib pou retounen lajan fiat menm si kriminèl la pa jwenn. Men, ak bous cryptocurrency tout bagay se pi konplike - ak teknikman, ak lejislativman. Jiskaprezan, pa gen yon sèl echanj / bous ki te peye konpansasyon pou viktim echanj.

Si viktim yo vle defann lajan yo nan tribinal, yo blame operatè a: li te kreye kondisyon yo pou vòl la nan lajan nan kont lan. Se egzakteman sa mwen te fè Michael Turpin, ki te pèdi 224 milyon dola akòz echanj.Li kounye a lajistis konpayi telekominikasyon AT&T.

Deplase an sekirite 2FA sou blockchain la

Jiskaprezan, pa gen okenn eta ki gen plan k ap travay pou pwoteje legalman pwopriyetè lajan kript. Li enposib pou asire kapital ou oswa resevwa konpansasyon pou pèt li. Se poutèt sa, anpeche yon atak swap pi fasil pase fè fas ak konsekans li yo. Fason ki pi evidan se sèvi ak yon "dezyèm faktè" ki pi serye pou 2FA.

Boukante SIM se pa pwoblèm nan sèlman ak 2FA atravè SMS

Kòd konfimasyon nan SMS yo tou danjere nan yon pwen de vi teknik. Mesaj yo ka entèsepte akòz frajilite ki pa patched nan Signaling System 7 (SS7). 2FA sou SMS yo rekonèt ofisyèlman kòm ensekirite (Enstiti Nasyonal Estanda ak Teknoloji Ameriken an di sa nan Gid otantifikasyon dijital).

An menm tan an, prezans nan 2FA souvan bay itilizatè a yon sans de fo sekirite, epi li chwazi yon modpas ki pi senp. Se poutèt sa, otantifikasyon sa yo pa fè li difisil, men li fè li pi fasil pou yon atakè jwenn aksè nan kont la.

E souvandfwa SMS i ariv avek en letan ouswa pa ariv ditou.

Lòt metòd 2FA

Natirèlman, limyè a pa t 'konvèje sou smartphones ak SMS. Gen lòt metòd 2FA. Pou egzanp, yon sèl-fwa kòd TAN: yon metòd primitif, men li travay - li toujou itilize nan kèk bank. Gen sistèm ki itilize done byometrik: anprent dwèt, analiz retin. Yon lòt opsyon ki sanble yon konpwomi rezonab an tèm de konvenyans, fyab ak pri se aplikasyon espesyal pou 2FA: RSA Token, Google Authenticator. Genyen tou kle fizik ak lòt metòd.

Nan teyori, tout bagay sanble lojik ak serye. Men, nan pratik, solisyon modèn 2FA gen pwoblèm, ak paske nan yo, reyalite a diferan de atant.

Dapre rechèch, itilizasyon 2FA se yon deranjman nan prensip, epi popilarite 2FA atravè SMS eksplike pa "mwens deranjman konpare ak lòt metòd" - resevwa kòd yon sèl fwa se konprann pou itilizatè a.

Itilizatè yo asosye anpil metòd 2FA ak pè ke aksè a pral pèdi. Kle fizik la oswa lis modpas TAN yo ka pèdi oswa yo vòlè li. Mwen pèsonèlman te fè move eksperyans ak Google Authenticator. Premye smartphone mwen an ak aplikasyon sa a te kraze - apresye efò m 'nan restore aksè nan kont mwen an. Yon lòt pwoblèm se chanje nan yon nouvo aparèy. Google Authenticator pa gen yon opsyon ekspòtasyon akòz rezon sekirite (si kle yo ka ekspòte, ki sekirite ki genyen?). Yon fwa mwen te pote kle yo manyèlman, ak Lè sa a, mwen deside ke li te pi fasil yo kite ansyen smartphone la nan yon bwat sou yon etajè.

Metòd 2FA a ta dwe:

  • Sekirize - sèlman oumenm epi pa atakè yo ta dwe jwenn aksè nan kont ou
  • Fyab - ou jwenn aksè nan kont ou chak fwa ou bezwen li
  • Pratik ak aksesib - lè l sèvi avèk 2FA klè epi li pran yon ti tan
  • Bon mache

Nou kwè ke blockchain se bon solisyon an.

Sèvi ak 2FA sou blockchain la

Pou itilizatè a, 2FA sou blockchain a sanble menm jan ak resevwa kòd yon sèl fwa via SMS. Sèl diferans lan se kanal livrezon an. Metòd pou jwenn yon kòd 2FA depann de sa blockchain la ofri. Nan pwojè nou an (enfòmasyon se nan pwofil mwen an) sa a se yon aplikasyon Web, Tor, iOS, Android, Linux, Windows, MacOS.

Sèvis la jenere yon kòd yon sèl fwa epi voye li bay mesaje a sou blockchain la. Lè sa a, swiv klasik yo: itilizatè a antre kòd la resevwa nan koòdone sèvis la ak ouvri sesyon an.

Deplase an sekirite 2FA sou blockchain la

Atik la Ki jan yon mesaje desantralize travay sou blockchain la? Mwen te ekri ke blockchain asire sekirite ak konfidansyalite transmisyon mesaj. Sou pwoblèm nan voye kòd 2FA, mwen pral mete aksan sou:

  • Yon klik pou kreye yon kont - pa gen telefòn oswa imèl.
  • Tout mesaj ki gen kòd 2FA yo ankripte fen-a-fen koub25519xsalsa20poly1305.
  • Atak MITM eskli - chak mesaj ki gen kòd 2FA se yon tranzaksyon sou blockchain la epi li siyen pa Ed25519 EdDSA.
  • Mesaj la ak kòd 2FA a fini nan pwòp blòk li. Sekans ak timestamp blòk yo pa ka korije, e se poutèt sa lòd mesaj yo.
  • Pa gen okenn estrikti santral ki fè chèk sou "otantisite" nan yon mesaj. Sa a se fè pa yon sistèm distribiye nan nœuds ki baze sou konsansis, epi li se posede pa itilizatè yo.
  • Yo pa ka enfim - kont yo pa ka bloke epi mesaj yo pa ka efase.
  • Aksede kòd 2FA nan nenpòt aparèy nenpòt ki lè.
  • Konfimasyon livrezon mesaj ak kòd 2FA. Sèvis ki voye modpas la yon sèl fwa konnen pou asire w ke li te delivre. Pa gen bouton "Voye ankò".

Pou konpare ak kèk lòt metòd 2FA, mwen te fè yon tab:

Deplase an sekirite 2FA sou blockchain la

Itilizatè a resevwa yon kont nan mesaje blockchain a pou resevwa kòd nan yon segond - se sèlman yon pasfraz itilize pou konekte. Se poutèt sa, metòd aplikasyon yo ka diferan: ou ka itilize yon kont pou resevwa kòd pou tout sèvis, oswa ou ka kreye yon kont apa pou chak sèvis.

Genyen tou yon deranjman - kont lan dwe gen omwen yon tranzaksyon. Nan lòd pou itilizatè a resevwa yon mesaj chiffres ak yon kòd, ou bezwen konnen kle piblik li a, epi li parèt nan blòk la sèlman ak premye tranzaksyon an. Men ki jan nou te jere soti nan li: nou te ba yo opòtinite pou yo resevwa marqueur gratis nan bous yo. Sepandan, yon solisyon pi bon se nonmen kont lan yon kle piblik. (Pou konparezon, nou gen nimewo kont la U1467838112172792705 se yon derive kle piblik la cc1ca549413b942029c4742a6e6ed69767c325f8d989f7e4b71ad82a164c2ada. Pou mesaje a sa a pi pratik ak lizib, men pou sistèm nan voye kòd 2FA li se yon limit). Mwen panse ke nan lavni an yon moun pral pran yon desizyon konsa epi deplase "Konvenyans ak Aksè" nan zòn vèt la.

Pri a nan voye yon kòd 2FA se reyèlman ba - 0.001 ADM, kounye a li se 0.00001 USD. Yon fwa ankò, ou ka ogmante blockchain ou a epi fè pri a zewo.

Ki jan yo konekte 2FA sou blockchain nan sèvis ou a

Mwen espere ke mwen te kapab enterese kèk lektè ajoute otorizasyon blockchain nan sèvis yo.

Mwen pral di ou ki jan fè sa lè l sèvi avèk mesaje nou an kòm yon egzanp, ak pa analoji ou ka itilize yon lòt blockchain. Nan aplikasyon Demo 2FA nou itilize postgresql10 pou sere enfòmasyon sou kont.

Etap Koneksyon:

  1. Kreye yon kont sou blockchain kote w ap voye kòd 2FA. Ou pral resevwa yon pasfraz, ki itilize kòm yon kle prive pou ankripte mesaj ak kòd epi siyen tranzaksyon yo.
  2. Ajoute yon script sou sèvè ou a pou jenere kòd 2FA. Si w ap deja itilize nenpòt lòt metòd 2FA ak livrezon modpas yon sèl fwa, ou deja konplete etap sa a.
  3. Ajoute yon script sou sèvè ou a pou voye kòd bay itilizatè a nan mesaje blockchain la.
  4. Kreye yon koòdone itilizatè pou voye ak antre yon kòd 2FA. Si w ap deja itilize nenpòt lòt metòd 2FA ak livrezon modpas yon sèl fwa, ou deja konplete etap sa a.

1 Kreyasyon yon kont

Kreye yon kont nan blockchain a vle di jenere yon kle prive, yon kle piblik, ak yon adrès kont ki sòti.

Deplase an sekirite 2FA sou blockchain la

Premyèman, se pasfraz BIP39 la pwodwi, epi yo kalkile SHA-256 apati li. Hash la itilize pou jenere kle prive ks ak kle piblik kp. Soti nan kle piblik la, lè l sèvi avèk menm SHA-256 ak envèsyon, nou jwenn adrès la nan blockchain la.

Si ou vle voye kòd 2FA chak fwa nan yon nouvo kont, yo pral bezwen ajoute kòd kreyasyon kont lan sou sèvè a:

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()
}

Nan aplikasyon Demo a, nou senplifye li - nou te kreye yon sèl kont nan aplikasyon entènèt la, epi voye kòd soti nan li. Nan pifò ka, sa a se tou pi pratik pou itilizatè a: li konnen ke sèvis la voye kòd 2FA soti nan yon kont espesifik epi li ka non li.

Deplase an sekirite 2FA sou blockchain la

2 Jenerasyon kòd 2FA

Yon kòd 2FA dwe pwodwi pou chak itilizatè ki konekte. Nou itilize bibliyotèk la pale, men ou ka chwazi nenpòt lòt.

const hotp = speakeasy.hotp({
  counter,
  secret: account.seSecretAscii,
});

Tcheke validite kòd 2FA itilizatè a te antre nan:

se2faVerified = speakeasy.hotp.verify({
  counter: this.seCounter,
  secret: this.seSecretAscii,
  token: hotp,
});

3 Voye kòd 2FA

Pou soumèt yon kòd 2FA, ou ka itilize blockchain node API, bibliyotèk JS API, oswa konsole a. Nan egzanp sa a, nou itilize konsole a - sa a se Entèfas Liy Kòmandman an, yon sèvis piblik ki senplifye entèraksyon ak blockchain la. Pou voye yon mesaj ak yon kòd 2FA, ou bezwen sèvi ak lòd la 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);

Yon lòt fason pou voye mesaj se sèvi ak metòd la send nan bibliyotèk JS API.

4 koòdone itilizatè

Itilizatè a bezwen yo dwe bay opsyon a antre nan yon kòd 2FA, sa a ka fè nan diferan fason depann sou platfòm aplikasyon w lan. Nan egzanp nou an sa a se Vue.

Deplase an sekirite 2FA sou blockchain la

Ou ka wè kòd sous pou aplikasyon demo otantifikasyon blockchain de faktè a nan GitHub. Gen yon lyen nan Readme a nan yon Demo Live pou eseye li.

Sous: www.habr.com

Add nouvo kòmantè