1. Куча / Говнокод #21863

    +7

    1. 1
    2. 2
    3. 3
    4. 4
    You should sign all of your APKs with the same certificate throughout the expected lifespan of your apps.
    If you plan to publish your apps on Google Play, the key you use to sign those APKs must have a validity period ending after 22 October 2033.
    The public-key certificate serves as as a "fingerprint" that uniquely associates the APK to you and your corresponding private key. 
    This helps Android ensure that any future updates to your APK are authentic and come from the original author.

    Короче, рахитекторы гугла (которые, как мы знаем, всего-лишь разработчики, дольше других работающие в компании и потому знающие больше костылей и граблей) придумали охуенную тему с заливкой приложений в свой маркет. Генерируешь пару ключей, подписываешь APK, при первой заливке в маркет твой публичный ключ запоминают, и все последующие апдейты этого приложения будь добр подписывай той же парой ключей.

    Если ты проебал ключ, ты больше не можешь обновить своё приложение. Если кто-то спиздил твой ключ (а ведь обычно такую хуиту более 1 разработчика могут хранить), ты больше не можешь обновить своё приложение. Если последний разработчик съебался с приватным ключом, ты больше не можешь обновить свое приложение.

    Гугл, 2016 год на дворе. Почитай про сертификаты, УЦ, CRL. Включи голову. Управлять запросами на получение, сертификатами, их сроком жизни длиной в год-два, а не двадцать, списком отзыва (т.к. приватный ключ легко проебать) из личного кабинета - это не так и сложно. Проверять на устройстве Subject сертификата, корректно подписанного доверенным УЦ, вместо того, чтобы кешировать публичный ключ (я ведь правильно понял твою систему?) не так и сложно.

    Что за пиздец? Не ожидал такого от них.

    Запостил: defecate-plusplus, 19 Декабря 2016

    Комментарии (15) RSS

    • #seo #google-is-a-piece-of-shit #славаСХМ
      Ответить
    • Пиздец будет, когда я залью своё семя в твои дыхательные пути.
      Ответить
    • > ты больше не можешь обновить свое приложение
      А вот он - сможет. И не дай бог он на тебя обиду затаил...

      > Почитай про сертификаты, УЦ, CRL.
      Блин, даже тор, с его анонимностью и децентрализованностью, додумался разделить identity key (вечный, который можно хранить подальше от сервака) и onion key (на месяц, не так страшно проебать, подписанный тем самым identity key). А гугло-дауны каждого разраба заставили играть в УЦ со вполне предсказуемыми последствиями...
      Ответить
      • Он тоже не сможет. Ему надо сначала в кококонсоль девелопера залогинится, так что ему еще и почту мою угнать надо.
        Ответить
    • > кешировать публичный ключ
      Причём кешируется оно, насколько помню, прямо на девайсе. Так что даже Всемогущий Гугол не поможет перенести данные юзера в новую версию, если разраб золотой ключик проебал.
      Ответить
    • > рахитекторы гугла которые, как мы знаем, всего-лишь разработчики

      Тут не в рахитекторах дело, такое должны специально выделенные безопасники инспектировать. То ли они тогда проглядели, то ли это отклики того, что андроид когда-то был секретным стартапом и безопасников до него толком не пустили, и стартаперы сделяли как могли. Или тупо решили переложить всю боль на разработчиков. Я не знаю.

      Вообще говоря, каждый всего-лишь разработчик должен такие косяки видеть.

      Кстати, даже с такой простейшей системой сертификатов разрабы творят тупейшие косяки: подписывают приложения тестовыми ключами, подписывают тыщи приложений одним и тем же ключом, etc:
      http://researchcenter.paloaltonetworks.com/2014/08/bad-certificate-management-google-play-store/
      Ответить
      • > разрабы творят тупейшие косяки
        Да что далеко ходить... s-a--m даже учётку от ГК так потерять умудрился, закоммитив пароль от ключа (а заодно и своей мыльницы) на github.
        Ответить
      • > подписывают приложения тестовыми ключами, подписывают тыщи приложений одним и тем же ключом
        И что характерно, гугл мог бы это тестовое говно отфильтровать на уровне плеймаркета даже при текущей схеме.
        Ответить
      • > подписывают тыщи приложений одним и тем же ключом
        You should sign all of your APKs with the same certificate throughout the expected lifespan of your apps. Всё по гайдлайнам.

        https://developer.android.com/studio/publish/app-signing.html#considerations
        Ответить
    • Уже узнавал. Гугл говорит, так пришлось делать из-за децентрализации, т.е., мол, плеймаркет не может выступать CA т.к. он не на всех девайсах ведь есть. Поэтому да — каким ключом была подписана программа при установке на девайс, только этому ключу отныне этот девайс и будет верить.
      Ответить
      • А цепочку сертификатов (хотя бы двух, как в том же торе) сделать тоже децентрализация не позволила?
        Ответить
      • А где Ваш камрад - Миозин?
        Ответить
        • Камрада нет, но вы там держитесь. Хорошего вам настроения!
          Ответить

    Добавить комментарий