bcrypto / btok

Cryptographic tokens
4 stars 4 forks source link

Тип Place не позволяет описать адрес места жительства #58

Closed andrewkostevich closed 5 years ago

andrewkostevich commented 5 years ago
Place ::= SEQUENCE {
    street
    city
    state
    country
    zipcode
}

Для описания адреса места жительства не хватает компонент:

  1. Район
  2. Номер дома
  3. Номер корпуса
  4. Номер квартиры

Рекомендуется ввести компоненты (отличать объекты-тезки)

  1. Тип улицы
  2. Тип населенного пункта

Компонент state лучше локализовать: переименовать в region, из описания убрать упоминание провинции, штата

olegotory commented 5 years ago

Тип Place является стандартным. Для задания места рождения или места жительства вместо компонента structuredPlace типа Place может использоваться компонент freetextPlace типа UTF8String. Компонент freetextPlace позволяет задавать адреса в произвольном виде.

andrewkostevich commented 5 years ago

Тип Place является стандартным

Какого стандарта?

agievich commented 5 years ago

Тип Place взят из стандарта EIDAS: https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TR03110/BSI_TR-03110_Part-4_V2-2.pdf?__blob=publicationFile&v=2.

По поводу детализации адреса. Мы пытались провести детализацию в BPKI. Но почти сразу же отказались. Слишком много опций: строение (кроме дома и корпуса), помещение (кроме квартиры), поселок, поселок городского типа и рабочий поселок (кроме деревни, села, города), шоссе, проспект, бульвар, разъезд и даже тупик (кроме улицы и переулка). Как бы нам не зайти в тупик с попыткой оцифровки географических локаций. Обычные адреса -- это не адреса "цифрового мира", это адреса для людей, машины не должны их понимать во всех подробностях. В BPKI мы отказались от подробных адресов (см. https://github.com/bcrypto/bpki/issues/17).

Предложение: без изменений.

andrewkostevich commented 5 years ago

По сути: информационные системы-получатели данных заинтересованы в структурированном адресе (например, авто-заполнение реквизитов договора с гражданином, электронного обращения). Поэтому целесообразно использовать структурированный адрес: расширить тип Place на типовые городские адреса (этим будет закрыто 95% адресов). Нестандартные адреса (оставшиеся 5%) могут быть корректно заданы выбором компоненты freetextPlace.

По форме: тип Place для задания места жительства использован быть не может, будет всегда использоваться компонента freetextPlace, для описания места рождения тип Place избыточен. Пользы от этого типа нет.

agievich commented 5 years ago

Предложение: дать конкретные предложения в виде PR, а текущий вопрос закрыть.

olegotory commented 5 years ago

... для описания места рождения тип Place избыточен. Пользы от этого типа нет.

Тип Place содержит опциональные компоненты, которые могут не включаться. Следует также учитывать, что ID-карты будут выдаваться лицам без гражданства и лицам, имеющим вид на жительство. Место рождения таких владельцев карт может быть задано в первоначальных документах по правилам, отличным от принятых в РБ. Считаю, что предусмотреть все варианты, которые возможны по заданию место рождения и места жительства на данном этапе невозможно.

olegotory commented 5 years ago

Район можно задавать в state (см. #62). Номер дома, корпуса, квартиры и т.п. можно задавать в street. Тип улицы и тип населенного пункта может быть определен из контекста данных, например, если улица начинается с "пр-т" -- означает проспект.

Предложение: сказать в стандарте, что в street может указываться уточняющая информация (номер дома, корпуса, квартиры и т.п.).

olegotory commented 5 years ago

В п. 7.1 стандарта предлагается внести следующие изменения:

  1. Вместо

    компонент street должен содержать название улицы (переулка, проспекта, площади и т. п.);

написать

компонент street должен содержать название улицы (проспекта, площади, переулка и т. п.) и, при необходимости, уточняющую информацию (номера дома, корпуса, квартиры и т. п.);

Отмечу, что в TR-03127, в котором для задания адреса места жительства используется тип Place, сказано: "The place of residence is usually stored as a structured address (structuredPlace according [TR-03110] consisting of the country code, street with house number, place of residence and postal code."

  1. Вместо

    компонент state должен содержать название области (штата, провинции и т. п.);

написать

компонент state должен содержать название области (штата, провинции, края и т. п.) и, при необходимости, района;

  1. Вместо

    Если информация о месте рождения или месте жительства КТ не известна ...

написать

Если информация о месте рождения или месте жительства владельца КТ не известна ...

  1. Вместо

    Почтовые индексы, которые указываются в группах DG17 и DG18, должны совпадать.

написать

Если информация о месте жительства владельца КТ не известна, то в группе DG18 указывается значение 'ZIPBY-XXXXXX', иначе почтовые индексы, которые указываются в группах DG17 и DG18, должны совпадать.

agievich commented 5 years ago

Реализовано в https://github.com/bcrypto/btok/commit/1da29c9f76e9dea49fc3054b5e83fcd6713e0e23.