Export Compliance ‐ این الزامات کنترل صادراتی است که فروشگاههای اپلیکیشن به محصولات دارای رمزگذاری تحمیل میکنند. توسعهدهنده موظف است دستهبندی رمزنگاری را مشخص کرده و اظهارنامهای مطابق با هنجارهای دفتر صنعت و امنیت ایالات متحده (BIS) ارائه دهد. بر اساس Apple Export Compliance Documentation, 2026، پر کردن نادرست منجر به رد بیلد میشود. این روش هم برای App Store و هم برای Google Play اعمال میشود و نیاز به درک دستهبندیهای CCAT و بازار انبوه دارد.
نکات اصلی
Export Compliance ‐ مجموعهای از الزامات نظارتی است که صادرات نرمافزار با توابع رمزنگاری به خارج از ایالات متحده را تنظیم میکند. قوانین توسط دفتر صنعت و امنیت (BIS) وزارت بازرگانی ایالات متحده در چارچوب 15 CFR Parts 730–774 تعیین شده است. اپل و گوگل به عنوان شرکتهای آمریکایی موظف به بررسی اپلیکیشنها از نظر انطباق با این هنجارها هستند. توسعهدهنده اظهارنامهای را پر میکند که در آن دستهبندی رمزگذاری و نوع الگوریتمها را مشخص میکند.
مبنای تنظیمگری EAR (Export Administration Regulations) است که تمام نرمافزارهای رمزنگاری را بر اساس دستهبندیها طبقهبندی میکند. دسته 5 بخش 2 محصولات دارای رمزگذاری را پوشش میدهد. برای اپلیکیشنهای موبایل قوانین سادهشده اعمال میشود ‐ بازار انبوه (mass market) و روش اطلاعرسانی (self-classification). توسعهدهنده نیازی به دریافت مجوز فردی ندارد اگر اپلیکیشن تحت استثنا قرار گیرد.
هر اپلیکیشنی که از رمزگذاری استفاده میکند موظف به گذراندن بررسی است. استثنا ‐ محصولاتی که فقط از رمزگذاری داخلی سیستمعامل (iOS URLSession، Android SSLSocket) بدون افزودن الگوریتمهای رمزنگاری خود استفاده میکنند. اگر توسعهدهنده رمزگذاری سفارشی، کتابخانه OpenSSL یا هر پیادهسازی AES/RSA اضافه کند، اظهارنامه الزامی است. بر اساس Google Play Console، حدود 30٪ از اپلیکیشنهای رد شده به دلیل Export Compliance نادرست رد میشوند.
کنترل صادرات با محدود کردن انتشار فناوریهای رمزنگاری از امنیت ملی محافظت میکند. ایالات متحده گزارشدهی درباره محصولات دارای رمزگذاری را الزامی میکند تا از استفاده غیرقانونی آنها جلوگیری کند. برای توسعهدهنده، عدم رعایت قوانین منجر به مسدود شدن اپلیکیشن، جریمه تا 1 میلیون دلار و ممنوعیت انتشار میشود. اپل و گوگل به عنوان عوامل کنترل عمل میکنند ‐ آنها بیلد را بدون اظهارنامه صحیح منتشر نخواهند کرد.
نقض Export Compliance میتواند منجر به حذف اپلیکیشن از فروشگاه و قرار گرفتن توسعهدهنده در لیست سیاه شود. BIS حق اعمال تحریمهای اداری از جمله جریمههای سنگین را دارد. در سال 2024، BIS سه شرکت را به دلیل انتشار نرمافزار با رمزگذاری تأیید نشده به مبلغ بیش از 2 میلیون دلار جریمه کرد. برای توسعهدهندگان مستقل، ریسک اصلی رد بیلد و اتلاف زمان برای انتشار مجدد است.
اپل و گوگل به عنوان واسطه بین توسعهدهنده و تنظیمکننده عمل میکنند. App Store Connect و Google Play Console شامل فرمهای اجباری Export Compliance در مرحله آپلود هستند. بدون طی این مرحله، دکمه ارسال برای بازبینی مسدود میشود. فروشگاهها صحت دادهها را بررسی نمیکنند ‐ فقط وجود آنها را. مسئولیت صحت اطلاعات بر عهده توسعهدهنده است.
دستهبندی رمزگذاری با پاسخ به این سؤال آغاز میشود: آیا اپلیکیشن از رمزنگاری خود استفاده میکند؟ اگر اپلیکیشن صرفاً به APIهای استاندارد سیستمعامل (CommonCrypto در iOS، javax.crypto در Android) متکی باشد، تحت استثنا قرار میگیرد و نیازی به اظهارنامه ندارد. اگر کتابخانه خارجی اضافه شده یا الگوریتم خود پیادهسازی شده باشد، تعیین دستهبندی CCAT ضروری است.
CCAT-1 ‐ کالاهای بازار انبوه (mass market) با رمزنگاری مطابق با استثنای 740.17 EAR. این شامل اپلیکیشنهای با رمزگذاری AES-128/256، RSA-2048 با استفاده از پروتکلهای استاندارد TLS/HTTPS میشود. CCAT-2 ‐ محصولات با رمزنگاری غیراستاندارد که نیاز به مجوز فردی دارند. اکثر اپلیکیشنهای موبایل در CCAT-1 قرار میگیرند. دستهبندی بازار انبوه سادهترین شکل اعلام است.
اپلیکیشن محصول بازار انبوه محسوب میشود اگر توابع رمزنگاری آن برای مخاطبان گسترده در دسترس باشد، برای استفاده نیاز به دانش خاصی نداشته باشد و با استانداردهای باز مطابقت داشته باشد. بر اساس BIS Supplementary Information (2025)، بازار انبوه شامل اپلیکیشنهای با AES، RSA، ECC و پیادهسازیهای TLS 1.2/1.3 است. اگر اپلیکیشن از الگوریتمهای غیراستاندارد با طول کلید کمتر از 56 بیت استفاده کند، از این دستهبندی خارج میشود.
روش Export Compliance در App Store در App Store Connect هنگام آپلود بیلد جدید آغاز میشود. سیستم یک سری سؤال میپرسد: آیا اپلیکیشن از رمزگذاری استفاده میکند، آیا بازار انبوه است، آیا ERN ثبت شده است. توسعهدهنده پاسخ میدهد و بر اساس پاسخها وضعیت صادرات شکل میگیرد. اگر خطایی رخ دهد، وضعیت قابل تغییر است ‐ اپل برای اصلاحات جریمه نمیکند، اما آپلود مجدد بیلد الزامی است.
ERN (Encryption Registration Number) ‐ شماره ثبت سالانه در BIS که تأیید میکند محصول به صورت اطلاعرسانی طبقهبندی شده است. ثبت ERN رایگان است و یک سال اعتبار دارد. فرم درخواست ‐ SNAP-R در وبسایت BIS. پس از دریافت ERN، توسعهدهنده شماره را در App Store Connect وارد میکند و در آپلودهای بعدی در طول سال از سؤالات تکراری معاف میشود. طبق آمار اپل، 60٪ از توسعهدهندگان برای سادهسازی روش از ERN استفاده میکنند.
اگر ERN وجود نداشته باشد، توسعهدهنده از طریق رابط App Store Connect طبقهبندی خود را انجام میدهد. اپل از الگوریتم مبتنی بر پاسخها برای تعیین دستهبندی استفاده میکند. در صورت انتخاب نادرست، سیستم دریافت ERN را توصیه میکند. طبقهبندی خود برای اپلیکیشنهای ساده با رمزگذاری استاندارد مناسب است. برای محصولات با رمزنگاری غیراستاندارد، اپل ثبت ERN را برای جلوگیری از خطا توصیه میکند.
Google Play بررسی Export Compliance را از طریق فرم در کنسول توسعهدهنده انجام میدهد. در مرحله ایجاد انتشار جدید، سیستم اطلاعاتی درباره رمزنگاری درخواست میکند. گوگل از همان دستهبندیهای EAR مانند اپل استفاده میکند، اما فرآیند Export Compliance Review نام دارد. پاسخها ثبت میشوند و برای تمام ساختهای آینده اعمال میشوند. گوگل برای اکثر اپلیکیشنها ERN نیاز ندارد ‐ اعلام تعلق به بازار انبوه کافی است.
در Google Play Console بخش Export Compliance در تنظیمات اپلیکیشن App Content قرار دارد. توسعهدهنده به سه سؤال پاسخ میدهد: آیا اپلیکیشن حاوی رمزنگاری است، آیا برای بازار انبوه در نظر گرفته شده است و آیا با استثنای 740.17 مطابقت دارد. گوگل صحت پاسخها را تا زمان طرح شکایت بررسی نمیکند. اما BIS میتواند مدارک درخواست کند و توسعهدهنده موظف به ارائه توجیه طبقهبندی است.
تفاوت اصلی ‐ اپل برای موارد پیچیده ERN نیاز دارد، گوگل بر اظهارنامه خود متکی است. App Store برای هر بیلد جدید Export Compliance درخواست میکند، Google Play ‐ یک بار برای اپلیکیشن. اپل پاسخها را سختگیرانهتر بررسی میکند و میتواند بیلد را رد کند، گوگل فقط دادهها را ثبت میکند. هر دو فروشگاه از یک پایگاه هنجاری واحد EAR پیروی میکنند، اما فرآیند اجرا متفاوت است. توسعهدهنده کافی است یک بار طبقهبندی را برای انتشار در هر دو پلتفرم درک کند.
اشتباهات در Export Compliance به سه دسته تقسیم میشوند: دستهبندی نادرست رمزگذاری، جا انداختن فیلدهای اجباری و ERN نادرست. شایعترین ‐ توسعهدهنده نشان میدهد که رمزگذاری استفاده نمیشود، در حالی که اپلیکیشن متدهای CommonCrypto یا javax.crypto را فراخوانی میکند. دومین مورد رایج ‐ انتخاب اشتباه دستهبندی CCAT وقتی اپلیکیشن با TLS 1.3 به عنوان رمزنگاری غیراستاندارد نشان داده میشود. سومین ‐ وارد کردن ERN نادرست که در پایگاه BIS تأیید نمیشود.
توصیه میشود قبل از پر کردن فرم، لیستی از تمام توابع رمزنگاری اپلیکیشن تهیه کنید. بررسی کنید چه کتابخانههایی وارد شدهاند، چه APIهای رمزگذاری فراخوانی میشوند. برای iOS ‐ وجود CommonCrypto، Security.framework، OpenSSL را بررسی کنید. برای Android ‐ javax.crypto، android.security، Conscrypt. اگر اپلیکیشن فقط از HTTPS از طریق درخواستهای شبکه استاندارد استفاده میکند، از اظهارنامه معاف است. در صورت کوچکترین تردید، گزینه با اعلام را انتخاب کنید.
بازبینی منظم Export Compliance به جلوگیری از تحریمها هنگام بهروزرسانی اپلیکیشن کمک میکند. اگر در نسخه جدید رمزنگاری اضافه شده باشد، باید اظهارنامه را دوباره پر کنید. اپل و گوگل در صورت تغییر دستهبندی اپلیکیشن به توسعهدهنده اطلاع میدهند. سالی یک بار توصیه میشود اعتبار ERN را بررسی کرده و در صورت نیاز آن را تمدید کنید. برای پروژههای بزرگ با دهها اپلیکیشن، خودکارسازی بازبینی از طریق CI/CD خطر خطای انسانی را کاهش میدهد.
سؤالات متداول
خیر، اگر HTTPS از طریق APIهای داخلی سیستمعامل (URLSession در iOS، HttpURLConnection در Android) بدون افزودن گواهیهای خود یا الگوریتمهای رمزنگاری سفارشی پیادهسازی شده باشد، اظهارنامه لازم نیست. استثنا ‐ استفاده از OpenSSL یا سایر کتابخانههای TLS شخص ثالث.
ERN (Encryption Registration Number) ‐ شناسه ثبت سالانه در BIS. میتوان آن را به صورت رایگان از طریق سیستم SNAP-R در وبسایت bis.gov با پر کردن فرم اطلاعرسانی طبقهبندی دریافت کرد. شماره به مدت 1 سال اعتبار دارد و تمام نسخههای اپلیکیشن را پوشش میدهد.
بله، اپل میتواند بیلد را رد کند اگر پاسخهای سؤالات Export Compliance متناقض باشند یا با عملکرد اپلیکیشن مطابقت نداشته باشند. در این صورت توسعهدهنده پیامی از App Store Review با ذکر دلیل دریافت میکند و میتواند بیلد را با دادههای اصلاحشده دوباره آپلود کند.
پایه هنجاری EAR یکسان است، اما فرآیند متفاوت است: اپل هر بیلد را بررسی میکند، گوگل ‐ یک بار برای اپلیکیشن. اپل برای رمزنگاری غیراستاندارد ERN نیاز دارد، گوگل اظهارنامه خود را میپذیرد. هر دو فروشگاه از دستهبندیهای CCAT و قوانین BIS پیروی میکنند.
App Store و Google Play آپلود بیلد را بدون فرم تکمیلشده Export Compliance مسدود میکنند. اپلیکیشن از بازبینی عبور نمیکند و انتشار غیرممکن خواهد شد. برای اپلیکیشنهای منتشرشده، تغییر وضعیت صادرات نیاز به ساخت جدید و بازبینی مجدد دارد.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید