Score:0

คีย์ Fernet ของฉัน "หมดอายุ" จะทำอย่างไร

ธง us

6 เดือนที่แล้ว ฉันสร้างบอทที่เก็บข้อมูลผู้ใช้ทุกคนในรูปแบบ json ในไฟล์ข้อความต่างๆ และฉันมีคีย์ Fernet ฉันไม่ได้สัมผัสมันเป็นเวลา 2 เดือนแล้ว เพราะมันเป็นบอทสำหรับนักเรียน นี่คือสิ่งที่ โรงเรียนเปิดได้ 15 วัน ฉันมี 106 บัญชีที่เข้ารหัสโดยใช้คีย์ Fernet เดียว และฉันไม่สามารถถอดรหัสไฟล์ใด ๆ เพราะมันบอกว่ามันเสียหาย ฉันจะทำอย่างไร

Eric D avatar
uz flag
ฉันไม่คุ้นเคยกับ Fernet เป็นพิเศษ แต่จะแปลกถ้ามันปล่อยให้คีย์ถอดรหัสหมดอายุ เป็นไปได้ว่าข้อมูลเสียหายจริงๆ หรืออาจมีจุดบกพร่องในโค้ด (หมายเหตุ: ก่อนที่คุณจะทำอะไร ให้สำรองข้อมูลไว้ก่อน เพื่อไม่ให้ปัญหาแย่ลงระหว่างการแก้ไขปัญหา) การถอดรหัสเคยได้ผลมาก่อน หรือนี่เป็นครั้งแรกที่คุณถอดรหัสข้อมูลนี้ หากคุณสร้างข้อมูลที่เข้ารหัสใหม่ตอนนี้ จะถอดรหัสถูกต้องหรือไม่ คุณช่วยแชร์ซอร์สโค้ดของบอทได้ไหม (ลบความลับที่อาจมี)
Score:0
ธง uz

หลังจากขุดค้นซอร์สโค้ดของ Fernet เล็กน้อย ดูเหมือนว่ามีความเป็นไปได้อย่างหนึ่งที่คุณตั้งค่า TTL ไว้ในข้อมูลที่เข้ารหัส

หากคุณใช้ Ruby คุณสามารถปิดใช้งานการตรวจสอบ TTL ด้วยตัวเลือกการกำหนดค่า config.enforce_ttl:

หากคุณใช้ Go ดูเหมือนว่าคุณจะผ่าน ttl จาก 0 เข้าไป ตรวจสอบและถอดรหัส:

คุณอาจทดสอบทฤษฎีนี้ได้โดยใช้ Fernet CLI เนื่องจากดูเหมือนว่าจะปิดใช้งานการตรวจสอบ TTL ตามค่าเริ่มต้น (หากฉันตีความโค้ด Ruby ถูกต้อง)

โพสต์คำตอบ

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