در مقاله قبل ، موارد استفاده مختلف را در صنایع مستعد حملات تکراری جلسه بررسی کردیم. حملات پخش مجدد جلسه، به ویژه در سناریوهایی که شامل اطلاعات حساس شخصی (PII) می شود، تهدیدی جدی برای حرمت داده های کاربر است. برای مقابله با این حملات، توسعهدهندگان برنامهها ممکن است اقدامات متقابل مختلفی از جمله HTTPS، نشانههای CSRF، احراز هویت چند عاملی (MFA) و تکنیکهای ناشناسسازی دادهها را به کار گیرند. در این بخش، ما رابطه پیچیده بین ناشناس سازی داده ها و حملات ذکر شده در بالا را بررسی می کنیم. بحث ما در این مقاله صرفاً بر روی تکنیک های ناشناس سازی داده ها متمرکز خواهد بود.
با استفاده از تکنیکهای متنوع ناشناسسازی دادهها، میتوان از حملات بازپخش نشست جلوگیری کرد و احتمال افشای اطلاعات شناساییپذیر شخصی (PII) را به حداقل رساند. برخی از این تکنیک ها عبارتند از:
- رمزگذاری
- نام مستعار
- توکن سازی
با اتخاذ یک یا همه روش های ذکر شده در بالا، داده ها می توانند برای مقاصد تحلیلی یا تجربی بدون به خطر انداختن ناشناس بودن افراد مورد استفاده قرار گیرند.
1. رمزگذاری یک تکنیک قدرتمند ناشناس سازی داده است که می تواند به جلوگیری از قرار گرفتن در معرض PII در حملات پخش مجدد جلسه کمک کند. با تبدیل داده های حساس به قالبی غیرقابل خواندن که فقط با یک کلید خاص قابل رمزگشایی است، رمزگذاری می تواند به محافظت از داده ها در حالت استراحت، حمل و نقل و استفاده کمک کند. در اینجا ما چگونگی استفاده از رمزگذاری را در تجارت الکترونیک برای جلوگیری از حملات پخش مجدد جلسه و محافظت از PII بررسی خواهیم کرد.
یکی از موارد استفاده خاص که در آن رمزگذاری بسیار مهم است، ذخیره اطلاعات حساس مانند جزئیات کارت اعتباری یا شماره های شناسایی شخصی (PIN) است. رمزگذاری این داده ها قبل از ذخیره شدن روی دیسک، دسترسی مهاجمان به این اطلاعات را بسیار دشوارتر می کند، حتی اگر بتوانند به رسانه ذخیره سازی دسترسی پیدا کنند.
پیاده سازی کد برای رمزگذاری در یک برنامه NET Core با استفاده از کتابخانه رمزگذاری داخلی:
public static string Encrypt(string input, string key) {
using(var aes = Aes.Create()) {
aes.Key = Encoding.UTF8.GetBytes(key);
aes.IV = new byte[16];
using(var encryptor = aes.CreateEncryptor()) {
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] outputBytes = encryptor.TransformFinalBlock(inputBytes, 0, inputBytes.Length);
return Convert.ToBase64String(outputBytes);
}
}
}
در این مثال، ما از الگوریتم Advanced Encryption Standard (AES) برای رمزگذاری رشته ورودی با استفاده از یک کلید ارائه شده استفاده می کنیم. سپس خروجی به عنوان یک رشته رمزگذاری شده با base64 برگردانده می شود که می تواند به طور ایمن ذخیره یا منتقل شود.
با پیادهسازی رمزگذاری به این روش، وبسایتهای تجارت الکترونیک میتوانند به طور قابل توجهی خطر قرار گرفتن PII و سایر اطلاعات حساس را در معرض حملات پخش مجدد جلسه کاهش دهند. تشخیص این که رمزگذاری به تنهایی نوشدارویی برای رسیدگی به حملات پخش مجدد جلسه ارائه نمی کند بسیار مهم است. این باید با سایر اقدامات امنیتی مانند HTTPS، توکنهای CSRF و MFA تکمیل شود تا از یک رویکرد جامع برای محافظت در برابر چنین تهدیداتی اطمینان حاصل شود.
2.