Третирајте тајниот број на сметката како пристапен податок: ревидирајте го
Ако знаењето на бројот некого пријавува или презема конфигурација, тоа е пристапен податок. Спроведете ги проверките на овластувања, складирање, стапка на погодување и ротација.
Поле означено како број на сметка не е автоматски јавна референца, а ознаката не е тест. Тест е она што поседувањето го овозможува: ако знаењето на бројот некого пријавува, презема профил на врска или авторизира уред, тој број е пристапен податок со животен циклус. Ги спроведувам петте проверки подолу секогаш кога услугата издава нумерички идентитет и го нарекува безопасен. Секоја создава ред во краток запис, а записот е резултат, не пресуда за производот.
Пописете што поседувањето навистина дава
Запишете ја секоја акција што бројот ја отклучува, одделно. Пријавувањето на портал, преземањето конфигурациска датотека, авторизацијата на нов уред и обезбедувањето прифатено тунелско пријавување се различни овластувања, а услугата може да примени едно без другите. Портал што го прифаќа бројот како единствено поле не кажува ништо за тоа како тунелот го автентицира својот партнер подоцна ни како се изведуваат сообраќајните клучеви.
Општиот модел е лесно да се изрази: bearer пристапен податок е оној што носителот може да го користи без докажување поседување на одделен криптографски клуч, што е разликата што RFC 6750 ја одредува за токените. Тоа е споредба, не тврдење дека услуга заснована на број применува OAuth. Ако носителот не треба ништо друго, третирајте го бројот како bearer тајна и класифицирајте го остатокот од дизајнот соодветно.
Заштитете го како тајна, не како референца
Складирањето произлегува од класификацијата. Вредност што пријавува припаѓа во менаџер за лозинки, не во слика од екранот, историја на таблата, порака во чет или белешка во прелистувачот. Сликите од екранот се вообичаено истекување: бројот е краток и изгледа безопасно, па завршува во нишка за поддршка што го надживува уредот од кој доаѓа.
Фишингот е другиот начин на откажување и не го интересира колку е случаен бројот. Измамник што ја сака вредноста ќе ве замоли да ја залепите во образец, а пристапен податок што никогаш не истекува и нема втор фактор вреди за трудот. До патеката за пријавување дојдете преку обележувач или позната адреса, не преку врска во порака што исто така го бара бројот.
Третирајте го материјалот за опоравување како дел од тајната. Ако операторот издал и код за опоравување, PIN или адреса на е-пошта со која сметката може да се ресетира, тоа се одделни пристапни податоци со истиот услов за заштита. Еден незаштитен канал за ресетирање ја претвора секоја друга контрола во украс.
Проверувајте ја отпорноста на погодување и ограничувањето на брзина заедно
Должината има смисла само покрај методот на генерирање. Долг број од предвидлив ред е послаб од кратка вредност од криптографски генератор, а импресивниот број цифри не докажува непредвидливост. Прашајте како се генерира вредноста пред да размислувате колку е тешко да се погоди.
Самата отпорност на погодување исто така не преживува неограничена стапка на обиди. Контролите што се важни се оние што операторот ги применува: бројачи на неуспешни обиди, заклучувања, ограничување по извор и дали погрешниот број може да се разликува од непостоечки. Ако услугата го поддржува тоа, еден неуспешен обид покажува како изгледа грешката и дали се појавува бројач за повторни обиди:
# one attempt, then read the response and any counter or delay
# do not script repeated guesses against a live account
curl -i -X POST https://portal.example.invalid/login -d "account=000000000000"
Забележете што открива одговорот. Одделна грешка за непозната сметка е oracle за набројување дури и кога бројот е невозможно да се погоди, и тој наод припаѓа во записот, без разлика дали можете да го поправите на страната на клиентот.
Планирајте ротација и отповикување пред да ви требаат
Најдете го поддржаниот процес за изгубен или откриен број и запишете го додека сѐ работи. Може ли пристапниот податок на сметката воопшто да се замени? Дали замената ги поништува веќе запишаните уреди, активните сесии или преземената конфигурација? Каков материјал за опоравување бара процесот? Услуга без зависност од е-пошта може да пренесе повеќе одговорност за опоравување на корисникот, што го прави процесот поважен, не помалку.
Одделете ја замената на сметката од отповикувањето на пристапниот податок. Ако бројот авторизира преземање на клуч, сертификат или профил, замената на бројот може да го остави преземениот материјал важечки, а отповикувањето на преземениот материјал може да биде друга операција со друг сопственик. Не претпоставувајте дека едно изменето поле прекинува секоја врска; проверете го стварниот модел на операторот и забележете каде сте го потврдиле.
Документирајте ја одлуката и проверете ја повторно подоцна
Водете запис од една страница за секоја услуга: кои овластувања ги дава бројот, каде е зачуван, кој може да го ресетира, какви докази за употреба постојат и што би направиле во првиот час по откривањето. Тој запис ја претвора расправата за терминологија во одлука што некој може да ја ревидира.
Тврдењата за приватност требаат сопствен обем. Случајно генериран број може сѐ уште да биде стабилен идентификатор што ги поврзува настаните на сметката низ времето; непредвидливоста не е неповрзливост и ниту едно својство не кажува ништо за задржаните мрежни метаподатоци. Споредувајте цели дизајни наместо да броите полиња на екранот за пријавување.
Пред да го зачувате:
- Наведени се сите овластувања што ги дава бројот, вклучувајќи преземања и авторизација на уреди.
- Каналите за складирање и опоравување се заштитени со истиот стандард како и самиот број.
- Методот на генерирање и ограничувањата на брзина се познати, а не претпоставени од должината.
- Постојат процес за замена и процес за отповикување и знаете кој го укинува кој.
- Записот наведува кој може да ја ресетира вредноста и какви докази остануваат по употребата.