กระบวนการพื้นฐานที่สุดอย่างหนึ่งของกระบวนการความปลอดภัยข้อมูลไม่ว่าจะเป็นโลกดิจิตอลหรือโลกอนาล็อกที่เรามีชีวิตอยู่ก็ตาม คือ การระบุตัวตนของสิ่งต่างๆ ที่เราพบเจอทุกวัน เราพบกับสิ่งของ, ผู้คน, และสถานที่ต่างๆ มากมาย และเราต้องรู้ว่าสิ่งที่เราใช้งาน หรือคนที่เราพูดคุยด้วยนั้นเป็นคนที่เราต้องการคุยด้วยจริงหรือไม่
กระบวนการระบุตัวตน (identification) ในโลกความเป็นจริง เราระบุตัวตนกันด้วยข้อมูลหลายอย่าง เพื่อนของเราอาจจะถูกระบุตัวตนด้วย ชื่อจริง ชื่อเล่น (หรือชื่อพ่อชื่อแม่?) เราระบุตัวคนที่เรารู้จักด้วยใบหน้า หากหน้าเหมือนกันเราก็อนุมานได้ทันทีว่าคนที่เราพบคือคนๆ เดียวกับที่เราต้องการพูดคุยหรือไม่ ซึ่งหลายครั้งก็ผิดพลาดเพราะเราทักคนผิด หรือบางครั้งก็มีปัจจัยอื่นเช่นเราไปทักพี่น้องฝาแฝดของเพื่อนของเราได้ง่ายๆ หากไม่ใช่คนรู้จักสนิทสนมกัน แต่ได้รับการแนะนำมา เราอาจจะ "รู้จัก" คนๆ หนึ่งผ่านทางชื่อของเขา แต่เมื่อเราไปหาคนตามที่อยู่ที่เราได้รับ อาจจะเป็นสำนักงาน, คอนโด, บางครั้งการระบุตัวตนด้วยชื่ออาจจะผิดพลาดเพราะชื่อซ้ำซ้อนกันมากมาย เราไม่อาจจะหาตัวตนของเพื่อนของเราจากชื่อเล่นได้ หากชื่อเล่นของเพื่อนของเราอยู่บนขวดหรือกระป๋องโค้กในทุกวันนี้ เพราะคนที่ใช้ชื่อเดียวกันมีจำนวนมากมายมหาศาล
ในโลกคอมพิวเตอร์ การระบุตัวตนนับเป็นด่านแรกของการกระทำกิจกรรมแทบทุกอย่าง เมื่อเครื่องของเราเริ่มเชื่อมต่อกับเครื่อข่ายต้องมีกระบวนการอ้างถึงเครื่องของคุณเสมอ เมื่อคุณเข้าเว็บสักเว็บ ไม่ว่าคุณจะล็อกอินหรือไม่ เบราว์เซอร์ของคุณจะได้รับตัวเลขประจำการเชื่อมต่อ (session ID) ผ่านทางข้อมูล cookie เมื่อได้รับมาครั้งแรกแล้ว ทุกครั้งที่คุณเข้าเว็บเดิม เบราว์เซอร์ของคุณจะส่งหมายเลขเดิมกลับไปยังเซิร์ฟเวอร์ทุกครั้งเพื่อระบุว่าคุณคือคนเดิมที่เคยเข้าเว็บนี้มา กระบวนการนี้ต้องอาศัยความร่วมมือของเบราว์เซอร์ที่จะส่งข้อมูลให้เสมอ เบราว์เซอร์หลายรุ่นมีฟีเจอร์ไม่ยอมรับ cookie ทำให้ไม่สามารถติดตามตัวได้ ขณะที่ฟีเจอร์มาตรฐานของเบราว์เซอร์รุ่นใหม่ๆ มักจะมีโหมดเป็นส่วนตัว เช่น Incognito
แม้ว่ากระบวนการระบุตัวตนจะไม่เปลี่ยนไปนักในช่วงหลายสิบปีที่ผ่านมา เรายังคงใช้ข้อมูลพื้นฐานทั่วไป เช่น ชื่อนามสกุล แต่ปัญหาตัวตนซ้ำกันทำให้ในช่วงหลังเริ่มมีการอ้างอิงตัวตนกันด้วยกระบวนการอื่นๆ เช่น สำหรับคนทั่วไป เราจะเห็นการอ้างอิงตัวบุคคลด้วยเลขบัตรประชาชนแทนที่เพราะบัตรประชาชนสามารถจัดการการให้เลขแต่ละคนได้จนกระทั่งรับประกันได้ว่าทุกคนจะมีหมายเลขไม่ตรงกันทั้งประเทศ
ในกรณีที่มีหน่วยงานดูแลการให้หมายเลขประจำตัว เช่น หมายเลขบัตรประชาชน หมายเลขโทรศัพท์ หรือทะเบียนรถยนต์ การจัดการไม่ให้หมายเลขซ้ำซ้อนสามารถทำได้ไม่ยากนัก ด้วยการตรวจสอบว่าหมายเลขใดมีการใช้งานไปแล้วบ้าง แต่ในกรณีที่ไม่มีหน่วยงานกลาง การจัดการหมายเลขประจำตัวกลายเป็นเรื่องซับซ้อนขึ้นมาทันที หากเราไม่สามารถคาดเดาได้ว่าจะมีหมายเลขประจำตัวใดถูกใช้งานไปแล้ว
UUID
UUID หรือ Universally Unique Identifier ถูกออกแบบมาเพื่อใช้ระบุตัวตนในเครือข่ายอินเทอร์เน็ตในหลายรูปแบบ เมื่อเราสร้างข้อมูลขึ้นมาชุดหนึ่งแล้วต้องการให้มีตัวเลขประจำตัวที่ไม่ซ้ำกับตัวเลขข้อมูลอื่นๆ ในโลก โดยทั่วไปมักใช้ UUID เพื่อสร้างตัวเลขประจำตัวให้กับข้อมูล, อุปกรณ์, หรือสิ่งใดๆ ก็ตามที่ต้องการการอ้างอิงถึง โดยไม่ต้องการศูนย์กลางเพื่อแจกหมายเลขให้
หมายเลข UUID นั้นจริงๆ แล้วเป็นหมายเลขขนาด 128 บิต ตัวเลขขนาด 128 บิตนี้ใหญ่พอที่ทุกคนจะสุ่มเลขแล้วมีความน่าจะเป็นที่จะซ้ำซ้อนกันได้ต่ำ อย่างไรก็ดีมีการแบ่งฟิลด์ไว้ภายใน โดยทั่วไปแล้วมักแบ่งออกเป็น 4 ฟิลด์ดังตัวอย่าง
550e8400-e29b-41d4-a716-446655440000
หรืออยู่ในฟอร์แมต xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
โดยตัวเลข N คือ variant หรือตัวเลขระบุการอิมพลีเมนต์ที่ต่างกัน ตัวอย่างหนึ่งของความแตกต่าง เช่น GUID ที่ใช้งานในซอฟต์แวร์ของไมโครซอฟท์ จะมีการจัดบิตแตกต่างไปจากระบบ UUID ระบบอื่น แต่กระนั้น GUID ก็ยังเป็นหมายเลข UUID ที่สามารถนำมาใช้งานได้ตามปกติ
ส่วนตัวเลข M คือ เวอร์ชั่นของ UUID มีหลักๆ 5 เวอร์ชั่นได้แก่
- version 1: ใช้หมายเลข MAC ของเครื่องมาเติมลงใน 6 หลักแรกของหมายเลข UUID และที่เหลือให้เติมด้วยตัวเลขเวลาของเครื่อง ปัญหาของ UUID เวอร์ชั่นนี้คือการเปิดเผยหมายเลขเครื่อง ซึ่งหลายครั้งกลายเป็นปัญหาความปลอดภัย ข้อดีสำคัญของการสร้างหมายเลขรูปแบบนี้คือในเครื่องเดียวกันจะไม่มีทางซ้ำกันได้แน่นอน (เพราะสร้างคนละเวลากัน)
- version 2: เพิ่มฟิลด์ที่สองเป็นหมายเลขโปรเซสขณะที่สร้างหมายเลขอยู่ การออกแบบต้องการให้หมายเลขที่สร้างขึ้นไม่ซ้ำกันในทุกครั้งที่รันโปรเซส แต่ในโลกความเป็นจริงหมายเลขโปรเซสนั้นซ้ำกันได้ง่ายมาก ทำให้รูปแบบนี้ไม่ได้รับความนิยมอีกต่อไป
- version 3: เป็นค่า MD5 ของค่าประจำเครื่องนั้นๆ ค่าที่เป็นไปได้ ได้แก่ URL, โดเมนเนมแบบเต็ม, ค่า distinguished name ของ LDAP, หรือชื่อเฉพาะของระบบในระบบการตั้งชื่อใดๆ ค่า MD5 นั้นปกติจะให้ค่ายาว 128 บิตพอดี มาตรฐาน UUID ระบุให้ใช้ค่า M และ N แทนลงไปใน MD5 เลย การใช้ MD5 สามารถใช้เพื่อปกปิดชื่อที่แท้จริงของระบบได้ในกรณีที่ไม่ต้องการเปิดเผยชื่อที่แท้จริง แต่การใช้งานโดยมากถูกแทนที่โดย version 5 แล้ว
- version 4: ค่าสุ่มอย่างสมบูรณ์ ทุกบิตยกเว้น M และ N จะถูกสุ่มมา การสร้างหมายเลขแต่ละครั้งไม่มีการรับประกันว่าจะซ้ำกับตัวสร้างอื่นๆ หรือไม่ แต่ความน่าจะเป็นที่จะซ้ำก็ต่ำมาก
- version 5: เหมือน version 3 แต่เนื่องจาก MD5 อ่อนแอลงมากในช่วงหลัง ทำให้แฮกเกอร์อาจจะเปิดเผยชื่อที่แท้จริงได้ จึงให้ใช้ SHA-1 แทนที่ เนื่องจาก SHA-1 ให้ค่าแฮช 160 บิต จึงได้ตัดออกเหลือ 128 บิต
การใช้งานจริงแต่ละภาษาจะรองรับไม่เท่ากัน เช่น ในภาษาไพธอน นั้นรองรับเฉพาะ 1, 3, 4, และ 5 ผ่านทางโมดูล uuid
MAC Address
ในยุคที่คอมพิวเตอร์แต่ละเครื่องล้วนทำงานแยกจากกันนั้น ไม่มีความจำเป็นใดๆ ที่คอมพิวเตอร์จะต้องระบุตัวตนระหว่างกันเอง แต่เมื่อถึงยุคเริ่มต้นของเครือข่ายคอมพิวเตอร์ก็เริ่มมีความจำเป็นที่คอมพิวเตอร์ที่เชื่อมต่อถึงกันจะต้องอ้างถึงกันได้ว่าเครื่องใดต้องการสื่อสารกับเครื่องใด และระบบหมายเลขที่ได้รับความนิยมสูงสุดระบบหนึ่งคือหมายเลข MAC ออกแบบมาพร้อมกับระบบอีเธอร์เน็ตโดย Xerox ที่ได้รับความนิยมสูงเช่นกัน
ระบบ MAC ประกอบไปด้วยหมายเลข 6 ชุด แต่ละชุดเป็นเลข 8 บิต มักเขียนด้วยเลขฐาน 16 สองตัว เช่น A0-E5-FA-00-2B-C7
ตัวเลข MAC จะแบ่งออกเป็นสองชุดหลักๆ ได้แก่ 24 บิตแรกจะเป็นหมายเลขผู้ผลิต เรียกว่า OUI (organization unique identifier) ที่ต้องลงทะเบียนไว้กับหน่วยงานลงทะเบียนของ IEEE ชื่อว่า IEEE Registration Authority โดยทาง IEEE จะ เปิดเผยว่ามีบริษัทที่จดทะเบียนไว้เป็นบริษัทใดบ้าง
เมื่อบริษัทได้รับ OUI แล้วจะสามารถจัดสรรหมายเลขอีก 24 บิตที่เหลือได้เอง โดยมักจะรันหมายเลขไปเรื่อยๆ ตามการผลิต ทำให้หลายครั้งเมื่อเราซื้อคอมพิวเตอร์มาพร้อมๆ กัน จะได้เครื่องที่มีหมายเลข MAC นี้ใกล้เคียงกันทาง IEEE มีนโยบายว่าผู้ผลิตที่จะขอหมายเลข OUI ใหม่ได้ จะต้องใช้หมายเลขเดิมให้ถึง 95% เสียก่อน
ทุกวันนี้หมายเลข MAC ถูกใช้งานในวงกว้างกว่าอีเธอร์เน็ตมาก การเชื่อมต่อคอมพิวเตอร์ส่วนมากมักมีหมายเลข MAC กำกับเสมอ เช่น IEEE1394 (Firewire), Bluetooth, และ Wi-Fi และในหัวข้อที่ผ่านมา UUID เองก็มักใช้ MAC เป็นส่วนประกอบในการสร้างหมายเลขอ้างอิงด้วยเช่นกัน
หมายเลขประจำเครื่องในเครือข่ายไม่จำเป็นต้องเป็นหมายเลข MAC เสมอไป ในระบบเครือข่ายเฉพาะเช่น GSM ก็มีระบบตัวเลขประจำเครื่องของตัวเองเป็นหมายเลข IMEI หรือโครงข่ายปิดอื่นๆ อาจจะมีระบบหมายเลขของตัวเองได้ อย่างไรก็ดีหมายเลข MAC ได้รับความนิยมอย่างสูงจนกระทั่ง IEEE นำไปเรียกชื่อเป็น Extended Unique Identifier (EUI) และใช้ EUI-64 ซึ่งก็คือหมายเลข MAC เข้ามาเป็นส่วนหนึ่งของ IPv6
ไอพี: อ้างอิงข้ามโลก
กระบวนการอ้างอิงคอมพิวเตอร์ เมื่อมีการเชื่อมต่อข้ามเครือข่ายที่ในระดับทั่วโลก ระบบเครือข่ายระดับฮาร์ดแวร์อาจจะต่างกันไป การสร้างหมายเลขไอพีทำให้เราสามารถอ้างอิงถึงคอมพิวเตอร์เครื่องอื่นๆ ได้ทั่วโลกโดยไม่ต้องรับรู้ว่าฮาร์ดแวร์ด้านล่างเป็นฮาร์ดแวร์อะไร กระบวนการให้หมายเลขประจำเครื่องแบบไม่มีโครงสร้างอย่าง MAC นั้นลำบากเกินไปที่จะสร้างตารางค้นหาเส้นทาง (routing table) หมายเลขไอพีกำหนดให้กับเครื่องทุกเครื่องในโลกที่เชื่อมต่อถึงกันผ่านเครือข่ายอินเทอร์เน็ต
หมายเลขไอพีที่กำหนดให้คอมพิวเตอร์แต่ละเครื่องมีโครงสร้างอยู่ภายในแสดงข้อมูลทั้งหมายเลขประจำเครื่องและหมายเลขประจำเครือข่าย เครือข่ายที่อยู่ใกล้กันและสามารถติดต่อกับเครื่องอื่นๆ ผ่านเส้นทางเดียวกัน สามารถูกรวบเข้าเป็นเส้นทางเดียวกันได้ (route aggegation) ทำให้ขนาดของตารางค้นหาเส้นทางมีขนาดเล็กลงมาก
ในโลกสมัยเดิม การยืนยันตัวตนด้วยหมายเลขไอพีนั้นเป็นเรื่องปกติ เว็บในยุคก่อนไม่ได้ใช้ cookie เพื่อระบุผู้ใช้เสมอไป ระบบเก่าๆ หลายครั้งอาศัยหมายเลขไอพีที่เชื่อมต่อเข้ามาเพื่อยืนยันตัวตนเพราะหมายเลขไอพีในยุคหนึ่งแล้วสามารถใช้ระบุตัวตนได้เป็นอย่างดี บริการในยุคเก่าเช่น rlogin นั้นเปิดให้ผู้ใช้สามารถล็อกอิน และส่งไฟล์ไปมาได้ เพียงแค่ปลายทางมีหมายเลขไอพีตรงกับหมายเลขไอพีที่ผู้ใช้ตั้งไว้ให้ "เชื่อ" ว่าเป็นเข้าของบัญชีเอง บริการ rlogin ถูกเจาะในภายหลังจากการปลอมไอพีด้วยวิธีการต่างๆ ส่งผลให้สุดท้าย rlogin ไม่ได้รับความนิยมไปในที่สุด และถูกแทนที่ด้วยบริการ Secure Shell (ssh)
MICR: พบกันครึ่งทางระหว่างคนและคอมพิวเตอร์
หนึ่งในกระบวนการระบุตัวตนที่ได้รับความนิยมสูง คือ ตัวเลขรูปร่างแปลกๆ ที่เราเห็นอยู่ตามเอกสารทางการเงินหลายฉบับ ธนาคารในต่างประเทศต้องจัดการเอกสารจำนวนมาก จัดเรียง จำแนก และส่งเอกสารไปยังสาขาต่างๆ อยู่ทุกวัน เช่น การขึ้นเงินเช็ค ที่ธนาคารสาขาที่ได้รับเช็คจะต้องส่งเช็คกลับไปยังสาขาต้นทางของบัญชีเพื่อตัดยอดเงินในบัญชี กระบวนการเหล่านี้กินแรงงานอย่างมาก พนักงานต้องจัดเรียงเช็คจำนวนมหาศาลเพื่อส่งต่อ ความผิดพลาดเกิดขึ้นได้ทุกขั้นตอน จึงมีการใช้ตัวเลขที่คอมพิวเตอร์อ่านออกเข้ามาช่วย เรียกว่า magnetic ink character recognition (MICR)
นับแต่ช่วงหลังสงครามโลกครั้งที่สอง สถาบันวิจัยสแตนฟอร์ด (ถ้าไม่มีมหาวิทยาลัยนี้ โลกคอมพิวเตอร์คงถอยไปอีกยี่สิบปี) ร่วมมือกับบริษัท General Electric พัฒนาฟอนต์ที่คอมพิวเตอร์สามารถอ่านได้โดยง่าย หลังจากปรับปรุงมาหลายรุ่นก็ได้ฟอนต์ที่ชื่อว่า E13B โดยชื่อฟอนต์มาจากรุ่นพัฒนาที่ 5 (ตัว E เป็นตัวที่ 5 ในภาษาอังกฤษ) ขนาดฟอนต์ 0.013 นิ้ว และปรับปรุงครั้งที่สองกลายเป็นรุ่น B หลังจากนั้นสมาคมธนาคารของสหรัฐฯ ก็เลือกใช้ฟอนต์นี้สำหรับการพิมพ์ตัวเลขที่คอมพิวเตอร์อ่านออก ในเช็คและเอกสารอื่นๆ
ช่วงเวลาเยื้องๆ กัน ฟอนต์ CMC-7 ถูกพัฒนาในฝรั่งเศส และได้รับความนิยมในฝั่งยุโรปเช่นกัน
MICR ทำให้เอกสาร ใช้ระบุหมายเลขรหัสเพื่อลดแรงงานคนได้มาก เช็ค ฉบับหนึ่งอาจจะระบุหมายเลขธนาคาร, สาขา, เลขบัญชี ฯลฯ เอาไว้ ทำให้ระบบคอมพิวเตอร์สามารถจัดเรียงเอกสารเหล่านี้และส่งกลับไปยังสาขาต้นทางได้โดยมีความผิดพลาดน้อยมาก กระบวนการหักบัญชีสามารถทำได้รวดเร็วและมีต้นทุนต่ำลง
แต่เช่นเดียวกับเทคโนโลยีการระบุตัวตนอื่นๆ MICR ไม่มีกระบวนการตรวจสอบความถูกต้องใดๆ ในยุคหนึ่ง นักปลอมเช็คอย่าง Frank Abagnale (เจ้าของเรื่อง Catch me if you can) ใช้วิธีการง่ายๆ คือการปลอมเลข MICR ให้ไม่ตรงกับสาขาในเช็ค เช็คจะถูกส่งไปยังสาขาที่ระบุในเลขโดยไม่สนใจข้อความในเช็ค พนักงานจะเข้าใจว่าคอมพิวเตอร์ทำงานผิดพลาดหรือมีการพิมพ์เลข MICR ผิด ก่อนจะส่งเช็คกลับไปยังสาขาต้นทาง กระบวนการนี้ทำให้การตรวจสอบว่าเช็คเป็นเช็คปลอมเพราะไม่มีเงินในบัญชี หรือไม่มีบัญชีอยู่จริง ใช้เวลานานกว่าปกติ และทำให้ Abagnale สามารถหลบหนีการจับกุมไปได้
Barcode: คนมองเห็นแต่อ่านไม่ออก
กระบวนการ "ระบุตัวตนด้วยคอมพิวเตอร์" ที่เราใช้กันอยู่ทุกวันอย่างเคยชิน คงเป็นกระบวนการแสกนบาร์โค้ด ทุกวันนี้สินค้าแทบทุกชนิดในร้านค้าล้วนมีบาร์โค้ดติดอยู่เพื่อความรวดเร็วในการคิดเงิน ลดความผิดพลาดในการจัดการ บาร์โค้ดที่ใช้งานหนักได้แก่มาตรฐาน UPC หรือ Universal Product Code แม้ว่าบาร์โค้ดจะดูเป็นข้อมูลสำหรับคอมพิวเตอร์เท่านั้น แต่ที่จริงแล้วมันคือข้อมูลที่แทนตัวเลขด้วยแท่งขาวกับดำเป็นรูปแบบที่ชัดเจน
ในกรณีของมาตรฐาน UPC ซึ่งเป็นมาตรฐานสำหรับการระบุสินค้าทั่วโลก มาตรฐานการจัดการจะรวมตั้งแต่การจัดการหมายเลข 12 หลัก หลักแรกจะแบ่งประเภทของสินค้า เช่น อาจจะเป็นสินค้าทั่วไป, คูปองสำหรับแจกลูกค้าเฉพาะกิจ, หรืออาจจะเป็นหมายเลขภายในที่ไม่ต้องการใช้งานร่วมกับผู้อื่น ระบบตัวเลขนี้ผู้ผลิตจะต้องขอหมายเลขประจำผู้ผลิตห้าหลักไว้ล่วงหน้า ส่วนผู้ผลิตสามารถแจกหมายเลขสินค้าได้เองแบบเดียวกับหมายเลข MAC ที่มีหมายเลขผู้ผลิต
เช่นเดียวกับระบบระบุตัวตนอื่นๆ รหัส UPC ไมมีกระบวนการยืนยันความถูกต้องใดๆ มันใช้เพียงให้คอมพิวเตอร์สามารถระบุหมายเลขประจำสินค้าได้อย่างแม่นยำ มีคดีอาชญากรรมที่ผู้ใช้เพียงแต่สลับเปลี่ยนฉลาก ทำให้คอมพิวเตอร์ระบุราคาสินค้าผิดพลาด
แม้กระบวนการแปลงตัวเลขเป็นบาร์โค้ดจะดูซับซ้อน แต่ในความเป็นจริงแล้วหากฝึกฝนสักหน่อยก็สามารถเขียนด้วยมือได้ แฮกเกอร์ในยุคแรกบางคนอาศัยความสามารถเช่นนี้ในการปลอมแปลงบาร์โค้ดได้ด้วยมือ ในยุคแรกของการใช้งานบาร์โค้ดด้วยความแปลกใหม่ทำให้หลายหน่วยงานใช้งานบาร์โค้ดเพื่อการรักษาความปลอดภัย แต่ส่งผลกระทบคือบัตรที่ใช้ควบคุมการเข้าออกอาคารกลายเป็นบัตรที่ทำสำเนาได้โดยง่ายเพียงแค่ใช้เครื่องถ่ายเอกสารเท่านั้น รวมไปถึงบางครั้งอาจจะถูกปลอมแปลง "ด้วยมือ" เพียงการใส่ปากกาวาดแถบดำและขาวสลับกันอย่างถูกต้องเท่านั้น
นอกจากบาร์โค้ดแบบ UPC ที่ได้รับความนิยมสูงแล้ว ยังมีบาร์โค้ดแบบอื่นๆ อีกมากที่ไม่ได้เป็นไปตามมาตรฐาน UPC เช่น Code 39 นั้นเป็นเพียงฟอนต์ที่สามารถพิมพ์ได้ตรงๆ ก็จะได้บาร์โค้ดออกมา
แนวคิดของบาร์โค้ดยังถูกพัฒนาออกไปอีกมาก ในช่วงหลังมีการพัฒนาออกมาเป็น QR Code ที่รองรับข้อมูลที่ซับซ้อนกว่า สามารถใส่ตัวอักษรทุกตัวในมาตรฐาน Unicode ลงไปได้ ที่ผ่านมามีการเสนอมาตรฐานใหม่ๆ ขึ้นมาแทน QR Code แต่ก็ยังไม่ได้รับความนิยมนัก โดยเฉพาะมาตรฐาน QR Code นั้นเป็นมาตรฐานเปิดที่ใช้งานได้ฟรี
RFID: มองไม่เห็น อ่านไม่ออก แต่รู้ว่าใช่
กระบวนการอ่านบาร์โค้ดมีข้อดีอย่างมากคือใช้การพิมพ์ธรรมดาๆ แต่สามารถทำให้คอมพิวเตอร์อ่านข้อมูลได้อย่างแม่นยำ อย่างไรก็ตาม การพิมพ์ไม่ได้เหมาะกับคอมพิวเตอร์ไปทุกกรณี ข้อจำกัดที่สำคัญของบาร์โค้ด คือ เครื่องอ่านและตัวบาร์โค้ดจะต้องจ่อตรงกันพอดี ไม่สามารถมีอะไรกั้นกลางได้ หลายครั้งมุมของเครื่องอ่านต้องพอดีกับมุมของตัวบาร์โค้ด
ข้อจำกัดบาร์โค้ดที่ต้องมองเห็นทำให้บาร์โค้ดต้องอยู่ภายนอก เช่นข้างกล่องบรรจุภัณฑ์ทั้งหลายทำให้มีปัญหา เช่น บาร์โค้ดเปื้อนจนอ่านไม่ได้ ถูกขนย้ายจนยับและอ่านไม่ได้ในที่สุด หรือบางครั้งหากต้องการกำหนดหมายเลขประจำตัวกับสิ่งมีชีวิต เช่น สัตว์ในฟาร์ม การวางบาร์โค้ดโดยต้องระวังความเสียหายกลายเป็นเรื่องทำได้ยาก ทำให้มีการเสนอใช้งาน RFID (Radio Frequency Identification)
แม้เครื่องอ่าน RFID จะดูเหมือนใช้เทคโนโลยีขั้นสูงจนกระทั่งต้องใช้เครื่องอ่านเฉพาะที่หาไม่ได้ทั่วไป แต่ในความเป็นจริงแล้ว RFID ก็เหมือนเทคโนโลยีระบุตัวคนอื่นๆ ที่สร้างขึ้นมาเพื่อให้คอมพิวเตอร์สามารถระบุตัวตนได้อย่างแม่นยำ โดยไม่มีกระบวนการยืนยันว่าหมายเลขหรือข้อความที่ใช้ระบุตัวตนนั้นมีการปลอมแปลงมาหรือไม่แต่อย่างใด
เทคโนโลยี RFID มีมาตรฐานจำนวนมาก และทำงานหลากหลายกันไป ในบทความนี้จะยกตัวอย่างมาตรฐาน RFID เพียงตัวเดียวคือ EM4100 ที่พัฒนาขึ้นโดยบริษัท EM Microelectronic และได้รับการยอมรับเข้าเป็นมาตรฐาน ISO 11784 ภายหลัง
บัตร EM4100 พบได้ตามบัตรเข้าออกลานจอดรถ บัตรเข้าออกอาคาร และบัตรพนักงานโดยทั่วไป โดยบัตร EM4100 มีหลักการคือการที่เครื่องอ่านส่งคลื่นความถี่ 125khz ออกมาตลอดเวลา เมื่อบัตรเข้ามาในระยะเครื่องอ่าน ตัวบัตรจะดึงพลังงานจากคลื่นวิทยุที่เครื่องอ่านปล่อยออกมา เมื่อชาร์จจนพอแล้ว บัตรจะเริ่มทำงานโดยการ "ดึง" พลังงานที่ปล่อยออกมาจากเครื่องอ่านเป็นห้วงๆ
เครื่องอ่านมีวงจรตรวจสอบได้ว่ามีการดึงพลังงานคลื่นวิทยุที่ปล่อยออกไปหรือไม่ หากมีการดึงพลังงานออกไปเป็นรูปแบบการเข้ารหัสแบบ Manchester ก็จะถอดรหัสออกมาเป็นตัวเลขประจำตัวบัตรได้
ทุกวันนี้บัตร EM4100 มีการใช้งานแพร่หลาย บัตรใบหนึ่งหากซื้อยกล็อตมีราคาเพียง 7-10 บาทเท่านัั้น (บัตรใบเดียวกับที่เวลาทำหายแล้วโดนปรับกันเป็นร้อยนั่นล่ะครับ) เครื่องทำสำเนามีราคาเพียงหลักร้อยบาท และหลักการทำงานของมันก็ง่ายพอที่จะใช้เพียง ชิป AVR Tiny เพียงตัวเดียวคู่กับขดลวดเหนี่ยวนำเพียงชุดเดียวเพื่อจำลองหมายเลขบัตรใดๆ ก็ได้ที่เราต้องการ
ทุกวันนี้บัตร EM4100 เริ่มถูกใช้งานเพื่อการยืนยันตัวตน (authentication) มากขึ้นเรื่อยๆ แม้ตัวบัตรจะไม่สามารถปลอมแปลงได้ง่ายเหมือนกับบาร์โค้ดหรือ QR Code ก็ตามที แต่ส่วนมากก็ไม่มีกระบวนการป้องการทำสำเนาใดๆ เช่นเดียวกับเทคโนโลยีการระบุตัวตนอื่นๆและหากมีความรู้เพียงพอก็สามารถปลอมแปลงบัตรเหล่านี้ได้ด้วยอุปกรณ์ราคาถูก
Biometric
กระบวนระบุตัวตนที่มีการพูดถึงกันมากในช่วงสิบปีที่ผ่านมา คือ การระบุตัวตนด้วยคุณลักษณะทางชีวภาพ ลักษณะที่เราเกิดมาพร้อมกับมัน คนเราเองมีการพูดถึงกระบวนการระบุตัวตนด้วยกระบวนการต่างๆ กระบวนการที่คนเราใช้จำคนอื่นๆ ในรูปแบบที่ง่ายที่สุด คือ การจดจำใบหน้า เราเรียนรู้ที่จะจดจำใบหน้า รูปร่าง และเสียง ของกันและกันมาตั้งแต่เราเป็นทารก และเมื่อเราโตขึ้นเราก็สามารถจดจำคุณสมบัติเหล่านี้ของคนรอบข้างได้สบายๆ
แต่ในความเป็นจริงการจดจำคนจากลักษณะประจำตัวบุคลลนั้นไม่ใช่เรื่องที่สมบูรณ์นัก คนเราเองสามารถทักคนผิด คนหน้าคล้าย ฝาแฝด ฯลฯ ได้ตลอดเวลา คอมพิวเตอร์ที่ยังไม่สามารถเลียนแบบความซับซ้อนของสมองคนเราได้อย่างสมบูรณ์กลับเจอปัญหามากกว่ามนุษย์มาก คอมพิวเตอร์จะจำคนได้ยากทันทีที่มีประเด็นมุมกล้องที่เปลี่ยนไป, สัดส่วนรูปร่างของคนอาจจะเปลี่ยนไปตามเวลา, การแต่งกาย แว่นตา ทรงผม ก็อาจจะทำให้คอมพิวเตอร์ระบุตัวตนผิดได้โดยง่าย
กระบวนการทำให้คอมพิวเตอร์สามารถจดจำคุณสมบัติของบุคคลได้เหมือนมนุษย์หรือดีกว่าเป็นความท้าทายในวงการวิจัยมาเป็นเวลานาน ที่เราพบเห็นได้คือการใช้ลายนิ้วมือเพื่อจดจำ ลายนิ้วมือนั้นสร้างรูปร่างและลายของมันขึ้นมาระหว่างที่เราเติบโตขึ้นมากระบวนการนี้ทำให้มนุษย์ทุกคนมีลายนิ้วมือที่ต่างกันไป
เซ็นเซอร์ลายนิ้วมือในเครื่องอ่านทั้งหลายนั้น มักมีรูปแบบการทำงานคล้ายกัน คือเป็นเซ็นเซอร์ภาพความกว้างมากกว่าร้อยพิกเซลขึ้นไปแล้วแต่รุ่น เช่น เซ็นเซอร์ลายนิ้วมือแบบรูดที่เราเห็นในโน้ตบุ๊กหลายรุ่น มักให้ภาพความกว้าง 192 พิกเซล ตัวเซ็นเซอร์ที่แท้จริงเป็นเซ็นเซอร์ 192x16 ตารางพิกเซล แต่ตัวเซ็นเซอร์มีหน่วยประมวลผลทำให้สามารถประกอบภาพขณะที่เรารูดนิ้วเข้าเป็นภาพเดียวพร้อมกับปรับระดับความสว่างให้เป็นภาพขาวดำอย่างชัดเจน
อย่างไรก็ดี การได้ภาพขาว-ดำ ออกมาไม่ได้ทำให้การเปรียบเทียบและการค้นหาลายนิ้วมือทำได้ง่ายขึ้นนัก ความผิดพลาดเล็กๆ น้อยๆ ความแตกต่างระหว่างการเก็บภาพแต่ละครั้งยังเกิดขึ้นได้เสมอ กระบวนการเปรียบเทียบภาพนั้นต้องเป็นกระบวนการที่ยอมรับความแตกต่างกันได้ กระบวนการเปรียบเทียบเช่นนี้กินพลังประมวลผลสูงและทำงานได้ช้า
เพื่อลดข้อมูลที่ต้องเปรียบเทียบลงแทนที่การเปรียบเทียบภาพต่อภาพ จะต้องทำการสกัดคุณสมบัติของลายนิ้วมือ (feature extraction) เพื่อลดรูปแทนที่จะมองภาพเป็นพิกเซลตามปกติ กระบวนการนี้จะมองลายนิ้วมือให้เหลือเพียงคุณสมบัติบางส่วน เช่น แนวการวนของลายนิ้วมือ ลายที่เป็นทางแยกต่างๆ เมื่อเราสามารถแยกองค์ประกอบเหล่านี้ออกมาได้แล้ว เราจะสามารถเปรียบเทียบลายนิ้วมือในฐานข้อมูลได้โดยง่าย
กระบวนการเปรียบเทียบข้อมูลทางชีวภาพอื่นๆ มักใช้พื้นฐานเดียวกัน กระบวนการมักเป็นการสกัดคุณสมบัติ เช่น ระยะห่างระหว่างดวงตา, รูปหน้า, สีนัยน์ตา ฯลฯ คอมพิวเตอร์เก็บข้อมูลเหล่านี้เอาไว้แล้วพยายามเปรียบเทียบจากข้อมูลที่สกัดออกมาแล้วเพื่อความง่าย
เช่นเดียวกับ RFID กระบวนการตรวจสอบด้วยคุณสมบัติทางชีวภาพถูกใช้ในกระบวนการยืนยันตัวตนอย่างกว้างขวาง เพราะความสะดวกสำหรับผู้ใช้ที่ไม่ต้องจดจำรหัสผ่านที่ซับซ้อน แต่ข้อเสียสำคัญของการใช้แนวทางนี้คือข้อมูลที่ใช้ยืนยันนั้นไม่สามารถเปลี่ยนแปลงได้เลยตลอดชีวิต ลายนิ้วมือของเราอาจจะหลุดไปจากการให้ข้อมูลอย่างไม่ระมัดระวังเมื่อไรก็ได้ ระบบตรวจสอบลายนิ้วมือนั้นมีรายงานหลายครั้งว่าไม่สามารถแยกแยะระหว่างนิ้วมือจริงกับลายยางที่ทำปลอมขึ้นมาแม้จะมีการพัฒนาเทคโนโลยีอย่างต่อเนื่อง เครื่องอ่านลายนิ้วมือบางรุ่นสามารถวัดอุณหภูมิของนิ้วมือที่มาแตะเครื่องเพื่อยืนยันว่าเป็นนิ้วจริง ขณะที่ผู้ปลอมแปลงก็ต่อสู้ด้วยการใช้ลายนิ้วมือปลอมที่บางมากๆ เพื่อแปะเข้ากับนิ้วจริงทำให้หลอกเครื่องได้สำเร็จ
แม้จะมีความเสี่ยงในการใช้คุณสมบัติทางชีวภาพเหล่านี้ยืนยันตัวตน ระบบคอมพิวเตอร์จำนวนมากก็ยังรักษาความปลอดภัยด้วยข้อมูลชีวภาพเหล่านี้ แต่นักพัฒนาจำนวนหนึ่งก็ไม่ยอมรับกระบวนการนี้ เช่น ผู้พัฒนา eCryptfs ระบุว่าการเรียกร้องฟีเจอร์รองรับเครื่องอ่านลายนิ้วมือเพื่อปลดรหัสจะไม่ได้รับการซัพพอร์ต เพราะการยอมรับลายนิ้วมือเป็นรหัสผ่านการเข้ารหัสเท่ากับว่ายอมรับให้หน่วยงานต่างๆ ที่อาจจะเป็นหน่วยงานรัฐ หรือหน่วยงานเอกชนในประเทศที่ไม่มีการปกป้องข้อมูลชีวภาพส่วนบุคคลสามารถเก็บรหัสการเข้ารหัสไว้ได้ตลอดเวลา
อย่างไรก็ดี ความปลอดภัยในการยืนยันตัวตนด้วยคุณสมบัติชีวภาพเช่นนี้สามารถทำได้ในบางกรณีที่มีการตรวจสอบอย่างถี่ถ้วน อาคารรัฐบาลอาจจะใช้หน่วยรักษาความปลอดภัยตรวจสอบผู้เข้าออกอาคารร่วมกับการใช้ข้อมูลชีวภาพเหล่านี้เพื่อตรวจสอบว่าไม่มีการปลอมแปลงใบหน้า, ลายนิ้วมือ, หรือลายม่านตา ก่อนที่จะให้คอมพิวเตอร์ตรวจสอบบุคคลอีกครั้ง ความปลอดภัยโดยรวมของระบบก็จะเท่ากับความปลอดภัยในการตรวจสอบว่ามีการตรวจสอบที่ดีเพียงใด
ส่งท้าย
กระบวนการระบุตัวตนเป็นกระบวนการสำคัญในกระบวนการรักษาความปลอดภัยคอมพิวเตอร์ เทคโนโลยีการระบุตัวตนออกแบบและพัฒนาอย่างต่อเนื่อง เพื่อให้การระบุตัวตนสามารถทำได้รวดเร็ว แม่นยำ สามารถระบุตัวตนได้ไม่ซ้ำซ้อน แต่ความสะดวกในการใช้งานทำให้ทำให้ระบบรักษาความปลอดภัยจำนวนมากเลือกที่จะใช้เทคโนโลยีการระบุตัวตนมาเพื่อยืนยันตัวตน การใช้งานเช่นนี้อาจจะใช้งานได้ในกรณีที่ระบบไม่ต้องการความปลอดภัยมากนัก หรือมีการตรวจสอบอย่างอื่นร่วมด้วยอย่างแม่นยำ
Comments
ยาวมาก ขออ่านแปบบบบบบ
สิ่งที่เรา สิ่งที่เราใช้งาน ?
เชื่อเล่น => ชื่อเล่น
เครือข่ายเครื่อข่าย ?
เบราว์เซฮร์ => เบราว์เซอร์
ตัวบุคลล => ตัวบุคคล
อย่างไรก้ดี => อย่างไรก็ดี
โดยตัวนเลข => โดยตัวเลข
ความแต่ต่าง => ความแตกต่าง
ย่อหน้าแรก
ย่อหน้าที่ 2
ย่อหน้าที่ 3
UUID: ย่อหน้าที่ 2
UUID: ย่อหน้าที่ 3
ไอพี: ย่อหน้าที่ 2
ไอพี: ย่อหน้าที่ 3
เอ่อ... ผมเพิ่งอ่านจบแค่เรื่องไอพีเอง
ช่างไฟสมัครเล่น (- -")
บาร์โค้ => บาร์โค้ด
ป้องการการทำสำเนา => ป้องกันการทำสำเนา
อื่่นๆ => อื่นๆ
นัยตา => นัยน์ตา
ฯลบฯ => ฯลฯ
อุณภูมิ => อุณหภูมิ
-> ฟอนต์ที่สร้างบนกริดขนาด 0.013 นิ้ว (The "13" in the font's name comes from the 0.013-inch grid used to design it.[2])
-> ~คนคนเดียว~; ~คนคนหนึ่ง~
เห็นด้วยกับหลายคนว่าบทความนี้คนทั่วไปน่าจะอ่านเข้าใจได้ไม่ยาก
ป.ล. บทความชุดนี้มัน theme "กวน มึน โฮ" ชัดๆ
@ Virusfowl
I'm not a dev. not yet a user.
ลงชื่ออ่านครับ ขอบคุณสำหรับความรู้ครับผม
บทความดีมากจริงๆครับ อ่านเพลิน
แต่ผมสงไสอย่างนึ่งคือ "MAC ประกอบไปด้วยหมายเลข 6 ชุด แต่ละชุดเป็นเลข 8 บิต มักเขียนด้วยเลขฐาน 16 สองตัว " อยากรู้ว่าลองคูณดู 8^6 มันได้แค่ 2แสนกว่า แปลว่าก็ต้องมีซ้ำกันใช่ไหมครับ หรือผมเข้าใจผิด
ไม่ถูกครับ
แต่มันก็อาจจะมีซ้ำกันบ้างเพราะปัจจุบันมีอุปกรณ์เยอะเหลือเกิน แต่ความจำเป็นที่ MAC Address จะต้องไม่ซ้ำกันถูกจำกัดอยู่เพียงแค่ในเครือข่ายเดียวกันในบริเวณเดียวกันเท่านั้น นอกนั้นก็จะใช้ IP Address ซึ่งถ้าหากอยู่หลัง NAT หรือใช้ IPv6 ก็ไม่มีปัญหาหรอก
6 ชุด ชุดละ 8 bit = 48 bit
2^48 = 281,474,976,710,656
ขอบคุณครับ
เกี่ยวกับเรื่อง identification นี่ ผมยังสงสัยอยู่ว่าพวก software ที่ต้องเสียบ dongle เข้ากับคอมจึงจะเปิดใช้งานได้นี่ มันมีการยืนยันตัวตนกันด้วยอะไรล่ะครับ?
ช่างไฟสมัครเล่น (- -")
Dongle ตัวนั้นก็มี id ของตัวเองที่ software มาอ่านไงครับ โดยเทียบกับตอน setup ว่าเป็นidเดียวกัน
เจ้า id ของ dongle นี่คงไม่ใช่แค่ MAC Address ใช่มั้ยครับ? ผมแค่สงสัยว่ามันใช้การตรวจจับ id ที่ว่ายังไง
คือ อย่าง barcode ก็ใช้การสแกนด้วยเครื่องอ่าน หรือ ลายนิ้วมือ,ตรวจจับใบหน้า ก็ใช้ image processing??, RFID ใช้คลื่นวิทยุ
ช่างไฟสมัครเล่น (- -")
อันนี้ไม่ใช่แล้วแต่คนพัฒนาซอฟท์แวร์นั้นๆ เหรอครับ? บางทีอาจจะมี TPM ข้างใน มี private key, public key เลยก็ได้
ไม่เกี่ยวกับ MAC address ครับพวกdongleปกติ ก็product ใครproductมัน
อันนี้แล้วแต่ยี่ห้อเลยครับ
ถ้าของดีๆ กระบวนการจะเข้ารหัสไว้ เช่น PKCS#11 Dongle ทั้งหลาย ข้างในจะให้อ่านเฉพาะ public key (แสดงตัวตน) และสามารถยืนยันตัวตน ด้วยการส่งข้อมูลเข้าไปให้เข้ารหัสด้วย private key ได้ (แต่อ่าน key ออกมาไม่ได้)
บางยี่ห้อก็ดิบๆ เลยครับ มีข้อมูลอยู่ข้างใน อ่านออกมาได้คือถูกต้องแล้ว จบไป
lewcpe.com , @wasonliw
ต้องขอเซฟไปอ่านที่บ้าน ไม่งั้น อ่านไปก็ไม่รู้เรื่องตอนนี้ ฮ่าๆ
ขอบคุณสำหรับบทความครับ
ถ้าลงลึกเรื่องลายนิ้วมือ จะมีมากกว่าลายวน คือ ทางแยกในลายนิ้วมือ ตรงไหนที่มีเส้นแตก เส้นแยก ก็จะถูกmarkจุดไว้ด้วย เวลาเอาไปเทียบก็เอาทั้งลายวน จุดแยก และจุดปลายของวงนอกสุดของลายวน
ลงชื่ออ่านครับ อ่านได้ตรึ่งเดียวอยู่ เดี๋ยวมาอ่านต่อ
เทคโนโลยีไม่ผิด คนใช้มันในทางที่ผิดนั่นแหละที่ผิด!?!
ได้ความรู้เยอะเลย ขอบคุณครับ
ขอบคุณสำหรับบทความดี ๆครับ...
เยี่ยมครับ มีความรู้สึกว่าบทความนี้อ่านง่ายขึ้น เมื่อเทียบกับบทความเนื้อหาหนักๆที่ผ่านมา
ได้ความรู้เยอะเลย ขอบคุณครับ
รักนะคะคนดีของฉัน
ลายนิ้วมือก็ยังไม่ปลอดภัยจริงๆ ปลอมได้แต่มันก็สะดวกมากแต่กดๆรูดๆ
ลืมนึกถึงไปเลยว่า Biometric Identification ไม่สามารถเปลี่ยนแปลงได้ตลอดชีวิต โดนแฮกแล้วแฮกเลย หลงนึกว่ามันจะเป็น Safe Haven ซะอีก อืมมมมม
ขอบคุณสำหรับบทความครับ
ชอบครับ อ่านรวดเดียวจบ
แล้วบัตรสำหรับรถไฟฟ้าในใช้มาตรฐานอะไรเหรอครับ
คือผมข้องใจมากว่ามันทำไมอ่านได้ช้าขนาดนั้น
onedd.net
+1 ช้าได้อีก
บางทีอาจจะไม่ได้ช้าที่ขั้นตอนอ่าน แต่พยายามยืนยันอะไรสักอย่างกับแม่ข่ายมั้งครับ
เป็น wireless smartcard ครับ ไม่ใช่ RFID ปกติ
ผมยังไม่ได้แกะจริงจังว่าข้างในมันทำอะไรบ้างนะ
lewcpe.com , @wasonliw