การพิสูจน์ตัวตนผู้ใช้และอุปกรณ์ IoT ด้วย Mutual TLS

เรียนรู้วิธีการนำความร่วมมือไปใช้ TLS (mTLS) การตรวจสอบสิทธิ์เพื่อรักษาความปลอดภัยการเชื่อมต่อของผู้ใช้และอุปกรณ์ IoT รวมถึงการตั้งค่าใบรับรองแบบทีละขั้นตอน การกำหนดค่าเซิร์ฟเวอร์ การใช้งานไคลเอนต์ และแนวทางการแก้ไขปัญหา

เนื้อหาที่เกี่ยวข้อง

ต้องการเรียนรู้ต่อไปหรือไม่?

สมัครรับจดหมายข่าวของ SSL.com ติดตามข่าวสารและปลอดภัย

ซึ่งกันและกัน TLS (mTLS) การตรวจสอบสิทธิ์จะสร้างกรอบงานที่ปลอดภัยสำหรับการตรวจสอบสิทธิ์ทั้งของผู้ใช้และอุปกรณ์ IoT คู่มือนี้จะแนะนำคุณตลอดขั้นตอนการใช้งาน mTLS เพื่อให้มั่นใจถึงการตรวจสอบสิทธิ์แบบสองทิศทางที่ปลอดภัยระหว่างไคลเอนต์และเซิร์ฟเวอร์

คู่มือการเริ่มต้น

การตั้งค่าการร่วมกัน TLS ทำตามขั้นตอนง่ายๆ ขั้นแรก ให้สร้างใบรับรองเซิร์ฟเวอร์และไคลเอ็นต์ที่จำเป็น จากนั้น กำหนดค่าเซิร์ฟเวอร์ของคุณให้ต้องใช้ใบรับรองไคลเอ็นต์ จากนั้นตั้งค่าไคลเอ็นต์ของคุณด้วยใบรับรองของพวกเขา และดำเนินการตรวจสอบใบรับรองที่เหมาะสม ในที่สุด ให้ทดสอบการเชื่อมต่อเพื่อให้แน่ใจว่าทุกอย่างทำงานตามที่คาดหวัง

SSL แบบทางเดียวและแบบรวม /TLS การยืนยันตัวตน

หนึ่งในคุณสมบัติที่กำหนดของ SSL /TLS โปรโตคอลเป็นบทบาทในการรับรองความถูกต้องของบุคคลอื่นที่ไม่ระบุตัวตนบนเครือข่ายคอมพิวเตอร์ (เช่นอินเทอร์เน็ต) เมื่อคุณเยี่ยมชมเว็บไซต์ที่มีบุคคลทั่วไปเชื่อถือได้ SSL /TLS ใบรับรองเบราว์เซอร์ของคุณสามารถตรวจสอบได้ว่าเจ้าของเว็บไซต์ได้แสดงให้เห็นถึงการควบคุมชื่อโดเมนนั้นไปยังผู้ออกใบรับรอง (CA) ของบุคคลที่สามที่เชื่อถือได้เช่น SSL.com หากการตรวจสอบนี้ล้มเหลวเว็บเบราว์เซอร์จะเตือนคุณว่าอย่าไว้ใจไซต์นั้น

สำหรับแอปพลิเคชันส่วนใหญ่ SSL /TLS ใช้ประเภทนี้ การรับรองความถูกต้องทางเดียว ของเซิร์ฟเวอร์ไปยังไคลเอนต์ ไคลเอนต์ที่ไม่ระบุตัวตน (เว็บเบราว์เซอร์) เจรจาเซสชันที่เข้ารหัสกับเว็บเซิร์ฟเวอร์ซึ่งนำเสนอ SSL / ที่เชื่อถือได้ต่อสาธารณะTLS ใบรับรองเพื่อระบุตัวตนในระหว่าง SSL /TLS การจับมือกัน: การรับรองความถูกต้องร่วมกันซึ่งทั้งสองเซิร์ฟเวอร์ และ ไคลเอนต์ใน SSL /TLS เซสชันได้รับการรับรองความถูกต้องนอกจากนี้ยังเป็นไปได้และมีประโยชน์มากในบางสถานการณ์ ในการพิสูจน์ตัวตนร่วมกันเมื่อเซิร์ฟเวอร์ได้รับการรับรองความถูกต้องในระหว่างการจับมือกันเซิร์ฟเวอร์จะส่งไฟล์ CertificateRequest ข้อความถึงลูกค้า ไคลเอนต์จะตอบสนองโดยการส่งใบรับรองไปยังเซิร์ฟเวอร์เพื่อตรวจสอบความถูกต้อง: การรับรองความถูกต้องของลูกค้าผ่านทางร่วมกัน TLS ต้องมีใบรับรองรวมถึง Client Authentication (1.3.6.1.5.5.7.3.2) การใช้คีย์ขยาย (EKU) ถูกติดตั้งบนอุปกรณ์ไคลเอนต์ SSL.com ทั้งหมด ใบรับรองการลงนามอีเมลไคลเอ็นต์และเอกสาร รวมถึงการพิสูจน์ตัวตนไคลเอ็นต์

คู่มือการใช้งานโดยละเอียด

ความเข้าใจร่วมกัน TLS

แบบดั้งเดิม TLS ให้การรับรองความถูกต้องและการเข้ารหัสเซิร์ฟเวอร์ แต่ร่วมกัน TLS ก้าวไปอีกขั้นด้วยการกำหนดให้ทั้งสองฝ่ายต้องแสดงใบรับรองดิจิทัล การตรวจสอบสองทางนี้ช่วยให้แน่ใจถึงความถูกต้องของเซิร์ฟเวอร์ เปิดใช้งานการตรวจสอบความถูกต้องของไคลเอนต์ สร้างช่องทางการสื่อสารที่เข้ารหัส และป้องกันการโจมตีแบบ man-in-the-middle ผลลัพธ์คือการเชื่อมต่อที่ปลอดภัยสูง เหมาะสำหรับแอปพลิเคชันที่ละเอียดอ่อนและการสื่อสารของอุปกรณ์ IoT

เบื้องต้น

ก่อนเริ่มดำเนินการ โปรดแน่ใจว่าคุณสามารถเข้าถึง OpenSSL หรือเครื่องมือจัดการใบรับรองที่คล้ายกันได้ เซิร์ฟเวอร์เว็บของคุณต้องรองรับ TLSและคุณจะต้องเข้าถึง ผู้ออกใบรับรอง (CA) หรือความสามารถในการสร้าง CA ส่วนตัว ไคลเอ็นต์ของคุณยังต้องรองรับการตรวจสอบสิทธิ์โดยใช้ใบรับรองด้วย

ขั้นตอนที่ 1: การสร้างและการจัดการใบรับรอง

เริ่มต้นด้วยการสร้างใบรับรองที่จำเป็นสำหรับการตรวจสอบสิทธิ์ทั้งเซิร์ฟเวอร์และไคลเอนต์ การตั้งค่าใบรับรองเซิร์ฟเวอร์จำเป็นต้องสร้างคีย์ส่วนตัว การสร้างคำขอลงนามใบรับรองและการลงนามรับรองกับ CA ของคุณ

# สร้างคีย์ส่วนตัวของเซิร์ฟเวอร์
OpenSSL เกนซา -ออก เซิร์ฟเวอร์.คีย์ 2048
?
# สร้างคำขอลงนามใบรับรองเซิร์ฟเวอร์ (CSR)
OpenSSL ความต้องการ -ใหม่ -สำคัญ เซิร์ฟเวอร์.คีย์ -ออก เซิร์ฟเวอร์.csr
?
# ลงนามใบรับรองเซิร์ฟเวอร์ด้วย CA ของคุณ
OpenSSL x509 -req -in เซิร์ฟเวอร์.csr - เครื่องปรับอากาศ แคลิฟอร์เนีย.crt -CAKey ซีเอคีย์ -CAcreationserial -ออก server.crt

สำหรับใบรับรองไคลเอนต์ ให้ทำตามขั้นตอนเดียวกันเพื่อสร้างข้อมูลประจำตัวเฉพาะของพวกเขา:

# สร้างคีย์ส่วนตัวของไคลเอนต์
OpenSSL เกนซา -ออก ลูกค้า.คีย์ 2048
?
# สร้างลูกค้า CSR
OpenSSL ความต้องการ -ใหม่ -สำคัญ ลูกค้า.คีย์ -ออก ลูกค้า.CSR
?
# ลงนามรับรองลูกค้า
OpenSSL x509 -req -in ลูกค้า.CSR - เครื่องปรับอากาศ แคลิฟอร์เนีย.crt -CAKey ซีเอคีย์ -CAcreationserial -ออก ลูกค้า.crt

ขั้นตอนที่ 2: การกำหนดค่าเซิร์ฟเวอร์

เซิร์ฟเวอร์จะต้องกำหนดค่าให้ต้องใช้และตรวจยืนยันใบรับรองไคลเอนต์ นี่คือตัวอย่างการกำหนดค่าสำหรับ Nginx:

เซิร์ฟเวอร์ {
    ฟัง 443 เอสเอสแอล;
    ชื่อเซิร์ฟเวอร์ ตัวอย่าง.com;
?
    ssl_certificate /เส้นทาง/ถึง/เซิร์ฟเวอร์.crt;
    ssl_certificate_key /เส้นทาง/ถึง/เซิร์ฟเวอร์.สำคัญ;
    ใบรับรองลูกค้า SSL /เส้นทาง/ไป/ca.crt;
    ssl_verify_client บน;
    ssl_โปรโตคอล TLSv12 TLSv1.3;
    ssl_ciphers สูง:!เป็นโมฆะ:!MD5;
    การเข้ารหัส SSL_prefer_server บน;
}

สำหรับเซิร์ฟเวอร์ Apache ให้ใช้การกำหนดค่านี้:

<VirtualHost *:443>
    ชื่อเซิร์ฟเวอร์ example.com
    
    เครื่องยนต์ SSL on
    ไฟล์ใบรับรอง SSLC /เส้นทาง/ไปยัง/เซิร์ฟเวอร์.crt
    SSLCertificateKeyFile /เส้นทาง/ไปยัง/เซิร์ฟเวอร์.คีย์
    SSLCACertificateFile เส้นทาง /ไป/ca.crt
    SSLVerifyClient ต้องการ
    SSL ตรวจสอบความลึก 1

ขั้นตอนที่ 3: การใช้งานไคลเอนต์

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

สำหรับอุปกรณ์ IoT คุณจะต้องใช้การตรวจสอบสิทธิ์โดยใช้ใบรับรองในโค้ดของคุณ นี่คือตัวอย่างการใช้ไลบรารีคำขอของ Python:

นำเข้า การร้องขอ
?
ใบรับรองลูกค้า = ('ไคลเอนต์.crt', 'ไคลเอนต์.คีย์')
ใบรับรอง CA = 'คา.ค.ร.ต'
?
คำตอบ = การร้องขอ.ได้รับ('https://example.com',  
                       ใบรับรอง=ใบรับรองลูกค้า,
                       ตรวจสอบ=ใบรับรอง CA)

ขั้นตอนที่ 4: การตรวจสอบใบรับรอง

การตรวจสอบใบรับรองอย่างเหมาะสมถือเป็นสิ่งสำคัญสำหรับความปลอดภัย การใช้งานของคุณควรตรวจสอบความสมบูรณ์ของห่วงโซ่ใบรับรอง ตรวจสอบวันที่หมดอายุ ตรวจสอบสถานะการเพิกถอน และให้แน่ใจว่าใช้คีย์อย่างถูกต้อง นี่คือตัวอย่างการใช้งาน:

รถในตำนานจากเกม การอ่านรหัส นำเข้า x509
รถในตำนานจากเกม การอ่านรหัส.วัตถุอันตราย.แบ็กเอนด์ นำเข้า ค่าเริ่มต้นของแบ็กเอนด์
?
def ตรวจสอบใบรับรอง(เส้นทางใบรับรอง):
    กับ เปิด(เส้นทางใบรับรอง, 'อาร์บี') as ใบรับรองไฟล์:
        ข้อมูลใบรับรอง = ใบรับรองไฟล์.อ่าน()
        ใบรับรอง = x509.โหลดใบรับรอง_pem_x509(ข้อมูลใบรับรอง, ค่าเริ่มต้นของแบ็กเอนด์-
        
        if ใบรับรอง.ไม่ถูกต้องหลังจากนี้ < วันเวลา.วันเวลา.ตอนนี้-
            ยก ค่าข้อผิดพลาด(“ใบรับรองหมดอายุแล้ว”)
            
        ลอง:
            คีย์_การใช้งาน = ใบรับรอง.ส่วนขยาย.รับส่วนขยายสำหรับคลาส(x509.การใช้งานคีย์)
            if ไม่ คีย์_การใช้งาน.ความคุ้มค่า.ลายเซ็นดิจิทัล:
                ยก ค่าข้อผิดพลาด(“ใบรับรองไม่ถูกต้องสำหรับลายเซ็นดิจิทัล”)
        ยกเว้น x509.ส่วนขยาย.ไม่พบส่วนขยาย:
            ยก ค่าข้อผิดพลาด("ไม่พบส่วนขยายการใช้งานคีย์ที่จำเป็น")

กรณีการใช้งานการพิสูจน์ตัวตนร่วมกัน

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

การตรวจสอบผู้ใช้

ธุรกิจและองค์กรอื่น ๆ สามารถแจกจ่ายใบรับรองไคลเอ็นต์ดิจิทัลให้กับผู้ใช้ปลายทางเช่นพนักงานผู้รับเหมาและลูกค้า ใบรับรองไคลเอ็นต์เหล่านี้สามารถใช้เป็นปัจจัยในการตรวจสอบสิทธิ์สำหรับการเข้าถึงทรัพยากรขององค์กรเช่น Wi-Fi, VPN และเว็บแอปพลิเคชัน เมื่อใช้แทน (หรือเพิ่มเติมจาก) ข้อมูลรับรองชื่อผู้ใช้ / รหัสผ่านแบบเดิมร่วมกัน TLS มีข้อดีด้านความปลอดภัยหลายประการ:
  • ซึ่งกันและกัน TLS การรับรองความถูกต้องจะไม่เสี่ยงต่อการถูกขโมยข้อมูลรับรองผ่านทางกลวิธีเช่น ฟิชชิ่ง. ของ Verizon รายงานการสอบสวนการละเมิดข้อมูลปี 2020 บ่งชี้ว่าเกือบหนึ่งในสี่ (22%) ของการละเมิดข้อมูลเกิดจากฟิชชิง แคมเปญฟิชชิ่งมีไว้สำหรับข้อมูลประจำตัวที่เก็บเกี่ยวได้ง่ายเช่นรหัสผ่านเข้าสู่ระบบเว็บไซต์ไม่ใช่คีย์ส่วนตัวสำหรับใบรับรองไคลเอ็นต์ของผู้ใช้ เพื่อเป็นการป้องกันฟิชชิ่งเพิ่มเติมทั้งหมดของ SSL.com การลงนามอีเมลไคลเอ็นต์และเอกสาร ใบรับรองรวมถึงความน่าเชื่อถือต่อสาธารณะ S/MIME สำหรับอีเมลที่ลงชื่อและเข้ารหัส
  • ซึ่งกันและกัน TLS การรับรองความถูกต้องไม่สามารถถูกบุกรุกได้จากสุขอนามัยของรหัสผ่านที่ไม่ดีหรือการโจมตีรหัสผ่านอย่างดุร้าย คุณสามารถกำหนดให้ผู้ใช้ต้องสร้างรหัสผ่านที่คาดเดายาก แต่คุณจะรู้ได้อย่างไรว่าพวกเขาไม่ได้ใช้รหัสผ่านที่ "ปลอดภัย" เดียวกันในเว็บไซต์ต่าง ๆ 50 เว็บไซต์หรือเขียนไว้ในกระดาษโน้ต ก แบบสำรวจของ Google ปี 2019 ระบุว่าผู้ใช้ 52% ใช้รหัสผ่านซ้ำสำหรับหลายบัญชีและ 13% ของผู้ใช้ใช้รหัสผ่านเดิมซ้ำสำหรับ ทั้งหมด ของบัญชีของพวกเขา
  • ใบรับรองลูกค้ามีความชัดเจน ห่วงโซ่ของความไว้วางใจและสามารถจัดการได้จากส่วนกลาง ด้วยการร่วมกัน TLSการตรวจสอบผู้ออกใบรับรอง (CA) ที่ออกข้อมูลรับรองของผู้ใช้จะถูกส่งเข้าสู่กระบวนการตรวจสอบสิทธิ์ SSL.com ของ เครื่องมือการจัดการออนไลน์SWS APIและการเข้าถึงโปรโตคอลมาตรฐานเช่น SCEP ทำให้การออกต่ออายุและเพิกถอนข้อมูลรับรองเหล่านี้ได้อย่างรวดเร็ว!
SSL.com มีตัวเลือกมากมายสำหรับการออกและการจัดการใบรับรองไคลเอ็นต์:

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

การรักษาความปลอดภัยที่แข็งแกร่งต้องมีมากกว่าแค่การใช้งานมTLS:

  • นำการหมุนเวียนใบรับรองอัตโนมัติมาใช้เพื่อให้แน่ใจว่าใบรับรองได้รับการอัปเดตเป็นประจำ
  • จัดทำรายการเพิกถอนใบรับรองเพื่อทำให้ใบรับรองที่ถูกบุกรุกกลายเป็นโมฆะอย่างรวดเร็ว
  • ใช้ขนาดคีย์ที่แข็งแกร่งอย่างน้อย 2048 บิตสำหรับคีย์ RSA
  • กำหนดค่าเซิร์ฟเวอร์ของคุณให้ยอมรับเฉพาะระบบที่ปลอดภัยเท่านั้น TLS เวอร์ชันและชุดรหัสที่แข็งแกร่ง

กลยุทธ์การรักษาความปลอดภัยของลูกค้าของคุณควรครอบคลุมถึงการปกป้องคีย์ส่วนตัวด้วยการควบคุมการเข้าถึงที่เข้มงวด การตรวจสอบความปลอดภัยเป็นประจำจะช่วยรักษาความสมบูรณ์ของระบบในระยะยาว

การแก้ไขปัญหาทั่วไป

ปัญหาห่วงโซ่ใบรับรอง

เมื่อทำการใช้งานม.TLSคุณอาจพบปัญหาเกี่ยวกับห่วงโซ่ใบรับรอง ซึ่งโดยทั่วไปมักเกิดจาก:

  • โซ่ใบรับรองที่ไม่สมบูรณ์
  • ติดตั้งใบรับรองกลางไม่ถูกต้อง

ในการแก้ไขปัญหาเหล่านี้:

  • ตรวจสอบว่าการกำหนดค่าการยึดความน่าเชื่อถือของคุณถูกต้อง
  • ตรวจสอบให้แน่ใจว่ามีใบรับรองที่จำเป็นทั้งหมดอยู่

ปัญหาการเชื่อมต่อ

ปัญหาการเชื่อมต่อมักเกี่ยวข้องกับ:

  • การบล็อคการตั้งค่าไฟร์วอลล์ TLS การจราจร
  • การอนุญาตใบรับรองไม่ถูกต้อง

วิธีแก้ปัญหา:

  • ตรวจสอบว่าใบรับรองของคุณมีชื่อถูกต้อง
  • ให้แน่ใจว่าตรงตามการใช้งานที่ต้องการ

ข้อควรพิจารณาด้านประสิทธิภาพ

การพิจารณาประสิทธิภาพมีความสำคัญในระดับขนาดใหญ่ เพื่อเพิ่มประสิทธิภาพ:

  • นำการแคชเซสชันมาใช้เพื่อลดค่าใช้จ่ายในการจับมือซ้ำๆ
  • เลือกชุดรหัสที่มีประสิทธิภาพที่สมดุลระหว่างความปลอดภัยและประสิทธิภาพ
  • ตรวจสอบกระบวนการตรวจสอบใบรับรองของคุณเพื่อให้แน่ใจว่าไม่ได้สร้างค่าใช้จ่ายที่ไม่จำเป็น

สรุป

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

ติดต่อผู้เชี่ยวชาญ SSL.com เกี่ยวกับ Mutual TLS และ IoT

รับทราบข้อมูลและปลอดภัย

SSL.com เป็นผู้นำระดับโลกในด้านความปลอดภัยทางไซเบอร์ PKI และใบรับรองดิจิทัล ลงทะเบียนเพื่อรับข่าวสารอุตสาหกรรม เคล็ดลับ และประกาศผลิตภัณฑ์ล่าสุดจาก SSL.com.

เราชอบความคิดเห็นของคุณ

ทำแบบสำรวจของเราและแจ้งให้เราทราบความคิดเห็นของคุณเกี่ยวกับการซื้อครั้งล่าสุดของคุณ