20 ต.ค. 2021 เวลา 04:40 • ธุรกิจ
เล่าเรื่องการสุ่มเลขบัตรเครดิต
3
.
1
หลาย ๆ คนเริ่มเดากันไปต่าง ๆ นานาว่า โจรที่แอบตัดเงินจากบัตรเดบิต และบัตรเครดิตว่า ทำได้อย่างไร บ้างก็ว่าเขาใช้วิธิสุ่มเลขบัตรเครดิตเอา วันนี้ผมเลยขอมาเล่ารายละเอียด และวิเคราะห์ให้ฟังว่ามันง่ายยากเพียงใด
4
.
1
ก่อนอื่นเลยนะครับ เรามาดูองค์ประกอบของเลขบัตรกัน เลขบัตร (personal account number - PAN) ส่วนใหญ่จะมีจำนวนหลักตั้งแต่ 8-19 หลัก ซึ่งบัตรส่วนใหญ่มักจะมีเลขบัตร 16 หลัก ซึ่งแปลว่าถ้าสุ่มกันแบบมั่ว ๆ จะมีตัวเลขที่เป็นไปได้ถึง 10^16 หรือหนึ่งหมื่นล้านล้านเลขบัตรนั่นเอง ซึ่งถ้าจะมีสุ่มกันเนี่ยคงจะยาก เพราะเรามีบัตรเครดิตที่ออกใช้ทั่วโลกประมาณ 2.8 พันล้านบัตรเท่านั้นเอง คิดเป็นความเป็นได้ในการเดาเลขถูกประมาณ 1 ใน 3.5 พันล้าน แต่จริงๆ มันไม่ได้ต้องสุ่มเยอะขนาดนั้น เพราะเลขบัตรแต่ละหลักมันมีความหมายของมันอยู่
6
.
โดย 6-8 หลักแรกจะเป็นตัวเลขที่ระบุผู้ออก (Issuer Identification Numbers - IIN หรือ Bank Identification Number - BIN) ซึ่งแต่ละธนาคารจะมีการจดทะเบียนเลขเหล่านี้เป็นการเฉพาะ เช่น 492141 เป็นเลขบัตรเครดิตของธนาคารกสิกรไทย เป็นต้น ซึ่งข้อมูลนี้สามารถดูได้จาก bankbinlist ถ้าคนร้ายต้องการจะสุ่มเลข ก็จะเพิ่มความเป็นไปได้ที่จะสุ่มถูกได้มากขึ้นหลายหมื่นเท่า
3
.
1
ในประเทศไทย เลขบัตรส่วนใหญ่จะมี BIN code 8 หลัก และมีเลขบัตรรวม 16 หลัก จึงมีเลขบัตรเหลืออยู่ 8 หลัก แต่หลักสุดท้าย 1 หลัก โดนเก็บไปใช้เป็นตัวเลขที่ใช้ตรวจสอบบัตร (checksum digit) เพื่อป้องกันการใส่เลขบัตรผิดโดยไม่ตั้งใจ (โดยการใช้ Luhn's Algorithm) จึงเหลือแค่ 7 หลักให้สุ่ม มีเลขที่เป็นไปได้ 10,000,000 เลข เมื่อคูณกับจำนวน BIN ในประเทศไทยที่มีมากกว่า 1,300 เลข จึงคิดเป็นความเป็นไปได้กว่า 1 หมื่นล้านเลขบัตร เมื่อมาหารกับจำนวนบัตรในประเทศที่มีอยู่เกือบ 30 ล้านบัตร คิดเป็นความน่าจะเป็นที่จะเดาเลขที่ถูกต้องได้เฉลี่ย 1 ใน 400 โดยประมาณ ซึ่งไม่ได้เป็นเรื่องเกินเลยที่จะมีโอกาสเดาถูกได้
3
.
2
ซึ่งอัตรานี้จะยิ่งลดลงอีก หากว่าผู้ร้ายมุ่งเป้าไปที่เลข BIN หลักของธนาคารที่มีการออกเลขบัตรไปเกือบหมดแล้ว จะทำให้โอกาสเดาเลขบัตรสูงขึ้นได้มาก ถ้าเลขบัตรของ BIN code นั้นๆ ถูกใช้หมดทุกเลข จะเพิ่มความเป็นได้ในการเดาถูกได้เป็น 100% เลยทีเดียว หรือต่อให้ธนาคารนั้นๆ ยังใช้เลขไปเพียงบางส่วน แต่ดันออกเลขเรียงลำดับตั้งแต่ 0000001 ไปเรื่อย ๆ ก็จะยังทำให้โอกาสเดาถูกมีสูงขึ้นอีก
.
8
นี่จึงเป็นเรื่องที่ไม่เกินเอื้อมในการที่จะเดาเลขถูกได้แต่อย่างใด แต่ปัญหาไม่ได้จบลงแค่นั้น การกรอกข้อมูลการใช้บัตรในการทำธุรกรรมออนไลน์ มีข้อมูลเพิ่มเติมไม่ว่าจะเป็น ชื่อตามบัตร เลขบัตร วันหมดอายุ และเลข CVV ซึ่งโอกาสเดาถูกก็จะยากขึ้นไปอีก แต่เดี๋ยวผมจะพูดในแต่ละรายการแบบไม่ตามลำดับ
1
ตัวอย่างฟอร์มของเฟซบุ๊กในการกรอกรายการบัตรเครดิต
.
- CVV หรือ Card Verification Value เป็นเลขที่อยู่หลังบัตร (หรือหน้าบัตรของบัตร Amex) ซึ่งเป็นตัวเลขคนละตัวกับ PIN ซึ่งเรามักจะเลือกกำหนดเองได้ ตัวเลขที่เป็นตัวเลขที่ผู้ออกบัตรกำหนดมาให้ และมักจะเขียนอยู่บนบัตรอยู่แล้ว ซึ่งหากจะเดาเลข 3 หลักให้ถูก จะมีโอกาสถูก 1 ในพัน ซึ่งก็ไม่ได้ยากเท่าไหร่เลย แต่เดี๋ยวก่อน CVV จริง ๆ แล้วไม่ใช่ตัวเลขสุ่ม มันเป็นตัวเลขที่เกิดขึ้นจากการคำนวณผ่านการเข้ารหัสที่เรียกว่า DES ของข้อมูลเลขบัตร วันหมดอายุ และรหัสกุญแจที่เป็นความลับ หากมีข้อมูล key ตรงนี้รั่วไหล ก็สามารถที่จะคำนวณ CVV ได้ โดยไม่ต้องเดา ซึ่งในอดีตเคยมีการรั่วไหลแบบนี้ จึงทำให้คนร้ายสามารถหาเลข CVV ได้โดยไม่ต้องเดา
2
.
- วันหมดอายุ ตัวเลขนี้แต่ละธนาคารจะมีการกำหนดนโยบายของตัวเอง ซึ่งก็อีกตัวเลขสี่หลักนี้ ดูเผิน ๆ อาจจะดูเหมือนว่าเดายาก แต่ไม่ได้อยู่เกินวิสัยที่จะเดาด้วยสาเหตุหลายๆ ประการ เช่น ไม่ว่าบัตรถ้ายังไม่หมดอายุ ก็มีวันหมดอายุในอนาคต และบัตรส่วนใหญ่วันหมดอายุก็จำกัด เช่น ไม่เกิน 5 ปี จึงเหลือตัวเลขให้เดาเพียง 60 ตัวเลข (เช่น 12*5 = 60) นอกจากนี้ยังมีเรื่องของการออกเลขบัตรตามลำดับที่ผมเกริ่นไปก่อนหน้านี้ ทำให้การเดาตรงนี้ง่ายขึ้นไปอีก เพราะบัตรเลขที่ติด ๆ กันก็จะมีวันหมดอายุใกล้ ๆ กันด้วย ถ้าคนร้ายได้ข้อมูลบัตรใบหนึ่งไป จะทำให้การเดาทำได้ง่ายขึ้นมาก ปัจจุบัน ธนาคารจึงมีการออกเลขบัตรแบบสุ่ม และเลือกใช้ BIN code จำนวนมากพร้อม ๆ กัน เพื่อแก้ปัญหาตรงนี้
4
.
4
- ชื่อตามบัตร หลาย ๆ คนจะเอ๊ะว่าแล้วคนร้ายจะเดาชื่อตามบัตรถูกได้ไง เพราะกรอกบัตรเครดิตทีไร มันถามทุกที ความน่าสนใจอยู่ตรงนี้ครับ ตามมาตรฐานของ payment gateway ต้องการเพียงแค่เลขบัตร วันหมดอายุ และเลข CVV เท่านั้นเอง เว้นแต่ payment gateway ใดจะบังคับข้อมูลเพิ่มเติม เพื่อความปลอดภัยที่สูงขึ้น (เดี๋ยวจะเล่าเรื่อง 3D payment หรือ secure payment เพิ่มครับ เก็บไว้ก่อน) ดังนั้นถ้าคนร้ายรู้ว่า payment gateway ไหนไม่ต้องใช้ชื่อ คนร้ายก็จะมุ่งเป้าไปโจมตีผ่าน payment gateway นั้นนั่นเอง
3
.
1
พอเรามองจากรายละเอียด เราจะเห็นว่า การเดาข้อมูลทั้งสามส่วนถึงแม้จะยาก แต่ก็ไม่ได้ยากอย่างที่คิด เพียงมีการทดลองตัดเงินแบบซ้ำ ๆ กันหลาย ๆ ครั้ง ก็จะสามารถหาข้อมูลเลขบัตรที่ถูกต้องได้
.
แต่อย่างไรก็ตาม บริษัทผู้ออกบัตร และสถาบันการเงินก็ไม่ได้นิ่งนอนใจ ในช่วงหลายสิบปีที่ผ่านมาที่มีธุรกรรมแบบไม่แสดงบัตร (card not present) สูงขึ้นมาก ตามธุรกรรมชำระเงินผ่านบัตรที่เพิ่มสูงขึ้น จากการซื้อสินค้าและบริการที่สูงขึ้นทุกปี ทำให้ความเสียหายจากการฉ้อโกงผ่านธุรกรรมการชำระเงินสูงถึง 24 พันล้านเหรียญสหรัฐในปี พ.ศ. 2561 (+18% จากปีก่อนหน้า) และธุรกรรมแบบไม่แสดงบัตรมีความเสี่ยงสูงกว่าธุรกรรมแบบแสดงบัตรถึง 81% (ข้อมูลจาก shiftprocessing)
4
.
บริษัทผู้ออกบัตร สถาบันการเงิน และร้านค้าใหญ่ ๆ จึงมีระบบป้องกันการฉ้อโกง (anti-fraud) ที่พัฒนาขึ้นมาตามลำดับ ไม่ว่าจะเป็น (บางส่วน)
.
- มีระบบตรวจสอบข้อมูลบัตรเครดิตที่รั่วไหล ตามฐานข้อมูลต่างๆ และแจ้งยกเลิกบัตร
- มีระบบปฏิเสธการชำระเงิน ในกรณีที่การกรอกข้อมูลบัตรผิดหลาย ๆ ครั้ง การใช้บัตรที่ผิดปกติ เช่น ไปใช้บัตรในสถานที่ที่ไม่ควรใช้ หรือการใช้บัตรในต่างประเทศ
- มีการปฏิเสธร้านค้าที่มีรายการผิดปกติมากผิดปกติ
- มีการใช้ระบบปัญญาประดิษฐ์ (AI) มาใช้ในการตรวจสอบรายการธุรกิจผิดปกติ
- มีการตรวจสอบตำแหน่งของมือถือของผู้ใช้กับสถานที่ใช้บัตรว่าตรงกัน
- มีการเพิ่มข้อมูล biometric ไว้บนบัตร
- มีการใช้ chip แทนแถบแม่เหล็ก
- มีการเพิ่มระบบ OTP และ 2FA ในการทำรายการ
- มีการออกบัตรแบบ virtual card เพื่อเป็นการสร้างเลขบัตรชั่วคราว เพื่อใช้ทำธุรกรรมครั้งเดียว
- มีระบบ 3-D Secure เพื่อลดการใช้เลขบัตรโดยตรง และใช้การตรวจทั้งจากผู้ออกบัตร (issuer domain) ร้านค้า (merchant) และธนาคารของร้านค้า/payment gateway (acquirer domain)
.
5
อย่างไรก็ตาม คนร้ายก็ไม่ได้ยอมแพ้ มีการอาศัยช่องโหว่ต่าง ๆ อยู่ตลอดเวลา ไม่ว่าจะเป็น
2
.
- การที่บริษัทผู้ออกบัตร และสถาบันการเงินไม่สามารถตรวจสอบธุรกรรมผิดปกติทุกรายการได้ทันที บริษัทผู้ออกบัตร และสถาบันการเงินจึงเลือกที่จะไม่สนใจรายการธุรกรรมเล็ก ๆ เพราะต้นทุนในการตรวจสอบไม่คุ้ม คนร้ายจึงใช้ช่องโหว่ตรงนี้ในการพยายามหาข้อมูลเลขบัตรที่ถูกต้อง โดยการเลือกตัดรายการเล็ก ๆ
.
- การที่บริษัทผู้ออกบัตร และสถาบันการเงินใช้ระบบตรวจสอบร้านค้าที่ผิดปกติ โดยดูจากธุรกรรมที่ผิดปกติ คนร้ายจึงเลือกที่จะทำการทดลองผ่านร้านค้าหลาย ๆ ร้านไปพร้อม ๆ กัน และเลือกร้านค้าใหญ่ ๆ อย่าง facebook, google, apple ซึ่งมีธุรกรรมหลายร้อยล้านรายการต่อวัน การโจมตีจึงแทบจะเป็นเหมือนหยดเลือด 1 หยดในน้ำทะเล ที่ฉลามที่อยู่ห่างไกลยังไงก็ไม่ได้กลิ่นนั่นเอง
1
.
แทนที่จะพยายามเดาข้อมูลให้ถูกของเลขบัตร 1 ใบ ซึ่งธนาคารมักจะมีการตรวจสอบ หากผิดซ้ำ ๆ กันหลาย ๆ ครั้ง ก็จะล็อกบัตรทันที คนร้ายจะเลือกโจมตีบัตรหลาย ๆ พันใบพร้อม ๆ กันแทน โอกาสที่จะรอดจากการตรวจสอบก็จะง่ายขึ้น
2
.
ร้านค้าใหญ่ ๆ เองก็มักมีการตรวจสอบว่า บัตรที่ใช้ตรงกับตำแหน่ของ Ip address ที่ทำธุรกรรมไหม คนร้ายก็เลือกที่จะใช้ vpn เพื่อหลบหลีกการเปิดเผยตำแหน่งของตัวเอง และเพื่อหลอกให้ร้านค้ารับธุรกรรมของตัวเองไปด้วย
2
.
อย่างไรก็ตาม สงตรามของการฉ้อโกงผ่านธุรกรรมออนไลน์ยังไม่จบ คนร้ายก็พัฒนาขีดความสามารถในการฉ้อโกงไปเรื่อย ๆ ในขณะที่บริษัทผู้ออกบัตร สถาบันการเงิน และร้านค้า ก็ยังพยายามพํฒนามาตรการในการป้องกันอย่างไม่หยุดยั้ง
1
.
ส่วนผู้บริโภคตาดำ ๆ ก็ยังต้องระมัดระวังกับการใช้บัตรต่อไปครับ
.
เดี๋ยวตอนหน้า มาเล่าให้ฟังความเห็นของผมว่า การหักบัญชีแบบผิดปกติในไทยครั้งนี้ make sense รึเปล่าครับ เพราะตอนนี้มันยาวเกินไปแล้ว
.
โฆษณา