Я реализовал сервер/клиент Kerberos, используя сокеты на Java, где клиент отправляет свой сервис-TGT на сервер, и сервер знает, что клиент является подлинным.Возможно ли использование Java/C# Kerberos?
Моей главной задачей является атака «человек в середине». Кто-то может захватить TGT и притвориться клиентом.
В чистой реализации Java это не проблема, так как дополнительная связь зашифровывается ключами сеанса обслуживания (GSSContext.wrap()/GSSContext.unwrap()), которых нет у snooper.
Но клиентское приложение должно быть переписано на C#.
Я полагаю, что мои два варианта поддержания связи зашифрованного являются:
- Написать свой собственный обертывание() и разворачивать() методы в C#
- Использование SSL/TLS.
Возможна ли опция 1, прежде чем я загляну в SSL в качестве опции?
У меня есть SSL для работы, потому что я решил, что вариант 1 будет болезненным. Я не могу использовать сценарий с закрытым ключом, потому что клиентское приложение может быть декомпилировано для его работы. SSL/TLS похоже на путь. Спасибо – djb
Великий, чтобы помочь. Чтобы уточнить, я имел в виду, что симметричный алгоритм шифрования может использовать ключ сеанса как свой секрет. Это не было бы жестко запрограммировано и изменилось бы на каждом сеансе. –