หมายเลขประกันสังคมสหรัฐเป็นหมายเลขเก้าหลักที่คนทำงานในสหรัฐอเมริกาคุ้นเคยกันดี เพราะถูกขอตอนเริ่มงานครั้งแรก เปิดบัญชีธนาคาร และทำเรื่องภาษี แต่ความคุ้นเคยนี้เองทำให้หลายคนเข้าใจผิดว่ามันคือบัตรประชาชน ในบทความนี้คุณจะได้เห็นว่าหมายเลขนี้ถูกแบ่งเป็นสามช่วงอย่างไร ช่วงใดที่เป็นหมายเลขสงวนและไม่เคยออกให้ใครจริง และเพราะเหตุใดข้อมูลแบบนี้จึงไม่ควรถูกนำไปใช้เป็นเครื่องยืนยันตัวตน
หมายเลขประกันสังคมสหรัฐเขียนอย่างไร?
หมายเลขนี้มีทั้งหมดเก้าหลัก และการเขียนตามธรรมเนียมนิยมแบ่งเป็นสามช่วงคั่นด้วยเครื่องหมายขีดกลาง ช่วงแรกมีสามหลัก ช่วงที่สองมีสองหลัก และช่วงสุดท้ายมีสี่หลัก การแบ่งแบบนี้มีมาแต่ยุคที่แต่ละช่วงยังมีความหมายในตัวเอง
คนจำนวนมากเรียกสามหลักแรกว่าเป็นรหัสพื้นที่ เพราะในอดีตมันสัมพันธ์กับรัฐหรือเขตที่ออกหมายเลขให้ แต่ความสัมพันธ์นั้นสิ้นสุดไปแล้วตั้งแต่ปี ค.ศ. 2011 เมื่อหน่วยงานเปลี่ยนมาแจกหมายเลขแบบสุ่มทั่วประเทศ ตั้งแต่นั้นเป็นต้นมาหมายเลขที่ออกใหม่จึงไม่บอกสถานที่และไม่บอกเวลาเกิดของผู้ถือ
จุดที่ต้องแยกให้ออกคือหมายเลขนี้ไม่ใช่ทั้งเลขบัตรประชาชน เลขผู้เสียภาษี หรือรหัสประจำตัวพลเมือง มันถูกตั้งขึ้นเพื่อใช้กับระบบเงินทดแทนยามชราภาพโดยเฉพาะ และการที่หน่วยงานอื่นนำไปใช้อ้างอิงต่อเป็นเพียงธรรมเนียมปฏิบัติ ไม่ได้ทำให้มันกลายเป็นบัตรแสดงตัวตนตามกฎหมาย
ช่วงหมายเลขใดที่ไม่มีวันถูกออกให้ใคร?
ทางราชการกันหมายเลขบางช่วงไว้เป็นหมายเลขที่ไม่มีวันออกให้ใครจริง การรู้ขอบเขตนี้มีประโยชน์กับคนทำระบบ เพราะช่วยให้กรองข้อมูลที่พิมพ์ผิดหรือข้อมูลที่กุขึ้นอย่างชัดเจนออกได้ทันที
| ช่วงของหมายเลข | ค่าที่ถูกสงวนไว้ |
|---|---|
| สามหลักแรก | ศูนย์สามหลัก หกหกหก และช่วงเก้าร้อยขึ้นไป |
| สองหลักกลาง | ศูนย์ศูนย์ |
| สี่หลักสุดท้าย | ศูนย์สี่ตัว |
การที่หมายเลขหนึ่งตกอยู่ในค่าที่ถูกสงวนไม่ได้แปลว่ามันผิดรูปแบบ แต่แปลว่ามันไม่เคยถูกออกให้กับใครจริง ดังนั้นถ้ามีใครได้หมายเลขแบบนี้จากระบบใด คำตอบที่เป็นไปได้คือระบบนั้นสร้างข้อมูลขึ้นมาเองหรือผู้ใช้พิมพ์ตัวเลขมั่ว
มีอีกกรณีหนึ่งที่คนสับสนกันบ่อย คือหมายเลขที่ขึ้นต้นด้วยเก้าและถูกใช้เป็นเลขผู้เสียภาษีสำหรับนายจ้างหรือใช้ในเอกสารทางภาษีบางประเภท การใช้เช่นนั้นเป็นการนำหมายเลขไปใช้ผิดวัตถุประสงค์ตามที่ผู้ออกแบบระบบตั้งใจไว้
ทำไมสามหลักแรกจึงบอกที่อยู่หรือปีเกิดไม่ได้?
ก่อนปี ค.ศ. 2011 สามหลักแรกเคยสัมพันธ์กับพื้นที่ที่ออกหมายเลข และมีตารางอ้างอิงให้ค้นได้ว่าหมายเลขที่ขึ้นต้นแบบใดออกที่รัฐใด ธรรมเนียมนี้ทำให้คนรุ่นก่อนเข้าใจว่าดูหมายเลขแล้วรู้ที่อยู่
แต่ความเข้าใจนั้นผิดมาตั้งแต่ต้น เพราะแม้ในยุคที่มีตารางอ้างอิง หมายเลขก็ถูกออกตามที่ตั้งของสำนักงานที่รับเรื่อง ไม่ได้ออกตามที่อยู่จริงของผู้ขอ คนที่ย้ายไปอยู่คนละรัฐจึงถือหมายเลขของสำนักงานเดิมไปตลอดชีวิต อีกทั้งหมายเลขหนึ่งหมายเลขยังออกให้สมาชิกในครัวเรือนเดียวกันจากต่างพื้นที่ได้ด้วย
ยิ่งเมื่อมาใช้การแจกแบบสุ่มเต็มรูปแบบในปี ค.ศ. 2011 ความเชื่อมโยงกับพื้นที่ก็หมดไปโดยสิ้นเชิง และไม่มีปีเกิดหรือเดือนเกิดซ่อนอยู่ในหลักใดของหมายเลขเลย การพยายามเดาปีเกิดจากหมายเลขจึงไม่มีมูลความจริง
หมายเลขนี้ใช้ยืนยันตัวตนได้ไหม?
คำตอบคือไม่ได้ หมายเลขประกันสังคมสหรัฐไม่ใช่บัตรแสดงตัวตน ไม่มีรูปถ่าย ไม่มีลายมือชื่อ และไม่มีวันหมดอายุ จึงไม่สามารถใช้ยืนยันว่าใครคือใครได้ด้วยตัวเอง หน่วยงานที่ต้องการยืนยันตัวตนจริงต้องขอเอกสารที่มีแหล่งที่มาและตรวจกับต้นทาง
ปัญหาที่ตามมาคือหมายเลขนี้กลายเป็นกุญแจดอกใหญ่สำหรับการปลอมตัว เพราะเมื่อรู้หมายเลขเดียวก็มักขอเอกสารอื่นต่อได้ ความเสียหายจึงไม่จบที่ตัวเลข แต่จบที่ชื่อเสียงและเครดิตของผู้เป็นเจ้าของ
ด้วยเหตุนี้การที่ระบบใดขอหมายเลขนี้ในฟอร์มที่ไม่ได้เกี่ยวกับภาษีหรือการจ้างงาน จึงเป็นสัญญาณว่าองค์กรนั้นใช้มันเป็นรหัสระบุตัวตน ซึ่งไม่ใช่วัตถุประสงค์ที่ผู้ออกแบบหมายเลขตั้งใจไว้ และถ้าคุณต้องรองรับหมายเลขของประเทศอื่นด้วย ความยาวที่ไม่เท่ากันจะกลายเป็นปัญหาอีกชั้นหนึ่งตามที่อธิบายไว้ในความยาวเลขประจำตัวของแต่ละประเทศ
ทำไมห้ามใช้หมายเลขจริงเป็นข้อมูลทดสอบ?
การนำหมายเลขของคนจริงเข้าสู่ระบบทดสอบสร้างความเสียหายได้หลายทาง ทางแรกคือหมายเลขนั้นกลายเป็นข้อมูลที่ต้องคุ้มครองตามกฎหมายในทุกสภาพแวดล้อมที่มันเดินทางไป ทางที่สองคือระบบทดสอบมักมีคนเข้าถึงได้กว้างกว่าและถูกตรวจจับน้อยกว่า ทางที่สามคือเมื่อข้อมูลสมมติถูกกุขึ้นเองโดยไม่ได้ตั้งใจ มันอาจบังเอิญตรงกับหมายเลขของคนจริงได้
ความเสียหายอีกด้านหนึ่งคือคุณภาพของงานทดสอบเอง หมายเลขที่กุขึ้นแบบเดา ๆ จะทำให้การตรวจรูปแบบผ่านหรือไม่ผ่านแบบสุ่มไปมา ข้อบกพร่องที่เกิดจากข้อมูลจึงกลายเป็นเรื่องที่ตามหาสาเหตุได้ยากมาก
สิ่งที่ทำได้จริงคือใช้ชุดข้อมูลที่ออกแบบให้ผ่านการตรวจรูปแบบ แต่ไม่เคยถูกออกให้ใคร และไม่เคยย้อนกลับไปหาบุคคลใดได้เลย
สำหรับนักพัฒนา: ตรวจแค่รูปแบบกับช่วงสงวน
ข้อแรกคือการตรวจที่ทำได้จริงมีสองชั้นเท่านั้น ชั้นแรกตรวจว่ามีเก้าหลักจริงและมีเครื่องหมายขีดกลางในตำแหน่งที่ถูกต้อง ชั้นที่สองตรวจว่าค่าที่ได้ไม่อยู่ในรายการหมายเลขที่ถูกสงวน การตรวจสองชั้นนี้เพียงพอต่อการกรองข้อมูลที่พิมพ์ผิด
ข้อที่สองคืออย่าเพิ่มการตรวจที่อ้างว่าเดาปีเกิดหรือรัฐจากหมายเลขได้ เพราะการตรวจแบบนั้นจะปฏิเสธหมายเลขที่ถูกต้องจำนวนมาก และสร้างความสับสนให้ผู้ใช้ที่กรอกข้อมูลของตนเองจริง
ข้อที่สามคือกำหนดค่าขอบเขตไว้ในชุดทดสอบ ตัวอย่างที่ควรมีคือหมายเลขที่ถูกต้องตามรูปแบบ หมายเลขที่มีค่าที่ถูกสงวนอยู่ในแต่ละช่วง หมายเลขที่มีจำนวนหลักขาดหรือเกิน และช่องที่ผู้ใช้เว้นว่างไว
ข้อที่สี่คือเมื่อต้องแสดงตัวอย่างในเอกสารประกอบ ให้ใช้หมายเลขที่อยู่ในค่าที่ถูกสงวนเสมอ เพราะจะไม่มีวันชนกับหมายเลขของคนจริง และควรเขียนกำกับไว้ข้าง ๆ ว่าตัวอย่างนี้ใช้เพื่อการสาธิตเท่านั้น
ข้อที่ห้าคือเก็บหมายเลขนี้ให้สั้นที่สุดเท่าที่จำเป็น ถ้าฟังก์ชันใดไม่ต้องใช้ค่าจริงก็ไม่ควรรับค่าเข้ามาตั้งแต่แรก เพราะข้อมูลที่ไม่มีอยู่ในระบบคือข้อมูลที่รั่วออกไปไม่ได้
ก้าวต่อไป
ถ้าคุณกำลังเตรียมชุดทดสอบสำหรับระบบที่ต้องใช้หมายเลขนี้ ลองเริ่มจากเขียนรายการค่าที่ถูกสงวนไว้เป็นชุดตัวอย่างแรก แล้วเติมกรณีที่ผิดรูปแบบเข้าไปอีกสองสามกรณี เท่านี้ก็ครอบคลุมข้อบกพร่องที่พบบ่อยที่สุดแล้ว
ในเครื่องมือสร้างข้อมูลตัวตนของเว็บไซต์นี้ คุณเลือกประเทศแล้วได้เลขประจำตัวที่ผ่านการตรวจรูปแบบพร้อมกับชื่อและวันเกิดที่สอดคล้องกันในคราวเดียว ถ้าต้องการเทียบกับข้อมูลของประเทศอื่น ลองดูหน้าประเทศสหรัฐอเมริกา หรืออ่านวิธีคิดเรื่องความยาวของเลขประจำตัวในแต่ละประเทศได้ที่ความยาวเลขประจำตัวของแต่ละประเทศ
ข้อมูลทุกชุดที่กล่าวถึงในบทความนี้เป็นข้อมูลที่สังเคราะห์ขึ้นด้วยอัลกอริทึม ไม่ตรงกับบุคคล ที่อยู่ หรือบัญชีจริงใด ใช้ได้เฉพาะกับงานทดสอบซอฟต์แวร์เท่านั้น ห้ามใช้เพื่อปลอมตัวเป็นบุคคลจริงหรือผ่านการยืนยันตัวตนใด ๆ