מחשוב Serverless שינה את הדרך שבה ארגונים בונים ופרוסים יישומים.על ידי ניהול תשתיות מופשטות, הוא מאפשר למפתחים להתמקד בקוד בעוד ספק הענן מטפל בדרגות, תיקון וזמינות.עם זאת, שינוי זה מציג אתגרים ביטחוניים חדשים, במיוחד סביב בקרת גישה.בסביבה ללא השרת המוכחת, פונקציות הן אפסיות, פונקציונליות, פונקציונליות, ולעתים קרובות מופעלות על ידי מגוון של גורמים - קריאות HTTP, תורים, הודעות, או , או תקנים שנקבעו בקפידה, עם בקרת גישה מאובטחת (R) ללא שינוי יעיל יותר).

מה זה Role- Based Access Control (RBAC)?

(השליטה מבוססת-תפקיד היא פרדיגמה אבטחה שמקצהת הרשאות לתפקידים ולא למשתמשים בודדים, משתמשים מקובצים לתפקידים המבוססים על תפקוד תפקידם, ותפקידים אלה קובעים אילו פעולות הם יכולים לבצע על אילו משאבים.לדוגמה, במערכת עיבוד ללא מרשם, ניהול קוד פתוח:0 AdminFLT:1 עשוי להיות בעל סמכות להפעיל כל פונקציה וגישה לכל הדליים, בעוד שעקרון זה יכול להיות מצמצם את תפקיד ספציפי:0 מעלות צלזיוס:

RBAC מוגדר על ידי שלושה כללים עיקריים:

  • (ב) ,0) ,המשימה של רול: 1 (ב) ניתן לממש את רשותו רק אם הנושא יוקצה תפקיד הכולל את ההרשאה.
  • (הרש:0) אישור רול: (1) תפקידו הפעיל של נושא חייב להיות מוסמך עבורם.זה מבטיח שגם אם למשתמש יש תפקידים מרובים, רק תפקיד אחד יכול להיות פעיל בזמן (או תת-קבוצה).
  • (ב) אישור אישור:0) אישור אישור אישור: 1FLT ( 1) נושא יכול לממש רשות רק אם רשות ההרשאה מוסמכת לתפקיד פעיל של הנושא.

מדוע אתגרים ללא מרשם ל- Access Control Challenges

יישומים מסורתיים מונוליטיים לעתים קרובות יש נקודת כניסה אחת, מה שהופך אותו פשוט לאכוף אימות מבוסס קושחה והרשאה. יישומים ללא מרשם, לעומת זאת, מורכבים עשרות או מאות פונקציות קטנות, ללא מדינה, כל אחד מהם יכול להיות מופעל ישירות.

  • ניהול הרשאות: ניהול הרשאות: FLT1 כל פונקציה עשויה לדרוש מערך הרשאות שלה אינטראקציה עם מסדי נתונים, תורים, או API חיצוני.
  • (FLT:0) גישה למשאב דינמי: הפונקציה של FLT:1 עשוי להיות צורך לגשת למשאבים שונים בהתאם לעומס שכר האירוע או בהקשר של המשתמש.מדיניות Static IAM לעתים קרובות נמוכה בתרחישים כאלה.
  • (FLT:0) חשיפה חיצונית: 1) אדריכלות ללא שרת מופשטת הרחק מהתשתית הבסיסית, מה שהופך את זה קשה לביקורת מי ניגשת למה ומתי.
  • (FLT:0Cold מתחיל להשפיע: FLT:1 לוגיקה של אישור הדורשים להביא תפקידים ממסד נתונים יכול להגדיל את הכדאיות על תפקוד קור מתחיל, פוטנציאל לחדד את חוויית המשתמש.

אתגרים אלה הופכים יישום RBAC מתוכנן היטב לא רק אימון הטוב ביותר, אלא גם צורך יישומים ללא שרת ברמת הייצור.

מערכת RBAC

לפני צלילה לאסטרטגיות יישום, זה עוזר להבין את אבני הבניין של כל מערכת RBAC:

  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ויקרא י"ד: ויקרא י"ד: ויקרא י"ד:2 ויקרא י"ד:2 ויקרא יט: ויקרא י"ד:5,5 ,5 ;5 ;2 ,5 ).
  • (ב) ,0) ,[[1924]]]], [[1924]]]]]], [[1924]]]]]]
  • (ב) ויקרא: ויקרא י"א: ויקרא י"ד: "וַיָּבְתָּבְתָּבְתָּבְתָּבְתָּעָה" (בראשית כ"ד).
  • (ב) [15] , עיין ב[[המאה ה-20]], ב[[1924]], ב[[1924]], ב[[1924]], [[1924]], [[1924]], [[1924]]]], [[1924]]]], [[1924]]]]]]]], [[1924]]]]

