برنامه نویسی

اجرای عملی سیستم صدور گواهینامه امنیتی برنامه Hongmeng Next در سطح سازمانی – انجمن DEV

Summarize this content to 400 words in Persian Lang

هدف این مقاله بررسی عمیق جزئیات فنی سیستم HarmonyOS Next هوآوی (در حال حاضر API12) در توسعه یک پلتفرم تجارت الکترونیک چند زبانه و خلاصه کردن آن بر اساس شیوه‌های توسعه واقعی است. عمدتاً به عنوان حاملی برای به اشتراک گذاری و تبادل فناوری استفاده می شود و اشتباهات و حذفیات اجتناب ناپذیر است تا نظرات و سؤالات ارزشمندی را برای پیشرفت متقابل مطرح کنند. این مقاله محتوای اصلی است. هر گونه کپی برداری به هر شکل باید منبع و نویسنده اصلی را ذکر کند

در توسعه برنامه های کاربردی در سطح سازمانی، ساخت یک سیستم احراز هویت قدرتمند و ایمن، کلید تضمین امنیت داده های سازمانی و عملیات عادی تجاری است. این مقاله در مورد فرآیند واقعی ساخت یک سیستم صدور گواهینامه امنیتی برنامه در سطح سازمانی بر اساس سیستم Hongmeng Next توضیح خواهد داد که تمام جنبه‌ها از چالش‌ها و تعیین هدف گرفته تا بهینه‌سازی عملکرد و تضمین در دسترس بودن بالا را پوشش می‌دهد.

1. چالش ها و اهداف امنیتی برنامه در سطح سازمانی

(1) سناریوهای چند کاربره و مدیریت مجوز

چالش های سناریوی چند کاربر
برنامه های کاربردی در سطح سازمانی معمولاً کاربران زیادی از جمله کارمندان داخلی، شرکا، مشتریان و سایر نقش های مختلف را درگیر می کنند. برای مثال، کارمندان ممکن است نیاز به دسترسی به ماژول‌های کسب‌وکار خاص، مشاهده و اصلاح داده‌های مرتبط داشته باشند، شرکا ممکن است فقط بتوانند برخی از اطلاعات مربوط به همکاری را مشاهده کنند، و مشتریان ممکن است فقط مجوزهای مدیریت اطلاعات شخصی محدودی داشته باشند. چگونگی اطمینان از شناسایی دقیق هویت کاربر و تخصیص معقول مجوزها در سناریوهای پیچیده چند کاربره، چالش اصلی پیش روی امنیت برنامه های کاربردی در سطح سازمانی است.

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

(2) برنامه ریزی سیستم صدور گواهینامه ایمنی

اهداف سیستم صدور گواهینامه
یک سیستم احراز هویت ایمن و قابل اعتماد بسازید تا از صحت و مشروعیت هویت کاربران اطمینان حاصل کنید. برای برآوردن سناریوهای مختلف کاربر و نیازهای امنیتی، از روش‌های احراز هویت چندگانه مانند تأیید هویت نام کاربری و رمز عبور، احراز هویت کد تأیید پویا، تأیید هویت بیومتریک (مانند تشخیص اثر انگشت، تشخیص چهره، در صورت پشتیبانی توسط دستگاه) و غیره استفاده کنید. فرآیند احراز هویت باید از امنیت بالایی برخوردار باشد تا از تهدیدات امنیتی مانند نشت رمز عبور، شکستن brute force و حملات انسان در میانه جلوگیری کند و در عین حال تجربه کاربری خوبی را ارائه دهد و پیچیدگی احراز هویت کاربر را کاهش دهد.

اهداف امنیتی کلی
علاوه بر احراز هویت و مدیریت حقوق، سیستم صدور گواهینامه امنیتی برنامه در سطح سازمانی باید رمزگذاری داده ها، انتقال ایمن، ممیزی امنیتی و سایر جنبه ها را نیز پوشش دهد. از محرمانه بودن، یکپارچگی و در دسترس بودن داده های سازمانی در حین ذخیره سازی و انتقال اطمینان حاصل کنید، حوادث امنیتی را به موقع شناسایی کرده و به آنها پاسخ دهید، و از دارایی های اصلی و اسرار تجاری سازمان محافظت کنید.

2. طراحی کلی معماری

(1) طراحی امنیتی بر اساس معماری میکروسرویس

مزایای معماری میکروسرویس
با اتخاذ یک معماری میکروسرویس، برنامه های کاربردی در سطح سازمانی به چندین میکروسرویس مستقل تقسیم می شوند که هر میکروسرویس بر روی عملکردهای تجاری خاص تمرکز دارد. از نظر طراحی امنیتی، معماری میکروسرویس انعطاف پذیری و مقیاس پذیری بهتری دارد. سیاست‌های امنیتی و مکانیسم‌های حفاظتی می‌توانند به طور مستقل بر اساس الزامات امنیتی میکروسرویس‌های مختلف برای کاهش گسترش خطرات امنیتی مستقر شوند. به عنوان مثال، سرویس های احراز هویت کاربر، خدمات مدیریت حقوق، خدمات داده های تجاری و غیره را به ترتیب به میکروسرویس های مستقل تقسیم کنید و تقویت امنیتی را انجام دهید.

اجزای خدمات امنیتی
توابع مرتبط با امنیت، مانند مؤلفه‌های تأیید هویت، مؤلفه‌های مجوز، مؤلفه‌های رمزگذاری و غیره را به‌گونه‌ای که این مؤلفه‌ها می‌توانند مجدداً در میکروسرویس‌های مختلف مورد استفاده قرار گیرند، ترکیب کنید. از طریق مشخصات رابط یکپارچه، تعامل بین میکروسرویس ها و اجزای امنیتی ایمن و قابل اعتماد تضمین می شود. به عنوان مثال، مؤلفه تأیید هویت مسئول پردازش درخواست تأیید هویت ورود کاربر، مؤلفه تأیید مسئولیت کنترل دسترسی به منابع میکروسرویس بر اساس مجوزهای کاربر، و مؤلفه رمزگذاری مسئول عملیات رمزگذاری و رمزگشایی داده ها است.

(2) مرکز مدیریت رمز عبور و احراز هویت

