ความปลอดภัยของลิงก์ที่มีรหัสผ่าน — จะเกิดอะไรขึ้นเมื่อคุณคลิก
คุณสามารถเพิ่มรหัสผ่านให้กับลิงก์สั้นของคุณได้ เราจะแสดงให้เห็นว่ามีอะไรเกิดขึ้นเบื้องหลัง โดยไม่ใช้ศัพท์เทคนิคที่เข้าใจยาก และบอกเหตุผลว่าทำไมมันถึงคุ้มค่าที่จะทำ
คู่มือเกี่ยวกับลิงก์ที่มีรหัสผ่านครึ่งหนึ่งมักจะเริ่มต้นด้วยประโยคที่ว่ามันคือ "เลเยอร์ความปลอดภัยเพิ่มเติม" และจบลงเพียงแค่นั้น ในความคิดของฉัน นี่เป็นสิ่งที่สำคัญน้อยที่สุดเท่าที่จะพูดถึงเรื่องนี้ได้เลย
เพราะ "ชั้นความปลอดภัย" ไม่ได้อธิบายอะไรเลย มันไม่ได้บอกคุณว่าเกิดอะไรขึ้นกับรหัสผ่านนี้ ใครเห็นมันบ้าง หรือเมื่อไหร่ที่มันจะมีประโยชน์ และนั่นคือคำถามเดียวที่คุ้มค่าแก่การถามตัวเอง ก่อนที่คุณจะคลิก "เพิ่มรหัสผ่าน"
ดังนั้น ตามลำดับ.
รหัสผ่านที่ลิงก์ไม่ใช่สิ่งเดียวกันกับแม่กุญแจที่ประตูรั้ว
ผู้คนมักจินตนาการว่ารหัสผ่านจะช่วยปิดกั้นลิงก์ได้อย่างเบ็ดเสร็จเด็ดขาด แต่มันไม่ได้เป็นเช่นนั้น ความปลอดภัยของลิงก์ที่มีรหัสผ่านทำงานคล้ายกับบัตรเข้าชมคอนเสิร์ต: ใครที่มีบัตรก็สามารถเข้าไปได้ และถ้าใครมอบบัตรให้คนอื่น คนนั้นก็สามารถให้ผู้อื่นเข้าได้เช่นกัน
นั่นฟังดูเหมือนเป็นข้อบกพร่อง แต่มันไม่ใช่ เพียงแค่ต้องรู้ว่ากลไกนี้มีไว้เพื่ออะไร
สามสถานการณ์ที่มันมีประโยชน์จริงๆ:
--- Thai Markdown --- รายการราคาสำหรับลูกค้าพรีเมียม หรือเอกสารในเวอร์ชันเบต้า ก่อนที่จะถูกเผยแพร่สู่สาธารณะ หากไม่มีรหัสผ่าน ลิงก์ลักษณะนี้จะไปปรากฏบน Google หรือถูกส่งต่อจากมือสู่มือไม่ช้าก็เร็ว
เนื้อหาที่มีวันหมดอายุ ข้อเสนอนี้เฉพาะวันศุกร์เท่านั้น เอกสารจากการประชุมสำหรับผู้เข้าร่วมเท่านั้น รหัสผ่านจะเปลี่ยนลิงก์ให้เป็นการเข้าถึงที่ถูกควบคุม — เพื่อให้คุณรู้ว่ามีคนได้รับมันจากคุณ ไม่ใช่การพบโดยบังเอิญ
และอีกสิ่งหนึ่งที่คุณแชร์แบบสาธารณะทั้งหมด แต่คุณยังต้องการติดตามความเคลื่อนไหวอยู่ ลิงก์อาจจะแพร่กระจายไปได้ แต่ถึงอย่างไรก็ไม่มีใครสามารถเข้าถึงได้หากไม่มีรหัสผ่าน
และตอนนี้ นี่คือสิ่งที่คุณไม่ควรพลาดในคู่มือนี้
คุณพิมพ์รหัสผ่านลงในฟอร์ม ในขณะเดียวกันมันก็หายไป อย่างแท้จริง การที่คุณตั้งค่า "tajne123" จะไม่คงอยู่ในรูปแบบที่อ่านออกได้ ก่อนที่คุณจะทันได้ปล่อยปุ่มกดด้วยซ้ำ
อะไรที่ยังคงอยู่ในฐานข้อมูล? ไม่ใช่รหัสผ่าน แต่เป็นลายนิ้วมือหลังจากนั้น ในทางเทคนิคเรียกว่า: hash มันคือชุดของตัวอักษรที่จะตรงกับรหัสผ่านของคุณก็ต่อเมื่อมีคนพิมพ์สิ่งที่เหมือนกับคุณทุกประการเท่านั้น ตัวมันเองไม่ได้เปิดเผยข้อมูลใดๆ
ฉันจะพูดตรงๆ เพราะมันเป็นเรื่องสำคัญ: ฉัน ในฐานะผู้ดูแลบริการ ไม่สามารถอ่านรหัสผ่านของคุณได้ ไม่ใช่เพราะฉันสุภาพ แต่เป็นเพราะในทางกายภาพแล้วไม่มีอะไรให้อ่าน หากมีใครเจาะระบบฐานข้อมูลได้ พวกเขาจะได้ไปเพียงแค่กองลายนิ้วมือเหล่านี้เท่านั้น
อัลกอริทึมที่ใช้คำนวณสิ่งนี้ถูกออกแบบมาให้ช้าโดยตั้งใจ ฉันรู้ว่าคำว่า "ช้า" ฟังดูเหมือนเป็นการบ่น แต่นี่คือข้อดี จุดประสงค์คือเพื่อให้ใครก็ตามที่ขโมยฐานข้อมูลไป ต้องใช้เวลาอย่างมหาศาลจนน่าเหลือเชื่อในการสุ่มเดารหัสผ่านเพียงหนึ่งรหัส เรากำลังพูดถึงระดับปี ไม่ใช่ระดับวินาที
คลิกจากอีกด้านหนึ่ง
มีบางคนได้รับลิงก์ของคุณและคลิก แทนที่จะไปถึงจุดหมายในทันที พวกเขาจะเห็นหน้าจอ: "ลิงก์นี้ได้รับการป้องกันด้วยรหัสผ่าน" ช่องสำหรับกรอกข้อมูล และปุ่มกด
กำลังพิมพ์ เซิร์ฟเวอร์จะเปรียบเทียบสิ่งที่พิมพ์กับลายนิ้วมือที่บันทึกไว้ ตรงกันไหม? จะได้รับ session token ที่มีอายุใช้งานหนึ่งวัน ในอีก 24 ชั่วโมงข้างหน้า สามารถกลับมาที่ลิงก์ได้โดยไม่ต้องพิมพ์อะไรเลย ไม่ต้องจำ ไม่ต้องลำบาก
ไม่ถูกต้องใช่ไหม? ผิดพลาด การระบุรหัสผ่านผิด 5 ครั้งจาก IP address เดียวกัน จะทำให้การเข้าถึงถูกบล็อกเป็นเวลาห้านาที บอทที่พยายามสุ่มรหัสผ่านไปเรื่อยๆ จะต้องพบกับทางตัน
สิ่งที่ไม่มีอยู่ที่นี่อย่างสิ้นเชิง
เราไม่บันทึกรหัสผ่านเป็นข้อความธรรมดา ไม่ว่าที่ไหนก็ตาม แม้แต่ใน log ที่ฉันเข้าไปดูเวลาค้นหาข้อผิดพลาด
เราไม่ได้ส่งรหัสผ่านทางอีเมล ซึ่งหมายความว่าหากใครลืมรหัสผ่าน ฉันจะไม่สามารถส่งให้ได้เพราะฉันไม่ทราบรหัสผ่านนั้น คุณต้องเป็นคนส่งด้วยตัวเอง ผ่านช่องทางเดิมเหมือนครั้งที่ผ่านมา
และเราไม่ส่งต่อรหัสผ่านออกสู่ภายนอก ไม่มีการวิเคราะห์ ไม่มีการตลาด และไม่มีการทำ AB testing ใดๆ ที่เข้าถึงข้อมูลเหล่านี้ (นี่เป็นหลักการที่ใช้ใน cutty.dev ทั้งหมด ไม่ใช่แค่ที่นี่เท่านั้น)
สองนิสัยที่สร้างความแตกต่าง
อย่างแรก: อย่าคิดรหัสผ่านขึ้นมาเอง ชื่อบริษัทบวกกับปีที่ก่อตั้งคือของขวัญสำหรับทุกคนที่รู้จักคุณ ตัวสร้างรหัสผ่านในเบราว์เซอร์จะให้ผลลัพธ์ที่ดีกว่าภายในวินาทีเดียว
อย่างที่สอง ซึ่งสำคัญกว่า: อย่าส่งรหัสผ่านผ่านช่องทางเดียวกับที่ส่งลิงก์ ลิงก์ถูกส่งไปทางอีเมลใช่ไหม? ให้ส่งรหัสผ่านทาง SMS หรือในทางกลับกัน ความหมายก็คือ การเข้าถึงกล่องข้อความเพียงอย่างเดียวจะไม่ทำให้ใครได้ข้อมูลครบทั้งหมด
รายละเอียดเล็กๆ น้อยๆ ที่ไม่ค่อยมีใครรู้: คุณสามารถสร้างลิงก์หลายอันที่นำไปสู่ที่อยู่เดียวกัน แต่ใช้ข้อความต่างกันได้ หากคุณให้สิทธิ์การเข้าถึงแก่คนห้าคน โดยแต่ละคนมีลิงก์แยกกัน ถ้ามีคนหนึ่งต้องออกไป? คุณก็แค่บล็อกลิงก์ของเขา ส่วนคนที่เหลือจะไม่สังเกตเห็นเลยด้วยซ้ำ
คุณสามารถเปลี่ยนรหัสผ่านได้โดยไม่ต้องสร้างลิงก์ใหม่ ไปที่แผงควบคุม, "แก้ไข", รหัสผ่านใหม่ หมายเหตุ: เซสชันที่ใช้งานอยู่ทั้งหมดที่มีอายุ 24 ชั่วโมงจะสิ้นสุดลงทันที ทุกคนจะต้องกรอกรหัสผ่านใหม่อีกครั้ง
ขอบเขตที่ควรทราบล่วงหน้า
กลับมาที่เรื่องตั๋วคอนเสิร์ต รหัสผ่านช่วยป้องกันจากการค้นหาและจากแขกที่ไม่ได้รับเชิญ แต่ไม่ได้ป้องกันคนที่รู้รหัสผ่านแล้วตัดสินใจที่จะแบ่งปันมันให้กับโลกใบนี้
หากสถานการณ์ของคุณคือ "ต้องการให้คนนี้เห็นเพียงคนเดียวเท่านั้น และไม่ให้ใครอื่นเห็น" ลำพังแค่รหัสผ่านนั้นไม่เพียงพอ คุณจำเป็นต้องมีบัญชีผู้ใช้ การเข้าสู่ระบบ และการตรวจสอบสิทธิ์ นี่คืออีกระดับหนึ่งและเป็นอีกปัญหาหนึ่งที่แตกต่างออกไป
แต่ลองยกมือขึ้นดูสิ ว่าคุณเจอสถานการณ์แบบนี้บ่อยแค่ไหน? จากประสบการณ์ของฉัน มันนานๆ ทีจะเกิดขึ้น ส่วนใหญ่แล้วมันเป็นแค่เรื่อง "ฉันไม่อยากให้คนแปลกหน้าจากข้างนอกเข้ามาที่นี่" และคำพูดนี้ก็เพียงพอที่จะใช้จัดการได้สบายๆ
หากคุณต้องการเห็นว่ามันเป็นอย่างไรจากภายใน — ในขณะที่สร้างลิงก์ ให้ขยายส่วน "ตัวเลือกขั้นสูง" และทำเครื่องหมายที่ "เพิ่มรหัสผ่าน" ส่วนที่เหลือจะดำเนินการโดยอัตโนมัติ