DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

ไม่มีความลับใดที่เครื่องมือเสริมที่ใช้กันทั่วไปซึ่งการป้องกันข้อมูลในเครือข่ายแบบเปิดเป็นไปไม่ได้ก็คือเทคโนโลยีใบรับรองดิจิทัล อย่างไรก็ตามไม่มีความลับที่ข้อเสียเปรียบหลักของเทคโนโลยีคือความไว้วางใจอย่างไม่มีเงื่อนไขในศูนย์ที่ออกใบรับรองดิจิทัล ผู้อำนวยการฝ่ายเทคโนโลยีและนวัตกรรมของ ENCRY Andrey Chmora เสนอแนวทางใหม่ในการจัดการ โครงสร้างพื้นฐานคีย์สาธารณะ (โครงสร้างพื้นฐานคีย์สาธารณะ PKI) ซึ่งจะช่วยขจัดข้อบกพร่องในปัจจุบันและใช้เทคโนโลยีบัญชีแยกประเภทแบบกระจาย (บล็อกเชน) แต่สิ่งแรกก่อน

หากคุณคุ้นเคยกับวิธีการทำงานของโครงสร้างพื้นฐานคีย์สาธารณะปัจจุบันของคุณ และทราบข้อบกพร่องที่สำคัญ คุณสามารถข้ามไปยังสิ่งที่เราเสนอให้เปลี่ยนแปลงด้านล่างนี้ได้

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

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

การรักษาความลับของการถ่ายโอนข้อมูลเกิดขึ้นได้อย่างไร? ก่อนที่จะส่งข้อมูล ผู้สมัครสมาชิกที่ส่งจะเข้ารหัส (แปลงการเข้ารหัส) ข้อมูลที่เปิดโดยใช้คีย์สาธารณะของผู้รับ และผู้รับจะถอดรหัสข้อความไซเฟอร์ที่ได้รับโดยใช้คีย์ลับที่จับคู่

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

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

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

ทรัพยากรส่วนใหญ่ที่ทำงานกับข้อมูลส่วนบุคคลและข้อมูลการชำระเงิน (ธนาคาร บริษัทประกันภัย สายการบิน ระบบการชำระเงิน รวมถึงพอร์ทัลของรัฐบาล เช่น บริการด้านภาษี) ใช้วิธีการเข้ารหัสแบบอสมมาตรอย่างจริงจัง

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

หมายเหตุ: ความถูกต้องและความสมบูรณ์ของกุญแจสาธารณะได้รับการยืนยันในลักษณะเดียวกับความถูกต้องและความสมบูรณ์ของข้อมูลสาธารณะทุกประการ กล่าวคือ ใช้ลายเซ็นดิจิทัลอิเล็กทรอนิกส์ (EDS)
ใบรับรองดิจิทัลมาจากไหนหน่วยงานออกใบรับรองที่เชื่อถือได้หรือหน่วยงานออกใบรับรอง (CA) มีหน้าที่รับผิดชอบในการออกและดูแลรักษาใบรับรองดิจิทัล ผู้สมัครขอออกใบรับรองจาก CA ผ่านการระบุตัวตนที่ศูนย์การลงทะเบียน (CR) และรับใบรับรองจาก CA CA รับประกันว่าคีย์สาธารณะจากใบรับรองเป็นของเอนทิตีที่ออกใบรับรองทุกประการ

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

ใบรับรองดิจิทัลจะถูกใช้ทุกที่ที่มีการเข้ารหัสแบบอสมมาตร หนึ่งในใบรับรองดิจิทัลที่พบบ่อยที่สุดคือใบรับรอง SSL สำหรับการสื่อสารที่ปลอดภัยผ่านโปรโตคอล HTTPS บริษัทหลายร้อยแห่งที่จดทะเบียนในเขตอำนาจศาลต่างๆ มีส่วนร่วมในการออกใบรับรอง SSL ส่วนแบ่งหลักตกอยู่ที่ศูนย์ที่เชื่อถือได้ขนาดใหญ่ห้าถึงสิบแห่ง: IdenTrust, Comodo, GoDaddy, GlobalSign, DigiCert, CERTUM, Actalis, Secom, Trustwave

