1. IT346 Information System Security
Week 5-1: PKI
อ.พงษ์ศกดิ์ ไผ่แดง
ั
Faculty of Information Technology
Page
2. Digital Certificate
ในการใช้ Secret Key นัน การแจกจ่าย Key เป็ นส่วนสาคัญมาก ดังนันจึง
้
้
มีระบบที่ใช้สาหรับการแจก Key เรียกว่า KDC (Key Distribution Center)
ในการใช้ Public Key ก็จะใช้ Certificate Authority (CA) เป็ นตัวกลาง
การแจกจ่ายพับ Public Key โดยที่ CA จะรับรองว่า Public Key นี้ เป็ นของ
ใคร
หน้าที่ของ CA
‣ ตรวจสอบความมีตวตนของบุคคลหรือระบบนันๆ
ั
้
‣ เมื่อ CA ตรวจสอบว่ามีตวตนแล้ว CA ก็จะสร้างใบรับรองอีเล็กทรอนิกส์
ั
(Digital Certificate) ให้กบผูรองขอ
ั ้้
Faculty of Information Technology
Page
2
3. Digital Certificate
Digital Certificate ประกอบด้วย Public Key ของบุคคลนันๆ พร้อม
้
หมายเลขเฉพาะที่ใช้ระบุบุคคลหรือระบบนันๆ (เช่น ชื่อ-นามสกุลและ
้
หน่ วยงาน หรือชื่อเว็บไซต์) แล้วข้อมูลดังกล่าวนี้ จะถูกเข้าเซ็นด้วย
Digital Certificate
Digital Signature ของ CA
Owner’s Info
เมื่อมีการสื่ อสารกัน แทนที่ค่สนทนาจะ
ู
Owner’s public key
แลกเปลี่ ยน Public Key กัน ทังสองก็จะ
้
แลกเปลี่ ยน Digital Certificate แทน
ซึ่งเมื่อฝ่ ายใดฝ่ ายหนึ่ งได้รบ Digital
ั
Certificate ของอีกฝ่ ายหนึ่ งมา ก็จะตรวจสอบ Digital Certificate นันโดย
้
ใช้ Public Key ของ CA เพื่อตรวจสอบว่าเป็ นคียท่ีได้มาเป็ นของคู่สนทนา
์
จริง
Issuer’s Info
Issuer’s signature
Faculty of Information Technology
Page
3
4. Public Key Infrastructure (PKI)
ระบบ public key cryptosystem จะเชื่ อถื อได้ก็ต่อเมื่อเราสามารถผูก
public/private key pair เข้ากับตัวบุคคลที่ถกต้องได้
ู
เราใช้ certificate ซึ่งออกโดย Trusted Third Party (TTP) เป็ นเครื่องมือ
ในการผูก public/private key pair เข้ากับ identity ของตัวบุคคล โดยใน
certificate จะระบุขอมูลเกี่ยวกับเจ้าของ certificate พร้อมทัง public key
้
้
ของเจ้าจอง certificate นันๆ
้
จากนัน TTP ทาการ sign ตัว certificate ด้วย private key ของ TTP เอง
้
เพื่อรับรองข้อมูลดังกล่าว
เราสามารถหา public key ของบุคคลต่างๆได้จาก public directory หรือ
บุคคลนันๆอาจส่ง certificate ของตนมาให้โดยตรง
้
Subject ID Public Key Expiration Date Issuer (TTP ID)
Certificate Structure
Faculty of Information Technology
…
TTP Signature
Page
4
5. Public Key Infrastructure (PKI)
Certificate Authority (CA) คือ TTP ที่ออก certificate ให้กบบุคคลหรือ
ั
องค์กรต่างๆ
เนื่ องจากจานวน certificate มีมากเกินกว่าที่ CA 1 หน่ วยงานจะให้บริการ
ได้ และหากมี CA จานวนมาก ผูท่ีตองการ verify certificate ที่ได้รบมา
้ ้
ั
จะต้องมี public key ของ CA แต่ละอัน ทาให้ยากต่อการจัดการ เราจึง
จัดการ CA ให้มีโครงสร้างแบบลาดับชัน (hierarchy) เรียกว่า Public Key
้
Infrastructure (PKI)
‣ ส่วนบนสุดคือ Root CA ทาหน้าที่ออก certificate ให้กบ CA อื่นๆในระบบ
ั
‣ ผูใช้ในระบบต้องการแค่ถือ public key ของ Root CA แล้วเมื่อต้องการมอบ
้
certificate ของตนให้คนอื่น ก็ส่ง certificate ของ CA ทังหมดที่อยู่ใน path
้
ระหว่าง CA ที่ออก certificate ของตนขึ้นไปถึง Root CA ไปด้วย
Faculty of Information Technology
Page
5
6. Public Key Infrastructure (PKI)
Root CA
CertCA1
CA1 PKCA1 Sigroot
CA1
CertAlice
Alice PKAlice SigCA1
CA2
CA2.1
CertCA2
CA2 PKCA2 Sigroot
CA2.2
CertCA2.2
CA2.2 PKCA2.2 SigCA2
CertBob
Bob PKBob SigCA2.2
Alice Bob: message || CertAlice || CertCA1
Bob Alice: message || CertBob || CertCA2.2 || CertCA2
หาก tree สูง การส่งรายการ certificate ของ CA ระหว่างทางทังหมดอาจทาได้ยาก อาจแก้ปัญหา
้
โดยในแต่ละฝ่ ายเก็บ copy ของ certificate ของ CA ที่เคยได้รบแล้วไว้ ดังนันคนส่งก็ส่งแต่ hash
ั
้
ของ certificate ของ CA แล้วให้ผรบหา certificate ที่ match เอง ผูรบจะขอ certificate ของ CA
ู้ ั
้ั
เพิ่มจากผูส่งก็ต่อเมื่อพบว่าตนเองไม่เคยมี certificate ดังกล่าวมาก่อน
้
Faculty of Information Technology
Page
6
8. การจัดการ Certificates ใน Windows
Internet Explorer (IE) เก็บและจัดการ Certificates สาหรับ Microsoft
Applications ทังหลาย
้
‣ สามารถตรวจสอบ Certificates ที่
เครื่องเราเก็บอยู่ โดยเปิ ด IE ไปที่
Tools Internet Options
Faculty of Information Technology
Page
9. การจัดการ Certificates ใน Windows
ในส่วนของ Trusted Root CA จะเก็บ Certificate ของ Root CA ที่เรา
เชื่อถือ
‣ หาก Certificate ที่เราได้รบจาก
ั
Web Site ถูก Sign โดย Root CA
เหล่านี้ เป็ นการรับรองว่า Web Site
นัน เป็ น Web Site ที่เราต้องการ
้
เข้าถึงจริง
่
CA ที่เป็ นที่ยอมรับโดยทัวไป เช่น
‣ Verisign
‣ GeoTrust
‣ Thawte Consulting
Faculty of Information Technology
Page
9
14. X.509 PKI
Root CA
CertCA1 CA1
CertAlice
CA2
CA2.1
CertCA2
CA2.2 CertCA2.2
CertBob
X.509 แนะนาโครงสร้าง PKI แบบเป็ นลาดับชัน โดยมี Root CA อยู่
้
ลาดับบนสุด แต่อย่างไรก็ตามโครงสร้าง PKI ไม่จาเป็ นต้องอยู่ในรูปแบบ
นี้ เสมอไป
‣ ทังระบบ อาจไม่ได้มี Root CA เดียว
้
‣ CA ต่างๆในระบบอาจเชื่ อถือกันและกัน โดยไม่ตองผ่าน Root CA
้
Faculty of Information Technology
Page
14
15. X.509 Certification Signature Chain
แทนการออก Certificate ด้วยสัญลักษณ์ ต่อไปนี้
CA<<Subject>>
CA ออก Certificate ให้กบ Subject
ั
ตัวอย่าง
‣ Cathy<<Alice>> Cathy ออก Certificate ให้กบ Alice
ั
‣ Dan<<Bob>>
Dan ออก Certificate ให้กบ Bob
ั
เราเรียกว่า CA 2 คน ได้ cross-certified (รับรองซึ่งกันและกัน) ก็ต่อเมื่อ
CA คู่นน ได้ออก certificate ให้กนและกัน
ั้
ั
จากตัวอย่างด้านบน
‣ ถ้า Cathy<<Dan>> และ Dan<<Cathy>> จะเรียกได้ว่า Cathy และ Dan ได้
cross-certify กัน ดังนัน ทังคู่เชื่ อถือ (trust) กันและกัน
้ ้
Faculty of Information Technology
Page
15
16. X.509 Certification Signature Chain
เราสามารถใช้ Certification Signature Chain ในการอ้างอิง trust ระหว่าง
ผูใช้ ผ่าน cross-certified ของ CA ได้ ดังนี้
้
จากตัวอย่างที่ผ่านมา
‣ หาก Alice เชื่ อถือ Cathy แล้ว Alice สามารถสร้าง certificate signature
chain และเชื่ อในการรับรองตัวตน Bob ได้ ดังนี้
Cathy<<Dan>> Dan<<Bob>>
• Alice ตรวจสอบ Certificate ของ Bob และพบว่ารับรองโดย Dan จากนันจึ ง
้
ตรวจสอบ Certificate ของ Dan พบว่ารับรองโดย Cathy และ ถ้าหาก Alice
เชื่อถือ Cathy จึงถือว่า Bob ผ่านการตรวจสอบ
Faculty of Information Technology
Page
16
17. X.509 Certification Signature Chain
ในลักษณะเดียวกัน
‣ หาก Bob เชื่ อถือ Dan แล้ว Bob สามารถสร้าง certificate signature chain
และเชื่ อในการรับรองตัวตน Alice ได้ ดังนี้
Dan<<Cathy>> Cathy<<Alice>>
• Bob ตรวจสอบ Certificate ของ Alice และพบว่ารับรองโดย Cathy จากนันจึ ง
้
ตรวจสอบ Certificate ของ Cathy พบว่ารับรองโดย Dan และ ถ้าหาก Bobเชื่อถือ
Dan จึงถือว่า Alice ผ่านการตรวจสอบ
Faculty of Information Technology
Page
17