SMS Messagen sinn déi populärste Method vun Zwee-Faktor Authentifikatioun (2FA). Et gëtt vu Banken, elektroneschen a Krypto Portemonnaien, Mailboxen an all Zorte vu Servicer benotzt;
Ech sinn indignéiert op dësem Szenario, well dës Method onsécher ass. D'Wiederbezuelung vun enger Nummer vun enger SIM Kaart op eng aner huet am Ufank vun der mobiler Ära ugefaang - dat ass wéi d'Zuel restauréiert gëtt wann eng SIM Kaart verluer ass. "Digital Geld Déifstall Spezialisten" realiséiert datt d'Optioun "SIM Kaart ëmschreiwen" kann a betrügeresche Schemaen benotzt ginn. Iwwerhaapt, deen deen d'SIM Kaart kontrolléiert, kann aner Leit d'Online Banking, elektronesch Portemonnaien, a souguer cryptocurrency kontrolléieren. An Dir kënnt d'Nummer vun enger anerer Persoun besëtzen duerch Bestiechung vun engem Telekom-Mataarbechter, Täuschung oder gefälschte Dokumenter.
Dausende vun Episoden vun SIM Tauschen goufen opgedeckt, wéi dëst Bedruch Schema genannt gëtt. D'Skala vun der Katastroph suggeréiert datt d'Welt geschwënn 2FA iwwer SMS opginn. Mä dëst geschitt net - an
Mir proposéieren déi sécher 2FA Method mat der Liwwerung vun eemolege Coden iwwer de Blockchain ze benotzen, a mir soen Iech wéi de Servicebesëtzer et verbënnt.
D'Zuel geet a Millioune
Am Joer 2019 ass SIM Swap Bedruch ëm 63% eropgaang no der Londoner Police, an den "Duerchschnëttsrechnung" vun engem Ugräifer war 4,000 GBP. Ech hunn keng Statistiken a Russland fonnt, mee ech huelen un datt se nach méi schlëmm sinn.
SIM Swapping gëtt benotzt fir populär Twitter, Instagram, Facebook, VK Konten, Bankkonten a viru kuerzem souguer Krypto-Währungen ze klauen -
Am Mee, den US Attorney's Office fir den Ostdistrikt vu Michigan
Foto vum Joel Ortiz op enger Uni Pressekonferenz. Zwee Joer méi spéit gëtt hie wéinst Cyberbedruch festgehalen.
Wéi SIM Swap funktionnéiert
"Austausch" heescht Austausch. An all esou Schemaen iwwerhuelen d'Krimineller d'Telefonsnummer vum Affer, normalerweis duerch d'Erausfuerderung vun enger SIM Kaart, a benotzen se fir d'Passwuert zréckzesetzen. En typesche SIM Swap an der Theorie gesäit esou aus:
- Intelligenz Service. Fraudsters fannen d'perséinlech Informatioun vum Affer eraus: Numm an Telefonsnummer. Si kënnen an oppene Quellen (sozialen Netzwierker, Frënn) fonnt ginn oder vun engem Kompliz kritt ginn - en Employé vun engem mobilen Bedreiwer.
- Blockéieren. D'SIM Kaart vum Affer ass deaktivéiert; Fir dëst ze maachen, rufft just d'technesch Ënnerstëtzung vum Provider un, gitt d'Nummer a sot datt den Telefon verluer ass.
- Capture, Transfert d'Nummer op Är SIM Kaart. Normalerweis gëtt dat och duerch e Kompliz an der Telekommunikatiounsfirma oder duerch Fälschung vun Dokumenter gemaach.
Am richtege Liewen sinn d'Saachen nach méi schwéier. Ugräifer wielt en Affer an verfollegen dann de Standuert vum Telefon all Dag - eng Ufro fir Informatioun ze kréien datt den Abonnent op Roaming gewiesselt ass kascht 1-2 Cent. Soubal de Besëtzer vun der SIM Kaart an d'Ausland gaangen ass, verhandelt se mam Manager am Kommunikatiounsgeschäft fir eng nei SIM Kaart erauszestellen. Et kascht ongeféier $ 50 (Ech hunn Informatiounen fonnt - a verschiddene Länner a mat verschiddene Betreiber vun $ 20 bis $ 100), an am schlëmmste Fall gëtt de Manager entlooss - et gëtt keng Verantwortung fir dës.
Elo gëtt all SMS vun Ugräifer kritt, an de Besëtzer vum Telefon kann näischt doriwwer maachen - hien ass am Ausland. An dann kréien d'Béiser Zougang zu all de Konten vum Affer an änneren Passwierder wann Dir wëllt.
Chancen fir geklauten Eegentum zréckzekommen
Banken ënnerhuelen heiansdo Affer hallef an entzéien Transfere vun hire Konten. Dofir ass et méiglech Fiat Suen zréckzekommen, och wann de Kriminell net fonnt gëtt. Mä mat cryptocurrency Portemonnaien ass alles méi komplizéiert - an technesch, a legislativ. Bis elo huet keen eenzegen Austausch / Portemonnaie Kompensatioun un d'Affer vum Tausch bezuelt.
Wann d'Affer hir Sue viru Geriicht verdeedegen wëllen, schëlleg se de Bedreiwer: hien huet d'Konditioune fir de Vol vu Suen aus dem Kont erstallt. Genee dat hunn ech gemaach
Bis elo huet kee Staat Aarbechtsschemaen fir d'Besëtzer vun Krypto-Währungen legal ze schützen. Et ass onméiglech Äert Kapital ze versécheren oder Kompensatioun fir säi Verloscht ze kréien. Dofir ass d'Vermeiden vun engem Swap-Attack méi einfach wéi mat sengen Konsequenzen ëmzegoen. Déi offensichtlechst Manéier ass e méi zouverléissege "zweete Faktor" fir 2FA ze benotzen.
SIM Swap ass net deen eenzege Problem mat 2FA iwwer SMS
Bestätegungscoden an SMS sinn och aus technescher Siicht onsécher. Messagen kënnen ofgefaangen ginn wéinst onpatchéierte Schwachstelle am Signalsystem 7 (SS7). 2FA iwwer SMS ass offiziell als onsécher unerkannt (den US National Institute of Standards and Technology seet dëst a sengem
Zur selwechter Zäit gëtt d'Präsenz vun 2FA dacks dem Benotzer e Gefill vu falscher Sécherheet, an hie wielt e méi einfacht Passwuert. Dofir mécht esou Authentifikatioun et net schwéier, awer mécht et méi einfach fir en Ugräifer Zougang zum Kont ze kréien.
An dacks komme SMSen mat laanger Verspéidung oder kommen guer net.
Aner 2FA Methoden
Natierlech huet d'Liicht net op Smartphones an SMS konvergéiert. Et ginn aner Methoden vun 2FA. Zum Beispill, eent-Zäit TAN Coden: eng primitiv Method, mä et Wierker - et ass nach an e puer Banken benotzt. Et gi Systemer déi biometresch Donnéeën benotzen: Fangerofdréck, Netzhautscannen. Eng aner Optioun, déi schéngt wéi e vernünfteg Kompromiss a punkto Komfort, Zouverlässegkeet a Präis ass speziell Uwendungen fir 2FA: RSA Token, Google Authenticator. Et ginn och kierperlech Schlësselen an aner Methoden.
An Theorie gesäit alles logesch an zouverlässeg. Awer an der Praxis hunn modern 2FA Léisungen Problemer, a wéinst hinnen ënnerscheet sech d'Realitéit vun den Erwaardungen.
Nëmmen
D'Benotzer verbannen vill 2FA Methoden mat der Angscht datt den Zougang verluer geet. De kierperleche Schlëssel oder d'Lëscht vun de TAN Passwierder ka verluer oder geklaut ginn. Ech perséinlech hu schlecht Erfahrungen mam Google Authenticator. Mäin éischte Smartphone mat dëser Applikatioun ass gebrach - appréciéiert meng Efforten fir den Zougang zu menge Konten ze restauréieren. En anere Problem ass op en neien Apparat ze wiesselen. Google Authenticator huet keng Exportoptioun wéinst Sécherheetsgrënn (wann Schlësselen exportéiert kënne ginn, wéi eng Sécherheet gëtt et?). Eemol hunn ech d'Schlësselen manuell gedroen, an dunn hunn ech décidéiert datt et méi einfach war den alen Smartphone an enger Këscht op engem Regal ze loossen.
D'2FA Method soll sinn:
- Séchert - nëmmen Dir an net Ugräifer sollten Zougang zu Ärem Kont kréien
- Zouverlässeg - Dir kritt Zougang zu Ärem Kont wann Dir et braucht
- Praktesch an zougänglech - 2FA benotzen ass kloer an hëlt minimal Zäit
- Bëlleg
Mir gleewen datt Blockchain déi richteg Léisung ass.
Benotzt 2FA op der Blockchain
Fir de Benotzer gesäit 2FA op der Blockchain d'selwecht aus wéi eng eemoleg Coden iwwer SMS ze kréien. Deen eenzegen Ënnerscheed ass de Liwwerkanal. D'Method fir en 2FA Code ze kréien hänkt dovun of wat de Blockchain bitt. An eisem Projet (Informatioun ass a mengem Profil) ass dëst eng Webapplikatioun, Tor, iOS, Android, Linux, Windows, MacOS.
De Service generéiert en eemolege Code a schéckt en un de Messenger op der Blockchain. Follegt dann d'Klassiker: de Benotzer gitt de kritt Code an der Service-Interface an a loggt sech un.
Den Artikel
- Ee Klick fir e Kont ze kreéieren - keng Telefonen oder E-Mailen.
- All Messagen mat 2FA Coden sinn verschlësselte End-to-End curve25519xsalsa20poly1305.
- MITM Attack ass ausgeschloss - all Message mam 2FA Code ass eng Transaktioun op der Blockchain a gëtt vum Ed25519 EdDSA ënnerschriwwen.
- De Message mam 2FA Code endet an engem eegene Block. D'Sequenz an d'Zäitstempel vun de Blocken kënnen net korrigéiert ginn, an dofir d'Uerdnung vun de Messagen.
- Et gëtt keng zentral Struktur déi d'"Authentizitéit" vun engem Message kontrolléiert. Dëst gëtt gemaach vun engem verdeelt System vun Noden baséiert op Konsens, an et ass am Besëtz vun de Benotzer.
- Kann net behënnert ginn - Konte kënnen net blockéiert ginn a Messagen kënnen net geläscht ginn.
- Zougang zu 2FA Coden vun all Apparat zu all Moment.
- Bestätegung vun Message Liwwerung mat 2FA Code. De Service deen dat eemolegt Passwuert schéckt, weess sécher datt et geliwwert gouf. Keng "Schécken erëm" Knäppercher.
Fir mat e puer aner 2FA Methoden ze vergläichen, hunn ech en Dësch gemaach:
De Benotzer kritt e Kont am Blockchain Messenger fir Coden an enger Sekonn ze kréien - nëmmen e Passphrase gëtt benotzt fir aloggen. Dofir kënnen d'Methoden vun der Uwendung anescht sinn: Dir kënnt ee Kont benotze fir Coden fir all Servicer ze kréien, oder Dir kënnt e separaten Kont fir all Service erstellen.
Et gëtt och en Nodeel - de Kont muss op d'mannst eng Transaktioun hunn. Fir de Benotzer eng verschlësselte Message mat engem Code ze kréien, musst Dir säin ëffentleche Schlëssel kennen, an et erschéngt am Blockchain nëmme mat der éischter Transaktioun. Esou hu mir et fäerdeg bruecht, dovunner erauszekommen: Mir hunn hinnen d’Méiglechkeet ginn, gratis Tokens an hire Portemonnaie ze kréien. Wéi och ëmmer, eng besser Léisung ass de Kont en ëffentleche Schlëssel ze nennen. (Zum Verglach hu mir eng Kontosnummer U1467838112172792705 ass eng Derivat vum ëffentleche Schlëssel cc1ca549413b942029c4742a6e6ed69767c325f8d989f7e4b71ad82a164c2ada. Fir de Messenger ass dëst méi praktesch a liesbar, awer fir de System fir 2FA Coden ze schécken ass et eng Begrenzung). Ech mengen, datt an Zukunft een esou eng Decisioun wäert huelen an "Convenience and Accessibility" an d'Gréngzon plënneren.
De Präis fir en 2FA Code ze schécken ass wierklech niddereg - 0.001 ADM, elo ass et 0.00001 USD. Erëm, Dir kënnt Är Blockchain erhéijen an de Präis null maachen.
Wéi verbënnt 2FA op der Blockchain mat Ärem Service
Ech hoffen ech konnt e puer Lieser interesséieren fir Blockchain Autorisatioun fir hir Servicer ze addéieren.
Ech soen Iech wéi Dir dëst maacht mat eisem Messenger als Beispill, an duerch Analogie kënnt Dir eng aner Blockchain benotzen. An der 2FA Demo App benotze mir postgresql10 fir Kontinformatioun ze späicheren.
Verbindungsstadien:
- Erstellt e Kont op der Blockchain aus deem Dir 2FA Coden schéckt. Dir kritt e Passphrase, deen als private Schlëssel benotzt gëtt fir Messagen mat Coden ze verschlësselen an Transaktiounen z'ënnerschreiwen.
- Füügt e Skript op Äre Server fir 2FA Coden ze generéieren. Wann Dir schonn eng aner 2FA Method mat enger eemoleger Passwuert Liwwerung benotzt, hutt Dir dëse Schrëtt schonn ofgeschloss.
- Füügt e Skript op Äre Server fir Coden un de Benotzer am Blockchain Messenger ze schécken.
- Erstellt eng User-Interface fir en 2FA Code ze schécken an anzeginn. Wann Dir schonn eng aner 2FA Method mat enger eemoleger Passwuert Liwwerung benotzt, hutt Dir dëse Schrëtt schonn ofgeschloss.
1 Erstellt e Kont
E Kont an der Blockchain erstellen heescht e private Schlëssel generéieren, en ëffentleche Schlëssel, an eng ofgeleet Kontoadress.
Als éischt gëtt de BIP39 Passphrase generéiert, an de SHA-256 Hash gëtt dovun berechent. Den Hash gëtt benotzt fir de private Schlëssel ks an den ëffentleche Schlëssel kp ze generéieren. Vum ëffentleche Schlëssel, mat der selwechter SHA-256 mat Inversioun, kréien mir d'Adress an der Blockchain.
Wann Dir 2FA Coden all Kéier vun engem neie Kont wëllt schécken, da muss de Kontkreatiounscode op de Server bäigefüügt ginn:
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()
}
An der Demo-Applikatioun hu mir et vereinfacht - mir hunn ee Kont an der Webapplikatioun erstallt a Coden dovunner geschéckt. Am meeschte Fäll ass dëst och méi bequem fir de Benotzer: hie weess datt de Service 2FA Coden vun engem spezifesche Kont schéckt a kann et nennen.
2 Generéiere 2FA Coden
En 2FA Code muss fir all Benotzer Login generéiert ginn. Mir benotzen d'Bibliothéik
const hotp = speakeasy.hotp({
counter,
secret: account.seSecretAscii,
});
Iwwerpréift d'Gëltegkeet vum 2FA Code, dee vum Benotzer aginn ass:
se2faVerified = speakeasy.hotp.verify({
counter: this.seCounter,
secret: this.seSecretAscii,
token: hotp,
});
3 Schécken 2FA Code
Fir en 2FA Code ofzeginn, kënnt Dir de Blockchain Node API, JS API Bibliothéik oder d'Konsol benotzen. An dësem Beispill benotze mir d'Konsole - dëst ass de Command Line Interface, en Utility dat d'Interaktioun mat der Blockchain vereinfacht. Fir e Message mat engem 2FA Code ze schécken, musst Dir de Kommando benotzen send message
konsoll.
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);
Eng alternativ Manéier fir Messagen ze schécken ass d'Method ze benotzen send
an der JS API Bibliothéik.
4 Benotzer Interface
De Benotzer muss d'Méiglechkeet ginn en 2FA Code anzeginn, dëst kann op verschidde Manéiere gemaach ginn ofhängeg vun Ärer Applikatiounsplattform. An eisem Beispill ass dëst Vue.
De Quellcode vun der Demo-Applikatioun fir Zwee-Faktor Authentifikatioun op der Blockchain ka gekuckt ginn
Source: will.com