این صفحه معماری امنیت و اعتماد برای اعتبارنامههای دیجیتال اندروید را شرح میدهد که برای ایمنسازی دادههای کاربر به اعتبارسنجی رمزنگاریشده از سوی صادرکنندگان معتبر متکی هستند.
اعتبارنامههای دیجیتال قابل تأیید
در اندروید، اعتبارنامههای دیجیتال به اعتبارنامههای قابل تأییدی اشاره دارند که به صورت رمزنگاری شده توسط یک صادرکننده تأیید شدهاند. این اعتبارنامهها حاوی ادعاهای امن هستند که آنها را در برابر دستکاری مقاوم کرده و منشأ آنها را اثبات میکند.
ادعایی که با عنوان «تأیید شده» علامتگذاری شده است به این معنی است که صادرکننده ادعا میکند که میتواند آن را تأیید کند و آن را با گواهی دیجیتال خود امضا کرده است. به دلیل این امضا، برنامههای تأیید میتوانند مطمئن باشند که اعتبارنامه دستکاری نشده و توسط یک صادرکننده قابل تأیید صادر شده است.
منظور از تأیید یک ادعا چیست؟
وقتی یک اعتبارنامه از طریق API مدیریت اعتبارنامه اندروید (Android Credential Manager API) دریافت میشود و یک ادعا در آن به عنوان "تأیید شده" علامتگذاری میشود، به این معنی است که صادرکننده ادعا میکند که بررسی روی آن قطعه داده خاص انجام داده است. با این حال، این بدان معنا نیست که دادهها یک حقیقت مطلق و جهانی هستند. "تأیید شده" یک ادعای فرآیند است، نه یک تضمین خودکار برای اعتماد.
هسته اصلی این اکوسیستم این است که اعتماد همیشه در تأییدکننده حل و فصل میشود. وقتی برنامه شما، به عنوان تأییدکننده، دادههای رمزنگاریشده امن را دریافت میکند و میبیند که صادرکننده آن را به عنوان «تأیید شده» علامتگذاری کرده است، باید تعیین کند که آیا به صادرکننده اعتماد دارد که ادعا را مطابق با استانداردهای خود تأیید کرده است یا خیر.
امنیت اعتبارنامههای دیجیتال
اکوسیستم اعتبارنامههای دیجیتال در هر مرحله از مسیر، اقدامات امنیتی رمزنگاریشدهی داخلی را برای اطمینان از یکپارچگی و اصالت دادهها در نظر گرفته است:
- امضای گواهی صادرکننده: تمام اعتبارنامههای صادر شده با استفاده از گواهی دیجیتال صادرکننده به صورت رمزنگاری امضا میشوند. این امر به تأییدکنندگان امکان میدهد تا این امضا را با گواهی عمومی صادرکننده مقایسه کنند تا منشأ اعتبارنامه را تأیید کرده و تأیید کنند که هیچ دادهای تغییر نکرده است.
- اتصال اعتبارنامه دارنده: هنگامی که صادرکننده، اعتبارنامهای را برای دارنده صادر میکند، دارنده باید ثابت کند که اعتبارنامههای موجود در آن به سختافزار دستگاه امن متصل هستند و قابل کپی یا انتقال نیستند. دارنده این کار را با ایجاد یک گواهی تأیید سختافزاری که توسط کلید ریشه سیستم عامل دستگاه خود امضا شده است، انجام میدهد و امنیت و منشأ سازنده کلید خود را اثبات میکند و آن را برای صادرکننده ارسال میکند. سپس صادرکننده این ویژگیها را تأیید میکند تا تأیید کند که کلید به سختافزار اصلی متصل است. پس از تأیید، صادرکننده کلید عمومی دارنده را در بار داده اعتبارنامه جاسازی میکند و قبل از صدور آن به دارنده، اعتبارنامه را با کلید خصوصی خود امضا میکند. این امر اعتبارنامه صادر شده را به طور دائم با دارنده مرتبط میکند که از سرقت یا کپی اعتبارنامه جلوگیری میکند.
- بررسیهای ارائه دولایه: وقتی یک تأییدکننده درخواست اعتبارنامهای را میدهد، یک «نانس» (nonce) را به برنامه دارنده ارسال میکند که توسط کلید خصوصی و سختافزاری دارنده امضا شده است و این را با کلید عمومی دارنده که در اعتبارنامه تعبیه شده است، تأیید میکند. این ثابت میکند که دارنده در حال حاضر کلید را کنترل میکند و همچنین از حملات بازپخش جلوگیری میکند. تأییدکننده همچنین باید امضای دیجیتال صادرکننده را بررسی کند تا منشأ اعتبارنامه را تأیید کند. این تأیید رمزنگاری دولایه به تأییدکنندگان کمک میکند تا اطمینان حاصل شود که اعتبارنامههایی را دریافت میکنند که در سطح دارنده یا صادرکننده به خطر نیفتادهاند.
این صفحه معماری امنیت و اعتماد برای اعتبارنامههای دیجیتال اندروید را شرح میدهد که برای ایمنسازی دادههای کاربر به اعتبارسنجی رمزنگاریشده از سوی صادرکنندگان معتبر متکی هستند.
اعتبارنامههای دیجیتال قابل تأیید
در اندروید، اعتبارنامههای دیجیتال به اعتبارنامههای قابل تأییدی اشاره دارند که به صورت رمزنگاری شده توسط یک صادرکننده تأیید شدهاند. این اعتبارنامهها حاوی ادعاهای امن هستند که آنها را در برابر دستکاری مقاوم کرده و منشأ آنها را اثبات میکند.
ادعایی که با عنوان «تأیید شده» علامتگذاری شده است به این معنی است که صادرکننده ادعا میکند که میتواند آن را تأیید کند و آن را با گواهی دیجیتال خود امضا کرده است. به دلیل این امضا، برنامههای تأیید میتوانند مطمئن باشند که اعتبارنامه دستکاری نشده و توسط یک صادرکننده قابل تأیید صادر شده است.
منظور از تأیید یک ادعا چیست؟
وقتی یک اعتبارنامه از طریق API مدیریت اعتبارنامه اندروید (Android Credential Manager API) دریافت میشود و یک ادعا در آن به عنوان "تأیید شده" علامتگذاری میشود، به این معنی است که صادرکننده ادعا میکند که بررسی روی آن قطعه داده خاص انجام داده است. با این حال، این بدان معنا نیست که دادهها یک حقیقت مطلق و جهانی هستند. "تأیید شده" یک ادعای فرآیند است، نه یک تضمین خودکار برای اعتماد.
هسته اصلی این اکوسیستم این است که اعتماد همیشه در تأییدکننده حل و فصل میشود. وقتی برنامه شما، به عنوان تأییدکننده، دادههای رمزنگاریشده امن را دریافت میکند و میبیند که صادرکننده آن را به عنوان «تأیید شده» علامتگذاری کرده است، باید تعیین کند که آیا به صادرکننده اعتماد دارد که ادعا را مطابق با استانداردهای خود تأیید کرده است یا خیر.
امنیت اعتبارنامههای دیجیتال
اکوسیستم اعتبارنامههای دیجیتال در هر مرحله از مسیر، اقدامات امنیتی رمزنگاریشدهی داخلی را برای اطمینان از یکپارچگی و اصالت دادهها در نظر گرفته است:
- امضای گواهی صادرکننده: تمام اعتبارنامههای صادر شده با استفاده از گواهی دیجیتال صادرکننده به صورت رمزنگاری امضا میشوند. این امر به تأییدکنندگان امکان میدهد تا این امضا را با گواهی عمومی صادرکننده مقایسه کنند تا منشأ اعتبارنامه را تأیید کرده و تأیید کنند که هیچ دادهای تغییر نکرده است.
- اتصال اعتبارنامه دارنده: هنگامی که صادرکننده، اعتبارنامهای را برای دارنده صادر میکند، دارنده باید ثابت کند که اعتبارنامههای موجود در آن به سختافزار دستگاه امن متصل هستند و قابل کپی یا انتقال نیستند. دارنده این کار را با ایجاد یک گواهی تأیید سختافزاری که توسط کلید ریشه سیستم عامل دستگاه خود امضا شده است، انجام میدهد و امنیت و منشأ سازنده کلید خود را اثبات میکند و آن را برای صادرکننده ارسال میکند. سپس صادرکننده این ویژگیها را تأیید میکند تا تأیید کند که کلید به سختافزار اصلی متصل است. پس از تأیید، صادرکننده کلید عمومی دارنده را در بار داده اعتبارنامه جاسازی میکند و قبل از صدور آن به دارنده، اعتبارنامه را با کلید خصوصی خود امضا میکند. این امر اعتبارنامه صادر شده را به طور دائم با دارنده مرتبط میکند که از سرقت یا کپی اعتبارنامه جلوگیری میکند.
- بررسیهای ارائه دولایه: وقتی یک تأییدکننده درخواست اعتبارنامهای را میدهد، یک «نانس» (nonce) را به برنامه دارنده ارسال میکند که توسط کلید خصوصی و سختافزاری دارنده امضا شده است و این را با کلید عمومی دارنده که در اعتبارنامه تعبیه شده است، تأیید میکند. این ثابت میکند که دارنده در حال حاضر کلید را کنترل میکند و همچنین از حملات بازپخش جلوگیری میکند. تأییدکننده همچنین باید امضای دیجیتال صادرکننده را بررسی کند تا منشأ اعتبارنامه را تأیید کند. این تأیید رمزنگاری دولایه به تأییدکنندگان کمک میکند تا اطمینان حاصل شود که اعتبارنامههایی را دریافت میکنند که در سطح دارنده یا صادرکننده به خطر نیفتادهاند.