رمزگشایی شناسه تبلیغاتی

Authorized Buyers اکنون از ارسال شناسه تبلیغات Android در درخواست‌های پیشنهادی موجودی برنامه تلفن همراه پشتیبانی می‌کند.

درباره شناسه تبلیغاتی

با Google Play Services نسخه 4.0، اندروید یک شناسه جدید با قابلیت تنظیم مجدد توسط کاربر برای تبلیغات به نام شناسه تبلیغاتی راه اندازی کرد.

شناسه تبلیغات ممکن است توسط تبلیغ‌کنندگان برای اجرای کمپین‌های بازاریابی مجدد و ثبت «تبدیل‌ها» (خرید یا دانلود) استفاده شود. شناسه تبلیغاتی دو ویژگی کلیدی دارد:

  • کاربران می توانند شناسه تبلیغات را در هر زمان بازنشانی کنند.
  • کاربران می‌توانند هر زمان که بخواهند، مستقیماً از برنامه تنظیمات Google از تبلیغات مبتنی بر علاقه انصراف دهند. این تنظیم برای همه شرکت‌های تبلیغاتی که از شناسه تبلیغاتی استفاده می‌کنند اعمال می‌شود.

تعریف فنی

شناسه تبلیغات از طریق BidRequest.Mobile.encrypted_advertising_id در پروتکل پیشنهادی بی‌درنگ ارسال می‌شود:

optional bytes encrypted_advertising_id = 20;

این فیلد 36 بایت است و شامل 3 بخش است:

{initialization_vector (16 bytes)}{ciphertext (16 bytes)}{integrity_signature (4 bytes)}

تعاریف

متغیر جزئیات
initialization_vector 16 بایت - منحصر به فرد برای برداشت.
ciphertext 16 بایت - تولید شده به صورت: <advertising_id <xor> hmac(encryption_key, initialization_vector)>
integrity_signature 4 بایت - تولید شده به عنوان 4 بایت اول: hmac(integrity_key, advertising_id || initialization_vector)
encryption_key 32 بایت - ارائه شده در راه اندازی حساب.
integrity_key 32 بایت - ارائه شده در راه اندازی حساب.
advertising_id 16 بایت - شناسه تبلیغاتی اصلی و رمزگذاری نشده، که یک UUID است
final_message 36 بایت - آرایه بایت ارسال شده از طریق قسمت encrypted_advertising_id .
اپراتورها جزئیات
hmac(key, data) SHA-1 HMAC، با استفاده از key برای رمزگذاری data .
a || b رشته a به رشته b پیوسته است.

طرح رمزگذاری

طرح رمزگذاری برای شناسه تبلیغاتی بر اساس همان طرحی است که برای رمزگشایی تأییدیه‌های قیمت استفاده می‌شود.

  1. شناسه تبلیغاتی در یک آرایه بایتی ذخیره می‌شود که با استفاده از یک طرح رمزگذاری سفارشی که برای به حداقل رساندن حجم سربار طراحی شده و در عین حال امنیت کافی را تضمین می‌کند، رمزگذاری می‌شود.
  2. طرح رمزگذاری از یک الگوریتم HMAC کلیددار برای تولید یک صفحه مخفی بر اساس initialization_vector استفاده می‌کند که منحصر به رویداد impression است.

شبه رمزگذاری

advertising_id = advertising ID from mobile device
pad = hmac(encryption_key, initialization_vector) // first 16 bytes
ciphertext = pad <xor> advertising_id
integrity_signature = hmac(integrity_key, advertising_id || initialization_vector)  // first 4 bytes
final_message = initialization_vector || ciphertext || integrity_signature

طرح رمزگشایی

کد رمزگشایی شما باید 1) فیلد encrypted_advertising_id را با استفاده از کلید رمزگذاری رمزگشایی کند و در صورت تمایل 2) بیت های یکپارچگی را با کلید یکپارچگی تأیید کند. کلیدها در حین تنظیم حساب در اختیار شما قرار خواهند گرفت. هیچ محدودیتی در نحوه ساختار پیاده سازی شما وجود ندارد.

  1. پد خود را ایجاد کنید : hmac(encryption_key, initialization_vector)
  2. XOR : این نتیجه را بگیرید و <xor> با متن رمزگذاری کنید تا رمزگذاری معکوس شود.
  3. تأیید کنید : امضای یکپارچگی 4 بایت HMAC(integrity_key, advertising_id || initialization_vector)

رمزگشایی شبه کد

(initialization_vector, ciphertext, integrity_signature) = final_message // split up according to length
pad = hmac(encryption_key, initialization_vector) // first 16 bytes
advertising_id = ciphertext <xor> pad
confirmation_signature = hmac(integrity_key, advertising_id || initialization_vector) // first 4 bytes
success = (confirmation_signature == integrity_signature)

کتابخانه جاوا

به جای پیاده سازی الگوریتم های رمزنگاری برای رمزگذاری و رمزگشایی شناسه تبلیغاتی، می توانید از DoubleClickCrypto.java استفاده کنید. برای اطلاعات بیشتر، رمزنگاری را ببینید.