E-mail без проблем Вадим Мурзагалин Спецвыпуск Xakep, номер #041, стр. 041-020-1 (www.freehand.str.ru) Защищаем электронную почту E-mail, пожалуй, самое удобное средство общения в интернете. Он не требует спешки, можно вдумчиво сформулировать мысли, взвесить слова перед отправкой, прикрепить файл. Однако так же вдумчиво письмо могут перехватить, ящик заспамить и зафлудить, закинуть вирус и просто наколоть получателя. КАК ЗАВЕЩАЛ ВЕЛИКИЙ ШТИРЛИЦ Признайся, тебе очень нравится, когда кто-то чужой перехватывает и читает твои или адресованные тебе письма? Будь уверен, такое вполне может случиться - электронную почту несложно перехватить. Это может сделать хотя бы твой провайдер или админ почтовой службы. Как показал мой печальный опыт, этим жукам далеко не всегда стоит доверять. О решении этой проблемы задумались еще в незапамятные времена, когда не было ни электронной почты, ни провайдеров. Ведь шифрование сообщений - старое как мир занятие. Следует, однако, отметить, что стандартный подход с единым ключом для шифрования и дешифрования в случае с e-mail имеет заметный недостаток. Как, скажем, нам обменяться такими ключами, если ты живешь в Буркина-Фасо, а я в республике Гондурас? Скорее всего, придется воспользоваться услугами Сети, а в ней, как понимаешь, секретную информацию недолго кому-то "подарить". Потеря секретности тем более возрастает, чем больше прибывает народу, общающегося и шифрующего сообщения вместе с нами. В 1976 году извращенные умы двух американских ученых Диффи и Хеллмана придумали совсем иную схему шифрования - с использованием разных ключей; двумя годами позже другими учеными был разработан алгоритм, использующий эту схему и названный по первым буквам их имен RSA. Система RSA и еще один алгоритм IDEA используются в программе PGP (Pretty Good Privacy - почти крутая конфиденциальность), о которой и пойдет речь ниже. Суть шифрования с открытыми ключами состоит в следующем. С помощью PGP каждый из нас генерит себе пару ключей, один из которых открытый, а второй - закрытый. Открытым ключом можно смело обмениваться (а также показывать каждому первому, писать на заборе и вывешивать на веб-страницах), потому что, обладая только им, враг ничего не сможет сделать. Если я захочу послать тебе письмо, то укажу программе PGP твой открытый ключ, после чего она зашифрует мессагу так, что даже сама не сможет декодировать ее обратно. Прерогатива расшифровки принадлежит только тебе - как обладателю второго, закрытого ключа, в паре с которым работает открытый. Если кто-то сцапает письмо по пути, то не сможет понять ни строчки, а если что-то там модифицирует, то это не пройдет незамеченным. Однако на этом приключения с PGP не заканчиваются. Как ты знаешь, очень легко обмануть получателя, подделав в шапке письма адрес отправителя. Каждый раз лазить в заголовки письма и проверять - занятие неэффективное, да и ненадежное. Куда интереснее воспользоваться цифровой подписью, не правда ли? Вот здесь в первую очередь заработает закрытый ключ - ты задаешь проге команду добавить в письмо, адресованное мне, свою подпись, а когда я получаю его, то смогу распознать ее, если твой открытый ключ находится в моей базе (или обращением на сервер ключей - если ты поместил свой ключ туда). Кроме всего прочего, есть некая система доверия - если я доверяю тебе, а ты доверяешь дяде Пете, то я тоже буду ему доверять. Открытые ключи сертифицируются на подлинность, а программа отслеживает уровень доверия ключей, находящихся у пользователя. Это подстраховка от случаев, что кто-то будет впаривать свой ключ, выдавая себя за другого. |