Область техники
Данное изобретение относится, в общем, к компьютерной связи и, более конкретно, к обеспечению основанной на пароле безопасности для сеансов компьютерной связи.
Предпосылки изобретения
Компьютерные сети растут все больше и переносят гораздо больше критичной информации. Ради безопасности, компьютерное устройство, использующее сеть, часто доказывает свою идентичность («аутентифицирует себя») другим устройствам и только обменивается чувствительной информацией с другими аутентифицированными устройствами. Однако огромное большинство аутентифицированных средств связи все еще уязвимы для атак на безопасность. В одной форме атаки на безопасность атакующий ошибочно аутентифицируется возможно путем исполнения роли законного устройства. После аутентификации атакующий имеет доступ к информации, предназначенной только для законно аутентифицированных устройств. Во второй форме атаки атакующий не аутентифицируется, но перехватывает информацию на коммуникациях среди аутентифицированных устройств для получения кодов безопасности. С этими кодами безопасности перехватчик может получить критичную информацию, посылаемую аутентифицированными устройствами. Эти атаки на безопасность являются особенно назойливыми для устройств, которые связываются через беспроводные технологии, так как сложно или невозможно ограничить физический доступ к их коммуникациям.
Эти две формы атак на безопасность рассматриваются двумя основными аспектами безопасности связи. Во-первых, способы аутентификации становятся все более усложненными для предотвращения их использования незаконными нарушителями. Типичное окружение связи содержит сервер аутентификации, который связывается со всеми вычислительными устройствами (называемыми «клиентами аутентификации»), когда они пытаются стать аутентифицированными. Чтобы стать аутентифицированным, клиент аутентификации обычно должен доказать свое знание некоторых «верительных данных». В некоторых случаях «верительные данные» включают в себя секретный пароль связи, разделенный между клиентом аутентификации и сервером аутентификации. В других случаях «верительные данные» могут основываться на парах открытого/личного ключей и сертификатах безопасности. В любом случае, только после доказательства своего знания «верительных данных» клиент аутентификации аутентифицируется для сервера аутентификации. Процесс аутентификации обычно является совместным, с сервером аутентификации, также доказывающим свою идентичность для клиента аутентификации.
Во втором аспекте безопасности связи информация, передаваемая между аутентифицированными вычислительными устройствами, является шифрованной. В типичном способе шифрования отправитель и приемник информации сначала договариваются о схеме кодирования информации. Схема кодирования основана на секретных ключах безопасности часто, но не всегда совместно используемых отправителем и приемником. Секретные ключи безопасности могут основываться на одном и том же пароле связи, используемом для аутентификации. Отправитель шифрует информацию с использованием согласованной схемы кодирования и затем посылает шифрованную информацию к приемнику. После приема приемник дешифрует информацию с использованием согласованной схемы кодирования. Хотя шифрованная информация может все же быть перехваченной, перехватчик не может получить первоначальную информацию не зная ключей безопасности.
Однако аутентификация и шифрование не всегда обеспечивают достаточную защиту. Например, шифрованная информация является все еще предметом большого количества атак, включая статистические атаки. При статистической атаке перехватчик анализирует набор шифрованных сообщений для того, чтобы выделить образцы (шаблоны), которые связаны со схемой безопасности, согласованной отправителем и приемником. Из этих образцов перехватчик может выявить ключи безопасности, лежащие в основе согласованной схемы безопасности и использовать их для дешифровки шифрованной информации.
Из-за статистической природы этого способа атаки его точность улучшается с возрастающим количеством анализируемых сообщений. Таким образом, одним подходом для срыва статистических атак является ограничение количества посылаемой информации, использующей какую-либо схему безопасности. Чтобы это сделать, ключи безопасности, лежащие в основе согласованной схемы безопасности, могут часто изменяться. Совместный процесс аутентификации изменяет ключи безопасности, используемые клиентом аутентификации и сервером аутентификации. Однако аутентификация не изменяет тот факт, что новые ключи безопасности все еще основаны на неизмененном пароле связи. Со временем этот пароль может быть подвергнут риску, так что его также надо часто изменять. Это не является таким простым делом, каким может сначала показаться. Для того чтобы быть полезным, новый пароль (или информация, выводимая из него) должен быть доступен как для клиента аутентификации, так и для сервера аутентификации. Простая установка нового пароля для клиента аутентификации и затем посылка его по линии связи к серверу аутентификации не является очень безопасной. «Внешние» способы (способы, которые не используют компьютерную линию связи) посылки нового пароля, хотя и разумно безопасные, могут быть такими обременительными, особенно если сервер аутентификации расположен далеко от клиента аутентификации, что они отбивают охоту к частому изменению пароля.
Что необходимо, так это необременительный способ для клиента аутентификации и сервера аутентификации для реализации нового пароля связи без явной передачи нового пароля по линии связи.
Сущность изобретения
Ввиду предыдущего, данное изобретение обеспечивает способ для клиента аутентификации, аутентифицированного сервером аутентификации, усилия эффекта этой аутентификации для реализации нового пароля связи. Сервер аутентификации требует, чтобы клиент аутентификации реализовал новый пароль. Клиент аутентификации получает новый пароль от его пользователя. Из нового пароля и из информации, обеспеченной сервером аутентификации, клиент аутентификации выводит «верификатор пароля». Верификатор пароля затем совместно используется с сервером аутентификации. Во время процесса реализации нового пароля связь между клиентом аутентификации и сервером аутентификации является безопасной благодаря использованию ключей безопасности, выведенных из предыдущего пароля. Сам новый пароль никогда не посылается к серверу аутентификации, и по существу невозможно вывести новый пароль из верификатора пароля. Для будущих повторных аутентификаций знание сервером аутентификации верификатора пароля и знание клиентом аутентификации самого нового пароля служат в качестве «верительных данных».
Клиент аутентификации и сервер аутентификации параллельно выводят новый набор ключей безопасности из их знания их соответствующих «верительных данных». Новые ключи безопасности используются для аутентификации и шифрования, пока процесс не повторится, и новый набор ключей безопасности не будет выведен из нового пароля. Этот процесс может быть повторен настолько часто, как требуется, для ограничения объема посылаемых данных с использованием любого конкретного набора ключей безопасности, таким образом, для ограничения эффективности любого статистического нарушителя.
В другом аспекте данного изобретения, сервер аутентификации решает, когда текущий пароль связи должен быть изменен, его решение, вероятно, основано на периоде времени или на количестве данных, посланных с использованием текущего пароля.
Краткое описание чертежей
Хотя прилагаемая формула изобретения конкретно излагает особенности данного изобретения, изобретение, вместе с его целями и преимуществами, может быть понято наилучшим образом из следующего подробного описания, рассмотренного в сочетании с сопутствующими чертежами, в которых:
Фигура 1 является блок-схемой, показывающей примерное окружение связи с клиентом аутентификации, сервером аутентификации и перехватчиком;
Фигура 2 является схематичной диаграммой, в общем, иллюстрирующей примерную вычислительную систему, которая поддерживает данное изобретение;
Фигуры 3а-3с вместе образуют диаграмму последовательности передачи потоков данных, в общем, показывающую передаваемую информацию и выполненные операции, когда клиент аутентификации и сервер аутентификации совместно аутентифицируют друг друга и затем реализуют новый пароль связи согласно одному варианту осуществления данного изобретения;
Фигура 4 является диаграммой структуры данных, показывающей возможные сообщения, используемые во время процесса реализации нового пароля связи.
Подробное описание изобретения
На чертежах, где подобные ссылочные цифры относятся к подобным элементам, данное изобретение показано как реализованное в соответствующем вычислительном окружении. Следующее описание основано на вариантах осуществления изобретения и не должно быть понято как ограничивающее изобретение относительно альтернативных вариантов, которые здесь не описаны явно.
В описании, которое следует, данное изобретение описано со ссылкой на действия и символические представления операций, которые выполняются одним или несколькими вычислительными устройствами, если не указано иное. По существу будет понятно, что такие действия и операции, которые иногда называются выполняемыми компьютером, включают в себя манипулирование процессором вычислительного устройства электрическими сигналами, представляющими данные в структурированной форме. Это манипулирование преобразует данные или поддерживает их в местоположениях в системе памяти вычислительного устройства, которое перенастраивает или изменяет иным образом работу устройства способом, хорошо понятным специалистам в данной области техники. Структурами данных, где поддерживаются данные, являются физические местоположения памяти, которые имеют конкретные свойства, определенные форматом данных. Однако, хотя изобретение описывается в вышеупомянутом контексте, это не означает, что он является ограничивающим, так как специалистам в данной области техники понятно, что различные действия и операции, описываемые ниже, могут быть также реализованы в аппаратном обеспечении.
В сетевом окружении 100 на фиг.1 клиент 102 аутентификации доказал свою идентичность («аутентифицирован сам») серверу 106 аутентификации. Чтобы сделать это, клиент 102 аутентификации доказал серверу 106 аутентификации, что хранит секретную информацию, предположительно известную только объекту, идентичность которого запрашивает клиент 102 аутентификации. Эта секретная информация называется «верительными данными» клиента 102 аутентификации.
Отметим, что в некоторых окружениях (средах) 100, особенно в беспроводных сетях, клиент 102 аутентификации может связываться непосредственно с сервером 104 локального доступа. Сервер 104 доступа устанавливает связь между клиентом 102 аутентификации и сервером 106 аутентификации, которые могут быть удалены и могут обслуживать несколько, возможно сотни, сетей 100. Возможное присутствие сервера 104 доступа не влияет на описание данного изобретения и не будет упоминаться опять.
После завершения успешной аутентификации клиент 102 аутентификации и сервер 106 аутентификации выводят набор ключей безопасности, которые они могут использовать в шифровании и аутентификации сообщений, проходящих между ними. Ключи безопасности выводятся, частично, из «верительных данных» клиента 102 аутентификации. Шифрование и аутентификация являются необходимыми, так как все сообщения, передаваемые в сети 100, подвержены перехватыванию злонамеренным перехватчиком 108. Перехватчик 108 перехватывает сообщения и применяет к ним статистические способы в попытке открыть ключи безопасности, используемые для их защиты. Из-за статистической природы этой атаки ее точность улучшается с возрастающим количеством проанализированных сообщений. Для срыва этой статистической атаки клиент 102 аутентификации и сервер 106 аутентификации должны быстро изменять ключи безопасности, прежде чем перехватчик 108 сможет перехватить достаточно сообщений для определения этих ключей безопасности.
Для изменения ключей безопасности существуют известные способы. Например, во время каждой аутентификации генерируется информация «жизнеспособности», такая как случайная величина или временная метка. Путем включения информации жизнеспособности вместе с «верительными данными» в выведение ключей безопасности, различный набор ключей безопасности выводится для каждой успешной аутентификации. Однако каждый набор ключей безопасности все еще выводится из одних и тех же «верительных данных». Если эти «верительные данные» подвергнуты риску, то ключи безопасности уязвимы для атаки. Для предотвращения этого «верительные данные» должны периодически изменяться, так что ключи безопасности, выводимые из «верительных данных», изменяются часто.
Изменение «верительных данных» клиента 102 аутентификации не является таким простым, как это может сначала показаться. «Верительные данные» могут быть легко изменены на клиенте 102 аутентификации, но, чтобы быть полезным, это изменение должно быть скоординировано с сервером 106 аутентификации. В ином случае сервер 106 аутентификации все еще искал бы доказательство знания клиентом 102 аутентификации старых «верительных данных». (Как описано ниже, сервер 106 аутентификации, в действительности, не нуждается в знании этих «верительных данных». Сервер 106 аутентификации может верифицировать знание клиентом 102 аутентификации «верительных данных», не зная самих этих данных.) Одним простым способом координации изменения является посылка «верительных данных» по линии связи к серверу 106 аутентификации. Этот способ, однако, не является очень надежным при условии возможного присутствия перехватчика 108. Другие известные способы координации изменения обычно включают в себя «внешние» коммуникации (способы, которые не используют компьютерную линию связи). Хотя и разумно безопасные, внешние способы могут быть такими обременительными, особенно если сервер 106 аутентификации расположен далеко от клиента 102 аутентификации, что они отбивают охоту к частым изменениям «верительных данных». Данное изобретение обеспечивает надежный, но не обременительный способ для координации клиентом 102 аутентификации и сервером 106 аутентификации реализации новых «верительных данных».
Клиент 102 аутентификации фиг.1 может быть любой архитектуры. Фиг.2 является блок-схемой, в общем, показывающей примерную компьютерную систему, которая поддерживает данное изобретение. Компьютерная система согласно фиг.2 является одним примером соответствующего оборудования и не предназначена для предложения какого-либо ограничения как рамок использования, так и функциональности изобретения. Также и клиент 102 аутентификации не должен интерпретироваться как имеющий какую-либо зависимость или требование, касающееся какого-либо одного или комбинации компонентов, показанных на фиг.2. Изобретение работает с бесчисленными другими компьютерными окружениями или конфигурациями общего назначения или специального назначения. Примеры хорошо известных вычислительных систем, окружений и конфигураций, подходящих для использования с изобретением, включают в себя, но не ограничены этим, персональные компьютеры, серверы, карманные или портативные устройства, многопроцессорные системы, основанные на микропроцессорах системы, телеприставки, программируемые потребительские электронные схемы, сетевые ПК, миникомпьютеры, большие ЭВМ и распределенные вычислительные окружения, которые включают в себя любую из вышеупомянутых систем или устройств. В своей наиболее общей конфигурации клиент 102 аутентификации обычно включает в себя, по меньшей мере, один процессор 200 и память 202. Память 202 может быть энергозависимой (такая как ОЗУ), энергонезависимой (такая как ПЗУ или флэш-память) или некоторой комбинацией из этих двух. Эта наиболее основная конфигурация показана на фиг.2 пунктирной линией 204. Клиент 102 аутентификации может иметь дополнительные особенности и функциональность. Например, клиент 102 аутентификации может включать в себя дополнительную память (сменную или не сменяемую), включающую, но не ограниченную, магнитные и оптические диски и ленту. Такая дополнительная память показана на фиг.2 сменной памятью 206 и несменяемой памятью 208. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и несменяемые носители, реализованные в любом способе или технологии для сохранения информации, такой как считываемые компьютером команды, структуры данных, программные модули и другие данные. Память 202, сменная память 206 и несменяемая память 208 являются примерами компьютерных носителей данных. Компьютерные носители данных включают в себя, но на ограничены этим, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память, другую технологию памяти, ПЗУ на компакт-диске, цифровые универсальные диски, другую оптическую память, магнитные кассеты, магнитную ленту, память на магнитных дисках, другие устройства магнитной памяти и любые другие носители, которые могут использоваться для сохранения желаемой информации и могут быть доступны клиенту 102 аутентификации. Любой такой компьютерный носитель данных может быть частью клиента 102 аутентификации. Клиент 102 аутентификации может также содержать каналы связи 210, которые позволяют устройству связываться с другими устройствами. Каналы связи 210 являются примерами среды передачи данных. Среда передачи данных обычно воплощает считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая или другой механизм переноса и включает в себя любую среду распространения информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или несколько своих характеристик, установленных или измененных таким образом, чтобы кодировать информацию в сигнале. Посредством примера, а не ограничения, среда передачи данных включает в себя оптические носители, проводные носители, такие как проводные сети и непосредственно проводные соединения, и беспроводные носители, такие как акустические, радиочастотные, инфракрасные и другие беспроводные носители. Термин «считываемый компьютером носитель», используемый здесь, включает в себя как носитель данных, так и среду передачи данных. Клиент 102 аутентификации может также иметь устройства ввода 212, такие как клавиатура, мышь, перо, устройство речевого ввода, устройство сенсорного ввода и т.д. Также могут быть включены устройства вывода 214, такие как дисплей, громкоговорители и принтер. Все эти устройства хорошо известны в данной области техники и не нуждаются в подробном описании здесь.
Диаграмма потоков данных на фиг.3а-3с показывает примерный способ для реализации данного изобретения. Стадии 300-308 устанавливают этот этап. На стадиях 300 и 302 клиент 102 аутентификации и сервер 106 аутентификации аутентифицируют друг друга с использованием известных способов аутентификации. В качестве примера подходящего способа аутентификации рассмотрим IETF RFC (запрос на комментарий Комитета инженерной поддержки сети Интернет) 2945, «The SRP Authentication and Key Exchange System», включенный здесь в его полноте. Хотя стадии 300 и 302 означают совместную аутентификацию, данное описание фокусируется на обновлении «верительных данных», используемое в одном направлении аутентификации. В последующих примерах обсуждение фокусируется на аутентификации клиента 102 аутентификации для сервера 106 аутентификации. Поскольку способы изобретения равно применимы для аутентификации сервера 106 аутентификации для клиента 102 аутентификации, это направление аутентификации не нуждается в дальнейшем описании.
«Верительные данные», используемые клиентом 102 аутентификации на стадии 300, включают в себя секретный пароль. Значение этого пароля, возможно, не сохраняется в клиенте 102 аутентификации, а вводится пользователем клиента 102 аутентификации вместе с именем пользователя, когда пользователь желает быть аутентифицированным сервером 106 аутентификации. Ради безопасности сервер 106 аутентификации не знает значение секретного пароля. Он знает, однако, значение «верификатора пароля», выводимого из секретного пароля. Сервер 106 аутентификации сохраняет верификатор пароля в связи с именем пользователя. (Поскольку верификатор пароля сохраняется в связи с именем пользователя, а не в связи с идентификатором клиента 102 аутентификации, было бы более правильным сказать, что аутентифицируется имя пользователя, а не клиент 102 аутентификации. Например, если пользователь перемещается к другому клиенту и использует то же имя пользователя и пароль, то способы аутентификации будут работать, как прежде. Для легкости представления, однако, в данном описании говорится об аутентификации клиента 102 аутентификации для сервера 106 аутентификации.)
Пример того, как верификатор пароля может быть выведен из пароля, описан ниже со ссылкой на стадию 316 фигуры 3b. В этом пункте обсуждения, достаточно знать, что вывод является как «определяющим», так и «необратимым». Определяющий означает, что в самом выводе нет случайности, а именно, после того как входные данные для вывода (которые включают в себя пароль, но могут включать в себя другие величины) известны, выходные данные (верификатор пароля) полностью определены. То, что вывод является необратимым, означает, что входы не могут быть определены знанием выхода вывода. Конкретнее, если какая-либо сторона знает верификатор пароля и все входы для вывода за исключением пароля, то эта сторона все еще не может определить пароль. Эти свойства подразумевают, что с использованием способов процесса аутентификации, только сторона, которая знает сам пароль, может успешно заявлять, что она является клиентом 102 аутентификации. Во время процесса аутентификации, сервер 106 аутентификации использует свое знание верификатора пароля для тестирования знания пароля клиентом 102 аутентификации.
Другие входы для вывода верификатора пароля из пароля совместно используются клиентом 102 аутентификации и сервером 106 аутентификации. Поскольку знания этих других величин не достаточно для воссоздания верификатора пароля без знания самого пароля, эти другие величины могут быть разглашены перед началом процесса аутентификации и даже могут быть установлены как параметры в общедоступном - стандартном протоколе аутентификации.
В качестве одного результата процесса аутентификации, клиент 102 аутентификации на стадии 304 и сервер 106 аутентификации на стадии 306 параллельно выводят набор ключей безопасности. Клиент 102 аутентификации выводит ключи безопасности из секретного пароля, и сервер 106 аутентификации выводит их из верификатора пароля. Успешный процесс аутентификации гарантирует, что ключи безопасности, выведенные на двух устройствах, являются одними и теми же. В качестве примера как того, как процесс аутентификации может обеспечить это, так и того, как выводятся ключи безопасности, см. IETF RFC 2246, «The TLS Protocol», включенный здесь в своей целостности.
Вывод ключей безопасности также включает в себя информацию жизнеспособности, совместно используемую клиентом 102 аутентификации и сервером 106 аутентификации. Использование совместно используемой информации жизнеспособности в выводе делает ключи безопасности различными каждый раз, когда клиент 102 аутентификации аутентифицирует себя для сервера 106 аутентификации. Если бы это не имело места, то клиент 102 аутентификации использовал бы те же самые ключи безопасности после каждой аутентификации. Зная это, перехватчик 108 мог бы возобновлять свою статистическую атаку каждый раз, когда аутентифицируется клиент 102 аутентификации, добавляя заново перехваченные сообщения к своему анализу сообщений, перехваченных во время предыдущих сеансов клиента 102 аутентификации.
Набор ключей безопасности обычно включает в себя как ключи шифрования (которые могут либо совместно использоваться, либо быть парой односторонних ключей), так и ключи аутентификации. После того, как ключи выводятся клиентом 102 аутентификации и сервером 106 аутентификации, эти два устройства могут использовать ключи на стадии 308 для защиты их коммуникаций (обменов). Примеры использования ключей безопасности описаны ниже в ссылке на стадии 312 и 318 фиг.3b. Конечно, поскольку клиент 102 аутентификации и сервер 106 аутентификации начинают на стадии 308 обмен информацией с использованием ключей безопасности, перехватчик 108 может также начать перехватывать сообщения и подвергать их статистической атаке в попытке раскрыть ключи безопасности (не показано).
На стадии 310 сервер 106 аутентификации решает реализовать новый секретный пароль. Причины, стоящие за этим решением, обычно включают в себя продолжительности времени, в течение которого использовался текущий пароль, объем информации, посланной при текущем пароле, и присущую безопасность сети 100. Беспроводные сети обычно открыты для перехвата, так что пароли, используемые на этих сетях, должны периодически изменяться. В любом случае, после решения, что пароль клиента 102 аутентификации должен быть изменен, сервер 106 аутентификации посылает требование этого действия на стадии 312. Отметим, что «требование», возможно, является эвфемизмом в этом контексте: если клиент 102 аутентификации не отвечает изменением своего пароля, сервер 106 аутентификации, возможно, отключит текущий пароль, препятствуя клиенту 102 аутентификации аутентифицировать себя.
Как обсуждалось выше в ссылке на процесс аутентификации стадий 300 и 302, процесс вывода нового верификатора пароля может взять другие входные данные в дополнение к самому новому паролю. Сервер 106 аутентификации может выбрать посылку новых значений для этих других входов вместе с требованием изменить пароль. Это не является строго необходимым, так как новый верификатор пароля может быть выведен из нового пароля и из тех же самых значений других входов, использованных последний раз, когда пароль был изменен. Однако безопасность повышается также путем изменения, по меньшей мере, некоторых из этих входов. Специфические примерные входы, перечисленные на стадии 312 (простой модуль, генератор и «соль» помехи), объяснены ниже в ссылке на стадию 316. Для дополнительной безопасности эти значения могут быть шифрованы с использованием ключей безопасности, выведенных на стадии 306. Если требование изменения пароля включает в себя любые из этих других входов, то может быть также послан МАС (код аутентификации сообщения), охватывающий новые входы. МАС является необратимой хеш-функцией входов и используется клиентом 102 аутентификации для проверки того, было ли содержимое требования изменения пароля принято неизмененным от сервера 106 аутентификации. Пример способа для создания МАС может быть найден в IETF RFC 2104, «HMAC: Keyed-Hashing for Message Authentication», включенном здесь в его целостности.
Клиент 102 аутентификации принимает требование изменения пароля вместе с новыми входными значениями, если таковые имеются. Если имеются какие-либо новые входные значения, то верифицируется МАС. Если верификация не удалась, то требование изменения пароля игнорируется. В противном случае, новые значения дешифруются с использованием того же самого ключа безопасности, использованного для их шифрования, и значения сохраняются для последующего использования. На стадии 314, клиент 314 аутентификации подсказывает своему пользователю насчет нового пароля. Например, стадия 314 может принять форму хорошо известного процесса, в котором пользователь должен ввести старый пароль для аутентификации, затем дважды ввести новый пароль для подтверждения. В некоторых вариантах осуществления новый пароль может быть проверен на различные критерии прежде, чем быть принятым. Эти критерии могут включать в себя знакомые «должен быть, по меньшей мере, восьми символов в длину», «должен включать как буквы, так и цифры», «не должен обнаруживаться в стандартном словаре», «не должен быть перестановкой недавно использованного пароля», «не должен быть именем вашего супруга или домашнего животного» и т.д.
Когда пользователь создает новый пароль, который проходит, какие бы тесты не применил клиент 102 аутентификации, клиент 102 аутентификации выводит новый верификатор пароля из нового пароля на стадии 316. Как обсуждалось выше, вывод должен быть как определяющим, так и необратимым. IETF RFC 2945 представляет следующий способ вывода, который удовлетворяет обоим требованиям:
Верификатор пароля = G^SHA(salt|SHA(имя пользователя|«:»|пароль))%Р,
где SHA(безопасный алгоритм хеширования) является хеш-функцией, хорошо известной в технике;
Salt («соль») - случайная величина, используемая совместно с сервером 106 аутентификации;
| - оператор конкатенации строк;
имя пользователя и пароль вводятся пользователем клиента 102 аутентификации;
«:» - строка, состоящая из символа двоеточия;
^ - оператор возведения в степень;
% - оператор модуля (целочисленный остаток);
Р - «простой модуль», большое (ради безопасности, по меньшей мере, 512-битовое) простое число, используемое совместно с сервером 106 аутентификации; и
G - порождающая функция Р, используемая совместно с сервером 106 аутентификации, а именно, для любого натурального числа А, меньшего, чем Р, существует другое число В, такое что G^B%P=A. Если сервер 106 аутентификации послал новые значения для простого модуля, порождающей функцией или случайной величины на стадии 312, то эти новые значения используются в выводе верификатора пароля.
Клиент 102 аутентификации берет новый верификатор пароля, шифрует его ключами безопасности, выведенными на стадии 306, кодирует его с помощью МАС и посылает его к серверу 106 аутентификации на стадии 318. После того, как верификатор пароля успешно послан, его присутствие на клиенте 102 аутентификации не служит никакой дальнейшей цели, так что он может быть отброшен. Сервер 106 аутентификации верифицирует МАС, дешифрует новый верификатор пароля теми же самыми ключами безопасности, использованными для его шифрования, и сохраняет новый верификатор пароля в связи с именем пользователя и с другими входами в процесс вывода, которые изменились. В некоторых вариантах осуществления простой модуль и генератор изменяются редко, если вообще изменяются, но новая случайная величина (salt) создается каждый раз, когда пароль изменяется.
Если после некоторого периода времени сервер 106 аутентификации не принимает ответ на его требование изменить пароль, он может опять послать это требование. Как указано выше, после повторных безуспешных попыток изменить пароль сервер 106 аутентификации может решить запретить текущий пароль.
Процесс координации изменения в «верительных данных» завершен. Ради безопасности рекомендуется, чтобы клиент 102 аутентификации немедленно использовал новые «верительные данные» путем повторной аутентификации себя на стадии 320 для сервера 106 аутентификации. Если повторная аутентификация успешна, то на стадиях 324 и 326, параллельных стадиям 304 и 306, клиент 102 аутентификации и сервер 106 аутентификации, соответственно, выводят новый набор ключей безопасности на основе новых «верительных данных». На стадии 328 новые ключи безопасности используются для защиты коммуникаций. Новый пароль и новый верификатор пароля остаются в использовании как «верительные данные», пока сервер 106 аутентификации не вернется на стадию 310, решая опять изменить пароль.
Отметим, что способы данного изобретения позволяют изменить «верительные данные» без прерывания связи между клиентом 102 аутентификации и сервером 106 аутентификации. Эти два устройства продолжают использовать старые ключи безопасности, пока новый набор ключей не выведен на основе новых «верительных данных».
Протоколы связи, используемые между клиентом 102 аутентификации и сервером 106 аутентификации, могут определять фактические форматы, используемые для посылки информации на стадиях 312 и 318. Фиг.4 показывает две примерные структуры данных, элемент 400 для сообщения требования изменения паспорта и элемент 402 для сообщения ответа изменения паспорта. Фиг.4 только показывает поля данных примерных сообщений: используемые протоколы связи могут добавлять заголовки и завершители к этим полям данных. Эти два сообщения могут быть воплощены, например, как два новых сообщения EAP-SRP (расширяемый протокол аутентификации - безопасный удаленный пароль). EAP-SRP также определяет определяемое поставщиком сообщение, которое может использоваться для передачи этих полей данных. Другие протоколы связи предлагают подобные возможности.
Ввиду многих возможных вариантов осуществления, в которых могут быть применены принципы данного изобретения, следует понимать, что варианты осуществления, описанные здесь по отношению к чертежам, являются только иллюстративными и не должны рассматриваться как ограничивающие объем изобретения. Специалистам в данной области техники понятно, что некоторые детали реализации, такие как размеры полей данных и форматы сообщений, определены протоколами, выбранными для специфических ситуаций, и могут быть найдены в опубликованных стандартах. Хотя изобретение описано в терминах модулей или компонентов программ, некоторые процессы, особенно способы шифрования, могут быть эквивалентно выполнены компонентами аппаратного обеспечения. Поэтому описываемое здесь изобретение рассматривает все такие варианты осуществления, которые могут попасть в пределы объема следующих пунктов формулы изобретения и их эквивалентов.
Предложены способы для реализации нового пароля клиента аутентификации, аутентифицированного сервером аутентификации. Технический результат заключается в обеспечении безопасности вычислительной среды от компьютерных атак. Для этого клиент аутентификации получает новый пароль от своего пользователя. Из нового пароля и из информации, обеспеченной сервером аутентификации, клиент аутентификации выводит «верификатор пароля». Верификатор пароля затем совместно используется с сервером аутентификации. Сам новый пароль никогда не посылается к серверу аутентификации и по существу невозможно вывести новый пароль из верификатора пароля. Клиент аутентификации и сервер аутентификации параллельно выводят новый набор ключей аутентификации и безопасности шифрования из нового пароля и верификатора пароля соответственно. Этот процесс может быть повторен для ограничения объема данных, посылаемых с использованием любого конкретного набора ключей. 8 н. и 45 з.п. ф-лы, 4 ил.
запрос сервером аутентификации, чтобы клиент аутентификации изменил свой пароль;
обеспечение сервером аутентификации доступности упомянутой новой случайной величины для клиента аутентификации;
запрос и прием на клиенте аутентификации нового пароля от пользователя клиента аутентификации;
вычисление на клиенте аутентификации нового верификатора пароля, с передачей в качестве входных значений для вычисления новой случайной величины и имени пользователя;
обеспечение доступности клиентом аутентификации для сервера аутентификации нового верификатора пароля и
сохранение на сервере аутентификации имени пользователя, нового верификатора пароля и упомянутой новой случайной величины.
вычисление сервером аутентификации первого кода аутентификации сообщения (MAC), охватывающего новую случайную величину, причем первый MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации, выведенного во время аутентификации клиента аутентификации;
обеспечение сервером аутентификации доступности первого MAC для клиента аутентификации и
вычисление на клиенте аутентификации второго MAC, охватывающего новую случайную величину, причем второй MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации,
и в котором запрос и прием нового пароля и вычисление, обеспечение доступности и сохранение нового верификатора пароля выполняются, только если первый MAC совпадает со вторым MAC.
присваивание первому промежуточному значению результатов хеш-функции, причем входные данные для хеш-функции содержат имя пользователя и новый пароль; присваивание второму промежуточному значению результатов хеш-функции, причем входные данные для хеш-функции содержат новую случайную величину и первое промежуточное значение;
присваивание третьему промежуточному значению старой порождающей функции, возведенной в степень второго промежуточного значения, и
присваивание новому верификатору пароля третьего промежуточного значения, взятого по модулю старого простого модуля.
шифрование на клиенте аутентификации нового верификатора пароля с использованием ключа шифрования сервера аутентификации для клиента аутентификации, выводимого во время аутентификации клиента аутентификации;
обеспечение доступности шифрованного нового верификатора пароля клиентом аутентификации для сервера аутентификации и
дешифрация на сервере аутентификации шифрованного нового верификатора пароля с использованием ключа шифрования сервера аутентификации для клиента аутентификации.
вычисление на клиенте аутентификации первого MAC, охватывающего шифрованный новый верификатор пароля, причем первый MAC основан на ключе аутентификации сервера аутентификации для клиента аутентификации, выведенном во время аутентификации клиента аутентификации;
обеспечение клиентом аутентификации доступности первого MAC для сервера аутентификации и
вычисление на сервере аутентификации второго MAC, охватывающего шифрованный новый верификатор пароля, причем второй MAC основан на ключе аутентификации сервера аутентификации для клиента аутентификации,
и в котором сохранение имени пользователя, нового верификатора пароля и новой случайной величины выполняется, только если первый MAC совпадает со вторым MAC.
связывание на сервере аутентификации таймера с запросом того, чтобы клиент аутентификации изменил свой пароль, и
если по истечении времени по таймеру клиентом аутентификации не было сделано доступным никакого нового верификатора пароля, то повторение на сервере аутентификации запроса того, чтобы клиент аутентификации изменил свой пароль.
вычисление на сервере аутентификации первого MAC, охватывающего новую случайную величину, новый простой модуль и новую порождающую функцию, причем первый MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации, выведенном во время аутентификации клиента аутентификации,
обеспечение сервером аутентификации доступности первого MAC для клиента аутентификации и
вычисление на клиенте аутентификации второго MAC, охватывающего новую случайную величину, новый простой модуль и новую порождающую функцию, причем второй MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации,
и в котором запрос и прием нового пароля и вычисление, обеспечение доступности и сохранение нового верификатора пароля выполняется, только если первый MAC совпадает со вторым MAC.
присваивание первому промежуточному значению результатов хеш-функции, причем входные данные для хеш-функции содержат имя пользователя и новый пароль;
присваивание второму промежуточному значению результатов хеш-функции, причем входные данные для хеш-функции содержат новую случайную величину и первое промежуточное значение;
присваивание третьему промежуточному значению новой порождающей функции, возведенной в степень второго промежуточного значения и
присваивание новому верификатору пароля третьего промежуточного значения, взятого по модулю нового простого модуля.
запрос сервером аутентификации, чтобы клиент аутентификации изменил свой пароль;
обеспечение сервером аутентификации доступности новой случайной величины для клиента аутентификации;
запрос и прием на клиенте аутентификации нового пароля от пользователя клиента аутентификации;
вычисление на клиенте аутентификации нового верификатора пароля, с передачей в качестве входных значений для вычисления новой случайной величины и имени пользователя;
обеспечение клиентом аутентификации доступности нового верификатора пароля для сервера аутентификации и
сохранение на сервере аутентификации имени пользователя, нового верификатора пароля и новой случайной величины.
запрос того, чтобы клиент аутентификации изменил свой пароль;
обеспечение доступности для клиента аутентификации новой случайной величины;
прием от клиента аутентификации нового верификатора пароля и сохранение имени пользователя, нового верификатора пароля и новой случайной величины.
вычисление кода аутентификации сообщения (MAC), охватывающего новую случайную величину, причем MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации, выведенном во время аутентификации клиента аутентификации;
обеспечение доступности MAC для клиента аутентификации.
прием от клиента аутентификации шифрованного нового верификатора пароля и
дешифрацию шифрованного нового верификатора пароля с использованием ключа шифрования сервера аутентификации для клиента аутентификации, выведенного во время аутентификации клиента аутентификации.
прием MAC от клиента аутентификации и
вычисление MAC, охватывающего шифрованный новый верификатор пароля, причем MAC основан на ключе аутентификации сервера аутентификации для клиента аутентификации, выведенном во время аутентификации клиента аутентификации,
и в котором сохранение имени пользователя, нового верификатора пароля и новой случайной величины выполняется, только если принятый MAC совпадает с вычисленным MAC.
связывание таймера с запросом того, чтобы клиент аутентификации изменил свой пароль, и
если по истечении времени по таймеру от клиента аутентификации не получено никакого нового верификатора пароля, то повторение запроса того, чтобы клиент аутентификации изменил свой пароль.
аутентификацию клиента аутентификации для сервера аутентификации второй раз, причем вторая аутентификация основана на новом пароле, известном клиенту аутентификации, на новом верификаторе пароля, известном серверу аутентификации, и на имени пользователя, старом простом модуле, старой порождающей функции старого простого модуля и новой случайной величине, известных как клиенту аутентификации, так и серверу аутентификации.
вычисление MAC, охватывающего новую случайную величину, новый простой модуль и новую порождающую функцию, причем MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации, выведенном во время аутентификации клиента аутентификации, и
обеспечение доступности MAC для клиента аутентификации.
аутентификацию клиента аутентификации для сервера аутентификации второй раз, причем вторая аутентификация основана на новом пароле, известном клиенту аутентификации, на новом верификаторе пароля, известном серверу аутентификации, и на имени пользователя, новом простом модуле, новой порождающей функции нового простого модуля и новой случайной величине, известных как клиенту аутентификации, так и серверу аутентификации.
запрос того, чтобы клиент аутентификации изменил свой пароль;
обеспечение доступности новой случайной величины для клиента аутентификации;
прием от клиента аутентификации нового верификатора пароля и
сохранение имени пользователя, нового верификатора пароля и новой случайной величины.
прием от сервера аутентификации запроса того, чтобы клиент аутентификации изменил свой пароль;
прием от сервера аутентификации новой случайной величины; запрос и прием нового пароля от пользователя клиента аутентификации;
вычисление нового верификатора пароля при передаче в качестве входных значений для вычисления новой случайной величины и имени пользователя;
обеспечение доступности нового верификатора пароля серверу аутентификации.
прием от сервера аутентификации MAC и
вычисление MAC, охватывающего новую случайную величину, причем MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации, выведенного во время аутентификации клиента аутентификации,
и в котором вычисление и обеспечение доступности для сервера аутентификации нового верификатора пароля, выполняются, только если принятый MAC совпадает с вычисленным MAC.
присваивание первому промежуточному значению результатов хеш-функции, причем входные значения для хеш-функции содержат имя пользователя и новый пароль;
присваивание второму промежуточному значению результатов хеш-функции, причем входные значения для хеш-функции содержат новую случайную величину и первое промежуточное значение;
присваивание третьему промежуточному значению старой порождающей функции, возведенной в степень второго промежуточного значения, и
присваивание новому верификатору пароля третьего промежуточного значения, взятого по модулю старого простого модуля.
шифрование нового верификатора пароля с использованием ключа шифрования сервера аутентификации для клиента аутентификации, выводимого во время аутентификации клиента аутентификации;
обеспечение доступности для сервера аутентификации шифрованного нового верификатора пароля.
вычисление MAC, охватывающего шифрованный новый верификатор пароля, причем MAC основан на ключе аутентификации сервера аутентификации для клиента аутентификации, выведенном во время аутентификации клиента аутентификации, и
обеспечение доступности MAC для сервера аутентификации.
аутентификацию клиента аутентификации для сервера аутентификации второй раз, причем вторая аутентификация основана на новом пароле, известном клиенту аутентификации, на новом верификаторе пароля, известном серверу аутентификации, и на имени пользователя, старом простом модуле, старой порождающей функции старого простого модуля и новой случайной величине, известных как клиенту аутентификации, так и серверу аутентификации.
прием от сервера аутентификации нового простого модуля и новой порождающей функции нового простого модуля.
прием MAC от сервера аутентификации и
вычисление MAC, охватывающего новую случайную величину, новый простой модуль и новую порождающую функцию, причем MAC основан на ключе аутентификации клиента аутентификации для сервера аутентификации, выведенном во время аутентификации клиента аутентификации,
и в котором вычисление и обеспечение доступности для сервера аутентификации нового верификатора пароля выполняются, только если принятый MAC совпадает с вычисленным MAC.
присваивание первому промежуточному значению результатов хеш-функции, причем входные значения для хеш-функции содержат имя пользователя и новый пароль;
присваивание второму промежуточному значению результатов хеш-функции, причем входные значения для хеш-функции содержат новую случайную величину и первое промежуточное значение;
присваивание третьему промежуточному значению новой порождающей функции, возведенной в степень второго промежуточного значения, и
присваивание новому верификатору пароля третьего промежуточного значения, взятого по модулю нового простого модуля.
причем этот способ предусматривает:
прием от сервера аутентификации запроса, чтобы клиент аутентификации изменил свой пароль;
прием от сервера аутентификации новой случайной величины;
запрос и прием нового пароля от пользователя клиента аутентификации;
вычисление нового верификатора пароля с передачей в качестве входных значений на вычисление новой случайной величины и имени пользователя и
обеспечение доступности для сервера аутентификации нового верификатора пароля.
первое поле данных, содержащее данные, представляющие случайную величину;
второе поле данных, содержащее данные, представляющие простой модуль;
третье поле данных, содержащее данные, представляющие порождающую функцию простого модуля, и
четвертое поле данных, содержащее данные, представляющие MAC, охватывающий случайную величину, простой модуль и порождающую функцию.
второе поле данных, содержащее данные, представляющие MAC, охватывающий верификатор пароля.
СПОСОБ КРИПТОЗАЩИТЫ СИСТЕМЫ ТЕЛЕКОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ | 1995 |
|
RU2077113C1 |
МЕХАНИЗМ ВЗАИМОАУТЕНТИФИКАЦИИ ТИПА "АБОНЕНТ-ЦЕНТР" В РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ | 2000 |
|
RU2178912C2 |
RU 2000104402 А1, 10.01.2002 | |||
JP 2000357156 А1, 26.12.2000. |
Авторы
Даты
2007-09-27—Публикация
2003-04-29—Подача