Je suis intéressé à avoir quelque chose que je crypte en utilisant une clé publique sur un serveur LAMPhp, décrypté en utilisant la clé privée appropriée sur le client web (firefox au moins, mieux si c'est javascript standard)obtenir firefox pour déchiffrer en utilisant la partie privée du certificat client
Notez que ce que je veux faire n'est pas simplement d'avoir une connexion cryptée utilisant SSL/https. Ou même d'utiliser des certificats clients basés sur un navigateur comme méthode de contrôle d'accès/de connexion. Je sais comment faire ces deux choses. Ce que je veux faire, c'est plus comme envoyer des emails avec des clés gpg. Je veux être capable de créer un court message que je crypterai avec une clé publique d'utilisateur qui, elle seule, peut déchiffrer à l'aide de sa clé privée. Ce que je cherche, ce n'est pas la confidentialité atteinte automatiquement par ssl, mais la possibilité d'autoriser seulement certains utilisateurs à déchiffrer des messages. Je sais que je peux facilement le faire avec gpg ou peut-être SMIME, et peut-être que c'est la meilleure façon, mais je préférerais une alternative basée sur le Web. Firefox etc ont un magasin de certificats, et je sais que les clés privées qui y sont conservées sont peu susceptibles d'être exportables en javascript pour des raisons évidentes de sécurité, mais je suppose qu'il existe un moyen d'utiliser les certificats des appels javascript pour décrypter quelque chose ..
La raison pour laquelle je voudrais faire cela, c'est que j'ai besoin d'une méthode sécurisée pour donner un mot de passe généré aléatoirement à un administrateur particulier. J'essaye de mettre en application la translucidité complète de base de données et la cryptographie de clé publique semble comme une partie importante de cet effort. Mais c'est un cas d'utilisation que j'ai de la difficulté à aborder sans ce genre de capacité.
donc du côté php je voudrais utiliser les appels de chiffrement OpenSSL comme si ...
<?php
$browsers_public_key = get_it_from_the_browser_via_apache_maybe();
openssl_public_encrypt($data,$encrypted_ends_up_here,$browsers_public_key);
echo "<html><head>
<script type='javascript'>
function decrypt_textarea(){
??
}
</script>
</head>
<body><textarea id='decrypt_me'> $encrypted_ends_up_here </textarea>
<div id='where_the_plaintext_goes'> </div>
</body> </html>";
?>
Notez que j'ai trouvé via stackedoverflow nombreuses bibliothèques encrypton javascript bien ... mais je veux vraiment utiliser les touches importé dans Firefox selon MyOpenId.com ou CaCert.org
Est-ce que quelqu'un sait si c'est possible?
Merci, -FT
J'ai précisé que je n'ai pas besoin de SSL ici. Je sais comment chiffrer la connexion elle-même. Je suis à la recherche des fonctionnalités de confidentialité du cryptage à clé publique, mais dans un navigateur Web plutôt que gpg .. – ftrotter