C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[18]: 正確な日時を取得するには [1]


(過去ログ 80 を表示中)

[トピック内 35 記事 (21 - 35 表示)]  << 0 | 1 >>

■47277 / inTopicNo.21)  Re[8]: 正確な日時を取得するには
  
□投稿者/ 774RR (472回)-(2010/02/23(Tue) 18:06:45)
皆様の発言をきっちり読んで欲しいわけだが

・そのようなプロテクトコードを入れても、技術力あるユーザなら実行ファイルを解析して解除してしまうことが可能
・ないしは、ネットワーク上に流れるデータを解析し、ごまかすことが可能
という状況下で、はたして
「そんなプロテクトをする必要があるかどうか」(しても無駄に終わる可能性が高い)
を商品企画レベル(ないしは仕様レベル)で再検討して欲しい。

それでもどうしてもプロテクトを入れたいのであれば次に
・「インターネット接続」とはどういうことを言うのか?を定義するべし。
大手企業の社内など、セキュリティに厳しいところでは http/https 以外のプロトコルは outbound 不可能な場合がある。
http outbound 可能でも社内セキュリティ proxy があれこれいろいろ制限していたりする。
そんな場所で「試用期間であっても動かない」ことになったら、そんなソフトは使ってもらえないと考えるべき。

時間を得るだけなら (S)NTP などのプロトコルで簡単に得られる。
http://ja.wikipedia.org/wiki/Network_Time_Protocol
が、その NTP の outbound ができるかどうかは現場次第。
引用返信 編集キー/
■47279 / inTopicNo.22)  Re[9]: 正確な日時を取得するには
□投稿者/ みきぬ (806回)-(2010/02/23(Tue) 18:33:20)
> 皆様の発言をきっちり読んで欲しいわけだが
>
でもって、読んでわからないのであれば、どこがわからないのかを書いたほうがいいよ。

でないと読んでないと思われたり、読んで理解した前提で話が進んじゃったりなんかして、お互いに不幸な結果に。
引用返信 編集キー/
■47280 / inTopicNo.23)  Re[10]: 正確な日時を取得するには
□投稿者/ オショウ (524回)-(2010/02/23(Tue) 23:58:37)
その手のものは実際に作って納品した実績があるんですが・・・
なんせプロテクトをかける仕事もしてましたもので。

で、PC外にアクセスする機能を設けると、そこから足がつくので
解析させやすくなる。
よって、PC外にはアクセスしない方法がベター

次に、時刻の取得に重きがあるのは仕方ないんですが、カレンダー
タイマーを変更したらその変更イベントを取得することができるの
で、その前後でどれだけ変更されたか差分を求めれば、経過時間の
換算の補正は可能。

この場合、秒単位はあきらめて、まぁ〜時間単位でいいんじゃ〜な
いかナ〜時計でも月に10秒程度の狂いは当たり前なんで・・・

この機能がミソだったりする。

あと、それらプログラムをいかに隠ぺいするか・・・
くらいかな。

隠ぺいする技術は公開されてしまっているので、その気のある人
なら居所を突き止められてしまう。

と云うところで、プロテクトを仕掛ける総コストをどう考えるか
でしょう。

制作・納品したやつには、USBメモリのセキュアキーを付けて複合
化してやったのですが・・・極論USBメモリ内にマイコン入れて、
そちらにカレンダー機能持たせる・・・なんて手の方が楽ちんなん
ですが、ソフトのみの試用版と言うことなら、そういうのも無理が
あるでしょう〜

隠ぺい機能は、デバイスドライバーにしてしまい何かのフィルター
ドライバーとしてOSに食いつかせてしまい、見えにくくする。
なんて方法もあろうかと。

悪意のある正規ユーザーが絡めば、どんなプロテクトも無駄なんで
いかにコストをかけずに、それなりのものを作るか・選択するか
(有償商品を)

と言うとこらへんかと思いますが。

以上。参考まで
引用返信 編集キー/
■47281 / inTopicNo.24)  Re[11]: 正確な日時を取得するには
□投稿者/ .SHO (1215回)-(2010/02/24(Wed) 08:42:38)
No47280 (オショウ さん) に返信

