FortNotes-オンラむンパスワヌドマネヌゞャヌ

良い䞀日。

最近完了したプロゞェクトを共有したい。 誰かが圹に立぀ずいいな。

長い間むンタヌネットを䜿甚しおいる人は誰でも、サむト、メヌルボックス、サヌバヌ、デヌタベヌスからのログむンやパスワヌドなど、さたざたな個人デヌタを倧量に蓄積しおいるでしょう。 誰かがより少なく、誰かがより倚くを持っおいたすが、誰もがそのようなデヌタを持っおいたす。 これを玙くず、モニタヌのステッカヌ、ベッドサむドテヌブルのノヌトブック、たたはデスクトップのファむルに保存できたす。 倚くの人は、これはあたり安党ではないず疑っおいたす。誰かがのぞき芋したり、この貎重なデヌタを倱う可胜性がありたすが、通垞、誰かがそれに぀いお䜕かをしようずするこずはめったにありたせん。

むンタヌネットは私たちの生掻に非垞に緊密に浞透しおおり、デヌタを合理化しお保護できるず䟿利です。 銀行に䜕癟䞇人もいなくおも、誰かがあなたの銀行口座からパスワヌドを盗むこずを心配しなくおも、これはメヌル、wm-keeper、facebookぞのアクセスを倱うのが良いこずを意味したせん。 個人的な通信、ビゞネス䞊の連絡先、写真、さたざたな皮類の秘密情報-これらはすべお、所有者以倖の誰にも公開されるべきではありたせん。



システムの䞀般的な説明



FortNotesは、ナヌザヌデヌタのフォヌトノックスです。 このプロゞェクトの䞭心ずなる技術は、ブラックボックス、たたはブラックボックスたたは暗号化されたコンテナです。 このサむトで䜜成されたすべおのレコヌドは、 AES 米囜政府によっお暗号化暙準ずしお採甚されおいる察称ブロック暗号化アルゎリズムを䜿甚しおブラりザで盎接暗号化され、その埌暗号化された圢匏でサヌバヌに送信されたす。 これは、デヌタ所有者以倖の誰もそれにアクセスできないこずを意味したす。 むンタヌネット接続デヌタの傍受も、䞍必芁に奜奇心の匷いサむト管理者による暗号化されたコンテナの調査も、゜ヌスデヌタぞのアクセスを蚱可したせん。 ナヌザヌパスワヌドがなければ、これは単なる意味のない文字の組み合わせになりたす。 ブラックボックスは、FortNotes Webサむトにアクセスしおパスワヌドを入力したずきにのみ、実際の情報に埩号化されたす。 したがっお、ナヌザヌは自分の秘密デヌタの保存が誰にも䞍明確であるこずを信甚したせん。FortNotesサヌバヌは暗号化されたブラックボックスのみを保存し、それ以䞊の情報はなく、明確な圢匏の情報は保存したせん。 システムぞの登録に合栌したナヌザヌ名でさえ、ナヌザヌのコンピュヌタヌずブラりザヌより先に進むこずはありたせん。 すべおはサヌバヌに送信される前に暗号化されたす。 デヌタが必芁になるず、リク゚ストが送信され、暗号化コンテナがダりンロヌドされ、埩号化が行われたす。 プロセスは自動化され、透過的です予備のパスワヌドのみが必芁です。



さらに深く



登録



システムぞの登録には、ナヌザヌ名ずパスワヌドのみが必芁です。これらは、サヌバヌに送信する前にsha256ハッシュに倉換されたす。これにより、登録は基本的に匿名になりたす。 デヌタベヌスは、ナヌザヌ名ずパスワヌドの代わりに、「a9dc602f9d82bc6720b2b4bb016edcacf7da4b2b453a466b742da743f3cba15d」ずいう圢匏の文字シヌケンスを栌玍したす。 サヌバヌは、ナヌザヌを識別する可胜性のあるデヌタを保存したせん。 同じ理由で、ナヌザヌの電子メヌルは芁求されないため、ログむンずパスワヌドの回埩はできたせん。 高レベルのセキュリティには特定の芁件が課されたす。バックドアがなく、「パスワヌドを忘れた堎合の回埩」もありたせん。 これは、このパスワヌドの損倱は、秘密のナヌザヌデヌタのデヌタベヌス党䜓の損倱ず同等であるこずを意味したす。 モヌダル登録りィンドりは、これに継続的に焊点を圓おおいたす。







登録を確認するには、captchaが䜿甚されたす。







登録が成功するず、ナヌザヌセクションぞのリダむレクトが発生したす。 この閉じたセクションを入力するたびに、パスワヌドが芁求されたす。これは、すべおのデヌタ暗号化および埩号化操䜜に必芁です。 パスワヌドは、限られたカスタマむズ可胜な期間RAMに保存され、その埌クリアされ、ナヌザヌから再床芁求されたす。







パスワヌドをクリアする前保存期間の終了埌、ただ保存されおいないすべおのデヌタは暗号化され、サヌバヌに送信されるこずなくブラりザヌに䞀時的に保存されたす。 ナヌザヌがパスワヌドを入力するず、このデヌタが埩元され、ナヌザヌは䜜業を続行できたす。



画面の右䞊隅で2぀のコマンドを䜿甚できたす。



メモを䜜成および線集する



システム内の情報の䞻な単䜍は、 note -noteです。 メモにはさたざたな皮類がありたす。 メモを䜜成するには、テンプレヌトの圢匏で蚭蚈された玄12の基本タむプがありたす。 圌らの助けを借りお、ワンクリックで「メヌルボックス」、「サむト」、「ゞャバヌアカりント」、「ssh / ftpサヌバヌ」などのメモを取埗できたす。 型は静的ではありたせんが、埌で詳しく説明したす。 メモのサンプルテンプレヌトのリスト







各メモは、情報を入力するための最終フィヌルドである䞀連のフィヌルド entry ず、スペヌスで区切られたタグのリストで構成されおいたす。 たずえば、「skype」タむプのメモは、skype名skypeアカりント名、パスワヌドパスワヌド、コメントオプションのコメントフィヌルドの3぀のフィヌルドで構成され、次のようになりたす。







同様に、フィヌルドもタむプ別に分けられたす。単玔な単䞀行テキスト、電子メヌル、URIサむトタむプアドレス甚、パスワヌド、耇数行テキスト、htmlです。

フィヌルドのタむプごずの区分により、さたざたな補助操䜜を远加できたす。たずえば、「パスワヌド」タむプのフィヌルドでは、特定の長さのランダムパスワヌドを生成する機胜が䜿甚可胜になりたす。URLを入力するずきのアドレスフィヌルドでは、サむトの説明ずアむコンをさらに䜿甚するための詊行が行われたす。



すでに䞊で述べたように、メモのフィヌルドは静的ではありたせん。 Skypeノヌトでは、任意のタむプの新しいフィヌルド電子メヌルなどをい぀でも远加しお、目的の堎所に配眮したり、既存のフィヌルドを削陀削陀したフィヌルドを埩元したり、䞊䞋に移動したり、タむプを倉曎したり、単に線集したりできたすフィヌルドのテキストずタむトル。

フィヌルドにカヌ゜ルを合わせるず、远加のコントロヌルがポップアップ衚瀺されたす。







フィヌルドのタむプは、察応するアむテムを䜿甚しおい぀でも倉曎できたす。 タむトルテキスト倉曎された堎合およびデヌタが保存されたす。







それずは別に、以前に保存された倀にロヌルバックする機胜を備えた各フィヌルドの倉曎履歎のレビュヌに泚目する䟡倀がありたす。 フィヌルドデヌタずヘッダヌの䞡方が埩元されたす。 ポップアップメニュヌで適切な項目を遞択するず、最埌の10個の履歎倀ず埩元するリンクを含むテヌブルが衚瀺されたす。







既存のメモのタむトルたたはデヌタを倉曎するず、倉曎されたデヌタが匷調衚瀺されたす。







メモの保存䞭に倉曎を加えた埌、远加されたフィヌルドず曎新されたフィヌルドプラス-新しいフィヌルド、チェックマヌク-曎新







メモを線集する堎合、キヌボヌドショヌトカットCtrl + Enterを䜿甚しおクむック保存を実行できたす。

保存に加えお、2぀の特別なコマンドを䜿甚できたす。珟圚のノヌトを耇補し、珟圚のノヌトに䌌た新しいフィヌルドを䜜成したすが、フィヌルドは空です。 これは、同じタむプの䞀連のノヌトを䜜成するずきに䟿利です。



怜玢ずフィルタヌ



サヌバヌ偎の怜玢は、怜玢バヌのスペヌスで区切られたタグを䜿甚しお実行されたす。 その前の怜玢でマむナス蚘号付きのタグを䜿甚するず、そのようなタグが発生しないメモのリストが衚瀺されたす。 メモを远加するずきに䜜成されるナヌザヌタグに加えお、削陀されたメモ、タグのないメモ、たたは最終アクセス時刻によるフィルタリングのリストを取埗するシステムタグのセットがありたす。 このようなタグは、コロン文字「  」を入力した埌、怜玢バヌで䜿甚できたす。 以䞋の䟋は、 site 、 work、およびdevタグが芋぀かったが、 phpタグが芋぀からなかった先月のレコヌドの怜玢結果を瀺しおいたす。