CA และ CR เป็นส่วนประกอบของ PKI ซึ่งรวมถึง:

  • เปิดไดเรกทอรี – ฐานข้อมูลสาธารณะที่ให้การจัดเก็บใบรับรองดิจิทัลที่ปลอดภัย
  • รายการเพิกถอนใบรับรอง – ฐานข้อมูลสาธารณะที่ให้การจัดเก็บใบรับรองดิจิทัลที่ปลอดภัยของคีย์สาธารณะที่ถูกเพิกถอน (เช่น เนื่องจากการประนีประนอมของคีย์ส่วนตัวที่จับคู่) วิชาโครงสร้างพื้นฐานสามารถเข้าถึงฐานข้อมูลนี้ได้อย่างอิสระ หรือใช้ Online Certification Status Protocol (OCSP) เฉพาะทาง ซึ่งช่วยให้กระบวนการตรวจสอบง่ายขึ้น
  • ผู้ใช้ใบรับรอง – วิชา PKI ที่ให้บริการซึ่งได้ทำข้อตกลงผู้ใช้กับ CA และตรวจสอบลายเซ็นดิจิทัลและ/หรือเข้ารหัสข้อมูลตามคีย์สาธารณะจากใบรับรอง
  • สมัครพรรคพวก – ให้บริการแก่วิชา PKI ซึ่งเป็นเจ้าของคีย์ลับที่จับคู่กับคีย์สาธารณะจากใบรับรอง และผู้ที่ได้ทำข้อตกลงสมาชิกกับ CA ผู้สมัครสมาชิกสามารถเป็นผู้ใช้ใบรับรองได้พร้อมกัน

ดังนั้นหน่วยงานที่เชื่อถือได้ของโครงสร้างพื้นฐานคีย์สาธารณะ ซึ่งรวมถึง CA, CR และไดเร็กทอรีแบบเปิด มีหน้าที่รับผิดชอบสำหรับ:

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

ข้อเสียของ PKI คืออะไร?ข้อบกพร่องพื้นฐานของ PKI คือการมีอยู่ของหน่วยงานที่เชื่อถือได้
ผู้ใช้จะต้องเชื่อถือ CA และ CR อย่างไม่มีเงื่อนไข. แต่ดังที่แสดงให้เห็นในทางปฏิบัติแล้ว ความไว้วางใจแบบไม่มีเงื่อนไขนั้นเต็มไปด้วยผลที่ตามมาร้ายแรง

ในช่วงสิบปีที่ผ่านมา มีเรื่องอื้อฉาวที่สำคัญหลายประการในด้านนี้ที่เกี่ยวข้องกับช่องโหว่ของโครงสร้างพื้นฐาน

— ในปี 2010 มัลแวร์ Stuxnet เริ่มแพร่กระจายทางออนไลน์ โดยลงนามโดยใช้ใบรับรองดิจิทัลที่ถูกขโมยจาก RealTek และ JMicron

- ในปี 2017 Google กล่าวหาว่าไซแมนเทคออกใบรับรองปลอมจำนวนมาก ในเวลานั้น Symantec เป็นหนึ่งใน CA ที่ใหญ่ที่สุดในแง่ของปริมาณการผลิต ในเบราว์เซอร์ Google Chrome 70 การสนับสนุนใบรับรองที่ออกโดยบริษัทนี้และศูนย์ในเครือ GeoTrust และ Thawte ถูกหยุดก่อนวันที่ 1 ธันวาคม 2017

CA ถูกบุกรุก และเป็นผลให้ทุกคนต้องทนทุกข์ทรมาน ทั้งตัว CA เอง รวมถึงผู้ใช้และสมาชิกด้วย ความเชื่อมั่นในโครงสร้างพื้นฐานถูกทำลายลง นอกจากนี้ ใบรับรองดิจิทัลอาจถูกบล็อกในบริบทของความขัดแย้งทางการเมือง ซึ่งจะส่งผลต่อการทำงานของทรัพยากรจำนวนมากด้วย นี่คือสิ่งที่หวาดกลัวเมื่อหลายปีก่อนในฝ่ายบริหารของประธานาธิบดีรัสเซีย ซึ่งในปี 2016 พวกเขาได้หารือเกี่ยวกับความเป็นไปได้ในการสร้างศูนย์รับรองของรัฐที่จะออกใบรับรอง SSL ให้กับไซต์บน RuNet สถานการณ์ปัจจุบันเป็นเช่นนั้นแม้แต่พอร์ทัลของรัฐในรัสเซีย ใช้ ใบรับรองดิจิทัลที่ออกโดยบริษัทอเมริกัน Comodo หรือ Thawte (บริษัทในเครือของ Symantec)

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

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

ข้อบกพร่องเหล่านี้จะถูกกำจัดได้อย่างไร?หากปัญหาของ PKI ในสถานะปัจจุบันสามารถอธิบายได้ด้วยการรวมศูนย์ ก็มีเหตุผลที่จะสรุปได้ว่าการกระจายอำนาจจะช่วยกำจัดข้อบกพร่องที่ระบุได้บางส่วน

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

กระบวนการรับ การตรวจสอบ และการยกเลิกการแจ้งเตือนจะมีลักษณะอย่างไรใน DPKI ที่เสนอ:

1. ผู้สมัครแต่ละรายส่งใบสมัครเพื่อรับการแจ้งเตือนโดยอิสระโดยการกรอกแบบฟอร์มระหว่างการลงทะเบียน หลังจากนั้นเขาสร้างธุรกรรมที่จัดเก็บไว้ในกลุ่มเฉพาะ

2. ข้อมูลเกี่ยวกับกุญแจสาธารณะ พร้อมด้วยรายละเอียดของเจ้าของและข้อมูลเมตาอื่นๆ จะถูกจัดเก็บไว้ในรีจิสทรีแบบกระจาย และไม่ได้อยู่ในใบรับรองดิจิทัล สำหรับการออกโดย PKI แบบรวมศูนย์ CA จะเป็นผู้รับผิดชอบ

3. การตรวจสอบความถูกต้องของข้อมูลประจำตัวของผู้สมัครจะดำเนินการหลังจากข้อเท็จจริงโดยความพยายามร่วมกันของชุมชนผู้ใช้ DPKI และไม่ใช่โดย CR

4. มีเพียงเจ้าของการแจ้งเตือนเท่านั้นที่สามารถเปลี่ยนสถานะของกุญแจสาธารณะได้

5. ทุกคนสามารถเข้าถึงบัญชีแยกประเภทแบบกระจายและตรวจสอบสถานะปัจจุบันของรหัสสาธารณะได้

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

ดังนั้นโครงสร้างพื้นฐานคีย์สาธารณะแบบกระจายอำนาจจะทำงานอย่างไรในทางปฏิบัติ? ให้เราอาศัยคำอธิบายของเทคโนโลยีซึ่งเราเอง ได้รับการจดสิทธิบัตรในปี 2018 และเราพิจารณาอย่างถูกต้องว่าเป็นความรู้ของเรา

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

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

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

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

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

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

ข้อมูลจากห้าฟิลด์แรกได้รับการรับรองโดยลายเซ็นอิเล็กทรอนิกส์ ซึ่งสร้างขึ้นโดยใช้รหัสลับของกระเป๋าเงิน

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

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

สิ่งแรกที่อาจดึงดูดสายตาของคุณคือคู่คีย์ที่มีอยู่มากมาย นอกจากคู่คีย์กระเป๋าสตางค์ที่คุ้นเคยแล้ว ยังใช้คู่คีย์ธรรมดาและคีย์บริการอีกด้วย

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

คู่บริการจะออกให้กับวิชา DPKI ที่ลงทะเบียนแล้ว ชื่อของคู่นี้สอดคล้องกับจุดประสงค์ของมัน โปรดทราบว่าเมื่อสร้าง/ตรวจสอบธุรกรรมเป็นศูนย์ จะไม่มีการใช้คีย์บริการ

มาชี้แจงจุดประสงค์ของคีย์อีกครั้ง:

  1. รหัสกระเป๋าสตางค์ใช้ในการสร้าง/ตรวจสอบทั้งธุรกรรมที่เป็นโมฆะและธุรกรรมอื่น ๆ ที่ไม่ใช่โมฆะ รหัสส่วนตัวของกระเป๋าเงินเป็นที่รู้จักเฉพาะกับเจ้าของกระเป๋าเงินซึ่งเป็นเจ้าของกุญแจสาธารณะทั่วไปหลายใบด้วย
  2. กุญแจสาธารณะทั่วไปมีวัตถุประสงค์คล้ายกับกุญแจสาธารณะซึ่งมีการออกใบรับรองใน PKI แบบรวมศูนย์
  3. คู่คีย์บริการเป็นของ DPKI รหัสลับจะออกให้กับนิติบุคคลที่ลงทะเบียน และใช้เมื่อสร้างลายเซ็นดิจิทัลสำหรับธุรกรรม (ยกเว้นธุรกรรมที่เป็นศูนย์) สาธารณะจะใช้เพื่อตรวจสอบลายเซ็นดิจิทัลอิเล็กทรอนิกส์ของธุรกรรมก่อนที่จะโพสต์ในรีจิสทรี

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

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

ธุรกรรมทั้งหมดที่ตามหลังศูนย์หนึ่งจะเกิดขึ้นในลักษณะเดียวกัน: กุญแจสาธารณะ (ไม่ใช่กระเป๋าเงิน ในกรณีของธุรกรรมที่เป็นศูนย์ แต่มาจากคู่คีย์ธรรมดา) จะดำเนินการผ่านฟังก์ชันแฮชสองฟังก์ชัน SHA256 และ RIPEMD160 นี่คือวิธีการสร้างข้อมูลของฟิลด์ที่สาม ฟิลด์ที่สี่ประกอบด้วยข้อมูลประกอบ (เช่น ข้อมูลเกี่ยวกับสถานะปัจจุบัน วันหมดอายุ การประทับเวลา ตัวระบุของอัลกอริทึมการเข้ารหัสลับที่ใช้ เป็นต้น) ฟิลด์ที่ห้าประกอบด้วยคีย์สาธารณะจากคู่คีย์บริการ ด้วยความช่วยเหลือนี้ ลายเซ็นดิจิทัลจะถูกตรวจสอบ ดังนั้นมันจะถูกจำลองแบบ ให้เราพิสูจน์ความจำเป็นของแนวทางดังกล่าว

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

ปล่อยให้ผู้โจมตีปลอมแปลงข้อมูลธุรกรรม จากมุมมองของคีย์และลายเซ็นดิจิทัล ตัวเลือกต่อไปนี้เป็นไปได้:

1. ผู้โจมตีวางคีย์สาธารณะไว้ในธุรกรรมในขณะที่ลายเซ็นดิจิทัลของเจ้าของยังคงไม่เปลี่ยนแปลง
2. ผู้โจมตีสร้างลายเซ็นดิจิทัลบนคีย์ส่วนตัวของเขา แต่ยังคงคีย์สาธารณะของเจ้าของไว้ไม่เปลี่ยนแปลง
3. ผู้โจมตีสร้างลายเซ็นดิจิทัลบนคีย์ส่วนตัวของเขาและวางคีย์สาธารณะที่จับคู่ไว้ในธุรกรรม

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

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

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

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

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

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

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

ลองจินตนาการว่าเราต้องตรวจสอบว่าธุรกรรมหมายเลข 3 เกิดขึ้นหลังจากธุรกรรมหมายเลข 2 จริงหรือไม่ เมื่อต้องการทำเช่นนี้ โดยใช้วิธีการแฮชแบบรวม ค่าฟังก์ชันแฮชจะถูกคำนวณสำหรับข้อมูลจากฟิลด์ที่สาม สี่ และห้าของธุรกรรมหมายเลข 2 จากนั้นจะมีการต่อข้อมูลจากช่องแรกของธุรกรรมหมายเลข 3 และค่าฟังก์ชันแฮชรวมที่ได้รับก่อนหน้านี้สำหรับข้อมูลจากช่องที่สาม, สี่และห้าของธุรกรรมหมายเลข 2 ทั้งหมดนี้ทำงานผ่านฟังก์ชันแฮชสองฟังก์ชัน SHA256 และ RIPEMD160 หากค่าที่ได้รับตรงกับข้อมูลในช่องที่สองของธุรกรรมหมายเลข 2 การตรวจสอบจะถูกส่งผ่านและการเชื่อมต่อจะได้รับการยืนยัน สิ่งนี้แสดงให้เห็นชัดเจนยิ่งขึ้นในรูปด้านล่าง

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain
DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

โดยทั่วไปแล้ว เทคโนโลยีในการสร้างและป้อนการแจ้งเตือนลงในเครื่องบันทึกจะมีลักษณะเช่นนี้ทุกประการ ภาพประกอบของกระบวนการสร้างห่วงโซ่การแจ้งเตือนแสดงในรูปต่อไปนี้:

DPKI: ขจัดข้อบกพร่องของ PKI แบบรวมศูนย์โดยใช้ blockchain

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

ดังนั้นเนื่องจากผู้สมัครเองส่งใบสมัครเพื่อลงทะเบียนการแจ้งเตือนซึ่งไม่ได้จัดเก็บไว้ในฐานข้อมูล CA แต่ในรีจิสทรีจึงควรพิจารณาองค์ประกอบทางสถาปัตยกรรมหลักของ DPKI:

1. การลงทะเบียนการแจ้งเตือนที่ถูกต้อง (RDN)
2. การลงทะเบียนการแจ้งเตือนที่ถูกเพิกถอน (RON)
3. การลงทะเบียนการแจ้งเตือนที่ถูกระงับ (RPN)

ข้อมูลเกี่ยวกับกุญแจสาธารณะจะถูกเก็บไว้ใน RDN/RON/RPN ในรูปแบบของค่าฟังก์ชันแฮช เป็นที่น่าสังเกตว่าสิ่งเหล่านี้อาจเป็นได้ทั้งการลงทะเบียนที่แตกต่างกันหรือเครือข่ายที่แตกต่างกัน หรือแม้แต่เครือข่ายเดียวซึ่งเป็นส่วนหนึ่งของการลงทะเบียนเดียว เมื่อมีการป้อนข้อมูลเกี่ยวกับสถานะของคีย์สาธารณะทั่วไป (การเพิกถอน การระงับ ฯลฯ) ลงใน ฟิลด์ที่สี่ของโครงสร้างข้อมูลในรูปแบบของค่ารหัสที่สอดคล้องกัน มีตัวเลือกที่แตกต่างกันมากมายสำหรับการนำสถาปัตยกรรมของ DPKI ไปใช้และการเลือกใช้อย่างใดอย่างหนึ่งนั้นขึ้นอยู่กับปัจจัยหลายประการเช่นเกณฑ์การปรับให้เหมาะสมเช่นต้นทุนของหน่วยความจำระยะยาวสำหรับการจัดเก็บกุญแจสาธารณะ ฯลฯ

ดังนั้น DPKI อาจกลายเป็นอย่างน้อยหากเทียบได้กับโซลูชันแบบรวมศูนย์ในแง่ของความซับซ้อนทางสถาปัตยกรรมหากไม่ง่ายกว่านั้น

คำถามหลักยังคงอยู่ - รีจิสทรีใดที่เหมาะกับการนำเทคโนโลยีไปใช้?

