Isolamento de cliente

Pessoal, estou com uma dúvida forte aqui… Sou iniciante em aplicações web usando Servlet.

É o seguinte: Desenvolvemos um sistema web onde os clientes possuem leitoras de smart cards (manipuladas por applets no browser) e os servlets servem para enviar ao apple os comandos de conexão com estas leitoras.
Muito bem, mas eu só devo permitir que um pc possua no máximo uma conexão com o servidor, para não confundir a leitora, pois segue uma sequencia de comandos. Um exemplo disso é se o cliente abrir o sistemas em duas janelas de browser. Ambas serão sessões diferentes, mas exibirão a mesma leitora. Eu quero é não permitir isso; quando já houver uma sessão aberta com este pc, na tentativa de abertura da segunda o servlet já avisar que não será possível.

Pensei em classificar por IP, mas se dois computadores distintos estiverem atrás do mesmo proxy, acredito que não distinguirá os dois e bloqueará o segundo injustamente (apenas acho, gostaria de saber se estou certo).
Pensei em classificar por endereço MAC ou identificador do CPU, mas o Java não suporta isso em alto nível, e eu teria que utilizar JNI ou algo que dependesse do Sistema Operacional, o que não é desejado.

Entendo que este problema não é incomum e muitos já devem saber uma solução mais adequada e robusta… Se alguém tiver algo, ou uma opinião a respeito, serei muito grato…

Muito obrigado