web-dev-qa-db-ja.com

電子メールを介して誰かとパスワードを安全に共有する方法

初心者のために、パスワードテキストを暗号化して、電子メールで誰かに送信する暗号化テキストに暗号化して、ローカルで(オフラインで)解読してパスワードを読み取れるようにする方法を教えてください。

明確にするために、意図は(使用されているサービスに関係なく)電子メール全体を暗号化することではなく、安全のためにプレーンテキスト形式ではなく暗号化形式でパスワード自体を送信することです。ここでOpenPGPを使用できますか? (たとえば、LinuxベースのOSの場合)。私は、相手がどのキー(および暗号化プロトコル)を共有する必要があるかを知らないことを認めます。

そのような目的のためのチュートリアルへのアドバイスやアドバイスは高く評価されます。


重要な詳細:

  • 受信者からの公開鍵を持っていません。
  • また、事前共有秘密もありません。 (電子メール以外に、たとえば、紙に秘密を共有したり、暗号化された通話などを介して、相手と通信する他の手段があると仮定して、どのように設定できますか?)
1
user929304

これを安全に行うには、次のいずれかを行う必要があります

  1. PGP証明書またはS/MIME証明書を作成してユーザーと共有し、PGPまたはS/MIMEを使用して暗号化された電子メールを介してコンテンツを共有します。

または

  1. 事前に共有秘密を受信者と共有します。おそらく電話を使用するのが最も簡単な方法です。 6ワード以上のEFF Dicewareパスワードをお勧めしますが、これは脅威モデルによって異なります。ツールを生成するための適切なツールは https://www.rempe.us/diceware/#eff にありますが、必要なツールを使用できます。

    この共有シークレットを共有したら、任意の数のファイル暗号化(または電子メール暗号化)ツールを使用して、共有シークレットを使用して暗号化されたドキュメントを送信できます。私はその使いやすさからProtonMailには不慣れですが、信頼できるファイル暗号化または暗号化された電子メールソリューションは本当に問題ありません。

    または、暗号化された転送とパスワード保護を可能にするSync.comなどのファイル共有サイトなどのツールを使用することもできます。本当に、重要で難しい部分は、そもそも共有の秘密をそこに出すことです。

受信者がコンピュータに精通していない場合は、#2がおそらく簡単なワークフローです。彼らがしなければならないのは、リンクをクリックして、一般的な英語の単語のみで構成されるパスワードを入力することだけです。

初心者にとっては、パスワードマネージャーを介してパスワードを共有することがおそらく最も簡単です。各当事者は独自のアカウントを設定し、パスワードマネージャーで暗号化されます。

https://blog.lastpass.com/2016/01/tips-for-securely-sharing-passwords.html/

1
Steve Miskovetz

snappasspinterestによって作成された自己ホスト型オープンソースWebツールを使用して、パスワードを安全に共有します。

これは、Redisデータベース(インメモリデータベース)を使用して、暗号化されたパスワードと共有する暗号化されたURLを格納します。パスワードは一度だけ明らかにすることができます。

パスワードは、暗号化ライブラリのFernet対称暗号化を使用して暗号化されます。パスワードごとにランダムな一意のキーが生成され、保存されることはありません。パスワードリンクの一部として送信されます。つまり、誰かがRedisストアにアクセスできる場合でも、パスワードは安全です。


docker-composeインストール済みで、次のように簡単です。

git clone https://github.com/pinterest/snappass.git
cd snappass
docker-compose up -d

デフォルトでは、ポート5000で使用できます。httpsプロキシを追加することもできます。

0
pLumo