Não importa onde os dados criptografados estão armazenados, importa como eles são criptografados.
As seções criptografadas em um web.config normalmente são criptografadas com a API de proteção de dados , que é extremamente difícil de decifrar sem comprometer a máquina inteira. Você também pode usar um contêiner de chaves RSA, que é semelhante (difícil de tirar os da máquina).
Se você deseja armazenar a string criptografada na DLL, tudo bem, eu acho, embora não seja inerentemente mais seguro do que um web.config criptografado (qualquer um pode espiar a DLL com o Reflector ) e é obviamente mais difícil de mudar (você precisaria recompilar). Mas, novamente, o mais importante é como essa sequência criptografada foi gerada; presumivelmente você não está usando os mesmos provedores que usaria para um web.config criptografado, então o que você está usando?
Um esquema de criptografia é tão forte quanto a chave privada ou o segredo compartilhado. Se essa chave também estiver armazenada em sua montagem, é possível que você também não tenha criptografia. Se ele estiver armazenado em algum banco de dados externo, levantará a questão de como a cadeia de conexão desse banco de dados é protegida. Isso só pode realmente levar a uma segurança mais fraca em geral.
Por outro lado, se você fosse um provedor de serviços e a cadeia de conexão fosse criptografada com uma senha de usuário , isso seria mais seguro do que usar uma chave de máquina estática. Por outro lado, se você estiver usando senhas de usuário para criptografar, é muito improvável que você codifique os dados criptografados em sua montagem, pois eles precisam ser gerados e armazenados em resposta à ação do usuário (não do desenvolvedor).
Realmente, não consigo pensar em muitas situações em que a codificação embutida de uma seqüência de conexão (criptografada) na DLL é mais segura do que criptografar a seção web.config relevante. Na melhor das hipóteses, está apenas adicionando inconveniência, na pior das hipóteses, está contando com alguma segurança personalizada escrita desajeitadamente, cheia de buracos. Faça um favor a si mesmo e faça o que a Microsoft recomenda - basta criptografar seu web.config se houver dados confidenciais.