عملکرد مدیریت رمز عبور
یک سیستم مدیریت رمز عبور متمرکز ایجاد کنید تا مسئولیت تولید، ذخیره سازی، تأیید و به روز رسانی رمزهای عبور کاربران را بر عهده بگیرد. یک خط مشی رمز عبور قوی اتخاذ کنید که به گذرواژه نیاز دارد که ترکیبی از حروف، اعداد و کاراکترهای خاص داشته باشد و به طور منظم از کاربران بخواهد تا رمزهای عبور خود را به روز کنند. هنگام ذخیره رمزهای عبور، از الگوریتم‌های رمزگذاری پیشرفته (مانند الگوریتم‌های هش همراه با فناوری salting) برای رمزگذاری رمزهای عبور استفاده کنید تا از امنیت رمزهای عبور در طول ذخیره‌سازی اطمینان حاصل کنید. در عین حال، عملکردهای بازیابی رمز عبور و تنظیم مجدد را برای کمک به کاربران برای بازیابی رمزهای عبور خود از طریق روش های تأیید امن (مانند تأیید ایمیل، کد تأیید پیام کوتاه) ارائه می دهد.

نقش مرکز صدور گواهینامه
مرکز صدور گواهینامه به عنوان مرکز اصلی برای صدور گواهینامه امنیتی برنامه های کاربردی در سطح سازمانی، مسئولیت مدیریت یکپارچه فرآیند صدور گواهینامه کاربر را بر عهده دارد. چندین روش احراز هویت را ادغام می کند و ماژول احراز هویت مربوطه را برای تأیید هویت بر اساس انتخاب کاربر یا پیکربندی برنامه فراخوانی می کند. یک مکانیسم ارتباطی امن بین مرکز احراز هویت و هر میکروسرویس برقرار می شود پس از اینکه کاربر با موفقیت احراز هویت شد، اطلاعات هویت کاربر و اطلاعات مجوز در اختیار میکروسرویس قرار می گیرد تا اطمینان حاصل شود که میکروسرویس می تواند پردازش تجاری ایمن را بر اساس این اطلاعات انجام دهد.

3. فرآیند ثبت نام و ورود کاربر

(1) پردازش اطلاعات ثبت نام پیچیده

جمع آوری و تایید اطلاعات
فرآیند ثبت درخواست در سطح سازمانی معمولاً مستلزم جمع‌آوری مقدار زیادی از اطلاعات پیچیده کاربر است، علاوه بر نام کاربری و رمز عبور اصلی، ممکن است شامل شماره‌های کارمند (برای کارمندان داخلی)، نام شرکت (برای شرکا) نیز باشد. اطلاعات، آدرس و غیره در طی مراحل ثبت نام، این اطلاعات مشمول تایید فرمت دقیق و تایید منطقی برای اطمینان از صحت و کامل بودن اطلاعات می باشد. به عنوان مثال، منحصر به فرد بودن شماره کارمندان، فرمت صحیح شماره تلفن همراه و غیره را تأیید کنید.

ذخیره سازی رمزگذاری شده اطلاعات
اطلاعات کاربر جمع آوری شده از طریق ثبت نام طبقه بندی و پردازش می شود و اطلاعات حساس (مانند رمز عبور، شماره شناسه و …) به صورت رمزگذاری شده ذخیره می شود. برای رمزهای عبور، از یک الگوریتم رمزگذاری قوی برای هش کردن و ذخیره سازی اطلاعات حساس دیگر استفاده کنید، یک روش رمزگذاری مناسب را بر اساس اهمیت و الزامات امنیتی آن انتخاب کنید. در عین حال، اطمینان حاصل کنید که پایگاه داده ذخیره اطلاعات کاربر دارای مکانیسم های کنترل دسترسی دقیق برای جلوگیری از دسترسی غیرمجاز است.

(2) ادغام چندین روش ورود

با نام کاربری و رمز عبور وارد شوید
به عنوان رایج ترین روش ورود، از امنیت ورود نام کاربری و رمز عبور اطمینان حاصل کنید. در صفحه ورود، تأیید فرمت بر روی نام کاربری و رمز عبور وارد شده توسط کاربر برای جلوگیری از تزریق SQL و سایر حملات انجام می شود. رمز عبور با استفاده از یک پروتکل امنیتی (مانند HTTPS) در حین انتقال رمزگذاری می شود و رمز عبور ذخیره شده برای تأیید در سمت سرور استفاده می شود، در طول فرآیند تأیید، از فناوری salting برای افزایش سختی شکستن رمز عبور استفاده می شود.

ورود به سیستم کد تأیید پویا
برای برخی از حالات با الزامات امنیتی بالا یا زمانی که کاربران رمزهای عبور خود را فراموش می کنند، یک روش ورود کد تأیید پویا ارائه شده است. پس از اینکه کاربر نام کاربری را وارد کرد، سیستم یک کد تایید پویا را به شماره تلفن همراه یا آدرس ایمیل کاربر ارسال می کند. کد تأیید پویا باید به موقع (مثلاً به مدت 5 دقیقه معتبر باشد) و منحصر به فرد باشد تا از استفاده مجدد از کد تأیید جلوگیری شود.

احراز هویت بیومتریک (اختیاری)
اگر دستگاه از آن پشتیبانی می‌کند، روش‌های احراز هویت بیومتریک مانند تشخیص اثر انگشت یا تشخیص چهره را ادغام کنید. هنگامی که کاربر برای اولین بار بیومتریک را تنظیم می کند، داده های بیومتریک به طور ایمن (با استفاده از رمزگذاری و فناوری ذخیره سازی ایمن) ذخیره می شود و با حساب کاربر مرتبط می شود. هنگام ورود به سیستم، داده های بیومتریک کاربر به دست می آید و برای تأیید صحت با داده های ذخیره شده مقایسه می شود تا از صحت هویت کاربر اطمینان حاصل شود. در طول فرآیند احراز هویت بیومتریک، باید به حفظ حریم خصوصی داده های بیومتریک کاربر و جلوگیری از نشت داده ها توجه شود.

4. سیاست رمز عبور و مکانیزم رمزگذاری

(1) تدوین خط مشی رمز عبور در سطح سازمانی

