Nanboard

Nanboardへようこそ!

Nanboardへようこそ!
このページでは、Nanboardの概要や使い方、セキュリティについて解説しています!
軽くお読みいただけるとありがたいです!

Nanboardって?

Nanboardは、簡単で軽く、アカウント登録不要で使えるデジタルホワイトボードです!
まだ、ペン機能は実装できていませんが、付箋・テキストを他の人と共有しながらボードを扱ったり、データを保存、表示することができます。

ボードの共有以外にも、案をまとめたり、個人的な場所としても使用できます!

Nanboardの使い方

使い方は簡単!トップページより、ルームの作成をして、そのルームに参加するだけです。
参加後は、上のメニューより、付箋・テキストの追加、データの保存、データの読み込み、ルームの共有ボタンがあり、それらを押して使用することができます。
付箋を編集する際は、付箋にカーソルを合わせて文字を入力してください!
テキストを追加した際も同じ操作で内容の編集が可能です。

付箋やテキストの色を変える際は、付箋やテキストにカーソルを合わせて、右クリックをして色がついているところを押してください。
色選択ダイアログがでてきて色の変更が可能です。

テキストのサイズを変更する際は、テキストにカーソルを合わせて右クリックをし、数値が入っているところを変更してください!
サイズの単位はpxです。

変更を他のユーザーに適用するには、編集後、付箋もテキストもなにもないところにカーソルを合わせてクリックをしてください。

Nanboardのセキュリティ

大前提として、NanboardはSSL/TLSにより暗号化がされた上でサーバー・ユーザーと通信を行っています。
そのため、データを第三者がデータを覗くことは難しくなっています。
また、Nanboardでは、独自のセキュリティ対策として、送信したデータがサーバーから(サービスの管理者から)も覗くことが難しい仕組みを実装しています。
具体的には、以下の手順で暗号化を実施しています。

- ユーザーで6文字のルームIDを作成する
- ユーザーがそれをハッシュ化(元に戻せない一意の文字列)する
- ユーザーがサーバーにハッシュ化したIDを送信する
- サーバーでハッシュ化したIDでルームを作成する
- ユーザーはハッシュ化前のルームIDを元に鍵を作成し、データを暗号化する
- サーバーを介してハッシュ化前の文字列を使用して暗号化したデータを他の同じルームにいるユーザーに配信する
- 他のユーザーがデータを受信し、同じルームIDをもとに鍵を作成し、暗号化を解除する。

このような仕組みでサーバーが暗号化の解除をしようとしても難しい仕組みを実装しています。
ハッシュ化という元の文字列に戻すことができない変換を行うことでサーバー側が暗号化の鍵を推測できずに、データの解読ができない仕組みです。(データを覗くつもりはありませんがね)

Errorcode一覧

ここではNanboardで出るエラーコードを一覧にしています。
- Browser_not_support: サポートされていないブラウザで使用した際に表示されます。
- None_ssl: SSL/TLSが使用されていない状態で接続すると表示されます。
- Bad_server_ssl: サーバーでSSL/TLSが設定されていない場合に表示されます。
- Huh_savedata: セーブデータの中身がいろいろとおかしい場合に表示されます。
- Bad_savedata: セーブデータの中身が、本来想定される形式に沿っていない場合に表示されます。
- Connection_lost: サーバーとの接続を失った際に表示されます。
- Connection_error: サーバーに接続できなかった際に表示されます。
- Room_already_exists: 既に同じIDでルームが作成されている場合に表示されます。
- Room_ID_is_invalid: ルームIDが不正な場合に表示されます。
- Room_not_found: ルームが作成されていない、みつからない際に表示されます。

注意事項

ルームから全員が退出するとデータは削除されます。
ルームに最低一人が入っていないとデータは削除されます。

ライセンス

Crypto-js
[The MIT License (MIT)](http://opensource.org/licenses/MIT)

Copyright (c) 2009-2013 Jeff Mott
Copyright (c) 2013-2016 Evan Vosberg

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

elem2img.js
無権利創作宣言

seedrandom.js
Copyright 2019 David Bau.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

jQuery
MIT License
jquery.org/license