Здравствуйте! Несколько месяцев назад, я решил изучить сетевое программирование,GNU/Linux и криптографию, желательно всё в комплексе. Разобраться с GNU/Linux мне помогла установки Gentoo и несколько месяцев настройки. Изучил основную теорию по сетям (протоколы TCP/IP,UDP,... SSL/TLS, структуру пакетов). Изучил BSD Socket API и основы криптографии (симметричное и ассимитричное шифрование, сертификаты/подписи) . Чтобы закрепить знания я написал на С простого клиента и сервера TCP/IP, пересылающих символьную строку, по средством сокетов. После некоторого времени гугления, я решил двигаться в сторону написания снифера. При его написании я изучил структуру пакетов, что такое SOCK_PACKET. Но мне все равно кажется это недостаточным. Я также написал на С клиента и сервера, передающих данные по TLS 1.2, с использованием библиотеки OpenSSL. Я не нашел в сети подходящие для меня задачи. В основном советы ,по дальнейшему развитию навыком, касаются добавления дополнительного функционала в простые клиент серверные приложения (добавить кеширование, обработка нескольких клиентов одновременно, добавить хэндлы для ошибок). После гугления, из идей только написание своего sanbox'a (как раз тут С пригодится и возможно криптография), но это не сильно относится к сетям, и программу по примеру SSLstrip (для MITM атак). Не считаю эти идеи перспективными для вливания энергии (а может я ошибаюсь?).
Подскажите пример задачи (или ресурсы где их можно найти), которая будет достаточной сложной, лежать в области сетевого программирования и включать в себя использование языка С, GNU/Linux'а и прикладной криптографии )
(чисто как хобби. английский знаю. во времени не ограничен)