Skypeプロトコルは、インターネット電話に使用されていたものの、現在は廃止された独自のネットワークです。その仕様は一般に公開されておらず、このプロトコルに基づいた公式アプリケーションはすべてクローズドソースです。ほとんどのVoIP( Voice over IP)ネットワークとの相互運用性がないため、統合するにはSkypeからのライセンスが必要となります。
セキュリティ機能の研究や非公式クライアントの有効化を目的として、プロトコルのリバースエンジニアリングが数多く試みられてきました。2014 年 6 月 20 日、マイクロソフトは旧 Skype プロトコルが廃止されることを発表しました。ユーザーは引き続きサービスを利用するために Skype の 2014 年バージョンにアップグレードする必要があり、古いクライアントはログインできなくなりました。[ 1 ] [ 2 ] 2014 年 8 月の第 2 週から、オフライン メッセージングとデバイス間でのメッセージ同期を改善するために、新しいプロトコルであるMicrosoft Notification Protocol 24 が実装されました。[ 3 ]
SkypeはIP電話向けのピアツーピア(P2P)技術の先駆けとなった。 [ 4 ]そのアーキテクチャは、スーパーノード、通常のノード、ログインサーバーで構成されている。各クライアントは到達可能なスーパーノードのキャッシュを保持し、ユーザーディレクトリデータはスロットとブロックに整理されてこれらのスーパーノードに分散される。
当初は、十分な帯域幅と処理能力を持つクライアントであれば、どのクライアントでもスーパーノードになることができました。この設定は、ファイアウォールやネットワークアドレス変換(NAT) の背後にいるユーザーにとって課題となりました。なぜなら、それらの接続が他のクライアント間の通話を促進するために使用される可能性があったからです。2012 年、マイクロソフトはパフォーマンスと拡張性を向上させるためにスーパーノードの制御をデータセンターに移管しましたが、[ 5 ] [ 6 ]プライバシーに関する懸念が高まりました[ 7 ]。これは後に2013 年のPRISM監視の暴露によって強調されました[ 8 ] [ 9 ]。
SkypeはIPv6をサポートしていません[ 10 ]。IPv6は通信インフラを簡素化できる可能性があります。
スーパーノードは、ファイアウォールやNATの背後にいるクライアントの通信を中継し、そうでなければ不可能な通話を可能にします。ただし、次のような問題が発生する可能性があります。
Skype のシグナリングはRC4を使用して暗号化されますが、この方法は暗号化キーが通信から復元される可能性があるため脆弱であると考えられています。音声データはAES暗号化で保護されています。[ 11 ] Skype API を使用すると、開発者はユーザー情報や通話管理のためにネットワークにアクセスできます。
コードはクローズドソースのままであり、[ 12 ]クライアントの一部はインターネットダイレクト(Indy)と呼ばれるオープンソースのソケット通信ライブラリを利用している 。
2012年7月、ある研究者がSkypeクライアントのリバースエンジニアリングから得られた知見を明らかにした。[ 13 ]
さまざまなネットワークおよびセキュリティ企業が、Skypeのプロトコルを検出する方法を持っていると主張している。具体的な方法は企業秘密だが、公開されている技術には、ピアソンのカイ二乗検定やナイーブベイズ分類器を使用した確率的特性評価などがある。[ 14 ]
Skypeは、データパケットのペイロードを難読化するためにRC4を使用しています。初期化ベクトル(IV)は、公開されている送信元および宛先IPアドレスとパケットIDの組み合わせから生成され、RC4キーに変換されます。
特に、RC4の悪用はTCPストリームで発生する可能性があり、ストリームの最初の14バイトがRC4ストリームとXOR演算され、データセキュリティに影響を与える。[ 15 ]
Skypeの通信のほとんどは暗号化されており、コマンドとそのパラメータはオブジェクトリストに整理され、算術圧縮の一種を使用して圧縮することができます。
Skypeのライセンス契約ではリバースエンジニアリングは禁止されています。しかし、EU法では相互運用性のためのリバースエンジニアリングが認められており[ 16 ]、米国のデジタルミレニアム著作権法でも同様の保護が提供されています[ 17 ] [ 18 ] [ 19 ] 。また、一部の国ではリバースエンジニアリングのための複製も認められています[ 20 ](Sega v. AccoladeおよびSony v. Connectixも参照)。