Инструментарий и ловушки
Улучшение производительности SSH
При разработке протокола SSH мысленно преследовалось много целей. Но до самого последнего времени вопросы повышения производительности не были предметом серьезного рассмотрения. (Внимательно следящий за этим процессом читатель отметит, что во время всевозможных обсуждений методологий передачи файлов протокол SFTP – прямой наследник протоколов безопасного удаленного доступа к файлам – не обсуждался вовсе. Автор не чувствует, что этот вопрос созрел, хотя и признает, что данное утверждение спорно.) Существует целый ряд мер, которые могут быть предприняты для ускорения передачи данных во время сессии SSH и о которых полезно знать:
• при использовании опции – C включается режим сжатия. За счет некоторых затрат процессорного времени и, вероятно, некоторой задержки SSH может воспользоваться программой zlib для сжатия данных. В результате скорость обработки многих видов трафика может быть значительно увеличена;
• применив опцию шифрования – с, можно поменять используемые симметричные криптографические алгоритмы. Алгоритм тройной DES обладает многими достоинствами, но его эффективность даже отдаленно не принадлежит к их числу. По умолчанию для SSH2-подключений будет использоваться алгоритм AES128-cbc – 128-битный алгоритм AES в режиме сцепленных блоков шифрования (cipher block chaining mode). Общепризнанно, что этому алгоритму можно доверять в той же степени, что и алгоритму тройного DES. Алгоритмы blowfish и особенно arcfour являются гораздо более быстрыми алгоритмами, причем их работа предусмотрена как в протоколе SSH1, так и в протоколе SSH2;
• используя опцию -1, можно получить снижение эффективности применения протокола SSH1. Честно говоря, использовать эту опцию не рекомендуется, но все же это лучше передачи открытого текста по каналу связи;
• очевидно, чем больше будет случаев взлома сетевых программ сетевого взаимодействия компьютеров, тем медленнее будет работать система. Зачастую полезно использовать SSH как метод решения известной проблемы «цыпленка и яйца», которая относится к явлениям, где трудно определить причину и следствие. Применительно к рассматриваемому случаю это означает отсутствие изменений до тех пор, пока отображается результат, но результат не может быть отображен до тех пор, пока не будут завершены изменения. В случае взлома во время использования SSH (назовем это доказательством идеи и ничем более) результирующая величина может быть показана и изменения санкционированы.