> 次に、時刻の取得に重きがあるのは仕方ないんですが、カレンダー
> タイマーを変更したらその変更イベントを取得することができるの
> で、その前後でどれだけ変更されたか差分を求めれば、経過時間の
> 換算の補正は可能。

これって、常駐してなくても可能なんですか?
引用返信 編集キー/
■47282 / inTopicNo.25)  Re[12]: 正確な日時を取得するには
□投稿者/ オショウ (525回)-(2010/02/24(Wed) 09:26:28)
No47281 (.SHO さん) に返信
> これって、常駐してなくても可能なんですか?

  プロセスの隠ぺいしないとネ!〜
  だからWindowsサービスやデバドラにして見えにくくする。

以上。
引用返信 編集キー/
■47283 / inTopicNo.26)  Re[13]: 正確な日時を取得するには
□投稿者/ 774RR (473回)-(2010/02/24(Wed) 09:39:18)
えー
たかだか試用期限を限るのにそこまでするのは絶対にコストが合わないし
そもそもあまりヘンなことするソフトはマルウェア認定をもらいかねないし
俺なら絶対却下。
引用返信 編集キー/
■47284 / inTopicNo.27)  Re[14]: 正確な日時を取得するには
□投稿者/ みきぬ (807回)-(2010/02/24(Wed) 10:03:42)
すぐ思いつく仕組みとしては、こんな感じじゃないかしら。
・アプリケーションのライセンスごとにキーを用意する
・アプリケーションの起動時、サーバに接続してキーを送信
・初めてサーバに接続したときは、サーバ側でキーとサーバ時刻を記録する
・以後の接続時は、サーバ側でサーバ時刻と記録した時刻を比較し、一定期間過ぎてたら試用期間終了と判定

試用期間って日単位だろうから、サーバの時刻が多少(±数秒程度)ずれててもぶっちゃけ困らないのでは。
引用返信 編集キー/
■47286 / inTopicNo.28)  Re[14]: 正確な日時を取得するには
□投稿者/ オショウ (527回)-(2010/02/24(Wed) 10:36:07)
No47283 (774RR さん) に返信
> 俺なら絶対却下。

  と言われても、そういうモノ作って!という客が
  居たんだから・・・

  まぁ〜そういう方法もある。ということで。

※ コストが合わない?って、2週間くらいで作ったから
  そう高価な話じゃないヨ!

  インターネット越しのライセンス管理の有償商品より
  は安価だったと思う。

  サーバー管理のシステムを自作できるんならトントン
  だと思うナ〜ただ、サーバーの維持を考えると、経年
  すれば逆に高価になると思う。如何?

以上。
引用返信 編集キー/
■47288 / inTopicNo.29)  Re[15]: 正確な日時を取得するには
□投稿者/ GOD (29回)-(2010/02/24(Wed) 11:44:34)
みきぬ さんが書いているように外部サーバーでライセンス管理できるようになって
いないとだめだと思う。
起動時に認証サーバーに接続できない場合があるだろうから(サーバーメンテなどで)
連続3回を越えていなかったらソフトを使用できるようにしてあげるなどの処理を
入れておいた方がよいですよ。

時間だけを外部に問い合わせてクライアントだけで管理しようとすると仮想OS上に
インストールされた時には対応できないですよ。
(試用期間を経過した時点でHDDのイメージをインストール前に戻すとか...)

>カレンダータイマーを変更したらその変更イベントを取得
>
ってBIOSで日時変更した場合は無理そうだから「前回の終了時刻>起動日時?」
みたいな処理も入っているのかな?
引用返信 編集キー/
■47291 / inTopicNo.30)  Re[16]: 正確な日時を取得するには
□投稿者/ 甕星 (5回)-(2010/02/24(Wed) 16:39:36)
とことん厳格にやるなら、時刻認証局(TSA)に依頼して、証明してもらうって事になるかと・・・。
引用返信 編集キー/
■47295 / inTopicNo.31)  Re[17]: 正確な日時を取得するには
□投稿者/ れい (884回)-(2010/02/25(Thu) 05:10:24)
No47291 (甕星 さん) に返信
> とことん厳格にやるなら、時刻認証局(TSA)に依頼して、証明してもらうって事になるかと・・・。