ข้อกำหนดหลักสำหรับรีจิสทรีคือความสามารถในการสร้างธุรกรรมทุกประเภท ตัวอย่างบัญชีแยกประเภทที่มีชื่อเสียงที่สุดคือเครือข่าย Bitcoin แต่เมื่อใช้เทคโนโลยีที่อธิบายไว้ข้างต้นจะเกิดปัญหาบางอย่าง: ข้อ จำกัด ของภาษาสคริปต์ที่มีอยู่, การขาดกลไกที่จำเป็นสำหรับการประมวลผลชุดข้อมูลโดยอำเภอใจ, วิธีในการสร้างธุรกรรมประเภทที่กำหนดเองและอื่น ๆ อีกมากมาย

พวกเราที่ ENCRY พยายามแก้ไขปัญหาที่กำหนดไว้ข้างต้นและพัฒนารีจิสทรีซึ่งตามความเห็นของเรามีข้อดีหลายประการ กล่าวคือ:

  • รองรับธุรกรรมหลายประเภท: สามารถแลกเปลี่ยนสินทรัพย์ (นั่นคือทำธุรกรรมทางการเงิน) และสร้างธุรกรรมที่มีโครงสร้างตามอำเภอใจ
  • นักพัฒนาสามารถเข้าถึงภาษาโปรแกรมที่เป็นกรรมสิทธิ์ PrismLang ซึ่งให้ความยืดหยุ่นที่จำเป็นในการแก้ปัญหาทางเทคโนโลยีต่างๆ
  • มีกลไกในการประมวลผลชุดข้อมูลตามอำเภอใจ

หากเราใช้แนวทางที่เรียบง่าย ลำดับของการกระทำต่อไปนี้จะเกิดขึ้น:

  1. ผู้สมัครลงทะเบียนกับ DPKI และรับกระเป๋าเงินดิจิทัล ที่อยู่กระเป๋าเงินคือค่าแฮชของกุญแจสาธารณะของกระเป๋าเงิน รหัสส่วนตัวของกระเป๋าเงินเป็นที่รู้จักเฉพาะกับผู้สมัครเท่านั้น
  2. วิชาที่ลงทะเบียนจะได้รับสิทธิ์ในการเข้าถึงรหัสลับของบริการ
  3. วัตถุสร้างธุรกรรมเป็นศูนย์และยืนยันด้วยลายเซ็นดิจิทัลโดยใช้รหัสลับของกระเป๋าเงิน
  4. หากธุรกรรมอื่นที่ไม่ใช่ศูนย์เกิดขึ้น จะได้รับการรับรองโดยลายเซ็นดิจิทัลอิเล็กทรอนิกส์โดยใช้รหัสลับสองรหัส: กระเป๋าเงินและบริการหนึ่งอัน
  5. เรื่องส่งธุรกรรมไปยังพูล
  6. โหนดเครือข่าย ENCRY อ่านธุรกรรมจากพูลและตรวจสอบลายเซ็นดิจิทัล รวมถึงการเชื่อมต่อของธุรกรรม
  7. หากลายเซ็นดิจิทัลถูกต้องและการเชื่อมต่อได้รับการยืนยัน ระบบจะเตรียมธุรกรรมสำหรับการเข้าสู่การลงทะเบียน

ที่นี่สำนักทะเบียนทำหน้าที่เป็นฐานข้อมูลแบบกระจายที่จัดเก็บข้อมูลเกี่ยวกับการแจ้งเตือนที่ถูกต้อง ยกเลิก และถูกระงับ

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

แต่โดยทั่วไป รูปภาพต่อไปนี้จะปรากฏขึ้น: DPKI เป็นโอกาสในการแก้ไขข้อบกพร่องหลายประการของ PKI แบบรวมศูนย์ หากไม่ใช่ทั้งหมด

สมัครสมาชิก Habrablog ของเรา เราวางแผนที่จะนำเสนอการวิจัยและพัฒนาของเราอย่างต่อเนื่อง และติดตาม ทวิตเตอร์หากท่านไม่อยากพลาดข่าวสารอื่นๆ เกี่ยวกับโครงการ ENCRY

ที่มา: will.com

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