ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน

ข้อความ SMS เป็นวิธีที่ได้รับความนิยมมากที่สุดในการตรวจสอบสิทธิ์แบบสองปัจจัย (2FA) มันถูกใช้โดยธนาคาร กระเป๋าเงินอิเล็กทรอนิกส์และคริปโต ตู้ไปรษณีย์ และบริการทุกประเภท จำนวนผู้ใช้วิธีใกล้ถึง 100% แล้ว.

ฉันไม่พอใจกับสถานการณ์นี้ เพราะวิธีการนี้ไม่ปลอดภัย การกำหนดหมายเลขใหม่จากซิมการ์ดหนึ่งไปยังอีกซิมการ์ดหนึ่งเริ่มต้นตั้งแต่ต้นยุคมือถือ - นี่คือวิธีการคืนค่าหมายเลขเมื่อซิมการ์ดสูญหาย “ผู้เชี่ยวชาญด้านการขโมยเงินดิจิทัล” ตระหนักว่าตัวเลือก “เขียนซิมการ์ดใหม่” สามารถใช้ในแผนการฉ้อโกงได้ ท้ายที่สุดแล้ว ผู้ที่ควบคุมซิมการ์ดจะสามารถควบคุมธนาคารออนไลน์ กระเป๋าเงินอิเล็กทรอนิกส์ และแม้แต่สกุลเงินดิจิทัลของผู้อื่นได้ และคุณสามารถครอบครองหมายเลขของบุคคลอื่นได้โดยการติดสินบนพนักงานโทรคมนาคม โดยใช้การหลอกลวงหรือปลอมแปลงเอกสาร

ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน

มีการเปิดเผยว่ามีการสลับซิมหลายพันตอน เนื่องจากเรียกว่าแผนการฉ้อโกงนี้ ขนาดของภัยพิบัติชี้ให้เห็นว่าโลกจะละทิ้ง 2FA ผ่านทาง SMS ในไม่ช้า แต่สิ่งนี้ไม่ได้เกิดขึ้น - ใน การศึกษา พวกเขาบอกว่าไม่ใช่ผู้ใช้ที่เลือกวิธี 2FA แต่เป็นเจ้าของบริการ

เราเสนอให้ใช้วิธี 2FA ที่ปลอดภัยพร้อมการส่งรหัสแบบครั้งเดียวผ่านบล็อกเชน และเราจะแจ้งให้คุณทราบว่าเจ้าของบริการสามารถเชื่อมต่อได้อย่างไร

นับไปเป็นล้าน

ในปี 2019 การฉ้อโกงการแลกเปลี่ยน SIM เพิ่มขึ้น 63% ตามข้อมูลของตำรวจลอนดอน และ “ใบเรียกเก็บเงินโดยเฉลี่ย” ของผู้โจมตีอยู่ที่ 4,000 GBP ฉันไม่พบสถิติใด ๆ ในรัสเซีย แต่ฉันคิดว่าสถิตินั้นแย่กว่านั้นอีก

การสลับซิมใช้เพื่อขโมยบัญชี Twitter, Instagram, Facebook, VK ยอดนิยม บัญชีธนาคาร และแม้แต่สกุลเงินดิจิทัลยอดนิยมเมื่อเร็ว ๆ นี้ - หนังสือพิมพ์เดอะไทมส์รายงาน ตามข้อมูลจาก Joby Weeks ผู้ประกอบการ Bitcoin กรณีการโจรกรรมสกุลเงินดิจิทัลที่มีรายละเอียดสูงโดยใช้การสลับซิมได้ปรากฏขึ้นในสื่อตั้งแต่ปี 2016 ปี 2019 ถือเป็นจุดสูงสุดอย่างแท้จริง