ללא שרת, רכיבים אלה באים לידי ביטוי לעתים קרובות באמצעות מערכות ספק ענן IAM (AWS IAM, Azure RBAC, GCP IAM) אבל ניתן גם ליישם בשכבה היישום באמצעות שירות אישור מותאם אישית.

אסטרטגיות ליישום RBAC ביישומים ללא Server

אין גישה בגודל אחד לכל ההטבות – האסטרטגיה הנכונה תלויה בספק הענן שלך, המורכבות של הרשאות שלך, והסובלנות שלך לסובלנות.

1.למידע על שירותי IAM כקרן

רוב ספקי הענן העיקריים מציעים בנייה של IAM שניתן להשתמש כדי להגדיר תפקידים ולצרף מדיניות ברמת החשבון או המשאבים.לדוגמה, FLT:0AWS IAMFLT:1 מאפשר לך ליצור תפקידים לביצוע עבור פונקציות Lambda.אם פונקציה צריכה לקרוא מ-DudmoDB, אתה מייחס מדיניות IAM המעניקה LT 3 על השולחן הספציפי הזה הוא הצורה הפשוטה ביותר של פונקציות RBA עצמו, אך לא צריך את התפקיד של אותו תפקיד מחויב להקשר של המשתמש.

עבור Azure, ההרחבה:0 (אזור RBACFIRLT:1) משלבת עם Azure Functions ו- App Service.You יכול להקצות תפקידים עבור קבוצות מנוהלות או Azure AD, ותפקידים אלה מכתיבים גישה למשאבים של Azure כגון Blob Storage או Cosmos DB. בדומה ל-FLT:2GCP IAMFLT 3 פועל עם פונקציות ושירותים אחרים.

2. יישום גישה יפה-Graved עם מדיניות Custom

כאשר הרשאות תלויות בתכונות של הבקשה (למשל, מזהה המשתמש, בעל המסמך, או הפעולה המבוצעת), ענן IAM לבד אינו מספיק.כאן בקרת גישה מבוססת קנס או תכונה (ABAC) נכנסת למשחק.You can משלב מדיניות IAM עם מפתחות.

עבור כללים מורכבים יותר, ייתכן שיהיה עליך לאכוף אישור בשכבת היישום.לאחר הפונקציה מקבל אירוע הביטול, זה שאילתות חנות של הקצאה תפקיד (למשל, ב-DudmoDB או Redis) כדי לקבוע אם לטלפן יש את הזכות לבצע את הפעולה המבוקשת.זה נקרא לעתים קרובות כמו FLT:0policy-based Access (PBAC)FLT, 1 ו- 1 הוא פופולרי ביישומים מרובים.

עקבו אחרי API Gateway Custom Authorizers

עבור פונקציות שנחשפו באמצעות HTTP (למשל, REST או GraphQL), שער ה- API הוא נקודת האכיפה הטבעית.FLT:0AWS Gateway AuthorizersFLT:1 (Lambdaizers) יכול לאמת נושא לסימון (JWT, OAuth) ולהחזיר מדיניות API של IAM אשר מכתיבת אשר מערכי API ושיטות ה- API מותרת ל-APIAM לאחר מכן למתן מענה ל-APIPE, ולאימות, ולאחר מכן, ל-APIPLITERC.

המחברים של המכס הם אידיאליים כי הם משלבים את ההיגיון ההרשאה לתפקוד יחיד, ולא לפזר אותו בכל פונקציה אחורית.המחבר מקבל את אסיקן, מפיץ את תפקידי המשתמש, מביט ברשאות, ומחזיר מדיניות.

4.לשמור על מפות רול בחנות נתונים בטוחה

