ทราฟฟิกเครือข่ายเข้ารหัสเมื่อทำการสำรองข้อมูลระยะไกลโดยใช้ SQL Server TDE หรือไม่


9

พวกเขาบอกว่าไม่มีสิ่งเช่น "คำถามโง่ ๆ " ดังนั้นที่นี่จะไป:

ฉันเข้าใจว่า SQL Server Transparent Data Encryption (TDE) เข้ารหัสข้อมูลที่เหลือเพื่อให้ไฟล์ฐานข้อมูลของคุณ (.mdf) และไฟล์สำรองของคุณ (.bak) ได้รับการเข้ารหัสหากมีคนบุกเข้าไปในที่เก็บของคุณและขโมยไฟล์เหล่านั้น ฉันยังเข้าใจว่าข้อมูลถูกถอดรหัสเมื่ออ่านจากดิสก์เพื่อให้ไม่ได้เข้ารหัสในหน่วยความจำ (ขณะเคลื่อนไหว) ดังนั้นข้อมูลที่ร้องขอโดยผู้ใช้ที่เรียกใช้แบบสอบถามระยะไกล (เลือก * จาก SensitiveData) จะไม่ถูกเข้ารหัสเมื่อเดินทางผ่านเครือข่ายจึงมีความเสี่ยงที่จะถูกดักข้อมูล

ดังนั้นสมมติว่าทั้งหมดข้างต้นถูกต้องนี่คือคำถามโง่ของฉัน: ถ้าอินสแตนซ์ SQL Server ของฉันอยู่ในคอมพิวเตอร์ A และการสำรองข้อมูลฐานข้อมูล TDE ของฉันจะถูกตัดออกไปที่จัดเก็บในคอมพิวเตอร์ระยะไกล B เป็นข้อมูลการดำเนินการสำรองข้อมูล คอมพิวเตอร์ A ที่จะเขียนไปยังดิสก์ที่คอมพิวเตอร์ B? ฉันคิดว่ามันจะต้องเป็น (เพราะฉันคิดว่าการดำเนินการเข้ารหัสเกิดขึ้นบนคอมพิวเตอร์ A ก่อน) แต่ฉันไม่สามารถหาคำยืนยันได้ในเอกสารใด ๆ ของ Microsoft หรือในบล็อก ในระหว่างการดำเนินการกู้คืน - มีใครที่ดักข้อมูลที่ถูกถ่ายโอนจากดิสก์ที่คอมพิวเตอร์ B เพื่อคืนค่าฐานข้อมูลที่คอมพิวเตอร์ A - พวกเขาจะพบว่าข้อมูลในการเข้ารหัสการเคลื่อนไหว?


2
เป็นคำถามที่ดีจริงๆ
Shanky

คำตอบ:


7

ใช่การสำรองข้อมูลจะถูกเข้ารหัสในขณะเคลื่อนย้ายผ่านเครือข่ายเนื่องจากข้อมูล TDE ถูกเข้ารหัสบนดิสก์และดำเนินการสำรองข้อมูลไม่เคยถอดรหัส

ตำนานการสำรองข้อมูลของ Paul Randal :

ตำนาน 30-09) การสำรองข้อมูลอ่านข้อมูลผ่านบัฟเฟอร์พูล

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

หากหน้าถูกโหลดลงในบัฟเฟอร์พูล (พื้นที่หน่วยความจำ "ปกติ" ที่ SQL ใช้เพื่อแคชตารางฐานข้อมูลและข้อมูลดัชนี) หน้าเหล่านั้นจะต้องถูกถอดรหัส แต่การสำรองข้อมูลไม่ได้ทำเช่นนั้นพวกเขาเพียงแค่ถ่ายโอน "extents" เข้ารหัสแบบดิบ (ชิ้นส่วน 8 หน้าติดกัน) ไปยังปลายทางการสำรองข้อมูลของคุณ

ฉันสามารถรับการยืนยันจาก Paul Randal ได้ว่าความคิดเห็นข้างต้นของเขายังคงเกี่ยวข้องกับ TDE :

มันทำงานในลักษณะเดียวกัน บัฟเฟอร์พูลทำการเข้ารหัสจากนั้นเพิ่มการตรวจสอบหน้าก่อนที่จะเขียนหน้าลงดิสก์ การสำรองข้อมูลไม่เคยอ่านผ่านกลุ่มของบัฟเฟอร์ ใช่แล้วการสำรองฐานข้อมูล TDE ยังมีการเข้ารหัสอยู่ checksums ของหน้าจะถูกตรวจสอบ แต่ตามรหัสสำรองไม่ใช่รหัสพูลบัฟเฟอร์

กล่าวอีกนัยหนึ่งถ้าคุณเปิดใช้งาน CHECKSUMs ในฐานข้อมูลเหล่านั้นจะถูกเพิ่ม (ในระหว่างการดำเนินการเขียน SQL ปกติ) หลังจากการเข้ารหัสเกิดขึ้น ซึ่งหมายความว่ากระบวนการสำรองข้อมูลสามารถอ่านขอบเขตดิบ (เข้ารหัส) ตรวจสอบการตรวจสอบและเขียนข้อมูลสำรองทั้งหมดโดยไม่ต้องถอดรหัสข้อมูล

นี่คือเหตุผลเกือบแน่นอนว่า (ก่อน SQL 2016) การเปิดใช้งานการบีบอัดข้อมูลสำรองในฐานข้อมูลด้วย TDE ไม่ได้ทำอะไรเลยเนื่องจากข้อมูลที่เข้ารหัสไม่สามารถบีบอัดได้มาก :

เนื่องจากเมื่อทำการสำรองข้อมูลของฐานข้อมูลที่เข้ารหัส TDE หน้าฐานข้อมูลจะไม่ถูกถอดรหัสเมื่อทำการสำรองข้อมูล พวกเขาจะได้รับการสนับสนุนในรัฐที่มีการเข้ารหัสเดียวกันว่าพวกเขาจะได้ตามปกติในการบีบอัดแล้ว โดยธรรมชาติแล้วข้อมูลที่เข้ารหัสนั้นมีความพิเศษมากดังนั้นการบีบอัดข้อมูลจึงทำได้ไม่ดีนักเมื่อเทียบกับข้อมูลที่เข้ารหัส

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


3

... ข้อมูลการสำรองข้อมูลถูกเข้ารหัสขณะที่เดินทางจากคอมพิวเตอร์ A เพื่อเขียนไปยังดิสก์ที่คอมพิวเตอร์ B หรือไม่

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

... ในระหว่างการดำเนินการกู้คืน ... พวกเขาจะพบว่าข้อมูลในการเคลื่อนไหวการเข้ารหัส?

ใช่เนื่องจากใช้เหมือนกันกับข้างต้น แต่ใช้ในลำดับกลับกัน ข้อมูลถูกเข้ารหัสบนดิสก์กำลังอ่านและถ่ายโอนในสถานะที่เข้ารหัส จากนั้นจะเข้าสู่อินสแตนซ์และโหลดลงในบัฟเฟอร์พูลซึ่งไม่ได้เข้ารหัสเป็นขั้นตอน


1
ฉันคิดว่านี่ถูกต้อง แต่ฉันไม่แน่ใจว่าถูกต้องด้วยเหตุผลที่คุณพูด ฉันคิดว่า BACKUP จะส่ง EXTENTS ฐานข้อมูลดิบ (ไม่ใช่หน้า) ไปยังดิสก์ดังนั้นจึงข้ามขั้นตอนการถอดรหัสเมื่อโหลดเข้าสู่หน่วยความจำ ฉันอาจจะผิด แต่กำลังมองหาเอกสารตอนนี้
BradC

1
พบมันดูตำนานของ Paul Randal 30-09 : "ระบบย่อยการสำรองข้อมูลเปิดแชนเนลของตัวเองไปยังไฟล์ฐานข้อมูลเพื่อหลีกเลี่ยงประสิทธิภาพที่ต้องอ่านทุกอย่างในหน่วยความจำของ SQL Server และกลับไปยังอุปกรณ์สำรอง" ไม่ได้กล่าวถึง TDE โดยเฉพาะ แต่หากกระบวนการสำรองข้อมูลเป็นช่องทางของตัวเองมันจะเสียการถอดรหัสเพียงเพื่อเข้ารหัสใหม่ทันที มันยังสามารถตรวจสอบ CHECKSUMS และ / หรือใช้การบีบอัดโดยไม่ต้องถอดรหัสหากมีการเปิดใช้งาน
BradC

@BradC ฉันไม่ได้บอกว่าการสำรองข้อมูลจะทำงานด้วยวิธีนี้ แต่กระบวนการเข้ารหัส / ถอดรหัสจะทำงานกับข้อมูลที่เหลือได้อย่างไร ถ้ามันคลุมเครือฉันจะเปลี่ยนมันอย่างไรก็ตามฉันไม่ได้บอกว่านี่เป็นวิธีการสำรองข้อมูลทำงานเมื่อใดและที่ไหนที่มีการเข้ารหัส / ถอดรหัสเกิดขึ้น
Sean Gallardy

แต่หากกระบวนการสำรองข้อมูลไม่ได้ใช้บัฟเฟอร์พูลการให้เหตุผลของคุณไม่ถูกต้องแม้ว่าข้อสรุป (แพ็กเก็ตสำรองจะถูกเข้ารหัส) นั้นเหมาะสมด้วยเหตุผลอื่น
BradC

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