[資料] コンピューターやセキュリティについて
とりあえずコンピューターやセキュリティシステムのことについての小説について記載します。
専門家ではないので知っていることを書きます。
☆☆☆
― プログラム言語について ―
物語の中にコンピューターとかセキュリティシステム。プログラミングや、ハッキング。またはクラッキングについて出てくる場合、よくプログラムか何かの文が高速でスクロールしていくというのがあります。
まあ実際はそういうものはあまり無くて、プログラムの進行状況や、表示したいものが表示され、それがスクロールして流れていくというのが普通です(たぶん)。
プログラムにもいろいろな種類があり、小説を書く際。物語の年代により、どういうのがいいのかがあると思います。
古いもので言うとC言語。パソコンのOSと言われる基本ソフトがあります。例えばWindowsとかMac OS XとかiOSとかAndroidとかいうものです。そのシステムの中心的なところがC言語で書かれています。
古いものだとアセンブラというもので記載されているときもありました。アセンブラはパソコンの頭脳であるCPUが理解できる機械語というものと一対一で対応しているものです。なのでアセンブラというプログラミングをするための言語でパソコンに仕事をやらせるための指令を書くとすると長くなります。通常プログラムはテキストファイルに書きます。プログラムを記入するための専用ソフトがあります。例えばMicrosoftのVisual Studioなどです。
C言語は1972年に開発されました。古いですね。
C言語を元にしたオブジェクト指向と言われる言語であるC++言語は1983年に誕生しました。
1990年にPythonという言語が開発されました。
プログラミング言語には大きく2種類あり、コンパイル型言語とスクリプト型の言語と言われています。
コンパイル型は専用のプログラムを使って人が読めるプログラミング言語で書かれたファイルをコンピューターが実行できる形式に直すものを示します。
スクリプト型言語は、専用のプログラムがテキストファイルを読みながら実行していくタイプです。
良くなじみのあるものとして、ウェブブラウザ上で動くプログラミング言語であるJavascriptがあります。Javascriptはスクリプト型言語に該当します。
1995年に発表されたJavaというプログラミング言語やC言語C++言語はコンパイル型の言語になっています。
コンパイル型の言語はいったん専用ソフトを使い、パソコンが実行できるものに変換するということになります。
2002年代にMicrosoftがC#を発表。
2009年にGoogleがGo言語を発表。
2014年にAppleがSwiftを発表。
という風にどんどん新しいプログラミング言語が開発され、あまり使わなくなった言語は廃れていっています。
マニアックなものとしては個人で開発されているものもあり、日本語でプログラミングができるものとして「なでしこ」というものがあります。
また、学習用として「スクラッチ」というのもあります。
画面に部品を張り付けることにより、コンピューターにさせたいことを指定して絵などを動かすというものです。
なので、コンピューターに詳しい人がプログラムを実行させている画面を見るとそれっぽいのか、パチモンなのかがわかります。
― セキュリティについて ―
セキュリティを破る場合。年代やどのようなシステムが使われているかによります。
実際はどういうものかわからないですが。
停電になったら電子錠が開く場合がありますが、外からだと開かないとかあると思います。
中にいる人が閉じ込められないようにというのはあります。
静脈認証や手のひらを使う認証。目を使う認証や声を使う認証。いろいろあります。
鍵を開けることができたとして、建物の中にある監視カメラをどうにかしたいと思うことはあるでしょう。
簡単なのは古いシステムです。アナログのモニターとアナログの回線を使っているカメラシステムでは、線を見つければケーブルをカッターなどで剥いて、信号が流れている線を引き出しワニ口クリップなどを使い線を分岐させて、持参したアナログのモニターにつなぐなどがあります。
例えば単純なものだとRCAケーブルの黄色端子とつなぐというものです。
うまくいくかもしれません。
小説を書く場合実際にやってみるのがいいでしょうか。
最近では映像はLANケーブルを通じて送られているというパターンがあります。ネットワークカメラなどが該当します。
LANケーブルを剥いて分岐させるのは大変なので、中継用の機械を見つけてそこに持参したPCをつなぐというのがあります。IPアドレスというのがあり、プライベートIPアドレスとグローバルIPアドレス。またはIPv4、IPv6というのもありますが、PCに建物の中で使われているプライベートIPアドレスと同じようなIPアドレスを固定で割り当て、例えばポートスキャンなどをする専用ソフトを動かしてポートスキャン結果からこのIPアドレスにはカメラ映像が流れているなどを調査して専用ソフトでカメラ映像を盗み見るというのがあるかもしれません。
カメラ映像を表示するにも、PCからカメラへ接続する必要があったりしますが、接続元のPCを制限していたり、表示をする前にパスワードを入力しないといけないというのもあります。監視カメラの廊下が映っている映像をループさせて監視の人をごまかすというのがありますが、一番早いのは持参したカメラで無人の廊下を映し、その映像を持参したモニターで表示させて、その映像を監視カメラで撮影するようにカメラのレンズにかぶせるとか、カメラの前にうまくモニターを設置するというのがあります。
― セキュリティががら空き ―
わざとそうしているところもありますが…たとえばカメラ映像を表示させる場合、どのPCから接続しても映像の表示を許可しているもの。あるいは管理用のPCを使うためのパスワードが設定されていないもの。システムを制御するためのPCにログインしようとしたらノーパスワードで入れてしまうなどがあります。rootとかAdministratorとか、PCにログインするためのユーザーIDはよくあるものがあります。
また使ってはいけないパスワードワーストランキングというものもあり「12345678」とか「5963」とか「pazzw0rd」とかがあります。机にパスワードが紙で書いてあるというのもあります。
システムの名前+年号というものもあります。
― セキュリティの検査 ―
コンピュータハッキングなどを題材にしたアメリカの映画で「スニーカーズ」というものがありますが、セキュリティに問題がないかを検査する会社というのもあると思います。
コンピューターに不正ログインするために、パスワードとユーザーIDを総当たりに試すというのもあります。またそういうことができないようにパスワードが3回間違えられると数分アクセスを拒否したり、管理者による設定をしないとログインできないようにしておくというのがあります。ぺネトレーションテストと言われるものもあります。
そういうことをするためのツールにポートスキャン用のツールや、専用のツールを収めたOSがあります。そういうものにはWindowsなどではなくUnix系のOSであるLinuxという種類のもので「Kali Linux」を使って検査をするというのもあります。実際にセキュリティの検査で以来されて使ったことがあります。以来されてやる以外では、どこかのPCやサーバーに対して実施すると犯罪になりますので、実際に試す場合は自分で購入したPCを使い実験するのが良いでしょう。
― rootを取る ―
AndroidのスマホやiPhoneなど普通はできることが制限されています。
OSで使っているファイルなどにアクセスができない、あるいは書き換えることができないようになっています。そこで頭の良い人はセキュリティの隙をついてrootを取ることなどで、OSで使っているファイルを書き換え、使用者のスマホから情報を抜き取ったりカメラへ不正アクセスして勝手に撮影したりします。古いOSのほうがセキュリティをつくのが簡単と思います。なぜならセキュリティにうるさくないときに開発されたものはあまり対策がされていないからです。
― rootだやべえ ―
Windows系ではなくてUnix/Linux系のOSの場合ですが、リモートからアクセスしてハッキングしたとします。誰がそのシステムに入っていてログインしているかがわかるコマンドがあります。コマンドとは短い文字列で、例えば「w」と入力するとログインしているユーザー一覧が表示できますが、ここにrootというユーザーがいると、システムの管理者がそのシステムにログインしていて、ハッキングしているあなたを調査しているかもしれません。
そのときに「rootだやべえ」となります。ただし他にもハッキングしている人がいて、その人がrootを取った場合はrootとして表示されますので、それは本当のシステムの管理者ではありません。
― 変なコメント ―
コメントはプログラムをわかりやすくするために、英語や日本語でやっている処理の内容を書いておくというものですが、自分で書いたプログラムは1年もたつと何を書いたかを忘れてしまいます。
たまに、仕事が終わらなくて帰れない人やお客に文句がある人がコメントになぞの文言を書いたり、呪文を書いたりしていることがあります。
― データーベース ―
データを保存しておくためのものです。または保存されているデータを検索したり、追加したり、変更したりしやすいように作られているプログラムです。mysql、postgresql、oracleなどいろいろあります。データーベースの中をみると、ユーザーのデータとかログインIDとかパスワードとか個人情報が記載されていることがあります。そのデータは読めないように暗号化されて記録されている場合や、平文(だれでも読める形式)で書かれていることがあります。
私が良くつかっているものでは、端末に入ってからrootになり、以下のようにするとデータベースに入ることができます。
# su - postgres
# psql -U <ユーザー名> <データベース名>
<> は実際には入力しませんが、コマンドという文字列を打ちシステムを操作することも多いです。また画面を使用してデーターベースを参照することもできます。ソフトが入れてあり、設定されていれば、ウェブブラウザからデーターベースを見ることもできます。
また、データーベースにはテーブルというのがあり、木のテーブルとか大理石のテーブルはないですが「users」とかユーザーにちなんだテーブルは良くあります。ハッキングのときはデーターベースに入り、ユーザーデーターからログインIDやパスワードを得るということになるでしょう。
― 新しいもの ―
コンピューターを操作するための操作画面が新しいものとしてVRや3Dになっているメニューやオブジェクトがあります。
ジュラシックパークというアメリカ映画で、女の子がシリコングラフィックスという会社のCGを作るのに良く使われていたシステムを操作するというものがあります。
3Dの箱や線でつながれているものをたどっていくというものです。あれは実際にあり「fsn」というものです。MicrosoftのHololensというものを使うのもありますね。
腕に付けられたブレスレットを使用して腕の皮膚の上にスマートフォンの画面が投影されるようなデバイスとか出てくるかもしれません。インパクトがあるのは表示装置なので目新しい表示装置を物語に登場させると未来的になると思います。