תפקידים ומשימות של משתמשים חייבים להיות מאוחסנים וניתן להשיגם מחדש ב- Runtime. Options כוללים:

  • (FLT:0) שירות ניהולי: FLT:1rea, Azure AD, AWS Cognito, או Auth0 יכול לאחסן מידע על תפקיד כתכונות או קבוצות מותאמות אישית.
  • (ב) ,0) , ⁇ (ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (FLT:0)DIStributed caches: FIRLT:1 אמזון ElastiCache (Redis) או DAX יכול לשרת נתונים תפקידים עם נטיות נמוכה, קריטי עבור התחלה קרה.

ודא כי החנות עצמה מאובטחת באמצעות מדיניות IAM קפדנית.לעולם אל תחשוף את נתוני התפקיד לנקודות קצה לא יוותרות.

המונחים: From Design to Deployment

בצע שלבים אלה לתכנון וליישם RBAC ביישום ללא שרת:

  1. (FLT:0) זיהוי משאבים ופעולות: FIRLT:1 [הרשימה כל פונקציות השרתות, APIs, דלי אחסון, תורים וטבלאות. עבור כל אחד, להגדיר את הפעולות שניתן לבצע (בדגש, לקרוא, לכתוב, למחוק).
  2. (FLT:0) תפקידים: FLT:1 מראיין בעלי עניין כדי להבין את תפקוד העבודה (למשל, לקוח, סוכן תמיכה, מנהל).
  3. מדיניות IAM Design IAM: 1.FLT:1 עבור משאבי ענן, ליצור מדיניות IAM המעניקה את המינימום הנדרש פעולות.
  4. (FLT:0) אימות הוכחת הפשטות: 1FLT 1:1 וודא שכל נקודת קצה HTTP דורשת אסימונים שניתן לתקן (JWT, OAuth2). השתמש בספק זהות כמו Cognito, Auth0 או Firebase.
  5. [ה]הבא [ה] ל[דרוש מקור]] [ה]] [ה]] [ה]]] ל[ה] [ה]], [ה] ל[ה]]], [ה'] ל'[ה'], [ה'], [ה'והוא] מקנה לו] את תפקידו של המשתמש, עיין ב''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  6. (FLT:0) אישורים בטריגרים שאינם HTTP: ⁇ FLT 1 עבור SQS, S3 אירועים, או זרמי דינמוDB, כוללים את ההקשר של תפקיד בעומס האירוע או שימוש בהסתכלות בתוך הפונקציה.
  7. (FLT:0)Cacheurely: FLT:1 מיפוי תפקיד אל-העברה במזח Redis עם TTL כדי להפחית את עומס מסד הנתונים ולשפר את הכדאיות.
  8. (ב) עיין בבדיקות אינטגרציה של [[המאה ה-1]], אשר מדגימות תפקידים שונים ולוודא כי פעולות בלתי מורשכות חסומות.
  9. (ב) ⁇ :0) ממורטור וביקורת: 1FLT:1 Enable CloudTrail (AWS) או פעילות לוגיית (אזור) כדי להטמיע את כל ניסיונות הגישה.

מלכודות נפוצות וכיצד להימנע מהם

  • (FLT:0) באופן רציני תפקידים לביצועים: FIRLT:1) מפתחים עשויים להיות מתפתים לצרף תפקיד יחיד "משתמש כוח" IAM לכל הפונקציות.זה מפר את הפריבילגיה לפחות ומגדיל את רדיוס הפיצוץ.
  • (FLT:0) אבחון קר מתחיל:FLT:1 לטעון את נתוני התפקיד ממסד נתונים על כל ייעוד יכול להוסיף 200-500 מיליון לייט.
  • (FLT:0) הרשאות: FLT:1 , Permissions צריך להיות קל לעדכן ללא תפקוד גרפיטי. לאחסן אותם בקובץ מסד נתונים או תצורה, לא בקוד.
  • (FLT:0) ,Negting זהויות שירות: FLT:1 , RBAC צריך לכסות שחקנים לא אנושיים (למשל, אירוע מתוכנן הגורם לתפקוד).
  • (ב) [13] ל-[[1924]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]

דוגמה אמיתית לעולם: עיבוד של מסמך רב-מנועי מאובטח

שקול פלטפורמה SaaS שבו הדיירים להעלות מסמכים לעיבוד.כל דייר יש תיקיה משלו בדלי S3. זרימת העבודה משתמשת ב- API Gateway, הפונקציה Lambda להעלאה של מסמך, אחר לעיבוד (התרוצץ באמצעות אירוע S3), ושלישית עבור חיפוש תוצאות אחסון ב-DudmoDB.

