広島で働くアフロなSE・PGの覚え書。 -5ページ目

セキュリティについて

昨今いろんなメディアで取り上げられる情報漏洩。


会社のノートパソコンを自宅に持って帰って仕事してたら
ウィルスに感染して流出したとか、
車にノートパソコンを置いてて盗難されたとか、
職場で空き巣被害にあったとか。


理由・事象は色々あるかもしれないが
情報漏洩の可能性はふとしたところに潜んでいる事を
しっかり認識しないといけない。


で、オススメするのが下記2つの予防策。
--------------------------------------------
・BIOSパスワードの設定
・BIOSによるHDDパスワードの設定
--------------------------------------------


「BIOSパスワードの設定」はノートパソコンの電源ON時に
パスワードを要求するように設定するもの。


Windowsでもオートログイン設定にせず
ユーザ・パスワードの入力を必須にしておけば
2重のログインチェックが出来る。


「BIOSによるHDDパスワードの設定」は
ノートパソコンに内臓されているHDDを取り出して
他のデスクトップ等に直接繋いでも
中身が見れないように出来るというスグレモノ。


それでも世の中に存在しているツールを使えば
見れるようになってしまうが手間がかかる分
情報流出の可能性は下げる事が出来る。


まだ対応する事が可能なのであれば
--------------------------------------------
・HDDそのものに暗号化を施す
--------------------------------------------


ここまで対応すると
万一、ノートパソコンからHDDを取り出されて
デスクトップ等に直接繋がれても、
中身は暗号化されているので、
情報流出の可能性はかなり下げる事が出来る。


色んなサードパーティからソフトが発売されているが
基本的にはOS起動前にログイン認証をおこない
認証OKになった場合のみHDDの暗号化・復号化
を行うという感じだ。



どんな方法も100%ではないが
少しでも「○○かもしれない」という認識を持つ事で
予防できるんじゃないだろうか。



EJB 環境  その後、(2)

前回のつづき。


-----


package jp.afrofair.ejb.dao;


import java.util.Date;
import java.util.List;


import javax.ejb.Remote;


import jp.afrofair.ejb.entity.M_holiday;
import jp.afrofair.ejb.entity.M_holidayPk;


@Remote
public interface M_holidayDao
{
/**
* 作成処理です。
*/
M_holiday create(
M_holidayPk pk,
Long year,
Long month,
Long day,
String holidayName
);

/**
* 作成処理です。
*/
M_holiday create(M_holiday eo);


/**
* 主キー検索です。
*/
M_holiday findById(M_holidayPk pk);


/**
* 更新処理です。
*/
void update(M_holiday eo);


/**
* 削除処理です。
*/
void delete(M_holiday eo);


/**
* 休日マスタ一覧取得処理です。
*/
List<M_holiday> list();

}


-----


package jp.afrofair.ejb.dao;


import java.util.Date;
import java.util.List;


import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;


import jp.afrofair.ejb.entity.M_holiday;
import jp.afrofair.ejb.entity.M_holidayPk;


import static javax.ejb.TransactionAttributeType.*;


@Stateless
@TransactionAttribute(REQUIRED)
public class M_holidayDaoBean implements M_holidayDao
{
/**
* エンティティマネージャです。
*/
private EntityManager entityMgr;


/**
* エンティティマネージャを設定します。
* @param entityMgr エンティティマネージャ
*/
@PersistenceContext(unitName="ejb3sample")
public void setEntityManager(EntityManager entityMgr)
{
this.entityMgr = entityMgr;
}


/**
* 作成処理です。
*/
public M_holiday create(
M_holidayPk pk,
Long year,
Long month,
Long day,
String holidayName
) {
M_holiday eo = new M_holiday(
pk,
year,
month,
day,
holidayName
);
entityMgr.persist(eo);
return eo;
}


/**
* 作成処理です。
*/
public M_holiday create(M_holiday eo)
{
entityMgr.persist(eo);
return eo;
}

/**
* 主キー検索です。
*/
public M_holiday findById(M_holidayPk pk)
{
return entityMgr.find(M_holiday.class, pk);
}


/**
* 更新処理です。
*/
public void update(M_holiday eo)
{
entityMgr.merge(eo);
}


/**
* 削除処理です。
*/
public void delete(M_holiday eo)
{
M_holiday mergedEo = entityMgr.merge(eo);
entityMgr.remove(mergedEo);
}


/**
* 休日マスタ一覧取得処理です。
*/
@SuppressWarnings("unchecked")
public List<M_holiday> list()
{
Query query = entityMgr.createQuery("SELECT p FROM M_holiday p");
return query.getResultList();
}

}


