تخفیف های داغ در جشنواره تابستانه توسینسو تخفیف های داغ در جشنواره تابستانه توسینسو
مانده تا پایان تخفیف
مشاهده دوره ها
0

مشکل امنیت در Backup های SQL سرور با استفاده از Certificate

با سلام و خسته نباشید خدمت شما ، اگر من در یک دیتابیسی از کوئری CREATE MASTER KEY ENCRYPTION BY PASSWORD = hassan استفاده بکنم برای امنیت اطلاعاتم و اگر از tde به هر صورتی استفاده نکنم یعنی بر روی فایل backup خودم tde استفاده نکنم و اگر این فایل backup به دست کسی رسید آن شخص می تواند پسورد master key من را بدست بیاورد. برای مثال من برای encrypt کردن یک فیلد که رکوردهایی دارد از کوئری زیر استفاده می کن :

UPDATE Customer_data
SET Credit_card_number_encrypt = EncryptByKey (Key_GUID('SymmetricKey1'),Credit_card_number)
FROM dbo.Customer_data;
GO

و به درستی هم جواب می گیرم البته قبل از کوئری بالا کوئری های دیگری اجرا کردم که به این مرحله رسیدم ، من قبل از کوئری بالا کوئری زیر را اجرا کرده ام :

CREATE CERTIFICATE Certificate1
WITH SUBJECT = 'Protect Data';
GO

آیا می شود نام Certificate1 اینکریپت شده باشد یعنی اگر کسی دیتابیس را ریستور کرد متوجه این نام نشود که باز امنیت بالاتر برود ، من بعد از کوئری بالا از کوئری زیر استفاده کردم :

CREATE SYMMETRIC KEY SymmetricKey1 
WITH ALGORITHM = AES_128 
ENCRYPTION BY CERTIFICATE Certificate1;
GO

بازهم آیا می شود نام SymmetricKey1 اینکریپت شده باشد که اگر کسی دیتابیس را restore کرد متوجه این نام نشود چون وقتی کسی دیتابیس را به درستی ریستور کرد پسورد master key هم درون خودش هست پس شاید کسی بتواند به فیلدهای من که در بالا توضیح دادم دسترسی داشته باشد ، و برای بازگشایی فیلدهای encrypt شده از کد زیر استفاده می کنم:

OPEN SYMMETRIC KEY SymmetricKey1
DECRYPTION BY CERTIFICATE Certificate1;
GO
-- Now list the original ID, the encrypted ID 
SELECT Customer_id, Credit_card_number_encrypt AS 'Encrypted Credit Card Number',
CONVERT(varchar, DecryptByKey(Credit_card_number_encrypt)) AS 'Decrypted Credit Card Number'
FROM dbo.Customer_data;

منظور من این هست که اگر فایل backup به دست کسی برسد که از متد tde استفاده نکرده باشیم با این که از master key هم استفاده کردیم و حتی از CERTIFICATE و حتی از CREATE SYMMETRIC هم استفاده کردیم آیا تضمینی وجود دارد که اطلاعات را کسی نتواند decrypt کند. ممنون می شوم به سئوالات من جواب بدهید. با تشکر از شما دوست عزیز

پرسیده شده در 1394/10/08 توسط

4 پاسخ

1

با سلام و خسته نباشید

ممنونم آقای حمید ج. فرد خیلی لطف کردید که پاسخ دادید

شما باعث شدید که من به جواب خودم برسم با تغییراتی که در کدهای خودم دادم

با تشکر از شما دوست عزیز

پاسخ در 1394/10/09 توسط
0

با سلام و خسته نباشید

ممنونم از جواب سریعتون

اگر از CERTIFICATE و SYMMETRIC و حتی master key در دیتابیس master استفاده نکنیم و در یک دیتابیس دیگر استفاده بکنیم و آن دیتابیس دیتابیس اصلی ما نباشد فقط برای امنیت این دیتابیس را ایجاد بکنیم و در یک دیتابیس دیگر کارهای اصلی خودمونو پیاده سازی بکنیم مثلا جداول را ایجاد کنیم و کارهای دیگر آیا از جهت امنیت مشکلی ایجاد می شود و آیا کار اصولی هست یا خیر ؟

با تشکر از شما دوست عزیز و گرامی

پاسخ در 1394/10/09 توسط
4

نام اشیاء به هیچ وجه Encrypt نمی شود.و البته اینکه Certificate و Symmetric Key در پایگاه داده Master ساخته شود دیگر بعد از ریستور کردن داده ها باز نخواهد شد.

با تشکر

حمید ج. فرد

پاسخ در 1394/10/08 توسط
1

به نظر نمیاد مشکلی داشته باشه. فقط همیشه از Certificate و Symmetric Key ها یک فایل پشتیبان داشته باشید.

پاسخ در 1394/10/09 توسط

پاسخ شما