Pythonフォレンジック-クラウドの実装

Cloud computingインターネットを介してユーザーに提供されるホストされたサービスのコレクションとして定義できます。これにより、組織は、仮想マシン(VM)、ストレージ、またはユーティリティとしてのアプリケーションを含むリソースを消費または計算することができます。

Pythonプログラミング言語でアプリケーションを構築することの最も重要な利点の1つは、アプリケーションを仮想的に任意のプラットフォームにデプロイできることです。 cloud同様に。これは、Pythonがクラウドサーバーで実行でき、デスクトップ、タブレット、スマートフォンなどの便利なデバイスでも起動できることを意味します。

興味深い視点の1つは、次の世代のクラウドベースを作成することです。 Rainbow tables。これは、アプリケーションのシングルプロセッシングバージョンとマルチプロセッシングバージョンの統合に役立ちます。これにはいくつかの考慮事項が必要です。

Piクラウド

Pi Cloudは、Pythonプログラミング言語をAmazon WebServicesのコンピューティングパワーと統合するクラウドコンピューティングプラットフォームです。

Piクラウドを実装する例を見てみましょう rainbow tables

レインボーテーブル

A rainbow table は、特定のハッシュアルゴリズムに固有の暗号化されたパスワードのすべての可能なプレーンテキスト順列のリストとして定義されます。

  • レインボーテーブルは、ハッシュされたパスワードのリストを作成する標準パターンに従います。

  • テキストファイルは、暗号化されるパスワードの文字またはプレーンテキストを含むパスワードを生成するために使用されます。

  • このファイルは、保存するmain関数を呼び出すPiクラウドによって使用されます。

  • ハッシュ化されたパスワードの出力は、テキストファイルにも保存されます。

このアルゴリズムを使用して、パスワードをデータベースに保存したり、クラウドシステムにバックアップストレージを作成したりすることもできます。

次の組み込みプログラムは、暗号化されたパスワードのリストをテキストファイルに作成します。

import os
import random
import hashlib
import string
import enchant    #Rainbow tables with enchant 
import cloud      #importing pi-cloud

def randomword(length): 
   return ''.join(random.choice(string.lowercase) for i in range(length))

print('Author- Radhika Subramanian')

def mainroutine():
   engdict = enchant.Dict("en_US")
   fileb = open("password.txt","a+")

   # Capture the values from the text file named password
   while True:
      randomword0 = randomword(6)
      if engdict.check(randomword0) == True:
         randomkey0 = randomword0+str(random.randint(0,99))
      elif engdict.check(randomword0) == False:
         englist = engdict.suggest(randomword0)
         if len(englist) > 0:
            randomkey0 = englist[0]+str(random.randint(0,99))
         else:
            randomkey0 = randomword0+str(random.randint(0,99))

      randomword3 = randomword(5)
      if engdict.check(randomword3) == True:
         randomkey3 = randomword3+str(random.randint(0,99))
      elif engdict.check(randomword3) == False:
         englist = engdict.suggest(randomword3)
         if len(englist) > 0:
            randomkey3 = englist[0]+str(random.randint(0,99))
         else:
            randomkey3 = randomword3+str(random.randint(0,99))
      
      if 'randomkey0' and 'randomkey3' and 'randomkey1' in locals():
         whasher0 = hashlib.new("md5")
         whasher0.update(randomkey0)
         whasher3 = hashlib.new("md5")
         whasher3.update(randomkey3)
         whasher1 = hashlib.new("md5")
         whasher1.update(randomkey1)
         print(randomkey0+" + "+str(whasher0.hexdigest())+"\n")
         print(randomkey3+" + "+str(whasher3.hexdigest())+"\n")
         print(randomkey1+" + "+str(whasher1.hexdigest())+"\n")
         fileb.write(randomkey0+" + "+str(whasher0.hexdigest())+"\n") 
         fileb.write(randomkey3+" + "+str(whasher3.hexdigest())+"\n")
         fileb.write(randomkey1+" + "+str(whasher1.hexdigest())+"\n")

jid = cloud.call(randomword)  #square(3) evaluated on PiCloud
cloud.result(jid)
print('Value added to cloud')
print('Password added')
mainroutine()

出力

このコードは次の出力を生成します-

次のスクリーンショットに示すように、パスワードは表示されているテキストファイルに保存されます。