-----

ファイル・パーティション・ドライブの暗号化ソフト 「TrueCrypt」

ふとした事から発生した暗号化対応。


確かにノートPCを盗難されてOS認証をパスされたら


目もあてられない(><)




取り急ぎ試しているのが「TrueCrypt」ってオープンソースソフト。


導入すると

TrueCrypt Boot

BIOS認証の後に、こんな「Boot Loader」画面が表示されるようになった。


VMware上での導入出来てるし、

仮想マシンイメージファイル「vmdk」自体の暗号化もOK。


しばらく様子見だな。





EJB 環境  その後、

とりあえず「SELECT」「INSERT」「UPDATE」「DELETE」とかとか

実現出来たのでメモ。


【M_holidayPk】

(1)Primaryキー用のクラスを作成。その際「@Embeddable」

(2)「@Column(name="group_id")」のようにテーブルカラムを指定。


【M_holiday】

(1)エンティティオブジェクトクラスを作成。

  その際「@Entity」「@Table(name="m_holiday")」

(2)Primaryキーには「@Column」ではなく「@EmbeddedId」指定。

  以外の項目には「@Column(name="group_id")」のようにテーブルカラムを指定。


-----


CREATE TABLE m_holiday
(
group_id VARCHAR(4) NOT NULL,
date NUMERIC(8,0) NOT NULL,
year NUMERIC(4,0) NOT NULL,
month NUMERIC(2,0) NOT NULL,
day NUMERIC(2,0) NOT NULL,
holiday_name VARCHAR(30) NOT NULL
)
WITH (OIDS=FALSE);
ALTER TABLE m_holiday ADD CONSTRAINT m_holiday_pm PRIMARY KEY (
group_id,
date
);


-----

package jp.afrofair.ejb.entity;


import java.io.Serializable;

import javax.persistence.Embeddable;

@Embeddable
public class M_holidayPk implements Serializable
{
/**
* シリアルバージョンUID
*/
private static final long serialVersionUID = -2936245930303024701L;


/**
* グループIDです。
*/
private String groupId;


/**
* 年月日です。
*/
private Long date;


/**
* コンストラクタです。
* @see java.lang.Object#Object()
*/
public M_holidayPk () {};


/**

* コンストラクタです。

*/

public M_holidayPk(String groupId, Long date)
{
this.groupId = groupId;
this.date = date;
}


/**
* グループIDを返却します。
* @return groupId グループID
*/
@Column(name="group_id")
public String getGroupId()
{
return groupId;
}


/**
* グループIDを設定します。
* @param groupId グループID
*/
public void setGroupId(String groupId)
{
this.groupId = groupId;
}


/**
* 年月日を返却します。
* @return date 年月日
*/
@Column(name="date")
public Long getDate()
{
return date;
}


/**
* 年月日を設定します。
* @param date 年月日
*/
public void setDate(Long date)
{
this.date = date;
}


/**
* ハッシュ値を取得します。
*/
public int hashCode()
{
return (groupId == null ? 0 : groupId.hashCode())
+ (date == null ? 0 : date.hashCode());
}


/**
* 休日マスタプライマリキー文字列を返却します。
* @see java.lang.String#toString()
*/
public String toString()
{
return "groupId = " + getGroupId()
+ ", date = " + getDate()
;
}

}

-----


package jp.afrofair.ejb.entity;


import java.io.Serializable;
import java.util.Date;


import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;


