Caller ID — номер вызывающего абонента, который телефонная сеть передаёт вместе с вызовом. Он позволяет подтвердить владение номером, ничего не отправляя пользователю: достаточно сверить, с какого номера пришёл звонок.
При каждом вызове сеть передаёт принимающей стороне номер звонящего — это и есть Caller ID (в документации встречается как CLI, Calling Line Identification). Именно его показывает телефон на входящем вызове, и именно его видит сервис, принимающий звонок на свой номер.
Схема переворачивает привычную: вместо того чтобы отправлять пользователю код, сервис выдаёт ему номер и просит позвонить. Когда вызов приходит, сервис сверяет Caller ID с номером, который проверяет. Совпало — номер подтверждён. Так работает обратный flash-call, и кода в этой схеме нет вообще: ни отправлять, ни читать, ни вводить нечего.
Caller ID можно подменить — это известная проблема телефонной сети, на которой строятся мошеннические звонки. Для подтверждения номера она смягчается тем, что звонок идёт на выделенный номер внутри сети оператора, а не произвольному абоненту, но полностью не исчезает: как и любой одиночный фактор, Caller ID не стоит считать строгой аутентификацией. Для чувствительных операций его дополняют вторым фактором — см. 2FA.
Ещё один метод на том же механизме — flash-call, только наоборот: звонит сервис, а кодом служат последние цифры его номера, которые пользователь читает в журнале вызовов.
Calling Line Identification — то же самое, что Caller ID: номер звонящего, который передаёт сеть.
Для большинства сценариев — да, и у метода есть преимущество: перехватывать нечего, потому что кода нет. Как и любой одиночный фактор, строгой аутентификацией он не является.
При обратном flash-call вызов не принимается, поэтому тарификации у абонента не возникает.