ในเดือนพฤษภาคม สำนักงานอัยการสหรัฐฯ ประจำเขตตะวันออกของรัฐมิชิแกน นำค่าใช้จ่าย คนหนุ่มสาวเก้าคนที่มีอายุระหว่าง 19 ถึง 26 ปี: เชื่อกันว่าเป็นส่วนหนึ่งของแก๊งแฮ็กเกอร์ที่เรียกว่า "ชุมชน" แก๊งค์นี้ถูกตั้งข้อหาโจมตีแบบ Swap จำนวน 2,4 ครั้ง ซึ่งส่งผลให้แฮกเกอร์ขโมยสกุลเงินดิจิตอลมูลค่ากว่า 10 ล้านเหรียญสหรัฐ และในเดือนเมษายน Joel Ortiz นักเรียนจากแคลิฟอร์เนียได้รับโทษจำคุก 7.5 ปีฐานแลกซิม การผลิตของเขามีมูลค่า XNUMX ล้านดอลลาร์ในสกุลเงินดิจิทัล

ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน
ภาพถ่ายของ Joel Ortiz ในงานแถลงข่าวของมหาวิทยาลัย สองปีต่อมาเขาจะถูกควบคุมตัวในข้อหาฉ้อโกงทางไซเบอร์

การสลับซิมทำงานอย่างไร

“สลับ” หมายถึงการแลกเปลี่ยน ในรูปแบบดังกล่าวทั้งหมด อาชญากรจะยึดหมายเลขโทรศัพท์ของเหยื่อ โดยปกติแล้วจะต้องออกซิมการ์ดใหม่ และใช้เพื่อรีเซ็ตรหัสผ่าน การแลกเปลี่ยน SIM ทั่วไปในทางทฤษฎีมีลักษณะดังนี้:

  1. บริการข่าวกรอง ผู้ฉ้อโกงค้นหาข้อมูลส่วนบุคคลของเหยื่อ: ชื่อและหมายเลขโทรศัพท์ สามารถพบได้ในโอเพนซอร์ส (โซเชียลเน็ตเวิร์ก เพื่อน) หรือได้รับจากผู้สมรู้ร่วมคิด - พนักงานของผู้ให้บริการโทรศัพท์มือถือ
  2. การปิดกั้น ซิมการ์ดของเหยื่อถูกปิดใช้งาน ในการดำเนินการนี้ เพียงโทรติดต่อฝ่ายสนับสนุนด้านเทคนิคของผู้ให้บริการ ระบุหมายเลขแล้วแจ้งว่าโทรศัพท์สูญหาย
  3. จับภาพโอนหมายเลขไปยังซิมการ์ดของคุณ โดยปกติจะทำผ่านผู้สมรู้ร่วมคิดในบริษัทโทรคมนาคมหรือผ่านการปลอมแปลงเอกสาร

ในชีวิตจริงสิ่งต่าง ๆ นั้นรุนแรงยิ่งกว่านั้นอีก ผู้โจมตีเลือกเหยื่อแล้วติดตามตำแหน่งของโทรศัพท์ทุกวัน - คำขอหนึ่งครั้งเพื่อรับข้อมูลที่ผู้ใช้บริการเปลี่ยนไปใช้โรมมิ่งมีค่าใช้จ่าย 1-2 เซนต์ ทันทีที่เจ้าของซิมการ์ดเดินทางไปต่างประเทศ พวกเขาก็เจรจากับผู้จัดการที่ร้านสื่อสารเพื่อออกซิมการ์ดใหม่ มีค่าใช้จ่ายประมาณ 50 ดอลลาร์ (ฉันพบข้อมูล - ในประเทศต่างๆ และกับผู้ให้บริการที่แตกต่างกันตั้งแต่ 20 ถึง 100 ดอลลาร์) และในกรณีที่เลวร้ายที่สุดผู้จัดการจะถูกไล่ออก - ไม่มีความรับผิดชอบในเรื่องนี้

ตอนนี้ผู้โจมตีจะได้รับ SMS ทั้งหมดและเจ้าของโทรศัพท์จะไม่สามารถทำอะไรกับมันได้ - เขาอยู่ต่างประเทศ จากนั้นคนร้ายจะสามารถเข้าถึงบัญชีของเหยื่อทั้งหมดและเปลี่ยนรหัสผ่านได้หากต้องการ