@Entity
@Table(name="m_holiday")
public class M_holiday implements Serializable
{
/**
* シリアルバージョンUID
*/
private static final long serialVersionUID = 4067305432631729813L;


/**
* 休日マスタプライマリキーです。
*/
private M_holidayPk primaryKey;


/**
* 年です。
*/
private Long year;


/**
* 月です。
*/
private Long month;


/**
* 日です。
*/
private Long day;


/**
* 休日名です。
*/
private String holidayName;

/**
* コンストラクタです。
*/
public M_holiday() {}


/**
* コンストラクタです。
*/
public M_holiday(
M_holidayPk primaryKey,
Long year,
Long month,
Long day,
String holidayName
) {
this.primaryKey = primaryKey;
this.year = year;
this.month = month;
this.day = day;
this.holidayName = holidayName;
}


/**
* 休日マスタプライマリキーを返却します。
* @return M_holidayPk 休日マスタプライマリキー
*/
@EmbeddedId
public M_holidayPk getPrimaryKey()
{
return primaryKey;
}


/**
* 休日マスタプライマリキーを設定します。
* @param primaryKey 休日マスタプライマリキー
*/
public void setPrimaryKey(M_holidayPk primaryKey)
{
this.primaryKey = primaryKey;
}


/**
* 年を返却します。
* @return Long year
*/
@Column(name="year")
public Long getYear()
{
return year;
}


/**
* 年を設定します。
* @param year 年
*/
public void setYear(Long year)
{
this.year = year;
}


/**
* 月を返却します。
* @return Long month
*/
@Column(name="month")
public Long getMonth()
{
return month;
}


/**
* 月を設定します。
* @param month 月
*/
public void setMonth(Long month)
{
this.month = month;
}


/**
* 日を返却します。
* @return Long day
*/
@Column(name="day")
public Long getDay()
{
return day;
}


/**
* 日を設定します。
* @param day 日
*/
public void setDay(Long day)
{
this.day = day;
}


/**
* 休日名を返却します。
* @return String holidayName
*/
@Column(name="holiday_name")
public String getHolidayName()
{
return holidayName;
}


/**
* 休日名を設定します。
* @param holidayName 休日名
*/
public void setHolidayName(String holidayName)
{
this.holidayName = holidayName;
}


/**
* 休日マスタ文字列を返却します。
* @see java.lang.String#toString()
*/
public String toString()
{
return "primaryKey = " + getPrimaryKey()
+ ", year = " + getYear()
+ ", month = " + getMonth()
+ ", day = " + getDay()
+ ", holidayName = " + getHolidayName()
;
}


-----


陽気@江波

20080517214054.jpg

餃子の美和

久々にテイクアウト割り箸


焼き餃子

PropertiesEditorプラグイン

忘れそう(というか既に忘れていた)なので覚え書。



大さまにご教授頂いたEclipse用のプラグイン。

コレ使えばJDK付属の「native2ascii」コマンドを使わなくてOK!


具体的にはUnicodeエスケープされたファイルを日本語表示してくれて

保存時には日本語をUnicodeエスケープしてくれる。


http://sourceforge.jp/projects/propedit/files/




キーボード


1

             | |


2

             +


3

             +


4

             +


5


いやーしかし、LEDの基盤さえはずせば丸洗い出来るのは素晴らしい!




掃除

日曜日。


自宅で使っているキーボードを久しぶりに掃除。


最初はエアーを吹きかけて汚れを飛ばすだけで良っか。と思っていたけど


久しぶりなのでバラして水洗いをする事にっ。


このキーボード、結構長い事使っているけど


キータッチといいメンテナンス性といい抜群!

(その分、値段も高かったけど。。。)



(画像は後ほど、、、)

前途多難。。。

『EJB3.0』を使いたくて悪戦苦闘中・・・。


「Hello World」的なものを表示させるだけなのにガーン


サーバオブジェクトとして「StatelessBean」とその「Interface」を

Jarで固めて、「Jboss AS」の「default/deploy」に配備。

ここは問題ない。


で、実際にコンソールから

>java -classpath .\src:.\ejb3sample.jar:.\jboss-client.jar ejb3sample.Client

みたく実行しようとすると

-----

Exception in thread "main" java.lang.NoClassDefFoundError: ejb3sample/Client

-----


やっぱりExceptionのとおり「classpath」の指定が悪い?!




と思ったら

>java -classpath .;.\ejb3sample.jar;.\jboss-client.jar ejb3sample.Client

で行けた!


しょうもなっ!