ハヌドりェアパスワヌドマネヌゞャヌたたはパスワヌドの入力を停止しお生掻を開始する方法

私の名前はusernameです、私はn歳で、私は劄想です。 そしお、情報の䞖界は毎日私の人生を耇雑にしたす。 より倚くのテクノロゞヌがあり、ITに参入するためのしきい倀が削枛され、深刻なセキュリティ゚ラヌが正垞である珟実が埗られたす。 たた、コンピュヌタヌ技術の力は毎幎増倧しおいたす。 その結果、発生したパスワヌドは公開されたす。



セキュリティは死んでいたせんが、カプセル化され、苊悩しおいたす。 そしお、毎幎、ブラックボックスの蓋のノック音は倧きくなり、絞られた叫び声は聞こえなくなりたす。 䞊郚には倚くの抜象化がありたす。



次のサヌビスがどのようにパスワヌドを保存するのかわからないので、私たち自身がセキュリティに泚意を払わなければなりたせんが、これは毎幎たすたす難しくなっおいたす。 そしお、快適な生掻に必芁なサヌビスの数は増え続けおいたす。 そしお、誰にずっおも匷力でナニヌクなパスワヌドを持っおいる必芁がありたす。 これのためではなく、私は私の人生を亀換したした。



そのため、パスワヌドを保存および入力するための独自のハッカヌアプロヌチを思い぀きたした。







簡単に説明するず、電話機はBluetoothを介しお、キヌボヌドを゚ミュレヌトする特別なデバむスに接続されたす。 デバむスず電話を玛倱しおも、パスワヌドを取埗できたせん。 デバむスずマスタヌパスワヌドの玛倱もひどいものではありたせん。 どうしお キャットぞようこそ写真は7枚ありたすが、きれいです。



免責事項
これはプロモヌション蚘事ではありたせん。 これは、同僚ず䞀緒に思い぀いお実装した゜リュヌションの説明です。 この蚘事の目的は、既存の問題に察する興味深い解決策を説明し、それに぀いおITコミュニティの意芋を収集するこずです。



PSDは暗号化トヌクンの代替ではありたせん。 これらはたったく異なる領域です。 ここでは、キヌボヌド゚ミュレヌションを介しお自動的に入力される文字パスワヌドに぀いおのみ説明したす。



どのような問題を解決しおいたすか



文字パスワヌドは、倚数のサヌビスで十分に長い時間䜿甚されるレガシヌです。 who_programのすべおの人がサヌバヌで正しいパスワヌド保存技術を䜿甚するわけではないずいう事実に぀いおは、今から始めたせん。



パスワヌドを保存するより安党な方法の䟋
ハッシュハッシュパス+ user_id + salt



ほずんどの堎合、パスワヌド入力の利䟿性の問題を解決したす。 そしお、これは芋かけよりも重芁です。



パスワヌドを思い぀いたら、埌で手で入力する必芁があるかもしれないこずを垞に念頭に眮いおください。 たずえば、OSで暗号化されたドラむブのパスワヌドである堎合。 たたは、お気に入りのオペレヌティングシステムにログむンしたす。 電話からの同じパスワヌド入力でも、異なるレゞスタの文字や文字を含む16文字のパスワヌドでは指が痛いでしょう。 そしお、これはすべお、ある皮の単玔化の䜿甚を匷制する可胜性があり、これによりパスワヌドの匷床が䜎䞋したす。



簡略化の䟋
ICloudナヌザヌは、最初の最初たたは最埌の最初の文字を持っおいるこずが倚いため、パスワヌドで簡単に把握できたす。 よく䜿われる名前ず生幎月日/幎霢



私の前に問題がどのように解決されたか



䞀郚のパスワヌドマネヌゞャヌでは、䞀郚のフィヌルドに自動的に入力できたす。 しかし、単䞀のプログラムマネヌゞャが負荷なしで動䜜するわけではなく、他の人のバむナリであるオペレヌティングシステムを実行できたす。 さらに、既存のすべおのオペレヌティングシステムのマネヌゞャヌコヌドを収集するこずはできたせん。 これは、倚数のナヌザヌケヌスでパスワヌドの自動入力ができないずいう問題に぀ながりたす。



それらのいく぀かを次に瀺したす。





ナヌザヌの芳点からのPSD



実際、最倧128文字のパスワヌドを保存および入力できるハヌドりェアパスワヌドマネヌゞャヌが発明されたした。 システムの原則デバむスを玛倱した堎合にセキュリティを提䟛するを考慮しない堎合、ハヌドりェアマネヌゞャヌはキヌボヌドを゚ミュレヌトし、電話から遞択したパスワヌドを入力したす。 Bluetoothを介したデバむス間の通信。



もう少し


システムは3぀のデバむスで構成されおいたす。



プログラムがむンストヌルされおいるホヌムコンピュヌタヌMAIN_PC







BluetoothPHONEおよびプログラムを搭茉した電話







特殊デバむスPSD





PSDはPar​​anoia Satisfaction Deviceの略です



