Я в игровой компании, и мы используем алгоритм md5 для проверки порядка оплаты.Несколько вопросов о столкновении md5 в производстве
Вот как мы это делаем:
На обоих Pay-центральный сервер и наш игровой сервер есть общий «секретный ключ».
Pay-center отправляет запрос на игру с дополнительной игрой на наш игровой сервер.
В котором есть много обычных параметров и специальный параметр с именем «знаком»Когда мы получили запрос на игровом сервере, мы используем md5 («все обычные параметры» + «секретный ключ») для производства результат.
Если результат равен параметру «знак», мы рассмотрим этот порядок начислений действительным.
Мой вопрос являются:
Если кто-то слепо, используя случайные генерируемые «псевдо-секретный ключ» для ведения md5 вычислений со всеми другими параметрами для получения знака.
И по совпадению он сделал действительный знак с одним из своих «псевдосекретных ключей».
Сколько раз ему нужно попытаться создать допустимый знак для каждой группы «обычных параметров»?
Сколько шансов есть
pseudo-secret-key
идентично моему оригиналуsecret-key
, когда это происходит, чтобы создать действительныйsign
?Если
pseudo-secret-key
отличается с моим оригинальнымsecret-key
, это почти невозможно использоватьpseudo-key
, чтобы произвести правильный знак, используя другие различные комбинацииconventional parameters
?
В чем смысл рассуждать об этом? Не можете ли вы просто обновить более безопасную хэш-функцию? Насколько это дорого (с учетом затрат по затратам)? Если вы собираетесь подавать на любой вид аудита безопасности, MD5 в функции обработки платежей будет выделяться неблагоприятно. Я не утверждаю, что слепо следовать контрольным спискам, но MD5 действительно довольно устарел. – Thilo
Thi sisn't действительно вопрос кодирования - нет никакого примера кода, нет ясной ошибки - он может быть более подходящим для http://crypto.stackexchange.com или http://security.stackexchange.com – TessellatingHeckler
@Thilo, у нас есть для работы со многими другими платными центрами sdk, и почти все из них используют md5() для шифрования. – Zen