認証
- Basic認証
- Digest認証
認証が必要な場合ステータスコード401とWWW-Authenticateヘッダを利用してクライアントリソースに認証情報を通知できる。
HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="Example.jp"
- realm はサーバー上でリソースが属しているURI Spaceが表される。
Basic認証
- ユーザ名とパスワードによる認証方式
- ユーザ名とパスワードをAuthorizationヘッダに入れてリクエスト毎に送信する
Authorization: Basic dXNlcmlkOnBhc3N3b3Jk
- Base64は簡単にデコード可能
dXNlcmlkOnBhc3N3b3Jk ↓ デコード後 userid:password
c.f. https://uic.jp/base64encode/
Connection - secure connection settings The connection to this site is encrypted and authenticated using TLS 1.2, ECDHE_RSA with P-256, and AES_256_GCM.
GoogleChromeではTLS1.0/TLS1.1の廃止が決定され2020年にリリース予定のver79ではNotSecureとして警告が表示される
TwitterAPIもTLS1.2以外をサポートしていない。
c.f. https://twitter.com/twitterapi/status/1154057692723519494
Digest認証
- Digestはメッセージダイジェストの略
- あるメッセージに対してハッシュ関数を適用した結果のハッシュ値のこと
- Basic認証よりもセキュアな認証方式
- サーバーは401を返し realm 、qoq、opaque と nonce(number userd once) というランダムな文字列を返す
- qoq (quality of protection) は「auth」か「auth-init」を指定する。
nonceの値はサーバーサイドの実装に依存し。サーバーサイドだけが知りえる情報をもとに生成される
- パスワードは暗号化されるがメッセージ自体は暗号化されない