Я бы по п.6 добавил, что в зашифрованную подпись входит и контрольная сумма XML-данных. Тогда можно было бы в файле-лицензии прописывать список активированных фич программы. Т.е. для одного дистрибутива активировать разные функции в программе простым вводом нового ключа.
Как ваш сервер отличит повторную активацию при замене оборудования от активации на втором, третьем и т.д. компьютере?