محافظت از داده ها توسط امضاء دیجیتالی در SQL Server

محافظت از داده ها توسط امضاء دیجیتالی در SQL Server

نوشته شده توسط: حمید فرد
۰۵ شهریور ۱۳۹۴
زمان مطالعه: 5 دقیقه
۰
(۰)

مقدمه

 
چطور می توان این عملیات خرابکارانه در داده ها را تشخیص داد؟ یا چطور می توان داده های تغییر یافته شده توسط سارق را شناسایی کرد؟

یک داستان

یک شرکت بازرگانی املاک وجود دارد که در حال حاضر دارای سیستم فروش است. در این سیستم فروش یک قابلیتی وجود دارد به نام «قراردادها» که کاربر می تواند اطلاعات کلیدی قرارداد را وارد کند اعم از قیمت- مقدار درصد کمیسیون و البته نام کاربر سیستم. در این شرکت شخص یا اشخاصی هستند که توانایی بستن قرارداد را ندارند و برای اینکه از کار بی کار نشوند دست به تغییرات اطلاعات کلیدی کاربران دیگر می زنند!
در SQL Server ما توانایی این را داریم که داده ها را به صورت دیجیتالی توسط صاحب داده امضاء شود. امضاء کردن داده توسط Private Key در Certificate یا در Asymetric Key قابل انجام است. در نظر داشته باشید که Private Key باید فقط و تنها در دست صاحب امضاء و Public Key در دست دیگر کاربران برای تغیید امضاء باشد.

مدیران پایگاه داده می توانند داده های را به ترتیب مراحل زیر امضاء دیجیتالی کنند.

۱- گواهینامه و صاحب داده باید با هم جفت شوند.
۲- امتیاز کنترول گواهینامه از عموم باید گرفته شود.
۳- امضاء دیجیتالی توسط SignByCert.
۴- تشخیص امضاء صاحب داده توسط VerifySignedByCert.
کد زیر برای داستان بالا ساخته شده است.
نکته : کد بالا را کپی نکنید! تایپ کنید!ُ

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
معرفی نویسنده
حمید فرد
مقالات
6 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
حمید فرد
پروفایل نویسنده
title sign
دیدگاه کاربران

    • جناب طاهری: امیدوار بودم که این وبسایت مانند دیگر وبسایت ها نباشه ولی امیدواریم نا بجا بود. بنده گزارش جلسه اول دوره افزایش کوری را مطالعه کردم که نتیجه آن نکات زیر می باشد. به دلیل آنکه نظر بنده در گزارش شما و در قسمت نظرات دوره حذف گردیده بنده دیگر مایل به ارایه مقالات در وبسایت شما نیستم.

        نکته اول: Transaction Log File در سیستمهای پایگاه داده ای مانند SQL Server فقط برای Recovery بعد از خرابی هستند و مدیریت تراکنش در قسمتی دیگر از SQL Server اجرا می شود.

      نکته دوم: Buffer Pool فقط Data Page ها را نگه داری می کند که البته Index هم یک نوع از آن است نه شیء دیگری. لطفا … را حذف کنید.
      نکته سوم: DBCC MEMORYSTATUS در قسمت Buffer Pool قسمتهای حافظه را نشان نمی دهد. بلکه درباره تعداد  کل صفحه ها- صفحه های کثیف – تعداد قفلهای فیزیکی روی حافظه و در انتها زمان نگه داری صفحه های داده در حافظه است.
      لطفا بیشتر دقت کنید. 
    •  سلام مسعود و حمید عزیز
      تشکر از پاسخ هاتون, این مقاله ها و روش هایی رو که پیشنهاد فرمودید رو مطالعه میکنم و از اونجایی که مبحث بسیار جذابیه, حتما نتیجه تست ها و مطالعه رو تو سایت خواهم گذاشت.
      راستی حمید این سوال واسه پروژه نبود, کنجکاوی شخصی بود و البته باید اول روش تحقیق میکردم بعد مزاحم تو و مسعود میشدم.

    •  سیاوش: شما می توانید Certificate را از طریق Dot Net بارگذاری کنید و در نرم افزار خود داده را انکریپت و در اس کیو ال داده را دیکریپت کنید ولی این مدل باعث پیچیده گی مدریت سیستم می شود به دلیل کاربران زیاد. و اینکه البته Dot Net 4.5.6 و SQL Server 2016 قابلیت Always Encrypted رو دارن ولی این فقط برای نرم افزار است و برای هر کاربر مجزا کلید نمی سازد.

      شما می توانید از این روشی که گفتم تمام انکریپت و دیکریپت را در اس کیو ال انجام دهید بدون آنکه تغییراتی در نرم افزار انجام شود.
       
      واسه پروژه بود سوالتون ؟ 🙂
    •  سلام
      تشکر از مقاله خوبتون.
      یک سوال, این حالت و در نظر بگیر که میخواهیم پرایوت کی کاربر نزد خودش باشه و پابلیک کی اش در دسترس عموم, با این حساب انتظار داریم رمز نگاری داده توسط پرایوت کی سمت ماشین خود کاربر و مثلا توسط اپلیکیشن کاربردیش انجام شه و دیکیریپت اون توسط پابلیک کی سمت اس کیو ال (البته میتونه این کار هم سمت کاربر بیننده متن انجام بدیم ولی ما تو سناریومون میگیم سمت اس کیو ال), بنابر این سناریو, پرایوت کی نمیتونه در دسترس اس کیو ال قرار بگیره, و فقط پایلیک کی رو داره. میدونی چطور میشه این سناریو رو هندل کرد

    • با سلام و احترام

      داستان و مطلب علمیتون ؛ باعث درک بهتر موضوع شده واقعا عالی بود.
      با تشکر
    •  ممنون از همگی بابت نظراتتون.

    •  عالی بود فقط اگه امکان داره در مورد امضای دیجیتال مطالب بیشتری در سایت قرار دهید با تشکر

      •  متاسفانه به دلیل اینکه این مطالب از دوره آموزشی هستش بیشتر از این نمی توانم مطالب قرار دهم. 

    •  سلام

      مطلب مهم ودر جای خود بسیار کاربردی بود.
      تشکر از به اشتراک گذاری مطلب تون .
    •  عذر میخوام ، کد مقاله از جنس تصویره و تو گوشیم لود نشده بود که با بروزرسانی مرورگر درست شد . ازتون عذر خواهی میکنمپو بابت مقاله خوبتون تشکر میکنم.

    •  فک کنم جناب مهندس فراموش کردن مقاله رو کامل قرار بدند!

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
جشنواره عیدآموز نیک آموز، سال جدید رو با قدرت شروع کن
مشاهده تخفیف ها
close-image