プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • linux
  • 【サーバー技術】「SSL/TLS」について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【サーバー技術】「SSL/TLS」について

06.18

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

SSL/TLSとは?

「Secure Sockets Layer」の略で、ネット上で流れるデータを暗号化したり、通信相手を認証することによってインターネットでやり取りされるデータを守ることです。

SSLとTLSの違いは?

TLSは、「トランスポート・レイヤー・セキュリティ」の略で、SSLの次世代規格で、実質的に「SSL」といえば、正確に言えばこちらを指していることがほとんどです。

代表的なSSLソフトウェア

OpenSSL

オープンソースのSSLソフトウェアです。通常は、WebサーバーのApacheと連携させて使用します。

IIS

Windows Serverに標準で同梱されています。

一般的な使い方

Webサーバーソフトウェアである「Apache」にモジュール(mod_sslモジュール)として「OpenSSL」をインストールして連携させて使用します。

ただ、IISに関しては、「Webサーバー機能」と、「SSL機能」をどちらも持っているので、通常は連携させる必要はないです。

SSLの機能

暗号化

公開鍵と秘密鍵のペアを使って、暗号化と複合化を行います。

改ざん検知

クライアント、サーバー間でやりとりされるデータが改竄されてないかを検知できる機能です。(例えば、ショッピングサイトで購入金額などを改竄されてしまうと問題になります。)

「公開鍵暗号」と「ハッシュ関数」を用いて実装されています。

認証機能

例えば、本物そっくりの偽サイトだったりするかもしれませんし、DNSサーバーの乗っ取り、DNSキャッシュポイズニングなどで本当にそのサイトが問題ないか証明することが難しいのです。

本当に問題ないことを「証明書」を利用することで証明しています。

SSLで使用している技術

SSLでは、下記の技術を利用しています。

  • 暗号化
  • メッセージダイジェスト
  • デジタル証明書

暗号化

公開鍵暗号による暗号化により、第三者の盗聴を防止します。

公開鍵暗号

公開鍵と秘密鍵のペアを使って、暗号化と複合化を行います。

メッセージダイジェスト

データのハッシュ値を取り出して、データが改ざんされていないことを確認します。

デジタル証明書(サーバー証明書)

Webサーバーの持ち主が実在していることを証明する証明書です。認証局により発行されたサーバー証明書(サイト証明書)を使って、コンピュータが成りすまされていないか確認します。

利用されているプロトコル

HTTPS、POP3S、SMTPS

SCP、SFTP

これらはSSHを利用してリモートマシン間でファイルをコピーするプロトコルなのでSSLとは直接関係はない。

SSL/TLSのバージョンについて

SSLのバージョン

バージョン リリース年 特徴
1.0 - 使用禁止。設計段階でボツになったため、実装したソフトウェアは存在しない。
2.0 1995年 使用禁止。
3.0 1996年 2.0で発見された脆弱性を修正した。2015年6月にIETFにより使用禁止になった。

TLSのバージョン

バージョン リリース年 特徴
1.0 1999年
1.1 2006年 このバージョンでの実装は、非推奨とされている。
1.2 2008年 2018年6月現在の最新版で、このバージョンでの実装を推奨されている。
1.3 未定

 

スポンサーリンク
  • 2018 06.18
  • miyabisan2
  • コメントを書く
  • linux
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2018 05.27

    【Linux】パッケージ管理システムの基本(RMP、yumについて)

  2. 2018 05.27

    【Linux】「デバイスファイル」や「パーテーション」の基本、ファイルシステムの構築

  3. 2018 05.26

    【Linux】基本的なディレクトリ構成

  4. 2018 05.26

    【Linux】ユーザーを作成、削除する。

  5. 2022 04.29

    【Mac】ディレクトリの空き容量調査メモ、その他Macの使い方など

  6. 2020 05.29

    【Linux】「標準入出力」や「/dev/null」について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Python】「リスト(list)」と「タプル(tu…

【Ruby on Rails】ビューテンプレート(ER…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー