เว็บเบราว์เซอร์แคชใบรับรอง SSL หรือไม่


26

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

ฉันคิดถึงสถานการณ์เมื่อใบรับรอง SSL หมดอายุและถูกแทนที่ด้วยใบรับรองใหม่บนเว็บเซิร์ฟเวอร์


ฉันจะสมมติว่าเบราว์เซอร์ตรวจสอบวันที่ในใบรับรองเพื่อดูว่าจำเป็นต้องซื้อใหม่หรือไม่เหมือนทุกอย่างอื่น แต่ไม่แน่ใจ
soandos

ดูที่นี่imperialviolet.org/2011/05/04/pinning.htmlเกี่ยวกับ "การตรึงใบรับรอง" และที่ความคิดริเริ่ม HSTS ที่เกี่ยวข้องกับอดีตdev.chromium.org/sts
Shadok

1
ตั้งแต่ 2019 Chrome 75 ของฉันกำลังแคชใบรับรอง SSL
Fabian Thommen

คำตอบ:


10

คำตอบของ RedGrittyBrick นั้นถูกต้อง แต่ไม่ตอบคำถามจริงๆ คำถามคือถ้าเบราว์เซอร์ทำไม่ใช่ว่าพวกเขาควรหรือจำเป็นต้องทำ

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


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

3
มันลดลงเพราะคุณไม่สามารถแทนที่คีย์ SHA-1 เก่าด้วยคีย์ใหม่เนื่องจากอันเก่ายังคงใช้ได้และ Chrome ไม่สนใจคีย์ใหม่ถ้าฉันเข้าใจทุกอย่างถูกต้อง ดังนั้นจึงไม่มีวิธีบังคับให้เปลี่ยนไปใช้มาตรฐานความปลอดภัยที่สูงขึ้น - ดังนั้นจึง "ลด" ในความสัมพันธ์โดยไม่เปิดใช้งานเพื่อผลักดันให้สูงขึ้น เช่นเดียวกับอัตราเงินเฟ้อไม่ได้ลดมูลค่าที่กำหนดไว้ของคุณ แต่เป็นมูลค่าตลาดที่แท้จริง
tuexss

5
+1 หลังจากStartSSL ผสมความล้มเหลวของเชน SHA1 / SHA2เป็นที่ชัดเจนว่า Chrome บน Windows กำลังแคช certs ระดับกลางแน่นอน Chrome จะเพิกเฉยต่อใบรับรองระดับกลางใหม่ที่ส่งโดยเซิร์ฟเวอร์ ไม่ชัดเจนแม้ว่าการแคชจะถูกกำหนดโดยข้อมูลประจำตัวของใบรับรองเซิร์ฟเวอร์หรือข้อมูลประจำตัวของใบรับรองกลางและสิ่งที่ถือเป็นข้อมูลประจำตัวที่แน่นอน
Robert Važan

3
พบปัญหาในวันนี้ทั้ง chrome และ firefox แสดงใบรับรองที่แตกต่างกันในหน้าต่างปกติ (ใบรับรองเก่า) และโหมดไม่ระบุตัวตน (แก้ไขอย่างใดอย่างหนึ่ง) โปรแกรมอรรถประโยชน์บรรทัดคำสั่งเช่น curl หรือ openssl รายงานใบรับรองที่ถูกต้องแน่นอน แก้ไขโดยการล้างแคชของเบราว์เซอร์ (ctrl + shift + del) - "คุกกี้และข้อมูลไซต์อื่น ๆ " สำหรับ chrome และ "ข้อมูลเว็บไซต์ออฟไลน์" สำหรับ firefox
anilech

1
อย่างน้อยเวอร์ชันปัจจุบันของ Firefox (66.0) บน OSX ดูเหมือนว่าจะเก็บไว้ในแคชสวยมาก เมื่อวานนี้ฉันอัปเดตใบรับรอง TLS สำหรับเว็บไซต์ของฉันและทั้ง CLI opensslและ Chromium แสดงใบรับรองใหม่ให้ฉัน Firefox แสดงไฟล์เก่าแม้ว่าฉันจะโหลดซ้ำเมื่อปิดการใช้งานแคชล้างแคชและข้อมูลออฟไลน์ทั้งหมดและเริ่มเบราว์เซอร์ใหม่
ตาด Lispy

20

ไม่ดูภาพรวม IBM SSL

  1. ไคลเอนต์ SSL ส่งข้อความ "ไคลเอนต์สวัสดี" ที่แสดงข้อมูลการเข้ารหัสเช่นรุ่น SSL และตามลำดับการตั้งค่าของลูกค้า CipherSuites ได้รับการสนับสนุนจากลูกค้า ข้อความนี้ยังมีสตริงแบบสุ่มไบต์ที่ใช้ในการคำนวณที่ตามมา โปรโตคอล SSL อนุญาตให้ "ไคลเอนต์สวัสดี" รวมวิธีการบีบอัดข้อมูลที่ได้รับการสนับสนุนโดยไคลเอนต์ แต่การใช้งาน SSL ปัจจุบันมักจะไม่รวมบทบัญญัตินี้

  2. เซิร์ฟเวอร์ SSL ตอบกลับด้วยข้อความ "เซิร์ฟเวอร์ hello" ที่มี CipherSuite ที่เลือกโดยเซิร์ฟเวอร์จากรายการที่ให้ไว้โดยไคลเอนต์ SSL รหัสเซสชันและสตริงสุ่มไบต์อื่น เซิร์ฟเวอร์ SSL ยังส่งใบรับรองดิจิตอล หากเซิร์ฟเวอร์ต้องการใบรับรองดิจิทัลสำหรับการตรวจสอบสิทธิ์ไคลเอ็นต์เซิร์ฟเวอร์จะส่ง "คำขอใบรับรองไคลเอ็นต์" ที่มีรายการประเภทของใบรับรองที่รองรับและชื่อที่แตกต่างของ Certificate Authorities ที่ยอมรับได้ (CA)

  3. ไคลเอนต์ SSL ตรวจสอบลายเซ็นดิจิทัลบนใบรับรองดิจิทัลของเซิร์ฟเวอร์ SSL และตรวจสอบว่า CipherSuite ที่เลือกโดยเซิร์ฟเวอร์นั้นยอมรับได้

...

บทสรุปของ Microsoftคล้ายกัน การจับมือ TLS นั้นคล้ายกันในเรื่องนี้

ในขั้นตอนที่ 2 ดูเหมือนจะไม่มีทางที่ลูกค้าจะพูดว่า "ไม่ต้องรำคาญกับการส่งใบรับรองเซิร์ฟเวอร์ฉันจะใช้แคชของฉัน"

โปรดทราบว่ามีใบรับรองไคลเอ็นต์เซิร์ฟเวอร์และ CA หลายประเภท บางส่วนของเหล่านี้ถูกแคช


แก้ไขคำถามเดิมเพื่อชี้แจงว่าเป็นใบรับรองเซิร์ฟเวอร์
Lorin Hochstein

สิ่งนี้ไม่เป็นความจริงและสมมติว่าไม่มีแคชเนื่องจากภาพรวมของวิธีการทำงานของ SSL ที่ไม่รวมการแคชเป็นเหตุผลที่ไม่ดี youtube.com/watch?v=wMFPe-DwULM
Evan Carroll

แคชเท่านั้นที่สามารถใช้สำหรับการตรวจสอบความถูกต้องแม้ว่าจะเป็นการแลกเปลี่ยนความปลอดภัย
Daniel B

0

ฉันไม่แน่ใจว่าการป้อนข้อมูลของฉันจะช่วย แต่อย่างใด แต่นี่คือสิ่งที่ฉันเพิ่งพบ: ฉันมีเว็บไซต์เป็นสีฟ้ากับโดเมนที่กำหนดเอง ฉันพยายามเข้าถึงด้วย https ใน Chromes ก่อนกำหนดค่าการเชื่อม SSL กับชื่อโดเมนของฉัน Chrome บอกฉันว่าไซต์ไม่ปลอดภัยซึ่งเหมาะสมอย่างสมบูรณ์ (ERR_CERT_COMMON_NAME_INVALID) แต่หลังจากฉันอัปโหลดใบรับรองของฉันและกำหนดค่าการเชื่อม SSL ในสีฟ้าฉันยังคงได้รับข้อผิดพลาดเดียวกัน ในขั้นตอนนี้เมื่อเปิดหน้าต่างเบราว์เซอร์ส่วนตัวใหม่ (หรือใช้เบราว์เซอร์อื่น) https ทำงานได้ดี

แต่ฉันไม่สามารถทำให้มันทำงานได้ในเซสชัน Chrome ที่เปิดอยู่ ฉันลองล้างสถานะ SSL แล้วผลลัพธ์เดียวกัน มันทำงานได้หลังจากรีสตาร์ท Chrome ทั้งหมด

ฉันอาจจะถูกหลอกด้วยบางสิ่ง แต่เกือบจะดูเหมือนว่าใบรับรองถูกแคช ...


ข้อผิดพลาดนั้นบ่งบอกว่าคุณเข้าถึงเว็บไซต์ด้วย URI ที่แตกต่างจากที่อยู่ใน CN จริง ๆ แล้วคุณเปลี่ยน URI เพื่อเข้าถึงไซต์ใน chrome หลังจากที่คุณตั้งค่าการรวมหรือไม่
เซท

ไม่สิ่งเดียวที่ฉันเปลี่ยนไปในเวลานั้นคือการผูกมัด เมื่อฉันสอบถาม https ครั้งแรกมันให้บริการโดยใช้ Azure ssl cert เริ่มต้น แต่มันยังคงให้บริการฉันนี้หลังจากที่ฉันเปลี่ยนการเชื่อมโยงกับใบรับรองที่ถูกต้องใน Azure
เอเตียน

ดังที่คุณกล่าวว่าคุณได้กำหนดค่าการเชื่อมโดเมน SSL หมายความว่าคุณเข้าถึงเซิร์ฟเวอร์โดยใช้โดเมนของคุณจากการเริ่มต้นหรือไม่? ข้อผิดพลาดจะระบุว่ามีความแตกต่างระหว่าง URL ที่คุณใช้และ URL ที่ใช้รับรอง นั่นคือสิ่งที่ฉันหมายถึง. นอกจากนี้การกำหนดค่าเซิร์ฟเวอร์ที่แท้จริงของคุณอาจมีความสำคัญมากหากคุณคิดถึง HSTS และเช่นนั้น
เซท

1
ขั้นตอนที่ 1: เว็บไซต์ที่เผยแพร่เป็นสีฟ้า ในขั้นตอนนี้มีทั้ง URL สีฟ้าเริ่มต้นและใบรับรองเริ่มต้น ขั้นตอนที่ 2: ตั้งค่าโดเมนที่กำหนดเองสำหรับเว็บแอปตอนนี้ mysite.com ชี้ไปที่เว็บไซต์อย่างถูกต้อง SSL Cert สำหรับ mysite.com ไม่ได้รับการกำหนดค่าในขั้นตอนนี้ ขั้นตอนที่ 3: ณ จุดนี้เมื่อพยายาม https ไซต์ฉันได้รับข้อผิดพลาดด้านความปลอดภัยโดยที่ใบรับรองไม่ตรงกัน (และเหมาะสมอย่างยิ่ง) ขั้นตอนที่ 4: ฉันติดตั้งใบรับรอง SSL สำหรับ Mysite.com ใน Azure และ STILL คำเตือนความปลอดภัยจะปรากฏขึ้นจาก Chrome มันไม่ได้เกิดขึ้นในเบราว์เซอร์อื่น ๆ หรือถ้าฉันเปิด nav ส่วนตัว
Etienne

1
ขั้นตอนที่ 5: ฉันรีสตาร์ท Chrome และตอนนี้ (และตอนนี้เท่านั้น) เป็นเว็บไซต์ของฉันที่ให้บริการโดยใช้ใบรับรอง SSL ที่ถูกต้อง ดังนั้นข้อสรุปของฉันคือว่ามีปัญหาแคชใบรับรองจริง ๆ
เอเตียน

-1

มีแผนของนักพัฒนาเบราว์เซอร์บางรายที่จะใช้ระบบ chaching เพื่อตรวจจับการโจมตีเช่นการโจมตีของ Diginotarในปี 2011

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.