โอกาสที่จะคืนทรัพย์สินที่ถูกขโมย

บางครั้งธนาคารจะรองรับเหยื่อได้ครึ่งทางและถอนการโอนเงินออกจากบัญชีของพวกเขา ดังนั้นจึงเป็นไปได้ที่จะคืนเงินตามคำสั่งแม้ว่าจะไม่พบคนร้ายก็ตาม แต่ด้วยกระเป๋าเงินดิจิตอล ทุกอย่างซับซ้อนมากขึ้น - และ ในทางเทคนิคและในทางนิติบัญญัติ จนถึงขณะนี้ยังไม่มีการแลกเปลี่ยน/กระเป๋าสตางค์แม้แต่รายการเดียวที่จ่ายค่าชดเชยให้กับผู้ที่ตกเป็นเหยื่อของการแลกเปลี่ยน

หากเหยื่อต้องการปกป้องเงินของตนในศาล พวกเขาจะตำหนิผู้ดำเนินการ: เขาสร้างเงื่อนไขสำหรับการขโมยเงินจากบัญชี นั่นคือสิ่งที่ฉันทำ ไมเคิล เทอร์ปินซึ่งสูญเสียเงิน 224 ล้านดอลลาร์จากการแลกเปลี่ยน ขณะนี้เขากำลังฟ้องร้องบริษัทโทรคมนาคม AT&T

ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน

จนถึงขณะนี้ยังไม่มีรัฐใดที่มีแผนการทำงานเพื่อปกป้องเจ้าของสกุลเงินดิจิทัลอย่างถูกกฎหมาย เป็นไปไม่ได้ที่จะประกันเงินทุนของคุณหรือรับค่าชดเชยสำหรับการสูญเสีย ดังนั้นการป้องกันการโจมตีแบบ Swap นั้นง่ายกว่าการจัดการกับผลที่ตามมา วิธีที่ชัดเจนที่สุดคือการใช้ "ปัจจัยที่สอง" ที่เชื่อถือได้มากขึ้นสำหรับ 2FA

การสลับซิมไม่ใช่ปัญหาเดียวของ 2FA ผ่านทาง SMS

รหัสยืนยันใน SMS ก็ไม่ปลอดภัยจากมุมมองทางเทคนิคเช่นกัน ข้อความสามารถดักจับได้เนื่องจากช่องโหว่ที่ยังไม่ได้แพตช์ใน Signaling System 7 (SS7) 2FA ผ่าน SMS ได้รับการยอมรับอย่างเป็นทางการว่าไม่ปลอดภัย (สถาบันมาตรฐานและเทคโนโลยีแห่งชาติของสหรัฐอเมริการะบุสิ่งนี้ใน คู่มือการรับรองความถูกต้องดิจิทัล).

ในเวลาเดียวกัน การมีอยู่ของ 2FA มักจะทำให้ผู้ใช้รู้สึกถึงความปลอดภัยที่ผิดพลาด และเขาเลือกรหัสผ่านที่ง่ายกว่า ดังนั้นการรับรองความถูกต้องดังกล่าวไม่ได้ทำให้เป็นเรื่องยาก แต่ช่วยให้ผู้โจมตีสามารถเข้าถึงบัญชีได้ง่ายขึ้น

และบ่อยครั้งที่ SMS มาถึงล่าช้ามากหรือมาไม่ถึงเลย

วิธีการ 2FA อื่นๆ

