ความเข้ากันได้ของ SQL Server กับมาตรฐาน TLS ใหม่


30
  • เบราว์เซอร์หลักเคลื่อนไหวเกิน SSL3.0 และ TLS1.0
  • PCI Security Council ได้ประกาศวันที่หมดอายุการใช้งานสำหรับโปรโตคอลเหล่านี้ที่จะพิจารณาว่ามีการเข้ารหัสที่แข็งแกร่งเพียงพอ

เราจำเป็นต้องย้ายออกจากโปรโตคอลเหล่านี้เพื่อใช้ใหม่และแข็งแรงกว่า บนเซิร์ฟเวอร์ Windows คุณสามารถปิดใช้งานโปรโตคอลเก่าเหล่านี้ได้อย่างง่ายดายและเสนอ TLS1.1 หรือสูงกว่าแทน อย่างไรก็ตามตามที่ระบุไว้ที่อื่น Microsoft SQL Server 2008 R2 และ SQL Server 2012 (มาตรฐานอย่างน้อยที่สุด) ทั้งคู่จะไม่เริ่มทำงานหากปิดใช้งานโปรโตคอลที่ต่ำกว่า อย่างไรก็ตามมี MS SQL Server เวอร์ชันที่เพิ่มขึ้นเรื่อย ๆ มี SQL Server Standard, Business Intelligence, Enterprise, Express, Web และ Compact Editions และแน่นอนว่ามี SQL Server 2008, 2012, 2014 และ (ในรุ่นก่อนวางจำหน่าย) 2016

รุ่นใดบ้างที่รองรับหรือสนับสนุนการใช้โปรโตคอล TLS1.1 เท่านั้นหรือมากกว่า?


ตามหมายเหตุด้านข้าง: ข้อกำหนด PCI ที่นี่ครอบคลุมการรับส่งข้อมูลโดยรวมดังนั้นการรวม SQL เข้ากับเครือข่ายสาธารณะและ / หรือเครือข่ายไร้สายใน VPN / tunnel ที่ใช้มาตรฐานที่ดีกว่าน่าจะเพียงพอ พวกเขาอาจไม่ครอบคลุมการสื่อสารในท้องถิ่นด้วยเช่นกัน ดังนั้นหากไม่มีอะไรนอก VLAN ของคุณสามารถสัมผัสอินสแตนซ์ SQL ได้เนื่องจากการกำหนดค่า SQL ที่เหมาะสมและ / หรือไฟร์วอลล์และการกรองอื่น ๆ คุณอาจไม่จำเป็นต้องกังวลจาก PoV นี้ ไม่มีข้อเท็จจริงเหล่านี้ช่วยคุณถ้าคุณต้องการเปิดเผยอินสแตนซ์ SQL ไปยังเครือข่ายสาธารณะ แต่ความคิดนั้นทำให้ฉันกลัว!
David Spillett

คำตอบ:


19

ไมโครซอฟท์ได้เปิดเผยเมื่อเร็ว ๆ นี้ (ไม่มีการประโคมมากมาย) ว่าพวกเขาจะลงทุนใน TLS 1.2 และเลิกใช้ SSL ควรเกี่ยวข้องกับ SQL Server ทุกรุ่น

UPDATE 2016/01/29 : ไมโครซอฟท์ได้ประกาศอย่างเป็นทางการสำหรับการสนับสนุน TLS 1.2 ในปี 2008, 2008 R2, 2012 และ 2014 ดาวน์โหลดและข้อมูลอื่น ๆ ที่สามารถพบได้ในKB #

ฉันบล็อกเกี่ยวกับปัญหาบางอย่างที่ได้รับการกล่าวถึงเช่นเดียวกับคำเตือนหากคุณใช้จุดปลายเข้ารหัสในปี 2014:

โพสต์ยังชี้ไปที่บิลด์ที่ถูกต้องเพื่อดาวน์โหลด

ไม่ว่าการเคลื่อนไหวนี้จะส่งผลกระทบต่อเวอร์ชันที่มีอยู่ทั้งหมดเพียงแค่ปี 2014 ขึ้นไปหรือเพียงแค่ปี 2016 เท่านั้น ข้อความด้านล่างดูเหมือนจะบ่งบอกว่าอย่างน้อยปี 2014 จะเป็นส่วนหนึ่งของงาน - และฉันสงสัยว่าการลงทุนส่วนใหญ่จะอยู่ในห้องสมุดลูกค้าไม่ใช่ในเครื่องยนต์ดังนั้นจึงเป็นไปได้ที่จะใช้งานได้กับรุ่นที่วางจำหน่ายครั้งถัดไป ของไดรเวอร์ ODBC / Native Client จะสนับสนุน

ฉันได้รับสิ่งนี้จากสำรับ PowerPoint ของ Kevin Farlee ของ Microsoft และได้รับอนุญาตให้แบ่งปันข้อมูลแม้ว่าฉันจะไม่ทราบว่ามีการแจกจ่ายซ้ำจำนวนเท่าใด ณ จุดนี้ นี่คือคำพูดที่แน่นอนจากสำรับ:

การเข้ารหัสลับบนเครื่องบิน: ปกป้องข้อมูลระหว่างไคลเอนต์และเซิร์ฟเวอร์จากการสอดแนมและการโจมตีแบบคนกลาง การอัปเกรดเป็น TLS 1.2 ใน CY 15 ทำให้การ SSL หมด

นอกจากนี้หากคุณดูKB # 3052404ดูเหมือนว่าจะมีโปรแกรมแก้ไขเพื่อให้ทำงานกับ 2012 SP + และ 2014 (ไม่จำเป็นต้องใช้โปรแกรมแก้ไขสำหรับปี 2559) แต่ไม่มีข้อบ่งชี้ว่าจะมีการย้อนกลับไปยัง SQL Server 2005, 2008 หรือ 2008 R2 (และตรงไปตรงมาฉันค่อนข้างประหลาดใจ)


6

ในคำตอบอื่น ๆ : คุณต้องใช้ CU ล่าสุดสำหรับ TLS1.2 ดู:

การแก้ไข: คุณไม่สามารถใช้โพรโทคอลความปลอดภัยการขนส่งเลเยอร์รุ่น 1.2 เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่กำลังเรียกใช้ SQL Server 2014 หรือ SQL Server 2012 :

  • การปรับปรุงที่สะสม 1 สำหรับ SQL Server 2014 SP1
  • การปรับปรุงที่สะสม 8 สำหรับ SQL Server 2014
  • การปรับปรุงที่สะสม 1 สำหรับ SQL Server 2012 SP3
  • การปรับปรุงที่สะสม 10 สำหรับ SQL Server 2012 SP2

หลังจากเปิดใช้งาน TLS 1.2 เท่านั้นคุณจะพบข้อผิดพลาดสองประการ:

  1. บริษัท ตัวแทนของเซิร์ฟเวอร์ SQL 2014 จะไม่เริ่มทำงาน การแก้ไข: ติดตั้ง SQL Server 2012 SNAC จากลิงค์ดาวน์โหลดในKB3135244
  2. SQL Server Management Studio ไม่สามารถเชื่อมต่อได้ การแก้ไข: ติดตั้งโปรแกรมแก้ไขด่วน. NET Framework ที่เกี่ยวข้องจากKB3135244

นอกจากนี้คุณต้องอัปเดตไดรเวอร์ SNAC / OBDC ในไคลเอนต์ทั้งหมดที่เชื่อมต่อกับ SQL Server

รายการทั้งหมดของ SQL Server และไคลเอนต์ไดรเวอร์สร้างพร้อมกับลิงค์ดาวน์โหลดและการเปลี่ยนแปลงการกำหนดค่าอื่น ๆ ที่อาจจำเป็นต้องมีอยู่ในบทความฐานความรู้การสนับสนุนของ Microsoft ต่อไปนี้:

การสนับสนุน TLS 1.2 สำหรับ Microsoft SQL Server


เหตุใดฉันจึงยังไม่สามารถเริ่ม SQL Server 2012 ได้แม้ว่าจะติดตั้ง Update 1 สำหรับ SQL Server 2012 SP3 แล้วก็ตาม
NickG

4

ตั้งแต่วันที่ 29 มกราคม 2559 Microsoft SQL Server รองรับ TLS 1.2 สำหรับ:

  • SQL Server 2008
  • SQL Server 2008 R2
  • SQL Server 2012 และ
  • SQL Server 2014

... และไดรเวอร์ลูกค้าหลัก ๆ เช่น:

  • เซิร์ฟเวอร์ Native Client
  • Microsoft ODBC Driver สำหรับ SQL Server
  • Microsoft JDBC Driver สำหรับ SQL Server
  • ADO.NET (SqlClient)

บล็อกโพสต์โดยทีมงาน SQL Server เกี่ยวกับการเปิดตัว:

TLS 1.2 รองรับ SQL Server 2008, 2008 R2, 2012 และ 2014

รายการบิลด์ที่รองรับ TLS 1.2 พร้อมกับตำแหน่งการดาวน์โหลดคอมโพเนนต์ของไคลเอ็นต์และเซิร์ฟเวอร์ (KB3135244):

รองรับ TLS 1.2 สำหรับ Microsoft SQL Server (รวมถึง. NET fix สำหรับ DB Mail)

หมายเหตุ: การดังกล่าวข้างต้นได้รับการปรับปรุงมาตั้งแต่รุ่นแรกเพื่อแก้ไขข้อบกพร่องในการปรับปรุงเดิมที่ทำให้เกิดการยกเลิกการให้บริการต่อเนื่องเมื่อเชื่อมต่อกับอินสแตนซ์ของSQL Server 2008 หรือ SQL Server 2008 R2 อธิบายไว้ใน KB 3146034:

การยุติบริการเป็นระยะ ๆ เกิดขึ้นหลังจากที่คุณติดตั้ง SQL Server 2008 หรือ SQL Server 2008 R2 ทุกรุ่นตั้งแต่ KB3135244


2

ฉันสามารถยืนยันได้ว่าในฐานะ SQL 2012 SP2 CU7 ซึ่งรองรับ TLS 1.2 สำหรับ SQL 2012 จาก CU6 คุณไม่สามารถทำได้ปิดการใช้งาน TLS 1.0 ที่ระดับเซิร์ฟเวอร์และสามารถเชื่อมต่อกับเซิร์ฟเวอร์ SQL โดยใช้การเชื่อมต่อสตูดิโอจัดการแบบไม่เข้ารหัสในอินสแตนซ์ ซึ่งไม่ได้บังคับให้เข้ารหัสลูกค้า

นี่เป็นอินสแตนซ์ที่ไม่ได้ใช้ TDE หรือใบรับรองอื่น ๆ

ฉันจะลองในวันพรุ่งนี้หลังจากสร้างใบรับรองที่เชื่อถือได้สำหรับเซิร์ฟเวอร์และเปิดใช้งานการเชื่อมต่อที่เข้ารหัส แต่ในเวลานี้ TLS 1.0 ไม่สามารถปิดใช้งานใน SQL 2012 ได้แม้ว่าจะรองรับ TLS 1.2 ก็ตาม

แก้ไข:

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


2

ฉันพบแม้กับ SQL 2014 SP1 CU1 ฉันต้องใช้กล่องแยกต่างหากสำหรับ IIS และ SQL ฉันพบปัญหาบางอย่างที่เกี่ยวข้องกับปัญหาและรายละเอียดขั้นตอนในโพสต์นี้

ประเด็นสำคัญคือ:

  • วาง IIS และ SQL ในกล่องแยกต่างหาก
  • ปิดใช้งาน TLS1.0 ขาเข้าและเปิดใช้งาน TLS1.0 ขาออกบนกล่อง IIS
  • เปิดใช้งาน TLS1.0 ทั้งสองวิธีบนกล่อง SQL

1

นี่คือสิ่งที่ฉันทำบนเซิร์ฟเวอร์ทั้งด้านหน้าและด้านหลัง

  1. gpedit.mscเปิด ในตัวแก้ไขนโยบายกลุ่มภายในคลิกสองครั้งที่ "การตั้งค่า Windows" ภายใต้โหนด "การกำหนดค่าคอมพิวเตอร์" แล้วคลิกสองครั้งที่ "การตั้งค่าความปลอดภัย"

  2. ภายใต้โหนด "การตั้งค่าความปลอดภัย" คลิกสองครั้งที่ "นโยบายท้องถิ่น" แล้วคลิก "ตัวเลือกความปลอดภัย"

  3. ในบานหน้าต่างรายละเอียดคลิกสองครั้งที่ "การเข้ารหัสระบบ: ใช้อัลกอริธึมที่สอดคล้องกับมาตรฐาน FIPS สำหรับการเข้ารหัสการแฮชและการลงชื่อ"

  4. ในกล่องโต้ตอบ "การเข้ารหัสระบบ: ใช้อัลกอริทึมที่เข้ากันได้กับ FIPS สำหรับการเข้ารหัสการแฮชและการเซ็นชื่อ" คลิก "เปิดใช้งาน" แล้วคลิก "ตกลง" เพื่อปิดกล่องโต้ตอบ ปิดตัวแก้ไขนโยบายกลุ่มภายใน


ฉันคิดว่านี่คือที่อยู่วิธีการตั้งค่า TLS 1.2 ตรงข้ามกับคำถามเดิมที่แท้จริงของ SQL Server รุ่นใดที่สนับสนุนบางอย่างที่นอกเหนือจาก TLS 1.0 บางทีบนเว็บเซิร์ฟเวอร์ที่มีแบ็กเอนด์ SQL หากเป็นไปได้โปรดชี้แจงในคำตอบด้วยตนเอง
RDFozz

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