2019-2020-1 20175302 201752314 20175316実験5プロトコルの設計
タスク
タスクの詳細
Ubuntuのに完成http://www.cnblogs.com/rocedu/p/5087623.html仕事
OpenSSLの概要
背景
- SSLはインターネット上で秘密伝送を提供することができるセキュアソケットレイヤ(セキュアソケットレイヤ)の略語です。目標は、二つの通信セキュリティと信頼性の間に、アプリケーションが、同時に達成することができ、サーバとクライアントの両方をサポートしていることを確認することです。インターネットは、通信の秘密の業界標準となっています。
SSLは、ユーザー/サーバーアプリケーション、攻撃者の盗聴間の通信を可能にし、常にサーバーを認証し、ユーザーが選択することが認証されます。SSLプロトコルは、信頼性の高いトランスポート層プロトコル(TCP)上に構築が必要です。SSL-利点は、アプリケーション層プロトコルに依存しない、高レベルのアプリケーション層プロトコルは、(例えば:HTTP、FTP、TELNET、等)透明SSLプロトコルの上に構築することができるとは無関係であるということです。コミュニケーションと相談のためのアプリケーション層プロトコルの前にSSLプロトコルは、認証サーバの暗号化アルゴリズム、通信キーを完了しました。送信されたアプリケーション層プロトコルデータは、通信のプライバシーを確保するために暗号化された後。
ワークフロー
サーバーの認証フェーズ:
- クライアントは、サーバーへの新しいセッション接続を開始するための開始メッセージ「こんにちは」を送信します。
- サーバはクライアントのサーバーに応答して必要に応じて顧客の情報ニーズは、新しいマスターキーを生成するかどうかを判断し、「Hello」メッセージが必要なマスターキー生成情報が含まれています。
- サーバーは、クライアントの応答メッセージを受信して、マスターキーを生成し、サーバは、サーバに暗号化された公開鍵を使用して、
Serverのマスターキーへの応答、および顧客への認証サーバに顧客を可能にするために使用される認定マスターキー情報を返されました。
ユーザー認証フェーズ:
これに先立ち、サーバはクライアントによって認定された、この段階では、主に顧客への認証を完了します。顧客に質問を送信するためにサーバーを認定、顧客は、このようにサーバに認証を提供する、質問をし、その公開鍵(デジタル)署名リターンを投稿することです。
実験方法と手順
LinuxでOpenSSLのインストール
- ソースを抽出します。
unzip openssl-master.zip
- ソースディレクトリに:
cd openssl-master
コンパイルとインストール:
./config
make
sudo make install
使用make test
テスト
Linux下OpenSSL的使用
通过
man openssl
查看帮助文档
- 编写测试代码
test_openssl.c
#include <stdio.h>
#include <openssl/evp.h>
int main(){
OpenSSL_add_all_algorithms();
return 0;
}
- 编译:
gcc -o test_openssl test_openssl.c -L/usr/local/ssl/lib -lcrypto -ldl -lpthread
,生成可执行文件test_openssl
- 执行
echo $?
,结果打印0