داده پوشانی
داده پوشانی یا پوشش‌دهی داده (به انگلیسی: data masking) یا مبهم‌سازی داده (به انگلیسی: data obfuscation) فرایند پنهان کردن داده اصلی با محتوای اصلاح شده (کاراکترها یا داده‌های دیگر) می‌باشد.
دلیل اصلی اعمال پوشش‌دهی به یک ، محفاظت از داده‌هایی است که به عنوان اطلاعات شناسایی شخصی، داده‌های شخصی حساس یا داده‌های حساس تجاری طبقه‌بندی می‌شوند. با این حال، داده‌ها باید برای اهداف چرخه‌های آزمون معتبر در حال انجام، قابل استفاده باقی‌بمانند. همچنین باید واقعی به نظر برسند و نامتناقض ظاهر شوند. اعمال پوشش‌دهی برای داده‌ای که خارج از یک سیستم تولیدی مشترک ارائه شده است، رایج تر می‌باشد. به عبارت دیگر، جایی که داده‌ها در توسعه نرم‌افزار، ساخت افزونه‌های برنامه و مدیریت چرخه‌های آزمون مختلف مورد استفاده قرار می‌گیرند. این روش رایج در رایانش سازمانی است که داده از سیستم‌های تولیدی برای پرکردن مولفه داده‌ای که برای محیط‌های غیرتولیدی مورد نیاز است، به دست آورده شود. با این حال، این روش همیشه به محیط‌های غیرتولیدی محدود نمی‌شود. در برخی سازمان‌ها، داده‌هایی که در صفحه‌های پایانه برای متصدیان مرکز تماس پدیدار می شوند، ممکن است داده پوشانی به صورت پویا بر مبنای مجوزهای امنیتی کاربر اعمال شود (به عنوان مثال جلوگیری از مشاهده اعداد کارت اعتباری در سیستم‌های صورت حساب توسط متصدیان مرکز تماس).
نگرانی اصلی از دیدگاه یک حاکمیت شرکتی این است که در این محیط‌های غیرتولیدی، کارکنان برای کار کردن با اطلاعات مشمول در داده‌های تولیدی، همیشه پاکسازی امنیتی نشده‌اند. این عمل نشان‌دهنده یک حفره امنیتی است که می‌توان داده‌ها را با استفاده از کارکنان غیرمجاز کپی برداری کرد و اقدامات امنیتی مرتبط با کنترل‌های سطح تولیدی استاندارد را به راحتی دور زد؛ که نشان‌دهنده یک نقطه دسترسی برای نقض امنیت داده‌ها می‌باشد.
رویه کلی داده پوشانی در یک سطح سازمانی باید به شدت با روش مدیریت آزمون و روش پژوهشی ضمنی همراه باشد و باید فرایندهایی را برای توزیع زیرمجموعه‌های داده آزمایشی پوشش‌دهی شده دربرگیرد.
داده های مربوط به پوشش‌دهی و مبهم‌سازی باید در چندین سطح معنایی ثابت باشند:
جانشینی یکی از مؤثرترین روش‌ها برای اعمال داده پوشانی می‌باشد و توانایی حفظ شکل و حس معتبر سوابق داده را دارد.
امکان انجام پوشش‌دهی به گونه‌ای که یک مقدار معتبر دیگر بتواند با مقدار موجود جایگزین شود را فراهم می‌کند. در رویکرد نهان کردن زیرمجموعه داده کلی که آیا این مجموعه‌داده، مجموعه‌داده پوشش‌دهی داده شده‌است یا خیر، چندیدن فیلد داده وجود دارد که بهینه‌ترین مزیت را فراهم می‌کنند. به‌طور مثال، اگر با دادهای منبع سروکار دارید که شامل سوابق مشتری است، نام و نام‌خانوادگی می‌تواند به‌طور تصادفی از یک فایل جستجو ارائه‌شده یا سفارشی جایگزین شود. اگر در اولین مرتبه جانشینی امکان استفاده از نام مذکر برای تمامی نام‌ها فراهم می‌شود، پس در مرتبه دوم نیاز است تا نام مؤنث در تمام نام‌هایی که جنسیتشان برابر با "F" می‌باشد، استفاده شود. با استفاده از این رویکرد می‌توانیم به راحتی ترکیب جنسیت در ساختار داده را حفظ کنیم، ناشناس بودن را در سوابق داده اعمال کنیم اما ظاهر واقعی پایگاه داده را هم حفظ کنیم به صورتی که به راحتی نتوان تشخیص داد که پایگاه داده از داده‌های پوشش‌دهی شده تشکیل شده‌است.
این روش جانشینی احتیاج دارد تا برای بسیاری از فیلدهایی که در ساختار پایگاه داده در سرار جهان وجود دارد اعمال شود، مانند شماره تلفن، کد پستی و همچنین شماره کارت اعتباری و سایر شماره‌های انواع کارت مانند شماره‌های تأمین اجتماعی و شماره‌های Medicare که باید این اعداد، مطابق با آزمون بررسی سرجمع الگوریتم لوهان باشد.
در بیشتر موارد، پرونده‌های جانشینی نیاز به گستردگی نسبی دارند، بنابراین داشتن مجموعه داده‌های جانشینی بزرگ و همچنین توانایی اعمال مجموعه‌های جانشینی داده‌های سفارشی باید یک عامل ک‍لیدی در معیارهای ارزیابی برای هر راه‌حل داده پوشانی باشد.
روش جابجایی یک شکل بسیار متداول از مبهم‌سازی داده‌است. این روش شبیه به روش جانشینی است، اما مجموعه جانشینی از همان ستونی که داده پوشش‌دهی می‌شود، بدست می‌آید. درحالت خیلی ساده، داده‌ها بصورت تصادفی درون یک ستون جابجا می‌شوند. با این حال، اگر در حالت مجزا مورد استفاده قرار گیرد، هر کسی با هر اطلاعاتی از داده اصلی می‌تواند سناریوی «چه می‌شود اگر» را به مجموعه‌داده اعمال کند و سپس یک هویت واقعی را کنار هم قرار دهد. در صورت رمزگشایی الگوریتم جابجایی، روش جابجایی نیز قابل بازگشت است.
با این وجود، جابجایی دارای برخی نقاط قوت واقعی در زمینه‌های مشخص است. به عنوان مثال، در پایان سال برای نشان دادن اطلاعات مالی در یک پایگاه داده آزمایشی، شخص می‌تواند نام فروشندگان را پوشش‌دهی کرده و سپس مقدار ارزش حساب‌ها را در سرتاسر پایگاه داده پوشش‌دهی داده شده، جابجا کند. بسیار بعید است که کسی، حتی یک نفر که از اطلاعات داده اصلی باخبر است، بتواند یک رکورد واقعی داده را به مقادیر اصلی خود بازگرداند.
روش انحراف معیار عددی برای استفاده در زمینه‌های اطلاعات مالی و زمانی‌محور بسیار مفید است. به‌طور مؤثر، روشی که از این نوع پوشش‌دهی استفاده می‌کند، هنوز هم می‌تواند یک دامنه معنی‌دار در یک مجموعه داده‌های مالی مانند فهرست دستمزد باقی بگذارد. اگر انحراف معیار به کار رفته در حدود %۱۰-/+ باشد، هنوز هم داده‌های بسیار معنی‌داری از نظر محدوده حقوق‌های پرداختی به دریافت کنندگان وجود دارند.
همین امر در مورد اطلاعات زمانی نیز صادق است. اگر مجموعه داده‌های کلی نیاز به حفظ یکپارچگی داده‌های جمعیت‌شناسی و بیم‌سنجی داشته باشند، با استفاده از اعمال یک انحراف معیار عددی تصادفی از ۱۲۰-/+ روز به فیلدهای زمانی، توزیع زمانی حفظ خواهد شد اما هنوز هم مانع از ردیابی به یک عضو شناخته شده بر اساس زمان واقعی یا تاریخ تولد یا مقدار زمانی شناخته شده از هر سابقه‌ای که پوشش‌دهی شده‌است، می‌شود.
رمزگذاری غالباً پیچیده‌ترین روش برای حل مسئله داده پوشانی می‌باشد. الگوریتم رمزگذاری اغلب مستلزم این است که یک «کلید» برای مشاهده داده‌ها بر اساس مجوزهای کاربر اعمال شود. اغلب به نظر می‌رسد که بهترین راه حل باشد اما در عمل ممکن است کلید به فردی بدون داشتن مجوزهای مناسب برای مشاهده داده‌ها، داده شود و این باعث می‌شود که هدف پوشش‌دهی با شکست مواجه شود. پایگاه‌های داده قدیمی ممکن است با اعتبارنامه‌های کلید اصلی عرضه شده کپی شوند و همان مشکل کنترل نشده قبلی پابرجاست.
به تازگی، مسئله رمزگذاری داده‌ها ضمن حفظ خصوصیات هویت‌ها، به رسمیت شناخته شده و محبوبیت جدیدی را در میان فروشندگان و دانشگاهیان به دست آورده‌است. چالش جدیدی برای الگوریتم‌هایی با نام FPE (رمزگذاری حفظ ساختار) به وجود آمده‌است. آنها بر اساس روش الگوریتمی AES مورد قبول واقع می‌شوند که باعث می‌شود تا توسط مؤسسه ملی فناوری و استانداردها یا NIST تشخیص داده شوند.
گاهی اوقات یک رویکرد بسیار ساده در پوشش‌دهی یک فیلد مشخص با استفاده از مقدار تهی اتخاذ می‌شود. رویکرد مقدار تهی تنها برای جلوگیری از مشاهده عنصر داده مفید است.
تقریباً در کلیه موارد، میزان یکپارچگی داده‌هایی که در حالت پوشش‌دهی نگهداری می‌شوند، کاهش می‌یابد. این یک ارزش واقع گرایانه نیست و هرگونه اعتبارسنجی منطقی نرم‌افزار ممکن است در نرم‌افزار سمت کاربر تحت آزمایش با شکست مواجه شود. همچنین این موضوع برای هر کسی که تمایل به مهندسی معکوس هر یک از داده‌های هویتی‌ای که پوشش‌دهی نیز تا حدی روی مجموعه داده آن اعمال شده‌است را دارد، برجسته می‌شود.
درهم‌سازی حروف یا پنهان‌سازی فیلدهای مشخص، یکی دیگر از روش‌های ساده و در عین حال بسیار مؤثر برای جلوگیری از مشاهده اطلاعات حساس است. این روش، تعمیم یافته روش قبلی یعنی ابطال است اما تأکید بیشتری بر روی نگه‌داشتن داده‌های واقعی دارد و تمام داده‌ها به‌طور کامل بایکدیگر پوشش‌دهی نمی‌شوند.
این روش معمولاً برای داده‌های کارت اعتباری در سیستم‌های تولیدی بکار گرفته می‌شود. به عنوان مثال، یک متصدی در مرکز تماس ممکن است بخواهد یک مورد را به صورت حساب کارت اعتباری مشتریان اضافه کند. سپس آنها با استفاده از ۴ رقم آخر XXXX XXXX xxxx 6789، مرجع صورت‌حساب کارت را ذکر می‌کنند. یک متصدی فقط می‌تواند ۴ رقم آخر از شماره کارت را مشاهده کند، اما به محض اینکه سیستم صدور صورت‌حساب، جزئیات مشتری را برای شارژ کردن منتقل می‌کند، شماره کامل برای سیستم‌های درگاه پرداخت آشکار می‌شود.
این سیستم برای سیستم‌های آزمایشی بسیار مؤثر نیست اما برای سناریو صورت‌حساب که در بالا توضیح داده شد، بسیار مفید است. همچنین معمولاً به عنوان روش داده پوشانی پویا نیز شناخته می‌شود.
قوانین اضافی را می‌توان بدون توجه به نحوه ساخت روش‌های پوشش‌دهی، در هر راه‌حل پوشش‌دهی در نظر گرفت. مقالات آگونیستیک منبع خوبی از اطلاعات برای بررسی برخی ملزومات پیچیده متدوال برای راه‌حل‌های پوشش‌دهی تجاری است که شامل قوانین هم‌گام سازی ردیف داخلی، قوانین همگام سازی داخلی جدول و قوانین همگام سازی جدول به جدول می‌شود.
داده پوشانی با ساخت داده‌های آزمایشی همراه است. دو نوع اصلی داده پوشانی عبارتند از داده پوشانی ایستا و حین انتقال.
داده پوشانی ایستا معمولاً روی نسخه اصلی پایگاه داده اعمال می‌شود، اما می‌تواند برای مقادیر در منابع دیگر از جمله فایل‌ها نیز اعمال شود. در محیط‌های پایگاه داده، مدیران پایگاه داده تولیدی معمولاً پشتیبان‌های جدولی را در یک محیط مجزا بارگذاری می‌کنند، مجموعه‌داده را به زیرمجموعه‌ای که داده‌های لازم برای یک نوبت خاص از آزمایش را نگه می‌دارد، کاهش می‌دهند (تکنیکی با نام "زیرمجموعه یابی")، قوانین داده پوشانی را به داده‌ای که در حالت ایستا است اعمال می‌کنند، تغییرات کد ضروری را از کنترل منبع اعمال می‌کنند، یا داده را به محیط مورد نظر وارد می‌کنند.
داده پوشانی قطعی، فرایند جایگزینی یک مقدار در یک ستون با مقدار مشابه در همان ردیف، همان جدول، همان پایگاه داده/طرح و بین نمونه‌ها/سرورها/پایگاه‌های‌داده‌است. به‌طور مثال: یک پایگاه داده چندین جدول دارد که هرکدام دارای ستونی با محتوای اسم‌های کوچک است. با پوشش‌دهی قطعی، اسم کوچک همیشه با همان مقدار مشابه جایگزین می‌شود - هر جا که ممکن است «لین» در پایگاه داده باشد - همیشه «لین» تبدیل به «دنیز» می‌شود.
همچنین گزینه‌های دیگری برای داده‌پوشانی ایستا وجود دارد که متکی به اختلالات تصادفی داده‌ها می‌باشند و برخی از ویژگی‌های آماری داده‌های اصلی را حفظ می‌کنند. روش Differential privacy و روش "DataSifter" از نمونه روش‌های مبهم سازی داده آماری می‌باشند.
داده پوشانی حین انتقال (به انگلیسی: on-the-fly) در فرایند انتقال داده از محیطی به محیطی دیگر رخ می‌دهد، بدون اینکه تغییری در دیسکی که داده‌ها روی آن قرار گرفته‌اند، انجام شود. روش مشابهی به «داده پوشانی پویا» اعمال می‌شود اما یک سابقه در هر لحظه. این نوع از داده پوشانی برای محیط‌های توسعه پیوسته و همچنین برای نرم‌افزارهای کاملاً یکپارچه بسیار مفید است. سازمان‌هایی که از توسعه پیوسته یا شیوه‌های تحویل مداوم استفاده می‌کنند، زمان لازم برای ایجاد نسخه پشتیبان و بارگذاری آن در نسخه اصلی پایگاه داده را ندارند؛ بنابراین، ارسال مداوم زیرمجموعه‌های کوچکتر (دلتاها) داده‌های پوشش‌دهی آزمایشی تولیدی، از اهمیت زیادی برخوردار است. توسعه دهندگان در نرم‌افزارهای کاملاً یکپارچه از همان ابتدا فیدها را از سایر سیستم‌های تولیدی دریافت می‌کنند و پوشش‌دهی این فیدها یا نادیده گرفته می‌شود یا بودجه‌ای به آن تخصیص نمی‌یابد و این امر باعث می‌شود تا سازمان‌ها با یکدیگر منطبق نباشند. داده پوشانی حین انتقال در محل، امری ضروری می‌باشد.
داده پوشانی پویا شبیه به داده پوشانی حین انتقال می‌باشد اما از این نظر متفاوت است که داده پوشانی حین انتقال در مورد کپی‌کردن داده‌ها از یک منبع به یک منبع دیگر است که دومی می‌تواند به اشتراک گذاشته شود. داده پوشانی پویا در زمان اجرا، به صورت پویا و بر حسب تقاضا اتفاق می‌افتد، بنابراین نیازی به منبع داده ثانویه برای ذخیره داده‌های پوشش‌دهی به صورت پویا نمی‌باشد.
داده پوشانی پویا چندین سناریو را فراهم می‌کند، که بسیاری از آنها حول مقررات محکم حفظ حریم خصوصی می‌باشند، به عنوان مثال سازمان پولی سنگاپور یا مقررات حفظ حریم خصوصی در اروپا.
داده پوشانی پویا مبتنی بر ویژگی و سیاست محور است. سیاست‌ها شامل موارد زیر می‌باشد:
از داده پوشانی پویا نیز می‌توان برای رمزگذاری یا رمزگشایی مقادیر حین انتقال استفاده کرد، به خصوص هنگامی که از رمزگذاری حفظ قالب استفاده می‌کنیم.
در سالهای اخیر چندین استاندارد برای پیاده‌سازی فیلترسازی و پوشش‌دهی پویا پدیدار شده‌است. به عنوان مثال، سیاست‌های XACML می‌تواند برای داده‌پوشانی داخل پایگاه‌های داده مورد استفاده قرارگیرند.
پنج فناوری برای اعمال داده پوشانی پویا وجود دارد:
در سالهای اخیر، سازمان‌ها بدون توجه به اینکه نرم‌افزارهای نهایی در فضای ابری میزبانی شوند یا درون‌سازمانی باشند، نرم‌افزارهای جدید خود را بیشتر در فضای ابری توسعه می‌دهند. در حال حاضر راه‌حل‌های فضای ابری به سازمان‌ها اجازه می‌دهند تا از زیرساخت به عنوان سرویس یا IaaS، بستر به عنوان سرویس یا PaaS و نرم‌افزار به عنوان سرویس یا SaaS استفاده کنند. حالت‌های مختلفی برای ایجاد داده‌های آزمایشی و انتقال آن‌ها از پایگاه‌های داده درون‌سازمانی به فضای ابری یا بین محیط‌های مختلف داخل فضای ابری وجود دارد. هنگامی که مشتریان به ارائه دهندگان فضای ابری برای مدیریت پایگاه‌های داده‌شان اعتماد می‌کنند و همچنین نیاز به محافظت از اطلاعات شخصی قابل‌شناسایی نیز دارند، داده پوشانی از اهمیت بالایی برخوردار می‌شود. داده پوشانی همواره بخشی از فرایندهای چرخه حیات توسعه سیستم‌ها می‌شود زیرا موافقت‌نامه‌های سطح خدمات محیط‌های توسعه صرف نظر از اینکه میزبانی در فضای ابری یا درون‌سازمانی باشد، معمولاً به اندازه موافقت‌نامه‌های سطح خدمات محیط‌های تولیدی سخت‌گیرانه نیستند.