S/MIME : เมื่ออีเมล์ติดเกราะ
Secure Multipurppose Internet Mail Extension (S/MIME) เป็นส่วนขยายมาตรฐานรูปแบบของ Internet e-mail (MIME) ทางด้านการรักษาความปลอดภัย โดยมีพื้นฐานมาจาก RSA Data Security ซึ่ง S/MIME และ PGP ต่างก็เป็นมาตรฐาน ทางอีเมล์บนอินเตอร์เนตเหมือนกัน แต่ S/MIME จะเป็นมาตรฐานเชิงอุตสาหกรรม ในทางพาณิชย์และการใช้งานในองค์กร ในขณะที่ PGP จะเป็นอีกทางเลือกหนึ่งสำหรับผู้ใช้ในระดับบุคคล
มาตรฐานที่ถูกเพิ่มขึ้น
แต่เดิมมาตรฐานรูปแบบของอินเทอร์เนตอีเมล์ จะถูกกำหนดตาม RFC 822 ซึ่งอธิบายถึง header ประกอบด้วย To,From และ Subject ยังมีข้อมูลเพื่อใช้ในการหาเส้นทางในการส่งอีเมล์ ผ่านอินเทอร์เนต และข้อมูลอื่นๆ เพื่ออธิบายลักษณะเนื้อหาของอีเมล์นั้นๆ โดยจะมองเนื้อหาอยู่ในรูปของรหัส ASCII ขนาด 7 บิต ต่อมาได้มีการเพิ่มเติมส่วนของ header ตาม RFC 1341,1521 และ 1522 เพื่ออธิบายถึงลักษณะเนื้อหาเพิ่มเติม รวมถึงรูปแบบและการเข้ารหัสในการส่ง ซึ่งเป็นต้นกำเนิด ของมาตรฐาน MIME
ตามมาตรฐาน MIME ได้กำหนดคีย์มาตรฐานขึ้นเพื่อใช้อธิบายถึงรูปแบบของเนื้อหาสำหรับมัลติมีเดียอีเมล์ ดังแสดงในตาราง มีข้อน่าสังเกตว่า ข้อมูลบางประเภทอย่าง วีดีโอ และ แอพพลิเคชั่น ซึ่งมีลักษณะเป็นไบนารี่จะต้องมีการแปลงข้อมูลในรูปรหัส ASCII ที่สามารถพิมพ์ได้ด้วยการแปลงที่มีชื่อว่า radix-64 หรือ base-64 เพื่อแปลงข้อมูลไบนารี่ ขนาด 3 octets ไปเป็นรหัส ASCII จำนวน 4 ตัว
ส่วนมาตรฐาน S/MIME ได้กำหนดชนิดของเนื้อหาเพิ่มเติม ดังแสดงในช่วงล่างของตาราง ทำให้มีลักษณะการใช้งานใหม่เพิ่มขึ้นถึง 4 อย่าง ดังต่อไปนี้
Enveloped data ตัวเนื้อจะถูกผนึกด้วยสิ่งที่เรียกว่า ซอง (envelope) ซึ่งก็คือข้อมูลที่ถูกเข้ารหัสอันประกอบไปด้วย เนื้อหา และ คีย์ สำหรับผู้รับเพื่อใช้ในการถอดรหัส
Signed data เริ่มจากการสร้างลายเซ็นดิจิตอล ด้วยการนำข้อมูลที่จะส่ง มาคำนวณเป็นค่าๆหนึ่งออกมาก่อน แล้วนำค่าที่ได้มาทำเป็นลายเซ็นด้วยการเข้ารหัสด้วยคีย์เฉพาะของผู้ส่ง เนื้อหาและลายเซ็นที่ได้มาจะถูกแปลงตามกระบวนการ base-64 และ S/MIME จะใช้ลายเซ็นในการยืนยันตัวข้อมูลว่ามาจากผู้ส่งที่ถูกต้องหรือไม่
Clear-signed จะมีการสร้างลายเซ็นดิจิตอลเหมือนกับแบบ Signed แต่เฉพาะส่วนลายเซ็นเท่านั้นที่จะถูกแปลงโดยกระบวนการ base-64 ทำให้ใครก็สามารถดูเนื้อความ แต่เฉพาะ S/MIME เท่านั้นที่สามารถตรวจสอบได้
Signed & Enveloped เป็นลักษณะผสมของการใช้ลายเซ็นดิจิตอลและการเข้ารหัส ทำให้สามารถสร้างลายเซ็นดิจิตอลจากข้อมูลที่ถูกเข้ารหัสแล้ว หรือการเข้ารหัสข้อมูลทั้งแบบ signed และ clear-signed
ซีเคียวริตี้ของเนื้อความ
สำหรับการใช้งานในลักษณะของ envelope S/MIME กำหนดให้ใช้กระบวนการ triple-DES (3DES) ในการเข้ารหัส และ EIGamal ในการสร้างคีย์สาธารณะ โดย S/MIME จะเริ่มจากการสุ่มรหัสลับเทียมขึ้นมาค่าหนึ่ง ซึ่งค่านี้จะใช้ในการเข้ารหัสเนื้อความด้วยกระบวนการ 3DES (หรือกระบวนการอื่นๆ) และรหัสลับเทียมนี้จะถูกเข้ารหัสอีกครั้งด้วยรหัสสาธารณะของผู้รับ เมื่อข้อมูลมาถึงปลายทาง ผู้รับจะใช้รหัสส่วนตัวในการถอดรหัสลับเทียมที่ถูกเข้ารหัสไว้ และใช้รหัสลับเทียมที่ได้ในการถอดรหัสเนื้อความอีกทีหนึ่ง
แต่ถ้าหากมีการใช้รหัสลับซ้ำกันในการเข้ารหัสเนื้อความ อาจจะมีโอกาสที่จะถูกลักลอบถอดรหัสได้ง่าย ดังนั้นทุกๆครั้งที่มีการส่งเนื้อความ S/MIME จะทำการสุ่มรหัสลับเทียมขึ้นมาใหม่ทุกครั้งและเรียกรหัสที่ได้ว่า session key ซึ่งจะถูกส่งไปกับเนื้อความดังรูปแสดงถึงการสร้างข้อมูลแบบ signed และ enveloped ซึ่งส่ง session key แนบไปด้วย
สำหรับการทำงานในลักษณะข้อมูลแบบ signed กับ clear-signed วิธีการที่ใช้ในการสร้างลายเซ็นจะใช้ Digital Signature Standard (DSS) และ Secure Hash Algorithm revision 1 (SHA-1) เป็นหลัก โดย SHA-1 จะทำการคำนวณรหัสความยาว 160 บิต จากเนื้อความ ซึ่งรหัสดังกล่าวจะมีลักษณะเฉพาะขึ้นกับตัวเนื้อความ ดังนั้นการเปลี่ยนแปลงใดๆที่จะเกิดขึ้นกับเนื้อความ จึงเป็นการยากที่จะทำให้รหัสที่คำนวณใหม่ตรงกับรหัสเดิม รหัสที่ได้จากกระบวนการดังกล่าวนี้ จะถูกเข้ารหัสอีกครั้งหนึ่งด้วยรหัสลับเฉพาะของผู้ที่ส่งตามกระบวนการ DSS ผลลัพธ์ที่ได้จะอยู่ในลักษณะ base-64 ซึ่งจะถูกส่งไปกับเนื้อความ
เมื่อทางฝ่ายรับได้รับข้อมูล จะใช้รหัสสาธารณะของผู้ส่งทำการถอดรหัสความยาว 160 บิต ที่ถูกส่งมาพร้อมกับเนื้อความ และจะถูกนำมาเปรียบเทียบกับค่าที่ได้จากการคำนวณเนื้อความที่รับด้วยกระบวนการ SHA-1 ถ้าตรงกันแสดงว่าการรับ-ส่งถูกต้อง จะเห็นได้ว่าในการสร้างลายเซ็นดิจิตอล จะคำนวณจากรหัสความยาว 160 บิต ซึ่งได้จากเนื้อความ ทำให้เร็วกว่าการคำนวณลายเซ็นโดยตรงจากเนื้อความ
การออกใบรับรองคีย์สาธารณะ
ผู้ที่มีอำนาจในการออกใบรับรองและจะสร้างลายเซ็นดิจิตอลด้วยคีย์ส่วนตัวของผู้ที่ออกใบรับรอง เมื่อผู้รับได้รับข้อมูลจะใช้คีย์สาธารณะของผู้ออกใบรับรอง ในการตรวจสอบความถูกต้องของใบรับรอง ซึ่งมาตรฐานที่ S/MIME ใช้ในการออกใบรับรองจะเป็นไปตามข้อกำหนด x.509v3 ซึ่งเป็นมาตรฐานเดียวกับ IPSec และ SSL และมาตรฐาน S/MIME
แม้ว่า S/MIME จะเป็นเทคโนโลยีที่ค่อนข้างใหม่แต่ก็นเป็นเทคโนโลยีที่ได้รับการยอมรับจากผู้ค้าหลายราย ซึ่งเหตุผลที่ได้รับการยอมรับอย่างรวดเร็วนี้เป็นผลมาจากความต้องการความน่าเชื่อถือได้ของอีเมล์ในงานทางธุรกิจและการส่งเอกสารสำคัญ
ประเภทและข้อกำหนดต่างๆของ MIME
TYPE SUBTYPE
คำอธิบาย
Text Plain ข้อมูลที่ไม่ได้จัดรูปแบบอาจจะอยู่ในรูป ASCII หรือ
ISO 8859
Enriched ข้อมูลที่ได้รับการจัดรูปแบบ
Multipart Mixed ข้อมูลแต่ละส่วนต่างก็เป็นอิสระต่อกันแต่ถูกส่งไปด้วย
กัน และจะปรากฏต่อผู้รับในลำดับเดียวกับที่อยู่ในเมล์
Parallel ต่างกับแบบ Mixed ตรงที่ไม่ต้องมีลำดับในการส่ง
Alternative ข้อมูลที่ส่งบางส่วนจะมีหลายเวอร์ชั่นและจะแสดงส่วนที่
ใหม่ที่สุด
Digest เหมือนกับแบบ Mixed แต่ค่าของ type/subtype จะถูก
กำหนดเป็น Message/RFC822
Message RFC822 ใช้รองรับข้อมูลที่มีรูปแบบตาม RFC822
Partial อนุญาติให้มีการแบ่งเมล์ส่งออกเป็นส่วนย่อยได้
External-body จะเป็นตัวชี้ไปยังข้อมูลอีกที
Image jpeg ภาพ JPEG ที่เข้ารหัสตามกระบวนการ JFIF
Gif ภาพตามมาตรฐาน GIF
Video mpeg วีดีโอตามมาตรฐาน MPEG
Audio Basic single-channel,8-bits ISDN ,ใช้การเข้ารหัสแบบ
(-law มีอัตราการสุ่ม 8 khz )
Application PostScript Adobe Postscript
Octet-Stream ข้อมูลแบบ binary ขนาด 8 บิต
TYPE SUBTYPE S/MIME parameter DESCRIPTION
Multipart Signed ข้อมูลในลักษณะ clear-signed แบ่งเป็น สองส่วน
คือเนื้อความและลายเซ็น
Application pkcs7-mime SignedData ข้อมูลที่ถูก signed ตามแบบ S/MIME
pkcs7-mime EnvelopedData ข้อมูลที่ถูกเข้ารหัส
pkcs7-mime Degenerate SignedData มีเฉพาะคีย์รับรองสาธารณะ
pkcs7-signature ยังไม่ประยุกต์ใช้ signed บอกชนิดของลายเซ็นแบบ
Multipart
pkcs7-mime ยังไม่ประยุกต์ใช้ การร้องขอการออกใบรับรอง