الزامات پیچیدگی رمز عبور
قوانین پیچیده پیچیدگی رمز عبور را تعیین کنید که مستلزم داشتن رمزهای عبور حداقل 8 کاراکتر و حداقل سه نوع حروف بزرگ، حروف کوچک، اعداد و کاراکترهای خاص باشد. به عنوان مثال، رمز عبور می تواند ترکیبی مانند “Abc@123def” باشد تا اطمینان حاصل شود که رمز عبور به اندازه کافی قوی است و به سختی می توان آن را با نیروی بی رحمانه شکست.

تاریخ انقضای رمز عبور و یادآوری به روز رسانی
یک دوره اعتبار رمز عبور تعیین کنید، مثلاً کاربران را مجبور کنید رمزهای عبور خود را هر 90 روز به روز کنند. وقتی گذرواژه در شرف منقضی شدن است، به کاربران یادآوری کنید که رمز عبور خود را از طریق اعلان‌های درون‌برنامه یا ایمیل‌های قبلی (مثلاً ۷ روز قبل) به‌روزرسانی کنند. در همان زمان، تاریخچه رمز عبور کاربر نیز ثبت می شود تا از استفاده مجدد کاربران از رمزهای عبور اخیراً استفاده شده جلوگیری شود.

محدودیت های خطای رمز عبور و قفل حساب
برای جلوگیری از شکستن brute force، محدودیتی برای تعداد تلاش های رمز عبور نادرست تعیین کنید، به عنوان مثال، پس از پنج بار وارد کردن رمز عبور نادرست، حساب به طور موقت به مدت 30 دقیقه قفل می شود. در طول دوره قفل حساب، کاربر نمی تواند وارد سیستم شود مگر اینکه قفل حساب از طریق سایر روش های تأیید امنیتی (مانند تأیید ایمیل یا تماس با سرپرست) باز شود.

(2) انتخاب الگوریتم رمزگذاری و کاربرد

رمزگذاری ذخیره سازی رمز عبور
یک الگوریتم رمزگذاری ذخیره سازی رمز عبور مناسب برای برنامه های کاربردی سطح سازمانی مانند الگوریتم های هش مانند bcrypt یا Argon2 انتخاب کنید. این الگوریتم‌ها دارای ویژگی‌های هزینه محاسباتی بالا و مقاومت قوی در برابر ترک‌های brute force هستند. هنگام استفاده از الگوریتم هش، همراه با مقدار salt تولید شده به طور تصادفی، رمز عبور هر کاربر به طور مستقل نمک زده می شود تا اطمینان حاصل شود که حتی اگر دو کاربر از یک رمز عبور استفاده کنند، مقدار هش ذخیره شده متفاوت است و شکستن رمز عبور را دشوارتر می کند. به عنوان مثال:

import bcrypt from ‘bcrypt’;