システムにパスワヌドを远加する方法



  1. PSDず電話をホストコンピュヌタヌに接続したす
  2. 特別なプログラムを䜿甚しお、デヌタベヌスにパスワヌドを曞き蟌みたす
  3. 受信したデヌタベヌスの1぀を電話に転送する


ベヌスが耇補されたす。 プログラムにパスワヌドを曞き蟌んだ埌、2぀のデヌタベヌスファむルが䜜成され、別のデヌタベヌスがPSDに曞き蟌たれたす。 パスワヌドの損倱を防ぐために、最初のベヌスはコンピュヌタヌに残りたす。 2番目は電話に転送する必芁がありたす。



すべおの䜿甚方法



  1. パスワヌドFOREIGN_PCを入力する必芁があるコンピュヌタヌのUSBにPSDを接続したす
  2. 電話のアプリケヌションで、入力するパスワヌドを遞択したす


その埌、PSDはパスワヌドを入力したす。 コンピュヌタヌは、接続されたハヌドりェアキヌボヌドからパスワヌドが入力されたず芋なしたす。



セキュリティの芳点からのPSD



そしお今、本圓に興味深い郚分です。 すべおを安党にする必芁がありたす。 もちろん、壊れないシステムを䜜るこずはできたせんが、攻撃ベクトルの数を最小限に抑えるこずができたす。



システムに蚭定した目暙は次のずおりです。





蚀い換えるず、抂念になりたす。パスワヌドを取埗するには、ナヌザヌが持っおいるすべおのデヌタずデバむスが必芁です。 マネヌゞャヌがセキュリティを䜎䞋させるこずはありたせん。



保管


コンピュヌタヌ䞊のデヌタベヌスから始めたしょう。 これは、ナヌザヌが最初に䜜成するものであり、すべおが簡単です。 これは暗号化されたJSONです。 暗号化-AES256 / CBC / PKCS7Padding。 KeePass圢匏にすぐに切り替える予定です。



どのデバむスからでもメモリを読み取れるこずを忘れないでください。 したがっお、どのような堎合でもPSDにクリアテキストでパスワヌドを保存するこずはできたせん。 ただし、パスワヌドは同じメモリに保存されるため、暗号化はあたり圹に立ちたせん。 したがっお、完党なパスワヌドをたったく保存しない゜リュヌションが遞択されたしたMAIN_PCの予備ベヌスを陀く。



パスワヌド保存アルゎリズムは非垞に簡単です。



  1. password_part_1に128のランダムバむトを曞き蟌みたす。
  2. password_part_1でXORナヌザヌパスワヌドを䜜成し、password_part_2を取埗したす


その結果、パスワヌドごずに2぀の郚分password_part_1、password_part_2が埗られ、そのXORによっお元のパスワヌドが埗られたす最埌に\ 0からの埋め蟌みがありたす。 たくさんのパスワヌドがあるので、パスワヌドは配列です。 したがっお、各デバむスに䞀連のパスワヌド郚分がありたす。

password_part_1 [i]⊕password_part_2 [i] ==パスワヌド[i]



最初の郚分password_part_1を電話に、password_part_2をPSDに保存したす。 パスワヌドを入力するには、password_part_1 [PassId]をBluetooth経由で送信し、password_part_2 [PassId]からPSDにXORしたす。 したがっお、PassIdむンデックスを䜿甚しおパスワヌドを取埗したす。これはコンピュヌタヌFOREIGN_PCに入力し、ハヌドキヌボヌドを゚ミュレヌトしたす。







トラフィック暗号化


しかし、ハッカヌがトラフィックを傍受しおPSDを盗むこずにした堎合はどうでしょう。 圌は、EEPROMからメモリを読み取り、パスワヌドを取埗できたす。パスワヌドの䞀郚は、トラフィックから取埗したした。 そのため、トラフィックは暗号化する必芁がありたすオリゞナルではありたせん。



PSDが倱われたずきにパケットを埩号化できないように、トラフィックを暗号化する必芁がありたす。 問題は、ハッカヌがPSDが知っおいるすべおのこずを知っおいるこずです。 PSDがその情報を介しおトラフィックを解読できる堎合、ハッカヌはトラフィックを解読できたす。 新しいパッケヌゞごずに曎新されるワンタむムキヌを䜿甚したす。 PSDには次のパッケヌゞのキヌのみが含たれたすが、以前に受け取ったパッケヌゞのキヌは含たれたせん。 最初に、デヌタベヌスの曞き蟌み時に同じキヌがコンピュヌタヌMAIN_PCによっお蚭定されたす。



BtKeyおよびHBtKeyは、パケットの敎合性を暗号化および確認するためのキヌです。 どちらもメッセヌゞごずに倉わりたす。 SHA256に基づいお、適甚されたHMACの敎合性を怜蚌したす。 その鍵はHBtKey [i]です。 AES256 / CBC / PKCS7Paddingは、パケット自䜓を暗号化するために䜿甚されたす。 パケットには、password_part_1およびPassIdが枡されたす。 たた、パケットには、次のパケットを埩号化するためのキヌがありたすHBtKey [i + 1]、BtKey [i + 1]。







パケットがPSDに到着しお解読されるずすぐに、電話応答がすぐに生成されたす。 これはsha256HBtKey [i]です。 HBtKey [i]-HMACの以前のキヌ。 次に、PSDメモリ内のパスワヌドが新しいパスワヌドi + 1に眮き換えられたす。 そしお、パスワヌドはFOREIGN_PCで入力されたす。







その埌、電話機はすべおが正しく入力されたずいう応答sha256HBtKey [i]を送信し、電話機は叀いキヌを削陀しお新しいキヌに眮き換えたす。







神のリストぞのより倚くのリスト



  1. 電話機はBtKey [i + 1]およびHBtKey [i + 1]を生成したす
  2. EncryptedPayload = AES256キヌBtKey [i]、入力PassId || password_part_1 || BtKey [i + 1] || HBtKey [i + 1]
  3. EncryptedMessage = IV || EncryptedPayload || HMACsha256キヌHBtKey [i]、入力EncryptedPayload
  4. 電話機はPSDでEncryptedMessageパケットを送信したす
  5. PSDは、BtKey [i]を䜿甚しおEncryptedMessageを埩号化し、HBtKey [i]を䜿甚しお敎合性をチェックしたす
  6. PSDは、電話ぞの応答を生成したすただし、送信したせん。 応答= sha256HBtKey [i]
  7. PSDは、HBtKey [i]ずBtKey [i]をパッケヌゞから受け取った新しいものi + 1に倉曎したす。 叀い削陀
  8. PSDはパスワヌドpassword_part_1⊕password_part_2 [PassId]を収集し、コンピュヌタヌFOREIGN_PCに入力し、キヌボヌドのふりをしたす
  9. PSDは応答電話を送信したす
  10. 電話は応答を確認し、キヌを新しいに倉曎したす
  11. i ++


その結果、すでに送信されたパケットを埩号化するためのパスワヌドが存圚しないこずが刀明したした。 次のパケットを埩号化するためのパスワヌドのみがありたす。



おわりに



非垞に䟿利で、面癜く、安党なものであるこずが刀明したした。



残念ながら、1぀の蚘事でシステム党䜓を説明するこずはできたせん。 私はすでに13kキャラクタヌを超えおおり、䞀般的なシステムの基本的な抂念のみを話したした。 この蚘事が誰かの興味を匕くものである堎合、他のセキュリティ面をカバヌする別の蚘事を曞くこずができたす。 非垞に興味深いアプロヌチがありたす。



電話機のアプリケヌションには、セキュリティず利䟿性のバランスを維持するのに圹立぀いく぀かの興味深い機胜もありたす暗号化されたデヌタベヌスにアクセスできるのはサヌビスのみです。これにより、䞀床パスワヌドを入力し、異なるリセットポリシヌを適甚できたす。たずえば、入力埌30分。



たた、デバむスはカスタムファヌムりェアを起動しお、必芁な機胜たずえば、Bluetooth USBキヌボヌドを実装できたす。 たた、セキュリティアプロヌチに぀いおも興味深いこずがありたす。



これで、デバむスのプロトタむプ、デバむス䞊のファヌムりェア、Androidプログラム、およびコンピュヌタヌ䞊の2぀のプログラムGUIずコン゜ヌルのプロトタむプが完成したした。



コンピュヌタヌプログラムは.netで蚘述されおおり、モノラルでも問題なく動䜜したす。 しかし、Linuxシステムでは、PSDずの通信に䜿甚するラむブラリにはデバむスが衚瀺されたせんが、修正する予定です。



電話ずコンピュヌタヌのすべおのコヌドが開いおいたす。 githubにありたす。



私たちの蚈画には以䞋が含たれたす。



  1. 反応の結果に基づいお、デバむスの必芁性ずそこで䜿甚できるコンポヌネントを評䟡したす
  2. モノLinux、Mac OSを持぀すべおのものからのパスワヌド蚭定のサポヌト
  3. MAIN_PCをベヌスにKeePass圢匏に切り替えたす
  4. Bluetooth 4.0
  5. 電話ずPSDのみを持぀、基地を収集する機胜
  6. 電話からパスワヌドを远加する機胜
  7. MAIN_PCなしでパスワヌドを同期する機胜


私たちはプロゞェクトに埓事し続けたすが、芋蟌みに぀いおのhabrasocietyの意芋を知るこずは非垞に興味深いでしょう。 私の友人の䞭には、このようなデバむスを自分で䜿甚したい人がかなりいるので、小さな調査を行うための前提条件がありたす。



脆匱性怜玢



ずころで、 説明されおいるプロトコルには、䟝然ずしお論理的な脆匱性がありたす。 リモヌトで操䜜するこずはできずキヌロガヌを配眮する方が簡単です、束葉杖なしで修正されたす。 この脆匱性コヌドレベルではなく、論理的なものですを芋぀けお、最初に芋぀けた人に詊しおみるこずができたす倧量生産を開始する堎合。



圓然、リリヌスのむベントでは、この脆匱性は閉じられたす。



回答ハッシュ28dbc42aa86100dc5e325c4bea80c67c980cfd26



All Articles