Score:0

การใช้นามแฝงแฮชโดยใช้รหัสสาธารณะ

ธง be

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

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

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

หากเกี่ยวข้อง การใช้งานจริงจะต้องดำเนินการโดยใช้ Python

Maarten Bodewes avatar
in flag
โดยทั่วไปแล้ว การแฮชหมายความว่าคุณเรียกใช้ข้อมูลของคุณผ่านแฮชเข้ารหัส เช่น SHA-256 คุณหมายถึงการแฮชแบบนั้น หรือคุณหมายถึงการเข้ารหัสซึ่งสร้างข้อความเข้ารหัสเพื่อรับความลับ?
kelalaka avatar
in flag
แฮชเพื่อความเท่าเทียมกัน และใช้ AES-GCM พร้อม IV=log number ในเวลาเดียวกัน
Senshi avatar
be flag
@MaartenBodewes ฉันหมายถึงการเข้ารหัส เพราะฉันต้องสามารถกู้คืนข้อความธรรมดาได้ในบางกรณี ความเข้าใจของฉันคือการแฮชเป็นวิธี "ทางเดียว" ซึ่งหมายความว่าฉันไม่สามารถรับข้อความธรรมดาจากแฮชที่สร้างขึ้นได้ ถูกต้องหรือไม่?
Score:3
ธง ar

สิ่งที่คุณดูเหมือนจะขอคือคีย์สาธารณะบางประเภท การเข้ารหัสแบบบรรจบกันซึ่งมีรูปแบบต่างๆ

อย่างไรก็ตาม โครงร่างทั้งหมดดังกล่าวมีความเสี่ยงอย่างหลีกเลี่ยงไม่ได้ต่อการโจมตีแบบเดาว่ากำลังดุร้าย หากจำนวนของข้อความธรรมดาที่น่าเชื่อถือมีน้อย â กล่าวคือ น้อยกว่าหนึ่งเซปล้าน ($10^{24} â 2^{80}$).

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

CPU เดสก์ท็อปทั่วไปสามารถทำได้ตามลำดับประมาณพันล้าน ($10^9 â 2^{30}$) เข้ารหัสต่อวินาที ดังนั้นหากมีข้อความธรรมดาน้อยกว่านั้น โครงร่างจะไม่มีการรักษาความปลอดภัยที่แท้จริงเลย และหากผู้โจมตีเต็มใจที่จะใช้เวลาเพิ่มขึ้นอีกเล็กน้อยและ/หรือซื้อ (หรือขโมย) พลังการประมวลผลที่มากกว่านั้นอีกเล็กน้อย พวกเขาอาจใช้กำลังอย่างดุร้ายเพื่อฝ่าฟันผ่านข้อความธรรมดาจำนวนมากเป็นพันหรือล้านหรือพันล้านเท่า นอกจากนี้ การโจมตีไซเฟอร์เท็กซ์หลายตัวพร้อมกันในลักษณะนี้ก็รวดเร็วพอๆ กับการโจมตีตัวเดียว

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

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

สิ่งที่คุณสามารถทำได้คือหนึ่งในสิ่งต่อไปนี้

  1. อย่าจัดเก็บหรือประมวลผลข้อมูลดังกล่าวหากคุณหลีกเลี่ยงได้

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

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

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

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

ar flag
ปล. คำตอบก่อนหน้าที่เกี่ยวข้อง: https://crypto.stackexchange.com/questions/25808/one-way-deterministic-hash-for-low-entropy-input/25813#25813
Senshi avatar
be flag
ขอบคุณมาก. ทั้งหมดนี้เป็นข้อมูลที่ยอดเยี่ยมและทำให้ฉันคิดอะไรได้มากมาย ฉันประเมินช่องโหว่ bruteforce ต่ำเกินไปด้วยข้อความธรรมดาที่เลือกและชุดค่าผสมที่จำกัด คำแนะนำ 2 ดูเหมือนจะเป็นวิธีแก้ปัญหาที่น่าสนใจสำหรับกรณีนี้โดยเฉพาะ การวิเคราะห์อัตโนมัติจะเกิดขึ้นบนเวิร์กสเตชันที่แยกจากกันซึ่งผู้ใช้ทุกคนไม่สามารถเข้าถึงคีย์ถอดรหัสได้ และรายงานที่สร้างขึ้นจะเข้าถึงได้เฉพาะกับนักวิเคราะห์บางรายเท่านั้นที่ใช้ IDM ของเรา การถอดรหัสแบบเฉพาะกิจไม่ควรเกิดขึ้น ยกเว้นในกรณีพิเศษทางนิติวิทยาศาสตร์

โพสต์คำตอบ

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