ืืืืขืืช SMS ืื ืืฉืืื ืืคืืคืืืจืืช ืืืืชืจ ืืืืืืช ืื-ืืืจืื (2FA). ืืื ืืฉืืฉ ืื ืงืื, ืืจื ืงืื ืืืงืืจืื ืืื ืืงืจืืคืื, ืชืืืืช ืืืืจ ืืื ืืื ื ืฉืืจืืชืื;
ืื ื ืืืขืก ืขื ืืชืจืืืฉ ืืื, ืื ืืฉืืื ืืื ืื ืืืืื. ืืงืฆืื ืืืืฉ ืฉื ืืกืคืจ ืืืจืืืก ืกืื ืืื ืืืืจ ืืืื ืืชืืืืช ืขืืื ืืกืืืืจ - ืื ืืฉืืืจืื ืืช ืืืกืคืจ ืืืฉืจ ืืจืืืก ืกืื ืืืื. "ืืืืื ืื ืืืช ืืกืฃ ืืืืืืืืช" ืืืื ื ืฉื ืืชื ืืืฉืชืืฉ ืืืคืฉืจืืช "ืฉืืชืื ืืจืืืก SIM" ืืชืืื ืืืช ืืื ืื. ืืืจื ืืื, ืื ืฉืฉืืื ืืืจืืืก ื-SIM ืืืื ืืฉืืื ืืื ืงืืืช ืืงืืื ืช ืฉื ืื ืฉืื ืืืจืื, ืืืจื ืงืื ืืืงืืจืื ืืื ืืืคืืื ืืืืืขืืช ืงืจืืคืืืืจืคืืื. ืืืชื ืืืื ืืืฉืชืื ืขื ืืกืคืจ ืฉื ืืื ืืืจ ืืืืฆืขืืช ืืชื ืฉืืื ืืขืืื ืืืงืื, ืืืืฆืขืืช ืืืขืื ืื ืืกืืืื ืืืืืคืื.
ืืืคื ืคืจืงืื ืฉื ืืืืคืช ืกืื ื ืืฉืคื, ืืคื ืฉืืืื ื ืชืื ืืช ืืืื ืื ืืื. ืืืงืฃ ืืืกืื ืืฆืืืข ืขื ืื ืฉืืขืืื ืื ืืืฉ ืืงืจืื ืืช 2FA ืืืืฆืขืืช SMS. ืืื ืื ืื ืงืืจื - ื
ืื ื ืืฆืืขืื ืืืฉืชืืฉ ืืฉืืืช 2FA ืืืืืืืืช ืขื ืืกืืจืช ืงืืืื ืื-ืคืขืืืื ืืจื ืืืืืงืฆ'ืืื, ืื ืกืคืจ ืืื ืืืฆื ืืขื ืืฉืืจืืช ืืืื ืืืืจ ืืืชื.
ืืกืคืืจื ื ืื ืกืช ืืืืืืื ืื
ืืฉื ืช 2019, ืืื ืืช ืืืืคืช ืกืื ืขืืชื ื-63% ืืคื ืืฉืืจืช ืืื ืืื, ื"ืืืฉืืื ืืืืืฆืข" ืฉื ืชืืงืฃ ืืื 4,000 ืืืฉ"ื. ืื ืืฆืืชื ืฉืื ืกืืืืกืืืงื ืืจืืกืื, ืืื ืื ื ืื ืื ืฉืื ืืคืืื ืืืชืจ ืืจืืขืืช.
ืืืืคืช ืกืื ืืฉืืฉืช ืืื ืืืช ืืฉืืื ืืช ืืืืืืจ, ืืื ืกืืืจื, ืคืืืกืืืง, VK, ืืฉืืื ืืช ืื ืง, ืืืืืจืื ื ืืคืืื ืืืืขืืช ืงืจืืคืืืืจืคืืื ืคืืคืืืจืืื -
ืืืื, ืืฉืจื ืืชืืืข ืฉื ืืจื"ื ืืืืื ืืืืจืื ืฉื ืืืฉืืื
ืชืืื ื ืฉื ืืืื ืืืจืืื ืืืกืืืช ืขืืชืื ืืื ืืืื ืืืจืกืืื. ืฉื ืชืืื ืืืืจ ืืื ืืื ืืืขืฆืจ ืืืื ืืื ืืช ืกืืืืจ.
ืืืฆื ืคืืขืืช ืืืืคืช SIM
"ืืืืคื" ืคืืจืืฉื ืืืืคื. ืืื ืืชืืื ืืืช ืืืื, ืคืืฉืขืื ืืฉืชืืืื ืขื ืืกืคืจ ืืืืคืื ืฉื ืืงืืจืื, ืืืจื ืืื ืืืืฆืขืืช ืื ืคืงื ืืืืฉ ืฉื ืืจืืืก SIM, ืืืฉืชืืฉืื ืื ืืื ืืืคืก ืืช ืืกืืกืื. ืืืืคืช SIM ืืืคืืกืืช ืืชืืืืจืื ื ืจืืืช ืื:
- ืฉืืจืืช ืืืืืขืื. ืจืืืื ืืืืื ืืช ืืืืืข ืืืืฉื ืฉื ืืงืืจืื: ืฉื ืืืกืคืจ ืืืคืื. ื ืืชื ืืืฆืื ืืืชื ืืืงืืจืืช ืคืชืืืื (ืจืฉืชืืช ืืืจืชืืืช, ืืืจืื) ืื ืืงืื ืืืชื ืืฉืืชืฃ - ืขืืื ืฉื ืืคืขืื ืกืืืืจื.
- ืืกืืื. ืืจืืืก ื-SIM ืฉื ืืงืืจืื ืืืฉืืช; ืืื ืืขืฉืืช ืืืช, ืคืฉืื ืืชืงืฉืจ ืืชืืืื ืืืื ืืช ืฉื ืืกืคืง, ืกืคืง ืืช ืืืกืคืจ ืืชืืื ืฉืืืืคืื ืืื.
- ืืืื, ืืืขืืืจ ืืช ืืืกืคืจ ืืืจืืืก ื-SIM ืฉืื. ืืจืื ืืืืจ ื ืขืฉื ืื ืืืืฆืขืืช ืฉืืชืฃ ืืืืจืช ืืืืงืื ืื ืืืืฆืขืืช ืืืืฃ ืืกืืืื.
ืืืืื ืืืืืชืืื ืืืืจืื ืืืืจืื ืขืื ืืืชืจ. ืืชืืงืคืื ืืืืจืื ืงืืจืื ืืื ืขืืงืืื ืืืจ ืืืงืื ืืืืคืื ืืื ืืื - ืืงืฉื ืืืช ืืงืื ืืืืข ืฉืืื ืื ืขืืจ ืื ืืืื ืขืืื 1-2 ืกื ื. ืืจืืข ืฉืืขื ืืจืืืก ืืกืื ื ืกืข ืืื"ื, ืื ืื ืืืื ืืฉื ืืืชื ืขื ืืื ืื ืืื ืืช ืืชืงืฉืืจืช ืืื ืคืงืช ืืจืืืก SIM ืืืฉ. ืื ืขืืื ื-50$ (ืืฆืืชื ืืืืข - ืืืืื ืืช ืฉืื ืืช ืืืฆื ืืคืขืืืื ืฉืื ืื ื-20$ ืขื 100$), ืืืืงืจื ืืื ืืจืืข ืืื ืื ืืคืืืจ - ืืื ืืื ืืืจืืืช.
ืืขืช ืื ื-SMS ืืชืงืืื ืขื ืืื ืชืืงืคืื, ืืืขื ืืืืคืื ืื ืืืื ืืขืฉืืช ืืืจ ืื ืืืื - ืืื ื ืืฆื ืืื"ื. ืืื ืื ืืืื ืืงืืืื ืืืฉื ืืื ืืืฉืืื ืืช ืฉื ืืงืืจืื ืืืฉื ืื ืกืืกืืืืช ืื ืจืืฆืื.
ืกืืืื ืืืืืจืช ืจืืืฉ ืื ืื
ืืื ืงืื ืืืจืื ืื ืืขืชืื ืืช ืืงืืจืื ืืช ืืืืฆืข ืืืจื ืืืืฉืืื ืืขืืจืืช ืืืฉืืื ืืชืืื. ืืื, ื ืืชื ืืืืืืจ ืืกืคื ืคืืื ืื ืื ืื ื ืืฆื ืืขืืจืืื. ืืื ืขื ืืจื ืงื ืืืืขืืช ืงืจืืคืืืืจืคืืื ืืื ืืกืืื ืืืชืจ - ื ืืืืื ื ืืื ืืช, ืืืืืื ื ืืงืืงืชืืช. ืขื ืื, ืืฃ ืืืจืกื/ืืจื ืง ืืื ืื ืฉืืื ืคืืฆืืืื ืื ืคืืขื ืืืืคื.
ืื ืืงืืจืื ืืช ืจืืฆืื ืืืื ืขื ืืกืคื ืืืืช ืืืฉืคื, ืื ืืืฉืืืื ืืช ืืืคืขืื: ืืื ืืฆืจ ืืช ืืชื ืืื ืืื ืืืช ืืกืฃ ืืืืฉืืื. ืื ืืืืืง ืื ืฉืขืฉืืชื
ืขื ืื, ืืืฃ ืืืื ื ืืื ืชืืื ืืืช ืคืืขืืืช ืืืื ื ืืืงืืช ืขื ืืขืื ืืืืขืืช ืงืจืืคืืืืจืคืืื. ืื ืืคืฉืจ ืืืื ืืช ืืืื ืฉืื ืื ืืงืื ืคืืฆืื ืขื ืืืืื ื. ืืื, ืื ืืขืช ืืชืงืคืช ืืืืคื ืงืื ืืืชืจ ืืืชืืืืืืช ืขื ืืฉืืืืชืื. ืืืจื ืืืจืืจื ืืืืชืจ ืืื ืืืฉืชืืฉ ื"ืืืจื ืฉื ื" ืืืื ืืืชืจ ืขืืืจ 2FA.
ืืืืคืช SIM ืืื ื ืืืขืื ืืืืืื ืขื 2FA ืืืืฆืขืืช SMS
ืงืืื ืืืฉืืจ ื-SMS ืืื ื ืืืืืื ืื ืื ืงืืืช ืืื ืืื ืืช. ื ืืชื ืืืืจื ืืืืขืืช ืขืงื ื ืงืืืืช ืชืืจืคื ืืื ืชืืงืื ืื ืืืขืจืืช ืืืชืืช 7 (SS7). 2FA ืืืืฆืขืืช SMS ืืืืจ ืจืฉืืืช ืืื ืืืืืื (ืืืืื ืืืืืื ืืชืงื ืื ืืืื ืืืืืื ืืืจ ืืช ืื ื
ืืื ืขื ืืืช, ืื ืืืืืช ืฉื 2FA ืืจืื ืืขื ืืงื ืืืฉืชืืฉ ืชืืืฉืช ืืืืืื ืืืื, ืืืื ืืืืจ ืกืืกืื ืคืฉืืื ืืืชืจ. ืืื, ืืืืืช ืืื ืืื ื ืืงืฉื, ืืื ืืงื ืขื ืชืืงืฃ ืืงืื ืืืฉื ืืืฉืืื.
ืืืขืืชืื ืงืจืืืืช SMS ืืืืข ืืืืืืจ ืจื ืื ืื ืืืืข ืืืื.
ืฉืืืืช 2FA ืืืจืืช
ืืืืื, ืืืืจ ืื ืืชืื ืก ืืกืืืจืืคืื ืื ื-SMS. ืืฉื ื ืฉืืืืช ืืืจืืช ืฉื 2FA. ืืืืืื, ืงืืื TAN ืื ืคืขืืืื: ืฉืืื ืคืจืืืืืืืืช, ืืื ืืื ืขืืืืช - ืขืืืื ืืฉืชืืฉืื ืื ืืืืง ืืืื ืงืื. ืืฉื ื ืืขืจืืืช ืืืฉืชืืฉืืช ืื ืชืื ืื ืืืืืืจืืื: ืืืืขืืช ืืฆืืข, ืกืจืืงืืช ืจืฉืชืืช. ืืคืฉืจืืช ื ืืกืคืช ืฉื ืจืืืช ืืื ืคืฉืจื ืกืืืจื ืืืืื ืช ื ืืืืช, ืืืื ืืช ืืืืืจ ืืื ืืคืืืงืฆืืืช ืืืืืืืช ื-2FA: RSA Token, Google Authenticator. ืืฉ ืื ืืคืชืืืช ืคืืืืื ืืฉืืืืช ืืืจืืช.
ืืชืืืืจืื, ืืื ื ืจืื ืืืืื ื ืืืืื. ืืื ืืคืืขื, ืืคืชืจืื ืืช 2FA ืืืืจื ืืื ืืฉ ืืขืืืช, ืืืืืื ืืืฆืืืืช ืฉืื ื ืืืฆืืคืืืช.
ืขื ืคื
ืืฉืชืืฉืื ืืงืฉืจืื ืฉืืืืช 2FA ืจืืืช ืืืฉืฉ ืฉืืืืฉื ืชืืื. ืืืคืชื ืืคืืื ืื ืจืฉืืื ืฉื ืกืืกืืืืช TAN ืขืืืืื ืืืืช ืืืืืื ืื ืืื ืื. ืื ืืืฉืืช ืืื ืืืืืืช ืจืขืืช ืขื Google Authenticator. ืืืืคืื ืืืื ืืจืืฉืื ืฉืื ืขื ืืืคืืืงืฆืื ืืื ืืชืงืืงื - ืืขืจืื ืืช ืืืืืฆืื ืฉืื ืืฉืืืจ ืืช ืืืืฉื ืืืฉืืื ืืช ืฉืื. ืืขืื ื ืืกืคืช ืืื ืืขืืจ ืืืืฉืืจ ืืืฉ. ื-Google Authenticator ืืื ืืคืฉืจืืช ืืืฆืื ืืกืืืืช ืืืืื (ืื ื ืืชื ืืืืฆื ืืคืชืืืช, ืืืื ืืืืื ืืฉ?). ืคืขื ื ืฉืืชื ืืช ืืืคืชืืืช ืืื ืืช, ืืื ืืืืืชื ืฉืงื ืืืชืจ ืืืฉืืืจ ืืช ืืกืืืจืืคืื ืืืฉื ืืงืืคืกื ืขื ืืืฃ.
ืฉืืืช 2FA ืฆืจืืื ืืืืืช:
- ืืืืืื - ืจืง ืืชื ืืื ืชืืงืคืื ืฆืจืืืื ืืงืื ืืืฉื ืืืฉืืื ืฉืื
- ืืืื - ืืชื ืืงืื ืืืฉื ืืืฉืืื ืฉืื ืืื ืคืขื ืฉืืชื ืฆืจืื
- ื ืื ืื ืืืฉ - ืืฉืืืืฉ ื-2FA ืืจืืจ ืืืืงื ืืื ืืื ืืืื
- ืืึนื
ืื ื ืืืืื ืื ืฉืืืืงืฆ'ืืื ืืื ืืคืชืจืื ืื ืืื.
ืืฉืชืืฉ ื-2FA ืืืืืงืฆ'ืืื
ืขืืืจ ืืืฉืชืืฉ, 2FA ืืืืืงืฆ'ืืื ื ืจืื ืืื ืงืืืช ืงืืืื ืื-ืคืขืืืื ืืืืฆืขืืช SMS. ืืืืื ืืืืื ืืื ืขืจืืฅ ืืืกืืจื. ืืฉืืื ืืงืืืช ืงืื 2FA ืชืืืื ืืื ืฉื-blockchain ืืฆืืข. ืืคืจืืืงื ืฉืื ื (ืืืืืข ื ืืฆื ืืคืจืืคืื ืฉืื) ืืืื ืืคืืืงืฆืืืช ืืื ืืจื ื, Tor, iOS, Android, Linux, Windows, MacOS.
ืืฉืืจืืช ืืืืฆืจ ืงืื ืื ืคืขืื ืืฉืืื ืืืชื ืืืกื ื'ืจ ืืืืืงืฆ'ืืื. ืืืืจ ืืื ืขืงืื ืืืจ ืืงืืืกืืงื: ืืืฉืชืืฉ ืืืื ืืช ืืงืื ืฉืืชืงืื ืืืืฉืง ืืฉืืจืืช ืื ืื ืก.
ืืืืืจ
- ืืืืฆื ืืืช ืืืฆืืจืช ืืฉืืื - ืืื ืืืคืื ืื ืื ืืืืืื.
- ืื ืืืืืขืืช ืขื ืงืืื 2FA ืืืฆืคื ืืช ืืงืฆื ืืงืฆื curve25519xsalsa20poly1305.
- ืืชืงืคืช MITM ืืื ื ื ืืืืช - ืื ืืืืขื ืขื ืงืื 2FA ืืื ืขืกืงื ื- blockchain ืื ืืชืืช ืขื ืืื Ed25519 EdDSA.
- ืืืืืขื ืขื ืงืื 2FA ืืกืชืืืืช ืืืืืง ืืฉืื. ืื ื ืืชื ืืชืงื ืืช ืืจืฆืฃ ืืืืชืืช ืืืื ืฉื ืืืกืืืืช, ืืืื ืกืืจ ืืืืืขืืช.
- ืืื ืืื ื ืืจืืื ืฉืขืืฉื ืืืืงืืช ืขื "ืืืชื ืืืืช" ืฉื ืืืืขื. ืื ื ืขืฉื ืขื ืืื ืืขืจืืช ืืืืืจืช ืฉื ืฆืืชืื ืืืืืกืกืช ืขื ืงืื ืฆื ืืืก, ืืืื ืืืขืืืช ืืืฉืชืืฉืื.
- ืื ื ืืชื ืื ืืจื - ืื ื ืืชื ืืืกืื ืืฉืืื ืืช ืืื ื ืืชื ืืืืืง ืืืืขืืช.
- ืืืฉื ืืงืืื 2FA ืืื ืืืฉืืจ ืืื ืขืช.
- ืืืฉืืจ ืืกืืจืช ืืืืขื ืขื ืงืื 2FA. ืืฉืืจืืช ืฉืฉืืื ืืช ืืกืืกืื ืืื-ืคืขืืืช ืืืืข ืืืืืืืช ืฉืืื ื ืืกืจื. ืืื ืืคืชืืจื "ืฉืื ืฉืื".
ืืื ืืืฉืืืช ืขื ืืื ืฉืืืืช 2FA ืืืจืืช, ืืื ืชื ืืืื:
ืืืฉืชืืฉ ืืงืื ืืฉืืื ืืืกื ื'ืจ ืืืืืงืฆ'ืืื ืืื ืืงืื ืงืืืื ืชืื ืฉื ืืื - ืจืง ืืืืื ืกืืกืื ืืฉืืฉ ืืื ืืกื. ืืื, ืฉืืืืช ืืืืฉืื ืขืฉืืืืช ืืืืืช ืฉืื ืืช: ืืชื ืืืื ืืืฉืชืืฉ ืืืฉืืื ืืื ืืื ืืงืื ืงืืืื ืขืืืจ ืื ืืฉืืจืืชืื, ืื ืฉืืชื ืืืื ืืืฆืืจ ืืฉืืื ื ืคืจื ืืื ืฉืืจืืช.
ืืฉื ื ืื ืื ื ืืืืช - ืืืฉืืื ืืืืืช ืืืืืช ืืคืืืช ืขืกืงื ืืืช. ืืื ืฉืืืฉืชืืฉ ืืงืื ืืืืขื ืืืฆืคื ืช ืขื ืงืื, ืฆืจืื ืืืขืช ืืช ืืืคืชื ืืฆืืืืจื ืฉืื, ืืืื ืืืคืืข ืืืืืงืฆ'ืืื ืจืง ืขื ืืขืกืงื ืืจืืฉืื ื. ืื ืืฆืืื ื ืืฆืืช ืืื: ื ืชื ื ืืื ืืช ืืืคืฉืจืืช ืืงืื ืืกืืืื ืื ืืืื ื ืืืจื ืง. ืขื ืืืช, ืคืชืจืื ืืื ืืืชืจ ืืื ืืงืจืื ืืืฉืืื ืืคืชื ืฆืืืืจื. (ืืฉื ืืฉืืืื, ืืฉ ืื ื ืืช ืืกืคืจ ืืืฉืืื U1467838112172792705 ืืื ื ืืืจืช ืฉื ืืืคืชื ืืฆืืืืจื cc1ca549413b942029c4742a6e6ed69767c325f8d989f7e4b71ad82a164c2ada. ืขืืืจ ืืืกื ื'ืจ ืื ืืืชืจ ื ืื ืืงืจืื, ืืื ืขืืืจ ืืืขืจืืช ืืฉืืืืช ืงืืื 2FA ืื ืืืืื). ืื ื ืืืฉื ืฉืืขืชืื ืืืฉืื ืืงืื ืืืืื ืืื ืืืขืืืจ ืืช "ื ืืืืช ืื ืืืฉืืช" ืืืืืจ ืืืจืืง.
ืืืืืจ ืฉื ืฉืืืืช ืงืื 2FA ืืื ืืืฉ ื ืืื - 0.001 ADM, ืืขืช ืืื 0.00001 ืืืืจ. ืฉืื, ืืชื ืืืื ืืืขืืืช ืืช ืืืืืงืฆ'ืืื ืฉืื ืืืืคืื ืืช ืืืืืจ ืืืคืก.
ืืืฆื ืืืืจ ืืช 2FA ื- blockchain ืืฉืืจืืช ืฉืื
ืื ื ืืงืืื ืฉืืฆืืืชื ืืขื ืืื ืืื ืงืืจืืื ืืืืกืืฃ ืืจืฉืืช ืืืืงืฆ'ืืื ืืฉืืจืืชืื ืฉืืื.
ืื ื ืืืื ืื ืืื ืืขืฉืืช ืืืช ืืืืฆืขืืช ืืืกื ื'ืจ ืฉืื ื ืืืืืื, ืืืื ืืืืื ืชืืื ืืืฉืชืืฉ ืืืืืงืฆ'ืืื ืืืจ. ืืืคืืืงืฆืืืช ืืืืืื ืฉื 2FA ืื ื ืืฉืชืืฉืื ื-postgresql10 ืืืืกืื ืคืจืื ืืฉืืื.
ืฉืืื ืืืืืจ:
- ืฆืืจ ืืฉืืื ืืืืืงืฆ'ืืื ืฉืืื ื ืชืฉืื ืงืืื 2FA. ืชืงืืื ืืืืื ืกืืกืื, ืืืฉืืฉ ืืืคืชื ืคืจืื ืืืฆืคื ืช ืืืืขืืช ืืงืืืื ืืืืชืืื ืขื ืขืกืงืืืช.
- ืืืกืฃ ืกืงืจืืคื ืืฉืจืช ืฉืื ืืื ืืืฆืืจ ืงืืื 2FA. ืื ืืชื ืืืจ ืืฉืชืืฉ ืืื ืฉืืืช 2FA ืืืจืช ืขื ืืกืืจืช ืกืืกืื ืื ืคืขืืืช, ืืืจ ืืฉืืืช ืืช ืืฉืื ืืื.
- ืืืกืฃ ืกืงืจืืคื ืืฉืจืช ืฉืื ืืื ืืฉืืื ืงืืืื ืืืฉืชืืฉ ืืืกื ื'ืจ ืืืืืงืฆ'ืืื.
- ืฆืืจ ืืืฉืง ืืฉืชืืฉ ืืฉืืืืช ืืืื ืช ืงืื 2FA. ืื ืืชื ืืืจ ืืฉืชืืฉ ืืื ืฉืืืช 2FA ืืืจืช ืขื ืืกืืจืช ืกืืกืื ืื ืคืขืืืช, ืืืจ ืืฉืืืช ืืช ืืฉืื ืืื.
1 ืืฆืืจืช ืืฉืืื
ืืฆืืจืช ืืฉืืื ืืืืืงืฆ'ืืื ืคืืจืืฉื ืืฆืืจืช ืืคืชื ืคืจืื, ืืคืชื ืฆืืืืจื ืืืชืืืช ืืฉืืื ื ืืืจืช.
ืจืืฉืืช, ื ืืฆืจ ืืืืื ืืกืืกืื ืฉื BIP39, ืืืชืืื ืืืืฉื ื-hash SHA-256. ื-hash ืืฉืืฉ ืืืฆืืจืช ืืืคืชื ืืคืจืื ks ืืืืคืชื ืืฆืืืืจื kp. ืืืืคืชื ืืฆืืืืจื, ืืืืฆืขืืช ืืืชื SHA-256 ืขื ืืืคืื, ืื ื ืืงืืืื ืืช ืืืชืืืช ืืืืืงืฆ'ืืื.
ืื ืืจืฆืื ื ืืฉืืื ืงืืื 2FA ืืื ืคืขื ืืืฉืืื ืืืฉ, ืืืื ืฆืืจื ืืืืกืืฃ ืืช ืงืื ืืฆืืจืช ืืืฉืืื ืืฉืจืช:
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()
}
ืืืคืืืงืฆืืืช ืืืืืื ืคืืฉืื ื ืืืชื - ืืฆืจื ื ืืฉืืื ืืื ืืืคืืืงืฆืืืช ืืืื ืืจื ื, ืืฉืืื ื ืืื ื ืงืืืื. ืืจืื ืืืงืจืื ืื ืื ื ืื ืืืชืจ ืืืฉืชืืฉ: ืืื ืืืืข ืฉืืฉืืจืืช ืฉืืื ืงืืื 2FA ืืืฉืืื ืกืคืฆืืคื ืืืืื ืืชืช ืื ืฉื.
2 ืืฆืืจืช ืงืืื 2FA
ืืฉ ืืืฆืืจ ืงืื 2FA ืขืืืจ ืื ืื ืืกื ืฉื ืืฉืชืืฉ. ืื ืื ื ืืฉืชืืฉืื ืืกืคืจืืื
const hotp = speakeasy.hotp({
counter,
secret: account.seSecretAscii,
});
ืืืืงืช ืชืงืคืืช ืงืื 2FA ืฉืืืื ืขื ืืื ืืืฉืชืืฉ:
se2faVerified = speakeasy.hotp.verify({
counter: this.seCounter,
secret: this.seSecretAscii,
token: hotp,
});
3 ืฉืืืืช ืงืื 2FA
ืืื ืืฉืืื ืงืื 2FA, ืืชื ืืืื ืืืฉืชืืฉ ืืืืฉืง API ืฉื ืฆืืืช blockchain, ืกืคืจืืืช API ืฉื JS ืื ืืงืื ืกืืื. ืืืืืื ืื ืื ื ืืฉืชืืฉืื ืืงืื ืกืืื - ืืื ืืืฉืง ืฉืืจืช ืืคืงืืื, ืืื ืขืืจ ืืืคืฉื ืืช ืืืื ืืจืืงืฆืื ืขื ืืืืืงืฆ'ืืื. ืืื ืืฉืืื ืืืืขื ืขื ืงืื 2FA, ืขืืื ืืืฉืชืืฉ ืืคืงืืื send message
ืงืื ืกืืืืช.
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);
ืืจื ืืืืคืืช ืืฉืืื ืืืืขืืช ืืื ืืืฉืชืืฉ ืืฉืืื send
ืืกืคืจืืืช JS API.
4 ืืืฉืง ืืฉืชืืฉ
ืืฉ ืืชืช ืืืฉืชืืฉ ืืคืฉืจืืช ืืืืื ืงืื 2FA, ื ืืชื ืืขืฉืืช ืืืช ืืืจืืื ืฉืื ืืช ืืืชืื ืืคืืืคืืจืืช ืืืคืืืงืฆืื ืฉืืื. ืืืืืื ืฉืื ื ืื Vue.
ื ืืชื ืืจืืืช ืืช ืงืื ืืืงืืจ ืฉื ืืคืืืงืฆืืืช ืืืืืื ืฉื ืืืืืช ืื-ืืืจืื ืืืืงืฆ'ืืื ืืืชืืืช
ืืงืืจ: www.habr.com