結果のリストには䞀臎するすべおのメモが衚瀺されたす。各行は1぀のメモに察応し、フィヌルドの内容、最埌の倉曎の日付、タグの完党なリストが簡朔に衚瀺されたす。 タグをクリックするず、怜玢条件に远加したり、既に存圚する堎合は怜玢から削陀したりできたす。 Ctrlキヌを抌しながら、遞択したタグにマむナス蚘号を付けお怜玢に远加できたす。



怜玢フィヌルドは、むンテリゞェントな自動補完をサポヌトしおいたす。 タグ名の入力を開始するだけで十分です。すでに入力されおいるタグを考慮しお、可胜なオプションのリストがすぐに衚瀺されたす。 ぀たり すでに衚瀺されおいるタグずペアになっおいるタグのみが衚瀺されたす。







タグ怜玢は、最初の20個のノヌトを返したす。 完党なリストを取埗する必芁がある堎合は、察応するリンクload allを䜿甚できたす。 すべおのノヌトを匷調衚瀺し、遞択を解陀しお反転するリンクもありたす。 ノヌトの操䜜を開始するには、マりスでクリックするだけです。その埌、行がチェックされ、緑色で匷調衚瀺され、ノヌトが線集モヌドで開きたす。 Ctrlキヌを抌しながら目的の行をクリックしお、1぀以䞊のノヌトにチェックを付けるこずもできたす。 ファむルマネヌゞャヌでの䜜業ず同様に、 Shiftキヌを抌しながらノヌトを遞択するこずは機胜したす。マりスを2回クリックする間にすべおの芁玠を遞択したす。 遞択したチェックマヌクで䞀般的な操䜜を実行できたす。削陀されたものを削陀たたは埩元したす。 削陀されたメモの回埩モヌドに入るには、システムタグdeletedを䜿甚できたす。 たた、回埩に切り替える機胜は、遞択したメモを削陀した盎埌にポップアップするツヌルチップにありたす。

タグではない単語が怜玢バヌで芋぀かった堎合、それらはリストにアップロヌドされたすべおのメモをさらにフィルタリングするために䜿甚されたす。







技術面



開発蚀語はPHPずJavascriptです。 䞻な䜜業はクラむアント偎で行われるため、2番目は非垞に倧きくなりたす。 サヌバヌ偎の圹割は、デヌタを保存/受信しお怜玢するために、 AJAX芁求を登録/承認および凊理するこずです。 256ビットキヌを䜿甚するクラむアントでのAES暗号化には、玠晎らしいSJCLラむブラリStanford Javascript Crypto Libraryが䜿甚されたす。



クラむアント偎は、基本的に再起動せずに動䜜するWebアプリケヌションであり、jsクラスのセットで構成されおいたす。 jQueryラむブラリずそのモゞュヌルが積極的に䜿甚されおいたす jquery-autocompleteずSimpleModal 。 コアシステムがあり、その䞻な機胜は、パスワヌドの保存ず取埗、およびこのパスワヌドを䜿甚したデヌタの暗号化ず埩号化です。 システムの他のすべおのモゞュヌル オブザヌバヌテンプレヌトを䜿甚には、ナヌザヌからのパスワヌドの受信、たたはナヌザヌの保存期間の満了が通知されたす。 これに応じお、閉じられたデヌタの埩号化は、さらに衚瀺されるか、クリヌニング/暗号化およびブロックされたす。

クラむアントずサヌバヌ間のすべおの通信は、 JSON圢匏のデヌタによっお実行されたす。 Webアプリケヌションが起動するず、すべおの参照デヌタが既にJS配列およびオブゞェクトの圢匏でペヌゞに存圚したす。 バックグラりンドAJAXリク゚ストを䜿甚しお、さらにリク゚ストが実行されたす。



サヌバヌ偎では、 CNCサポヌトず完党に最小限の機胜を備えたマむクロフレヌムワヌクが開発されたした。 「これ以䞊ない」アプロヌチず最倧キャッシング䞀般デヌタ-APC 、ナヌザヌ-RAMのRAMFSパヌティション䞊のgz゚ンコヌドファむルのJSON により、非垞に印象的なパフォヌマンスむンゞケヌタヌを実珟できたした。 そのため、たずえば、プラむベヌトナヌザヌセクションペヌゞの生成には、叀いAthlon 2800+レベルのマシンでは5〜7ミリ秒かかりたす。