(ב) ויקרא י"ד:

  • (ב) ויקרא י"א: ויקרא י"ד: "ה' י"א י"א י"א י"א י"א י"א י"א י"א י"א , ויקרא י"ד , ויקרא י"ד , ויקרא י"ז , .
  • (ב) ⁇ :0 (ראה: ⁇ ) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

(ב) ⁇ (ב) ⁇ ⁇

  • הזהות הנשגנת ב-JWT, אשר הנפיקה את קוגניטו, המכילה את ה-FLT:8 ו-FLT:9 תביעות.
  • API Gateway משתמש במחבר מלדה אישית המקודש את ה-JWT, שאילתות שולחן דינמודי כדי לקבל את אישורי התפקיד, וחוזר מדיניות המשווה גישה למשאבים עם תיקון הזהות של הסנטור (למשל, קונסול 10).
  • הפונקציה ההעלאה מקבלת את מזהה ה-Fant בהקשר הבקשה; היא משתמשת כדי להבטיח שהקובץ ממוקם בתיקיה הנכונה.תפקיד העיבוד קורא את תג התיקיה כדי לקשר תוצאות עם ה- Tenant.
  • כל שאילתות דינמו-דינו כוללות את הזיהוי העשר במפתח הראשי, ומדיניות IAM לאכוף כי הפונקציה יכולה רק לקרוא / לכתוב פריטים עם מפתח החלוקה הזה.

אדריכלות זו מבטיחה כי דייר אחד לא יכול לגשת לנתונים של דייר אחר, וכי משתמשים צופים אינם יכולים להפעיל את הפונקציה ההעלאה. התפקידים והרשאות מנוהלים באופן מרכזי, ושינויים ייכנסו לתוקף מיד ללא תיקון של כל פונקציות.

כלים ומסגרות ל-Sigmation RBAC

כמה קוד פתוח וכלים מסחריים יכולים להאיץ את יישום RBAC:

  • (FLT:0) סוכן מדיניות פתוח (OPA): מנוע מדיניות גנרי שניתן לפרוס כרכב צד או מיקרו-שירות כדי לאכוף כללי אישור מורכבים.זה משלב היטב עם שרת ללא שרת באמצעות HTTP או Go / Rust Runtimes.
  • (FLT:0)Casbin:FLT:1 A Library for Go, Java, Node.js, ו- Python. תומך RBAC, ABAC, ומודלים מותאמים אישית. יכול לרוץ בתוך פונקציה Lambda כדי להעריך הרשאות עם נטיות נמוכה.
  • Auth0 / Firebase Auth:BuildFLT:1] שניהם מספקים RBAC בנוי באמצעות תביעות ותפקידים מותאמים אישית.הם משלבים בצורה חלקה עם שערי API ותפקודי ענן.
  • (ב) [ה]הצה"ל: [ה], [ה], [ה],], [ה], [ה],], ניתן להשתמש בשירות מדיניות Cedar מנוהל כדי לקדם החלטות אישור מחוץ למנדה.

ביקורת והתאמה

RBAC לבדו אינו מספיק כדי לעמוד בדרישות תאימות (SOC 2, HIPAA, GDPR), עליך ליישם ביקורת:

  • ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • Log כל החלטה אישור (allow/deny) עם זהות המשתמש, משאבים, ו-Timetamp. השתמש בגישה מובנת של כניסה (JSON) ו יומני אוניות ל- SIEM כמו Splunk או ELK.
  • לוח זמנים קבוע (FLT:0) ביקורות גישה ל- 1LT (ב) שבו משימות תפקיד אושר או ביטול.
  • שימוש בכלים של סימולציה פולית (FLT:1) (למשל, AWS IAM Access Analyzer) כדי לאמת כי מדיניות מעניקה רק את ההרשאה המיועדת.

מסקנה

יישום בקרת גישה מבוססת רול ביישומים ללא שרת הוא לא רק עניין של נספח מדיניות IAM. זה דורש תכנון זהיר של תפקידים, אסטרטגיות הרשאות מוטבעות היטב, נקודות אכיפת מרכזי כגון API Gateway Authorizers. על ידי שילוב IAM עם אישורים ענן-native עם יישום-layer ו caching, אתה יכול להשיג הן אבטחה וביצועים הטובים ביותר כאן - החל ממינוף ענן IAM ממשיך פונקציה מאובטחת עבור כל שרת תמיכה יעילה.