ใน SQL Server 2016 ความแตกต่างระหว่าง Always Encrypted และ Transparent Data Encryption แตกต่างกันอย่างไร


40

ขณะที่ฉันเขียนสิ่งนี้ฉันยังคงรอการเปิดตัวอย่างเป็นทางการของ SQL Server 2016 เพื่อให้เราสามารถสำรวจประโยชน์ของคุณสมบัติ "เข้ารหัสเสมอ"

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


ด้วย Always Encrypted ไดรเวอร์ไคลเอนต์จะเข้ารหัส / ถอดรหัสข้อมูลก่อนที่จะกระทบกับ SQL Server ในขณะที่ TDE รันบน SQL Server เอง IMHO TDE ส่วนใหญ่ไม่มีประโยชน์ในสถานการณ์ดาต้าเซ็นเตอร์บนคลาวด์ / ที่ปลอดภัย (เลื่อนไปที่ "TDE ไม่มีประโยชน์ในคลาวด์") หากคุณสนใจในความปลอดภัยของข้อมูลขั้นสูงให้ตรวจสอบCrypteronด้วย การเปิดเผยอย่างเต็มรูปแบบ: ฉันทำงานที่นั่น
DeepSpace101

คำตอบ:


48

ข้อเสียของการเข้ารหัสข้อมูลแบบโปร่งใสเปรียบเทียบกับการเข้ารหัสเสมอ:

  • ปกป้องข้อมูลที่เหลือเท่านั้น - การสำรองข้อมูลและไฟล์ข้อมูลนั้น "ปลอดภัย" แต่ข้อมูลที่เคลื่อนไหวหรือในหน่วยความจำมีความเสี่ยง
  • ฐานข้อมูลทั้งหมดเท่านั้น
  • ข้อมูลทั้งหมดจะถูกเข้ารหัสด้วยวิธีเดียวกัน
  • การบีบอัดข้อมูลสำรองอาจใช้เวลานานกว่าและมีประสิทธิภาพในการต่อต้าน

    • ที่จริงมีการปรับปรุงบางอย่างที่นี่ใน SQL Server 2016ที่ท้าทายสิ่งที่เรามักรู้จักกันเกี่ยวกับการพยายามบีบอัดข้อมูลที่เข้ารหัส - มันดีกว่ารุ่นก่อน ๆ แต่ก็ยังแย่กว่าการเข้ารหัสคอลัมน์จำนวนหนึ่งเท่านั้น
  • tempdb ยังสืบทอดการเข้ารหัส - ยังคงอยู่แม้หลังจากปิดใช้งาน TDE
  • ต้องการ Enterprise Edition
  • เข้าถึงข้อมูลได้ตลอดเวลาเพื่อดูแลระบบ

เข้ารหัสเสมอที่อยู่ปัญหาเหล่านี้ทั้งหมดหรือบางส่วน:

  • ข้อมูลได้รับการปกป้องในส่วนที่เหลือการเคลื่อนไหวและในหน่วยความจำ - ควบคุมได้มากขึ้นกับคีย์และผู้ที่สามารถถอดรหัสข้อมูล
  • อาจเป็นเพียงคอลัมน์เดียว
  • ประเภทการเข้ารหัสเป็นตัวเลือก:
    • สามารถใช้การเข้ารหัสที่กำหนดขึ้นเพื่อสนับสนุนดัชนีและการค้นหาจุด (พูด, SSN)
    • สามารถใช้การเข้ารหัสแบบสุ่มเพื่อการป้องกันที่สูงขึ้น (เช่นหมายเลขบัตรเครดิต)
  • เนื่องจากไม่ใช่ทั้งฐานข้อมูลการบีบอัดข้อมูลสำรองจึงไม่ได้รับผลกระทบแน่นอนว่ายิ่งมีการเข้ารหัสคอลัมน์มากเท่าไรคุณก็ยิ่งโชคร้ายมากขึ้นเท่านั้น
  • tempdb ไม่มีส่วนเกี่ยวข้อง
  • ในฐานะที่เป็น SQL Server 2016 Service Pack 1 ตอนนี้การเข้ารหัสเสมอทำงานในทุกรุ่น
  • ข้อมูลสามารถป้องกันได้จาก sysadmin (แต่ไม่ใช่ sysadmin และผู้ดูแลระบบความปลอดภัย / ใบรับรอง / Windows ของ Windows หรือกล่าวอีกนัยหนึ่งคุณสามารถแยกความรับผิดชอบได้ตราบใดที่ทั้งสองกลุ่มไม่สมรู้ร่วมคิด)

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


คุณช่วยอธิบายฉันหน่อยได้ไหมว่า Encrypted เข้ารหัสข้อมูลในหน่วยความจำทุกครั้งอย่างไร ฉันพยายามค้นหาข้อมูลนี้ใน MSDN แต่เพิ่งพูดถึงข้อมูลที่เหลือและข้อมูลในการเข้ารหัสการเคลื่อนไหว ขอบคุณ :)
Victoria Malaya

1
@Victoria ผู้ให้บริการเข้ารหัสข้อมูลก่อนที่ SQL Server จะเคยเห็น ดังนั้น SQL Server จะได้รับค่าที่เข้ารหัสใส่ค่าที่เข้ารหัสไว้บนดิสก์และโหลดค่าที่เข้ารหัสลงในหน่วยความจำเมื่อเพจนั้นอยู่ในหน่วยความจำ การเข้ารหัสจะไม่เกิดขึ้นในหน่วยความจำอย่างที่คุณคิดและการถอดรหัสจะเกิดขึ้นก็ต่อเมื่อลูกค้ามีใบรับรองที่มีความสามารถในการถอดรหัส ...
Aaron Bertrand

2
เท่าที่ฉันรู้หนึ่งในความแตกต่างที่ใหญ่ที่สุดคือเมื่อมันมาถึงการสืบค้นข้อมูล ด้วย TDE คุณสามารถเรียกใช้แบบสอบถามใด ๆ ตามปกติโดยที่ AE คุณมีข้อ จำกัด อย่างมากในการสืบค้นคอลัมน์ที่เข้ารหัสนั่นคือคุณสามารถทำการเปรียบเทียบความเท่าเทียมกันเท่านั้น (และต้องใช้การเลือกเพื่อเข้ารหัสแบบกำหนดค่า) ไม่มีการตรวจสอบช่วงวันที่ไม่มีคำสั่ง LIKE เป็นต้น
musefan

3

พูดง่ายๆคือ TDE นั้นเข้ารหัสข้อมูลที่จุดพัก (บนดิสก์) และ AE นั้นเป็นข้อมูลที่เข้ารหัสบนสายนอกจากนี้


ฉันคิดว่าคุณอาจมีสิ่งนั้นย้อนหลังใช่มั้ย
zwerdlds

ไม่ควรจะเป็น: TDE เข้ารหัสข้อมูลที่วางไว้ขณะที่ AE เข้ารหัสข้อมูลบนสายเชื่อมต่อที่เหลือ & ในหน่วยความจำ
RoastBeast

AFAIK: คุณสามารถรวมTDEและForce Protocol Encryptionบนเซิร์ฟเวอร์ MS SQL เพื่อให้มีการเข้ารหัสแบบ wire wire เช่นกัน
TiloBunt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.