Security

A collection of 5 posts
🔐 次世代AAAプロトコル「Diameter」とは
IT

🔐 次世代AAAプロトコル「Diameter」とは

― RADIUSの限界と、Diameterが求められる理由 ― ネットワーク認証の世界では、長らく RADIUS が AAA(Authentication / Authorization / Accounting)の中心的役割を果たしてきました。しかし近年、モバイルネットワーク(4G/5G)、大規模 ISP、キャリアグレードの網では、RADIUS では対応しきれない要求が増えています。 そこで登場したのが Diameter(ダイアメータ)。 その名の通り「RADIUS(半径)を2倍にした=より強力にした」ことを暗に示しており、将来を見据えた AAA プロトコルとして IETF によって策定されました。 この記事では、RADIUSの課題 → Diameterの優位性 → 関連技術(AAA/SCTP/IPSec/TLS) の流れで、情報処理安全確保支援士として理解しておきたいポイントを詳しく解説します。 1. RADIUSの限界と課題点 RADIUS(Remote Authentication Dial-In
4 min read
【セキュリティ】パスキー(passkey)について
IT

【セキュリティ】パスキー(passkey)について

最近、Googleから「パスワードではなくパスキー(passkey)を利用してください」というメッセージが届きました。 パスキーは近年注目を集めている認証技術の一つです。そこで今回は、パスキーはパスワードと何が違うのか? そして、どのような仕組みで安全性を実現しているのか?について、分かりやすく解説します。 ■ 概要 パスキー(passkey)は、FIDO2標準に基づいた新しいパスワードレス認証方式です。GoogleやApple、Microsoftなどが推進しており、ユーザーがパスワードを覚えずに安全にログインできる仕組みです。 FIDO2標準について FIDO2(ファイド・ツー)標準とは、パスワードの代わりに、より安全で簡単なログイン方法を提供するための国際的な標準です。 FIDO2を構成する技術 技術名 内容 WebAuthn ブラウザやWebサイトがFIDO認証を使うための「仕組み」 CTAP(シータップ) パソコンやスマホがセキュリティキーなどの「認証デバイス」とやりとりするための規格 FIDO2の利用方法 * F
2 min read
【セキュリティ】プレースホルダでSQLインジェクションを防ぐ
IT

【セキュリティ】プレースホルダでSQLインジェクションを防ぐ

前回までで、SQLインジェクションとOSコマンドインジェクションの実験を行いました。 今回は、プレースホルダという機能を使って、PHPコードをSQLインジェクションができない安全なコードにしていきたいと思います。 次のコードは、前回まで使用していたsectest.phpの内容です。 <?php $servername = "localhost"; $username = "sectest"; // DB sectestにアクセスするユーザー $password = "sectestpass"; $dbname = "sectest"; $conn = new mysqli($servername, $username, $password, $dbname); // エラー確認 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error)
3 min read
【セキュリティ】SQLインジェクションを通じてOSコマンドインジェクションをしてみる
IT

【セキュリティ】SQLインジェクションを通じてOSコマンドインジェクションをしてみる

前回の【セキュリティ】SQLインジェクションを実験してみるで作成したWebサイトを使って、OSコマンドインジェクションを試みたいと思います。 1. 脆弱性の設定 まずは、脆弱性を作ります。 DBの脆弱性の設定 DBのユーザーsectestにFILE権限を付与しておきます。 DBの管理者権限で下記を実行します。 MariaDB [(none)]> GRANT FILE ON . TO 'sectest'@'localhost'; Query OK, 0 rows affected (0.007 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec) ディレクトリの脆弱性の設定 MariaDBからファイルの作成が可能な/var/www/html/
2 min read
【セキュリティ】SQLインジェクションを実験してみる
IT

【セキュリティ】SQLインジェクションを実験してみる

今回は、IPA(情報処理推進機構)の「安全なウェブサイトの作り方」のはじめに登場するSQLインジェクションについて、実際にWEBサイトを構築して実験してみたいと思います。 1. DBの作成 まずは、Webページからアクセス可能なデータベースsectestを作成します。 今回はMariaDBを使用しています。 MariaDB [(none)]> create database if not exists sectest; //DB sectestを作成 Query OK, 1 row affected (0.000 sec) MariaDB [(none)]> use sectest; //DB sectestを選択 Database changed MariaDB [sectest]> create table users ( -> id int
3 min read