No software, não, absolutamente não. Mesmo nas janelas, as chaves marcadas como não exportáveis podem ser exportadas com um hack de GUI bem conhecido.
Eu sugeriria usar cartões inteligentes para essa finalidade (em que a chave é armazenada e usada no cartão e geralmente não é divulgada ao computador). Dessa forma, pelo menos, o hacker interno teria que encontrar a senha administrativa para o cartão ou de outra forma, o que é muito menos trivial do que copiar um armazenado em software.
Você também pode considerar usar certificados de computador que codifiquem o nome do host do computador e garantir que o software de autenticação o valide. No entanto, como é geralmente muito fácil alterar os nomes dos computadores, eu sugeriria que isso não ofereceria nenhum benefício.