Controle de Licenças

Olá pessoal!
Eu preciso ter um controle de licenças em meu software para proibir acesso não autorizado e cópia ilegal do software. Pensei em fazer algo como montar uma sequencia de caracteres a partir de alguma informação do hardware da maquina e a partir daí gerar algum código que seria o número da licença.

Mas aí vem a pergunta, como pego em Java informações imutáveis sobre o hardware da máquina. Algo como o serialNumber da mainBoard, é possível?