async function hashPassword(password: string): Promise<string> {
const saltRounds = 10;
const salt = await bcrypt.genSalt(saltRounds);
const hashedPassword = await bcrypt.hash(password, salt);
return hashedPassword;
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

رمزگذاری انتقال داده ها
در طول ورود کاربر و تعامل داده ها با سرور، پروتکل های شبکه ایمن (مانند HTTPS) برای رمزگذاری داده ها برای انتقال استفاده می شود. اطمینان حاصل کنید که اطلاعات حساس مانند نام‌های کاربری، رمز عبور و داده‌های تجاری در شبکه به سرقت نرود یا دستکاری نشود. برای برخی از داده‌های بسیار حساس، مانند داده‌های مالی شرکت، اطلاعات حریم خصوصی مشتری و غیره، پردازش رمزگذاری اضافی نیز می‌تواند در لایه برنامه انجام شود، با استفاده از یک الگوریتم رمزگذاری متقارن (مانند AES) برای رمزگذاری داده‌ها برای اطمینان از محرمانه بودن داده ها در حین انتقال

5. نظارت و ممیزی امنیتی

(1) نظارت در زمان واقعی رفتار احراز هویت کاربر

نظارت بر رفتار ورود به سیستم
یک سیستم پایش بلادرنگ برای نظارت بر رفتار ورود کاربران ایجاد کنید. زمان ورود کاربر، مکان ورود (در صورت امکان بر اساس آدرس IP) اطلاعات دستگاه استفاده شده و غیره را ثبت کنید. تجزیه و تحلیل الگوهای رفتار ورود به سیستم، مانند تشخیص وجود زمان‌های غیرعادی ورود (مانند ورود به سیستم در ساعات غیر کاری یا در مکان‌هایی غیر از محل سکونت معمول کاربر)، تلاش‌های ناموفق مکرر برای ورود به سیستم، و غیره، برای کشف تهدیدات امنیتی بالقوه در به موقع

نظارت بر استفاده از مجوز
استفاده کاربر از مجوزها را در برنامه نظارت کنید و منابعی که کاربر به آنها دسترسی دارد، عملیات انجام شده و زمان عملیات را ثبت کنید. برای تلاش های عملیاتی فراتر از محدوده مجوزهای کاربر، هشدارهای به موقع صادر و مسدود می شوند. به عنوان مثال، اگر یک کارمند معمولی سعی کند به یک ماژول گزارش مالی اختصاص داده شده به مدیریت ارشد دسترسی پیدا کند، سیستم باید فوراً عملیات را مسدود کرده و به مدیر اطلاع دهد.

(2) ثبت و تجزیه و تحلیل گزارش حسابرسی

ثبت تفصیلی
تمام رویدادهای مربوط به امنیت را در گزارش حسابرسی ثبت کنید، از جمله ثبت نام کاربر، ورود به سیستم، تغییر رمز عبور، تغییر مجوز، دسترسی به داده ها و سایر عملیات. گزارش باید حاوی اطلاعات دقیق عملیات، مانند زمان عملیات، اپراتور، محتوای عملیات، نتایج عملیات و غیره باشد. به عنوان مثال، ثبت شده است که کاربر “Zhang San” رمز عبور را در “2023-10-10 10:00:00” تغییر داده است، رمز عبور قدیمی “Abc@123″، رمز عبور جدید “Def@456” و اطلاعات دیگر

ممیزی و تجزیه و تحلیل منظم
به طور منظم گزارش های حسابرسی را تجزیه و تحلیل کنید تا به دنبال مسائل امنیتی بالقوه و الگوهای رفتاری غیرعادی باشید. از ابزارها و فن‌آوری‌های تجزیه و تحلیل داده‌ها برای استخراج اطلاعات مرتبط در گزارش‌ها استفاده کنید، مانند اینکه آیا چندین حساب کاربری که از یک آدرس IP در مدت زمان کوتاهی وارد می‌شوند یا اینکه کاربر به طور مکرر گذرواژه‌ها را تغییر می‌دهد و موقعیت‌های غیرعادی دیگر وجود دارد. بر اساس نتایج ممیزی، به سرعت سیاست های امنیتی را تنظیم کنید و اقدامات امنیتی مربوطه را انجام دهید.

6. بهینه سازی عملکرد و تضمین در دسترس بودن بالا

(1) مقابله با سناریوهای همزمانی بالا

بهینه سازی مکانیسم کش
در طول فرآیند احراز هویت، یک مکانیسم کش برای بهبود عملکرد برخی از داده‌های رایج استفاده می‌شود، مانند اطلاعات مجوز کاربر، پیکربندی خط‌مشی رمز عبور و غیره. از یک سیستم کش توزیع شده (مانند Redis) برای ذخیره این داده ها و کاهش درخواست های مکرر در پایگاه داده استفاده کنید. در عین حال، زمان انقضای کش معقولی را برای اطمینان از به موقع بودن و ثبات داده های کش تعیین کنید. به عنوان مثال، حافظه پنهان اطلاعات مجوز کاربر به مدت 10 دقیقه معتبر است، در طول دوره اعتبار، درخواست های تأیید مجوز متعدد کاربر به طور مستقیم داده ها را از حافظه پنهان دریافت می کند تا سرعت پاسخگویی را بهبود بخشد.

پردازش ناهمزمان و صف های پیام
برای برخی از کارهایی که بر عملیات بلادرنگ کاربر تأثیر نمی‌گذارند، مانند اعلان ناهمزمان پس از به‌روزرسانی رمز عبور (مانند اطلاع دادن به سرپرست یا ارسال ایمیل به‌روزرسانی موفقیت‌آمیز رمز عبور)، از پردازش ناهمزمان استفاده می‌شود. این وظایف را در یک صف پیام (مانند RabbitMQ) قرار دهید و توسط یک پردازشگر وظیفه پس‌زمینه اختصاصی پردازش شوند تا از مسدود کردن فرآیند اصلی کاربر جلوگیری شود و قابلیت‌های پردازش همزمان سیستم بهبود یابد. در سناریوهای ورود به سیستم با همزمانی بالا، برخی از ثبت ورود به سیستم و سایر عملیات نیز می توانند به صورت ناهمزمان پردازش شوند تا بار فوری روی سرور کاهش یابد.

(2) مکانیسم تحمل خطا و بازیابی بلایا

طراحی مقاوم در برابر خطا
در معماری میکروسرویس، طراحی مقاوم در برابر خطای سرویس برای اطمینان از اینکه شکست یک میکروسرویس منجر به فروپاشی کل سیستم برنامه نمی‌شود، اتخاذ می‌شود. به عنوان مثال، با استفاده از حالت قطع کننده مدار (مانند Hystrix)، هنگامی که یک میکروسرویس از کار می افتد (مانند وقفه اتصال پایگاه داده، خرابی شبکه و غیره)، تماس با سرویس به سرعت قطع می شود و یک راه حل تخریب جایگزین ارائه می شود، مانند به عنوان بازگشت داده های پیش فرض یا پیام های خطای دوستانه عملکرد عادی سایر میکروسرویس ها و کاربران را تضمین می کند.

بازیابی و بازیابی فاجعه اطلاعات
یک مرکز بازیابی فاجعه داده ایجاد کنید تا به طور منظم از داده های برنامه های کاربردی در سطح سازمانی، از جمله اطلاعات کاربر، داده های تجاری، گزارش های حسابرسی و غیره نسخه پشتیبان تهیه کنید. داده های پشتیبان باید در یک مرکز ذخیره سازی ایمن خارج از سایت ذخیره شوند تا از از دست رفتن داده ها در اثر بلایای محلی (مانند آتش سوزی، زلزله و غیره) جلوگیری شود. در همان زمان، یک طرح بازیابی اطلاعات تدوین شده است تا اطمینان حاصل شود که در صورت از دست دادن یا آسیب، داده ها می توانند به سرعت از مرکز بازیابی فاجعه بازیابی شوند تا تأثیر کسب و کار به حداقل برسد. به عنوان مثال، پشتیبان‌گیری کامل از داده‌ها هر روز انجام می‌شود، پشتیبان‌گیری افزایشی داده‌ها هر ساعت انجام می‌شود، و تمرین‌های بازیابی اطلاعات به طور منظم برای اطمینان از در دسترس بودن داده‌های پشتیبان و اثربخشی فرآیند بازیابی انجام می‌شود.

از طریق مراحل عملی جامع فوق، ما با موفقیت یک سیستم گواهینامه امنیتی برنامه کاربردی در سطح سازمانی را بر اساس Hongmeng Next ایجاد کردیم. این سیستم نه تنها می تواند با الزامات مدیریت حقوق پیچیده در سناریوهای چند کاربره کنار بیاید، بلکه احراز هویت امنیتی با قدرت بالا، مدیریت رمز عبور موثر، نظارت و ممیزی امنیت در زمان واقعی و تضمین های قوی از نظر عملکرد و در دسترس بودن را نیز ارائه می دهد. در فرآیند توسعه و بهره برداری و نگهداری برنامه های کاربردی سازمانی واقعی، این سیستم گواهی امنیتی باید به طور مداوم با توجه به نیازهای تجاری خاص و الزامات امنیتی شرکت بهینه سازی و بهبود یابد تا از امنیت دارایی های اطلاعاتی شرکت و عملکرد پایدار کسب و کار اطمینان حاصل شود.

هدف این مقاله بررسی عمیق جزئیات فنی سیستم HarmonyOS Next هوآوی (در حال حاضر API12) در توسعه یک پلتفرم تجارت الکترونیک چند زبانه و خلاصه کردن آن بر اساس شیوه‌های توسعه واقعی است. عمدتاً به عنوان حاملی برای به اشتراک گذاری و تبادل فناوری استفاده می شود و اشتباهات و حذفیات اجتناب ناپذیر است تا نظرات و سؤالات ارزشمندی را برای پیشرفت متقابل مطرح کنند. این مقاله محتوای اصلی است. هر گونه کپی برداری به هر شکل باید منبع و نویسنده اصلی را ذکر کند

در توسعه برنامه های کاربردی در سطح سازمانی، ساخت یک سیستم احراز هویت قدرتمند و ایمن، کلید تضمین امنیت داده های سازمانی و عملیات عادی تجاری است. این مقاله در مورد فرآیند واقعی ساخت یک سیستم صدور گواهینامه امنیتی برنامه در سطح سازمانی بر اساس سیستم Hongmeng Next توضیح خواهد داد که تمام جنبه‌ها از چالش‌ها و تعیین هدف گرفته تا بهینه‌سازی عملکرد و تضمین در دسترس بودن بالا را پوشش می‌دهد.

1. چالش ها و اهداف امنیتی برنامه در سطح سازمانی

(1) سناریوهای چند کاربره و مدیریت مجوز

  1. چالش های سناریوی چند کاربر
    برنامه های کاربردی در سطح سازمانی معمولاً کاربران زیادی از جمله کارمندان داخلی، شرکا، مشتریان و سایر نقش های مختلف را درگیر می کنند. برای مثال، کارمندان ممکن است نیاز به دسترسی به ماژول‌های کسب‌وکار خاص، مشاهده و اصلاح داده‌های مرتبط داشته باشند، شرکا ممکن است فقط بتوانند برخی از اطلاعات مربوط به همکاری را مشاهده کنند، و مشتریان ممکن است فقط مجوزهای مدیریت اطلاعات شخصی محدودی داشته باشند. چگونگی اطمینان از شناسایی دقیق هویت کاربر و تخصیص معقول مجوزها در سناریوهای پیچیده چند کاربره، چالش اصلی پیش روی امنیت برنامه های کاربردی در سطح سازمانی است.
  2. اهداف مدیریت حقوق
    یک سیستم مدیریت مجوز پیچیده ایجاد کنید که بتواند دسترسی کاربران به منابع برنامه را بر اساس نقش کاربر و نیازهای تجاری به دقت کنترل کند. اطمینان حاصل کنید که هر کاربر فقط می تواند به عملکردها و داده های مجاز خود دسترسی داشته باشد تا از نشت داده ها و خطرات تجاری ناشی از دسترسی غیرمجاز جلوگیری شود. در عین حال، سیستم مدیریت مجوز باید انعطاف پذیر باشد و بتواند به راحتی و به صورت پویا مجوزها را با توجه به تنظیمات ساختار سازمانی شرکت و تغییرات تجاری تنظیم کند.

(2) برنامه ریزی سیستم صدور گواهینامه ایمنی

  1. اهداف سیستم صدور گواهینامه
    یک سیستم احراز هویت ایمن و قابل اعتماد بسازید تا از صحت و مشروعیت هویت کاربران اطمینان حاصل کنید. برای برآوردن سناریوهای مختلف کاربر و نیازهای امنیتی، از روش‌های احراز هویت چندگانه مانند تأیید هویت نام کاربری و رمز عبور، احراز هویت کد تأیید پویا، تأیید هویت بیومتریک (مانند تشخیص اثر انگشت، تشخیص چهره، در صورت پشتیبانی توسط دستگاه) و غیره استفاده کنید. فرآیند احراز هویت باید از امنیت بالایی برخوردار باشد تا از تهدیدات امنیتی مانند نشت رمز عبور، شکستن brute force و حملات انسان در میانه جلوگیری کند و در عین حال تجربه کاربری خوبی را ارائه دهد و پیچیدگی احراز هویت کاربر را کاهش دهد.
  2. اهداف امنیتی کلی
    علاوه بر احراز هویت و مدیریت حقوق، سیستم صدور گواهینامه امنیتی برنامه در سطح سازمانی باید رمزگذاری داده ها، انتقال ایمن، ممیزی امنیتی و سایر جنبه ها را نیز پوشش دهد. از محرمانه بودن، یکپارچگی و در دسترس بودن داده های سازمانی در حین ذخیره سازی و انتقال اطمینان حاصل کنید، حوادث امنیتی را به موقع شناسایی کرده و به آنها پاسخ دهید، و از دارایی های اصلی و اسرار تجاری سازمان محافظت کنید.

2. طراحی کلی معماری

(1) طراحی امنیتی بر اساس معماری میکروسرویس

  1. مزایای معماری میکروسرویس
    با اتخاذ یک معماری میکروسرویس، برنامه های کاربردی در سطح سازمانی به چندین میکروسرویس مستقل تقسیم می شوند که هر میکروسرویس بر روی عملکردهای تجاری خاص تمرکز دارد. از نظر طراحی امنیتی، معماری میکروسرویس انعطاف پذیری و مقیاس پذیری بهتری دارد. سیاست‌های امنیتی و مکانیسم‌های حفاظتی می‌توانند به طور مستقل بر اساس الزامات امنیتی میکروسرویس‌های مختلف برای کاهش گسترش خطرات امنیتی مستقر شوند. به عنوان مثال، سرویس های احراز هویت کاربر، خدمات مدیریت حقوق، خدمات داده های تجاری و غیره را به ترتیب به میکروسرویس های مستقل تقسیم کنید و تقویت امنیتی را انجام دهید.
  2. اجزای خدمات امنیتی
    توابع مرتبط با امنیت، مانند مؤلفه‌های تأیید هویت، مؤلفه‌های مجوز، مؤلفه‌های رمزگذاری و غیره را به‌گونه‌ای که این مؤلفه‌ها می‌توانند مجدداً در میکروسرویس‌های مختلف مورد استفاده قرار گیرند، ترکیب کنید. از طریق مشخصات رابط یکپارچه، تعامل بین میکروسرویس ها و اجزای امنیتی ایمن و قابل اعتماد تضمین می شود. به عنوان مثال، مؤلفه تأیید هویت مسئول پردازش درخواست تأیید هویت ورود کاربر، مؤلفه تأیید مسئولیت کنترل دسترسی به منابع میکروسرویس بر اساس مجوزهای کاربر، و مؤلفه رمزگذاری مسئول عملیات رمزگذاری و رمزگشایی داده ها است.

(2) مرکز مدیریت رمز عبور و احراز هویت

  1. عملکرد مدیریت رمز عبور
    یک سیستم مدیریت رمز عبور متمرکز ایجاد کنید تا مسئولیت تولید، ذخیره سازی، تأیید و به روز رسانی رمزهای عبور کاربران را بر عهده بگیرد. یک خط مشی رمز عبور قوی اتخاذ کنید که به گذرواژه نیاز دارد که ترکیبی از حروف، اعداد و کاراکترهای خاص داشته باشد و به طور منظم از کاربران بخواهد تا رمزهای عبور خود را به روز کنند. هنگام ذخیره رمزهای عبور، از الگوریتم‌های رمزگذاری پیشرفته (مانند الگوریتم‌های هش همراه با فناوری salting) برای رمزگذاری رمزهای عبور استفاده کنید تا از امنیت رمزهای عبور در طول ذخیره‌سازی اطمینان حاصل کنید. در عین حال، عملکردهای بازیابی رمز عبور و تنظیم مجدد را برای کمک به کاربران برای بازیابی رمزهای عبور خود از طریق روش های تأیید امن (مانند تأیید ایمیل، کد تأیید پیام کوتاه) ارائه می دهد.
  2. نقش مرکز صدور گواهینامه
    مرکز صدور گواهینامه به عنوان مرکز اصلی برای صدور گواهینامه امنیتی برنامه های کاربردی در سطح سازمانی، مسئولیت مدیریت یکپارچه فرآیند صدور گواهینامه کاربر را بر عهده دارد. چندین روش احراز هویت را ادغام می کند و ماژول احراز هویت مربوطه را برای تأیید هویت بر اساس انتخاب کاربر یا پیکربندی برنامه فراخوانی می کند. یک مکانیسم ارتباطی امن بین مرکز احراز هویت و هر میکروسرویس برقرار می شود پس از اینکه کاربر با موفقیت احراز هویت شد، اطلاعات هویت کاربر و اطلاعات مجوز در اختیار میکروسرویس قرار می گیرد تا اطمینان حاصل شود که میکروسرویس می تواند پردازش تجاری ایمن را بر اساس این اطلاعات انجام دهد.

3. فرآیند ثبت نام و ورود کاربر

(1) پردازش اطلاعات ثبت نام پیچیده

  1. جمع آوری و تایید اطلاعات
    فرآیند ثبت درخواست در سطح سازمانی معمولاً مستلزم جمع‌آوری مقدار زیادی از اطلاعات پیچیده کاربر است، علاوه بر نام کاربری و رمز عبور اصلی، ممکن است شامل شماره‌های کارمند (برای کارمندان داخلی)، نام شرکت (برای شرکا) نیز باشد. اطلاعات، آدرس و غیره در طی مراحل ثبت نام، این اطلاعات مشمول تایید فرمت دقیق و تایید منطقی برای اطمینان از صحت و کامل بودن اطلاعات می باشد. به عنوان مثال، منحصر به فرد بودن شماره کارمندان، فرمت صحیح شماره تلفن همراه و غیره را تأیید کنید.
  2. ذخیره سازی رمزگذاری شده اطلاعات
    اطلاعات کاربر جمع آوری شده از طریق ثبت نام طبقه بندی و پردازش می شود و اطلاعات حساس (مانند رمز عبور، شماره شناسه و …) به صورت رمزگذاری شده ذخیره می شود. برای رمزهای عبور، از یک الگوریتم رمزگذاری قوی برای هش کردن و ذخیره سازی اطلاعات حساس دیگر استفاده کنید، یک روش رمزگذاری مناسب را بر اساس اهمیت و الزامات امنیتی آن انتخاب کنید. در عین حال، اطمینان حاصل کنید که پایگاه داده ذخیره اطلاعات کاربر دارای مکانیسم های کنترل دسترسی دقیق برای جلوگیری از دسترسی غیرمجاز است.

(2) ادغام چندین روش ورود

  1. با نام کاربری و رمز عبور وارد شوید
    به عنوان رایج ترین روش ورود، از امنیت ورود نام کاربری و رمز عبور اطمینان حاصل کنید. در صفحه ورود، تأیید فرمت بر روی نام کاربری و رمز عبور وارد شده توسط کاربر برای جلوگیری از تزریق SQL و سایر حملات انجام می شود. رمز عبور با استفاده از یک پروتکل امنیتی (مانند HTTPS) در حین انتقال رمزگذاری می شود و رمز عبور ذخیره شده برای تأیید در سمت سرور استفاده می شود، در طول فرآیند تأیید، از فناوری salting برای افزایش سختی شکستن رمز عبور استفاده می شود.
  2. ورود به سیستم کد تأیید پویا
    برای برخی از حالات با الزامات امنیتی بالا یا زمانی که کاربران رمزهای عبور خود را فراموش می کنند، یک روش ورود کد تأیید پویا ارائه شده است. پس از اینکه کاربر نام کاربری را وارد کرد، سیستم یک کد تایید پویا را به شماره تلفن همراه یا آدرس ایمیل کاربر ارسال می کند. کد تأیید پویا باید به موقع (مثلاً به مدت 5 دقیقه معتبر باشد) و منحصر به فرد باشد تا از استفاده مجدد از کد تأیید جلوگیری شود.
  3. احراز هویت بیومتریک (اختیاری)
    اگر دستگاه از آن پشتیبانی می‌کند، روش‌های احراز هویت بیومتریک مانند تشخیص اثر انگشت یا تشخیص چهره را ادغام کنید. هنگامی که کاربر برای اولین بار بیومتریک را تنظیم می کند، داده های بیومتریک به طور ایمن (با استفاده از رمزگذاری و فناوری ذخیره سازی ایمن) ذخیره می شود و با حساب کاربر مرتبط می شود. هنگام ورود به سیستم، داده های بیومتریک کاربر به دست می آید و برای تأیید صحت با داده های ذخیره شده مقایسه می شود تا از صحت هویت کاربر اطمینان حاصل شود. در طول فرآیند احراز هویت بیومتریک، باید به حفظ حریم خصوصی داده های بیومتریک کاربر و جلوگیری از نشت داده ها توجه شود.

4. سیاست رمز عبور و مکانیزم رمزگذاری

(1) تدوین خط مشی رمز عبور در سطح سازمانی

  1. الزامات پیچیدگی رمز عبور
    قوانین پیچیده پیچیدگی رمز عبور را تعیین کنید که مستلزم داشتن رمزهای عبور حداقل 8 کاراکتر و حداقل سه نوع حروف بزرگ، حروف کوچک، اعداد و کاراکترهای خاص باشد. به عنوان مثال، رمز عبور می تواند ترکیبی مانند “Abc@123def” باشد تا اطمینان حاصل شود که رمز عبور به اندازه کافی قوی است و به سختی می توان آن را با نیروی بی رحمانه شکست.
  2. تاریخ انقضای رمز عبور و یادآوری به روز رسانی
    یک دوره اعتبار رمز عبور تعیین کنید، مثلاً کاربران را مجبور کنید رمزهای عبور خود را هر 90 روز به روز کنند. وقتی گذرواژه در شرف منقضی شدن است، به کاربران یادآوری کنید که رمز عبور خود را از طریق اعلان‌های درون‌برنامه یا ایمیل‌های قبلی (مثلاً ۷ روز قبل) به‌روزرسانی کنند. در همان زمان، تاریخچه رمز عبور کاربر نیز ثبت می شود تا از استفاده مجدد کاربران از رمزهای عبور اخیراً استفاده شده جلوگیری شود.
  3. محدودیت های خطای رمز عبور و قفل حساب
    برای جلوگیری از شکستن brute force، محدودیتی برای تعداد تلاش های رمز عبور نادرست تعیین کنید، به عنوان مثال، پس از پنج بار وارد کردن رمز عبور نادرست، حساب به طور موقت به مدت 30 دقیقه قفل می شود. در طول دوره قفل حساب، کاربر نمی تواند وارد سیستم شود مگر اینکه قفل حساب از طریق سایر روش های تأیید امنیتی (مانند تأیید ایمیل یا تماس با سرپرست) باز شود.

(2) انتخاب الگوریتم رمزگذاری و کاربرد

  1. رمزگذاری ذخیره سازی رمز عبور
    یک الگوریتم رمزگذاری ذخیره سازی رمز عبور مناسب برای برنامه های کاربردی سطح سازمانی مانند الگوریتم های هش مانند bcrypt یا Argon2 انتخاب کنید. این الگوریتم‌ها دارای ویژگی‌های هزینه محاسباتی بالا و مقاومت قوی در برابر ترک‌های brute force هستند. هنگام استفاده از الگوریتم هش، همراه با مقدار salt تولید شده به طور تصادفی، رمز عبور هر کاربر به طور مستقل نمک زده می شود تا اطمینان حاصل شود که حتی اگر دو کاربر از یک رمز عبور استفاده کنند، مقدار هش ذخیره شده متفاوت است و شکستن رمز عبور را دشوارتر می کند. به عنوان مثال:
import bcrypt from 'bcrypt';

async function hashPassword(password: string): Promise<string> {
    const saltRounds = 10;
    const salt = await bcrypt.genSalt(saltRounds);
    const hashedPassword = await bcrypt.hash(password, salt);
    return hashedPassword;
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. رمزگذاری انتقال داده ها
    در طول ورود کاربر و تعامل داده ها با سرور، پروتکل های شبکه ایمن (مانند HTTPS) برای رمزگذاری داده ها برای انتقال استفاده می شود. اطمینان حاصل کنید که اطلاعات حساس مانند نام‌های کاربری، رمز عبور و داده‌های تجاری در شبکه به سرقت نرود یا دستکاری نشود. برای برخی از داده‌های بسیار حساس، مانند داده‌های مالی شرکت، اطلاعات حریم خصوصی مشتری و غیره، پردازش رمزگذاری اضافی نیز می‌تواند در لایه برنامه انجام شود، با استفاده از یک الگوریتم رمزگذاری متقارن (مانند AES) برای رمزگذاری داده‌ها برای اطمینان از محرمانه بودن داده ها در حین انتقال

5. نظارت و ممیزی امنیتی

(1) نظارت در زمان واقعی رفتار احراز هویت کاربر

  1. نظارت بر رفتار ورود به سیستم
    یک سیستم پایش بلادرنگ برای نظارت بر رفتار ورود کاربران ایجاد کنید. زمان ورود کاربر، مکان ورود (در صورت امکان بر اساس آدرس IP) اطلاعات دستگاه استفاده شده و غیره را ثبت کنید. تجزیه و تحلیل الگوهای رفتار ورود به سیستم، مانند تشخیص وجود زمان‌های غیرعادی ورود (مانند ورود به سیستم در ساعات غیر کاری یا در مکان‌هایی غیر از محل سکونت معمول کاربر)، تلاش‌های ناموفق مکرر برای ورود به سیستم، و غیره، برای کشف تهدیدات امنیتی بالقوه در به موقع
  2. نظارت بر استفاده از مجوز
    استفاده کاربر از مجوزها را در برنامه نظارت کنید و منابعی که کاربر به آنها دسترسی دارد، عملیات انجام شده و زمان عملیات را ثبت کنید. برای تلاش های عملیاتی فراتر از محدوده مجوزهای کاربر، هشدارهای به موقع صادر و مسدود می شوند. به عنوان مثال، اگر یک کارمند معمولی سعی کند به یک ماژول گزارش مالی اختصاص داده شده به مدیریت ارشد دسترسی پیدا کند، سیستم باید فوراً عملیات را مسدود کرده و به مدیر اطلاع دهد.

(2) ثبت و تجزیه و تحلیل گزارش حسابرسی

  1. ثبت تفصیلی
    تمام رویدادهای مربوط به امنیت را در گزارش حسابرسی ثبت کنید، از جمله ثبت نام کاربر، ورود به سیستم، تغییر رمز عبور، تغییر مجوز، دسترسی به داده ها و سایر عملیات. گزارش باید حاوی اطلاعات دقیق عملیات، مانند زمان عملیات، اپراتور، محتوای عملیات، نتایج عملیات و غیره باشد. به عنوان مثال، ثبت شده است که کاربر “Zhang San” رمز عبور را در “2023-10-10 10:00:00” تغییر داده است، رمز عبور قدیمی “Abc@123″، رمز عبور جدید “Def@456” و اطلاعات دیگر
  2. ممیزی و تجزیه و تحلیل منظم
    به طور منظم گزارش های حسابرسی را تجزیه و تحلیل کنید تا به دنبال مسائل امنیتی بالقوه و الگوهای رفتاری غیرعادی باشید. از ابزارها و فن‌آوری‌های تجزیه و تحلیل داده‌ها برای استخراج اطلاعات مرتبط در گزارش‌ها استفاده کنید، مانند اینکه آیا چندین حساب کاربری که از یک آدرس IP در مدت زمان کوتاهی وارد می‌شوند یا اینکه کاربر به طور مکرر گذرواژه‌ها را تغییر می‌دهد و موقعیت‌های غیرعادی دیگر وجود دارد. بر اساس نتایج ممیزی، به سرعت سیاست های امنیتی را تنظیم کنید و اقدامات امنیتی مربوطه را انجام دهید.

6. بهینه سازی عملکرد و تضمین در دسترس بودن بالا

(1) مقابله با سناریوهای همزمانی بالا

  1. بهینه سازی مکانیسم کش
    در طول فرآیند احراز هویت، یک مکانیسم کش برای بهبود عملکرد برخی از داده‌های رایج استفاده می‌شود، مانند اطلاعات مجوز کاربر، پیکربندی خط‌مشی رمز عبور و غیره. از یک سیستم کش توزیع شده (مانند Redis) برای ذخیره این داده ها و کاهش درخواست های مکرر در پایگاه داده استفاده کنید. در عین حال، زمان انقضای کش معقولی را برای اطمینان از به موقع بودن و ثبات داده های کش تعیین کنید. به عنوان مثال، حافظه پنهان اطلاعات مجوز کاربر به مدت 10 دقیقه معتبر است، در طول دوره اعتبار، درخواست های تأیید مجوز متعدد کاربر به طور مستقیم داده ها را از حافظه پنهان دریافت می کند تا سرعت پاسخگویی را بهبود بخشد.
  2. پردازش ناهمزمان و صف های پیام
    برای برخی از کارهایی که بر عملیات بلادرنگ کاربر تأثیر نمی‌گذارند، مانند اعلان ناهمزمان پس از به‌روزرسانی رمز عبور (مانند اطلاع دادن به سرپرست یا ارسال ایمیل به‌روزرسانی موفقیت‌آمیز رمز عبور)، از پردازش ناهمزمان استفاده می‌شود. این وظایف را در یک صف پیام (مانند RabbitMQ) قرار دهید و توسط یک پردازشگر وظیفه پس‌زمینه اختصاصی پردازش شوند تا از مسدود کردن فرآیند اصلی کاربر جلوگیری شود و قابلیت‌های پردازش همزمان سیستم بهبود یابد. در سناریوهای ورود به سیستم با همزمانی بالا، برخی از ثبت ورود به سیستم و سایر عملیات نیز می توانند به صورت ناهمزمان پردازش شوند تا بار فوری روی سرور کاهش یابد.

(2) مکانیسم تحمل خطا و بازیابی بلایا

  1. طراحی مقاوم در برابر خطا
    در معماری میکروسرویس، طراحی مقاوم در برابر خطای سرویس برای اطمینان از اینکه شکست یک میکروسرویس منجر به فروپاشی کل سیستم برنامه نمی‌شود، اتخاذ می‌شود. به عنوان مثال، با استفاده از حالت قطع کننده مدار (مانند Hystrix)، هنگامی که یک میکروسرویس از کار می افتد (مانند وقفه اتصال پایگاه داده، خرابی شبکه و غیره)، تماس با سرویس به سرعت قطع می شود و یک راه حل تخریب جایگزین ارائه می شود، مانند به عنوان بازگشت داده های پیش فرض یا پیام های خطای دوستانه عملکرد عادی سایر میکروسرویس ها و کاربران را تضمین می کند.
  2. بازیابی و بازیابی فاجعه اطلاعات
    یک مرکز بازیابی فاجعه داده ایجاد کنید تا به طور منظم از داده های برنامه های کاربردی در سطح سازمانی، از جمله اطلاعات کاربر، داده های تجاری، گزارش های حسابرسی و غیره نسخه پشتیبان تهیه کنید. داده های پشتیبان باید در یک مرکز ذخیره سازی ایمن خارج از سایت ذخیره شوند تا از از دست رفتن داده ها در اثر بلایای محلی (مانند آتش سوزی، زلزله و غیره) جلوگیری شود. در همان زمان، یک طرح بازیابی اطلاعات تدوین شده است تا اطمینان حاصل شود که در صورت از دست دادن یا آسیب، داده ها می توانند به سرعت از مرکز بازیابی فاجعه بازیابی شوند تا تأثیر کسب و کار به حداقل برسد. به عنوان مثال، پشتیبان‌گیری کامل از داده‌ها هر روز انجام می‌شود، پشتیبان‌گیری افزایشی داده‌ها هر ساعت انجام می‌شود، و تمرین‌های بازیابی اطلاعات به طور منظم برای اطمینان از در دسترس بودن داده‌های پشتیبان و اثربخشی فرآیند بازیابی انجام می‌شود.

از طریق مراحل عملی جامع فوق، ما با موفقیت یک سیستم گواهینامه امنیتی برنامه کاربردی در سطح سازمانی را بر اساس Hongmeng Next ایجاد کردیم. این سیستم نه تنها می تواند با الزامات مدیریت حقوق پیچیده در سناریوهای چند کاربره کنار بیاید، بلکه احراز هویت امنیتی با قدرت بالا، مدیریت رمز عبور موثر، نظارت و ممیزی امنیت در زمان واقعی و تضمین های قوی از نظر عملکرد و در دسترس بودن را نیز ارائه می دهد. در فرآیند توسعه و بهره برداری و نگهداری برنامه های کاربردی سازمانی واقعی، این سیستم گواهی امنیتی باید به طور مداوم با توجه به نیازهای تجاری خاص و الزامات امنیتی شرکت بهینه سازی و بهبود یابد تا از امنیت دارایی های اطلاعاتی شرکت و عملکرد پایدار کسب و کار اطمینان حاصل شود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا