Cryptography Application 235034 Security in Computer Systems and Networks Cryptography Application Lec. Sanchai Yeewiyom School of Information and Communication Technology University of Phayao
การประยุกต์ใช้การเข้ารหัสข้อมูล Authentication Mail Security Web Security Remote Login Security Network Security
Authentication ใช้ในการสร้างความเชื่อมั่น หรือยืนยันความเป็นตัวตนของ ผู้นั้น Password Kerberos
Password ระบบส่วนใหญ่ใช้รหัสผ่านในการป้องกันและพิสูจน์ทราบตัวตน จะไม่เก็บข้อมูลรหัสผ่านในรูปแบบ Plain Text แต่จะเข้ารหัสข้อมูลก่อนเก็บ Exp. Linux, Unix ในไฟล์ที่เก็บข้อมูลการ Login จะมีการเข้ารหัสข้อมูล Password
Password แต่ละบรรทัด ประกอบด้วย ชื่อล็อกอิน, รหัสผ่าน, หมายเลขประจำตัวผู้ใช้, หมายเลขกลุ่ม, ชื่อผู้ใช้, Home Directory, Program Shell รหัสผ่านจะถูกเข้ารหัสด้วย DES โดย Key ที่ใช้เข้ารหัสจะมาจากตัวอักษร 8 ตัวแรกของรหัสผ่านที่ใช้
Kerberos ออกแบบและพัฒนาโดย Needham และ Schroeder จาก Massachusetts Institute of Technology (MIT) เป็น Protocol สำหรับใช้พิสูจน์ความเป็นตัวตนผ่านเครือข่ายแบบ Single Sign-On (พิสูจน์ตัวตนเพียงครั้งเดียวแต่สามารถเข้าใช้บริการของ Serverได้มากกว่าหนึ่งบริการ) เป็นสถาปัตยกรรมแบบ Client/Server ใช้การเข้ารหัสแบบ Asymmetric (Secret Key) Cryptography
Kerberos จะมีการสร้าง Login Session เมื่อป้อน Username และ Password ถูก ในระหว่าการใช้งาน Resource ของ Server จะมีการตรวจสอบ Session เป็นระยะ ๆ เนื่องจาก Login Session มีอายุการใช้งาน
Kerberos หลักการทำงานของ Kerberos ประกอบด้วย 3 ส่วนหลัก คือ ส่วนควบคุมจัดการดูแลเกี่ยวกับบริการและคีย์ หรือ Key Distribution Center (KDC) คือตัวกลางที่คอยควบคุม กำหนดสิทธิการขอใช้บริการต่างๆ บนระบบของผู้ใช้ (Client) ส่วนของผู้ใช้ (Client) คือ ผู้ใช้ โฮสต์ หรือ โปรแกรมประยุกต์ที่สามารถขอ Ticket จาก KDC ได้ ส่วนของ Application Server คือ Server ที่ให้บริการในระบบ เช่น telnet หรือ ftp ที่สนับสนุนการพิสูจน์ตัวตนบนระบบ ด้วย Kerberos
Kerberos ในการเข้าใช้ Kerberos ครั้งแรกผู้ใช้ต้องทำการร้องขอ Ticket ผ่านโปรแกรม kinit โดย Principal (ชื่อบัญชีผู้ใช้หรือชื่อบริการสำหรับใช้ในการพิสูจน์ตัวตน) ของผู้ใช้จะถูกส่งไปยัง Kerberos Server ซึ่งภายในประกอบด้วย Authentication Service (AS) และ Ticket Granting Service (TGS)
Kerberos AS จะทำการตรวจสอบว่า Principal นี้มีอยู่ใน Kerberos Database หรือไม่ ถ้ามี Kerberos Server จะทำการสร้าง Ticket Granting Ticket (TGT) จาก TGS และทำการเข้ารหัส TGT โดยใช้ Secret Key ของผู้ใช้แล้วส่งกลับมาให้ผู้ใช้ จากนั้น ผู้ใช้จะทำการถอดรหัสเพื่อให้ได้ TGTโดยใช้ Secret Key ของตน และจะเก็บ TGT ไว้ เพื่อใช้เป็นหลักฐานแสดงว่าผู้ใช้ได้รับการพิสูจน์ตัวตนแล้ว
การเข้าใช้ Application server หลังจากนั้น ผู้ใช้จะส่ง TGT ไปยัง KDC เมื่อได้รับ TGT แล้ว KDC จะทำการตรวจสอบ TGT ถ้าถูกต้องก็จะให้ Service Ticket กับผู้ใช้ สำหรับการเข้าใช้บริการที่ต้องการ ซึ่ง Service Ticket นี้จะถูกเข้ารหัสไว้ด้วยSecret Key ของบริการบน Application Server ที่ต้องการเข้าใช้บริการ และเข้ารหัสอีกชั้นด้วย Secret Key ของผู้ใช้
การเข้าใช้ Application server เมื่อผู้ใช้ได้รับ Service Ticket ผู้ใช้จะทำการถอดรหัสชั้นแรกโดยใช้ Secret Key ของผู้ใช้ จากนั้นก็จะส่ง Service Ticket ที่ถอดรหัสได้ต่อไปให้ Application Server ซึ่งจะทำการถอดรหัสด้วย Secret Key ของบริการบน Application Server ซึ่งมีการเก็บข้อมูล Secret Key ของบริการไว้ใน Key Tables บน Application Server ถ้าสามารถถอดรหัสได้ ผู้ใช้ก็สามารถเข้าใช้บริการได้
Mail Security การรับส่ง e-Mail โดย SMTP, POP3, IMAP จะไม่มีการ เข้ารหัส เป็นหน้าที่ของผู้ใช้ที่ต้องหาวิธีการเข้ารหัส เช่น PGP (Pretty Good Privacy) S/MIME (Secure/Multipurpose Internet Mail Extensions)
PGP (Pretty Good Privacy) เป็นวิธีเข้ารหัสและยืนยันตัวตน โดยมากนิยมใช้เข้าและถอดรหัส และลงลายมือชื่อในการส่งอีเมล์ อาศัยการเข้ารหัสทั้งแบบ Symmetric Key และ Asymmetric Key สร้างโดย Phil Zimmermann ในปี 1991 เป็นที่รู้จักในฐานะ Web of Trust ซึ่งเป็นการยืนยัน Digital Signature ว่าเป็นลายมือชื่อของบุคคลนั้นจริง ๆ โดยให้บุคคลที่สามซึ่งมีความน่าเชื่อถือมารับรองยืนยัน Digital Signature นั้นอีกชั้นหนึ่ง
http://www.rainydayz.org/content/822-verifying-signature
http://www. securitygeneration http://www.securitygeneration.com/security/using-gpgmail-to-encrypt-email/
S/MIME Secure/Multipurpose Internet Mail Extensions Public Key Encryption พัฒนาโดย RSA Data Security Inc. เมื่อปี 1995 จากนั้นถูกพัฒนาต่อโดย IETF (Internet Engineering Task Force) ในปี 2002 เป็นมาตรฐานอุตสาหกรรมในการเข้ารหัส Client e-Mail Integrate เข้าไปกับโปรแกรม e-Mail เช่น Outlook, Outlook Express, Lotus Notes, Mozilla Mail, iCloud เป็นต้น
S/MIME ก่อนการใช้งานจำเป็นต้องมีการติดตั้ง Key และ Certificate จาก CA (Certificate Authority) การเข้ารหัส e-Mail ของผู้ส่งจะต้องมี Certificate ของผู้รับด้วยเพื่อยืนยันความถูกต้องของผู้รับ
Digital signing and encrypting of an e-mail message Decrypting an e-mail message and verifying a digital signature https://technet.microsoft.com/en-us/library/aa995740%28v=exchg.65%29.aspx
Web Security การสื่อสารบน WWW ผ่านทางโพรโตคอล HTTP ข้อมูลจะไม่ได้มีการเข้ารหัส ซึ่งได้มีการพัฒนาโพรโตคอลขึ้นมาใหม่ได้แก่ S-HTTP HTTPS SSL/TLS
S-HTTP Secure Hypertext Transfer Protocol พัฒนาโดย Enterprise Integration Technology (EIT) มีกลไกในการเข้ารหัสและถอดรหัสในตัว มีการกลไกการทำงานที่เชื่อมต่อกับโพรโตคอล TCP ใน Transport Layer ใช้การเข้ารหัสแบบ RSA ไม่ค่อยได้รับความนิยม
HTTPS Hypertext Transfer Protocol Secure ถูกพัฒนาโดยบริษัท Netscape เมื่อปี ค.ศ. 1994 ใช้รักษาความลับของข้อมูลขณะรับ-ส่ง และเพื่อให้แน่ใจว่า ข้อมูลนั้นถูกรับ-ส่งระหว่างผู้รับและผู้ส่งตามที่ระบุไว้จริง ทำงานอยู่บนพอร์ต 443 เพิ่มข้อมูลในส่วนการระบุตัวผู้ส่ง (Authentication) และการเข้ารหัสข้อมูล (Encryption) ภายใน HTTP กับ TCP ส่วนใหญ่ใช้งานใน Web e-Commerce หรือการทำธุรกรรมต่าง ๆ เช่น การลงทะเบียน
http://productivewise.com/1662
SSL/TLS Transport Layer Security (TLS) หรือชื่อเดิม Secure Sockets Layer (SSL) SSL พัฒนาขึ้นโดย Netscape ใช้ในการเข้ารหัสและยืนยันตัวตนระหว่าง Web Server และ Client หลักการ เริ่มจากการเจรจา ระหว่าง Web Server และ Client เพื่อกำหนด Algorithm และ Session Key ที่ใช้ เมื่อเรียบร้อยจึงจะเริ่มสื่อสารกัน ทำงานที่ Transport Layer
SSL/TLS SSL ใช้การเข้ารหัสแบบ RSA และใช้ X.509 Certificate ในการยืนยันตัวตนของ Web Server ในช่วงหลังพบว่า SSL เริ่มไม่ปลอดภัย IETF จึงมีการพัฒนา TLS ขึ้นมาแทน TLS เพิ่มเติมการทำงานของ SSL ในส่วนของการแลกเปลี่ยน Key และ Digital Signature
SSL/TLS บริการของ SSL Server Authentication Client Authentication Encrypted Session (Symmetric Encryption)
หลักการทำงานของ SSL Browser ส่ง Request ไปยัง Web Server เพื่อขอทราบ SSL Version และ Algorithm ที่ใช้เข้ารหัส Web Server จะส่ง SSL Version, Algorithm ที่ใช้ และ Digital Certificate ที่ออกโดย CA ที่ Client เชื่อถือ รวมถึงส่ง Public Key ของ Web Server มาให้ Browser Browser จะตรวจสอบ Digital Certificate กับ CA ว่าเชื่อถือได้หรือไม่ ถ้าเชื่อถือได้ก็จะใช้ Public Key ของ CA ถอดรหัสใบรับรองเพื่อให้ได้ Public Key ของ Web Server
หลักการทำงานของ SSL Browser สร้าง Symmetric Key แล้วใช้ Public Key ของ Web Server เข้ารหัส แล้วส่งกลับไปยัง Server Browser ส่งข้อความแจ้ง Server ว่าการส่งข้อมูลต่อจากนี้จะใช้ Key ที่ส่งไปให้ในการเข้ารหัสและถอดรหัส และแจ้งสิ้นสุดการเจรจา (Handshaking) ทางฝั่ง Server ก็จะทำเช่นเดียวกันกับฝั่ง Client คือมีการส่ง Session Key ให้ และแจ้งสิ้นสุดการเจรจา เริ่มรับส่งข้อมูลโดยใช้ Session Key ที่กำหนด
หลักการทำงานของ SSL
Remote Login Security Secure Shell (SSH) ใช้ในการเข้ารหัสข้อมูลที่รับส่งระหว่าง Client-Server ส่วนใหญ่ใช้ใน Linux, Unix สำหรับการ Remote Login ปัจจุบันใช้ Version 2 ที่ถูกกำหนดโดย IETF ทำงานบน TCP Port 22 https://thelowedown.files.wordpress.com/2008/08/ssh-tunneling.png
Remote Login Security หลักการทำงาน : เริ่มจาก Client เชื่อมต่อไปยัง Server เพื่อตกลงเกี่ยวกับ Secret Key ที่จะใช้ โดยจะใช้ Algorithm แบบ Diffie-Hellman Key Exchange จากนั้นนำ Session Key ที่ได้มาเข้ารหัสโดยใช้ Algorithm แบบ Blowfish ถูกนำมาใช้งานแทน telnet โปรแกรม SSH ที่นิยมใช้ เช่น Putty, OpenSSH, OpenTerm
Network Security เป็นการเข้ารหัสในส่วนของ Lower Layer ของ OSI ซึ่งมีโพรโตคอล Virtual Private Network (VPN) ช่วยจัดการให้ Exp. VPN • PPTP (Point-to-Point Tunneling Protocol) • L2F (Layer 2 Forwarding) • L2TP (Layer 2 Tunneling Protocol) • IPSec (IP Security)
Virtual Private Network (VPN) เครือข่ายส่วนบุคคลที่มีการติดต่อเชื่อมโยงโดยอาศัยเส้นทางจากเครือข่ายสาธารณะ (โดยทั่วไปคือ Internet) ในการเชื่อมต่อกัน การส่งข้อมูลที่เป็นเครือข่ายส่วนตัว (Private Network) จะมีการเข้ารหัสข้อมูลก่อนการส่ง เพื่อสร้างความปลอดภัยให้กับข้อมูล
Virtual Private Network (VPN) ส่งข้อมูลไปตามเส้นทางที่สร้างขึ้นเสมือนกับอุโมงค์(Tunneling) ที่อยู่ภายในเครือข่ายสาธารณะ (Public Network) ซึ่งจะถูกสร้างขึ้นจากจุดต้นทางไปถึงปลายทางระหว่างผู้ให้บริการ VPN กับผู้ใช้บริการ
VPN http://monosoft.co.th/vpn/
การทำงานของ VPN Authentication VPN Encryption Tunneling Firewall
การทำงานของ VPN Authentication VPN : เป็นการตรวจสอบและพิสูจน์เพื่อยืนยันผู้ใช้งาน หรือยืนยันข้อมูล เป็นขั้นตอนแรกในการทำงาน เมื่อมีการพิสูจน์เพื่อยืนยันผู้ใช้งานแล้ว จึงจะสามารถสร้างอุโมงค์หรือ Tunnel ได้ Encryption : เป็นการเข้ารหัสข้อมูล ซึ่งข้อมูลที่ส่งนั้นจะส่งไปเป็น Packet และมีการเข้ารหัสข้อมูลก่อนการส่งเสมอทั้งนี้เพื่อรักษาความปลอดภัยให้กับข้อมูลและป้องกันการโจรกรรมจากบุคคลนอกองค์กร
การทำงานของ VPN Tunneling : เป็นวิธีการสร้างอุโมงค์เพื่อเป็นช่องทางในการส่งข้อมูลระหว่างผู้ใช้กับองค์กรหรือระหว่างองค์กรทั้งสององค์กรที่มีการเชื่อมต่อกัน เป็นหน้าที่ของอุปกรณ์เชื่อมต่อ Firewall : มีหน้าที่ในการให้อนุญาตและไม่อนุญาตผู้ที่ต้องการเข้ามาใช้งานในระบบเครือข่าย
รูปแบบบริการ VPN บริการ VPN แบ่งออกเป็น 3 รูปแบบ 1. Intranet VPN 2. Extranet VPN 3. Access VPN
รูปแบบบริการ VPN 1. Intranet VPN: เป็นรูปแบบในการเข้าถึงเครือข่าย VPN ที่ใช้เฉพาะภายในองค์กรเท่านั้น อาทิ การต่อเชื่อมเครือข่าย ระหว่างสำนักงานใหญ่ในกรุงเทพฯ และสาขาย่อย ในต่างจังหวัด เสมือนกับ การทดแทน การเช่าวงจร (Leased Line) 2. Extranet VPN: เป็นรูปแบบในการเข้าถึงเครือข่าย ที่คล้ายกับ Intranet VPN แต่มีการขยายวงออกไป ยังกลุ่มลูกค้า Supplier และ Partner
รูปแบบบริการ VPN 3. Access VPN: เป็นรูปแบบในการเข้าถึงเครือข่าย VPN จากอุปกรณ์เคลื่อนที่ต่างๆ ซึ่งสามารถเข้าถึงเครือข่ายได้จากระยะไกล เช่น พนักงานที่ต้องเดินทางบ่อยๆ
รูปแบบโพรโตคอลของการทำ Tunnel PPTP (Point - to - Point Tunneling Protocol) L2F (Layer 2 Forwarding protocol) L2TP (Layer 2 Tunneling Protocol) IPSec (IP Security)
PPTP (Point - to - Point Tunneling Protocol) เป็น Protocol แรกที่ใช้สร้าง VPN นิยมใช้กับระบบ Dial-Up พัฒนาโดย Microsoft และติดตั้งใน Windows โดยเป็นส่วนต่อเติมของ Protocol PPP ใช้งานได้ง่าย ทำงานบน Data Link Layer สามารถรองรับ Protocol อื่นนอกจาก IP เช่น IPX, NetBEUI ได้ด้วย
PPTP (Point - to - Point Tunneling Protocol) จุดอ่อน คือ การเข้ารหัสยังไม่แข็งแรง และไม่เป็นแบบ Token Based Authentication (หลังจากผ่าน Authentication User จะได้รับ Token เพื่อใช้ในการเข้าถึง Resource ต่างๆ โดยไม่ต้อง Authentication อีก จนกว่าจะหมด Session : Token Based Authentication)
L2F (Layer 2 Forwarding protocol) Protocol พัฒนาโดยบริษัท CISCO System ใช้กับระบบ Dial-Up ทำงานบน Layer 2 โดยทำงานร่วมกับ Frame Relay หรือ ATM รวมถึง X.25 ในการทำ Tunnel ระบบการป้องกันของ L2F มีการจัดเตรียมบางอย่างที่ PPTP ไม่มี เช่น การ Authentication ของปลายทั้ง 2 ข้างของ Tunnel รองรับการเชื่อมต่อได้มากกว่าหนึ่งคู่สื่อสารในท่อเดียว
L2TP (Layer 2 Tunneling Protocol) ออกแบบโดย IETF ใช้กับระบบ Dial-Up การทำงานคล้ายๆกับ PPTP ต่างกันตรง L2TP จะใช้ User Datagram Protocol (UDP) ในการตกลงรายละเอียดในการรับส่งข้อมูลและสร้าง Tunnel เป็นการนำเอาข้อดีของทั้งสอง Protocol รวมไว้ด้วยกัน โดยนำ Protocol ในระดับ Layer 2 หรือ PPP มาหุ้ม Packet ใน Layer 3 ก่อนที่จะหุ้มด้วย IP Packet อีกชั้น ดังนั้นจึงใช้วิธีพิสูจน์แบบ PPP นอกจากนั้น L2TP ยังสนับสนุนการทำ Tunnel หลาย ๆ อันพร้อมกันบน Client เพียงตัวเดียว
IPSec (IP Security) ทำงานบน Network Layer ออกแบบมาสำหรับการเข้ารหัสข้อมูลของ Internet Protocol ใช้มาตรฐานต่างๆ เพื่อรักษาความปลอดภัย เช่น Diffie–Hellman Key Exchange, Public Key Cryptography, DES, Hash Algorithm, Digital Certificate การจัดการแลกเปลี่ยน Key มี 2 วิธี จัดการโดย Admin : ถ้าผู้ใช้งานน้อย IKE (Internet Key Exchange) : ถ้ามีผู้ใช้มาก
IPSec (IP Security) เหมาะสมกับการทำงาน VPN มากที่สุดเนื่องจากมีการรักษาความปลอดภัยดีที่สุด ข้อเสีย คือ ใช้งานกับ Internet Protocol (IP) ได้เพียงอย่างเดียว
IPSec (IP Security) รูปแบบ Packet ของ IPSec ประกอบด้วย 2 ส่วน AH (Authentication Header) ช่วยดูแลเรื่อง ความคงสภาพ (Integrity) ของข้อมูล และการพิสูจน์ตัวตนของผู้ส่ง (Authentication ) ESP (Encapsulating Security Payload) ช่วยดูแลเรื่อง ความคงสภาพ (Integrity) ของข้อมูล และการพิสูจน์ตัวตนของผู้ส่ง (Authentication ) และ ความลับของข้อมูล (Confidentiality)
Authentication Header : AH Next Header ใช้เพื่อบอกให้ทราบว่ากำลังใช้รูปแบบใดในการใช้งาน IPSec ระหว่าง Tunnel mode ค่าจะเป็น 4 ส่วน Transport mode ค่าจะเป็น 6 http://www.ipsec-howto.org/x202.html
Authentication Header : AH Payload length บอกความยาวของข้อมูลที่ต่อท้าย Header ตามด้วย Reserved จำนวน 2 ไบต์ Security Parameter Index (SPI) กำหนด Security Association สำหรับใช้ในการถอดรหัส Packet เมื่อถึงปลายทาง Sequence Number ขนาด 32 บิตใช้บอกลำดับของ Packet Hash Message Authentication Code (HMAC) เป็นค่าที่เกิดจาก Hash Function เช่น MD5 หรือ SHA-1 เป็นต้น
Encapsulated Security Payload : ESP http://www.ipsec-howto.org/x202.html Security Parameter Index (SPI) กำหนด Security Association (SA) ระบุ ESP ที่สอดคล้องกัน
Encapsulated Security Payload : ESP Sequence Number ระบุลำดับของ Packet Initialization Vector (IV) ใช้ในกระบวนการเข้ารหัสข้อมูล ป้องกันไม่ให้สอง Packet มีการเข้ารหัสที่ซ้ำกันเกิดขึ้น Data คือข้อมูลที่เข้ารหัส Padding เป็นการเติม Data เพื่อให้ครบจำนวนไบต์ที่เข้ารหัสได้ Padding Length บอกความยาวของ Padding ที่เพิ่ม Next Header กำหนด Header ถัดไป HMAC ค่าที่เกิดจากฟังก์ชันแฮชขนาด 96 บิต