また話が戻っていますよ。

TSAサーバーを使えば、厳密な時刻で認証することはできますが、
ルート証明書が改竄できる以上、偽TSAでもいいわけで、クラックを防げません。

なので、TSAを使っても「厳格」な不正使用対策にはなりません。


No47286 (オショウ さん) に返信
> ■No47283 (774RR さん) に返信
>>俺なら絶対却下。
>
>   と言われても、そういうモノ作って!という客が
>   居たんだから・・・

私も却下です。
ま、客なんていない気楽な身の上ですが。

>   インターネット越しのライセンス管理の有償商品より
>   は安価だったと思う。
>
>   サーバー管理のシステムを自作できるんならトントン
>   だと思うナ〜ただ、サーバーの維持を考えると、経年
>   すれば逆に高価になると思う。如何?

これは同意。

でも、ドライバ要れるなら証明書の取得費用がいりますね。
そのコストも考えないと。

私は独自ドメインで独自サーバーを持っていますが、
Authenticodeの証明書はコストがかるので持っていません。
証明書の方がよっぽど高価になるのでは?

それとも、一度開発したドライバは更新しなければ維持費用はいらないのですか?>aetosさんとか詳しい人

サーバー導入も、ドライバ開発も、コストがかかり、システム時刻は安易すぎるというなら…

大手IT企業とか大手検索エンジンとか該当国家の政府サイトとかにアクセスして日時を拾うのはどうでしょう?
Ifヘッダーとか付ければGET一発で時刻がわかります。

他人に頼るのはだめかな?



引用返信 編集キー/
■47297 / inTopicNo.32)  Re[18]: 正確な日時を取得するには
□投稿者/ みきぬ (808回)-(2010/02/25(Thu) 09:28:24)
それ専用にサーバを用意するならそら高くつくだろうけど、
既にサーバが稼働していれば、そこに間借りしたっていいわけだし。

状況がわからんのでこれ以上は何とも言えないけど、
質問者が考えて、結論を出せるだけの材料は既に提供できたんじゃないかなあ…と。
引用返信 編集キー/
■47300 / inTopicNo.33)  Re[19]: 正確な日時を取得するには
□投稿者/ なちゃ (402回)-(2010/02/25(Thu) 10:00:19)
クライアント側のコードレベルでのクラックを想定しないなら(したところで完全に防ぐことは出来ませんが)、
別に証明書とかも要らなくて、単にハードコーディングで公開鍵を埋め込んでおき、
サーバ側で時刻なりライセンスチェック結果なりに秘密鍵で署名すればすみます。
※サーバが既にあるならですが

まあやり方はいくらでもありますが、ルート証明書のインストールなどに対抗する必要があるようなやり方だと、
余計に話がややこしくなります。

まあどっちにしてもそこまでやる必要があるかというのが先にきますけどね。

引用返信 編集キー/
■47301 / inTopicNo.34)  Re[20]: 正確な日時を取得するには
□投稿者/ なちゃ (403回)-(2010/02/25(Thu) 10:04:15)
No47300 (なちゃ さん) に返信
> サーバ側で時刻なりライセンスチェック結果なりに秘密鍵で署名すればすみます。

あ、もちろん署名値を再利用されないために多少考慮は必要ですが。

引用返信 編集キー/
■47302 / inTopicNo.35)  Re[18]: 正確な日時を取得するには
□投稿者/ aetos (241回)-(2010/02/25(Thu) 10:29:40)
No47295 (れい さん) に返信

> それとも、一度開発したドライバは更新しなければ維持費用はいらないのですか?>aetosさんとか詳しい人

詳しくはないですが要らないはずです。
それこそドライバには TSA ですか、それでタイムスタンプ署名をつけるのが一般的です。

まぁ、ドライバ開発は費用以前の問題として、コードサイニング証明書は法人格がないと取れないという問題がありますけど。
あとルートキット疑惑もあるので、下手にプロセス隠しとかはやはり賛成できません。

たとえばこんなのもあります。いくらかかるか知りませんけど。
http://tmpgenc.pegasys-inc.com/ja/b2b/leaps.html
引用返信 編集キー/

<前の20件
トピック内ページ移動 / << 0 | 1 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -