PDA

View Full Version : رمزنگاری داده های یک ستون



f_arab
پنج شنبه 07 بهمن 1389, 16:27 عصر
با عرض سلام خدمت دوستان عزیز
چطور میتونم داده های یک ستون از جدول رو رمزنگاری کنم؟
منظورم اینه که وقتی میخوام یه داده ای رو وارد دیتابیس کنم، موقع ذخیره شدن رمزنگاری بشه و هنگامی که میخوام از طریق برنامه به اون دسترسی پیدا کنم رمزش باز بشه و به حالتی که اولین بار اونو وارد کرده بودم برگرده
باتشکر

m_omrani
پنج شنبه 07 بهمن 1389, 22:37 عصر
می تونید این کار رو سمت Application انجام بدید. یعنی دیتا رو سمت App رمز کنید و به صورت رمز شده در دیتابیس ذخیره کنید. هر وقت هم دیتا رو از دیتابیس گرفتید مجدداً در سمت App دیتای رمز شده رو باز کنید. مزیت این کار اینه که الگوریتم رمز و کلیدش مستقل از دیتابیس می شه. در غیر این صورت باید الگوریتم رمز و کلیدش رو به نحوی در داخل خود دیتابیس هم پیاده سازی کنید. لذا امنیت کمتره.

shgroup
جمعه 08 بهمن 1389, 10:38 صبح
می تونید این کار رو سمت Application انجام بدید. یعنی دیتا رو سمت App رمز کنید و به صورت رمز شده در دیتابیس ذخیره کنید. هر وقت هم دیتا رو از دیتابیس گرفتید مجدداً در سمت App دیتای رمز شده رو باز کنید. مزیت این کار اینه که الگوریتم رمز و کلیدش مستقل از دیتابیس می شه. در غیر این صورت باید الگوریتم رمز و کلیدش رو به نحوی در داخل خود دیتابیس هم پیاده سازی کنید. لذا امنیت کمتره.

دوست عزیز فکر نمی کنید از نظر امنیت ، بهتر است الگوریتم سمت سرور باشد تا کلاینت ؟!

m_omrani
جمعه 08 بهمن 1389, 12:28 عصر
می دونید. به نظرم مستقیماً راهی برای این کار وجود نداشته باشه. البته SQL Server 2008 قابلیت رمز کردن دیتابیس رو داره. ولی چندان بی دردسر هم نیست. به جز اون خودتون باید این رمزنگاری رو انجام بدید. حالا یا سمت دیتابیس یا سمت Application. چند حالت وجود داره:

برنامه شما تحت وبه: خوب. در این حالت برنامه شما سمت سروره.
برنامه شما تحت ویندوزه و دیتابیس سرور روی همون کامپیوتره: خوب. اینجا بحث امنیت اصلاً به کل فرق می کنه. چون خود دیتابیس رو همین کامپیوتر قرار داره.
برنامه شما تحت ویندوزه و دیتابیس سرور روی کامپیوتر دیگه ایه: این دقیقاً حالتیه که شما بهش اشاره می کنید (الگوریتم سمت کلاینته). اگرچه وقتی برنامه کامپایل شده باشه طبعاً به این راحتی کسی نمی تونه بره سراغ کُد برنامه شما. مگر این که بخواد DeCompile اش بکنه. اینجا دیگه موضوع دیگه ای پیش میاد. یعنی حفاظت از سورس کامپایل شده برنامه تحت ویندوز که طبعاً بحثش متفاوته.