วันพุธที่ 25 มกราคม พ.ศ. 2555

Digital Signature กับความปลอดภัยทางสารสนเทศ

1.  Digital Signature คืออะไร

 Digital Signature เป็นสิ่งที่แสดงยืนยันตัวบุคคล (เจ้าของ email) และ email (ข้อความใน email) ว่า email นั้นได้ถูกส่งมาจากผู้ส่ง คนนั้นจริงๆ และข้อความไม่ได้ถูกเปลี่ยนแปลงและแก้ไข
ในการส่งข้อมูลผ่านเครือข่ายนั้น นอกจากจะทำให้ข้อมูลที่ส่งนั้นเป็นความลับสำหรับผู้ไม่มีสิทธิ์โดยการใช้เทคโนโลยีการรหัสแล้ว สำหรับการทำนิติกรรมสัญญาโดยทั่วไป ลายมือชื่อจะเป็นสิ่งที่ใช้ในการระบุตัวบุคคล (Authentication) และ ยังแสดงถึงเจตนาในการยอมรับ เนื้อหาในสัญญานั้นๆซึ่งเชื่อมโยงถึง การป้องกันการปฏิเสธความรับผิดชอบ (Non-Repudiation) สำหรับในการทำธุรกรรมทางอิเล็กทรอนิกส์นั้นจะใช้ ลายมือชื่ออิเล็กทรอนิกส์ (Electronic Signature) ซึ่งมีรูปแบบต่างๆเช่น สิ่งที่ระบุตัวบุคคลทางชีวภาพ (ลายพิมพ์นิ้วมือ เสียง ม่านตา เป็นต้น) หรือ จะเป็นสิ่งที่มอบให้แก่บุคคลนั้นๆในรูปแบบของ รหัสประจำตัว ตัวอย่างที่สำคัญของลายมือชื่ออิเล็กทรอนิกส์ ที่ได้รับการยอมรับกันมากที่สุดอันหนึ่ง คือ ลายมือชื่อดิจิทัล (Digital Signature) ซึ่งจะเป็นองค์ประกอบหนึ่งใน โครงสร้างพื้นฐานกุญแจสาธารณะ (Public  Key Infrastructure, PKI)

http://upic.me/show/32405375

ใบรับรองดิจิตอล (Digital Certificate) คืออะไร
 
ใบรับรอง หรือใบรับรองดิจิตอลนั้นทำหน้าที่คล้ายกับบัตรประจำตัวประชาชน คือ ยืนยันตัวตนของผู้ที่เป็นเจ้าของ ซึ่งใบรับรองอิเล็กทรอนิกส์ดังกล่าว เป็นไปตามมาตรฐาน X.509 และบนใบรับรองอิเล็กทรอนิกส์แต่ละใบนั้นจะประกอบไปด้วย