แน่นอนว่าแสงไม่ได้มาบรรจบกันบนสมาร์ทโฟนและ SMS มีวิธีอื่นของ 2FA ตัวอย่างเช่น รหัส TAN แบบครั้งเดียว: วิธีการดั้งเดิม แต่ใช้งานได้ - ยังคงใช้อยู่ในธนาคารบางแห่ง มีระบบที่ใช้ข้อมูลไบโอเมตริกซ์ ได้แก่ ลายนิ้วมือ การสแกนจอประสาทตา อีกทางเลือกหนึ่งที่ดูเหมือนเป็นการประนีประนอมที่สมเหตุสมผลในแง่ของความสะดวก ความน่าเชื่อถือ และราคาคือแอปพลิเคชันพิเศษสำหรับ 2FA: โทเค็น RSA, Google Authenticator นอกจากนี้ยังมีฟิสิคัลคีย์และวิธีการอื่นๆ

ตามทฤษฎีแล้ว ทุกอย่างดูสมเหตุสมผลและเชื่อถือได้ แต่ในทางปฏิบัติ โซลูชัน 2FA สมัยใหม่มีปัญหา และด้วยเหตุนี้ ความเป็นจริงจึงแตกต่างจากที่คาดหวัง

ตามที่ การสำรวจโดยหลักการแล้ว การใช้ 2FA ถือเป็นความไม่สะดวก และความนิยมของ 2FA ผ่านทาง SMS นั้น "ไม่สะดวกน้อยกว่าเมื่อเปรียบเทียบกับวิธีอื่น" - ผู้ใช้สามารถเข้าใจการรับรหัสแบบครั้งเดียวได้

ผู้ใช้เชื่อมโยงวิธีการ 2FA หลายวิธีเข้ากับความกลัวว่าการเข้าถึงจะสูญหาย คีย์จริงหรือรายการรหัสผ่าน TAN อาจสูญหายหรือถูกขโมยได้ โดยส่วนตัวแล้วฉันมีประสบการณ์ที่ไม่ดีกับ Google Authenticator สมาร์ทโฟนเครื่องแรกของฉันที่มีแอปพลิเคชันนี้ใช้งานไม่ได้ - ขอขอบคุณความพยายามของฉันในการกู้คืนการเข้าถึงบัญชีของฉัน ปัญหาอีกประการหนึ่งคือการเปลี่ยนไปใช้อุปกรณ์ใหม่ Google Authenticator ไม่มีตัวเลือกในการส่งออกเนื่องจากเหตุผลด้านความปลอดภัย (หากสามารถส่งออกคีย์ได้ จะมีความปลอดภัยอะไรบ้าง) เมื่อฉันถือกุญแจด้วยตนเองแล้วฉันก็ตัดสินใจว่าจะง่ายกว่าที่จะทิ้งสมาร์ทโฟนเครื่องเก่าไว้ในกล่องบนชั้นวาง

วิธี 2FA ควรเป็น:

  • ปลอดภัย - มีเพียงคุณและไม่ใช่ผู้โจมตีเท่านั้นที่ควรเข้าถึงบัญชีของคุณ
  • เชื่อถือได้ - คุณสามารถเข้าถึงบัญชีของคุณได้ทุกเมื่อที่ต้องการ
  • สะดวกและเข้าถึงได้ - การใช้ 2FA มีความชัดเจนและใช้เวลาน้อยที่สุด
  • ราคาถูก

เราเชื่อว่าบล็อคเชนเป็นทางออกที่ถูกต้อง

ใช้ 2FA บนบล็อคเชน

สำหรับผู้ใช้ 2FA บนบล็อกเชนจะมีลักษณะเหมือนกับการรับรหัสแบบครั้งเดียวผ่าน SMS ข้อแตกต่างเพียงอย่างเดียวคือช่องทางการจัดส่ง วิธีการรับรหัส 2FA ขึ้นอยู่กับสิ่งที่บล็อกเชนเสนอ ในโครงการของเรา (ข้อมูลอยู่ในโปรไฟล์ของฉัน) นี่คือเว็บแอปพลิเคชัน, Tor, iOS, Android, Linux, Windows, MacOS

บริการสร้างรหัสแบบใช้ครั้งเดียวและส่งไปยังผู้ส่งสารบนบล็อคเชน จากนั้นปฏิบัติตามคลาสสิก: ผู้ใช้ป้อนรหัสที่ได้รับในส่วนต่อประสานบริการและเข้าสู่ระบบ

ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน

ในบทความ ผู้ส่งสารแบบกระจายอำนาจทำงานบนบล็อคเชนอย่างไร ฉันเขียนว่า blockchain ช่วยให้มั่นใจในความปลอดภัยและความเป็นส่วนตัวของการส่งข้อความ ในเรื่องการส่งรหัส 2FA ผมจะเน้นไปที่:

  • คลิกเพียงครั้งเดียวเพื่อสร้างบัญชี - ไม่ต้องใช้โทรศัพท์หรืออีเมล
  • ข้อความทั้งหมดที่มีรหัส 2FA จะได้รับการเข้ารหัสจากต้นทางถึงปลายทาง curve25519xsalsa20poly1305
  • ไม่รวมการโจมตี MITM - ทุกข้อความที่มีรหัส 2FA เป็นธุรกรรมบนบล็อกเชนและลงนามโดย Ed25519 EdDSA
  • ข้อความที่มีรหัส 2FA จะจบลงในบล็อกของตัวเอง ลำดับและการประทับเวลาของบล็อกไม่สามารถแก้ไขได้ ดังนั้นลำดับของข้อความจึงเกิดขึ้น
  • ไม่มีโครงสร้างส่วนกลางที่จะตรวจสอบ "ความถูกต้อง" ของข้อความ สิ่งนี้ทำโดยระบบกระจายโหนดตามฉันทามติ และผู้ใช้เป็นเจ้าของ
  • ไม่สามารถปิดใช้งานได้ - บัญชีไม่สามารถบล็อกได้และไม่สามารถลบข้อความได้
  • เข้าถึงรหัส 2FA จากอุปกรณ์ใดก็ได้ตลอดเวลา
  • การยืนยันการส่งข้อความด้วยรหัส 2FA บริการที่ส่งรหัสผ่านแบบใช้ครั้งเดียวจะรู้แน่นอนว่าได้ส่งไปแล้ว ไม่มีปุ่ม "ส่งอีกครั้ง"

เพื่อเปรียบเทียบกับวิธี 2FA อื่นๆ ฉันได้สร้างตาราง:

ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน

ผู้ใช้ได้รับบัญชีใน blockchain Messenger เพื่อรับรหัสในไม่กี่วินาที - มีเพียงข้อความรหัสผ่านเท่านั้นที่ใช้ในการเข้าสู่ระบบ ดังนั้นวิธีการสมัครอาจแตกต่างกัน: คุณสามารถใช้บัญชีเดียวเพื่อรับรหัสสำหรับบริการทั้งหมดหรือคุณสามารถสร้างบัญชีแยกต่างหากสำหรับแต่ละบริการได้

นอกจากนี้ยังมีความไม่สะดวก - บัญชีต้องมีธุรกรรมอย่างน้อยหนึ่งรายการ เพื่อให้ผู้ใช้ได้รับข้อความที่เข้ารหัสพร้อมรหัส คุณจำเป็นต้องทราบรหัสสาธารณะของเขา และมันจะปรากฏในบล็อกเชนเฉพาะกับการทำธุรกรรมครั้งแรกเท่านั้น นี่คือวิธีที่เราจัดการเพื่อให้ได้มา: เราให้โอกาสพวกเขารับโทเค็นฟรีในกระเป๋าเงินของพวกเขา อย่างไรก็ตาม วิธีแก้ปัญหาที่ดีกว่าคือการตั้งชื่อบัญชีให้เป็นคีย์สาธารณะ (เพื่อเปรียบเทียบเรามีเลขที่บัญชี U1467838112172792705 เป็นอนุพันธ์ของกุญแจสาธารณะ cc1ca549413b942029c4742a6e6ed69767c325f8d989f7e4b71ad82a164c2ada. สำหรับผู้ส่งสารจะสะดวกและอ่านง่ายกว่า แต่สำหรับระบบการส่งรหัส 2FA มันเป็นข้อจำกัด) ฉันคิดว่าในอนาคตจะมีคนตัดสินใจเช่นนี้และย้าย "ความสะดวกสบายและการเข้าถึง" ไปยังโซนสีเขียว