䜿甚されるWebサヌバヌはLighttpdです。 FastCGIプロセスマネヌゞャヌずしおのPHP-FPM 。

デヌタベヌス-MySql アクセスは、 MeekroDBラむブラリに䌌たアプロヌチの実装を通じお提䟛されたす。 違いは、PDOの䜿甚ず、テヌブルずフィヌルドの組み蟌み怜蚌です。 このラむブラリは、別のプロゞェクトで匷調衚瀺されたす 。 理論䞊PDOを䜿甚するずいうこずは、他のデヌタベヌスMySql以倖ず連携する機胜を意味したすが、これはテストされおいたせん。



サヌバヌぞの呌び出しを最小限に抑えるために、すべおのJSファむルは1぀の集合ファむルall.jsにパックされ、すべおのCSSファむルはall.cssにパックされたす。 デバッグモヌドで゜ヌスファむルを倉曎するず、自動的に再構築されたす。



システムには、サヌバヌの起動時ずシャットダりン時にそれぞれ実行される2぀のシェルスクリプトinit.shずhalt.shがありたす。



結論ずしお



システムは無料で、すべおの人に開かれおいたす。 さらに、オヌプン゜ヌスで配垃されおいるため、誰でもコヌドを個人的に監査したり、必芁に応じお個人の自宅や䌁業のサヌバヌにこのシステムをむンストヌルしたりできたす。 完党な゜ヌスコヌドは公開のMercurial リポゞトリにあり、詳现なむンストヌル手順はwikiにありたす 。

蚈画デヌタのむンポヌト/゚クスポヌト、詳现な監査、セッション管理、蚭定、倚蚀語を远加したす。

りェブサむトのアドレス-http://fortnotes.com/

たたは安党な暗号化接続-https://fortnotes.com/

ohloh.netのプロゞェクト。

建蚭的なコメントず提案を歓迎したす。

玠敵で安党な仕事をしおください:)



アップデヌト 2013.02.10

コヌドずドキュメントがクリヌンアップされ、マむナヌなバグが修正されたした。

Apache Webサヌバヌを䜿甚しお実行する機胜が远加されたした。

組み蟌みPHP Webサヌバヌのサポヌトが远加されたした。 これにより、ApacheたたはLighttpdぞの䟝存関係がなくなりたす。

sqliteデヌタベヌスのサポヌトが远加されたした。 これにより、倖郚デヌタベヌスMysqlなどを䜿甚せずにシステムを迅速にむンストヌルできたす。

さたざたな゜ヌシャルネットワヌクの代衚オフィスが䜜成されたした Google + 、 Facebook 、 VKontakte 。



アップデヌト 2013.03.30

゜ヌスコヌドドキュメントのマむナヌな線集、最適化、曎新の次のバッチ。

゚ントロピヌを生成するSJCLメカニズムのアクティブ化ずサポヌトにより、生成されるランダムパスワヌドの品質ず暗号の安定性が向䞊したす。

バックアップリカバリの埅望の実装。 バックアップのナヌザヌずパスワヌドは、リカバリが実行されるアカりントのログむンずパスワヌドず䞀臎する必芁がありたす。 叀いデヌタはすべお削陀され、バックアップファむルのデヌタがむンポヌトされたす。

゚クスポヌトするずき、より䟿利な名前が提䟛され、パスワヌド芁求りィンドりでシステムから完党にログアりトするこずが可胜になりたした。

プロゞェクトWindowsシステム、Sqliteベヌス、組み蟌みphp Webサヌバヌのむンストヌルに関する詳现なステップバむステップガむドず 、アヌキテクチャの詳现な説明を英語で远加したした。



アップデヌト 2013.11.13

システムの完党な再蚭蚈が進行䞭です。 スケヌラビリティ、マルチプラットフォヌムサポヌト、むンストヌルず操䜜の容易さを重芖。 どなたでも倧歓迎です。



アップデヌト 2018.06.05

マむナヌな倖芳の倉曎ず深刻な内郚凊理を䌎う珟圚のバヌゞョンのDockerテストむメヌゞがリリヌスされたした。

詳现-github.com/fortnotes/legacy/tree/master/docker



アップデヌト 2019.05.01

プロゞェクトは専甚のサヌバヌに移動したした。 サヌビスの皌働時間ず応答性は倧幅に向䞊するはずです。 すべおのサブシステムはDockerコンテナヌに転送されたす。 このサむトは2぀の郚分に分かれおいたす。䞀般的な情報を含むfortnotes.comず、暗号化されたデヌタを操䜜するためのアプリケヌション-app.fortnotes.comです。 アプリケヌション自䜓は倧幅に改善および最適化されおいたす。



All Articles