o   หมายเลขของใบรับรองฯ (serial number)
o   วิธีการที่ใช้ในการเข้ารหัสข้อมูล (algorithm)
o   ชื่อขององค์กรออกใบรับรองฯ (issuer)
o   เวลาเริ่มใช้ใบรับรองฯ (starting time) และเวลาที่ใบรับรองหมดอายุ (expiring time)
o   ชื่อผู้ถือใบรับรองฯ (subject) และข้อมูลทั่วไป เช่นหน่วยงานที่สังกัด, e-mail Address เป็นต้น
o   กุญแจสาธารณะของผู้ถือใบรับรองฯ (subject ' s public key)

2.  การทำงาน ของ Digital Signature

การจะเข้าใจการทำงาน ของลายมือชื่ออิเล็กทรอนิคส์ ต้องรู้จักกลไกการเข้า และถอดรหัส แบบไม่สมมาตร (asymmetric) ก่อน โดยปกติการเข้ารหัสที่เราคุ้นเคยกันทั่วไป จะเป็นแบบสมมาตร (symmetric)    คือ เอาข้อความที่จะเข้ารหัสมาชุดหนึ่ง ผ่านการเข้ารหัส ให้เป็นข้อความใหม่ที่อ่านไม่รู้เรื่อง เช่น เปลี่ยนอักษรทุกตัวเป็นตัวถัดไปหรือ บวก 1 เข้าไปที่รหัสของอักษรแต่ละตัว ดังนั้น ก.ไก่จะกลายเป็น ข.ไข่ อ.อ่างกลายเป็น ฮ.นกฮูก เป็นต้น ดังนั้นคำว่า   "วงกบ" จะกลายเป็น "ศจขป" จากนั้นบอกคีย์ที่ใช้การเข้ารหัสนั้น (เช่น ตัวอย่างนี้คือเลข 1) ให้กับผู้รับ ผู้รับก็จะถอดรหัสโดยทำย้อนกลับคือ เอา 1 ไปลบจากรหัสทุกตัว ดังนั้น ศ.    ก็จะกลายเป็น ว. ส่วน จ. ก็กลายเป็น ง. ผู้รับก็จะได้คำว่า "วงกบ" กลับมาตามเดิม ดังรูปต่อไปนี้

http://upic.me/show/32405448

วิธีนี้ไม่เหมาะที่จะใช้บนอินเตอร์เน็ต เพราะต้องส่งรหัส เช่น +1 ไปให้ผู้รับด้วย ซึ่งอาจถูกขโมยได้ ทำให้ผู้อื่นสามารถอ่านข้อความออก จึงมีการคิดวิธีถอดรหัสแบบไม่สมมาตร(asymmetic) ขึ้น คือเข้ารหัสด้วยตัวเลขชุดหนึ่ง แต่ถอดรหัสด้วยตัวเลขอีกชุดหนึ่งที่คู่กัน แต่การคำนวณให้ได้รหัสนี้ จะต้องอาศัยวิธีทางคณิตศาสตร์ที่ซับซ้อน วิธีการคือ ทุกคนที่จะรับข้อมูล จะประกาศคีย์ หรือตัวเลขชุดที่ใช้ในการเข้ารหัสของตน ไว้บนอินเตอร์เน็ต ใครอยากจะส่งข้อมูลให้ผู้รับคนนี้ ก็มาเอาตัวเลขนี้ไปใช้เข้ารหัสข้อมูล แล้วส่งมาให้ แต่ตัวเลขหรือคีย์ชุดที่รู้กันทั่วหรือ public key ("คีย์สาธารณะ") ซี่งประกาศไว้นี้ มีคุณสมบัติพิเศษคือ เมื่อใช้เข้ารหัสไปแล้ว จะใช้ถอดรหัสนั้นกลับคืนมาไม่ได้ ข้อความที่เข้ารหัสแล้ว จึงเป็นข้อความลับที่ใครๆ ก็อ่านไม่ได้ นอกจากเจ้าตัวผู้รับที่ผู้ส่งเจาะจงมา ซึ่งจะมีตัวเลข หรือคีย์อีกชุดหนึ่งที่คู่กัน ซึ่งจะใช้สำหรับถอดรหัสข้อความนั้น เรียกว่า private key ("คีย์ลับ") วิธีนี้มีข้อดีคือผู้ส่งไม่ต้องส่งรหัสลับมาให้ผู้รับเลย

http://upic.me/show/32405467

ในทางกลับกัน ผู้ส่งอาจใช้ private key ของตนเองเข้ารหัส แล้วส่งข้อมูลให้ผู้รับก็ได้ วิธีนี้ข้อมูลจะไม่เป็นความลับ เพราะใครๆที่ดักฟังข้อมูลที่ส่งได้ ก็อาจเอา public key ของผู้ส่ง     (ที่หาได้บนอินเตอร์เน็ต)         มาถอดรหัสเพื่ออ่านได้  แต่ข้อดีคือเป็นการพิสูจน์ว่า  ผู้ส่งเป็นคนส่งข้อความนั้นมาเองจริงๆ เพราะเข้ารหัสด้วย private key ของตัวเอง ที่ไม่มีคนอื่นรู้ คนอื่นจึงปลอมแปลง หรือแก้ไขขึ้นมาเองไม่ได้ ซึ่งเหมือนกับเอกสาร   ที่มีลายเซ็นของผู้ส่งกำกับมานั่นเอง   ดังรูปที่  1

http://upic.me/show/32405495

ในทางปฏิบัตินั้น การสื่อสารและทำธุรกรรมอย่างปลอดภัยบนอินเตอร์เน็ต จะใช้วิธีเข้ารหัสแบบ asymmetric ที่มีทั้ง private และ public key รวมกัน คือ ใช้สูตรคณิตศาสตร์สร้างข้อมูลชุดหนึ่ง ที่จะใช้กำกับเอกสารนั้นๆ (เรียกว่า message digest) แล้วเข้ารหัส message digest นี้ด้วย private key ของผู้ส่ง ได้เป็น "ลายเซ็นอิเล็กทรอนิคส์" (electronic signature) ซึ่งจะใช้พิสูจน์ได้ว่าใครเป็นผู้ส่ง จากนั้นส่งทั้งเอกสาร และลายเซ็นอิเล็กทรอนิคส์นี้มาด้วยกัน พอผู้รับได้รับ    ก็จะแยกข้อมูลทั้งสองออกจากกัน ทางหนึ่งเอาข้อความต้นฉบับ ไปคำนวณหา message digest ด้วยวิธีเดิม และอีกทางหนึ่งก็เอาลายเซ็นอิเล็กทรอนิคส์ ไปถอดรหัสด้วย public key ของผู้ส่งให้ได้กลับมาเป็น message digest ตามเดิม ถ้าได้ออกมาตรงกันก็แสดงว่า ข้อมูลนั้นมาจากผู้ส่งจริง และไม่ถูกคนอื่นแก้ไขระหว่างทาง (ดังรูป)

 3.  คุณสมบัติของ Digital Signature

 ของลายมือชื่อดิจิทัล นอกจากจะสามารถ ระบุตัวบุคคล และ เป็นกลไกการป้องกันการปฏิเสธความรับผิดชอบแล้ว ยังสามารถป้องกันข้อมูลที่ส่งไปไม่ให้ถูกแก้ไข หรือ หากถูกแก้ไขไปจากเดิมก็สามารถล่วงรู้ได้ กระบวนการสร้างและลงลายมือชื่อ ดิจิทัลมีขั้นตอนแสดงดังในรูปที่ 2  

1.เริ่มจากการนำข้อมูลอิเล็กทรอนิกส์ต้นฉบับที่จะส่งไปนั้นมาผ่านกระบวนการทางคณิตศาสตร์ที่เรียกว่า ฟังก์ชันย่อยข้อมูล (Hash Function) เพื่อให้ได้ข้อมูลที่สั้นๆ ที่เรียกว่า ข้อมูลที่ย่อยแล้ว (Digest) ก่อนที่จะทำการเข้ารหัส เนื่องจากข้อมูลต้นฉบับมักจะมีความยาวมากซึ่งจะทำให้กระบวนการเข้ารหัสใช้เวลานานมาก
 2.จากนั้นจึงทำการเข้ารหัสด้วยกุญแจส่วนตัวของผู้ส่งเอง ซึ่งจุดนี้เปรียบเสมือนการลงลายมือชื่อของผู้ส่งเพราะผู้ส่งเท่านั้นที่มีกุญแจส่วนตัวของผู้ส่งเอง และจะได้ข้อมูลที่เข้ารหัสแล้ว เรียกว่า ลายมือชื่อดิจิทัล
 3.จากนั้นก็ทำการส่งลายมือชื่อไปพร้อมกับข้อมูลต้นฉบับไปยังผู้รับ ผู้รับจะทำการตรวจสอบว่าข้อมูลที่ได้รับถูกแก้ไขระหว่างทางหรือไม่ โดยการนำข้อมูลต้นฉบับที่ได้รับมาผ่านกระบวนการย่อยด้วยฟังก์ชันย่อยข้อมูล จะได้ข้อมูลที่ย่อยแล้วอันหนึ่ง
 4.นำลายมือชื่อดิจิทัล มาทำการถอดรหัสด้วยกุญแจสาธารณะของผู้ส่ง ก็จะได้ข้อมูลที่ย่อยแล้วอีกอันหนึ่งแล้วทำการเปรียบเทียบ ข้อมูลที่ย่อยแล้วทั้งสองอัน ถ้าหากว่าเหมือนกัน ก็แสดงว่าข้อมูลที่ได้รับนั้นไม่ได้ถูกแก้ไข แต่ถ้าข้อมูลที่ย่อยแล้วแตกต่างกัน ก็แสดงว่าข้อมูลที่ได้รับถูกเปลี่ยนแปลงระหว่างทาง

 จากกระบวนการลงลายมือชื่อดิจิทัลข้างต้นมีข้อพึงสังเกตดังต่อไปนี้
 
 1. ลายมือชื่อดิจิทัลจะแตกต่างกันไปตามข้อมูลต้นฉบับและบุคคลที่จะลงลายมือชื่อ ไม่เหมือนกับลายมือชื่อทั่วไปที่จะต้องเหมือนกันสำหรับบุคคลนั้นๆ ไม่ขึ้นอยู่กับเอกสาร

 2. กระบวนการที่ใช้จะมีลักษณะคล้ายคลึงกับการเข้ารหัสแบบอสมมาตร แต่การเข้ารหัสจะใช้ กุญแจส่วนตัวของผู้ส่ง และ การถอดรหัส จะใช้ กุญแจสาธารณะของผู้ส่งซึ่งสลับกันกับ การเข้าและถอดรหัสแบบ    กุญแจอสมมาตรในการรักษาข้อมูลให้เป็นความลับ

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

http://upic.me/show/32405535

คำแนะนำ

ห้ามเปิดเผยกุญแจส่วนตัวของตนให้กับผู้อื่นทราบโดยเด็ดขาด

4. ข้อดี/ข้อเสีย
    

ข้อดี

    1.  เป็นการป้องกันการขโมยข้อมูลได้ระหว่างทาง
    2.  เป็นการยืนยันตัวผู้ส่งว่า  E –mail หรือข้อมูลชุดนั้น นั้นมาจากตัวผู้ส่งว่าเป็นตัวจริง
    3.  การรับรองความปลอดภัยที่แน่นอนได้
   4. เป็นการระบุตัวบุคคลได้แน่นอนจึงมั่นใจในข้อมูลที่ได้รับมาจากคนที่ตนรอ
   5. ป้องกันการแก้ไขข้อมูลระหว่างทาง
   6. ป้องกันการปฎิเสธการรับผิดชอบ

ข้อเสีย

 1.  เกิดความยุ่งยากมากขึ้นในการส่งข้อมูลเพราะต้องมีการเพิ่มกระบวนการในการส่งและรับข้อมูล
 2.  ต้องมีการจดทะเบียนขอใช้ Digital Signature  ซึ่งเป็นการเสียเวลา และทัพยากรต่างๆมากขึ้น

การประยุกต์งานเชิงสร้างสรรค์

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

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

ข้อมูลจาก : Nectec

ข้อมูลจาก ruk-com.in.th

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

;