ราคาการส่งรหัส 2FA ต่ำมาก - 0.001 ADM ตอนนี้อยู่ที่ 0.00001 USD คุณสามารถเพิ่ม blockchain ของคุณและทำให้ราคาเป็นศูนย์ได้อีกครั้ง

วิธีเชื่อมต่อ 2FA บนบล็อคเชนกับบริการของคุณ

ฉันหวังว่าฉันจะสามารถดึงดูดผู้อ่านสองสามคนให้เพิ่มการอนุญาตบล็อคเชนในบริการของพวกเขาได้

ฉันจะบอกวิธีการทำเช่นนี้โดยใช้ Messenger ของเราเป็นตัวอย่าง และในการเปรียบเทียบ คุณสามารถใช้ blockchain อื่นได้ ในแอปสาธิต 2FA เราใช้ postgresql10 เพื่อจัดเก็บข้อมูลบัญชี

ขั้นตอนการเชื่อมต่อ:

  1. สร้างบัญชีบนบล็อคเชนที่คุณจะส่งรหัส 2FA คุณจะได้รับข้อความรหัสผ่านซึ่งใช้เป็นคีย์ส่วนตัวเพื่อเข้ารหัสข้อความด้วยรหัสและเพื่อลงนามในธุรกรรม
  2. เพิ่มสคริปต์ไปยังเซิร์ฟเวอร์ของคุณเพื่อสร้างรหัส 2FA หากคุณใช้วิธี 2FA อื่นกับการส่งรหัสผ่านแบบครั้งเดียวอยู่แล้ว แสดงว่าคุณได้ทำขั้นตอนนี้เสร็จสิ้นแล้ว
  3. เพิ่มสคริปต์ไปยังเซิร์ฟเวอร์ของคุณเพื่อส่งรหัสไปยังผู้ใช้ใน blockchain Messenger
  4. สร้างอินเทอร์เฟซผู้ใช้สำหรับการส่งและป้อนรหัส 2FA หากคุณใช้วิธี 2FA อื่นกับการส่งรหัสผ่านแบบครั้งเดียวอยู่แล้ว แสดงว่าคุณได้ทำขั้นตอนนี้เสร็จสิ้นแล้ว

1 การสร้างบัญชี

การสร้างบัญชีในบล็อกเชนหมายถึงการสร้างคีย์ส่วนตัว คีย์สาธารณะ และที่อยู่บัญชีที่ได้รับ

ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน

ขั้นแรก ข้อความรหัสผ่าน BIP39 จะถูกสร้างขึ้น และแฮช SHA-256 จะถูกคำนวณจากนั้น แฮชใช้เพื่อสร้างคีย์ส่วนตัว 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 จากบัญชีใดบัญชีหนึ่งและสามารถตั้งชื่อได้

ย้ายไปรักษาความปลอดภัย 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 คุณสามารถใช้ blockchain node API, ไลบรารี JS API หรือคอนโซลได้ ในตัวอย่างนี้ เราใช้คอนโซล - นี่คืออินเทอร์เฟซบรรทัดคำสั่ง ซึ่งเป็นยูทิลิตี้ที่ช่วยลดความยุ่งยากในการโต้ตอบกับบล็อกเชน หากต้องการส่งข้อความด้วยรหัส 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

ย้ายไปรักษาความปลอดภัย 2FA บนบล็อคเชน

สามารถดูซอร์สโค้ดสำหรับแอปพลิเคชันสาธิตการตรวจสอบสิทธิ์แบบสองปัจจัยบล็อคเชนได้ที่ GitHub. มีลิงก์ใน Readme ไปยังการสาธิตสดให้ทดลองใช้

ที่มา: will.com

เพิ่มความคิดเห็น